Rolled in a bunch of fixes for the command system

This commit is contained in:
red-agent 2009-09-13 00:22:17 +03:00
parent 981572f79d
commit cae86299e4
3 changed files with 5 additions and 9 deletions

View File

@ -82,8 +82,6 @@ class ChatControlBase(MessageControl, CommonCommands):
'''A base class containing a banner, ConversationTextview, MessageTextView '''A base class containing a banner, ConversationTextview, MessageTextView
''' '''
DISPATCHED_BY = CommonCommands
def make_href(self, match): def make_href(self, match):
url_color = gajim.config.get('urlmsgcolor') url_color = gajim.config.get('urlmsgcolor')
return '<a href="%s"><span color="%s">%s</span></a>' % (match.group(), return '<a href="%s"><span color="%s">%s</span></a>' % (match.group(),

View File

@ -27,12 +27,11 @@ class CommandInternalError(Exception):
class CommandError(Exception): class CommandError(Exception):
def __init__(self, message=None, command=None, name=None): def __init__(self, message=None, command=None, name=None):
self.command = command
self.name = name
if command: if command:
self.command = command
self.name = command.first_name self.name = command.first_name
elif name:
self.command = None
self.name = name
if message: if message:
super(CommandError, self).__init__(message) super(CommandError, self).__init__(message)
@ -343,7 +342,7 @@ class CommandProcessor(object):
# Quite complex piece of regular expression logic. # Quite complex piece of regular expression logic.
ARG_PATTERN = re.compile(r'(\'|")?(?P<body>(?(1).+?|\S+))(?(1)\1)') ARG_PATTERN = re.compile(r'(\'|")?(?P<body>(?(1).+?|\S+))(?(1)\1)')
OPT_PATTERN = re.compile(r'--?(?P<key>[\w-]+)(?:(?:=|\s)(\'|")?(?P<value>(?(2)[^-]+?|[^-\s]+))(?(2)\2))?') OPT_PATTERN = re.compile(r'(?<!\w)--?(?P<key>[\w-]+)(?:(?:=|\s)(\'|")?(?P<value>(?(2)[^-]+?|[^-\s]+))(?(2)\2))?')
EXPAND_SHORT_OPTIONS = True EXPAND_SHORT_OPTIONS = True
@ -509,7 +508,7 @@ class CommandProcessor(object):
return False return False
text = text[len(self.COMMAND_PREFIX):] text = text[len(self.COMMAND_PREFIX):]
text = text.lstrip() text = text.strip()
parts = text.split(' ', 1) parts = text.split(' ', 1)

View File

@ -19,7 +19,6 @@ would be dropped in. Defines a little bit of scaffolding to support interaction
between the two and a few utility methods so you don't need to dig up the host between the two and a few utility methods so you don't need to dig up the host
code to write basic commands. code to write basic commands.
""" """
from types import StringTypes from types import StringTypes
from framework import CommandProcessor, CommandError from framework import CommandProcessor, CommandError
from traceback import print_exc from traceback import print_exc