Author: aaugustin
Date: 2011-12-09 14:10:52 -0800 (Fri, 09 Dec 2011)
New Revision: 17186

Modified:
   django/trunk/django/template/base.py
   django/trunk/django/template/loader_tags.py
Log:
Fixed #3100 -- Added support for arguments on intermediate tag tokens.



Modified: django/trunk/django/template/base.py
===================================================================
--- django/trunk/django/template/base.py        2011-12-09 22:10:03 UTC (rev 
17185)
+++ django/trunk/django/template/base.py        2011-12-09 22:10:52 UTC (rev 
17186)
@@ -250,15 +250,15 @@
                 var_node = self.create_variable_node(filter_expression)
                 self.extend_nodelist(nodelist, var_node, token)
             elif token.token_type == TOKEN_BLOCK:
-                if token.contents in parse_until:
+                try:
+                    command = token.contents.split()[0]
+                except IndexError:
+                    self.empty_block_tag(token)
+                if command in parse_until:
                     # put token back on token list so calling
                     # code knows why it terminated
                     self.prepend_token(token)
                     return nodelist
-                try:
-                    command = token.contents.split()[0]
-                except IndexError:
-                    self.empty_block_tag(token)
                 # execute callback function for this tag and append
                 # resulting node
                 self.enter_command(command, token)

Modified: django/trunk/django/template/loader_tags.py
===================================================================
--- django/trunk/django/template/loader_tags.py 2011-12-09 22:10:03 UTC (rev 
17185)
+++ django/trunk/django/template/loader_tags.py 2011-12-09 22:10:52 UTC (rev 
17186)
@@ -189,8 +189,14 @@
         parser.__loaded_blocks.append(block_name)
     except AttributeError: # parser.__loaded_blocks isn't a list yet
         parser.__loaded_blocks = [block_name]
-    nodelist = parser.parse(('endblock', 'endblock %s' % block_name))
-    parser.delete_first_token()
+    nodelist = parser.parse(('endblock',))
+
+    # This check is kept for backwards-compatibility. See #3100.
+    endblock = parser.next_token()
+    acceptable_endblocks = ('endblock', 'endblock %s' % block_name)
+    if endblock.contents not in acceptable_endblocks:
+        parser.invalid_block_tag(endblock, 'endblock', acceptable_endblocks)
+
     return BlockNode(block_name, nodelist)
 
 @register.tag('extends')

-- 
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com.
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en.

Reply via email to