Make WordPress Core

Changeset 28719


Ignore:
Timestamp:
06/10/2014 02:17:24 AM (11 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.