From a227cb483a779df89a360a829a36f5c9ecebdbe2 Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" Date: Fri, 4 Jul 2008 21:26:26 -0400 Subject: [PATCH] Allow empty sections in string hashes; previously they were left undefined. Signed-off-by: Edward Z. Yang --- NEWS | 2 ++ library/HTMLPurifier/StringHashParser.php | 2 +- tests/HTMLPurifier/StringHashParser/Simple.txt | 1 + tests/HTMLPurifier/StringHashParserTest.php | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index 73112514..77d2cb1e 100644 --- a/NEWS +++ b/NEWS @@ -31,6 +31,8 @@ NEWS ( CHANGELOG and HISTORY ) HTMLPurifier for more interesting filter-backtracking . New HTMLPurifier_Injector->rewind() functionality, allows injectors to rewind index to reprocess tokens. +. StringHashParser now allows for multiline sections with "empty" content; + previously the section would remain undefined. 3.1.1, released 2008-06-19 # %URI.Munge now, by default, does not munge resources (for example, ) diff --git a/library/HTMLPurifier/StringHashParser.php b/library/HTMLPurifier/StringHashParser.php index e96897d1..e98271df 100644 --- a/library/HTMLPurifier/StringHashParser.php +++ b/library/HTMLPurifier/StringHashParser.php @@ -78,6 +78,7 @@ class HTMLPurifier_StringHashParser if (strncmp('--', $line, 2) === 0) { // Multiline declaration $state = trim($line, '- '); + if (!isset($ret[$state])) $ret[$state] = ''; continue; } elseif (!$state) { $single = true; @@ -94,7 +95,6 @@ class HTMLPurifier_StringHashParser $single = false; $state = false; } else { - if (!isset($ret[$state])) $ret[$state] = ''; $ret[$state] .= "$line\n"; } } while (!feof($fh)); diff --git a/tests/HTMLPurifier/StringHashParser/Simple.txt b/tests/HTMLPurifier/StringHashParser/Simple.txt index cc91d41b..939cb6d0 100644 --- a/tests/HTMLPurifier/StringHashParser/Simple.txt +++ b/tests/HTMLPurifier/StringHashParser/Simple.txt @@ -4,5 +4,6 @@ CHAIN-ME: 2 --DESCRIPTION-- Multiline stuff +--EMPTY-- --FOR-WHO-- Single multiline diff --git a/tests/HTMLPurifier/StringHashParserTest.php b/tests/HTMLPurifier/StringHashParserTest.php index e1e1ab01..ece80128 100644 --- a/tests/HTMLPurifier/StringHashParserTest.php +++ b/tests/HTMLPurifier/StringHashParserTest.php @@ -29,6 +29,7 @@ class HTMLPurifier_StringHashParserTest extends UnitTestCase 'TYPE' => 'string', 'CHAIN-ME' => '2', 'DESCRIPTION' => "Multiline\nstuff\n", + 'EMPTY' => '', 'FOR-WHO' => "Single multiline\n", )); }