@@ -48,40 +48,39 @@ internal TreeChanges(DiffListSafeHandle diff)
48
48
private int PrintCallBack ( IntPtr data , GitDiffDelta delta , GitDiffRange range , GitDiffLineOrigin lineorigin , IntPtr content , uint contentlen )
49
49
{
50
50
string formattedoutput = Utf8Marshaler . FromNative ( content , contentlen ) ;
51
- FilePath currentFilePath = FilePathMarshaler . FromNative ( delta . NewFile . Path ) ;
52
51
53
- AddLineChange ( currentFilePath , lineorigin ) ;
52
+ TreeEntryChanges currentChange = AddFileChange ( delta , lineorigin ) ;
53
+ AddLineChange ( currentChange , lineorigin ) ;
54
54
55
- if ( lineorigin == GitDiffLineOrigin . GIT_DIFF_LINE_FILE_HDR )
56
- {
57
- AddFileChange ( delta ) ;
58
- }
59
-
60
- changes [ currentFilePath ] . AppendToPatch ( formattedoutput ) ;
55
+ currentChange . AppendToPatch ( formattedoutput ) ;
61
56
fullPatchBuilder . Append ( formattedoutput ) ;
62
57
63
58
return 0 ;
64
59
}
65
60
66
- private void AddLineChange ( FilePath currentFilePath , GitDiffLineOrigin lineOrigin )
61
+ private void AddLineChange ( Changes currentChange , GitDiffLineOrigin lineOrigin )
67
62
{
68
63
switch ( lineOrigin )
69
64
{
70
65
case GitDiffLineOrigin . GIT_DIFF_LINE_ADDITION :
71
66
linesAdded ++ ;
72
- this [ currentFilePath ] . LinesAdded ++ ;
67
+ currentChange . LinesAdded ++ ;
73
68
break ;
74
69
75
70
case GitDiffLineOrigin . GIT_DIFF_LINE_DELETION :
76
71
linesDeleted ++ ;
77
- this [ currentFilePath ] . LinesDeleted ++ ;
72
+ currentChange . LinesDeleted ++ ;
78
73
break ;
79
74
}
80
75
}
81
76
82
- private void AddFileChange ( GitDiffDelta delta )
77
+ private TreeEntryChanges AddFileChange ( GitDiffDelta delta , GitDiffLineOrigin lineorigin )
83
78
{
84
79
var newFilePath = FilePathMarshaler . FromNative ( delta . NewFile . Path ) ;
80
+
81
+ if ( lineorigin != GitDiffLineOrigin . GIT_DIFF_LINE_FILE_HDR )
82
+ return this [ newFilePath ] ;
83
+
85
84
var oldFilePath = FilePathMarshaler . FromNative ( delta . OldFile . Path ) ;
86
85
var newMode = ( Mode ) delta . NewFile . Mode ;
87
86
var oldMode = ( Mode ) delta . OldFile . Mode ;
@@ -92,6 +91,7 @@ private void AddFileChange(GitDiffDelta delta)
92
91
93
92
fileDispatcher [ delta . Status ] ( this , diffFile ) ;
94
93
changes . Add ( newFilePath , diffFile ) ;
94
+ return diffFile ;
95
95
}
96
96
97
97
#region IEnumerable<Tag> Members
0 commit comments