From: ian Date: Sun, 11 May 2008 19:50:29 +0000 (+0000) Subject: fix argument parsing X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ijackson/git?a=commitdiff_plain;h=954938c5f165a1869d5c5e849972e8c4aaa648ad;p=trains.git fix argument parsing --- diff --git a/hostside/realtime.c b/hostside/realtime.c index d2c83bb..1153d1d 100644 --- a/hostside/realtime.c +++ b/hostside/realtime.c @@ -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"); + } } }