aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2001-01-10 23:42:03 +0000
committerDaniel Stenberg <daniel@haxx.se>2001-01-10 23:42:03 +0000
commit27f8cf6dfc1b25b3bf5d1b6e0038ec642546c8a9 (patch)
tree567c5906623174a54420a858ab6ff6edeada16c2
parentf5aa7f64bdc7ba316aa95be4a5fffa97c387b2bf (diff)
made "short options" possible to specify -m20 as well as -m 200.
-rw-r--r--src/main.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index a4685acf5..f99c24538 100644
--- a/src/main.c
+++ b/src/main.c
@@ -510,6 +510,8 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
time_t now;
int hit=-1;
bool longopt=FALSE;
+ bool singleopt=FALSE; /* when true means '-o foo' used '-ofoo' */
+
/* single-letter,
long-name,
@@ -640,7 +642,11 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
if(hit < 0) {
return PARAM_OPTION_UNKNOWN;
}
- if((!nextarg || !*nextarg) && aliases[hit].extraparam) {
+ if(!longopt && flag[1]) {
+ nextarg=&flag[1]; /* this is the actual extra parameter */
+ singleopt=TRUE; /* don't loop anymore after this */
+ }
+ else if((!nextarg || !*nextarg) && aliases[hit].extraparam) {
return PARAM_REQUIRES_PARAMETER;
}
else if(nextarg && aliases[hit].extraparam)
@@ -1056,7 +1062,7 @@ static ParameterError getparameter(char *flag, /* f or -long-flag */
}
hit = -1;
- } while(*++parse && !*usedarg);
+ } while(!singleopt && *++parse && !*usedarg);
return PARAM_OK;
}