summaryrefslogtreecommitdiff
path: root/inc/indexer.php
diff options
context:
space:
mode:
authorTom N Harris <tnharris@whoopdedo.org>2011-02-27 20:36:15 -0500
committerTom N Harris <tnharris@whoopdedo.org>2011-02-27 20:36:15 -0500
commitb6d540bdf1d129168ec20fb4c54956edb07c189b (patch)
treee8a3e08d6dffabfcf3bcc2c63b735a4a3d4f8be6 /inc/indexer.php
parent1538718db8939adf4ce057f2b7fb6d2eea309757 (diff)
downloadrpg-b6d540bdf1d129168ec20fb4c54956edb07c189b.tar.gz
rpg-b6d540bdf1d129168ec20fb4c54956edb07c189b.tar.bz2
Fix wildcard search
Diffstat (limited to 'inc/indexer.php')
-rw-r--r--inc/indexer.php22
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]))