WordPress.org

Make WordPress Core

Ticket #7056: texturize-deep-code.diff

File texturize-deep-code.diff, 1.6 KB (added by nbachiyski, 9 years ago)
  • wp-includes/formatting.php

     
    3030        global $wp_cockneyreplace;
    3131        $next = true;
    3232        $has_pre_parent = false;
     33        $has_code_parent = false;
    3334        $output = '';
    3435        $curl = '';
    3536        $textarr = preg_split('/(<.*>|\[.*\])/Us', $text, -1, PREG_SPLIT_DELIM_CAPTURE);
     
    5354        for ( $i = 0; $i < $stop; $i++ ) {
    5455                $curl = $textarr[$i];
    5556
    56                 if ( !empty($curl) && '<' != $curl{0} && '[' != $curl{0} && $next && !$has_pre_parent) { // If it's not a tag
     57                if ( !empty($curl) && '<' != $curl{0} && '[' != $curl{0} && $next && !$has_pre_parent && !$has_code_parent) { // If it's not a tag
    5758                        // static strings
    5859                        $curl = str_replace($static_characters, $static_replacements, $curl);
    5960                        // regular expressions
    6061                        $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
    61                 } elseif (strpos($curl, '<code') !== false || strpos($curl, '<kbd') !== false || strpos($curl, '<style') !== false || strpos($curl, '<script') !== false) {
     62                } elseif (strpos($curl, '<kbd') !== false || strpos($curl, '<style') !== false || strpos($curl, '<script') !== false) {
    6263                        $next = false;
    6364                } elseif (strpos($curl, '<pre') !== false) {
    6465                        $has_pre_parent = true;
    6566                } elseif (strpos($curl, '</pre>') !== false) {
    6667                        $has_pre_parent = false;
     68                } elseif (strpos($curl, '<code') !== false) {
     69                        $has_code_parent = true;
     70                } elseif (strpos($curl, '</code>') !== false) {
     71                        $has_code_parent = false;
    6772                } else {
    6873                        $next = true;
    6974                }