From 1736eb20c8224e32ca6b337950c1f7a8199d0eeb Mon Sep 17 00:00:00 2001 From: Florian Bruhin Date: Thu, 16 Jan 2014 16:05:31 +0100 Subject: [PATCH] Fix command argument handling --- qutebrowser/commands.py | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/qutebrowser/commands.py b/qutebrowser/commands.py index 49fd8acca..304be3fcc 100644 --- a/qutebrowser/commands.py +++ b/qutebrowser/commands.py @@ -15,14 +15,14 @@ class CommandParser(QObject): def parse(self, text): parts = text.strip().split() cmd = parts[0] - args = parts[1:] + argv = parts[1:] obj = cmd_dict[cmd] try: - obj.check(args) + obj.check(argv) except TypeError: # TODO raise - obj.run(args) + obj.run(argv) class Command(QObject): nargs = 0 @@ -34,27 +34,33 @@ class Command(QObject): if cls.name: cmd_dict[cls.name] = cls() - def check(self, *args): - if ((isinstance(self.nargs, int) and len(args) != self.nargs) or - (self.nargs == '?' and len(args) > 1) or - (self.nargs == '+' and len(args) < 1)): + def check(self, argv): + if ((isinstance(self.nargs, int) and len(argv) != self.nargs) or + (self.nargs == '?' and len(argv) > 1) or + (self.nargs == '+' and len(argv) < 1)): raise TypeError("Invalid argument count!") - def run(self, *args): + def run(self, argv): if not self.signal: raise NotImplementedError - self.signal.emit(*args) + self.signal.emit() class OpenCmd(Command): nargs = 1 name = 'open' signal = pyqtSignal(str) + def run(self, argv): + self.signal.emit(argv[0]) + class TabOpenCmd(Command): nargs = 1 name = 'tabopen' signal = pyqtSignal(str) + def run(self, argv): + self.signal.emit(argv[0]) + class QuitCmd(Command): nargs = 0 name = 'quit'