diff --git a/wp-admin/bookmarklet.php b/wp-admin/bookmarklet.php index 1f06d57a2d..1883bd7200 100644 --- a/wp-admin/bookmarklet.php +++ b/wp-admin/bookmarklet.php @@ -20,34 +20,20 @@ window.close() '€', // the Euro sign + '' => '', + '‚' => '‚', // these are Windows CP1252 specific characters + 'ƒ' => 'ƒ', // they would look weird on non-Windows browsers + '„' => '„', + '…' => '…', + '†' => '†', + '‡' => '‡', + 'ˆ' => 'ˆ', + '‰' => '‰', + 'Š' => 'Š', + '‹' => '‹', + 'Œ' => 'Œ', + '' => '', + 'Ž' => 'ž', + '' => '', + '' => '', + '‘' => '‘', + '’' => '’', + '“' => '“', + '”' => '”', + '•' => '•', + '–' => '–', + '—' => '—', + '˜' => '˜', + '™' => '™', + 'š' => 'š', + '›' => '›', + 'œ' => 'œ', + '' => '', + 'ž' => '', + 'Ÿ' => 'Ÿ' + ); // Remove metadata tags $content = preg_replace('/(.+?)<\/title>/','',$content); @@ -255,6 +289,49 @@ function convert_chars($content, $flag = 'obsolete') { return $content; } +function funky_javascript_fix($text) { + // Fixes for browsers' javascript bugs + global $is_macIE, $is_winIE, $is_gecko; + $wp_macIE_correction['in'] = array( + '/\%uFFD4/', '/\%uFFD5/', '/\%uFFD2/', '/\%uFFD3/', + '/\%uFFA5/', '/\%uFFD0/', '/\%uFFD1/', '/\%uFFBD/', + '/\%uFF83%uFFC0/', '/\%uFF83%uFFC1/', '/\%uFF83%uFFC6/', '/\%uFF83%uFFC9/', + '/\%uFFB9/', '/\%uFF81%uFF8C/', '/\%uFF81%uFF8D/', '/\%uFF81%uFFDA/', + '/\%uFFDB/' + ); + $wp_macIE_correction['out'] = array( + '‘', '’', '“', '”', + '•', '–', '—', 'Ω', + 'β', 'γ', 'θ', 'λ', + 'π', '′', '″', '∠', + '€' + ); + $wp_gecko_correction['in'] = array( + '/\/', '/\/', '/\/', '/\/', + '/\/', '/\/', '/\/', '/\O/', + '/\/', '/\?/', '/\?/', '/\?/', + '/\p/', '/\'/', '/\?/', '/\/', + '/\/', '/\?/' + ); + $wp_gecko_correction['out'] = array( + '&8216;', '’', '“', '”', + '•', '–', '—', 'Ω', + 'β', 'γ', 'θ', 'λ', + 'π', '′', '″', '∠', + '€', ' ' + ); + if ( $is_macIE ) + $text = preg_replace('/'.$wp_macIE_correction["in"].'/', '/'.$wp_macIE_correction["out"].'/', $text); + + if ( $is_winIE ) + $text = preg_replace("/\%u([0-9A-F]{4,4})/e", "'&#'.base_convert('\\1',16,10).';'", $text); + + if ( $is_gecko ) + $text = preg_replace('/'.$wp_gecko_correction["in"].'/','/'.$wp_gecko_correction["out"].'/',$text); + + return $text; +} + /* balanceTags diff --git a/wp-includes/vars.php b/wp-includes/vars.php index e298c12d05..970b4a8dde 100644 --- a/wp-includes/vars.php +++ b/wp-includes/vars.php @@ -3,42 +3,6 @@ /* This file sets various arrays and variables for use in WordPress */ require(ABSPATH . 'wp-includes/version.php'); -# Translation of invalid Unicode references range to valid range -$wp_htmltranswinuni = array( - '€' => '€', // the Euro sign - '' => '', - '‚' => '‚', // these are Windows CP1252 specific characters - 'ƒ' => 'ƒ', // they would look weird on non-Windows browsers - '„' => '„', - '…' => '…', - '†' => '†', - '‡' => '‡', - 'ˆ' => 'ˆ', - '‰' => '‰', - 'Š' => 'Š', - '‹' => '‹', - 'Œ' => 'Œ', - '' => '', - 'Ž' => 'ž', - '' => '', - '' => '', - '‘' => '‘', - '’' => '’', - '“' => '“', - '”' => '”', - '•' => '•', - '–' => '–', - '—' => '—', - '˜' => '˜', - '™' => '™', - 'š' => 'š', - '›' => '›', - 'œ' => 'œ', - '' => '', - 'ž' => '', - 'Ÿ' => 'Ÿ' - ); - // On which page are we ? $PHP_SELF = $_SERVER['PHP_SELF']; if (preg_match('#([^/]+.php)#', $PHP_SELF, $self_matches)) { @@ -75,36 +39,6 @@ if (preg_match('/Lynx/', $HTTP_USER_AGENT)) { } $is_IE = (($is_macIE) || ($is_winIE)); -// browser-specific javascript corrections -$wp_macIE_correction['in'] = array( - '/\%uFFD4/', '/\%uFFD5/', '/\%uFFD2/', '/\%uFFD3/', - '/\%uFFA5/', '/\%uFFD0/', '/\%uFFD1/', '/\%uFFBD/', - '/\%uFF83%uFFC0/', '/\%uFF83%uFFC1/', '/\%uFF83%uFFC6/', '/\%uFF83%uFFC9/', - '/\%uFFB9/', '/\%uFF81%uFF8C/', '/\%uFF81%uFF8D/', '/\%uFF81%uFFDA/', - '/\%uFFDB/' -); -$wp_macIE_correction['out'] = array( - '‘', '’', '“', '”', - '•', '–', '—', 'Ω', - 'β', 'γ', 'θ', 'λ', - 'π', '′', '″', '∠', - '€' -); -$wp_gecko_correction['in'] = array( - '/\‘/', '/\’/', '/\“/', '/\”/', - '/\•/', '/\–/', '/\—/', '/\Ω/', - '/\β/', '/\γ/', '/\θ/', '/\λ/', - '/\π/', '/\′/', '/\″/', '/\/', - '/\€/', '/\ /' -); -$wp_gecko_correction['out'] = array( - '&8216;', '’', '“', '”', - '•', '–', '—', 'Ω', - 'β', 'γ', 'θ', 'λ', - 'π', '′', '″', '∠', - '€', ' ' -); - // Server detection $is_apache = strstr($_SERVER['SERVER_SOFTWARE'], 'Apache') ? 1 : 0;