Skip to contentSkip to conversation

Replacing strbuf_getline_lf() by strbuf_getline() in wt-status.c

DISCUSSION Moritz Neeb 2 participants 3 messages Jun 15, 2016

lore
Share & tools
lore
#0 lore raw

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?

#1 lore raw
Quoted 4 lines · Moritz Neeb

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.

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

#2 lore raw
In reply to Moritz Neeb
Quoted 10 lines · Moritz Neeb

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?

Quoted 5 lines

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.