In a 64-bit userland, big-endian environment, the parser gets integers wrong.
# ./test-parse-options --set23 |grep integer integer: 98784247808 # patch ... # ./test-parse-options --set23 |grep integer integer: 23
Full failures from the testcases -integer: 1729 +integer: 7425998454784 -integer: 13 +integer: 55834574848 -integer: 2 +integer: 8589934592 -integer: 23 +integer: 98784247808
All the values are shifted up 32 bits.
Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
--- Please CC me in replies, I'm not on git@vger.
Fix against 1.5.6.4: --- parse-options.c.orig 2008-08-07 14:51:17.000000000 -0500 +++ parse-options.c 2008-08-07 14:51:25.000000000 -0500
@@ -78,7 +78,7 @@ return 0; case OPTION_SET_INT: - *(int *)opt->value = unset ? 0 : opt->defval; + *(long int *)opt->value = unset ? 0 : opt->defval; return 0; case OPTION_SET_PTR:
-- Robin Hugh Johnson Gentoo Linux Developer & Infra Guy E-Mail : robbat2@gentoo.org GnuPG FP : 11AC BA4F 4778 E3F6 E4ED F38E B27B 944E 3488 4E85