private static LineDiff ReadLine(LineReader reader)
{
while (!reader.EndOfFile && String.IsNullOrWhiteSpace(reader.Current))
{
reader.NextLine();
}
if (reader.EndOfFile) { return null; }
LineDiffType type;
char typeChar = reader.Current[0];
switch (typeChar)
{
case '+':
type = LineDiffType.Added;
break;
case '-':
type = LineDiffType.Removed;
break;
case ' ':
type = LineDiffType.Same;
break;
default:
// Start of next hunk or file
return null;
}
LineDiff line = new LineDiff(type, reader.Current.Substring(1).TrimEnd('\n', '\r'));
reader.NextLine();
return line;
}