git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 5/5] wt-status: read rebase todolist with strbuf_getline()

From
MNMoritz Neeb <lists@moritzneeb.de>
Date
Jan 30, 2016, 18:05 UTC
Message-ID
<56ACFB7B.6050800@moritzneeb.de>
In-Reply-To
<56ACF82B.2030005@moritzneeb.de>
    In read_rebase_todolist() every line is, after reading, checked
    for a comment_line_char. After that it is trimmed via strbuf_trim().
    Assuming we do never expect a CR as comment_line_char,
    strbuf_getline_lf() can be safely replaced by its CRLF counterpart.
Signed-off-by: Moritz Neeb <lists@moritzneeb.de>
---
Notes:
    Looking at the code in read_rebase_todolist(), the
    lines are read, checked for a comment_line_char and then trimmed. I
    wonder why the input is not trimmed before checking for this character?
    Is it safe to replace strbuf_getline_lf() by strbuf_getline() anyway?
        The only case I can imagine that could lead to unexpected behaviour then
    would be when someone sets the comment_line_char to CR. How likely is that?
        Why is the trim _after_ checking for the comment char anyway? Should
    something like "   # foobar" not be considered as comment?
        I decided to roll out the patch because I considered it not as a risk to be
    taken seriously, that the comment line char will be '\r'.
        Meta-question: Should something of this discussion be put into the commit?
 wt-status.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/wt-status.c b/wt-status.c
index ab4f80d..f053b2f 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1076,7 +1076,7 @@ static void read_rebase_todolist(const char *fname, struct string_list *lines)
 	if (!f)
 		die_errno("Could not open file %s for reading",
 			  git_path("%s", fname));
-	while (!strbuf_getline_lf(&line, f)) {
+	while (!strbuf_getline(&line, f)) {
 		if (line.len && line.buf[0] == comment_line_char)
 			continue;
 		strbuf_trim(&line);
-- 
2.4.3
Previous: Moritz NeebNext: Junio C Hamano
Message 13 of 14 in “Replacing strbuf_getline_lf() by strbuf_getline() on trimmed input”
  1. 0/5 Replacing strbuf_getline_lf() by strbuf_getline() on trimmed inputMoritz Neeb, Jan 30, 2016
  2. 1/5 bisect: read bisect paths with strbuf_getline()Moritz Neeb, Jan 30, 2016
  3. Junio C HamanoFeb 1, 2016
  4. Moritz NeebFeb 14, 2016
  5. Junio C HamanoFeb 15, 2016
  6. Moritz NeebFeb 21, 2016
  7. Moritz NeebFeb 22, 2016
  8. 2/5 clean: read user input with strbuf_getline()Moritz Neeb, Jan 30, 2016
  9. Junio C HamanoFeb 1, 2016
  10. 3/5 notes: read copied notes with strbuf_getline()Moritz Neeb, Jan 30, 2016
  11. Junio C HamanoFeb 1, 2016
  12. 4/5 remote: read $GIT_DIR/branches/* with strbuf_getline()Moritz Neeb, Jan 30, 2016
  13. 5/5 wt-status: read rebase todolist with strbuf_getline()Moritz Neeb, Jan 30, 2016
  14. Junio C HamanoFeb 1, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.