diff options
author | Michael Vogt <mvo@ubuntu.com> | 2012-12-26 23:52:47 +0100 |
---|---|---|
committer | Michael Vogt <mvo@ubuntu.com> | 2012-12-26 23:52:47 +0100 |
commit | d2cca6ec46865a1f5167f846e67150dc19ca2022 (patch) | |
tree | 43d335f69870a72b97fa41a1b208784b8753d354 /apt-pkg/contrib/cmndline.cc | |
parent | 7735ad0500b6fefef03b2a3dc2a6843e82353e94 (diff) | |
parent | d663a4c8a8723ae4936d10d0a98ea2c05a29cbc4 (diff) |
merged from the debian-sid branch
Diffstat (limited to 'apt-pkg/contrib/cmndline.cc')
-rw-r--r-- | apt-pkg/contrib/cmndline.cc | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/apt-pkg/contrib/cmndline.cc b/apt-pkg/contrib/cmndline.cc index 159f330a1..75d02cad4 100644 --- a/apt-pkg/contrib/cmndline.cc +++ b/apt-pkg/contrib/cmndline.cc @@ -92,8 +92,9 @@ bool CommandLine::Parse(int argc,const char **argv) // Match up to a = against the list Args *A; const char *OptEnd = strchrnul(Opt, '='); - for (A = ArgList; A->end() == false && - stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++); + for (A = ArgList; A->end() == false && + (A->LongOpt == 0 || stringcasecmp(Opt,OptEnd,A->LongOpt) != 0); + ++A); // Failed, look for a word after the first - (no-foo) bool PreceedMatch = false; @@ -105,7 +106,8 @@ bool CommandLine::Parse(int argc,const char **argv) Opt++; for (A = ArgList; A->end() == false && - stringcasecmp(Opt,OptEnd,A->LongOpt) != 0; A++); + (A->LongOpt == 0 || stringcasecmp(Opt,OptEnd,A->LongOpt) != 0); + ++A); // Failed again.. if (A->end() == true && OptEnd - Opt != 1) |