]> git.wincent.com - wikitext.git/commitdiff
Fix for lines beginning with slashes in PRE blocks
authorWincent Colaiuta <win@wincent.com>
Thu, 10 Nov 2011 08:33:25 +0000 (00:33 -0800)
committerWincent Colaiuta <win@wincent.com>
Thu, 10 Nov 2011 08:34:49 +0000 (00:34 -0800)
I've fixed quite a few of these bugs over the years. I'd aimed to shake
them all out in commit 27681bab (back in 2008), but looks like I missed
one.

Fixes:
  https://wincent.com/issues/1891

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

index 9a9c968920d4b450b51ef04c5d3454b314aeb93c..3c38e2b13b07bf4d1f7923cdcde4f4f7952786bc 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright 2007-2010 Wincent Colaiuta. All rights reserved.
+// Copyright 2007-2011 Wincent Colaiuta. All rights reserved.
 //
 // Redistribution and use in source and binary forms, with or without
 // modification, are permitted provided that the following conditions are met:
@@ -2029,7 +2029,10 @@ VALUE Wikitext_parser_parse(int argc, VALUE *argv, VALUE self)
 
             case PATH:
                 if (IN_ANY_OF(NO_WIKI_START, PRE, PRE_START))
+                {
+                    wiki_emit_pending_crlf_if_necessary(parser);
                     str_append(parser->output, token->start, TOKEN_LEN(token));
+                }
                 else if (IN(EXT_LINK_START))
                 {
                     if (parser->link_target->len == 0)
index 6ba4860d4fe44f5a7e7186113ce9f64ab9f18b9e..698cbd47a6b08206a755d3a0e2dc4a4d84e28723 100644 (file)
@@ -1,5 +1,5 @@
 # encoding: utf-8
-# Copyright 2008-2010 Wincent Colaiuta. All rights reserved.
+# Copyright 2008-2011 Wincent Colaiuta. All rights reserved.
 #
 # Redistribution and use in source and binary forms, with or without
 # modification, are permitted provided that the following conditions are met:
@@ -890,4 +890,10 @@ describe Wikitext::Parser, 'regressions' do
     expected = %Q{<p>[<a href="http://foo.com" class="external">http://foo.com</a>]</p>\n}
     @parser.parse('[http://foo.com]').should == expected
   end
+
+  # https://wincent.com/issues/1891
+  it 'handles shorthand PRE blocks containing lines starting with slashes' do
+    expected = "<pre>/a\n/b\n/c</pre>\n"
+    @parser.parse(" /a\n /b\n /c").should == expected
+  end
 end