From a35ff36673ed392b0c753b7298cf4dd3b39f06dc Mon Sep 17 00:00:00 2001 From: Steven Wittens Date: Fri, 15 Oct 2004 22:01:41 +0000 Subject: search: Removing iso-8859-1 characters from update_index() and adding the same stripping to do_search(). This fixes the embarrasing bug of not being able to search for "4.5.0" because it is indexed as "450". --- modules/search.module | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'modules/search.module') diff --git a/modules/search.module b/modules/search.module index a4fe6dd44..04b0630c4 100644 --- a/modules/search.module +++ b/modules/search.module @@ -128,6 +128,9 @@ function do_search($search_array) { $type = $search_array['type']; $select = $search_array['select']; + // Remove punctuation/special characters (same rule as update_index()). + $keys = preg_replace("'(!|%|,|:|;|\(|\)|\&|\"|\'|\.|-|\/|\?|\\\)'", '', $keys); + // Replace wildcards with MySQL wildcards. $keys = str_replace('*', '%', $keys); @@ -259,8 +262,8 @@ function update_index($search_array) { // Strip heaps of stuff out of it. $wordlist = preg_replace("'<[\/\!]*?[^<>]*?>'si", '', $wordlist); - // Remove punctuation/special characters. - $wordlist = preg_replace("'(\xBB|\xAB|!|\xA1|%|,|:|;|\(|\)|\&|\"|\'|\.|-|\/|\?|\\\)'", '', $wordlist); + // Remove punctuation/special characters (same rule as do_search()). + $keys = preg_replace("'(!|%|,|:|;|\(|\)|\&|\"|\'|\.|-|\/|\?|\\\)'", '', $keys); // Strip out (now mangled) http and tags. $wordlist = preg_replace("'http\w+'", '', $wordlist); -- cgit v1.2.3