diff options
author | Daniel Stenberg <daniel@haxx.se> | 2001-01-10 23:42:03 +0000 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2001-01-10 23:42:03 +0000 |
commit | 27f8cf6dfc1b25b3bf5d1b6e0038ec642546c8a9 (patch) | |
tree | 567c5906623174a54420a858ab6ff6edeada16c2 | |
parent | f5aa7f64bdc7ba316aa95be4a5fffa97c387b2bf (diff) |
made "short options" possible to specify -m20 as well as -m 200.
-rw-r--r-- | src/main.c | 10 |
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; } |