Improve custom option processing #2280

This commit is contained in:
Thomas Nagy 2020-03-04 23:14:40 +01:00
parent 9e82013f4d
commit c98e8b9b3d
No known key found for this signature in database
GPG Key ID: 49B4C67C05277AAA
1 changed files with 15 additions and 0 deletions

View File

@ -62,6 +62,21 @@ class opt_parser(optparse.OptionParser):
else:
self.error(str(e))
def _process_long_opt(self, rargs, values):
# --custom-option=-ftxyz is interpreted as -f -t... see #2280
if self.allow_unknown:
back = [] + rargs
try:
optparse.OptionParser._process_long_opt(self, rargs, values)
except optparse.BadOptionError:
while rargs:
rargs.pop()
rargs.extend(back)
rargs.pop(0)
raise
else:
optparse.OptionParser._process_long_opt(self, rargs, values)
def print_usage(self, file=None):
return self.print_help(file)