New function cdataout() for sending a string to the client as a CDATA block
authorArt Cancro <ajc@uncensored.citadel.org>
Wed, 25 May 2011 21:53:36 +0000 (17:53 -0400)
committerArt Cancro <ajc@uncensored.citadel.org>
Wed, 25 May 2011 21:53:36 +0000 (17:53 -0400)
webcit/utils.c
webcit/webcit.h

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("]]>");
+}
+
index 1f10866383a024d6f090338382421cda17865ee9..587defc9b56c1ae8f921beebaa1127da9495e87f 100644 (file)
@@ -690,6 +690,7 @@ void output_headers(    int do_httpheaders,
                        int suppress_check,
                        int cache);
 void output_custom_content_header(const char *ctype);
+void cdataout(char *rawdata);
 
 #ifdef UBER_VERBOSE_DEBUGGING
 #define wc_printf(...) wcc_printf(__FILE__, __FUNCTION__, __LINE__, __VA_ARGS__)