Re: [PATCH v5]
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:44:53
Subsystem:
the rest · Maintainer:
Linus Torvalds
Possibly related (same subject, not in this thread)
- 2016-06-15 · [PATCH v5] · Adam Brewster <hidden>
Adam Brewster [off-list ref] writes:
The real reason read_revisions_from_stdin moved to revision.c is because I was asked to do it that way.
Yeah, it is simply a bad taste to use helper in builtin-A from builtin-B. More library-ish files such as revision.c are better home for utility functions to be shared between builtins and commands. Here is what I queued. By the way did you compile test your fix before sending? -- >8 -- Move read_revisions_from_stdin from builtin-rev-list.c to revision.c Reading rev-list parameters from the command line can be reused by commands other than rev-list. Move this function to more "library-ish" place to promote code reuse. Signed-off-by: Adam Brewster <redacted> Signed-off-by: Junio C Hamano <redacted>
diff --git a/builtin-rev-list.c b/builtin-rev-list.c
index 83a7b13..54b6672 100644
--- a/builtin-rev-list.c
+++ b/builtin-rev-list.c@@ -565,23 +565,6 @@ static struct commit_list *find_bisection(struct commit_list *list, return best; } -static void read_revisions_from_stdin(struct rev_info *revs) -{ - char line[1000]; - - while (fgets(line, sizeof(line), stdin) != NULL) { - int len = strlen(line); - if (len && line[len - 1] == '\n') - line[--len] = 0; - if (!len) - break; - if (line[0] == '-') - die("options not supported in --stdin mode"); - if (handle_revision_arg(line, revs, 0, 1)) - die("bad revision '%s'", line); - } -} - int cmd_rev_list(int argc, const char **argv, const char *prefix) { struct commit_list *list;
diff --git a/revision.c b/revision.c
index fc66755..6ce6042 100644
--- a/revision.c
+++ b/revision.c@@ -910,6 +910,23 @@ int handle_revision_arg(const char *arg, struct rev_info *revs, return 0; } +void read_revisions_from_stdin(struct rev_info *revs) +{ + char line[1000]; + + while (fgets(line, sizeof(line), stdin) != NULL) { + int len = strlen(line); + if (len && line[len - 1] == '\n') + line[--len] = '\0'; + if (!len) + break; + if (line[0] == '-') + die("options not supported in --stdin mode"); + if (handle_revision_arg(line, revs, 0, 1)) + die("bad revision '%s'", line); + } +} + static void add_grep(struct rev_info *revs, const char *ptn, enum grep_pat_token what) { if (!revs->grep_filter) {
diff --git a/revision.h b/revision.h
index abce500..83f364a 100644
--- a/revision.h
+++ b/revision.h@@ -111,6 +111,8 @@ struct rev_info { #define REV_TREE_DIFFERENT 2 /* revision.c */ +void read_revisions_from_stdin(struct rev_info *revs); + typedef void (*show_early_output_fn_t)(struct rev_info *, struct commit_list *); volatile show_early_output_fn_t show_early_output;