OSDN Git Service

Cleanup.
authorhenoheno <henoheno>
Thu, 7 Oct 2004 14:34:55 +0000 (23:34 +0900)
committerhenoheno <henoheno>
Thu, 7 Oct 2004 14:34:55 +0000 (23:34 +0900)
* Added many spaces
* Shrink many brackets
* 'and' for boolean => '&&'
* 'or'  for boolean => '||'
* array_key_exists() => isset()

lib/diff.php

index 658c716..270cef0 100644 (file)
@@ -2,33 +2,33 @@
 /////////////////////////////////////////////////
 // PukiWiki - Yet another WikiWikiWeb clone.
 //
-// $Id: diff.php,v 1.1 2004/08/01 01:54:35 henoheno Exp $
+// $Id: diff.php,v 1.2 2004/10/07 14:34:55 henoheno Exp $
 //
 //¾×ÆÍ»þ¤ËÂбþɽ¤ò½Ð¤¹
 define('DIFF_SHOW_TABLE',TRUE);
 
 // º¹Ê¬¤ÎºîÀ®
-function do_diff($strlines1,$strlines2)
+function do_diff($strlines1, $strlines2)
 {
        $obj = new line_diff();
-       $str = $obj->str_compare($strlines1,$strlines2);
+       $str = $obj->str_compare($strlines1, $strlines2);
        return $str;
 }
 
 // º¹Ê¬¤ÎºîÀ®(¹¹¿·¤Î¾×ÆÍ)
-function do_update_diff($pagestr,$poststr,$original)
+function do_update_diff($pagestr, $poststr, $original)
 {
        $obj = new line_diff();
 
-       $obj->set_str('left',$original,$pagestr);
+       $obj->set_str('left', $original, $pagestr);
        $obj->compare();
        $diff1 = $obj->toArray();
 
-       $obj->set_str('right',$original,$poststr);
+       $obj->set_str('right', $original, $poststr);
        $obj->compare();
        $diff2 = $obj->toArray();
 
-       $arr = $obj->arr_compare('all',$diff1,$diff2);
+       $arr = $obj->arr_compare('all', $diff1, $diff2);
 
        if (DIFF_SHOW_TABLE)
        {
@@ -44,18 +44,14 @@ function do_update_diff($pagestr,$poststr,$original)
   <th>text</th>
  </tr>
 EOD;
-               $tags = array('th','th','td');
+               $tags = array('th', 'th', 'td');
                foreach ($arr as $_obj)
                {
                        $do_update_diff_table .= '<tr>';
-                       $params = array($_obj->get('left'),$_obj->get('right'),$_obj->text());
-                       foreach ($params as $key=>$text)
-                       {
+                       $params = array($_obj->get('left'), $_obj->get('right'), $_obj->text());
+                       foreach ($params as $key=>$text) {
                                $text = htmlspecialchars($text);
-                               if (trim($text) == '')
-                               {
-                                       $text = '&nbsp;';
-                               }
+                               if (trim($text) == '') $text = '&nbsp;';
                                $do_update_diff_table .= "<{$tags[$key]} class=\"style_{$tags[$key]}\">$text</{$tags[$key]}>";
                        }
                        $do_update_diff_table .= '</tr>'."\n";
@@ -64,17 +60,14 @@ EOD;
        }
 
        $body = '';
-       foreach ($arr as $_obj)
-       {
-               if ($_obj->get('left') != '-' and $_obj->get('right') != '-')
-               {
+       foreach ($arr as $_obj) {
+               if ($_obj->get('left') != '-' && $_obj->get('right') != '-')
                        $body .= $_obj->text();
-               }
        }
 
        $auto = 1;
 
-       return array(rtrim($body)."\n",$auto);
+       return array(rtrim($body) . "\n", $auto);
 }
 
 /*
@@ -92,166 +85,153 @@ Information Processing Letters 35, 6 (1990), 317-323.
 
 class line_diff
 {
-       var $arr1,$arr2,$m,$n,$pos,$key,$plus,$minus,$equal,$reverse;
+       var $arr1, $arr2, $m, $n, $pos, $key, $plus, $minus, $equal, $reverse;
 
-       function line_diff($plus='+',$minus='-',$equal=' ')
+       function line_diff($plus = '+', $minus = '-', $equal = ' ')
        {
-               $this->plus = $plus;
+               $this->plus  = $plus;
                $this->minus = $minus;
                $this->equal = $equal;
        }
-       function arr_compare($key,$arr1,$arr2)
+
+       function arr_compare($key, $arr1, $arr2)
        {
-               $this->key = $key;
+               $this->key  = $key;
                $this->arr1 = $arr1;
                $this->arr2 = $arr2;
                $this->compare();
                $arr = $this->toArray();
                return $arr;
        }
-       function set_str($key,$str1,$str2)
+
+       function set_str($key, $str1, $str2)
        {
-               $this->key = $key;
+               $this->key  = $key;
                $this->arr1 = array();
                $this->arr2 = array();
                $str1 = preg_replace("/\r/",'',$str1);
                $str2 = preg_replace("/\r/",'',$str2);
-               foreach (explode("\n",$str1) as $line)
-               {
+               foreach (explode("\n", $str1) as $line) {
                        $this->arr1[] = new DiffLine($line);
                }
-               foreach (explode("\n",$str2) as $line)
-               {
+               foreach (explode("\n", $str2) as $line) {
                        $this->arr2[] = new DiffLine($line);
                }
        }
-       function str_compare($str1,$str2)
+
+       function str_compare($str1, $str2)
        {
-               $this->set_str('diff',$str1,$str2);
+               $this->set_str('diff', $str1, $str2);
                $this->compare();
 
                $str = '';
-               foreach ($this->toArray() as $obj)
-               {
-                       $str .= $obj->get('diff').$obj->text();
+               foreach ($this->toArray() as $obj) {
+                       $str .= $obj->get('diff') . $obj->text();
                }
                return $str;
        }
+
        function compare()
        {
                $this->m = count($this->arr1);
                $this->n = count($this->arr2);
 
-               if ($this->m == 0 or $this->n == 0) // no need compare.
-               {
-                       $this->result = array(array('x'=>0,'y'=>0));
+               if ($this->m == 0 || $this->n == 0) { // no need compare.
+                       $this->result = array(array('x'=>0, 'y'=>0));
                        return;
                }
 
                // sentinel
-               array_unshift($this->arr1,new DiffLine(''));
+               array_unshift($this->arr1, new DiffLine(''));
                $this->m++;
-               array_unshift($this->arr2,new DiffLine(''));
+               array_unshift($this->arr2, new DiffLine(''));
                $this->n++;
 
                $this->reverse = ($this->n < $this->m);
-               if ($this->reverse) // swap
-               {
+               if ($this->reverse) {
+                       // Swap
                        $tmp = $this->m; $this->m = $this->n; $this->n = $tmp;
                        $tmp = $this->arr1; $this->arr1 = $this->arr2; $this->arr2 = $tmp;
                        unset($tmp);
                }
 
-               $delta = $this->n - $this->m; // must be >=0;
+               $delta = $this->n - $this->m; // Must be >=0;
 
                $fp = array();
                $this->path = array();
 
-               for ($p = -($this->m + 1); $p <= ($this->n + 1); $p++)
-               {
+               for ($p = -($this->m + 1); $p <= ($this->n + 1); $p++) {
                        $fp[$p] = -1;
                        $this->path[$p] = array();
                }
 
-               for ($p = 0;; $p++)
-               {
-                       for ($k = -$p; $k <= $delta - 1; $k++)
-                       {
+               for ($p = 0;; $p++) {
+                       for ($k = -$p; $k <= $delta - 1; $k++) {
                                $fp[$k] = $this->snake($k, $fp[$k - 1], $fp[$k + 1]);
                        }
-                       for ($k = $delta + $p; $k >= $delta + 1; $k--)
-                       {
+                       for ($k = $delta + $p; $k >= $delta + 1; $k--) {
                                $fp[$k] = $this->snake($k, $fp[$k - 1], $fp[$k + 1]);
                        }
                        $fp[$delta] = $this->snake($delta, $fp[$delta - 1], $fp[$delta + 1]);
-                       if ($fp[$delta] >= $this->n)
-                       {
+                       if ($fp[$delta] >= $this->n) {
                                $this->pos = $this->path[$delta]; // ·ÐÏ©¤ò·èÄê
                                return;
                        }
                }
        }
+
        function snake($k, $y1, $y2)
        {
-               if ($y1 >= $y2)
-               {
+               if ($y1 >= $y2) {
                        $_k = $k - 1;
                        $y = $y1 + 1;
-               }
-               else
-               {
+               } else {
                        $_k = $k + 1;
                        $y = $y2;
                }
                $this->path[$k] = $this->path[$_k];// ¤³¤³¤Þ¤Ç¤Î·ÐÏ©¤ò¥³¥Ô¡¼
                $x = $y - $k;
-               while ((($x + 1) < $this->m) and (($y + 1) < $this->n)
+               while ((($x + 1) < $this->m) && (($y + 1) < $this->n)
                        and $this->arr1[$x + 1]->compare($this->arr2[$y + 1]))
                {
-                       $x++; $y++;
-                       $this->path[$k][] = array('x'=>$x,'y'=>$y); // ·ÐÏ©¤òÄɲÃ
+                       ++$x; ++$y;
+                       $this->path[$k][] = array('x'=>$x, 'y'=>$y); // ·ÐÏ©¤òÄɲÃ
                }
                return $y;
        }
+
        function toArray()
        {
                $arr = array();
-               if ($this->reverse) //¸È©¤Ê¡Ä
-               {
+               if ($this->reverse) { //¸È©¤Ê¡Ä
                        $_x = 'y'; $_y = 'x'; $_m = $this->n; $arr1 =& $this->arr2; $arr2 =& $this->arr1;
-               }
-               else
-               {
+               } else {
                        $_x = 'x'; $_y = 'y'; $_m = $this->m; $arr1 =& $this->arr1; $arr2 =& $this->arr2;
                }
 
                $x = $y = 1;
                $this->add_count = $this->delete_count = 0;
-               $this->pos[] = array('x'=>$this->m,'y'=>$this->n); // sentinel
-               foreach ($this->pos as $pos)
-               {
+               $this->pos[] = array('x'=>$this->m, 'y'=>$this->n); // Sentinel
+               foreach ($this->pos as $pos) {
                        $this->delete_count += ($pos[$_x] - $x);
-                       $this->add_count += ($pos[$_y] - $y);
+                       $this->add_count    += ($pos[$_y] - $y);
 
-                       while ($pos[$_x] > $x)
-                       {
-                               $arr1[$x]->set($this->key,$this->minus);
+                       while ($pos[$_x] > $x) {
+                               $arr1[$x]->set($this->key, $this->minus);
                                $arr[] = $arr1[$x++];
                        }
 
-                       while ($pos[$_y] > $y)
-                       {
-                               $arr2[$y]->set($this->key,$this->plus);
+                       while ($pos[$_y] > $y) {
+                               $arr2[$y]->set($this->key, $this->plus);
                                $arr[] =  $arr2[$y++];
                        }
 
-                       if ($x < $_m)
-                       {
+                       if ($x < $_m) {
                                $arr1[$x]->merge($arr2[$y]);
-                               $arr1[$x]->set($this->key,$this->equal);
+                               $arr1[$x]->set($this->key, $this->equal);
                                $arr[] = $arr1[$x];
                        }
-                       $x++; $y++;
+                       ++$x; ++$y;
                }
                return $arr;
        }
@@ -264,25 +244,30 @@ class DiffLine
 
        function DiffLine($text)
        {
-               $this->text = "$text\n";
+               $this->text   = "$text\n";
                $this->status = array();
        }
+
        function compare($obj)
        {
                return $this->text == $obj->text;
        }
-       function set($key,$status)
+
+       function set($key, $status)
        {
                $this->status[$key] = $status;
        }
+
        function get($key)
        {
-               return array_key_exists($key,$this->status) ? $this->status[$key] : '';
+               return isset($this->status[$key]) ? $this->status[$key] : '';
        }
+
        function merge($obj)
        {
                $this->status += $obj->status;
        }
+
        function text()
        {
                return $this->text;