@@ -176,7 +176,7 @@ public void GenerateNewPatchFromSelection(Change change, string fileBlobGuid, Te
176176 var line = Lines [ i ] ;
177177 if ( line . Type != TextDiffLineType . Added )
178178 continue ;
179- writer . WriteLine ( $ "+ { line . Content } " ) ;
179+ WriteLine ( writer , '+' , line ) ;
180180 }
181181 }
182182
@@ -257,16 +257,16 @@ public void GeneratePatchFromSelection(Change change, string fileTreeGuid, TextD
257257 else if ( line . Type == TextDiffLineType . Added )
258258 {
259259 if ( revert )
260- writer . WriteLine ( $ " { line . Content } " ) ;
260+ WriteLine ( writer , ' ' , line ) ;
261261 }
262262 else if ( line . Type == TextDiffLineType . Deleted )
263263 {
264264 if ( ! revert )
265- writer . WriteLine ( $ " { line . Content } " ) ;
265+ WriteLine ( writer , ' ' , line ) ;
266266 }
267267 else if ( line . Type == TextDiffLineType . Normal )
268268 {
269- writer . WriteLine ( $ " { line . Content } " ) ;
269+ WriteLine ( writer , ' ' , line ) ;
270270 }
271271 }
272272 }
@@ -282,15 +282,15 @@ public void GeneratePatchFromSelection(Change change, string fileTreeGuid, TextD
282282 }
283283 else if ( line . Type == TextDiffLineType . Normal )
284284 {
285- writer . WriteLine ( $ " { line . Content } " ) ;
285+ WriteLine ( writer , ' ' , line ) ;
286286 }
287287 else if ( line . Type == TextDiffLineType . Added )
288288 {
289- writer . WriteLine ( $ "+ { line . Content } " ) ;
289+ WriteLine ( writer , '+' , line ) ;
290290 }
291291 else if ( line . Type == TextDiffLineType . Deleted )
292292 {
293- writer . WriteLine ( $ "- { line . Content } " ) ;
293+ WriteLine ( writer , '-' , line ) ;
294294 }
295295 }
296296
@@ -380,16 +380,16 @@ public void GeneratePatchFromSelectionSingleSide(Change change, string fileTreeG
380380 else if ( line . Type == TextDiffLineType . Added )
381381 {
382382 if ( revert )
383- writer . WriteLine ( $ " { line . Content } " ) ;
383+ WriteLine ( writer , ' ' , line ) ;
384384 }
385385 else if ( line . Type == TextDiffLineType . Deleted )
386386 {
387387 if ( ! revert )
388- writer . WriteLine ( $ " { line . Content } " ) ;
388+ WriteLine ( writer , ' ' , line ) ;
389389 }
390390 else if ( line . Type == TextDiffLineType . Normal )
391391 {
392- writer . WriteLine ( $ " { line . Content } " ) ;
392+ WriteLine ( writer , ' ' , line ) ;
393393 }
394394 }
395395 }
@@ -405,15 +405,15 @@ public void GeneratePatchFromSelectionSingleSide(Change change, string fileTreeG
405405 }
406406 else if ( line . Type == TextDiffLineType . Normal )
407407 {
408- writer . WriteLine ( $ " { line . Content } " ) ;
408+ WriteLine ( writer , ' ' , line ) ;
409409 }
410410 else if ( line . Type == TextDiffLineType . Added )
411411 {
412412 if ( isOldSide )
413413 {
414414 if ( revert )
415415 {
416- writer . WriteLine ( $ " { line . Content } " ) ;
416+ WriteLine ( writer , ' ' , line ) ;
417417 }
418418 else
419419 {
@@ -422,20 +422,20 @@ public void GeneratePatchFromSelectionSingleSide(Change change, string fileTreeG
422422 }
423423 else
424424 {
425- writer . WriteLine ( $ "+ { line . Content } " ) ;
425+ WriteLine ( writer , '+' , line ) ;
426426 }
427427 }
428428 else if ( line . Type == TextDiffLineType . Deleted )
429429 {
430430 if ( isOldSide )
431431 {
432- writer . WriteLine ( $ "- { line . Content } " ) ;
432+ WriteLine ( writer , '-' , line ) ;
433433 }
434434 else
435435 {
436436 if ( ! revert )
437437 {
438- writer . WriteLine ( $ " { line . Content } " ) ;
438+ WriteLine ( writer , ' ' , line ) ;
439439 }
440440 else
441441 {
@@ -598,6 +598,14 @@ private bool ProcessIndicatorForPatchSingleSide(StreamWriter writer, TextDiffLin
598598 return true ;
599599 }
600600
601+ private static void WriteLine ( StreamWriter writer , char prefix , TextDiffLine line )
602+ {
603+ writer . WriteLine ( $ "{ prefix } { line . Content } ") ;
604+
605+ if ( line . NoNewLineEndOfFile )
606+ writer . WriteLine ( "\\ No newline at end of file" ) ;
607+ }
608+
601609 [ GeneratedRegex ( @"^@@ \-(\d+),?\d* \+(\d+),?\d* @@" ) ]
602610 private static partial Regex REG_INDICATOR ( ) ;
603611 }
0 commit comments