smilies_init(), treat   like whitespace when converting smilies.

Adds unit tests.

Props miqrogroove.
Fixes #27587.


git-svn-id: https://develop.svn.wordpress.org/trunk@28717 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Scott Taylor
2014-06-10 02:02:23 +00:00
parent 97bacb3121
commit db7816dd0c
3 changed files with 89 additions and 34 deletions

View File

@@ -2713,7 +2713,10 @@ function smilies_init() {
*/
krsort($wpsmiliestrans);
$wp_smiliessearch = '/((?:\s|^)';
$spaces = wp_spaces_regexp();
// Begin first "subpattern"
$wp_smiliessearch = '/(?<=' . $spaces . '|^)';
$subchar = '';
foreach ( (array) $wpsmiliestrans as $smiley => $img ) {
@@ -2723,7 +2726,8 @@ function smilies_init() {
// new subpattern?
if ($firstchar != $subchar) {
if ($subchar != '') {
$wp_smiliessearch .= ')(?=\s|$))|((?:\s|^)'; ;
$wp_smiliessearch .= ')(?=' . $spaces . '|$)'; // End previous "subpattern"
$wp_smiliessearch .= '|(?<=' . $spaces . '|^)'; // Begin another "subpattern"
}
$subchar = $firstchar;
$wp_smiliessearch .= preg_quote($firstchar, '/') . '(?:';
@@ -2733,7 +2737,7 @@ function smilies_init() {
$wp_smiliessearch .= preg_quote($rest, '/');
}
$wp_smiliessearch .= ')(?=\s|$))/m';
$wp_smiliessearch .= ')(?=' . $spaces . '|$)/m';
}
@@ -4419,4 +4423,4 @@ function wp_validate_boolean( $var ) {
}
return (bool) $var;
}
}