Expect IM keyword argument in command to be at the begining of the args list

This commit is contained in:
nemunaire 2016-04-03 17:40:20 +02:00
commit 358499e6d5

View file

@ -175,20 +175,23 @@ class IRC(Abstract):
except ValueError: except ValueError:
args = text.split(' ') args = text.split(' ')
# Extract explicit named arguments: @key=value or just @key # Extract explicit named arguments: @key=value or just @key, only at begening
kwargs = {} kwargs = {}
for i in range(len(args) - 1, 0, -1): while len(args) > 1:
arg = args[i] arg = args[1]
if len(arg) > 2: if len(arg) > 2:
if arg[0:2] == '\\@': if arg[0:2] == '\\@':
args[i] = arg[1:] args[1] = arg[1:]
elif arg[0] == '@': elif arg[0] == '@':
arsp = arg[1:].split("=", 1) arsp = arg[1:].split("=", 1)
if len(arsp) == 2: if len(arsp) == 2:
kwargs[arsp[0]] = arsp[1] kwargs[arsp[0]] = arsp[1]
else: else:
kwargs[arg[1:]] = None kwargs[arg[1:]] = None
args.pop(i) args.pop(1)
continue
# Futher argument are considered as normal argument (this helps for subcommand treatment)
break
return message.Command(cmd=args[0], return message.Command(cmd=args[0],
args=args[1:], args=args[1:],