static void WriteCompilationSource (StringBuilder builder, StringBuilder longVersion, HtmlizedException e)
{
int [] a = e.ErrorLines;
string s;
int line = 0;
int index = 0;
int errline = 0;
if (a != null && a.Length > 0)
errline = a [0];
int begin = errline - 2;
int end = errline + 2;
if (begin < 0)
begin = 0;
string tmp;
using (TextReader reader = new StringReader (e.FileText)) {
while ((s = reader.ReadLine ()) != null) {
line++;
if (line < begin || line > end) {
if (longVersion != null)
longVersion.AppendFormat ("{0}: {1}\r\n", line, HtmlEncode (s));
continue;
}
if (errline == line) {
if (longVersion != null)
longVersion.Append ("<span class=\"sourceErrorLine\">");
builder.Append ("<span class=\"sourceErrorLine\">");
}
tmp = String.Format ("{0}: {1}\r\n", line, HtmlEncode (s));
builder.Append (tmp);
if (longVersion != null)
longVersion.Append (tmp);
if (line == errline) {
builder.Append ("</span>");
if (longVersion != null)
longVersion.Append ("</span>");
errline = (++index < a.Length) ? a [index] : 0;
}
}
}
}