Index: tests/configs/.expect/parsenums.txt
===================================================================
--- tests/configs/.expect/parsenums.txt	(revision fd900963cf64515769a7a48264a8066a61a1762d)
+++ 	(revision )
@@ -1,140 +1,0 @@
-no arg:
-int                :-3
-unsigned           :3
-unsigned long      :3
-unsigned long long :3
-double             :3.3
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
-
-all 0 arg:
-int                :0
-unsigned           :0
-unsigned long      :0
-unsigned long long :0
-double             :0.
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
-
-negative vals arg:
-int                :-1
-unsigned           :3
-unsigned long      :3
-unsigned long long :3
-double             :-1.
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
-
-funky notation arg:
-int                :16
-unsigned           :32
-unsigned long      :768
-unsigned long long :16384
-double             :5000000.
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
-
-big values arg:
-int                :2147483647
-unsigned           :4294967295
-unsigned long      :4294967295
-unsigned long long :18446744073709551615
-double             :5000000.
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
-
-too big values arg:
-Argument '2147483648' for option i could not be parsed
-
-Usage:
-  parsebools [OPTIONS]...
-testing bool parameters
-  -i, --int                test int
-  -u, --unsigned           test unsigned
-  -l, --unsignedlong       test unsigned long
-  -L, --unsignedlonglong   test unsigned long long
-  -d, --double             test double
-  -h, --help               print this help message
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
-
-Argument '4294967296' for option u could not be parsed
-
-Usage:
-  parsebools [OPTIONS]...
-testing bool parameters
-  -i, --int                test int
-  -u, --unsigned           test unsigned
-  -l, --unsignedlong       test unsigned long
-  -L, --unsignedlonglong   test unsigned long long
-  -d, --double             test double
-  -h, --help               print this help message
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
-
-int                :-3
-unsigned           :3
-unsigned long      :4294967296
-unsigned long long :3
-double             :3.3
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
-
-Argument '18446744073709551616' for option L could not be parsed
-
-Usage:
-  parsebools [OPTIONS]...
-testing bool parameters
-  -i, --int                test int
-  -u, --unsigned           test unsigned
-  -l, --unsignedlong       test unsigned long
-  -L, --unsignedlonglong   test unsigned long long
-  -d, --double             test double
-  -h, --help               print this help message
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
-
-negative errors arg:
-Argument '-1' for option u could not be parsed
-
-Usage:
-  parsebools [OPTIONS]...
-testing bool parameters
-  -i, --int                test int
-  -u, --unsigned           test unsigned
-  -l, --unsignedlong       test unsigned long
-  -L, --unsignedlonglong   test unsigned long long
-  -d, --double             test double
-  -h, --help               print this help message
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
-
-Argument '-1' for option l could not be parsed
-
-Usage:
-  parsebools [OPTIONS]...
-testing bool parameters
-  -i, --int                test int
-  -u, --unsigned           test unsigned
-  -l, --unsignedlong       test unsigned long
-  -L, --unsignedlonglong   test unsigned long long
-  -d, --double             test double
-  -h, --help               print this help message
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
-
-Argument '-1' for option L could not be parsed
-
-Usage:
-  parsebools [OPTIONS]...
-testing bool parameters
-  -i, --int                test int
-  -u, --unsigned           test unsigned
-  -l, --unsignedlong       test unsigned long
-  -L, --unsignedlonglong   test unsigned long long
-  -d, --double             test double
-  -h, --help               print this help message
-Child status:
-    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
-
-All Done!
Index: tests/configs/.expect/parsenums.x64.txt
===================================================================
--- tests/configs/.expect/parsenums.x64.txt	(revision 1e30df7c247fd856856ad97d81bc81faecf5bcd5)
+++ tests/configs/.expect/parsenums.x64.txt	(revision 1e30df7c247fd856856ad97d81bc81faecf5bcd5)
@@ -0,0 +1,146 @@
+no arg:
+int                :-3
+unsigned           :3
+unsigned long      :3
+unsigned long long :3
+double             :3.3
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+all 0 arg:
+int                :0
+unsigned           :0
+unsigned long      :0
+unsigned long long :0
+double             :0.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+negative vals arg:
+int                :-1
+unsigned           :3
+unsigned long      :3
+unsigned long long :3
+double             :-1.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+funky notation arg:
+int                :16
+unsigned           :32
+unsigned long      :768
+unsigned long long :16384
+double             :5000000.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+big values arg:
+int                :2147483647
+unsigned           :4294967295
+unsigned long      :18446744073709551615
+unsigned long long :18446744073709551615
+double             :5000000.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+too big values arg:
+Argument '2147483648' for option i could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '4294967296' for option u could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '18446744073709551616' for option l could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '18446744073709551616' for option L could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+negative errors arg:
+Argument '-1' for option u could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '-1' for option l could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '-1' for option L could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+All Done!
Index: tests/configs/.expect/parsenums.x86.txt
===================================================================
--- tests/configs/.expect/parsenums.x86.txt	(revision 1e30df7c247fd856856ad97d81bc81faecf5bcd5)
+++ tests/configs/.expect/parsenums.x86.txt	(revision 1e30df7c247fd856856ad97d81bc81faecf5bcd5)
@@ -0,0 +1,146 @@
+no arg:
+int                :-3
+unsigned           :3
+unsigned long      :3
+unsigned long long :3
+double             :3.3
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+all 0 arg:
+int                :0
+unsigned           :0
+unsigned long      :0
+unsigned long long :0
+double             :0.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+negative vals arg:
+int                :-1
+unsigned           :3
+unsigned long      :3
+unsigned long long :3
+double             :-1.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+funky notation arg:
+int                :16
+unsigned           :32
+unsigned long      :768
+unsigned long long :16384
+double             :5000000.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+big values arg:
+int                :2147483647
+unsigned           :4294967295
+unsigned long      :4294967295
+unsigned long long :18446744073709551615
+double             :5000000.
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 0    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 0    WIFCONTINUED: 0
+
+too big values arg:
+Argument '2147483648' for option i could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '4294967296' for option u could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '4294967296' for option l could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '18446744073709551616' for option L could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+negative errors arg:
+Argument '-1' for option u could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '-1' for option l could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+Argument '-1' for option L could not be parsed
+
+Usage:
+  parsenums [OPTIONS]...
+testing bool parameters
+  -i, --int                test int
+  -u, --unsigned           test unsigned
+  -l, --unsignedlong       test unsigned long
+  -L, --unsignedlonglong   test unsigned long long
+  -d, --double             test double
+  -h, --help               print this help message
+Child status:
+    WIFEXITED   : 1    WEXITSTATUS : 1    WIFSIGNALED : 0    WTERMSIG    : 0    WCOREDUMP   : 0    WIFSTOPPED  : 0    WSTOPSIG    : 1    WIFCONTINUED: 0
+
+All Done!
Index: tests/configs/parsenums.cfa
===================================================================
--- tests/configs/parsenums.cfa	(revision fd900963cf64515769a7a48264a8066a61a1762d)
+++ tests/configs/parsenums.cfa	(revision 1e30df7c247fd856856ad97d81bc81faecf5bcd5)
@@ -14,4 +14,14 @@
 #include <parseargs.hfa>
 #include <fstream.hfa>
+
+#if __SIZEOF_LONG__ == 4
+	#define BIG_UNSIGNED_LONG "4294967295"
+	#define TOO_BIG_UNSIGNED_LONG "4294967296"
+#elif  __SIZEOF_LONG__ == 8
+	#define BIG_UNSIGNED_LONG "18446744073709551615"
+	#define TOO_BIG_UNSIGNED_LONG "18446744073709551616"
+#else
+	#error unexpected size of long
+#endif
 
 int true_main(const char * exec);
@@ -85,5 +95,5 @@
 	printf("no arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", (const char*)0p, env);
+		int ret = execle(path, "parsenums", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
@@ -99,5 +109,5 @@
 	printf("all 0 arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-i=0", "-u=0", "-l=0", "-L=0", "-d=0", (const char*)0p, env);
+		int ret = execle(path, "parsenums", "-i=0", "-u=0", "-l=0", "-L=0", "-d=0", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
@@ -113,5 +123,5 @@
 	printf("negative vals arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-i=-1", "-d=-1", (const char*)0p, env);
+		int ret = execle(path, "parsenums", "-i=-1", "-d=-1", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
@@ -127,5 +137,5 @@
 	printf("funky notation arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-i=0x10", "-u=0x20", "-l=0x300", "-L=0x4000", "-d=5e6", (const char*)0p, env);
+		int ret = execle(path, "parsenums", "-i=0x10", "-u=0x20", "-l=0x300", "-L=0x4000", "-d=5e6", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
@@ -141,5 +151,5 @@
 	printf("big values arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-i=2147483647", "-u=4294967295", "-l=4294967295", "-L=18446744073709551615", "-d=5e6", (const char*)0p, env);
+		int ret = execle(path, "parsenums", "-i=2147483647", "-u=4294967295", "-l=" BIG_UNSIGNED_LONG, "-L=18446744073709551615", "-d=5e6", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
@@ -155,44 +165,44 @@
 	printf("too big values arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-i=2147483648", (const char*)0p, env);
-		if(ret < 0) {
-			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
-			exit(1);
-		}
-	}
-	else {
-		int status = do_wait(child);
-		print_status(status);
-	}
-	printf("\n");
-
-	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-u=4294967296", (const char*)0p, env);
-		if(ret < 0) {
-			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
-			exit(1);
-		}
-	}
-	else {
-		int status = do_wait(child);
-		print_status(status);
-	}
-	printf("\n");
-
-	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-l=4294967296", (const char*)0p, env);
-		if(ret < 0) {
-			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
-			exit(1);
-		}
-	}
-	else {
-		int status = do_wait(child);
-		print_status(status);
-	}
-	printf("\n");
-
-	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-L=18446744073709551616", (const char*)0p, env);
+		int ret = execle(path, "parsenums", "-i=2147483648", (const char*)0p, env);
+		if(ret < 0) {
+			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
+			exit(1);
+		}
+	}
+	else {
+		int status = do_wait(child);
+		print_status(status);
+	}
+	printf("\n");
+
+	if(pid_t child = strict_fork(); child == 0) {
+		int ret = execle(path, "parsenums", "-u=4294967296", (const char*)0p, env);
+		if(ret < 0) {
+			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
+			exit(1);
+		}
+	}
+	else {
+		int status = do_wait(child);
+		print_status(status);
+	}
+	printf("\n");
+
+	if(pid_t child = strict_fork(); child == 0) {
+		int ret = execle(path, "parsenums", "-l=" TOO_BIG_UNSIGNED_LONG, (const char*)0p, env);
+		if(ret < 0) {
+			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
+			exit(1);
+		}
+	}
+	else {
+		int status = do_wait(child);
+		print_status(status);
+	}
+	printf("\n");
+
+	if(pid_t child = strict_fork(); child == 0) {
+		int ret = execle(path, "parsenums", "-L=18446744073709551616", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
@@ -208,31 +218,31 @@
 	printf("negative errors arg:\n");
 	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-u=-1", (const char*)0p, env);
-		if(ret < 0) {
-			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
-			exit(1);
-		}
-	}
-	else {
-		int status = do_wait(child);
-		print_status(status);
-	}
-	printf("\n");
-
-	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-l=-1", (const char*)0p, env);
-		if(ret < 0) {
-			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
-			exit(1);
-		}
-	}
-	else {
-		int status = do_wait(child);
-		print_status(status);
-	}
-	printf("\n");
-
-	if(pid_t child = strict_fork(); child == 0) {
-		int ret = execle(path, "parsebools", "-L=-1", (const char*)0p, env);
+		int ret = execle(path, "parsenums", "-u=-1", (const char*)0p, env);
+		if(ret < 0) {
+			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
+			exit(1);
+		}
+	}
+	else {
+		int status = do_wait(child);
+		print_status(status);
+	}
+	printf("\n");
+
+	if(pid_t child = strict_fork(); child == 0) {
+		int ret = execle(path, "parsenums", "-l=-1", (const char*)0p, env);
+		if(ret < 0) {
+			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
+			exit(1);
+		}
+	}
+	else {
+		int status = do_wait(child);
+		print_status(status);
+	}
+	printf("\n");
+
+	if(pid_t child = strict_fork(); child == 0) {
+		int ret = execle(path, "parsenums", "-L=-1", (const char*)0p, env);
 		if(ret < 0) {
 			fprintf(stderr, "Execl 2 returned with error: %d '%s'\n", errno, strerror(errno));
