Fix numeric comparisons for 64b. Bug 1385
authorJeremy Harris <jgh146exb@wizmail.org>
Sun, 15 Sep 2013 15:41:40 +0000 (16:41 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Sun, 15 Sep 2013 15:41:40 +0000 (16:41 +0100)
src/src/expand.c
test/scripts/0000-Basic/0002
test/stdout/0002

index dba047b284c511cbe5aad1c53f311e7a76c1c6af..0d8e70295c15b7c5631f7297e33c42674945fe81 100644 (file)
@@ -6560,7 +6560,7 @@ else
   else
     {
     while (isspace(*endptr)) endptr++;
-    if (*endptr == 0) return (int)value;
+    if (*endptr == 0) return value;
     }
   }
 
index 1ea5c4a48ae783613af70985d3e8b2ab318c1ad5..b924a0934b85f47b40692b984191f26a7468e3e8 100644 (file)
@@ -287,10 +287,12 @@ mask:   ${if eq {1}{2}{${mask:invalid}}{NO}}
 # Numeric overflow
 # >32b should work, >64b not
 
-4096M      ${if >{1}{4096M}{y}{n}}
-4096000000 ${if >{1}{4096000000}{y}{n}}
-4611686018427387904  ${if >{1}{4611686018427387904} {y}{n}}
-46116860184273879040 ${if >{1}{46116860184273879040}{y}{n}}
+1 > 2047M                ${if >{1}{2047M}{y}{n}}
+1 > 2048M                ${if >{1}{2048M}{y}{n}}
+1 > 4096000000           ${if >{1}{4096000000}{y}{n}}
+1 > 4096M                ${if >{1}{4096M}{y}{n}}
+1 > 4611686018427387904  ${if >{1}{4611686018427387904} {y}{n}}
+1 > 46116860184273879040 ${if >{1}{46116860184273879040}{y}{n}}
 
 # Conditions
 
index 35f1bb99b149411f3809261332b33d0bfea00194..1cf6a5b843562069fcff5b55d0e897fced9220c1 100644 (file)
 > # Numeric overflow
 > # >32b should work, >64b not
 > 
-> 4096M      y
-> 4096000000 y
-> 4611686018427387904  y
+> 1 > 2047M                n
+> 1 > 2048M                n
+> 1 > 4096000000           n
+> 1 > 4096M                n
+> 1 > 4611686018427387904  n
 > Failed: absolute value of integer "46116860184273879040" is too large (overflow)
 > 
 > # Conditions