Hi All, I tried to do a text diff using DiffMorph. But if compared strings contain CR character, the display seems not be accurate. Example: s1 := 'ab', String space, String cr, 'd', String space, String cr, 'ef'. s2 := 'ab', String cr, 'd', String cr, 'ef'. (DiffMorph from: s1 to: s2) openInWindow. In this example, d (on line 2) is highlighted while it should not IMHO. I track this until (a DiffMorph uses a TextDiffBuilder): TextDiffBuilder>>buildPatchSequence ^Array streamContents: [ :stream | self patchSequenceDoIfMatch: [ :string | stream nextPut: #match -> (string copyWithout: Character cr) ] ifInsert: [ :string | stream nextPut: #insert -> (string copyWithout: Character cr) ] ifRemove: [ :string | stream nextPut: #remove -> (string copyWithout: Character cr) ] ] My question: why ignoring Character cr? Should we change it? #Luc
I forgot to say that using the following method version instead, I get the result I expected: buildPatchSequence "This method is only implemented for backwards compatibility and testing." ^Array streamContents: [ :stream | self patchSequenceDoIfMatch: [ :string | stream nextPut: #match -> string copy ] ifInsert: [ :string | stream nextPut: #insert -> string copy ] ifRemove: [ :string | stream nextPut: #remove -> string copy ] ] #Luc 2012/10/18 Luc Fabresse <luc.fabresse@gmail.com>
Hi All,
I tried to do a text diff using DiffMorph. But if compared strings contain CR character, the display seems not be accurate. Example:
s1 := 'ab', String space, String cr, 'd', String space, String cr, 'ef'. s2 := 'ab', String cr, 'd', String cr, 'ef'.
(DiffMorph from: s1 to: s2) openInWindow.
In this example, d (on line 2) is highlighted while it should not IMHO. I track this until (a DiffMorph uses a TextDiffBuilder):
TextDiffBuilder>>buildPatchSequence ^Array streamContents: [ :stream | self patchSequenceDoIfMatch: [ :string | stream nextPut: #match -> (string copyWithout: Character cr) ] ifInsert: [ :string | stream nextPut: #insert -> (string copyWithout: Character cr) ] ifRemove: [ :string | stream nextPut: #remove -> (string copyWithout: Character cr) ] ]
My question: why ignoring Character cr? Should we change it?
#Luc
participants (1)
-
Luc Fabresse