2008-11-18 Marek Habersack <mhabersack@novell.com>
[mono.git] / mcs / class / System.Web / System.Web.Compilation / AspParser.cs
index 004d9732ee3ba569e17e665958846f3e634a51ea..6e53749095d4f7cd824a7f90b21423cbcfad8598 100644 (file)
@@ -47,12 +47,14 @@ namespace System.Web.Compilation
                static readonly object errorEvent = new object ();
                static readonly object tagParsedEvent = new object ();
                static readonly object textParsedEvent = new object ();
-               
+
+#if NET_2_0
+               byte[] md5checksum;
+#endif
                AspTokenizer tokenizer;
                int beginLine, endLine;
                int beginColumn, endColumn;
                int beginPosition, endPosition;
-               byte[] md5checksum;
                string filename;
                string fileText;
                string verbatimID;
@@ -402,6 +404,7 @@ namespace System.Web.Compilation
                string GetVerbatim (int token, string end)
                {
                        StringBuilder vb_text = new StringBuilder ();
+                       StringBuilder tmp = new StringBuilder ();
                        int i = 0;
 
                        if (tokenizer.Value.Length > 1){
@@ -411,15 +414,17 @@ namespace System.Web.Compilation
                        }
 
                        end = end.ToLower (CultureInfo.InvariantCulture);
+                       
                        while (token != Token.EOF){
                                if (Char.ToLower ((char) token, CultureInfo.InvariantCulture) == end [i]){
                                        if (++i >= end.Length)
                                                break;
+                                       tmp.Append ((char) token);
                                        token = tokenizer.get_token ();
                                        continue;
                                } else if (i > 0) {
-                                       for (int j = 0; j < i; j++)
-                                               vb_text.Append (end [j]);
+                                       vb_text.Append (tmp.ToString ());
+                                       tmp.Remove (0, tmp.Length);
                                        i = 0;
                                }