public static string ReplaceEscapedRightAngle(string s)
{
StringBuilder buf = new StringBuilder();
int i = 0;
while (i < s.Length)
{
char c = s[i];
if (c == '<' && s.Substring(i).StartsWith("<\\\\>"))
{
buf.Append("<\\\\>");
i += "<\\\\>".Length;
continue;
}
if (c == '>' && s.Substring(i).StartsWith(">\\>"))
{
buf.Append(">>");
i += ">\\>".Length;
continue;
}
if (c == '\\' && s.Substring(i).StartsWith("\\>>") &&
!s.Substring(i).StartsWith("\\>>>"))
{
buf.Append(">>");
i += "\\>>".Length;
continue;
}
buf.Append(c);
i++;
}
return buf.ToString();
}