]> jfr.im git - yt-dlp.git/commitdiff
[options] Fix `parse_known_args` for `--`
authorpukkandan <redacted>
Sat, 25 Jun 2022 03:08:52 +0000 (08:38 +0530)
committerpukkandan <redacted>
Sat, 25 Jun 2022 03:08:52 +0000 (08:38 +0530)
Closes #4167

yt_dlp/options.py

index a4f8e09593c42de00dddb324eff8397f59a793df..8c9a9bbb4c5c5e1148af4f713d6546a60dfbed46 100644 (file)
@@ -176,8 +176,19 @@ def parse_known_args(self, args=None, values=None, strict=True):
         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)