]> git.ipfire.org Git - thirdparty/make.git/commitdiff
* src/function.c (parse_textint): Handle ints without 0 properly.
authorJouke Witteveen <j.witteveen@gmail.com>
Tue, 18 Jan 2022 00:11:59 +0000 (19:11 -0500)
committerPaul Smith <psmith@gnu.org>
Tue, 18 Jan 2022 00:11:59 +0000 (19:11 -0500)
* tests/scripts/functions/intcmp: Add tests for values without 0.

src/function.c
tests/scripts/functions/intcmp

index 1120ad212f4c1d73537636771f6086555f0265de..c27f573bf8daf417196516e3ca474ce581abcdf9 100644 (file)
@@ -1294,7 +1294,7 @@ parse_textint (const char *number, const char *msg,
   const char *after_sign, *after_number;
   const char *p = next_token (number);
   int negative = *p == '-';
-  int nonzero = 0;
+  int nonzero;
 
   if (*p == '\0')
     OS (fatal, *expanding_var, _("%s: empty value"), msg);
@@ -1307,9 +1307,9 @@ parse_textint (const char *number, const char *msg,
   *numstart = p;
 
   while (ISDIGIT (*p))
-    if (*p++ == '0')
-      nonzero = 1;
+    ++p;
   after_number = p;
+  nonzero = *numstart != after_number;
   *sign = negative ? -nonzero : nonzero;
 
   /* Check for extra non-whitespace stuff after the value.  */
index 7466ff97132836530a53364f44b945e80c3d3077..24e25b2249fe1f32d179ccf488ea2dc3f3a2bff1 100644 (file)
@@ -9,15 +9,18 @@ n = -10
 # Zero
 z = 0
 # Positive
-p = 1000000000
+p = 888
 min = -9223372036854775808
 max = 9223372036854775807
 huge = 8857889956778499040639527525992734031025567913257255490371761260681427
 .RECIPEPREFIX = >
 all:
 > @echo 0_1 $(intcmp $n,$n)
-> @echo 0_2 $(intcmp $n,$z)
-> @echo 0_3 $(intcmp $z,$n)
+> @echo 0_2 $(intcmp $z,$z)
+> @echo 0_3 $(intcmp -$z,$z)
+> @echo 0_4 $(intcmp $p,$p)
+> @echo 0_5 $(intcmp $n,$z)
+> @echo 0_6 $(intcmp $z,$n)
 > @echo 1_1 $(intcmp $n,$n,$(shell echo lt))
 > @echo 1_2 $(intcmp $n,$z,$(shell echo lt))
 > @echo 1_3 $(intcmp $z,$n,$(shell echo lt))
@@ -36,7 +39,7 @@ all:
 > @echo 5_1 $(intcmp $(huge),-$(huge),lt,eq,gt)
 > @echo 5_2 $(intcmp -$(huge),-$(huge),lt,eq,gt)
 > @echo 5_3 $(intcmp +$(huge),$(huge),lt,eq,gt)
-', '', "0_1 -10\n0_2\n0_3\n1_1\n1_2 lt\n1_3\n2_1 lt\n2_2 ge\n2_3 ge\n3_0\n3_1 lt\n3_2 gt\n3_3 eq\n4_0 lt\n4_1 gt\n4_2 eq\n4_3 eq\n5_0 lt\n5_1 gt\n5_2 eq\n5_3 eq\n");
+', '', "0_1 -10\n0_2 0\n0_3 0\n0_4 888\n0_5\n0_6\n1_1\n1_2 lt\n1_3\n2_1 lt\n2_2 ge\n2_3 ge\n3_0\n3_1 lt\n3_2 gt\n3_3 eq\n4_0 lt\n4_1 gt\n4_2 eq\n4_3 eq\n5_0 lt\n5_1 gt\n5_2 eq\n5_3 eq\n");
 
 # Test error conditions