wptexturize: After [28727], leverage RegeEx possessives (++) to improve performance and avoid libpcre segfaults.
Props kovshenin. Fixes #12690. Built from https://develop.svn.wordpress.org/trunk@29431 git-svn-id: http://core.svn.wordpress.org/trunk@29209 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
parent
b053fe2e04
commit
6b3251e931
|
@ -219,7 +219,7 @@ function wptexturize($text, $reset = false) {
|
||||||
. '[^\[\]<>]' // Shortcodes do not contain other shortcodes.
|
. '[^\[\]<>]' // Shortcodes do not contain other shortcodes.
|
||||||
. '|'
|
. '|'
|
||||||
. '<[^>]+>' // HTML elements permitted. Prevents matching ] before >.
|
. '<[^>]+>' // HTML elements permitted. Prevents matching ] before >.
|
||||||
. ')+'
|
. ')++'
|
||||||
. '\]' // Find end of shortcode.
|
. '\]' // Find end of shortcode.
|
||||||
. '\]?' // Shortcodes may end with ]]
|
. '\]?' // Shortcodes may end with ]]
|
||||||
. ')/s';
|
. ')/s';
|
||||||
|
@ -241,12 +241,12 @@ function wptexturize($text, $reset = false) {
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
} elseif ( '[' === $first && 1 === preg_match( '/^\[(?:[^\[\]<>]|<[^>]+>)+\]$/', $curl ) ) {
|
} elseif ( '[' === $first && 1 === preg_match( '/^\[(?:[^\[\]<>]|<[^>]+>)++\]$/', $curl ) ) {
|
||||||
// This is a shortcode delimeter.
|
// This is a shortcode delimeter.
|
||||||
|
|
||||||
_wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes );
|
_wptexturize_pushpop_element( $curl, $no_texturize_shortcodes_stack, $no_texturize_shortcodes );
|
||||||
|
|
||||||
} elseif ( '[' === $first && 1 === preg_match( '/^\[\[?(?:[^\[\]<>]|<[^>]+>)+\]\]?$/', $curl ) ) {
|
} elseif ( '[' === $first && 1 === preg_match( '/^\[\[?(?:[^\[\]<>]|<[^>]+>)++\]\]?$/', $curl ) ) {
|
||||||
// This is an escaped shortcode delimeter.
|
// This is an escaped shortcode delimeter.
|
||||||
|
|
||||||
// Do not texturize.
|
// Do not texturize.
|
||||||
|
|
Loading…
Reference in New Issue