comparison piecrust/templating/jinjaengine.py @ 446:4cdf6c2157a0

bug: Fix infinite loop in Jinja2 rendering.
author Ludovic Chabant <ludovic@chabant.com>
date Thu, 02 Jul 2015 23:28:24 -0700
parents d8d86debea81
children 96d363e2da4b
comparison
equal deleted inserted replaced
445:d8d86debea81 446:4cdf6c2157a0
34 self.env = None 34 self.env = None
35 35
36 def renderString(self, txt, data, filename=None): 36 def renderString(self, txt, data, filename=None):
37 self._ensureLoaded() 37 self._ensureLoaded()
38 38
39 offset = 0
40 do_render = False 39 do_render = False
41 index = txt.find('{') 40 index = txt.find('{')
42 while index >= 0: 41 while index >= 0:
43 ch = txt[index + 1] 42 ch = txt[index + 1]
44 if ch == '{' or ch == '%': 43 if ch == '{' or ch == '%':
45 do_render = True 44 do_render = True
46 break 45 break
47 index = txt.find('{', offset + 1) 46 index = txt.find('{', index + 1)
48 47
49 if not do_render: 48 if not do_render:
50 return txt 49 return txt
51 50
52 try: 51 try: