From: <lph...@us...> - 2012-08-08 12:47:36
|
Revision: 42552 http://tikiwiki.svn.sourceforge.net/tikiwiki/?rev=42552&view=rev Author: lphuberdeau Date: 2012-08-08 12:47:26 +0000 (Wed, 08 Aug 2012) Log Message: ----------- [FIX] Avoid error on malformed query Modified Paths: -------------- trunk/lib/core/Search/Expr/Parser.php trunk/lib/test/core/Search/Expr/ParserTest.php Modified: trunk/lib/core/Search/Expr/Parser.php =================================================================== --- trunk/lib/core/Search/Expr/Parser.php 2012-08-08 12:14:24 UTC (rev 42551) +++ trunk/lib/core/Search/Expr/Parser.php 2012-08-08 12:47:26 UTC (rev 42552) @@ -132,8 +132,12 @@ private function buildNot(&$tokens, $key) { - $tokens[$key] = new Search_Expr_Not($tokens[$key + 1]); - $tokens[$key + 1] = null; + if (isset($tokens[$key + 1])) { + $tokens[$key] = new Search_Expr_Not($tokens[$key + 1]); + $tokens[$key + 1] = null; + } else { + $tokens[$key] = null; + } } private function filterExcessiveKeywords($tokens) Modified: trunk/lib/test/core/Search/Expr/ParserTest.php =================================================================== --- trunk/lib/test/core/Search/Expr/ParserTest.php 2012-08-08 12:14:24 UTC (rev 42551) +++ trunk/lib/test/core/Search/Expr/ParserTest.php 2012-08-08 12:47:26 UTC (rev 42552) @@ -237,5 +237,12 @@ $this->assertEquals($this->parser->parse('hello and world'), $result); } + + function testNotWithNoValue() + { + $result = $this->parser->parse('hello and (not )'); + + $this->assertEquals($this->parser->parse('hello and ()'), $result); + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |