From: Moritz Neeb <lists@moritzneeb.de>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>,
Eric Sunshine <sunshine@sunshineco.com>
Subject: [PATCH v3 4/7] notes copy --stdin: split lines with string_list_split()
Date: Sun, 28 Feb 2016 06:13:43 +0100 [thread overview]
Message-ID: <56D28207.6080600@moritzneeb.de> (raw)
In-Reply-To: <56D28092.9090209@moritzneeb.de>
This patch changes, how the lines are split, when reading them from
stdin to copy the notes. The advantage of string_list_split() over
strbuf_split() is that it removes the terminator, making trimming
of the left part unneccesary.
The strbuf is now rtrimmed before splitting. This is still required
to remove potential CRs. In the next step this will then be done
implicitly by strbuf_readline(). Thus, this is a preparatory refactoring,
towards a trim-free codepath.
Signed-off-by: Moritz Neeb <lists@moritzneeb.de>
---
builtin/notes.c | 22 +++++++++++-----------
1 file changed, 11 insertions(+), 11 deletions(-)
diff --git a/builtin/notes.c b/builtin/notes.c
index ed6f222..22909c7 100644
--- a/builtin/notes.c
+++ b/builtin/notes.c
@@ -292,18 +292,18 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
while (strbuf_getline_lf(&buf, stdin) != EOF) {
unsigned char from_obj[20], to_obj[20];
- struct strbuf **split;
+ struct string_list split = STRING_LIST_INIT_DUP;
int err;
- split = strbuf_split(&buf, ' ');
- if (!split[0] || !split[1])
+ strbuf_rtrim(&buf);
+ string_list_split(&split, buf.buf, ' ', -1);
+
+ if (split.nr != 2)
die(_("Malformed input line: '%s'."), buf.buf);
- strbuf_rtrim(split[0]);
- strbuf_rtrim(split[1]);
- if (get_sha1(split[0]->buf, from_obj))
- die(_("Failed to resolve '%s' as a valid ref."), split[0]->buf);
- if (get_sha1(split[1]->buf, to_obj))
- die(_("Failed to resolve '%s' as a valid ref."), split[1]->buf);
+ if (get_sha1(split.items[0].string, from_obj))
+ die(_("Failed to resolve '%s' as a valid ref."), split.items[0].string);
+ if (get_sha1(split.items[1].string, to_obj))
+ die(_("Failed to resolve '%s' as a valid ref."), split.items[1].string);
if (rewrite_cmd)
err = copy_note_for_rewrite(c, from_obj, to_obj);
@@ -313,11 +313,11 @@ static int notes_copy_from_stdin(int force, const char *rewrite_cmd)
if (err) {
error(_("Failed to copy notes from '%s' to '%s'"),
- split[0]->buf, split[1]->buf);
+ split.items[0].string, split.items[1].string);
ret = 1;
}
- strbuf_list_free(split);
+ string_list_clear(&split, 0);
}
if (!rewrite_cmd) {
--
2.4.3
next prev parent reply other threads:[~2016-02-28 5:15 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-01-30 17:51 [PATCH 0/5] Replacing strbuf_getline_lf() by strbuf_getline() on trimmed input Moritz Neeb
2016-01-30 18:03 ` [PATCH 1/5] bisect: read bisect paths with strbuf_getline() Moritz Neeb
2016-02-01 21:30 ` Junio C Hamano
2016-02-14 21:01 ` Moritz Neeb
2016-02-15 5:05 ` Junio C Hamano
2016-02-21 23:48 ` Moritz Neeb
2016-02-22 0:07 ` Moritz Neeb
2016-01-30 18:04 ` [PATCH 2/5] clean: read user input " Moritz Neeb
2016-02-01 21:30 ` Junio C Hamano
2016-01-30 18:05 ` [PATCH 3/5] notes: read copied notes " Moritz Neeb
2016-02-01 21:34 ` Junio C Hamano
2016-01-30 18:05 ` [PATCH 4/5] remote: read $GIT_DIR/branches/* " Moritz Neeb
2016-01-30 18:05 ` [PATCH 5/5] wt-status: read rebase todolist " Moritz Neeb
2016-02-01 21:39 ` Junio C Hamano
2016-02-22 1:00 ` [PATCH v2 0/6] replacing strbuf_getline_lf() by strbuf_getline() on trimmed input Moritz Neeb
2016-02-22 1:15 ` [PATCH v2 1/6] quote: remove leading space in sq_dequote_step Moritz Neeb
2016-02-22 1:15 ` [PATCH v2 2/6] bisect: read bisect paths with strbuf_getline() Moritz Neeb
2016-02-22 1:16 ` [PATCH v2 4/6] notes: read copied notes " Moritz Neeb
2016-02-22 2:41 ` Eric Sunshine
2016-02-22 19:27 ` Junio C Hamano
2016-02-22 1:17 ` [PATCH v2 6/6] wt-status: read rebase todolist " Moritz Neeb
2016-02-22 19:30 ` Junio C Hamano
2016-02-22 1:20 ` [PATCH v2 3/6] clean: read user input " Moritz Neeb
2016-02-22 2:27 ` Eric Sunshine
2016-02-22 7:40 ` Moritz Neeb
2016-02-22 19:40 ` Junio C Hamano
2016-02-22 1:22 ` [PATCH v2 5/6] remote: read $GIT_DIR/branches/* " Moritz Neeb
2016-02-22 19:09 ` Junio C Hamano
2016-02-28 5:07 ` [PATCH v3 0/7] replacing strbuf_getline_lf() by strbuf_getline() Moritz Neeb
2016-02-28 5:13 ` [PATCH v3 1/7] quote: remove leading space in sq_dequote_step Moritz Neeb
2016-02-28 5:13 ` [PATCH v3 2/7] bisect: read bisect paths with strbuf_getline() Moritz Neeb
2016-02-28 6:33 ` Eric Sunshine
2016-02-28 7:30 ` Moritz Neeb
2016-02-28 5:13 ` [PATCH v3 3/7] clean: read user input " Moritz Neeb
2016-02-28 6:36 ` Eric Sunshine
2016-02-28 7:36 ` Moritz Neeb
2016-02-28 5:13 ` Moritz Neeb [this message]
2016-02-28 6:56 ` [PATCH v3 4/7] notes copy --stdin: split lines with string_list_split() Eric Sunshine
2016-02-28 7:47 ` Moritz Neeb
2016-02-28 16:02 ` Eric Sunshine
2016-02-28 5:13 ` [PATCH v3 5/7] notes copy --stdin: read lines with strbuf_getline() Moritz Neeb
2016-02-28 5:14 ` [PATCH v3 6/7] remote: read $GIT_DIR/branches/* " Moritz Neeb
2016-02-28 5:14 ` [PATCH v3 7/7] wt-status: read rebase todolist " Moritz Neeb
2016-02-28 6:30 ` [PATCH v3 0/7] replacing strbuf_getline_lf() by strbuf_getline() Eric Sunshine
2016-02-28 7:20 ` Moritz Neeb
2016-02-28 8:03 ` Moritz Neeb
2016-02-29 8:30 ` [PATCH v4 " Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 1/7] quote: remove leading space in sq_dequote_step Moritz Neeb
2016-02-29 19:01 ` Junio C Hamano
2016-02-29 21:45 ` Moritz Neeb
2016-02-29 21:48 ` Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 2/7] bisect: read bisect paths with strbuf_getline() Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 3/7] clean: read user input " Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 5/7] notes copy --stdin: split lines with string_list_split() Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 6/7] remote: read $GIT_DIR/branches/* with strbuf_getline() Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 7/7] wt-status: read rebase todolist " Moritz Neeb
2016-02-29 8:36 ` [PATCH v4 4/7] notes copy --stdin: read lines " Moritz Neeb
2016-02-29 18:19 ` Eric Sunshine
2016-02-29 19:26 ` Moritz Neeb
2016-02-29 19:48 ` Eric Sunshine
2016-02-29 18:26 ` [PATCH v4 0/7] replacing strbuf_getline_lf() by strbuf_getline() Eric Sunshine
2016-03-09 0:25 ` Moritz Neeb
2016-03-09 0:39 ` Junio C Hamano
2016-03-09 1:13 ` Moritz Neeb
2016-03-09 20:28 ` Junio C Hamano
2016-03-09 1:17 ` Eric Sunshine
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56D28207.6080600@moritzneeb.de \
--to=lists@moritzneeb.de \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=sunshine@sunshineco.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).