From 4af83ba476c82bf8dc77494628132ed651cebc6a Mon Sep 17 00:00:00 2001
From: Mike Bayer <mike_mp@zzzcomputing.com>
Date: Thu, 26 Feb 2009 23:49:20 +0000
Subject: [PATCH] - Fixed lexing support for whitespace   around '=' sign in
 defs. [ticket:102]

---
 CHANGES           |  2 ++
 lib/mako/lexer.py |  2 +-
 test/lexer.py     | 12 +++++++++++-
 3 files changed, 14 insertions(+), 2 deletions(-)

diff --git a/CHANGES b/CHANGES
index ab3eeef..4798462 100644
--- a/CHANGES
+++ b/CHANGES
@@ -2,6 +2,8 @@
 - Added last_modified accessor to Template,
   returns the time.time() when the module
   was created. [ticket:97]
+- Fixed lexing support for whitespace
+  around '=' sign in defs. [ticket:102]
   
 0.2.4
 - Fixed compatibility with Jython 2.5b1.
diff --git a/lib/mako/lexer.py b/lib/mako/lexer.py
index c5c39df..cbaf349 100644
--- a/lib/mako/lexer.py
+++ b/lib/mako/lexer.py
@@ -185,7 +185,7 @@ class Lexer(object):
             
             ([\w\.\:]+)   # keyword
             
-            ((?:\s+\w+|=|".*?"|'.*?')*)  # attrname, = sign, string expression
+            ((?:\s+\w+|\s*=\s*|".*?"|'.*?')*)  # attrname, = sign, string expression
             
             \s*     # more whitespace
             
diff --git a/test/lexer.py b/test/lexer.py
index f0062d0..39d5ac5 100644
--- a/test/lexer.py
+++ b/test/lexer.py
@@ -122,7 +122,17 @@ class LexerTest(unittest.TestCase):
             assert False
         except exceptions.CompileException, e:
             assert str(e) == "Missing parenthesis in %def at line: 2 char: 9"
-    
+
+    def test_whitespace_equals(self):
+        template = """
+            <%def name = "adef()" >
+              adef
+            </%def>
+        """    
+
+        node = Lexer(template).parse()
+        assert repr(node) == r"""TemplateNode({}, [Text(u'\n            ', (1, 1)), DefTag(u'def', {u'name': u'adef()'}, (2, 13), ["Text(u'\\n              adef\\n            ', (2, 36))"]), Text(u'\n        ', (4, 20))])"""
+
     def test_ns_tag_closed(self):
         template = """
         
-- 
GitLab