From 54196be5093258f9b91853bb14411ec10fabe45e Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 6 Jan 2014 23:03:25 +0100 Subject: [PATCH] add short options to getopts. single letter options will work with both - or -- --- src/commands.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/commands.py b/src/commands.py index ac0e28622..5920b938b 100644 --- a/src/commands.py +++ b/src/commands.py @@ -971,11 +971,18 @@ class getopts(context): self.spec = getopts # for repr self.getopts = {} self.getoptL = [] + self.getoptLs = '' for (name, spec) in getopts.iteritems(): if spec == '': + if len(name) == 1: + self.getoptLs += name + self.getopts[name] = None self.getoptL.append(name) self.getopts[name] = None else: + if len(name) == 1: + self.getoptLs += name + ':' + self.getopts[name] = contextify(spec) self.getoptL.append(name + '=') self.getopts[name] = contextify(spec) log.debug('getopts: %r', self.getopts) @@ -983,10 +990,13 @@ class getopts(context): def __call__(self, irc, msg, args, state): log.debug('args before %r: %r', self, args) - (optlist, rest) = getopt.getopt(args, '', self.getoptL) + (optlist, rest) = getopt.getopt(args, self.getoptLs, self.getoptL) getopts = [] for (opt, arg) in optlist: - opt = opt[2:] # Strip -- + if opt.startswith('--'): + opt = opt[2:] # Strip -- + else: + opt = opt[1:] log.debug('opt: %r, arg: %r', opt, arg) context = self.getopts[opt] if context is not None: