[options] Fix `parse_known_args` for `--`

Closes #4167
pull/4181/head
pukkandan 3 years ago
parent 14f25df2b6
commit c800598cd1
No known key found for this signature in database
GPG Key ID: 7EEE9E1E817D0A39

@ -176,8 +176,19 @@ class _YoutubeDLOptionParser(optparse.OptionParser):
self.rargs, self.largs = self._get_args(args), [] self.rargs, self.largs = self._get_args(args), []
self.values = values or self.get_default_values() self.values = values or self.get_default_values()
while self.rargs: while self.rargs:
arg = self.rargs[0]
try: try:
self._process_args(self.largs, self.rargs, self.values) if arg == '--':
del self.rargs[0]
break
elif arg.startswith('--'):
self._process_long_opt(self.rargs, self.values)
elif arg.startswith('-') and arg != '-':
self._process_short_opts(self.rargs, self.values)
elif self.allow_interspersed_args:
self.largs.append(self.rargs.pop(0))
else:
break
except optparse.OptParseError as err: except optparse.OptParseError as err:
if isinstance(err, self._UNKNOWN_OPTION): if isinstance(err, self._UNKNOWN_OPTION):
self.largs.append(err.opt_str) self.largs.append(err.opt_str)

Loading…
Cancel
Save