From 5a0481cbf9c4376797cf0ad489c2a348c8ab36aa Mon Sep 17 00:00:00 2001 From: konn Date: Thu, 3 Apr 2008 12:07:07 +0000 Subject: [PATCH] * use BUFFERRING for CHTML20 convertor. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@1976 1a406e8e-add9-4483-a2c8-d8cac5b7c224 --- README | 1 + src/chxj_chtml20.c | 99 +----------------------------------------------------- src/chxj_chtml30.c | 5 +++ 3 files changed, 7 insertions(+), 98 deletions(-) diff --git a/README b/README index fd9e5b99..8a0cce3b 100644 --- a/README +++ b/README @@ -1 +1,2 @@ see doc/modchxj.sdoc + diff --git a/src/chxj_chtml20.c b/src/chxj_chtml20.c index d3c7244c..d4cf062e 100644 --- a/src/chxj_chtml20.c +++ b/src/chxj_chtml20.c @@ -22,8 +22,7 @@ #include "chxj_img_conv.h" #include "chxj_qr_code.h" #include "chxj_encoding.h" - -#define BUFFERED 1 +#include "chxj_buffered_write.h" #define GET_CHTML20(X) ((chtml20_t*)(X)) #define W_L(X) do { chtml20->out = BUFFERED_WRITE_LITERAL(chtml20->out, &doc->buf, (X)); } while(0) @@ -494,11 +493,7 @@ s_chtml20_start_html_tag(void *pdoc, Node *UNUSED(node)) /*--------------------------------------------------------------------------*/ /* start HTML tag */ /*--------------------------------------------------------------------------*/ -#if BUFFERED W_L("\n"); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\n", NULL); -#endif return chtml20->out; } @@ -523,12 +518,7 @@ s_chtml20_end_html_tag(void *pdoc, Node *UNUSED(child)) doc = chtml20->doc; r = doc->r; -#if BUFFERED W_L("\n"); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\n", NULL); -#endif - return chtml20->out; } @@ -558,12 +548,7 @@ s_chtml20_start_meta_tag(void *pdoc, Node *node) content_type_flag = 0; refresh_flag = 0; -#if BUFFERED W_L("out = apr_pstrcat(r->pool, chtml20->out, "out = apr_pstrcat(r->pool, - chtml20->out, - " http-equiv=\"", - value, - "\"", - NULL); -#endif - if (STRCASEEQ('c','C',"content-type",value)) { content_type_flag = 1; } @@ -611,39 +586,17 @@ s_chtml20_start_meta_tag(void *pdoc, Node *node) if (strcasecmp(name, "content") == 0) { if (content_type_flag) { if (IS_SJIS_STRING(GET_SPEC_CHARSET(chtml20->spec))) { -#if BUFFERED W_L(" "); W_V(name); W_L("=\""); W_L("text/html; charset=Windows-31J"); W_L("\""); -#else - chtml20->out = apr_pstrcat(r->pool, - chtml20->out, - " ", - name, - "=\"", - "text/html; charset=Windows-31J", - "\"", - NULL); -#endif } else { -#if BUFFERED W_L(" "); W_V(name); W_L("=\""); W_L("text/html; charset=UTF-8"); -#else - chtml20->out = apr_pstrcat(r->pool, - chtml20->out, - " ", - name, - "=\"", - "text/html; charset=UTF-8", - "\"", - NULL); -#endif } } else if (refresh_flag) { @@ -658,7 +611,6 @@ s_chtml20_start_meta_tag(void *pdoc, Node *node) url++; url = chxj_encoding_parameter(r, url); url = chxj_add_cookie_parameter(r, url, chtml20->cookie); -#if BUFFERED W_L(" "); W_V(name); W_L("=\""); @@ -666,36 +618,13 @@ s_chtml20_start_meta_tag(void *pdoc, Node *node) W_L(";"); W_V(url); W_L("\""); -#else - chtml20->out = apr_pstrcat(r->pool, - chtml20->out, - " ", - name, - "=\"", - sec, - ";", - url, - "\"", - NULL); -#endif } } else { -#if BUFFERED W_L(" "); W_V(name); W_L("=\""); W_V(value); -#else - chtml20->out = apr_pstrcat(r->pool, - chtml20->out, - " ", - name, - "=\"", - value, - "\"", - NULL); -#endif } } break; @@ -704,13 +633,7 @@ s_chtml20_start_meta_tag(void *pdoc, Node *node) break; } } - -#if BUFFERED W_L(">"); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, ">", NULL); -#endif - return chtml20->out; } @@ -753,12 +676,7 @@ s_chtml20_start_head_tag(void *pdoc, Node *UNUSED(node)) doc = chtml20->doc; r = doc->r; -#if BUFFERED W_L("\r\n"); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\r\n", NULL); -#endif - return chtml20->out; } @@ -782,12 +700,7 @@ s_chtml20_end_head_tag(void *pdoc, Node *UNUSED(child)) doc = chtml20->doc; r = doc->r; -#if BUFFERED W_L("\r\n"); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\r\n", NULL); -#endif - return chtml20->out; } @@ -811,12 +724,7 @@ s_chtml20_start_title_tag(void *pdoc, Node *UNUSED(node)) doc = chtml20->doc; r = doc->r; -#if BUFFERED W_L(""); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, "<title>", NULL); -#endif - return chtml20->out; } @@ -840,12 +748,7 @@ s_chtml20_end_title_tag(void *pdoc, Node *UNUSED(child)) doc = chtml20->doc; r = doc->r; -#if BUFFERED W_L("\r\n"); -#else - chtml20->out = apr_pstrcat(r->pool, chtml20->out, "\r\n", NULL); -#endif - return chtml20->out; } diff --git a/src/chxj_chtml30.c b/src/chxj_chtml30.c index 93f502cd..f7ec134d 100644 --- a/src/chxj_chtml30.c +++ b/src/chxj_chtml30.c @@ -22,8 +22,13 @@ #include "chxj_img_conv.h" #include "chxj_qr_code.h" #include "chxj_encoding.h" +#include "chxj_buffered_write.h" +#define BUFFERED 1 #define GET_CHTML30(X) ((chtml30_t *)(X)) +#define W_L(X) do { chtml30->out = BUFFERED_WRITE_LITERAL(chtml30->out, &doc->buf, (X)); } while(0) +#define W_V(X) do { chtml30->out = (X) ? BUFFERED_WRITE_VALUE(chtml30->out, &doc->buf, (X)) \ + : BUFFERED_WRITE_LITERAL(chtml30->out, &doc->buf, ""); } while(0) static char *s_chtml30_start_html_tag (void *pdoc, Node *node); static char *s_chtml30_end_html_tag (void *pdoc, Node *node); -- 2.11.0