From 1bfd364a4a46537d37f57182b972393f8c84457e Mon Sep 17 00:00:00 2001 From: Ben Kurtovic Date: Sat, 6 Oct 2012 21:24:00 -0400 Subject: [PATCH] Process contexts in Tokenizer_handle_template_param() correctly. --- mwparserfromhell/parser/tokenizer.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mwparserfromhell/parser/tokenizer.c b/mwparserfromhell/parser/tokenizer.c index 2808157..4ac86d3 100644 --- a/mwparserfromhell/parser/tokenizer.c +++ b/mwparserfromhell/parser/tokenizer.c @@ -680,11 +680,13 @@ Tokenizer_handle_template_param(Tokenizer* self) if (Tokenizer_verify_safe(self, unsafes)) return -1; if (BAD_ROUTE) return -1; - if (Tokenizer_set_context(self, context ^ LC_TEMPLATE_NAME)) + context ^= LC_TEMPLATE_NAME; + if (Tokenizer_set_context(self, context)) return -1; } else if (context & LC_TEMPLATE_PARAM_VALUE) { - if (Tokenizer_set_context(self, context ^ LC_TEMPLATE_PARAM_VALUE)) + context ^= LC_TEMPLATE_PARAM_VALUE; + if (Tokenizer_set_context(self, context)) return -1; } @@ -698,7 +700,8 @@ Tokenizer_handle_template_param(Tokenizer* self) Py_DECREF(stack); } else { - if (Tokenizer_set_context(self, context | LC_TEMPLATE_PARAM_KEY)) + context |= LC_TEMPLATE_PARAM_KEY; + if (Tokenizer_set_context(self, context)) return -1; } @@ -714,7 +717,7 @@ Tokenizer_handle_template_param(Tokenizer* self) } Py_DECREF(token); - Tokenizer_push(self, Tokenizer_CONTEXT_VAL(self)); + Tokenizer_push(self, context); return 0; }