Tools__Diff2CodeView2.st
author Stefan Vogel <sv@exept.de>
Fri, 06 Jun 2014 09:30:25 +0200
changeset 14467 b048bbcddb92
parent 14371 491ec9ff2c09
child 15278 1d449ea6c8e0
permissions -rw-r--r--
Sending of Image>>#clearMaskedPixels moved to Image >> #asFormOnDevice:
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
13839
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     2
 COPYRIGHT (c) 2006 by eXept Software AG
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     3
              All Rights Reserved
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     5
 This software is furnished under a license and may be used
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     6
 only in accordance with the terms of that license and with the
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     7
 inclusion of the above copyright notice.   This software may not
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     8
 be provided or otherwise made available to, or used by, any
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     9
 other person.  No title to or ownership of the software is
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    10
 hereby transferred.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    11
"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    12
"{ Package: 'stx:libtool' }"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    13
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    14
"{ NameSpace: Tools }"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    15
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    16
DiffCodeView2 subclass:#Diff2CodeView2
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    17
	instanceVariableNames:''
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    18
	classVariableNames:''
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    19
	poolDictionaries:''
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    20
	category:'Interface-CodeView'
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    21
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    22
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    23
Object subclass:#Diff2Data
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    24
	instanceVariableNames:'text1 text2 inserted deleted changed'
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
	classVariableNames:''
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
	poolDictionaries:''
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
	privateIn:Diff2CodeView2
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    29
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
!Diff2CodeView2 class methodsFor:'documentation'!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
copyright
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
 COPYRIGHT (c) 2006 by eXept Software AG
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
              All Rights Reserved
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
 This software is furnished under a license and may be used
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
 only in accordance with the terms of that license and with the
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    39
 inclusion of the above copyright notice.   This software may not
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    40
 be provided or otherwise made available to, or used by, any
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    41
 other person.  No title to or ownership of the software is
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    42
 hereby transferred.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    43
"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    44
! !
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    45
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    46
!Diff2CodeView2 class methodsFor:'defaults'!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    47
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    48
numberOfViews
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    49
    "return the number of the synced subViews.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
     Usually redefined in subclasses"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    51
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    52
    ^ 2
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    53
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    54
    "Created: / 16-03-2012 / 12:54:52 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    55
! !
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    56
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    57
!Diff2CodeView2 methodsFor:'accessing'!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    58
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    59
text1:t1 text2:t2 
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    60
    |data|
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    61
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
    data := self computeDiffDataForText1:t1 text2:t2.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
    (textViews at:1) 
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
        contents:(data text1);
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
        deletedLines:(data deleted);
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
        changedLines:(data changed);
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
        insertedLines:#();    
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
        originDiffText:t1;
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
        emptyLines:(data inserted).
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
    (textViews at:2) 
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
        contents:(data text2);
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
        deletedLines:#();
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
        changedLines:(data changed);
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
        insertedLines:(data inserted);
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
        originDiffText:t2;
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
        emptyLines:(data deleted).
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    80
    "Created: / 06-03-2010 / 10:45:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    81
    "Modified: / 22-06-2010 / 21:36:35 / Jakub <zelenja7@fel.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    82
    "Modified: / 15-07-2010 / 23:08:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    83
! !
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
!Diff2CodeView2 methodsFor:'private'!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
computeDiffDataForText1:t1 text2:t2 
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
    "created diffText object from two string"
14371
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    89
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    90
    "/ cg: same code as in DiffCodeView2!!!!!!
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    91
    "/ please refactor and make this a utility method on the class side
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    92
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    93
    |array1 array2 diff change index1 index2 text1 text2 i 
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    94
     data deleted inserted helperText addConstant1 addConstant2 changed helper ins del pom
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
    95
     array1Size array2Size|
13839
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    96
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
    "Convert text into an array of individual lines"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
    array1 := self createArray:t1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
    array2 := self createArray:t2.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
    "Initialize inserted/deleted/changed "
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
    inserted := OrderedCollection new.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
    deleted := OrderedCollection new.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
    changed := OrderedCollection new.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
     "indicates which row of origin text is added to ne text"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    index1 := 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   107
    index2 := 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
     "indicate how much rows were deleted or inserted "
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
    addConstant1 := 0.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
    addConstant2 := 0.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   111
    text1 := ''.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   112
    text2 := ''.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   113
    diff := Diff new.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   114
    diff a:array1 b:array2.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   115
    change := diff diff:false.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
    data := Diff2Data new.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   118
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
    [ change notNil ] whileTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   121
        "check first lines which are same"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   122
        (((change line0) > 0) and:[ ((change line1) > 0) ]) ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   123
            [
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   124
                index1 <= (change line0)
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   125
            ] whileTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   126
                helperText := (array1 at:index1) asText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   127
                text1 := text1 asString , helperText asString.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   128
                index1 := index1 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   129
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
            [
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   131
                index2 <= (change line1)
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
            ] whileTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
                helperText := (array2 at:index2) asText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
                text2 := text2 , helperText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   135
                index2 := index2 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   136
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   137
        ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   138
        ins := change inserted.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   139
        del := change deleted.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   140
        index1 := (change line0) + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
        index2 := (change line1) + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
         "find replace files "
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   143
        ((del > 0) and:[ ins > 0 ]) ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
            helper := del - ins.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
            (helper <= 0) ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
                pom := change deleted.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   148
            (helper > 0) ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   149
                pom := change inserted.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   150
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   151
             "its same count row"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   152
            i := 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   153
            [ i <= pom ] whileTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   154
                changed add:index1 + addConstant1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   155
                text1 := text1 , (array1 at:index1) asString.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   156
                text2 := text2 , (array2 at:index2) asString.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
                index1 := index1 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
                index2 := index2 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
                del := del - 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
                ins := ins - 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
                i := i + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
        ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
         "find deleted files"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
        (del > 0) ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
            i := 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
            [ i <= del ] whileTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
                deleted add:index1 + addConstant1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
                text2 := text2 , Character cr.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
                addConstant2 := addConstant2 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
                text1 := text1 , (array1 at:index1) asString.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
                index1 := index1 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
                i := i + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
        ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
         "find inserted lines"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
        (ins > 0) ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
            i := 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
            [ i <= ins ] whileTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
                inserted add:index2 + addConstant2.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
                text1 := text1 , Character cr.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
                addConstant1 := addConstant1 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
                text2 := text2 , (array2 at:index2) asString.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
                index2 := index2 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
                i := i + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
            ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
        ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
        change := change nextLink.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
    ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
     "kontrola zda nam nechybi posledni znaky"
14371
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   191
    array1Size := array1 size.
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   192
    (index1 <= array1Size) ifTrue:[
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   193
        [ index1 <= array1Size ] whileTrue:[
13839
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
            helperText := (array1 at:index1) asText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
            text1 := text1 , helperText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
            index1 := index1 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
        ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   198
    ].
14371
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   199
    array2Size := array2 size.
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   200
    (index2 <= array2Size) ifTrue:[
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   201
        [ index2 <= (array2 size) ] whileTrue:[
13839
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   202
            helperText := (array2 at:index2) asText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
            text2 := text2 , helperText.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   204
            index2 := index2 + 1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   205
        ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   206
    ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   207
    data text1:text1.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   208
    data text2:text2.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   209
    data changed:changed.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   210
    data inserted:inserted.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   211
    data deleted:deleted.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   212
    ^ data.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   213
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   214
    "Modified: / 22-06-2010 / 21:02:50 / Jakub <zelenja7@fel.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   215
    "Modified: / 16-03-2012 / 12:53:41 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   216
    "Modified (format): / 16-03-2012 / 16:10:54 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   217
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   218
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   219
createArray:text1 
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   220
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   221
    | array src line c |
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   222
    array := StringCollection new.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   223
    src := text1 readStream.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   224
    line := (String new: 80) writeStream.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   225
    [ src atEnd ] whileFalse:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   226
        c := src next.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   227
        line nextPut: c.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   228
        c == Character cr ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   229
            array add: line contents.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   230
            line reset.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   231
        ]        
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   232
    ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   233
    line position ~~ 0 ifTrue:[
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   234
        array add: line contents
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   235
    ].
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   236
    ^array
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   237
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   238
    "Created: / 22-03-2010 / 14:48:27 / Jakub <zelenja7@fel.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   239
    "Modified (comment): / 19-07-2011 / 11:14:48 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   240
! !
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   241
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   242
!Diff2CodeView2::Diff2Data methodsFor:'accessing'!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   243
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   244
changed
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   245
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   246
    ^changed copy
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   247
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   248
    "Modified: / 02-05-2010 / 19:31:18 / Jakub <zelenja7@fel.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   249
    "Modified: / 16-07-2010 / 09:35:01 / Jan Vrany <jan.vrany@fit.cvut.cz>"
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   250
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   251
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   252
changed:something
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   253
    changed := something.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   254
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   255
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   256
deleted
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   257
    ^ deleted
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   258
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   259
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   260
deleted:something
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   261
    deleted := something.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   262
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   263
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   264
inserted
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   265
    ^ inserted
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   266
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   267
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   268
inserted:something
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   269
    inserted := something.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   270
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   271
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   272
text1
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   273
    ^ text1
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   274
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   275
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   276
text1:something
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   277
    text1 := something.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   278
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   279
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   280
text2
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   281
    ^ text2
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   282
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   283
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   284
text2:something
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   285
    text2 := something.
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   286
! !
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   287
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   288
!Diff2CodeView2 class methodsFor:'documentation'!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   289
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   290
version
14371
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   291
    ^ '$Header: /cvs/stx/stx/libtool/Tools__Diff2CodeView2.st,v 1.2 2014-05-15 17:21:25 cg Exp $'
13839
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   292
!
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   293
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   294
version_CVS
14371
491ec9ff2c09 class: Tools::Diff2CodeView2
Claus Gittinger <cg@exept.de>
parents: 13839
diff changeset
   295
    ^ '$Header: /cvs/stx/stx/libtool/Tools__Diff2CodeView2.st,v 1.2 2014-05-15 17:21:25 cg Exp $'
13839
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   296
! !
e691e2233fa1 initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   297