Re: Replacing strbuf_getline_lf() by strbuf_getline() in wt-status.c
From: Junio C Hamano <hidden>
Date: 2016-06-15 23:08:02
Moritz Neeb [off-list ref] writes:
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?
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.