summaryrefslogtreecommitdiff
path: root/modules/search
diff options
context:
space:
mode:
authorwebchick <webchick@24967.no-reply.drupal.org>2012-01-11 23:16:22 -0500
committerwebchick <webchick@24967.no-reply.drupal.org>2012-01-11 23:16:22 -0500
commit87a1fbc1f6875196d0347cc2b6565f4e730d384a (patch)
treeeab94d4b368daeac6fdf0d4d8688746346eb4d7d /modules/search
parentccbc40d071b9c5c407de0a17809ecf933a54c4ed (diff)
downloadbrdo-87a1fbc1f6875196d0347cc2b6565f4e730d384a.tar.gz
brdo-87a1fbc1f6875196d0347cc2b6565f4e730d384a.tar.bz2
Issue #987472 by damien_vancouver, OnkelTem: Fixed search.module doesn't consistently support multibyte characters.
Diffstat (limited to 'modules/search')
-rw-r--r--modules/search/search.module2
-rw-r--r--modules/search/search.test6
2 files changed, 7 insertions, 1 deletions
diff --git a/modules/search/search.module b/modules/search/search.module
index 518272a02..915c96fb2 100644
--- a/modules/search/search.module
+++ b/modules/search/search.module
@@ -1188,7 +1188,7 @@ function search_excerpt($keys, $text) {
if (($s = strrpos($end, ' ')) !== FALSE) {
// Account for the added spaces.
$q = max($q - 1, 0);
- $s = min($s, drupal_strlen($end) - 1);
+ $s = min($s, strlen($end) - 1);
$ranges[$q] = $p + $s;
$length += $p + $s - $q;
$included[$key] = $p + 1;
diff --git a/modules/search/search.test b/modules/search/search.test
index 38bb0a74c..ca1dd24a3 100644
--- a/modules/search/search.test
+++ b/modules/search/search.test
@@ -1599,6 +1599,12 @@ class SearchExcerptTestCase extends DrupalUnitTestCase {
$result = preg_replace('| +|', ' ', search_excerpt('nothing', $entities));
$this->assertFalse(strpos($result, '&'), 'Entities are not present in excerpt');
$this->assertTrue(strpos($result, 'í') > 0, 'Entities are converted in excerpt');
+
+ // The node body that will produce this rendered $text is:
+ // 123456789 HTMLTest +123456789+&lsquo; +&lsquo; +&lsquo; +&lsquo; +12345678 &nbsp;&nbsp; +&lsquo; +&lsquo; +&lsquo; &lsquo;
+ $text = "<div class=\"field field-name-body field-type-text-with-summary field-label-hidden\"><div class=\"field-items\"><div class=\"field-item even\" property=\"content:encoded\"><p>123456789 HTMLTest +123456789+‘ +‘ +‘ +‘ +12345678    +‘ +‘ +‘ ‘</p>\n</div></div></div> ";
+ $result = search_excerpt('HTMLTest', $text);
+ $this->assertFalse(empty($result), 'Rendered Multi-byte HTML encodings are not corrupted in search excerpts');
}
/**