Merge branch 'jk/core-comment-string'
core.commentChar used to be limited to a single byte, but has been updated to allow an arbitrary multi-byte sequence. * jk/core-comment-string: config: add core.commentString config: allow multi-byte core.commentChar environment: drop comment_line_char compatibility macro wt-status: drop custom comment-char stringification sequencer: handle multi-byte comment characters when writing todo list find multi-byte comment chars in unterminated buffers find multi-byte comment chars in NUL-terminated strings prefer comment_line_str to comment_line_char for printing strbuf: accept a comment string for strbuf_add_commented_lines() strbuf: accept a comment string for strbuf_commented_addf() strbuf: accept a comment string for strbuf_stripspace() environment: store comment_line_char as a string strbuf: avoid shadowing global comment_line_char name commit: refactor base-case of adjust_comment_line_char() strbuf: avoid static variables in strbuf_add_commented_lines() strbuf: simplify comment-handling in add_lines() helper config: forbid newline as core.commentChar
This commit is contained in:
@ -685,9 +685,10 @@ static void adjust_comment_line_char(const struct strbuf *sb)
|
||||
char *candidate;
|
||||
const char *p;
|
||||
|
||||
comment_line_char = candidates[0];
|
||||
if (!memchr(sb->buf, comment_line_char, sb->len))
|
||||
if (!memchr(sb->buf, candidates[0], sb->len)) {
|
||||
comment_line_str = xstrfmt("%c", candidates[0]);
|
||||
return;
|
||||
}
|
||||
|
||||
p = sb->buf;
|
||||
candidate = strchr(candidates, *p);
|
||||
@ -706,7 +707,7 @@ static void adjust_comment_line_char(const struct strbuf *sb)
|
||||
if (!*p)
|
||||
die(_("unable to select a comment character that is not used\n"
|
||||
"in the current commit message"));
|
||||
comment_line_char = *p;
|
||||
comment_line_str = xstrfmt("%c", *p);
|
||||
}
|
||||
|
||||
static void prepare_amend_commit(struct commit *commit, struct strbuf *sb,
|
||||
@ -889,7 +890,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
|
||||
s->hints = 0;
|
||||
|
||||
if (clean_message_contents)
|
||||
strbuf_stripspace(&sb, '\0');
|
||||
strbuf_stripspace(&sb, NULL);
|
||||
|
||||
if (signoff)
|
||||
append_signoff(&sb, ignored_log_message_bytes(sb.buf, sb.len), 0);
|
||||
@ -909,18 +910,18 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
|
||||
struct ident_split ci, ai;
|
||||
const char *hint_cleanup_all = allow_empty_message ?
|
||||
_("Please enter the commit message for your changes."
|
||||
" Lines starting\nwith '%c' will be ignored.\n") :
|
||||
" Lines starting\nwith '%s' will be ignored.\n") :
|
||||
_("Please enter the commit message for your changes."
|
||||
" Lines starting\nwith '%c' will be ignored, and an empty"
|
||||
" Lines starting\nwith '%s' will be ignored, and an empty"
|
||||
" message aborts the commit.\n");
|
||||
const char *hint_cleanup_space = allow_empty_message ?
|
||||
_("Please enter the commit message for your changes."
|
||||
" Lines starting\n"
|
||||
"with '%c' will be kept; you may remove them"
|
||||
"with '%s' will be kept; you may remove them"
|
||||
" yourself if you want to.\n") :
|
||||
_("Please enter the commit message for your changes."
|
||||
" Lines starting\n"
|
||||
"with '%c' will be kept; you may remove them"
|
||||
"with '%s' will be kept; you may remove them"
|
||||
" yourself if you want to.\n"
|
||||
"An empty message aborts the commit.\n");
|
||||
if (whence != FROM_COMMIT) {
|
||||
@ -943,12 +944,12 @@ 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, hint_cleanup_all, comment_line_char);
|
||||
status_printf(s, GIT_COLOR_NORMAL, hint_cleanup_all, comment_line_str);
|
||||
else if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS) {
|
||||
if (whence == FROM_COMMIT)
|
||||
wt_status_add_cut_line(s);
|
||||
} else /* COMMIT_MSG_CLEANUP_SPACE, that is. */
|
||||
status_printf(s, GIT_COLOR_NORMAL, hint_cleanup_space, comment_line_char);
|
||||
status_printf(s, GIT_COLOR_NORMAL, hint_cleanup_space, comment_line_str);
|
||||
|
||||
/*
|
||||
* These should never fail because they come from our own
|
||||
|
Reference in New Issue
Block a user