=== modified file 'sites/all/modules/smileys/smileys.module' --- smileys.module 2010-04-11 00:34:25 +0000 +++ smileys.module 2011-04-20 21:27:41 +0000 @@ -1,6 +1,15 @@ acronyms); $rows[] = array( - ''. $acronyms[0] .'', + '' . $acronyms[0] . '', check_plain($smiley->acronyms) ); } @@ -275,17 +285,24 @@ function smileys_filter_process($text) { } } else if (!$ignore) { + $base = (SMILEYS_ABSOLUTE_URLS ? $GLOBALS['base_url'] : '') . base_path(); foreach ($list as $smiley) { $acronyms = explode(" ", $smiley->acronyms); $alt = str_replace('\\', '\\\\', check_plain($smiley->description)); foreach ($acronyms as $a) { - if ($smiley->standalone) - $chunk = eregi_replace("([ ,\.\?!:\(\)\r\n\<\>])". preg_quote($a) ."([ ,\.\?!:\(\)\r\n\<\>])", "\\1image) ."\" title=\"". check_plain($alt) ."\" alt=\"". check_plain($alt) ."\" class=\"smiley-content\"/>\\2", $chunk); - else - $chunk = eregi_replace(preg_quote($a), ''. check_plain($alt) .'', $chunk); + if ($smiley->standalone) { + // For a discussion on additional unicode white space as smiley + // boundaries see http://drupal.org/node/567290#comment-2047730. + // Conclusion: If Drupal requires >=PHP-5.1.0 reconsider using + // unicode PCRE like "\p{Zs}". + $chunk = preg_replace("/(?<= |\xC2\xA0|[ ,\.\?!:\(\)\r\n\<\>])". preg_quote($a) ."(?= |\xC2\xA0|[ ,\.\?!:\(\)\r\n\<\>])/i", ''. check_plain($alt) .'', $chunk); + } + else { + $chunk = preg_replace('/'. preg_quote($a) .'/i', ''. check_plain($alt) .'', $chunk); + } } } - } + } $output .= $chunk; } return $output;