From 1fc561d169ac08c411e34a4439894c5201b3d080 Mon Sep 17 00:00:00 2001 From: Adam Brewster Date: Sat, 5 Jul 2008 17:26:39 -0400 Subject: 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 Signed-off-by: Junio C Hamano --- revision.c | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'revision.c') diff --git a/revision.c b/revision.c index fc66755259..6ce6042a63 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) { -- cgit v1.2.1