]> git.ipfire.org Git - thirdparty/git.git/commitdiff
strbuf: remove global variable
authorCalvin Wan <calvinwan@google.com>
Tue, 6 Jun 2023 19:48:43 +0000 (19:48 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 12 Jun 2023 20:49:36 +0000 (13:49 -0700)
As a library that only interacts with other primitives, strbuf should
not utilize the comment_line_char global variable within its
functions. Therefore, add an additional parameter for functions that use
comment_line_char and refactor callers to pass it in instead.
strbuf_stripspace() removes the skip_comments boolean and checks if
comment_line_char is a non-NUL character to determine whether to skip
comments or not.

Signed-off-by: Calvin Wan <calvinwan@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
16 files changed:
add-patch.c
builtin/am.c
builtin/branch.c
builtin/commit.c
builtin/merge.c
builtin/notes.c
builtin/rebase.c
builtin/stripspace.c
builtin/tag.c
fmt-merge-msg.c
gpg-interface.c
rebase-interactive.c
sequencer.c
strbuf.c
strbuf.h
wt-status.c

index 8d770d203ff78f487b9497cf0603436cb56d4e74..9702c1aabdb076c189e812438d67b59b5def5ee1 100644 (file)
@@ -1105,10 +1105,11 @@ static int edit_hunk_manually(struct add_p_state *s, struct hunk *hunk)
        size_t i;
 
        strbuf_reset(&s->buf);
-       strbuf_commented_addf(&s->buf, _("Manual hunk edit mode -- see bottom for "
-                                     "a quick guide.\n"));
+       strbuf_commented_addf(&s->buf, comment_line_char,
+                             _("Manual hunk edit mode -- see bottom for "
+                               "a quick guide.\n"));
        render_hunk(s, hunk, 0, 0, &s->buf);
-       strbuf_commented_addf(&s->buf,
+       strbuf_commented_addf(&s->buf, comment_line_char,
                              _("---\n"
                                "To remove '%c' lines, make them ' ' lines "
                                "(context).\n"
@@ -1117,12 +1118,13 @@ static int edit_hunk_manually(struct add_p_state *s, struct hunk *hunk)
                              s->mode->is_reverse ? '+' : '-',
                              s->mode->is_reverse ? '-' : '+',
                              comment_line_char);
-       strbuf_commented_addf(&s->buf, "%s", _(s->mode->edit_hunk_hint));
+       strbuf_commented_addf(&s->buf, comment_line_char, "%s",
+                             _(s->mode->edit_hunk_hint));
        /*
         * TRANSLATORS: 'it' refers to the patch mentioned in the previous
         * messages.
         */
-       strbuf_commented_addf(&s->buf,
+       strbuf_commented_addf(&s->buf, comment_line_char,
                              _("If it does not apply cleanly, you will be "
                                "given an opportunity to\n"
                                "edit again.  If all lines of the hunk are "
index 5c83f2e003fb01ab6409a23e3a79ab15e4aed6f2..9ece2e30667c8e260b6e523664d82c0f15d45785 100644 (file)
@@ -1283,7 +1283,7 @@ static int parse_mail(struct am_state *state, const char *mail)
 
        strbuf_addstr(&msg, "\n\n");
        strbuf_addbuf(&msg, &mi.log_message);
-       strbuf_stripspace(&msg, 0);
+       strbuf_stripspace(&msg, '\0');
 
        assert(!state->author_name);
        state->author_name = strbuf_detach(&author_name, NULL);
index e6c2655af68b339a7aa863cedd6d75e5176dd443..40a79e60f54c9d5f57c8ed13522eb90a66bfb294 100644 (file)
@@ -674,7 +674,7 @@ static int edit_branch_description(const char *branch_name)
        exists = !read_branch_desc(&buf, branch_name);
        if (!buf.len || buf.buf[buf.len-1] != '\n')
                strbuf_addch(&buf, '\n');
-       strbuf_commented_addf(&buf,
+       strbuf_commented_addf(&buf, comment_line_char,
                    _("Please edit the description for the branch\n"
                      "  %s\n"
                      "Lines starting with '%c' will be stripped.\n"),
@@ -685,7 +685,7 @@ static int edit_branch_description(const char *branch_name)
                strbuf_release(&buf);
                return -1;
        }
-       strbuf_stripspace(&buf, 1);
+       strbuf_stripspace(&buf, comment_line_char);
 
        strbuf_addf(&name, "branch.%s.description", branch_name);
        if (buf.len || exists)
index e67c4be2211eed8f6c8d61f510adc2fc87d9b007..e002ebf070ff6aa0e81e38da76a47ad700d14652 100644 (file)
@@ -893,7 +893,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, '\0');
 
        if (signoff)
                append_signoff(&sb, ignore_non_trailer(sb.buf, sb.len), 0);
index 8da3e46abb0fdc692faac47e0b0deb9e13fe4194..1d14767c0c383fc1a218639316655e47c2f2d9e4 100644 (file)
@@ -879,13 +879,15 @@ static void prepare_to_commit(struct commit_list *remoteheads)
                strbuf_addch(&msg, '\n');
                if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS) {
                        wt_status_append_cut_line(&msg);
-                       strbuf_commented_addf(&msg, "\n");
+                       strbuf_commented_addf(&msg, comment_line_char, "\n");
                }
-               strbuf_commented_addf(&msg, _(merge_editor_comment));
+               strbuf_commented_addf(&msg, comment_line_char,
+                                     _(merge_editor_comment));
                if (cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS)
-                       strbuf_commented_addf(&msg, _(scissors_editor_comment));
+                       strbuf_commented_addf(&msg, comment_line_char,
+                                             _(scissors_editor_comment));
                else
-                       strbuf_commented_addf(&msg,
+                       strbuf_commented_addf(&msg, comment_line_char,
                                _(no_scissors_editor_comment), comment_line_char);
        }
        if (signoff)
index d5788352b6ee7c69663ddf822134b55a36bf95b0..3bad5b458bb17c7c7723910f985ed69930a77757 100644 (file)
@@ -11,6 +11,7 @@
 #include "config.h"
 #include "builtin.h"
 #include "editor.h"
+#include "environment.h"
 #include "gettext.h"
 #include "hex.h"
 #include "notes.h"
@@ -157,7 +158,7 @@ static void write_commented_object(int fd, const struct object_id *object)
 
        if (strbuf_read(&buf, show.out, 0) < 0)
                die_errno(_("could not read 'show' output"));
-       strbuf_add_commented_lines(&cbuf, buf.buf, buf.len);
+       strbuf_add_commented_lines(&cbuf, buf.buf, buf.len, comment_line_char);
        write_or_die(fd, cbuf.buf, cbuf.len);
 
        strbuf_release(&cbuf);
@@ -185,9 +186,10 @@ static void prepare_note_data(const struct object_id *object, struct note_data *
                        copy_obj_to_fd(fd, old_note);
 
                strbuf_addch(&buf, '\n');
-               strbuf_add_commented_lines(&buf, "\n", strlen("\n"));
-               strbuf_add_commented_lines(&buf, _(note_template), strlen(_(note_template)));
-               strbuf_add_commented_lines(&buf, "\n", strlen("\n"));
+               strbuf_add_commented_lines(&buf, "\n", strlen("\n"), comment_line_char);
+               strbuf_add_commented_lines(&buf, _(note_template), strlen(_(note_template)),
+                                          comment_line_char);
+               strbuf_add_commented_lines(&buf, "\n", strlen("\n"), comment_line_char);
                write_or_die(fd, buf.buf, buf.len);
 
                write_commented_object(fd, object);
@@ -199,7 +201,7 @@ static void prepare_note_data(const struct object_id *object, struct note_data *
                if (launch_editor(d->edit_path, &d->buf, NULL)) {
                        die(_("please supply the note contents using either -m or -F option"));
                }
-               strbuf_stripspace(&d->buf, 1);
+               strbuf_stripspace(&d->buf, comment_line_char);
        }
 }
 
@@ -225,7 +227,7 @@ static int parse_msg_arg(const struct option *opt, const char *arg, int unset)
        if (d->buf.len)
                strbuf_addch(&d->buf, '\n');
        strbuf_addstr(&d->buf, arg);
-       strbuf_stripspace(&d->buf, 0);
+       strbuf_stripspace(&d->buf, '\0');
 
        d->given = 1;
        return 0;
@@ -244,7 +246,7 @@ static int parse_file_arg(const struct option *opt, const char *arg, int unset)
                        die_errno(_("cannot read '%s'"), arg);
        } else if (strbuf_read_file(&d->buf, arg, 1024) < 0)
                die_errno(_("could not open or read '%s'"), arg);
-       strbuf_stripspace(&d->buf, 0);
+       strbuf_stripspace(&d->buf, '\0');
 
        d->given = 1;
        return 0;
index ace1d5e8d11afee64ce0e400867b97b627282f2f..b1ba9fb05dd8825030852f94406fd67f7a066368 100644 (file)
@@ -209,7 +209,7 @@ static int edit_todo_file(unsigned flags)
        if (strbuf_read_file(&todo_list.buf, todo_file, 0) < 0)
                return error_errno(_("could not read '%s'."), todo_file);
 
-       strbuf_stripspace(&todo_list.buf, 1);
+       strbuf_stripspace(&todo_list.buf, comment_line_char);
        res = edit_todo_list(the_repository, &todo_list, &new_todo, NULL, NULL, flags);
        if (!res && todo_list_write_to_file(the_repository, &new_todo, todo_file,
                                            NULL, NULL, -1, flags & ~(TODO_LIST_SHORTEN_IDS)))
index 9451eb69ff4771931118e948669114e9f3d4e63d..1987752359c95a4d5ffa644d22853eded96bf020 100644 (file)
@@ -1,6 +1,7 @@
 #include "builtin.h"
 #include "cache.h"
 #include "config.h"
+#include "environment.h"
 #include "gettext.h"
 #include "parse-options.h"
 #include "setup.h"
@@ -13,7 +14,7 @@ static void comment_lines(struct strbuf *buf)
        size_t len;
 
        msg = strbuf_detach(buf, &len);
-       strbuf_add_commented_lines(buf, msg, len);
+       strbuf_add_commented_lines(buf, msg, len, comment_line_char);
        free(msg);
 }
 
@@ -58,7 +59,8 @@ int cmd_stripspace(int argc, const char **argv, const char *prefix)
                die_errno("could not read the input");
 
        if (mode == STRIP_DEFAULT || mode == STRIP_COMMENTS)
-               strbuf_stripspace(&buf, mode == STRIP_COMMENTS);
+               strbuf_stripspace(&buf,
+                         mode == STRIP_COMMENTS ? comment_line_char : '\0');
        else
                comment_lines(&buf);
 
index 1850a6a6fdcf82f18ad3f1f1aefd5d22fc527e3f..b79e0a88e6839eee542727549b581a5b0d27dedf 100644 (file)
@@ -311,9 +311,11 @@ static void create_tag(const struct object_id *object, const char *object_ref,
                        struct strbuf buf = STRBUF_INIT;
                        strbuf_addch(&buf, '\n');
                        if (opt->cleanup_mode == CLEANUP_ALL)
-                               strbuf_commented_addf(&buf, _(tag_template), tag, comment_line_char);
+                               strbuf_commented_addf(&buf, comment_line_char,
+                                     _(tag_template), tag, comment_line_char);
                        else
-                               strbuf_commented_addf(&buf, _(tag_template_nocleanup), tag, comment_line_char);
+                               strbuf_commented_addf(&buf, comment_line_char,
+                                     _(tag_template_nocleanup), tag, comment_line_char);
                        write_or_die(fd, buf.buf, buf.len);
                        strbuf_release(&buf);
                }
@@ -327,7 +329,8 @@ static void create_tag(const struct object_id *object, const char *object_ref,
        }
 
        if (opt->cleanup_mode != CLEANUP_NONE)
-               strbuf_stripspace(buf, opt->cleanup_mode == CLEANUP_ALL);
+               strbuf_stripspace(buf,
+                 opt->cleanup_mode == CLEANUP_ALL ? comment_line_char : '\0');
 
        if (!opt->message_given && !buf->len)
                die(_("no tag message?"));
index 5af0d4715ba22f2f1629880ec530a0752398e716..5d15e2387d8b3bdbeca13751c8f3a35922bbb4e9 100644 (file)
@@ -508,7 +508,8 @@ static void fmt_tag_signature(struct strbuf *tagbuf,
        strbuf_complete_line(tagbuf);
        if (sig->len) {
                strbuf_addch(tagbuf, '\n');
-               strbuf_add_commented_lines(tagbuf, sig->buf, sig->len);
+               strbuf_add_commented_lines(tagbuf, sig->buf, sig->len,
+                                          comment_line_char);
        }
 }
 
@@ -554,7 +555,8 @@ static void fmt_merge_msg_sigs(struct strbuf *out)
                                strbuf_addch(&tagline, '\n');
                                strbuf_add_commented_lines(&tagline,
                                                origins.items[first_tag].string,
-                                               strlen(origins.items[first_tag].string));
+                                               strlen(origins.items[first_tag].string),
+                                               comment_line_char);
                                strbuf_insert(&tagbuf, 0, tagline.buf,
                                              tagline.len);
                                strbuf_release(&tagline);
@@ -562,7 +564,8 @@ static void fmt_merge_msg_sigs(struct strbuf *out)
                        strbuf_addch(&tagbuf, '\n');
                        strbuf_add_commented_lines(&tagbuf,
                                        origins.items[i].string,
-                                       strlen(origins.items[i].string));
+                                       strlen(origins.items[i].string),
+                                       comment_line_char);
                        fmt_tag_signature(&tagbuf, &sig, buf, len);
                }
                strbuf_release(&payload);
index 19a3471a0b55a5b5f92d0756cd4c1419d2b2e344..6a3817bbca554fcbc25ec30826055a684b3b45a6 100644 (file)
@@ -13,6 +13,7 @@
 #include "tempfile.h"
 #include "alias.h"
 #include "wrapper.h"
+#include "environment.h"
 
 static int git_gpg_config(const char *, const char *, void *);
 
@@ -586,8 +587,8 @@ static int verify_ssh_signed_buffer(struct signature_check *sigc,
                }
        }
 
-       strbuf_stripspace(&ssh_keygen_out, 0);
-       strbuf_stripspace(&ssh_keygen_err, 0);
+       strbuf_stripspace(&ssh_keygen_out, '\0');
+       strbuf_stripspace(&ssh_keygen_err, '\0');
        /* Add stderr outputs to show the user actual ssh-keygen errors */
        strbuf_add(&ssh_keygen_out, ssh_principals_err.buf, ssh_principals_err.len);
        strbuf_add(&ssh_keygen_out, ssh_keygen_err.buf, ssh_keygen_err.len);
index 852a33131827150e54cf9b7143dfeb73cc6ece5c..f286404d4b53d32b8f4b63f9e07aa197fecbeb90 100644 (file)
@@ -72,13 +72,14 @@ void append_todo_help(int command_count,
 
        if (!edit_todo) {
                strbuf_addch(buf, '\n');
-               strbuf_commented_addf(buf, Q_("Rebase %s onto %s (%d command)",
-                                             "Rebase %s onto %s (%d commands)",
-                                             command_count),
+               strbuf_commented_addf(buf, comment_line_char,
+                                     Q_("Rebase %s onto %s (%d command)",
+                                        "Rebase %s onto %s (%d commands)",
+                                        command_count),
                                      shortrevisions, shortonto, command_count);
        }
 
-       strbuf_add_commented_lines(buf, msg, strlen(msg));
+       strbuf_add_commented_lines(buf, msg, strlen(msg), comment_line_char);
 
        if (get_missing_commit_check_level() == MISSING_COMMIT_CHECK_ERROR)
                msg = _("\nDo not remove any line. Use 'drop' "
@@ -87,7 +88,7 @@ void append_todo_help(int command_count,
                msg = _("\nIf you remove a line here "
                         "THAT COMMIT WILL BE LOST.\n");
 
-       strbuf_add_commented_lines(buf, msg, strlen(msg));
+       strbuf_add_commented_lines(buf, msg, strlen(msg), comment_line_char);
 
        if (edit_todo)
                msg = _("\nYou are editing the todo file "
@@ -98,7 +99,7 @@ void append_todo_help(int command_count,
                msg = _("\nHowever, if you remove everything, "
                        "the rebase will be aborted.\n\n");
 
-       strbuf_add_commented_lines(buf, msg, strlen(msg));
+       strbuf_add_commented_lines(buf, msg, strlen(msg), comment_line_char);
 }
 
 int edit_todo_list(struct repository *r, struct todo_list *todo_list,
@@ -130,7 +131,7 @@ int edit_todo_list(struct repository *r, struct todo_list *todo_list,
        if (launch_sequence_editor(todo_file, &new_todo->buf, NULL))
                return -2;
 
-       strbuf_stripspace(&new_todo->buf, 1);
+       strbuf_stripspace(&new_todo->buf, comment_line_char);
        if (initial && new_todo->buf.len == 0)
                return -3;
 
index bceb6abcb6c733808b3defb7c30b9857be5d6e8e..a8a70ab235f0279da5c52f19524c85e490d7fb61 100644 (file)
@@ -660,11 +660,12 @@ void append_conflicts_hint(struct index_state *istate,
        }
 
        strbuf_addch(msgbuf, '\n');
-       strbuf_commented_addf(msgbuf, "Conflicts:\n");
+       strbuf_commented_addf(msgbuf, comment_line_char, "Conflicts:\n");
        for (i = 0; i < istate->cache_nr;) {
                const struct cache_entry *ce = istate->cache[i++];
                if (ce_stage(ce)) {
-                       strbuf_commented_addf(msgbuf, "\t%s\n", ce->name);
+                       strbuf_commented_addf(msgbuf, comment_line_char,
+                                             "\t%s\n", ce->name);
                        while (i < istate->cache_nr &&
                               !strcmp(ce->name, istate->cache[i]->name))
                                i++;
@@ -1143,7 +1144,8 @@ void cleanup_message(struct strbuf *msgbuf,
            cleanup_mode == COMMIT_MSG_CLEANUP_SCISSORS)
                strbuf_setlen(msgbuf, wt_status_locate_end(msgbuf->buf, msgbuf->len));
        if (cleanup_mode != COMMIT_MSG_CLEANUP_NONE)
-               strbuf_stripspace(msgbuf, cleanup_mode == COMMIT_MSG_CLEANUP_ALL);
+               strbuf_stripspace(msgbuf,
+                 cleanup_mode == COMMIT_MSG_CLEANUP_ALL ? comment_line_char : '\0');
 }
 
 /*
@@ -1174,7 +1176,8 @@ int template_untouched(const struct strbuf *sb, const char *template_file,
        if (!template_file || strbuf_read_file(&tmpl, template_file, 0) <= 0)
                return 0;
 
-       strbuf_stripspace(&tmpl, cleanup_mode == COMMIT_MSG_CLEANUP_ALL);
+       strbuf_stripspace(&tmpl,
+         cleanup_mode == COMMIT_MSG_CLEANUP_ALL ? comment_line_char : '\0');
        if (!skip_prefix(sb->buf, tmpl.buf, &start))
                start = sb->buf;
        strbuf_release(&tmpl);
@@ -1546,7 +1549,8 @@ static int try_to_commit(struct repository *r,
                cleanup = opts->default_msg_cleanup;
 
        if (cleanup != COMMIT_MSG_CLEANUP_NONE)
-               strbuf_stripspace(msg, cleanup == COMMIT_MSG_CLEANUP_ALL);
+               strbuf_stripspace(msg,
+                 cleanup == COMMIT_MSG_CLEANUP_ALL ? comment_line_char : '\0');
        if ((flags & EDIT_MSG) && message_is_empty(msg, cleanup)) {
                res = 1; /* run 'git commit' to display error message */
                goto out;
@@ -1840,7 +1844,7 @@ static void add_commented_lines(struct strbuf *buf, const void *str, size_t len)
                s += count;
                len -= count;
        }
-       strbuf_add_commented_lines(buf, s, len);
+       strbuf_add_commented_lines(buf, s, len, comment_line_char);
 }
 
 /* Does the current fixup chain contain a squash command? */
@@ -1939,7 +1943,7 @@ static int append_squash_message(struct strbuf *buf, const char *body,
        strbuf_addf(buf, _(nth_commit_msg_fmt),
                    ++opts->current_fixup_count + 1);
        strbuf_addstr(buf, "\n\n");
-       strbuf_add_commented_lines(buf, body, commented_len);
+       strbuf_add_commented_lines(buf, body, commented_len, comment_line_char);
        /* buf->buf may be reallocated so store an offset into the buffer */
        fixup_off = buf->len;
        strbuf_addstr(buf, body + commented_len);
@@ -2029,7 +2033,8 @@ static int update_squash_messages(struct repository *r,
                              _(first_commit_msg_str));
                strbuf_addstr(&buf, "\n\n");
                if (is_fixup_flag(command, flag))
-                       strbuf_add_commented_lines(&buf, body, strlen(body));
+                       strbuf_add_commented_lines(&buf, body, strlen(body),
+                                                  comment_line_char);
                else
                        strbuf_addstr(&buf, body);
 
@@ -2048,7 +2053,8 @@ static int update_squash_messages(struct repository *r,
                strbuf_addf(&buf, _(skip_nth_commit_msg_fmt),
                            ++opts->current_fixup_count + 1);
                strbuf_addstr(&buf, "\n\n");
-               strbuf_add_commented_lines(&buf, body, strlen(body));
+               strbuf_add_commented_lines(&buf, body, strlen(body),
+                                          comment_line_char);
        } else
                return error(_("unknown command: %d"), command);
        repo_unuse_commit_buffer(r, commit, message);
index d5978fee4e45596ecf20bb36d5885ee15229c0ef..67e399b60a6af04e7ad3d27709034715119e1cef 100644 (file)
--- a/strbuf.c
+++ b/strbuf.c
@@ -1,6 +1,5 @@
 #include "git-compat-util.h"
 #include "alloc.h"
-#include "environment.h"
 #include "gettext.h"
 #include "hex.h"
 #include "strbuf.h"
@@ -362,7 +361,8 @@ static void add_lines(struct strbuf *out,
        strbuf_complete_line(out);
 }
 
-void strbuf_add_commented_lines(struct strbuf *out, const char *buf, size_t size)
+void strbuf_add_commented_lines(struct strbuf *out, const char *buf,
+                               size_t size, char comment_line_char)
 {
        static char prefix1[3];
        static char prefix2[2];
@@ -374,7 +374,8 @@ void strbuf_add_commented_lines(struct strbuf *out, const char *buf, size_t size
        add_lines(out, prefix1, prefix2, buf, size);
 }
 
-void strbuf_commented_addf(struct strbuf *sb, const char *fmt, ...)
+void strbuf_commented_addf(struct strbuf *sb, char comment_line_char,
+                          const char *fmt, ...)
 {
        va_list params;
        struct strbuf buf = STRBUF_INIT;
@@ -384,7 +385,7 @@ void strbuf_commented_addf(struct strbuf *sb, const char *fmt, ...)
        strbuf_vaddf(&buf, fmt, params);
        va_end(params);
 
-       strbuf_add_commented_lines(sb, buf.buf, buf.len);
+       strbuf_add_commented_lines(sb, buf.buf, buf.len, comment_line_char);
        if (incomplete_line)
                sb->buf[--sb->len] = '\0';
 
@@ -1051,10 +1052,10 @@ static size_t cleanup(char *line, size_t len)
  *
  * If last line does not have a newline at the end, one is added.
  *
- * Enable skip_comments to skip every line starting with comment
- * character.
+ * Pass a non-NUL comment_line_char to skip every line starting
+ * with it.
  */
-void strbuf_stripspace(struct strbuf *sb, int skip_comments)
+void strbuf_stripspace(struct strbuf *sb, char comment_line_char)
 {
        size_t empties = 0;
        size_t i, j, len, newlen;
@@ -1067,7 +1068,8 @@ void strbuf_stripspace(struct strbuf *sb, int skip_comments)
                eol = memchr(sb->buf + i, '\n', sb->len - i);
                len = eol ? eol - (sb->buf + i) + 1 : sb->len - i;
 
-               if (skip_comments && len && sb->buf[i] == comment_line_char) {
+               if (comment_line_char && len &&
+                   sb->buf[i] == comment_line_char) {
                        newlen = 0;
                        continue;
                }
index 5d97e27b991683b48bfd6a74ad139ef4b726b72f..da91c17257861ea22607b5f050159df98b1f35cc 100644 (file)
--- a/strbuf.h
+++ b/strbuf.h
@@ -291,7 +291,8 @@ void strbuf_splice(struct strbuf *sb, size_t pos, size_t len,
  * by a comment character and a blank.
  */
 void strbuf_add_commented_lines(struct strbuf *out,
-                               const char *buf, size_t size);
+                               const char *buf, size_t size,
+                               char comment_line_char);
 
 
 /**
@@ -420,8 +421,8 @@ void strbuf_addf(struct strbuf *sb, const char *fmt, ...);
  * Add a formatted string prepended by a comment character and a
  * blank to the buffer.
  */
-__attribute__((format (printf, 2, 3)))
-void strbuf_commented_addf(struct strbuf *sb, const char *fmt, ...);
+__attribute__((format (printf, 3, 4)))
+void strbuf_commented_addf(struct strbuf *sb, char comment_line_char, const char *fmt, ...);
 
 __attribute__((format (printf,2,0)))
 void strbuf_vaddf(struct strbuf *sb, const char *fmt, va_list ap);
@@ -543,10 +544,11 @@ int strbuf_getcwd(struct strbuf *sb);
 int strbuf_normalize_path(struct strbuf *sb);
 
 /**
- * Strip whitespace from a buffer. The second parameter controls if
- * comments are considered contents to be removed or not.
+ * Strip whitespace from a buffer. If comment_line_char is non-NUL,
+ * then lines beginning with that character are considered comments,
+ * thus removed.
  */
-void strbuf_stripspace(struct strbuf *buf, int skip_comments);
+void strbuf_stripspace(struct strbuf *buf, char comment_line_char);
 
 static inline int strbuf_strip_suffix(struct strbuf *sb, const char *suffix)
 {
index 068b76ef6d9644c6f1e1576e425ac5339845e004..677465b10c193438971c860867aa19f58a49a879 100644 (file)
@@ -1024,7 +1024,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);
+               strbuf_add_commented_lines(&summary, summary_content, len, comment_line_char);
                free(summary_content);
        }
 
@@ -1099,8 +1099,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, "%s", cut_line);
-       strbuf_add_commented_lines(buf, explanation, strlen(explanation));
+       strbuf_commented_addf(buf, comment_line_char, "%s", cut_line);
+       strbuf_add_commented_lines(buf, explanation, strlen(explanation), comment_line_char);
 }
 
 void wt_status_add_cut_line(FILE *fp)