Replacing strbuf_getline_lf() by strbuf_getline() in wt-status.c
Currently I am working on replacing strbuf_getline_lf() by strbuf_getline() in places where the input is trimmed immediately after reading, cf. $gmane/284104, "Notes on the remaining strbuf_getline_lf() callers", 2nd point.
One instance I found was in wt-status.c. 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?
Quoted 4 lines · Moritz Neeb
Currently I am working on replacing
strbuf_getline_lf()bystrbuf_getline()in places where the input is trimmed immediately after reading, cf. $gmane/284104, "Notes on the remainingstrbuf_getline_lf()callers", 2nd point.
This thread turned obsolete, as I decided to post a patch to focus the discussion a bit more:
http://thread.gmane.org/gmane.comp.version-control.git/285118
-Moritz
Quoted 10 lines · Moritz Neeb
Currently I am working on replacing
strbuf_getline_lf()bystrbuf_getline()in places where the input is trimmed immediately after reading, cf. $gmane/284104, "Notes on the remainingstrbuf_getline_lf()callers", 2nd point.One instance I found was in
wt-status.c. Inread_rebase_todolist()the lines are read, checked for acomment_line_charand then trimmed. I wonder why the input is not trimmed before checking for this character? Is it safe to replacestrbuf_getline_lf()bystrbuf_getline()anyway?
Quoted 5 lines
The only case I can imagine that could lead to unexpected behaviour then would be when someone sets the
comment_line_charto 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?
That is debatable, I would think, as "git commit" and others do not generally accept a line that does not begin with a comment char as a comment.
I however think we made an exception for the rebase-i's insn file due to a mistake we made long time ago that allowed such line, caused people to build a workflow around the assumption that it is OK to prefix a comment line with whitespaces.
Cf. the last paragraph of 1db168ee (rebase-i: loosen over-eager
check_bad_cmd check, 2015-10-01).
Cf. http://thread.gmane.org/gmane.comp.version-control.git/278841
So we probably want to be consistent with that in this codepath.