Sep.Git.Tfs.Core.GitChangeInfo.GetDiffTreeLine C# (CSharp) Method

GetDiffTreeLine() private static method

private static GetDiffTreeLine ( TextReader reader ) : string
reader TextReader
return string
        private static string GetDiffTreeLine(TextReader reader)
        {
            var sb = new StringBuilder();

            char[] block = new char[98];
            var bytesRead = reader.ReadBlock(block, 0, 98);
            if (bytesRead == 0)
            {
                return null;
            }
            else if (bytesRead != 98)
            {
                throw new Exception("Invalid input.");
            }

            var nullBytesLeft = 2;
            if (block[97] == 'C' || block[97] == 'R')
            {
                nullBytesLeft = 3;
            }

            sb.Append(block);

            while (nullBytesLeft > 0)
            {
                var currentByte = reader.Read();
                if (currentByte == -1)
                {
                    throw new Exception("Invalid input.");
                }
                else if (currentByte == 0)
                {
                    nullBytesLeft--;
                }

                sb.Append((char)currentByte);
            }

            return sb.ToString();
        }