[valadoc] gtkdoc-renderer: Fix broken escapes



commit d4b3f1bf94bc38cf305aa89f10bf5ca09af0e3e0
Author: Florian Brosch <flo brosch gmail com>
Date:   Tue Feb 7 16:20:12 2012 +0100

    gtkdoc-renderer: Fix broken escapes

 src/libvaladoc/gtkdocrenderer.vala |   78 +++++++++++++++++++++--------------
 src/libvaladoc/markupwriter.vala   |    6 +++
 2 files changed, 53 insertions(+), 31 deletions(-)
---
diff --git a/src/libvaladoc/gtkdocrenderer.vala b/src/libvaladoc/gtkdocrenderer.vala
index 332dd33..eb4fe68 100644
--- a/src/libvaladoc/gtkdocrenderer.vala
+++ b/src/libvaladoc/gtkdocrenderer.vala
@@ -312,59 +312,75 @@ public class Valadoc.GtkdocRenderer : ContentRenderer {
 
 		for (i = 0; chr != '\0' ; i++, chr = content[i]) {
 			switch (chr) {
-			case '#':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("&num;");
+			case '<':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&lt;");
 				lpos = i+1;
 				break;
-			case '%':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("&percnt;");
+
+			case '>':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&gt;");
 				lpos = i+1;
 				break;
-			case '@':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("&commat;");
+
+			case '"':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&quot;");
 				lpos = i+1;
 				break;
-			case '(':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("&lpar;");
+
+			case '\'':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&apos;");
 				lpos = i+1;
 				break;
-			case ')':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("&rpar;");
+
+			case '&':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&amp;");
 				lpos = i+1;
 				break;
-			case '"':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("&quot;");
+
+			case '#':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&num;");
 				lpos = i+1;
 				break;
-			case '\n':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.simple_tag ("br");
+
+			case '%':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&percnt;");
 				lpos = i+1;
 				break;
-			case '<':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.text ("&lt;");
+
+			case '@':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&commat;");
 				lpos = i+1;
 				break;
-			case '>':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.text ("&gt;");
+
+			case '(':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&lpar;");
 				lpos = i+1;
 				break;
-			case '&':
-				writer.text (content.substring (lpos, i-lpos));
-				writer.text ("&amp;");
+
+			case ')':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.raw_text ("&rpar;");
+				lpos = i+1;
+				break;
+
+			case '\n':
+				writer.raw_text (content.substring (lpos, i-lpos));
+				writer.simple_tag ("br");
 				lpos = i+1;
 				break;
 			}
 		}
-		writer.text (content.substring (lpos, i-lpos));
+
+		writer.raw_text (content.substring (lpos, i-lpos));
 	}
 
 	public void append_since (Gee.List<Content.Taglet> taglets) {
diff --git a/src/libvaladoc/markupwriter.vala b/src/libvaladoc/markupwriter.vala
index d463d0e..ae0e56c 100755
--- a/src/libvaladoc/markupwriter.vala
+++ b/src/libvaladoc/markupwriter.vala
@@ -63,6 +63,12 @@ public class Valadoc.MarkupWriter {
 				builder.append ("&amp;");
 				start = pos.next_char ();
 				break;
+
+			case '\'':
+				builder.append_len (start, (ssize_t) ((char*) pos - (char*) start));
+				builder.append ("&apos;");
+				start = pos.next_char ();
+				break;
 			}
 		}
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]