chiark / gitweb /
fix argument parsing
authorian <ian>
Sun, 11 May 2008 19:50:29 +0000 (19:50 +0000)
committerian <ian>
Sun, 11 May 2008 19:50:29 +0000 (19:50 +0000)
hostside/realtime.c

index d2c83bb565d9c5aa38d23461d17290f9d02ba5d8..1153d1d9dbbe1caac171ce18e89e877a12ebc144 100644 (file)
@@ -325,16 +325,18 @@ int main(int argc, const char **argv) {
     /* do this before we call malloc so that MAP_FIXED is sure to work */
     persist_entrails_run_converter();
 
-  while ((arg=*++argv) && *arg=='-') {
+  while ((arg=*++argv) && *arg=='-' && arg[1]) {
     arg++;
-    switch (*arg++) {
-    case 's': device= arg; break;
-    case 'p': persist_fn= arg; break;
-    case 'v': picio_send_noise= atoi(arg); break;
-    case 'm': sta_state= Sta_Manual; break;
-    case 'L': logcopy_fn= arg; break;
-    case 'S': simulate= arg; break;
-    default: badusage("unknown option");
+    while (arg && *arg) {
+      switch (*arg++) {
+      case 's': device= arg;                      arg=0; break;
+      case 'p': persist_fn= arg;                  arg=0; break;
+      case 'v': picio_send_noise= atoi(arg);      arg=0; break;
+      case 'm': sta_state= Sta_Manual;                   break;
+      case 'L': logcopy_fn= arg;                  arg=0; break;
+      case 'S': simulate= arg;                    arg=0; break;
+      default: badusage("unknown option");
+      }
     }
   }