commit 32ecd96e60b3b2355d94987b9ca649afd3092269 Author: jerico.dev Date: Tue Nov 16 01:44:38 2010 -0200 *6119* "References" header appears when there are no references diff --git a/classes/citation/CitationListTokenizerFilter.inc.php b/classes/citation/CitationListTokenizerFilter.inc.php index 6213311..5b24a95 100644 --- a/classes/citation/CitationListTokenizerFilter.inc.php +++ b/classes/citation/CitationListTokenizerFilter.inc.php @@ -36,11 +36,17 @@ class CitationListTokenizerFilter extends Filter { function &process(&$input) { // The default implementation assumes that raw citations are // separated with line endings. - // 1) Remove empty lines and normalize line endings + // 1) Remove empty lines and normalize line endings. $input = String::regexp_replace('/[\r\n]+/s', "\n", $input); - // 2) Break up at line endings - $citations = explode("\n", $input); - // 3) Remove numbers from the beginning of each citation + // 2) Remove trailing/leading line breaks. + $input = trim($input, "\n"); + // 3) Break up at line endings. + if (empty($input)) { + $citations = array(); + } else { + $citations = explode("\n", $input); + } + // 4) Remove numbers from the beginning of each citation. foreach($citations as $index => $citation) { $citations[$index] = String::regexp_replace('/^\s*[\[#]?[0-9]+[.)\]]?\s*/', '', $citation); } diff --git a/tests/classes/citation/CitationListTokenizerFilterTest.inc.php b/tests/classes/citation/CitationListTokenizerFilterTest.inc.php index a8bcdb6..32aaf3d 100755 --- a/tests/classes/citation/CitationListTokenizerFilterTest.inc.php +++ b/tests/classes/citation/CitationListTokenizerFilterTest.inc.php @@ -30,6 +30,9 @@ class CitationListTokenizerFilterTest extends PKPTestCase { 'citation4' ); self::assertEquals($expectedResult, $tokenizer->process($rawCitationList)); + + $rawCitationList = ''; + self::assertEquals(array(), $tokenizer->process($rawCitationList)); } } ?>