threads / discuss / 41290

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

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

## tl;dr

3 messages between Jan 30, 2016 and Jan 31, 2016.

replies: 2people: 2as markdown or json

Moritz Neeb· Jan 30, 2016, 14:30 UTC · lore

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?

Moritz Neeb· Jan 30, 2016, 22:49 UTC · re: Moritz Neeb · lore

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

On 01/30/2016 03:30 PM, Moritz Neeb wrote:
> 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
Junio C Hamano· Jan 31, 2016, 16:59 UTC · re: Moritz Neeb · lore

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

Moritz Neeb <lists@moritzneeb.de> writes:
Show 15 quoted lines
> 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.

← back to recent threads