Make WordPress Core

Ticket #20342: miqro-20342.patch

File miqro-20342.patch, 3.5 KB (added by miqrogroove, 10 years ago)
  • src/wp-includes/formatting.php

     
    9191                        $cockney = $cockneyreplace = array();
    9292                }
    9393
    94                 $static_characters = array_merge( array( '---', '...', '``', '\'\'', ' (tm)' ), $cockney );
    95                 $static_replacements = array_merge( array( $em_dash, '…', $opening_quote, $closing_quote, ' ™' ), $cockneyreplace );
     94                $static_characters = array_merge( array( '...', '``', '\'\'', ' (tm)' ), $cockney );
     95                $static_replacements = array_merge( array( '…', $opening_quote, $closing_quote, ' ™' ), $cockneyreplace );
    9696
    9797                $spaces = wp_spaces_regexp();
    9898
     
    113113                        $dynamic[ '/\'(?=\d)/' ] = $apos;
    114114                }
    115115
    116                 // Single quote at start, or preceded by (, {, <, [, ", or spaces.
     116                // Single quote at start, or preceded by (, {, <, [, ", -, or spaces.
    117117                if ( "'" !== $opening_single_quote ) {
    118                         $dynamic[ '/(?<=\A|[([{<"]|' . $spaces . ')\'/' ] = $opening_single_quote;
     118                        $dynamic[ '/(?<=\A|[([{<"\-]|' . $spaces . ')\'/' ] = $opening_single_quote;
    119119                }
    120120
    121121                // 9" (double prime)
     
    133133                        $dynamic[ '/(?<!' . $spaces . ')\'(?!\'|' . $spaces . ')/' ] = $apos;
    134134                }
    135135
    136                 // Double quote at start, or preceded by (, {, <, [, or spaces, and not followed by spaces.
     136                // Double quote at start, or preceded by (, {, <, [, -, or spaces, and not followed by spaces.
    137137                if ( '"' !== $opening_quote ) {
    138                         $dynamic[ '/(?<=\A|[([{<]|' . $spaces . ')"(?!' . $spaces . ')/' ] = $opening_quote;
     138                        $dynamic[ '/(?<=\A|[([{<\-]|' . $spaces . ')"(?!' . $spaces . ')/' ] = $opening_quote;
    139139                }
    140140
    141141                // Any remaining double quotes.
     
    149149                }
    150150
    151151                // Dashes and spaces
     152                $dynamic[ '/---/' ] = $em_dash;
    152153                $dynamic[ '/(?<=' . $spaces . ')--(?=' . $spaces . ')/' ] = $em_dash;
    153154                $dynamic[ '/(?<!xn)--/' ] = $en_dash;
    154155                $dynamic[ '/(?<=' . $spaces . ')-(?=' . $spaces . ')/' ] = $en_dash;
  • tests/phpunit/tests/formatting/WPTexturize.php

     
    10661066                );
    10671067        }
    10681068
     1069        /**
     1070         * Quotations should be allowed to have dashes around them.
     1071         *
     1072         * @ticket 20342
     1073         * @dataProvider data_quotes_and_dashes
     1074         */
     1075        function test_quotes_and_dashes( $input, $output ) {
     1076                return $this->assertEquals( $output, wptexturize( $input ) );
     1077        }
     1078
     1079        function data_quotes_and_dashes() {
     1080                return array(
     1081                        array(
     1082                                'word---"quote"',
     1083                                'word&#8212;&#8220;quote&#8221;',
     1084                        ),
     1085                        array(
     1086                                'word--"quote"',
     1087                                'word&#8211;&#8220;quote&#8221;',
     1088                        ),
     1089                        array(
     1090                                'word-"quote"',
     1091                                'word-&#8220;quote&#8221;',
     1092                        ),
     1093                        array(
     1094                                "word---'quote'",
     1095                                "word&#8212;&#8216;quote&#8217;",
     1096                        ),
     1097                        array(
     1098                                "word--'quote'",
     1099                                "word&#8211;&#8216;quote&#8217;",
     1100                        ),
     1101                        array(
     1102                                "word-'quote'",
     1103                                "word-&#8216;quote&#8217;",
     1104                        ),
     1105                        array(
     1106                                '"quote"---word',
     1107                                '&#8220;quote&#8221;&#8212;word',
     1108                        ),
     1109                        array(
     1110                                '"quote"--word',
     1111                                '&#8220;quote&#8221;&#8211;word',
     1112                        ),
     1113                        array(
     1114                                '"quote"-word',
     1115                                '&#8220;quote&#8221;-word',
     1116                        ),
     1117                        array(
     1118                                "'quote'---word",
     1119                                "&#8216;quote&#8217;&#8212;word",
     1120                        ),
     1121                        array(
     1122                                "'quote'--word",
     1123                                "&#8216;quote&#8217;&#8211;word",
     1124                        ),
     1125                        array(
     1126                                "'quote'-word",
     1127                                "&#8216;quote&#8217;-word",
     1128                        ),
     1129                );
     1130        }
    10691131}