diff options
author | Leo C | 2016-06-04 15:48:50 +0200 |
---|---|---|
committer | Leo C | 2016-06-04 15:48:50 +0200 |
commit | beafa6d6a908081ccb65e36953b2e58529499934 (patch) | |
tree | cba3de28b2e940b5f71a7831650a5b6aa007cd1c /avr | |
parent | 3d6d1d342e36d63a47433623a636bcaa34746c7b (diff) | |
download | z180-stamp-beafa6d6a908081ccb65e36953b2e58529499934.zip |
Bugfix: reset getopt vars on start of a new argument line
Diffstat (limited to 'avr')
-rw-r--r-- | avr/cmd_attach.c | 2 | ||||
-rw-r--r-- | avr/cmd_gpio.c | 2 | ||||
-rw-r--r-- | avr/cmd_mem.c | 2 | ||||
-rw-r--r-- | avr/cmd_misc.c | 2 | ||||
-rw-r--r-- | avr/getopt-min.c | 8 |
5 files changed, 10 insertions, 6 deletions
diff --git a/avr/cmd_attach.c b/avr/cmd_attach.c index 9fbfa1e..d7bcafd 100644 --- a/avr/cmd_attach.c +++ b/avr/cmd_attach.c @@ -80,7 +80,7 @@ command_ret_t do_attach(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[ } /* reset getopt() */ - optind = 1; + optind = 0; int opt; while ((opt = getopt(argc, argv, PSTR("darwo:"))) != -1) { diff --git a/avr/cmd_gpio.c b/avr/cmd_gpio.c index 6b7b3f7..d3ef716 100644 --- a/avr/cmd_gpio.c +++ b/avr/cmd_gpio.c @@ -185,7 +185,7 @@ command_ret_t do_gpio(cmd_tbl_t *cmdtp, int flag, int argc, char *const argv[]) (void) cmdtp; (void) flag; /* reset getopt() */ - optind = 1; + optind = 0; int opt; while ((opt = getopt(argc, argv, PSTR("s"))) != -1) { diff --git a/avr/cmd_mem.c b/avr/cmd_mem.c index 9adee72..ded5146 100644 --- a/avr/cmd_mem.c +++ b/avr/cmd_mem.c @@ -202,7 +202,7 @@ command_ret_t do_mem_mw(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[ (void) cmdtp; (void) flag; /* reset getopt() */ - optind = 1; + optind = 0; int opt; while ((opt = getopt(argc, argv, PSTR("bwl"))) != -1) { diff --git a/avr/cmd_misc.c b/avr/cmd_misc.c index c9a3c45..1ff6f5d 100644 --- a/avr/cmd_misc.c +++ b/avr/cmd_misc.c @@ -24,7 +24,7 @@ command_ret_t do_echo(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) (void) cmdtp; (void) flag; /* reset getopt() */ - optind = 1; + optind = 0; int opt; while ((opt = getopt(argc, argv, PSTR("n"))) != -1) { diff --git a/avr/getopt-min.c b/avr/getopt-min.c index f5ad912..8508f40 100644 --- a/avr/getopt-min.c +++ b/avr/getopt-min.c @@ -13,7 +13,7 @@ #include "common.h" /* definition of FLASH */ #include <string.h> -int optind = 1; /* next argv[] index */ +int optind = 0; /* next argv[] index */ char *optarg; /* option parameter if any */ @@ -23,12 +23,16 @@ getopt( /* returns letter, '?', EOF */ char *const argv[], /* argument vector from main */ const FLASH char *optstring ) /* allowed args, e.g. "ab:c" */ { - static int sp = 1; /* position within argument */ + static int sp; /* position within argument */ int osp; /* saved `sp' for param test */ int c; /* option letter */ const FLASH char *cp; /* -> option in `optstring' */ optarg = NULL; + if (optind == 0) { /* start a new argument scan */ + optind = 1; + sp = 1; + } if ( sp == 1 ) /* fresh argument */ { |