diff --git a/plugins/Alias.py b/plugins/Alias.py index 7f58258b8..4d6213615 100644 --- a/plugins/Alias.py +++ b/plugins/Alias.py @@ -91,6 +91,9 @@ def makeNewAlias(name, alias): raise AliasError, 'Can\'t mix $* and optional args (@1, etc.)' if original.count('$*') > 1: raise AliasError, 'There can be only one $* in an alias.' + testTokens = callbacks.tokenize(original) + if testTokens and isinstance(testTokens[0], list): + raise AliasError, 'Commands may not be the result of nesting.' def f(self, irc, msg, args): alias = original.replace('$nick', msg.nick) if '$channel' in original: diff --git a/test/test_Alias.py b/test/test_Alias.py index 69972d439..13321ee6b 100644 --- a/test/test_Alias.py +++ b/test/test_Alias.py @@ -67,6 +67,9 @@ class FunctionsTest(SupyTestCase): class AliasTestCase(ChannelPluginTestCase, PluginDocumentation): plugins = ('Alias', 'Filter', 'Utilities') + def testNoAliasWithNestedCommandName(self): + self.assertError('alias add foo "[bar] baz"') + def testDoesNotOverwriteCommands(self): self.assertError('alias add alias "echo foo bar baz"') self.assertError('alias add add "echo foo bar baz"')