From 64bc6e3db54ef9e2accfdb8e6c8168f789946fcb Mon Sep 17 00:00:00 2001
From: Junio C Hamano <junkio@cox.net>
Date: Thu, 2 Mar 2006 15:24:01 -0800
Subject: [PATCH] setup_revisions(): handle -n<n> and -<n> internally.

This moves the handling of max-count shorthand from the internal
implementation of "git log" to setup_revisions() so other users
of setup_revisions() can use it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
---
 git.c      | 15 +--------------
 revision.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+), 14 deletions(-)

diff --git a/git.c b/git.c
index bf68daca20..a547dbd913 100644
--- a/git.c
+++ b/git.c
@@ -264,20 +264,7 @@ static int cmd_log(int argc, char **argv, char **envp)
 	argc = setup_revisions(argc, argv, &rev, "HEAD");
 	while (1 < argc) {
 		char *arg = argv[1];
-		/* accept -<digit>, like traditilnal "head" */
-		if ((*arg == '-') && isdigit(arg[1])) {
-			rev.max_count = atoi(arg + 1);
-		}
-		else if (!strcmp(arg, "-n")) {
-			if (argc < 2)
-				die("-n requires an argument");
-			rev.max_count = atoi(argv[2]);
-			argc--; argv++;
-		}
-		else if (!strncmp(arg,"-n",2)) {
-			rev.max_count = atoi(arg + 2);
-		}
-		else if (!strncmp(arg, "--pretty", 8)) {
+		if (!strncmp(arg, "--pretty", 8)) {
 			commit_format = get_commit_format(arg + 8);
 			if (commit_format == CMIT_FMT_ONELINE)
 				commit_prefix = "";
diff --git a/revision.c b/revision.c
index 4885871425..a3df810076 100644
--- a/revision.c
+++ b/revision.c
@@ -482,6 +482,21 @@ int setup_revisions(int argc, const char **argv, struct rev_info *revs, const ch
 				revs->max_count = atoi(arg + 12);
 				continue;
 			}
+			/* accept -<digit>, like traditilnal "head" */
+			if ((*arg == '-') && isdigit(arg[1])) {
+				revs->max_count = atoi(arg + 1);
+				continue;
+			}
+			if (!strcmp(arg, "-n")) {
+				if (argc <= i + 1)
+					die("-n requires an argument");
+				revs->max_count = atoi(argv[++i]);
+				continue;
+			}
+			if (!strncmp(arg,"-n",2)) {
+				revs->max_count = atoi(arg + 2);
+				continue;
+			}
 			if (!strncmp(arg, "--max-age=", 10)) {
 				revs->max_age = atoi(arg + 10);
 				revs->limited = 1;
-- 
2.48.1