summaryrefslogtreecommitdiff
path: root/avr
diff options
context:
space:
mode:
authorLeo C2016-06-04 15:48:50 +0200
committerLeo C2016-06-04 15:48:50 +0200
commitbeafa6d6a908081ccb65e36953b2e58529499934 (patch)
treecba3de28b2e940b5f71a7831650a5b6aa007cd1c /avr
parent3d6d1d342e36d63a47433623a636bcaa34746c7b (diff)
downloadz180-stamp-beafa6d6a908081ccb65e36953b2e58529499934.zip
Bugfix: reset getopt vars on start of a new argument line
Diffstat (limited to 'avr')
-rw-r--r--avr/cmd_attach.c2
-rw-r--r--avr/cmd_gpio.c2
-rw-r--r--avr/cmd_mem.c2
-rw-r--r--avr/cmd_misc.c2
-rw-r--r--avr/getopt-min.c8
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 */
{