]> code.citadel.org Git - citadel.git/blobdiff - webcit/utils.c
New function cdataout() for sending a string to the client as a CDATA block
[citadel.git] / webcit / utils.c
index 8f19109d68906b6556a4872fee4d02c85f1e7d2e..3e465e20b90ed8cef2cd1c6859a48c56ed71344c 100644 (file)
@@ -275,3 +275,28 @@ void msgescputs(char *strbuf) {
 
 
 
+
+
+/*
+ * Output a string to the client as a CDATA block
+ */
+void cdataout(char *rawdata)
+{
+       char *ptr = rawdata;
+       wc_printf("<![CDATA[");
+
+       while ((ptr != NULL) && (ptr[0] != 0))
+       {
+               if (!strncmp(ptr, "]]>", 3)) {
+                       wc_printf("]]]]><![CDATA[>");
+                       ++ptr; ++ptr; ++ptr;
+               }
+               else {
+                       wc_printf("%c", ptr[0]);
+                       ++ptr;
+               }
+       }
+
+       wc_printf("]]>");
+}
+