public static long numNewlines(string self)
{
int numLines = 0;
int len = self.Length;
for (int i=0; i<len; ++i)
{
int c = self[i];
if (c == '\n') numLines++;
else if (c == '\r')
{
numLines++;
if (i+1<len && self[i+1] == '\n') i++;
}
}
return numLines;
}