home · contact · privacy
Fix broken MusicPlayer handling.
[plomrogue2] / plomrogue / parser.py
index 69f728ee9859f3ed299f04b98177687c0ee52ce0..05c830ff8552c216b81924c46244067717e478a4 100644 (file)
@@ -77,7 +77,18 @@ class Parser:
         """Parse msg as call to function, return function with args tuple.
 
         Respects function signature defined in function's .argtypes attribute.
         """Parse msg as call to function, return function with args tuple.
 
         Respects function signature defined in function's .argtypes attribute.
+
+        Throws out messages with any but a small list of acceptable characters.
+
         """
         """
+        import string
+        msg = msg.replace('\n', ' ')  # Inserted by some tablet keyboards.
+        legal_chars = string.digits + string.ascii_letters +\
+            string.punctuation + ' ' + 'ÄäÖöÜüߧ' + 'éèáàô' + '–'
+        for c in msg:
+            if not c in legal_chars:
+                raise ArgError('Command/message contains illegal character(s), '
+                               'may only contain ones of: %s' % legal_chars)
         tokens = self.tokenize(msg)
         if len(tokens) == 0:
             return None, ()
         tokens = self.tokenize(msg)
         if len(tokens) == 0:
             return None, ()