2003-12-12 Atsushi Enomoto <ginga@kit.hi-ho.ne.jp>
[mono.git] / mcs / class / System.XML / Mono.Xml.Xsl / HtmlEmitter.cs
index 25505e46589590742d04751445bc6f51803d497d..a7921cb9a99361658d337247fe7a3f7cb3b7ca55 100644 (file)
@@ -286,28 +286,33 @@ namespace Mono.Xml.Xsl
                                                continue;
                                        writer.Write (text.ToCharArray (), start, i - start);
                                        writer.Write ("&amp;");
-                                       start = i;
+                                       start = i + 1;
                                        break;
                                case '<':
                                        if (openAttribute)
                                                continue;
                                        writer.Write (text.ToCharArray (), start, i - start);
                                        writer.Write ("&lt;");
-                                       start = i;
+                                       start = i + 1;
                                        break;
                                case '\'':
+                                       if (!openAttribute)
+                                               continue;
                                        writer.Write (text.ToCharArray (), start, i - start);
                                        writer.Write ("&apos;");
-                                       start = i;
+                                       start = i + 1;
                                        break;
                                case '\"':
+                                       if (!openAttribute)
+                                               continue;
                                        writer.Write (text.ToCharArray (), start, i - start);
                                        writer.Write ("&quot;");
-                                       start = i;
+                                       start = i + 1;
                                        break;
                                }
                        }
-                       writer.Write (text.ToCharArray (), start, text.Length - start);
+                       if (text.Length > start)
+                               writer.Write (text.ToCharArray (), start, text.Length - start);
                }
 
                public override void WriteRaw (string data)