Make WordPress Core

Ticket #7662: 7662.r8864.diff

File 7662.r8864.diff, 6.6 KB (added by jacobsantos, 15 years ago)

Newline conflicts, but completes file with inline documentation where needed, based off of r8864

  • wp-diff.php

     
    11<?php
     2/**
     3 * WordPress Diff bastard child of old MediaWiki Diff Formatter.
     4 *
     5 * Basically all that remains is the table structure and some method names.
     6 *
     7 * @package WordPress
     8 * @subpackage Diff
     9 */
    210
    311if ( !class_exists( 'Text_Diff' ) ) {
     12        /** Text_Diff class */
    413        require( dirname(__FILE__).'/Text/Diff.php' );
     14        /** Text_Diff_Renderer class */
    515        require( dirname(__FILE__).'/Text/Diff/Renderer.php' );
     16        /** Text_Diff_Renderer_inline class */
    617        require( dirname(__FILE__).'/Text/Diff/Renderer/inline.php' );
    718}
    819
    9 
    10 /* Descendent of a bastard child of piece of an old MediaWiki Diff Formatter
     20/**
     21 * Table renderer to display the diff lines.
    1122 *
    12  * Basically all that remains is the table structure and some method names.
     23 * @since 2.6.0
     24 * @uses Text_Diff_Renderer Extends
    1325 */
     26class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
    1427
    15 class WP_Text_Diff_Renderer_Table extends Text_Diff_Renderer {
     28        /**
     29         * @see Text_Diff_Renderer::_leading_context_lines
     30         * @var int
     31         * @access protected
     32         * @since 2.6.0
     33         */
    1634        var $_leading_context_lines  = 10000;
     35
     36        /**
     37         * @see Text_Diff_Renderer::_trailing_context_lines
     38         * @var int
     39         * @access protected
     40         * @since 2.6.0
     41         */
    1742        var $_trailing_context_lines = 10000;
     43
     44        /**
     45         * {@internal Missing Description}}
     46         *
     47         * @var float
     48         * @access protected
     49         * @since 2.6.0
     50         */
    1851        var $_diff_threshold = 0.6;
    1952
     53        /**
     54         * Inline display helper object name.
     55         *
     56         * @var string
     57         * @access protected
     58         * @since 2.6.0
     59         */
    2060        var $inline_diff_renderer = 'WP_Text_Diff_Renderer_inline';
    2161
     62        /**
     63         * PHP4 Constructor - Call parent constructor with params array.
     64         *
     65         * This will set class properties based on the key value pairs in the array.
     66         *
     67         * @since unknown
     68         *
     69         * @param array $params
     70         */
    2271        function Text_Diff_Renderer_Table( $params = array() ) {
    2372                $parent = get_parent_class($this);
    2473                $this->$parent( $params );
    2574        }
    2675
     76        /**
     77         * @ignore
     78         *
     79         * @param string $header
     80         * @return string
     81         */
    2782        function _startBlock( $header ) {
    2883                return '';
    2984        }
    3085
     86        /**
     87         * @ignore
     88         *
     89         * @param array $lines
     90         * @param string $prefix
     91         */
    3192        function _lines( $lines, $prefix=' ' ) {
    3293        }
    3394
    34         // HTML-escape parameter before calling this
     95        /**
     96         * @ignore
     97         *
     98         * @param string $line HTML-escape the value.
     99         * @return string
     100         */
    35101        function addedLine( $line ) {
    36102                return "<td>+</td><td class='diff-addedline'>{$line}</td>";
    37103        }
    38104
    39         // HTML-escape parameter before calling this
     105        /**
     106         * @ignore
     107         *
     108         * @param string $line HTML-escape the value.
     109         * @return string
     110         */
    40111        function deletedLine( $line ) {
    41112                return "<td>-</td><td class='diff-deletedline'>{$line}</td>";
    42113        }
    43114
    44         // HTML-escape parameter before calling this
     115        /**
     116         * @ignore
     117         *
     118         * @param string $line HTML-escape the value.
     119         * @return string
     120         */
    45121        function contextLine( $line ) {
    46122                return "<td> </td><td class='diff-context'>{$line}</td>";
    47123        }
    48124
     125        /**
     126         * @ignore
     127         *
     128         * @return string
     129         */
    49130        function emptyLine() {
    50131                return '<td colspan="2">&nbsp;</td>';
    51132        }
    52133
     134        /**
     135         * @ignore
     136         * @access private
     137         *
     138         * @param array $lines
     139         * @param bool $encode
     140         * @return string
     141         */
    53142        function _added( $lines, $encode = true ) {
    54143                $r = '';
    55144                foreach ($lines as $line) {
     
    60149                return $r;
    61150        }
    62151
     152        /**
     153         * @ignore
     154         * @access private
     155         *
     156         * @param array $lines
     157         * @param bool $encode
     158         * @return string
     159         */
    63160        function _deleted( $lines, $encode = true ) {
    64161                $r = '';
    65162                foreach ($lines as $line) {
     
    70167                return $r;
    71168        }
    72169
     170        /**
     171         * @ignore
     172         * @access private
     173         *
     174         * @param array $lines
     175         * @param bool $encode
     176         * @return string
     177         */
    73178        function _context( $lines, $encode = true ) {
    74179                $r = '';
    75180                foreach ($lines as $line) {
     
    81186                return $r;
    82187        }
    83188
    84         // Process changed lines to do word-by-word diffs for extra highlighting (TRAC style)
    85         // sometimes these lines can actually be deleted or added rows - we do additional processing
    86         // to figure that out
     189        /**
     190         * Process changed lines to do word-by-word diffs for extra highlighting.
     191         *
     192         * (TRAC style) sometimes these lines can actually be deleted or added rows.
     193         * We do additional processing to figure that out
     194         *
     195         * @access private
     196         * @since 2.6.0
     197         *
     198         * @param array $orig
     199         * @param array $final
     200         * @return string
     201         */
    87202        function _changed( $orig, $final ) {
    88203                $r = '';
    89204
     
    151266                return $r;
    152267        }
    153268
    154         // Takes changed blocks and matches which rows in orig turned into which rows in final.
    155         // Returns
    156         //      *_matches ( which rows match with which )
    157         //      *_rows ( order of rows in each column interleaved with blank rows as necessary )
     269        /**
     270         * Takes changed blocks and matches which rows in orig turned into which rows in final.
     271         *
     272         * Returns
     273         *      *_matches ( which rows match with which )
     274         *      *_rows ( order of rows in each column interleaved with blank rows as
     275         *              necessary )
     276         *
     277         * @since 2.6.0
     278         *
     279         * @param unknown_type $orig
     280         * @param unknown_type $final
     281         * @return unknown
     282         */
    158283        function interleave_changed_lines( $orig, $final ) {
    159284
    160285                // Contains all pairwise string comparisons.  Keys are such that this need only be a one dimensional array.
     
    279404*/
    280405        }
    281406
    282 
    283         // Computes a number that is intended to reflect the "distance" between two strings.
     407        /**
     408         * Computes a number that is intended to reflect the "distance" between two strings.
     409         *
     410         * @since 2.6.0
     411         *
     412         * @param string $string1
     413         * @param string $string2
     414         * @return int
     415         */
    284416        function compute_string_distance( $string1, $string2 ) {
    285417                // Vectors containing character frequency for all chars in each string
    286418                $chars1 = count_chars($string1);
     
    297429                return $difference / strlen($string1);
    298430        }
    299431
     432        /**
     433         * @ignore
     434         * @since 2.6.0
     435         *
     436         * @param int $a
     437         * @param int $b
     438         * @return int
     439         */
    300440        function difference( $a, $b ) {
    301441                return abs( $a - $b );
    302442        }
    303443
    304444}
    305445
    306 // Better word splitting than the PEAR package provides
     446/**
     447 * Better word splitting than the PEAR package provides.
     448 *
     449 * @since 2.6.0
     450 * @uses Text_Diff_Renderer_inline Extends
     451 */
    307452class WP_Text_Diff_Renderer_inline extends Text_Diff_Renderer_inline {
    308453
     454        /**
     455         * @ignore
     456         * @since 2.6.0
     457         *
     458         * @param string $string
     459         * @param string $newlineEscape
     460         * @return string
     461         */
    309462        function _splitOnWords($string, $newlineEscape = "\n") {
    310463                $string = str_replace("\0", '', $string);
    311464                $words  = preg_split( '/([^\w])/u', $string, -1, PREG_SPLIT_DELIM_CAPTURE );