home · contact · privacy
Fix command argument parser forgetting splittable last parts of last arg.
authorChristian Heller <c.heller@plomlompom.de>
Sun, 10 Aug 2025 09:25:37 +0000 (11:25 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Sun, 10 Aug 2025 09:25:37 +0000 (11:25 +0200)
ircplom/tui_base.py

index 72a22471b86a4c0656fc627370329ad96d0946c5..3a9e0f40dfe4950b3558b59b2ca7ff1be6f26c30 100644 (file)
@@ -476,15 +476,14 @@ class BaseTui(QueueMixin):
                 if toks and not n_args_max:
                     alert = f'{cmd_name} given argument(s) while none expected'
                 else:
-                    args: list[str] = []
-                    while toks and len(args) < n_args_max:
-                        toks = toks[0].split(maxsplit=1)
-                        args += [toks.pop(0)]
-                    if len(args) < n_args_min:
+                    if toks:
+                        while ' ' in toks[-1] and len(toks) < n_args_max:
+                            toks = toks[:-1] + toks[-1].split(maxsplit=1)
+                    if len(toks) < n_args_min:
                         alert = f'{cmd_name} too few arguments '\
-                                + f'(given {len(args)}, need {n_args_min})'
+                                + f'(given {len(toks)}, need {n_args_min})'
                     else:
-                        alert = cmd(*args)
+                        alert = cmd(*toks)
         else:
             alert = 'not prefixed by /'
         if alert: