File tree 2 files changed +21
-1
lines changed
2 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -165,7 +165,20 @@ var JsDiff = (function() {
165
165
166
166
var LineDiff = new Diff ( ) ;
167
167
LineDiff . tokenize = function ( value ) {
168
- return value . split ( / ^ / m) ;
168
+ var retLines = [ ] ;
169
+ var lines = value . split ( / ^ / m) ;
170
+
171
+ for ( var i = 0 ; i < lines . length ; i ++ ) {
172
+ var line = lines [ i ] ;
173
+ var lastLine = lines [ i - 1 ] ;
174
+
175
+ if ( line == '\n' && lastLine && lastLine . indexOf ( '\r' ) == lastLine . length - 1 )
176
+ retLines [ retLines . length - 1 ] += '\n' ;
177
+ else if ( line )
178
+ retLines . push ( line ) ;
179
+ }
180
+
181
+ return retLines ;
169
182
} ;
170
183
171
184
return {
Original file line number Diff line number Diff line change @@ -103,6 +103,13 @@ describe('#diffLines', function() {
103
103
'line\nvalue\nline' ) ;
104
104
diff . convertChangesToXML ( diffResult ) . should . equal ( 'line\n<ins>value\n</ins><del>value \n</del>line' ) ;
105
105
} ) ;
106
+
107
+ it ( 'should handle windows line endings' , function ( ) {
108
+ var diffResult = diff . diffLines (
109
+ 'line\r\nold value \r\nline' ,
110
+ 'line\r\nnew value\r\nline' ) ;
111
+ diff . convertChangesToXML ( diffResult ) . should . equal ( 'line\r\n<ins>new value\r\n</ins><del>old value \r\n</del>line' ) ;
112
+ } ) ;
106
113
} ) ;
107
114
108
115
describe ( 'convertToDMP' , function ( ) {
You can’t perform that action at this time.
0 commit comments