Take previous jinja2 blocks into account in splitter when we see quotes

Previously, split_args() was not taking print/block/comment depth into account
when splitting things, meaning that if there was a quote character inside an
un-quoted variable (ie. {{ foo | some_filter(' ') }}), it was incorrectly
splitting on the quotes instead of continuing to append to the previous param.

Fixes #13630
This commit is contained in:
James Cammarata 2016-03-28 15:43:43 -04:00
parent 0c92ec5e8f
commit f2713f764c

View file

@ -204,7 +204,7 @@ def split_args(args):
# to the end of the list, since we'll tack on more to it later # to the end of the list, since we'll tack on more to it later
# otherwise, if we're inside any jinja2 block, inside quotes, or we were # otherwise, if we're inside any jinja2 block, inside quotes, or we were
# inside quotes (but aren't now) concat this token to the last param # inside quotes (but aren't now) concat this token to the last param
if inside_quotes and not was_inside_quotes: if inside_quotes and not was_inside_quotes and not(print_depth or block_depth or comment_depth):
params.append(token) params.append(token)
appended = True appended = True
elif print_depth or block_depth or comment_depth or inside_quotes or was_inside_quotes: elif print_depth or block_depth or comment_depth or inside_quotes or was_inside_quotes: