Make WordPress Core


Ignore:
Timestamp:
06/16/2015 12:49:45 AM (11 years ago)
Author:
wonderboymusic
Message:

Improve the consistency of punctuation matching in wptexturize().

Adds unit tests.

Props miqrogroove.
Fixes #31886.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/formatting.php

    r32788 r32789  
    128128        // '99' and '99" are ambiguous among other patterns; assume it's an abbreviated year at the end of a quotation.
    129129        if ( "'" !== $apos || "'" !== $closing_single_quote ) {
    130             $dynamic[ '/\'(\d\d)\'(?=\Z|[.,)}\-\]]|>|' . $spaces . ')/' ] = $apos . '$1' . $closing_single_quote;
     130            $dynamic[ '/\'(\d\d)\'(?=\Z|[.,:;!?)}\-\]]|>|' . $spaces . ')/' ] = $apos . '$1' . $closing_single_quote;
    131131        }
    132132        if ( "'" !== $apos || '"' !== $closing_quote ) {
    133             $dynamic[ '/\'(\d\d)"(?=\Z|[.,)}\-\]]|>|' . $spaces . ')/' ] = $apos . '$1' . $closing_quote;
     133            $dynamic[ '/\'(\d\d)"(?=\Z|[.,:;!?)}\-\]]|>|' . $spaces . ')/' ] = $apos . '$1' . $closing_quote;
    134134        }
    135135
     
    151151        // Apostrophe in a word.  No spaces, double apostrophes, or other punctuation.
    152152        if ( "'" !== $apos ) {
    153             $dynamic[ '/(?<!' . $spaces . ')\'(?!\Z|[.,:;"\'(){}[\]\-]|&[lg]t;|' . $spaces . ')/' ] = $apos;
     153            $dynamic[ '/(?<!' . $spaces . ')\'(?!\Z|[.,:;!?"\'(){}[\]\-]|&[lg]t;|' . $spaces . ')/' ] = $apos;
    154154        }
    155155
     
    161161        // Single quotes followed by spaces or ending punctuation.
    162162        if ( "'" !== $closing_single_quote ) {
    163             $dynamic[ '/\'(?=\Z|[.,)}\-\]]|&gt;|' . $spaces . ')/' ] = $closing_single_quote;
     163            $dynamic[ '/\'(?=\Z|[.,:;!?)}\-\]]|&gt;|' . $spaces . ')/' ] = $closing_single_quote;
    164164        }
    165165
Note: See TracChangeset for help on using the changeset viewer.