diff options
author | Christopher Smith <chris@jalakai.co.uk> | 2013-12-01 17:57:03 +0000 |
---|---|---|
committer | Christopher Smith <chris@jalakai.co.uk> | 2013-12-01 17:57:03 +0000 |
commit | 5a41afe6e3b958291893a0a10105cd41971fb141 (patch) | |
tree | 734b94bd2570187c46c5159f3bf2c9cc598a2855 | |
parent | 89c9e0571b68a2608fd8426a34204e42fc77e6b3 (diff) | |
download | rpg-5a41afe6e3b958291893a0a10105cd41971fb141.tar.gz rpg-5a41afe6e3b958291893a0a10105cd41971fb141.tar.bz2 |
FS#1833 (b)
Prevent table entry syntax swallowing multiple preceeding blank lines
(a) this shouldn't be necessary, blank lines are handled by paragraph
processing
(b) avoids issues with greedy table syntax competing with plugins
-rw-r--r-- | _test/tests/inc/parser/parser_table.test.php | 19 | ||||
-rw-r--r-- | inc/parser/parser.php | 4 |
2 files changed, 21 insertions, 2 deletions
diff --git a/_test/tests/inc/parser/parser_table.test.php b/_test/tests/inc/parser/parser_table.test.php index 542a307b8..bc19ebff9 100644 --- a/_test/tests/inc/parser/parser_table.test.php +++ b/_test/tests/inc/parser/parser_table.test.php @@ -626,5 +626,24 @@ def'); ); $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); } + + function testTable_FS1833() { + $syntax = " \n| Row 0 Col 1 |\n"; + $this->P->addMode('table',new Doku_Parser_Mode_Table()); + $this->P->parse($syntax); + $calls = array ( + array('document_start',array()), + array('table_open',array(1, 1, 2)), + array('tablerow_open',array()), + array('tablecell_open',array(1,'left',1)), + array('cdata',array(' Row 0 Col 1 ')), + array('tablecell_close',array()), + array('tablerow_close',array()), + array('table_close',array(strlen($syntax))), + array('document_end',array()), + ); + $this->assertEquals(array_map('stripbyteindex',$this->H->calls),$calls); + } + } diff --git a/inc/parser/parser.php b/inc/parser/parser.php index e39a4daf5..1f14b98a3 100644 --- a/inc/parser/parser.php +++ b/inc/parser/parser.php @@ -454,8 +454,8 @@ class Doku_Parser_Mode_table extends Doku_Parser_Mode { } function connectTo($mode) { - $this->Lexer->addEntryPattern('\s*\n\^',$mode,'table'); - $this->Lexer->addEntryPattern('\s*\n\|',$mode,'table'); + $this->Lexer->addEntryPattern('[\t ]*\n\^',$mode,'table'); + $this->Lexer->addEntryPattern('[\t ]*\n\|',$mode,'table'); } function postConnect() { |