Make escape_macros no-op on nontext values
authorJeremy Stanley <fungi@yuggoth.org>
Thu, 17 Mar 2016 10:03:45 +0000 (10:03 +0000)
committerJeremy Stanley <fungi@yuggoth.org>
Thu, 17 Mar 2016 10:03:45 +0000 (10:03 +0000)
Update the escape_macros() function to deal with YAML style
Element.get() that may return datatypes other than str. This allows
for indiscriminately passing facets through the function without
recasting them.

lib/mudpy/misc.py

index bcb50c2..ed205a2 100644 (file)
@@ -1,6 +1,6 @@
 """Miscellaneous functions for the mudpy engine."""
 
-# Copyright (c) 2004-2015 Jeremy Stanley <fungi@yuggoth.org>. Permission
+# Copyright (c) 2004-2016 Jeremy Stanley <fungi@yuggoth.org>. Permission
 # to use, copy, modify, and distribute this software is granted under
 # terms provided in the LICENSE file distributed with this software.
 
@@ -1342,9 +1342,12 @@ def replace_macros(user, text, is_input=False):
     return text
 
 
-def escape_macros(text):
+def escape_macros(value):
     """Escapes replacement macros in text."""
-    return text.replace("$(", "$_(")
+    if type(value) is str:
+        return value.replace("$(", "$_(")
+    else:
+        return value
 
 
 def first_word(text, separator=" "):