Skip to content
Snippets Groups Projects
Commit 84e581a6 authored by Andreas Gohr's avatar Andreas Gohr
Browse files

fix word boundary matching on broken platforms FS#2440

Seems like matching \b on unicode strings is unreliable across different
platforms (Debian). Using Unicode class lookahed/behinds seems to work
though.
parent 0483f97f
No related branches found
No related tags found
No related merge requests found
......@@ -394,19 +394,24 @@ function ft_snippet_re_preprocess($term) {
return $term;
}
// unicode word boundaries
// see http://stackoverflow.com/a/2449017/172068
$BL = '(?<!\pL)';
$BR = '(?!\pL)';
if(substr($term,0,2) == '\\*'){
$term = substr($term,2);
}else{
$term = '\b'.$term;
$term = $BL.$term;
}
if(substr($term,-2,2) == '\\*'){
$term = substr($term,0,-2);
}else{
$term = $term.'\b';
$term = $term.$BR;
}
if($term == '\b' || $term == '\b\b') $term = '';
if($term == $BL || $term == $BR || $term == $BL.$BR) $term = '';
return $term;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment