aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpukkandan <pukkandan.ytdlp@gmail.com>2022-06-25 08:38:52 +0530
committerpukkandan <pukkandan.ytdlp@gmail.com>2022-06-25 08:38:52 +0530
commitc800598cd1a3467e53b479c5efc8c6d603d94e5c (patch)
treec054a9452669a5155293b4225dfd6f52426c4006
parent14f25df2b6233553e968df023430ca96c0b1df9f (diff)
downloadhypervideo-pre-c800598cd1a3467e53b479c5efc8c6d603d94e5c.tar.lz
hypervideo-pre-c800598cd1a3467e53b479c5efc8c6d603d94e5c.tar.xz
hypervideo-pre-c800598cd1a3467e53b479c5efc8c6d603d94e5c.zip
[options] Fix `parse_known_args` for `--`
Closes #4167
-rw-r--r--yt_dlp/options.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/yt_dlp/options.py b/yt_dlp/options.py
index a4f8e0959..8c9a9bbb4 100644
--- a/yt_dlp/options.py
+++ b/yt_dlp/options.py
@@ -176,8 +176,19 @@ class _YoutubeDLOptionParser(optparse.OptionParser):
self.rargs, self.largs = self._get_args(args), []
self.values = values or self.get_default_values()
while self.rargs:
+ arg = self.rargs[0]
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:
if isinstance(err, self._UNKNOWN_OPTION):
self.largs.append(err.opt_str)