]> git.wincent.com - wikitext.git/commit
Fix inconsistent behaviour of unexpected PRE_START tokens
authorWincent Colaiuta <win@wincent.com>
Sun, 23 Mar 2008 16:50:55 +0000 (17:50 +0100)
committerWincent Colaiuta <win@wincent.com>
Sun, 23 Mar 2008 16:50:55 +0000 (17:50 +0100)
commita6168411ab6292e8b101577a335e54b7ca479a85
treeb70cceee6805858c27dce66b62d04c28ce18f668
parentf59061451793efff3b304dcdfb39784306ccb248
Fix inconsistent behaviour of unexpected PRE_START tokens

This fixes the issue where PRE_START tokens weren't working when they
followed a list (clearly a bug) by changing the way in which
unexpected PRE_START tokens are handled in general.

Basically, we were explicitly allowing them to appear inside
BLOCKQUOTE_START blocks and when the scope was empty, and disallowing
them everywhere else. This allowed a number of inconsistencies to
creep in; one example is that a PRE_START inside a H1 block would not
be allowed _unless_ the H1 itself was inside a BLOCKQUOTE_START.

Not only is this a confusing inconsistency, it's also a departure from
the pattern held almost everywhere else in the parser, where if we see
an unexpected token we respond by closing all the previous spans and
blocks until we get to a scope where we can emit the unexpected token.

So now we have consistent behaviour and the only place where PRE_START
tokens are explicitly disallowed is inside BLOCKQUOTE blocks (not
BLOCKQUOTE_START blocks), as indicated in the documentation.

Signed-off-by: Wincent Colaiuta <win@wincent.com>
ext/parser.c
spec/pre_spec.rb
spec/regressions_spec.rb