http://www.mediawiki.org/wiki/Special:Code/MediaWiki/60831
Revision: 60831 Author: freakolowsky Date: 2010-01-08 07:52:51 +0000 (Fri, 08 Jan 2010) Log Message: ----------- Escaped Oracle Text reserved words Modified Paths: -------------- trunk/phase3/includes/search/SearchOracle.php Modified: trunk/phase3/includes/search/SearchOracle.php =================================================================== --- trunk/phase3/includes/search/SearchOracle.php 2010-01-08 07:23:43 UTC (rev 60830) +++ trunk/phase3/includes/search/SearchOracle.php 2010-01-08 07:52:51 UTC (rev 60831) @@ -27,6 +27,34 @@ * @ingroup Search */ class SearchOracle extends SearchEngine { + + private $reservedWords = array ('ABOUT' => 1, + 'ACCUM' => 1, + 'AND' => 1, + 'BT' => 1, + 'BTG' => 1, + 'BTI' => 1, + 'BTP' => 1, + 'FUZZY' => 1, + 'HASPATH' => 1, + 'INPATH' => 1, + 'MINUS' => 1, + 'NEAR' => 1, + 'NOT' => 1, + 'NT' => 1, + 'NTG' => 1, + 'NTI' => 1, + 'NTP' => 1, + 'OR' => 1, + 'PT' => 1, + 'RT' => 1, + 'SQE' => 1, + 'SYN' => 1, + 'TR' => 1, + 'TRSYN' => 1, + 'TT' => 1, + 'WITHIN' => 1); + function __construct($db) { $this->db = $db; } @@ -191,6 +219,7 @@ private function escapeTerm($t) { global $wgContLang; $t = $wgContLang->stripForSearch($t); + $t = isset($this->reservedWords[strtoupper($t)]) ? '{'.$t.'}' : $t; $t = preg_replace('/^"(.*)"$/', '($1)', $t); $t = preg_replace('/([-&|])/', '\\\\$1', $t); return $t; _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs