﻿id,summary,reporter,owner,description,type,status,priority,milestone,component,version,severity,resolution,keywords,cc
18575,wptexturize modifies code inside tag attributes,iamcal,,"In certain circumstances, wptexturize() will try to smart quote things inside attributes, screwing up the markup. For example:

{{{
[hello <a href=""foo[bar]('baz')"">world</a>
}}}

The tokenizer that generates $textarr will split the text like this:

{{{
0: [hello <a href=""foo[bar]
1:('baz')"">world
2:</a>
}}}

and so element 1 gets treated like non-tag text even though it's from an attribute. the easy fix is to not allow starting braces inside a brace set:

old:
{{{
$textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
}}}

new:
{{{
$textarr = preg_split('/(<[^<]*>|\[[^\[]*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
}}}

this happens on trunk. code is in wp-includes/formatting.php. after the patch, the tokenizer works as intended:


{{{
0: [hello
1: <a href=""foo[bar]('baz')"">
2: world
3: </a>
}}}
",defect (bug),new,normal,Awaiting Review,Formatting,3.2,normal,,has-patch,
