Skip to content

replacing strbuf_getline_lf() by strbuf_getline()

Moritz Neeb git 4 versions In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v4 Latest7 patches 12 repliesIn review
  2. v37 patches 10 repliesSuperseded
  3. v26 patches 7 repliesSuperseded
Earlier versions · 1
VersionPostedPatchesRepliesStatus
v15 patches8 repliesSuperseded

Patches in v4 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/7quote: remove leading space in sq_dequote_stepquote.c+2 -03 replies
2/7bisect: read bisect paths with strbuf_getline()bisect.c+2 -30 replies
3/7clean: read user input with strbuf_getline()builtin/clean.c+3 -30 replies
4/7notes copy --stdin: read lines with strbuf_getline()builtin/notes.c+1 -23 replies
5/7notes copy --stdin: split lines with string_list_split()builtin/notes.c+9 -100 replies
6/7remote: read $GIT_DIR/branches/* with strbuf_getline()remote.c+1 -10 replies
7/7wt-status: read rebase todolist with strbuf_getline()wt-status.c+1 -20 replies

Reviews trailers per patch

None of the 7 patches has a Reviewed-by or Acked-by.

PatchJunio C HamanoEric Sunshine
1/7
2/7Helped-by
3/7
4/7
5/7Helped-by
6/7
7/7

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v4 thread

Cover letter [PATCH v4 0/7] replacing strbuf_getline_lf() by strbuf_getline()

Although I was not sure [4], I decided to roll out v4, in the hope that the next reviewers will profit by the more polished commit messages and order.

This series deals with strbuf_getline_lf() in certain codepaths:
Those, where the input that is read, is/was trimmed before doing anything that could possibly expect a CR character. Those places can be assumed to be "text" input, where a CR never would be a meaningful control character.

The purpose of this series is to document these places to have this property, by using strbuf_getline() instead of strbuf_getline_lf(). Also in some codepaths, the CR could be a leftover of an editor and is thus removed.

Every codepath was examined, if after the change it is still necessary to have trimming or if the additional CRLF-removal suffices.

The series is an idea out of [1], where Junio proposed to replace the calls to strbuf_getline_lf() because it 'would [be] a good way to document them as dealing with "text"'.

Changes since v3 [3] (the changes to single patches are indicated below):

* Commit messages refined
* Order of patch 4 and 5 in v2 was switched.

The interdiff only removes an empty line (I noticed, when changing the order of commits, that the splitting operation had no newline before this whole series, so I left it that way):

builtin/notes.c +0 -1
index 660c0b7..715fade 100644
@@ -296,7 +296,6 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
         int err;
 
         string_list_split(&split, buf.buf, ' ', -1);
-
         if (split.nr != 2)
             die(_("Malformed input line: '%s'."), buf.buf);
         if (get_sha1(split.items[0].string, from_obj))

-Moritz

[1], idea: http://thread.gmane.org/gmane.comp.version-control.git/284104
[2], v2: http://thread.gmane.org/gmane.comp.version-control.git/285118/focus=286865
[3], v3: http://thread.gmane.org/gmane.comp.version-control.git/285118/focus=287747
[4] http://thread.gmane.org/gmane.comp.version-control.git/285118/focus=287760

Moritz Neeb (7):
quote: remove leading space in sq_dequote_step -- as in v2
bisect: read bisect paths with strbuf_getline() -- refined commit message
clean: read user input with strbuf_getline() -- simplified commit message notes copy --stdin: read lines with strbuf_getline() -- switched with below notes copy --stdin: split lines with string_list_split() -- switched with above
remote: read $GIT_DIR/branches/* with strbuf_getline() -- as in v3
wt-status: read rebase todolist with strbuf_getline() -- as in v2

 bisect.c        |  5 ++---
 builtin/clean.c |  6 +++---
 builtin/notes.c | 22 ++++++++++------------
 quote.c         |  2 ++
 remote.c        |  2 +-
 wt-status.c     |  3 +--
 6 files changed, 19 insertions(+), 21 deletions(-)
Signature · 1 line
2.4.3