[PATCH 2/4] revert: use getn_sha1() to simplify insn parsing
From: Ramkumar Ramachandra <hidden>
Date: 2016-06-15 22:53:25
Subsystem:
the rest · Maintainer:
Linus Torvalds
To read the object name in the instruction sheet, we currently manipulate the buffer to artificially introduce a NUL after the supposed object name, and then use get_sha1() to read the object name before restoring the buffer. Get rid of this ugliness by using getn_sha1(), a function introduced in the previous patch. Signed-off-by: Ramkumar Ramachandra <redacted> --- sequencer.c | 12 +++--------- 1 files changed, 3 insertions(+), 9 deletions(-)
diff --git a/sequencer.c b/sequencer.c
index a37846a..458cffb 100644
--- a/sequencer.c
+++ b/sequencer.c@@ -517,8 +517,7 @@ static struct commit *parse_insn_line(char *bol, char *eol, struct replay_opts * { unsigned char commit_sha1[20]; enum replay_action action; - char *end_of_object_name; - int saved, status, padding; + int namelen, padding; if (!prefixcmp(bol, "pick")) { action = REPLAY_PICK;
@@ -535,12 +534,6 @@ static struct commit *parse_insn_line(char *bol, char *eol, struct replay_opts * return NULL; bol += padding; - end_of_object_name = bol + strcspn(bol, " \t\n"); - saved = *end_of_object_name; - *end_of_object_name = '\0'; - status = get_sha1(bol, commit_sha1); - *end_of_object_name = saved; - /* * Verify that the action matches up with the one in * opts; we don't support arbitrary instructions
@@ -552,8 +545,8 @@ static struct commit *parse_insn_line(char *bol, char *eol, struct replay_opts * return NULL; } - if (status < 0) + namelen = strcspn(bol, " \t\n"); + if (getn_sha1(bol, namelen, commit_sha1)) return NULL; return lookup_commit_reference(commit_sha1);
--
1.7.8.1.362.g5d6df.dirty