git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] git-rev-list: tolerate multiple --stdin options

From
Adam Brewster <adambrewster@gmail.com>
Date
Jul 6, 2008, 14:28 UTC
Message-ID
<1215354538-1469-2-git-send-email-adambrewster@gmail.com>
In-Reply-To
<1215354538-1469-1-git-send-email-adambrewster@gmail.com>

There's no reason to fail if the user asks for --stdin twice. Of course there's only one stdin, and it can only be read once, and there's no reason to ask for it twice, but --all --all doesn't make sense, and that's accepted, so accept this too.

Also, with read_revisions_from_stdin in revision.c where it might be called by other programs, it's better to check that stdin isn't at eof before trying to read it.

Signed-off-by: Adam Brewster <asb@bu.edu>
---
 builtin-rev-list.c |    3 ---
 revision.c         |    2 +-
 2 files changed, 1 insertions(+), 4 deletions(-)
diff --git a/builtin-rev-list.c b/builtin-rev-list.c
index b4a2c44..7f7c1a7 100644
--- a/builtin-rev-list.c
+++ b/builtin-rev-list.c
@@ -579,7 +579,6 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
 {
 	struct commit_list *list;
 	int i;
-	int read_from_stdin = 0;
 	int bisect_show_vars = 0;
 	int bisect_find_all = 0;
 	int quiet = 0;
@@ -616,8 +615,6 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix)
 			continue;
 		}
 		if (!strcmp(arg, "--stdin")) {
-			if (read_from_stdin++)
-				die("--stdin given twice?");
 			read_revisions_from_stdin(&revs);
 			continue;
 		}
diff --git a/revision.c b/revision.c
index 0191160..c1550c4 100644
--- a/revision.c
+++ b/revision.c
@@ -914,7 +914,7 @@ int handle_revision_arg(const char *arg, struct rev_info *revs,
 void read_revisions_from_stdin(struct rev_info *revs)
 {
 	char line[1000];
-
+	if (feof(stdin)) return;
 	while (fgets(line, sizeof(line), stdin) != NULL) {
 		int len = strlen(line);
 		if (len && line[len - 1] == '\n')
-- 
1.5.5.1.211.g65ea3.dirty
Previous: Adam BrewsterNext: Adam Brewster
Message 14 of 18 in “bundle.c: added --stdin option to git-bundle”
  1. bundle.c: added --stdin option to git-bundleAdam Brewster, Jul 5, 2008
  2. Jakub NarebskiJul 5, 2008
  3. Junio C HamanoJul 5, 2008
  4. 0/3 Adam Brewster, Jul 5, 2008
  5. Move read_revisions_from_stdin from builtin-rev-list.c to revision.cAdam Brewster, Jul 5, 2008
  6. git-bundle: add --stdinAdam Brewster, Jul 5, 2008
  7. Add git-basis.perl to contrib directoryAdam Brewster, Jul 5, 2008
  8. Miklos VajnaJul 5, 2008
  9. Adam Brewster, Jul 5, 2008
  10. Move read_revisions_from_stdin from builtin-rev-list.c to revision.cAdam Brewster, Jul 5, 2008
  11. git-bundle: add --stdinAdam Brewster, Jul 5, 2008
  12. Junio C HamanoJul 6, 2008
  13. Adam BrewsterJul 6, 2008
  14. git-rev-list: tolerate multiple --stdin optionsAdam Brewster, Jul 6, 2008
  15. Teach git-bundle to read revision arguments from stdin likeAdam Brewster, Jul 6, 2008
  16. Junio C HamanoJul 6, 2008
  17. Adam BrewsterJul 6, 2008
  18. Junio C HamanoJul 6, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.