Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Jun 2008 12:39:14 GMT
From:      Gabor Kovesdan <gabor@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 144268 for review
Message-ID:  <200806291239.m5TCdEIZ035701@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=144268

Change 144268 by gabor@gabor_server on 2008/06/29 12:39:07

	- Allow wider contexts with unsigned long long

Affected files ...

.. //depot/projects/soc2008/gabor_textproc/diff/diff.c#4 edit
.. //depot/projects/soc2008/gabor_textproc/diff/diff.h#3 edit

Differences ...

==== //depot/projects/soc2008/gabor_textproc/diff/diff.c#4 (text+ko) ====

@@ -46,7 +46,8 @@
 
 int	 aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag;
 int	 sflag, tflag, Tflag, wflag;
-int	 format, context, status;
+int	 format, status;
+unsigned long long context;
 char	*start, *ifdefname, *diffargs, *label[2], *ignore_pats;
 struct stat stb1, stb2;
 struct excludes *excludes_list;
@@ -122,7 +123,6 @@
 main(int argc, char **argv)
 {
 	char	*ep, **oargv;
-	long	 l;
 	int	 ch, lastch, gotstdin, prevoptind, newarg;
 
 	oargv = argv;
@@ -139,7 +139,7 @@
 				usage();	/* disallow -[0-9]+ */
 			else if (lastch == 'c' || lastch == 'u')
 				context = 0;
-			else if (!isdigit(lastch) || context > INT_MAX / 10)
+			else if (!isdigit(lastch) || context > ULLONG_MAX / 10)
 				usage();
 			context = (context * 10) + (ch - '0');
 			break;
@@ -153,10 +153,9 @@
 		case 'c':
 			format = D_CONTEXT;
 			if (optarg != NULL) {
-				l = strtol(optarg, &ep, 10);
-				if (*ep != '\0' || l < 0 || l >= INT_MAX)
-					usage();
-				context = (int)l;
+				context = strtoull(optarg, &ep, 10);
+				if (*ep != '\0' || context == ULLONG_MAX)
+					err(2, "context out of range\n");
 			} else
 				context = 3;
 			break;
@@ -228,10 +227,9 @@
 		case 'u':
 			format = D_UNIFIED;
 			if (optarg != NULL) {
-				l = strtol(optarg, &ep, 10);
-				if (*ep != '\0' || l < 0 || l >= INT_MAX)
-					usage();
-				context = (int)l;
+				context = strtoull(optarg, &ep, 10);
+				if (*ep != '\0' || context == ULLONG_MAX)
+					err(2, "context out of range\n");
 			} else
 				context = 3;
 			break;

==== //depot/projects/soc2008/gabor_textproc/diff/diff.h#3 (text+ko) ====

@@ -77,7 +77,8 @@
 
 extern int	 aflag, bflag, dflag, iflag, lflag, Nflag, Pflag, pflag, rflag,
 		 sflag, tflag, Tflag, wflag;
-extern int	 format, context, status;
+extern int	 format, status;
+extern unsigned long long context;
 extern char	*start, *ifdefname, *diffargs, *label[2], *ignore_pats;
 extern struct	 stat stb1, stb2;
 extern struct	 excludes *excludes_list;



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806291239.m5TCdEIZ035701>