~ chicken-core (chicken-5) 196dbaeb929e93b6342ad6a4be80a0717200882d


commit 196dbaeb929e93b6342ad6a4be80a0717200882d
Author:     felix <felix@call-with-current-continuation.org>
AuthorDate: Mon Feb 14 19:08:53 2011 +0100
Commit:     felix <felix@call-with-current-continuation.org>
CommitDate: Mon Feb 14 19:09:31 2011 +0100

    fixed stupid bug in runtime-option argument checking (thanks to Sandro)

diff --git a/manual/Acknowledgements b/manual/Acknowledgements
index 0e947ce0..f3c309f3 100644
--- a/manual/Acknowledgements
+++ b/manual/Acknowledgements
@@ -36,8 +36,8 @@ Nicolas Pelletier, Derrell Piper, Carlos Pita, Robin Lee Powell, Alan
 Post, "Pupeno", Davide Puricelli, "presto", Doug Quale, Imran Rafique,
 Eric Raible, Ivan Raikov, Joel Reymont, Chris Roberts, Eric Rochester,
 Paul Romanchenko, Andreas Rottman, David Rush, Lars Rustemeier, Daniel
-Sadilek, Oskar Schirmer, Burton Samograd, Reed Sheridan, Ronald
-Schroeder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan
+Sadilek, "Sandro", Oskar Schirmer, Burton Samograd, Reed Sheridan,
+Ronald Schroeder, Spencer Schumann, Ivan Shcheklein, Alex Shinn, Ivan
 Shmakov, "Shmul", Tony Sidaway, Jeffrey B. Siegal, Andrey Sidorenko,
 Michele Simionato, Iruata Souza, Volker Stolz, Jon Strait, Dorai
 Sitaram, Robert Skeels, Jason Songhurst, Clifford Stein, David
diff --git a/runtime.c b/runtime.c
index 68a24a30..4585d726 100644
--- a/runtime.c
+++ b/runtime.c
@@ -1262,7 +1262,7 @@ void CHICKEN_parse_command_line(int argc, char *argv[], C_word *heap, C_word *st
 C_word arg_val(C_char *arg)
 {
   int len;
-  char *end;
+  C_char *end;
   long val, mul = 1;
 
   if (arg == NULL) panic(C_text("illegal runtime-option argument"));
@@ -1287,7 +1287,8 @@ C_word arg_val(C_char *arg)
 
   val = strtol(arg, &end, 10);
 
-  if(*end != '\0') return 0;
+  if((mul != 1 ? end[ 1 ] != '\0' : end[ 0 ] != '\0')) 
+    panic(C_text("invalid runtime-option argument suffix"));
 
   return val * mul;
 }
Trap