While the prefilled commit prompt is mostly the same for different cleanup modes, those are separately repeated, which violates the DRY principle and hinders maintainability. Unify and reorder identical substrings to improve. Signed-off-by: Hu Jialun <hujialun@xxxxxxxxxxxxxxx> --- builtin/commit.c | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/builtin/commit.c b/builtin/commit.c index 190d215d43..815b408002 100644 --- a/builtin/commit.c +++ b/builtin/commit.c @@ -910,21 +910,24 @@ static int prepare_to_commit(const char *index_file, const char *prefix, } fprintf(s->fp, "\n"); - if (cleanup_mode == COMMIT_MSG_CLEANUP_ALL) - status_printf(s, GIT_COLOR_NORMAL, - _("Please enter the commit message for your changes." - " Lines starting\nwith '%c' will be ignored, and an empty" - " message aborts the commit.\n"), comment_line_char); + const char *msg_enter_prompt = _("Please enter the commit message for your changes."); + const char *keep_char_prompt = _("Lines starting with '%c' will be kept;" + " you may remove them yourself if you want to."); + const char *ignore_char_prompt = _("Lines starting with '%c' will be ignored."); + const char *empty_msg_abort_prompt = _("An empty message aborts the commit."); + if (cleanup_mode == COMMIT_MSG_CLEANUP_ALL) { + status_printf_ln(s, GIT_COLOR_NORMAL, msg_enter_prompt); + status_printf_ln(s, GIT_COLOR_NORMAL, ignore_char_prompt, comment_line_char); + status_printf_ln(s, GIT_COLOR_NORMAL, empty_msg_abort_prompt); + } else if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS) { if (whence == FROM_COMMIT && !merge_contains_scissors) wt_status_add_cut_line(s->fp); - } else /* COMMIT_MSG_CLEANUP_SPACE, that is. */ - status_printf(s, GIT_COLOR_NORMAL, - _("Please enter the commit message for your changes." - " Lines starting\n" - "with '%c' will be kept; you may remove them" - " yourself if you want to.\n" - "An empty message aborts the commit.\n"), comment_line_char); + } else { /* COMMIT_MSG_CLEANUP_SPACE, that is. */ + status_printf_ln(s, GIT_COLOR_NORMAL, msg_enter_prompt); + status_printf_ln(s, GIT_COLOR_NORMAL, keep_char_prompt, comment_line_char); + status_printf_ln(s, GIT_COLOR_NORMAL, empty_msg_abort_prompt); + } /* * These should never fail because they come from our own -- 2.32.0