Overview

Packages

  • Text
    • Diff

Classes

  • Horde_Text_Diff
  • Horde_Text_Diff_Engine_Native
  • Horde_Text_Diff_Engine_Shell
  • Horde_Text_Diff_Engine_String
  • Horde_Text_Diff_Engine_Xdiff
  • Horde_Text_Diff_Exception
  • Horde_Text_Diff_Mapped
  • Horde_Text_Diff_Op_Add
  • Horde_Text_Diff_Op_Base
  • Horde_Text_Diff_Op_Change
  • Horde_Text_Diff_Op_Copy
  • Horde_Text_Diff_Op_Delete
  • Horde_Text_Diff_Renderer
  • Horde_Text_Diff_Renderer_Context
  • Horde_Text_Diff_Renderer_Inline
  • Horde_Text_Diff_Renderer_Unified
  • Horde_Text_Diff_ThreeWay
  • Horde_Text_Diff_ThreeWay_BlockBuilder
  • Horde_Text_Diff_ThreeWay_Op_Base
  • Horde_Text_Diff_ThreeWay_Op_Copy
  • Overview
  • Package
  • Class
  • Tree
 1: <?php
 2: /**
 3:  * Copyright 2007-2012 Horde LLC (http://www.horde.org/)
 4:  *
 5:  * See the enclosed file COPYING for license information (LGPL). If you did
 6:  * not receive this file, see http://www.horde.org/licenses/lgpl21.
 7:  *
 8:  * @package Text_Diff
 9:  * @author  Geoffrey T. Dairiki <dairiki@dairiki.org>
10:  */
11: class Horde_Text_Diff_ThreeWay_BlockBuilder
12: {
13:     public function __construct()
14:     {
15:         $this->_init();
16:     }
17: 
18:     public function input($lines)
19:     {
20:         if ($lines) {
21:             $this->_append($this->orig, $lines);
22:         }
23:     }
24: 
25:     public function out1($lines)
26:     {
27:         if ($lines) {
28:             $this->_append($this->final1, $lines);
29:         }
30:     }
31: 
32:     public function out2($lines)
33:     {
34:         if ($lines) {
35:             $this->_append($this->final2, $lines);
36:         }
37:     }
38: 
39:     public function isEmpty()
40:     {
41:         return !$this->orig && !$this->final1 && !$this->final2;
42:     }
43: 
44:     public function finish()
45:     {
46:         if ($this->isEmpty()) {
47:             return false;
48:         } else {
49:             $edit = new Horde_Text_Diff_ThreeWay_Op_Base($this->orig, $this->final1, $this->final2);
50:             $this->_init();
51:             return $edit;
52:         }
53:     }
54: 
55:     protected function _init()
56:     {
57:         $this->orig = $this->final1 = $this->final2 = array();
58:     }
59: 
60:     protected function _append(&$array, $lines)
61:     {
62:         array_splice($array, sizeof($array), 0, $lines);
63:     }
64: }
65: 
API documentation generated by ApiGen