/*
- * $Id$
- *
* de/encoding stuff. hopefully mostly to be depricated in favour of subst.c + strbuf
*/
return (bptr - target);
}
-
-void escputs1(const char *strbuf, int nbsp, int nolinebreaks)
-{
- StrEscAppend(WC->WBuf, NULL, strbuf, nbsp, nolinebreaks);
-}
-
-void StrEscputs1(const StrBuf *strbuf, int nbsp, int nolinebreaks)
-{
- StrEscAppend(WC->WBuf, strbuf, NULL, nbsp, nolinebreaks);
-}
-
/*
* static wrapper for ecsputs1
*/
void escputs(const char *strbuf)
{
- escputs1(strbuf, 0, 0);
-}
-
-
-/*
- * static wrapper for ecsputs1
- */
-void StrEscPuts(const StrBuf *strbuf)
-{
- StrEscputs1(strbuf, 0, 0);
+ StrEscAppend(WC->WBuf, NULL, strbuf, 0, 0);
}
-
/*
* urlescape buffer and print it to the client
*/
StrBufUrlescAppend(WC->WBuf, NULL, strbuf);
}
-/*
- * urlescape buffer and print it to the client
- */
-void UrlescPutStrBuf(const StrBuf *strbuf)
-{
- StrBufUrlescAppend(WC->WBuf, strbuf, NULL);
-}
/**
* urlescape buffer and print it as header
/*
- * Copy a string, escaping characters for JavaScript strings.
+ * Output a string to the client as a CDATA block
*/
-void jsesc(char *target, size_t tlen, char *strbuf)
+void cdataout(char *rawdata)
{
- int len;
- char *tend;
- char *send;
- char *tptr;
- char *sptr;
-
- target[0]='\0';
- len = strlen (strbuf);
- send = strbuf + len;
- tend = target + tlen;
- sptr = strbuf;
- tptr = target;
-
- while (!IsEmptyStr(sptr) &&
- (sptr < send) &&
- (tptr < tend)) {
-
- if (*sptr == '<')
- *tptr = '[';
- else if (*sptr == '>')
- *tptr = ']';
- else if (*sptr == '\'') {
- if (tend - tptr < 3)
- return;
- *(tptr++) = '\\';
- *tptr = '\'';
- }
- else if (*sptr == '"') {
- if (tend - tptr < 8)
- return;
- *(tptr++) = '&';
- *(tptr++) = 'q';
- *(tptr++) = 'u';
- *(tptr++) = 'o';
- *(tptr++) = 't';
- *tptr = ';';
+ char *ptr = rawdata;
+ wc_printf("<![CDATA[");
+
+ while ((ptr != NULL) && (ptr[0] != 0))
+ {
+ if (!strncmp(ptr, "]]>", 3)) {
+ wc_printf("]]]]><![CDATA[>");
+ ++ptr; ++ptr; ++ptr;
}
- else if (*sptr == '&') {
- if (tend - tptr < 7)
- return;
- *(tptr++) = '&';
- *(tptr++) = 'a';
- *(tptr++) = 'm';
- *(tptr++) = 'p';
- *tptr = ';';
- } else {
- *tptr = *sptr;
+ else {
+ wc_printf("%c", ptr[0]);
+ ++ptr;
}
- tptr++; sptr++;
}
- *tptr = '\0';
-}
-/*
- * escape and print javascript
- */
-void jsescputs(char *strbuf)
-{
- char outbuf[SIZ];
-
- jsesc(outbuf, SIZ, strbuf);
- wc_printf("%s", outbuf);
+ wc_printf("]]>");
}
-/*
- * print a string to the client after cleaning it with msgesc() and stresc()
- */
-void msgescputs1( char *strbuf)
-{
- StrBuf *OutBuf;
-
- if ((strbuf == NULL) || IsEmptyStr(strbuf))
- return;
- OutBuf = NewStrBuf();
- StrMsgEscAppend(OutBuf, NULL, strbuf);
- StrEscAppend(WC->WBuf, OutBuf, NULL, 0, 0);
- FreeStrBuf(&OutBuf);
-}
-
-/*
- * print a string to the client after cleaning it with msgesc()
- */
-void msgescputs(char *strbuf) {
- if ((strbuf != NULL) && !IsEmptyStr(strbuf))
- StrMsgEscAppend(WC->WBuf, NULL, strbuf);
-}
-
-
-