Compared files  

Left
C:\SDK\wxWidgets-2.6.2\contrib\src\stc\scintilla\src\CellBuffer.cxx
Last modified2005-03-21 12:17:52.000 +0100
Size28.1 Kb (1125 Lines)
EncodingLatin 1 - ANSI (CP1252) default
Right
C:\SDK\wxWidgets-2.6.3\contrib\src\stc\scintilla\src\CellBuffer.cxx
Last modified2006-03-16 13:07:02.000 +0100
Size28.1 Kb (1121 Lines)
EncodingLatin 1 - ANSI (CP1252) default


   Comparison Statistics  

Detailed Statistics

All Changes
 BlocksLines
Unchanged161103
Inserted34
Deleted17
Ignored00
Changed1129



   Comparison Details  

253 skipped lines
254U254U        linesData[i] = linesData[i + 1];
255U255U    }
256U256U    if (levels) {
257C        // Level information merges back onto previous line 257C        // Move up following lines but merge header flag from this line
258C        int posAbove = pos - 1; 258C        // to line before to avoid a temporary disappearence causing expansion.
259C        if (posAbove < 0)  
260C        posAbove = 0; 259C        int firstHeader = levels[pos] & SC_FOLDLEVELHEADERFLAG;
261C        for (int j = posAbove; j < lines; j++) { 260C        for (int j = pos; j < lines; j++) {
262U261U        levels[j] = levels[j + 1];
263U262U        }
  263A        if (pos > 0)
  264A        levels[pos-1] |= firstHeader;
264U265U    }
265U266U    lines--;
266U267U}
197 skipped lines
464U465U        } else if (currentAction == savePoint) {
465U466U        currentAction++;
466U467U        } else if ((at == insertAction) &&
467C                   (position != (actPrevious.position + actPrevious.lenData*2))) { 468C                   (position != (actPrevious.position + actPrevious.lenData))) {
468U469U        // Insertions must be immediately after to coalesce
469U470U        currentAction++;
470U471U        } else if (!actions[currentAction].mayCoalesce) {
1 skipped line
472U473U        currentAction++;
473U474U        } else if (at == removeAction) {
474U475U        if ((lengthData == 1) || (lengthData == 2)){
475C        if ((position + lengthData * 2) == actPrevious.position) { 476C        if ((position + lengthData) == actPrevious.position) {
476U477U        ; // Backspace -> OK
477U478U        } else if (position == actPrevious.position) {
478U479U        ; // Delete -> OK
245 skipped lines
724U725U        for (int i = 0; i < insertLength / 2; i++) {
725U726U        data[i] = s[i * 2];
726U727U        }
727C        uh.AppendAction(insertAction, position, data, insertLength / 2); 728C        uh.AppendAction(insertAction, position / 2, data, insertLength / 2);
728U729U        }
729U730U 
730U731U        BasicInsertString(position, s, insertLength);
1 skipped line
732U733U    return data;
733U734U}
734U735U 
735Rvoid CellBuffer::InsertCharStyle(int position, char ch, char style) {  
736R    char s[2];  
737R    s[0] = ch;  
738R    s[1] = style;  
739R    InsertString(position*2, s, 2);  
740R}  
741R   
742U736Ubool CellBuffer::SetStyleAt(int position, char style, char mask) {
743U737U    style &= mask;
744U738U    char curVal = ByteAt(position * 2 + 1);
23 skipped lines
768U762U 
769U763Uconst char *CellBuffer::DeleteChars(int position, int deleteLength) {
770U764U    // InsertString and DeleteChars are the bottleneck though which all changes occur
  765A    PLATFORM_ASSERT(deleteLength > 0);
771U766U    char *data = 0;
772U767U    if (!readOnly) {
773U768U        if (collectingUndo) {
2 skipped lines
776U771U        for (int i = 0; i < deleteLength / 2; i++) {
777U772U        data[i] = ByteAt(position + i * 2);
778U773U        }
779C        uh.AppendAction(removeAction, position, data, deleteLength / 2); 774C        uh.AppendAction(removeAction, position / 2, data, deleteLength / 2);
780U775U        }
781U776U 
782U777U        BasicDeleteChars(position, deleteLength);
91 skipped lines
874U869U    //Platform::DebugPrintf("Inserting at %d for %d\n", position, insertLength);
875U870U    if (insertLength == 0)
876U871U        return ;
  872A    PLATFORM_ASSERT(insertLength > 0);
877U873U    RoomFor(insertLength);
878U874U    GapTo(position);
879U875U 
148 skipped lines
1028U1024U}
1029U1025U 
1030U1026Ubool CellBuffer::CanUndo() {
1031C    return (!readOnly) && (uh.CanUndo()); 1027C    return uh.CanUndo();
1032U1028U}
1033U1029U 
1034U1030Uint CellBuffer::StartUndo() {
7 skipped lines
1042U1038Uvoid CellBuffer::PerformUndoStep() {
1043U1039U    const Action &actionStep = uh.GetUndoStep();
1044U1040U    if (actionStep.at == insertAction) {
1045C        BasicDeleteChars(actionStep.position, actionStep.lenData*2); 1041C        BasicDeleteChars(actionStep.position*2actionStep.lenData*2);
1046U1042U    } else if (actionStep.at == removeAction) {
1047U1043U        char *styledData = new char[actionStep.lenData * 2];
1048U1044U        for (int i = 0; i < actionStep.lenData; i++) {
1049U1045U        styledData[i*2] = actionStep.data[i];
1050U1046U        styledData[i*2 + 1] = 0;
1051U1047U        }
1052C        BasicInsertString(actionStep.position, styledData, actionStep.lenData*2); 1048C        BasicInsertString(actionStep.position*2, styledData, actionStep.lenData*2);
1053U1049U        delete []styledData;
1054U1050U    }
1055U1051U    uh.CompletedUndoStep();
1056U1052U}
1057U1053U 
1058U1054Ubool CellBuffer::CanRedo() {
1059C    return (!readOnly) && (uh.CanRedo()); 1055C    return uh.CanRedo();
1060U1056U}
1061U1057U 
1062U1058Uint CellBuffer::StartRedo() {
12 skipped lines
1075U1071U        styledData[i*2] = actionStep.data[i];
1076U1072U        styledData[i*2 + 1] = 0;
1077U1073U        }
1078C        BasicInsertString(actionStep.position, styledData, actionStep.lenData*2); 1074C        BasicInsertString(actionStep.position*2, styledData, actionStep.lenData*2);
1079U1075U        delete []styledData;
1080U1076U    } else if (actionStep.at == removeAction) {
1081C        BasicDeleteChars(actionStep.position, actionStep.lenData*2); 1077C        BasicDeleteChars(actionStep.position*2actionStep.lenData*2);
1082U1078U    }
1083U1079U    uh.CompletedRedoStep();
1084U1080U}
41 skipped lines

   Text comparison Options  

Match character case: yes.
Match line endings: no.
Match spaces

At start of lines: yes,
In middle of lines: yes,
At end of lines: yes.
Blank lines as empty lines: no.
Activate comparison algorithm
At word level: yes,
At character level: no.


   Legend  

UExample of unchanged line
CExample of modified line
AExample of added line
RExample of removed line
IExample of ignored line
Modified text
Added text
Removed text

This report has been generated by Ellié Computing Merge on 2006-09-07 16:23:31.001 +0200.
© 2005-2006 Ellié Computing http://www.elliecomputing.com. All rights reserved.