diff options
author | Tom N Harris <tnharris@whoopdedo.org> | 2011-02-27 20:36:15 -0500 |
---|---|---|
committer | Tom N Harris <tnharris@whoopdedo.org> | 2011-02-27 20:36:15 -0500 |
commit | b6d540bdf1d129168ec20fb4c54956edb07c189b (patch) | |
tree | e8a3e08d6dffabfcf3bcc2c63b735a4a3d4f8be6 /inc | |
parent | 1538718db8939adf4ce057f2b7fb6d2eea309757 (diff) | |
download | rpg-b6d540bdf1d129168ec20fb4c54956edb07c189b.tar.gz rpg-b6d540bdf1d129168ec20fb4c54956edb07c189b.tar.bz2 |
Fix wildcard search
Diffstat (limited to 'inc')
-rw-r--r-- | inc/indexer.php | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/inc/indexer.php b/inc/indexer.php index fc7813ba1..270f717b5 100644 --- a/inc/indexer.php +++ b/inc/indexer.php @@ -543,18 +543,18 @@ class Doku_Indexer { } else { foreach ($value_array as $val) { $xval = $val; - $caret = false; - $dollar = false; + $caret = '^'; + $dollar = '$'; // check for wildcards if (substr($xval, 0, 1) == '*') { $xval = substr($xval, 1); - $caret = '^'; + $caret = ''; } if (substr($xval, -1, 1) == '*') { $xval = substr($xval, 0, -1); - $dollar = '$'; + $dollar = ''; } - if ($caret || $dollar) { + if (!$caret || !$dollar) { $re = $caret.preg_quote($xval, '/').$dollar; foreach(array_keys(preg_grep('/'.$re.'/', $words)) as $i) $value_ids[$i][] = $val; @@ -619,27 +619,27 @@ class Doku_Indexer { $tokenwild = array(); foreach ($words as $word) { $result[$word] = array(); - $caret = false; - $dollar = false; + $caret = '^'; + $dollar = '$'; $xword = $word; $wlen = wordlen($word); // check for wildcards if (substr($xword, 0, 1) == '*') { $xword = substr($xword, 1); - $caret = '^'; + $caret = ''; $wlen -= 1; } if (substr($xword, -1, 1) == '*') { $xword = substr($xword, 0, -1); - $dollar = '$'; + $dollar = ''; $wlen -= 1; } - if ($wlen < IDX_MINWORDLENGTH && !$caret && !$dollar && !is_numeric($xword)) + if ($wlen < IDX_MINWORDLENGTH && $caret && $dollar && !is_numeric($xword)) continue; if (!isset($tokens[$xword])) $tokenlength[$wlen][] = $xword; - if ($caret || $dollar) { + if (!$caret || !$dollar) { $re = $caret.preg_quote($xword, '/').$dollar; $tokens[$xword][] = array($word, '/'.$re.'/'); if (!isset($tokenwild[$xword])) |