Ticket #398: implicit-end.diff

File implicit-end.diff, 1.1 KB (added by jvr_django@…, 10 years ago)

Patch for Parser.parse() to pass parse_until to do_* callbacks

  • django-trunk/django/core/template.py

     
    5555'\n<html>\n\n</html>\n'
    5656"""
    5757import re
     58import inspect
    5859
    5960__all__ = ('Template','Context','compile_string')
    6061
     
    216217                    raise TemplateSyntaxError, "Empty block tag"
    217218                try:
    218219                    # execute callback function for this tag and append resulting node
    219                     nodelist.append(registered_tags[command](self, token))
     220                    callback = registered_tags[command]
     221                    (args, _, _, _) = inspect.getargspec(callback)
     222                    if len(args) == 3:
     223                        node = callback(self, token, parse_until)
     224                    else:
     225                        node = callback(self, token)
     226                    nodelist.append(node)
    220227                except KeyError:
    221228                    raise TemplateSyntaxError, "Invalid block tag: '%s'" % command
    222229        if parse_until:
Back to Top