Make WordPress Core

Ticket #23756: 23756.2.diff

File 23756.2.diff, 1.0 KB (added by adamsilverstein, 10 years ago)

add nest level count, corrects issue with nested pre & code tags

  • wp-includes/formatting.php

     
    16001600function make_clickable( $text ) {
    16011601        $r = '';
    16021602        $textarr = preg_split( '/(<[^<>]+>)/', $text, -1, PREG_SPLIT_DELIM_CAPTURE ); // split out HTML tags
     1603        $nested_level_count = 0; // Keep track of how many levels link is nested
    16031604        foreach ( $textarr as $piece ) {
    1604                 if ( empty( $piece ) || ( $piece[0] == '<' && ! preg_match('|^<\s*[\w]{1,20}+://|', $piece) ) ) {
     1605
     1606                switch ( $piece ) {
     1607                        case '<code>' :
     1608                        case '<pre>'  :
     1609                                $nested_level_count = $nested_level_count + 1;
     1610                                break;
     1611                        case '</code>' :
     1612                        case '</pre>'  :
     1613                                $nested_level_count = 0 < $nested_level_count ? $nested_level_count - 1 : $nested_level_count;
     1614                                break;
     1615                }
     1616
     1617                if ( ( 0 !== $nested_level_count ) || empty( $piece ) || ( $piece[0] == '<' && ! preg_match('|^<\s*[\w]{1,20}+://|', $piece) ) ) {
    16051618                        $r .= $piece;
    16061619                        continue;
    16071620                }