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:
31
wt-status.c
31
wt-status.c
@ -70,7 +70,7 @@ static void status_vprintf(struct wt_status *s, int at_bol, const char *color,
|
||||
strbuf_vaddf(&sb, fmt, ap);
|
||||
if (!sb.len) {
|
||||
if (s->display_comment_prefix) {
|
||||
strbuf_addch(&sb, comment_line_char);
|
||||
strbuf_addstr(&sb, comment_line_str);
|
||||
if (!trail)
|
||||
strbuf_addch(&sb, ' ');
|
||||
}
|
||||
@ -85,7 +85,7 @@ static void status_vprintf(struct wt_status *s, int at_bol, const char *color,
|
||||
|
||||
strbuf_reset(&linebuf);
|
||||
if (at_bol && s->display_comment_prefix) {
|
||||
strbuf_addch(&linebuf, comment_line_char);
|
||||
strbuf_addstr(&linebuf, comment_line_str);
|
||||
if (*line != '\n' && *line != '\t')
|
||||
strbuf_addch(&linebuf, ' ');
|
||||
}
|
||||
@ -1028,7 +1028,7 @@ static void wt_longstatus_print_submodule_summary(struct wt_status *s, int uncom
|
||||
if (s->display_comment_prefix) {
|
||||
size_t len;
|
||||
summary_content = strbuf_detach(&summary, &len);
|
||||
strbuf_add_commented_lines(&summary, summary_content, len, comment_line_char);
|
||||
strbuf_add_commented_lines(&summary, summary_content, len, comment_line_str);
|
||||
free(summary_content);
|
||||
}
|
||||
|
||||
@ -1090,7 +1090,7 @@ size_t wt_status_locate_end(const char *s, size_t len)
|
||||
const char *p;
|
||||
struct strbuf pattern = STRBUF_INIT;
|
||||
|
||||
strbuf_addf(&pattern, "\n%c %s", comment_line_char, cut_line);
|
||||
strbuf_addf(&pattern, "\n%s %s", comment_line_str, cut_line);
|
||||
if (starts_with(s, pattern.buf + 1))
|
||||
len = 0;
|
||||
else if ((p = strstr(s, pattern.buf))) {
|
||||
@ -1106,8 +1106,8 @@ void wt_status_append_cut_line(struct strbuf *buf)
|
||||
{
|
||||
const char *explanation = _("Do not modify or remove the line above.\nEverything below it will be ignored.");
|
||||
|
||||
strbuf_commented_addf(buf, comment_line_char, "%s", cut_line);
|
||||
strbuf_add_commented_lines(buf, explanation, strlen(explanation), comment_line_char);
|
||||
strbuf_commented_addf(buf, comment_line_str, "%s", cut_line);
|
||||
strbuf_add_commented_lines(buf, explanation, strlen(explanation), comment_line_str);
|
||||
}
|
||||
|
||||
void wt_status_add_cut_line(struct wt_status *s)
|
||||
@ -1183,8 +1183,6 @@ static void wt_longstatus_print_tracking(struct wt_status *s)
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
const char *cp, *ep, *branch_name;
|
||||
struct branch *branch;
|
||||
char comment_line_string[3];
|
||||
int i;
|
||||
uint64_t t_begin = 0;
|
||||
|
||||
assert(s->branch && !s->is_initial);
|
||||
@ -1209,20 +1207,15 @@ static void wt_longstatus_print_tracking(struct wt_status *s)
|
||||
}
|
||||
}
|
||||
|
||||
i = 0;
|
||||
if (s->display_comment_prefix) {
|
||||
comment_line_string[i++] = comment_line_char;
|
||||
comment_line_string[i++] = ' ';
|
||||
}
|
||||
comment_line_string[i] = '\0';
|
||||
|
||||
for (cp = sb.buf; (ep = strchr(cp, '\n')) != NULL; cp = ep + 1)
|
||||
color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s),
|
||||
"%s%.*s", comment_line_string,
|
||||
"%s%s%.*s",
|
||||
s->display_comment_prefix ? comment_line_str : "",
|
||||
s->display_comment_prefix ? " " : "",
|
||||
(int)(ep - cp), cp);
|
||||
if (s->display_comment_prefix)
|
||||
color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), "%c",
|
||||
comment_line_char);
|
||||
color_fprintf_ln(s->fp, color(WT_STATUS_HEADER, s), "%s",
|
||||
comment_line_str);
|
||||
else
|
||||
fputs("\n", s->fp);
|
||||
strbuf_release(&sb);
|
||||
@ -1389,7 +1382,7 @@ static int read_rebase_todolist(const char *fname, struct string_list *lines)
|
||||
git_path("%s", fname));
|
||||
}
|
||||
while (!strbuf_getline_lf(&line, f)) {
|
||||
if (line.len && line.buf[0] == comment_line_char)
|
||||
if (starts_with(line.buf, comment_line_str))
|
||||
continue;
|
||||
strbuf_trim(&line);
|
||||
if (!line.len)
|
||||
|
Reference in New Issue
Block a user