Make WordPress Core

Changeset 28719


Ignore:
Timestamp:
06/10/2014 02:17:24 AM (12 years ago)
Author:
wonderboymusic
Message:

In wptexturize(), don't convert C-style hexadecimals to mathematical ×.

Adds unit tests.

Props harrym, kurtpayne, miqrogroove.
Fixes #19308.

Location:
trunk
Files:
2 edited

Legend:

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

    r28718 r28719  
    181181                        $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
    182182
    183                         // 9x9 (times)
    184                         if ( 1 === preg_match( '/(?<=\d)x\d/', $text ) ) {
     183                        // 9x9 (times), but never 0x9999
     184                        if ( 1 === preg_match( '/(?<=\d)x-?\d/', $text ) ) {
    185185                                // Searching for a digit is 10 times more expensive than for the x, so we avoid doing this one!
    186                                 $curl = preg_replace( '/\b(\d+)x(\d+)\b/', '$1&#215;$2', $curl );
     186                                $curl = preg_replace( '/\b(\d(?(?<=0)[\d\.,]+|[\d\.,]*))x(-?\d[\d\.,]*)\b/', '$1&#215;$2', $curl );
    187187                        }
    188188                }
  • trunk/tests/phpunit/tests/formatting/WPTexturize.php

    r28718 r28719  
    782782                        ),
    783783                        array(
     784                                "-123x1=-123",
     785                                "-123&#215;1=-123",
     786                        ),
     787                        array(
     788                                "-123x-1",
     789                                "-123&#215;-1",
     790                        ),
     791                        array(
     792                                "0.675x1=0.675",
     793                                "0.675&#215;1=0.675",
     794                        ),
     795                        array(
    784796                                "9 x 9",
    785797                                "9 x 9",
    786798                        ),
     799                        array(
     800                                "0x70",
     801                                "0x70",
     802                        ),
     803                        array(
     804                                "3x2x1x0",
     805                                "3x2x1x0",
     806                        ),
    787807                );
    788808        }
Note: See TracChangeset for help on using the changeset viewer.