OSDN Git Service

* Changed encoding_parameter if xhtml was used.
authorkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Sat, 8 Nov 2008 13:47:52 +0000 (13:47 +0000)
committerkonn <konn@1a406e8e-add9-4483-a2c8-d8cac5b7c224>
Sat, 8 Nov 2008 13:47:52 +0000 (13:47 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/branches/RELEASE_0_13_0@3630 1a406e8e-add9-4483-a2c8-d8cac5b7c224

12 files changed:
include/chxj_encoding.h
src/chxj_chtml10.c
src/chxj_chtml20.c
src/chxj_chtml30.c
src/chxj_chtml40.c
src/chxj_chtml50.c
src/chxj_encoding.c
src/chxj_hdml.c
src/chxj_ixhtml10.c
src/chxj_jhtml.c
src/chxj_jxhtml.c
src/chxj_xhtml_mobile_1_0.c

index 2565385..8b99137 100644 (file)
@@ -36,7 +36,8 @@ extern char *chxj_rencoding(
 
 extern char *chxj_encoding_parameter(
   request_rec *r, 
-  const char  *value);
+  const char  *value,
+  int xmlflag);
 
 
 char *chxj_iconv(request_rec *r, apr_pool_t *pool, const char *src, apr_size_t *len, const char *from, const char *to);
index 8993833..fec8f5a 100644 (file)
@@ -1783,7 +1783,7 @@ s_chtml10_start_a_tag(void *pdoc, Node *node)
         /*--------------------------------------------------------------------*/
         /* CHTML1.0                                                           */
         /*--------------------------------------------------------------------*/
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml10->cookie);
         W_L(" href=\"");
         W_V(value);
@@ -2083,7 +2083,7 @@ s_chtml10_start_form_tag(void *pdoc, Node *node)
         /*--------------------------------------------------------------------*/
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
-        attr_action = chxj_encoding_parameter(r, value);
+        attr_action = chxj_encoding_parameter(r, value, 0);
         attr_action = chxj_add_cookie_parameter(r, attr_action, chtml10->cookie);
       }
       break;
@@ -2126,7 +2126,7 @@ s_chtml10_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 0);
     attr_action = chxj_add_cookie_parameter(r, attr_action, chtml10->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2604,7 +2604,7 @@ s_chtml10_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml10->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool, 
@@ -2616,7 +2616,7 @@ s_chtml10_start_img_tag(void *pdoc, Node *node)
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml10->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool,
index 3808b99..f8afe75 100644 (file)
@@ -781,7 +781,7 @@ s_chtml20_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 0);
             url = chxj_add_cookie_parameter(r, url, chtml20->cookie);
             W_L(" ");
             W_V(name);
@@ -1219,7 +1219,7 @@ s_chtml20_start_a_tag(void *pdoc, Node *node)
         /*--------------------------------------------------------------------*/
         /* CHTML1.0                                                           */
         /*--------------------------------------------------------------------*/
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml20->cookie);
         W_L(" href=\"");
         W_V(value);
@@ -1713,7 +1713,7 @@ s_chtml20_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 0);
     attr_action = chxj_add_cookie_parameter(r, attr_action, chtml20->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2554,7 +2554,7 @@ s_chtml20_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml20->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool, 
@@ -2566,7 +2566,7 @@ s_chtml20_start_img_tag(void *pdoc, Node *node)
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml20->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool,
index 6c576f2..7504223 100644 (file)
@@ -776,7 +776,7 @@ s_chtml30_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 0);
             url = chxj_add_cookie_parameter(r, url, chtml30->cookie);
             W_L(" ");
             W_V(name);
@@ -1179,7 +1179,7 @@ s_chtml30_start_a_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
       /* CHTML1.0                                                             */
       /*----------------------------------------------------------------------*/
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 0);
       value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
       W_L(" href=\"");
       W_V(value);
@@ -1603,7 +1603,7 @@ s_chtml30_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 0);
     attr_action = chxj_add_cookie_parameter(r, attr_action, chtml30->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2173,7 +2173,7 @@ s_chtml30_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool, 
@@ -2185,7 +2185,7 @@ s_chtml30_start_img_tag(void *pdoc, Node *node)
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml30->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool,
index 42dee50..9319992 100644 (file)
@@ -718,7 +718,7 @@ s_chtml40_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 0);
             url = chxj_add_cookie_parameter(r, url, chtml40->cookie);
             W_L(" ");
             W_V(name);
@@ -1127,7 +1127,7 @@ s_chtml40_start_a_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
       /* CHTML1.0                                                             */
       /*----------------------------------------------------------------------*/
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 0);
       value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
       W_L(" href=\"");
       W_V(value);
@@ -1553,7 +1553,7 @@ s_chtml40_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 0);
     attr_action = chxj_add_cookie_parameter(r, attr_action, chtml40->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2123,7 +2123,7 @@ s_chtml40_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool, 
@@ -2135,7 +2135,7 @@ s_chtml40_start_img_tag(void *pdoc, Node *node)
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml40->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool,
index f6a1715..3cecd43 100644 (file)
@@ -699,7 +699,7 @@ s_chtml50_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 0);
             url = chxj_add_cookie_parameter(r, url, chtml50->cookie);
             W_L(" ");
             W_V(name);
@@ -1108,7 +1108,7 @@ s_chtml50_start_a_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
       /* CHTML1.0                                                             */
       /*----------------------------------------------------------------------*/
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 0);
       value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
       W_L(" href=\"");
       W_V(value);
@@ -1600,7 +1600,7 @@ s_chtml50_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 0);
     attr_action = chxj_add_cookie_parameter(r, attr_action, chtml50->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2207,7 +2207,7 @@ s_chtml50_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool, 
@@ -2219,7 +2219,7 @@ s_chtml50_start_img_tag(void *pdoc, Node *node)
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, chtml50->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool,
index a3ce811..1e30114 100644 (file)
@@ -211,7 +211,7 @@ chxj_rencoding(request_rec *r, const char *src, apr_size_t *len)
 
 
 char *
-chxj_encoding_parameter(request_rec *r, const char *value)
+chxj_encoding_parameter(request_rec *r, const char *value, int xmlflag)
 {
   char *src;
   char *src_sv;
@@ -225,13 +225,13 @@ chxj_encoding_parameter(request_rec *r, const char *value)
 
   int   use_amp_flag;
   
-  DBG(r, "start chxj_encoding_parameter()");
+  DBG(r, "REQ[%X] start chxj_encoding_parameter()", (unsigned int)(apr_size_t)r);
 
   src = apr_pstrdup(r->pool, value);
 
   spos = strchr(src, '?');
   if (!spos) {
-    DBG(r, "end   chxj_encoding_parameter()");
+    DBG(r, "REQ[%X] end   chxj_encoding_parameter()", (unsigned int)(apr_size_t)r);
     return src;
   }
   *spos++ = 0;
@@ -244,7 +244,7 @@ chxj_encoding_parameter(request_rec *r, const char *value)
     apr_size_t len;
     char *sep_pos;
 
-    use_amp_flag = 0;
+    use_amp_flag = (xmlflag) ? 1 : 0;
 
     pair = apr_strtok(spos, "&", &pstat);
     spos = NULL;
@@ -302,7 +302,7 @@ chxj_encoding_parameter(request_rec *r, const char *value)
       }
     }
   }
-  DBG(r, "end   chxj_encoding_parameter()");
+  DBG(r, "REQ[%X] end   chxj_encoding_parameter()", (unsigned int)(apr_size_t)r);
 
   return apr_pstrcat(r->pool, src_sv, "?", param, NULL);
 }
index 5ba279d..0bfa7ee 100644 (file)
@@ -1018,7 +1018,7 @@ s_hdml_start_a_tag(void *pdoc, Node *node)
     }
     else if (STRCASEEQ('h','H',"href",name)) {
       if (STRNCASEEQ('m','M',"mailto:",value,sizeof("mailto:")-1)) {
-        value = chxj_encoding_parameter(hdml->doc->r, value);
+        value = chxj_encoding_parameter(hdml->doc->r, value, 0);
         s_output_to_hdml_out(hdml, " TASK=GO DEST=\""     );
         s_output_to_hdml_out(hdml, value                  );
         s_output_to_hdml_out(hdml, "\" "                  );
@@ -1264,7 +1264,7 @@ s_hdml_start_form_tag(void *pdoc, Node *node)
     char *name  = qs_get_attr_name(doc,attr);
     char *value = qs_get_attr_value(doc,attr);
     if (STRCASEEQ('a','A',"action",name)) {
-      value = chxj_encoding_parameter(hdml->doc->r, value);
+      value = chxj_encoding_parameter(hdml->doc->r, value, 0);
       act = apr_psprintf(r->pool, "%s", value);
       break;
     }
@@ -2256,7 +2256,7 @@ s_hdml_start_img_tag(void *pdoc, Node *node)
     char *name  = qs_get_attr_name(doc,attr);
     char *value = qs_get_attr_value(doc,attr);
     if (STRCASEEQ('s','S',"src",name) && value && *value) {
-      value = chxj_encoding_parameter(hdml->doc->r, value);
+      value = chxj_encoding_parameter(hdml->doc->r, value, 0);
       out = apr_pstrcat(doc->r->pool, out, " src=\"", NULL);
 #ifdef IMG_NOT_CONVERT_FILENAME
       out = apr_pstrcat(doc->r->pool, out, value, NULL);
index df550fd..671b9a8 100644 (file)
@@ -734,7 +734,7 @@ s_ixhtml10_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 1);
             W_L(" ");
             W_V(name);
             W_L("=\"");
@@ -1166,7 +1166,7 @@ s_ixhtml10_start_a_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
       /* CHTML1.0                                                             */
       /*----------------------------------------------------------------------*/
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       value = chxj_add_cookie_parameter(r, value, ixhtml10->cookie);
       W_L(" href=\"");
       W_V(value);
@@ -1704,7 +1704,7 @@ s_ixhtml10_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 1);
     attr_action = chxj_add_cookie_parameter(r, attr_action, ixhtml10->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2142,7 +2142,7 @@ s_ixhtml10_start_center_tag(void *pdoc, Node *node)
  * @return The conversion result is returned.
  */
 static char *
-s_ixhtml10_end_center_tag(void *pdoc, Node *node)
+s_ixhtml10_end_center_tag(void *pdoc, Node *UNUSED(node))
 {
   ixhtml10_t    *ixhtml10;
   Doc         *doc;
@@ -2911,7 +2911,7 @@ s_ixhtml10_start_img_tag(void *pdoc, Node *node)
       /* CHTML 1.0                                                            */
       /*----------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       if (value) {
         value = apr_psprintf(r->pool,
                              "%s",
@@ -2920,7 +2920,7 @@ s_ixhtml10_start_img_tag(void *pdoc, Node *node)
       attr_src = value;
 #else
       value = chxj_img_conv(r, spec, value);
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       if (value) {
         value = apr_psprintf(r->pool,
                              "%s",
index d430532..b29b42b 100644 (file)
@@ -733,7 +733,7 @@ s_jhtml_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 0);
             url = chxj_add_cookie_parameter(r, url, jhtml->cookie);
             W_L(" ");
             W_V(name);
@@ -1145,7 +1145,7 @@ s_jhtml_start_a_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
       /* CHTML1.0                                                             */
       /*----------------------------------------------------------------------*/
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 0);
       value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
       W_L(" href=\"");
       W_V(value);
@@ -1560,7 +1560,7 @@ s_jhtml_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 0);
     attr_action = chxj_add_cookie_parameter(r, attr_action, jhtml->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2598,7 +2598,7 @@ s_jhtml_start_img_tag(void *pdoc, Node *node)
         /* CHTML 1.0                                                          */
         /*--------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool, 
@@ -2610,7 +2610,7 @@ s_jhtml_start_img_tag(void *pdoc, Node *node)
         attr_src = value;
 #else
         value = chxj_img_conv(r, spec, value);
-        value = chxj_encoding_parameter(r, value);
+        value = chxj_encoding_parameter(r, value, 0);
         value = chxj_add_cookie_parameter(r, value, jhtml->cookie);
         if (value) {
           value = apr_psprintf(doc->buf.pool,
index d425a09..33e9e51 100644 (file)
@@ -736,7 +736,7 @@ s_jxhtml_start_meta_tag(void *pdoc, Node *node)
             sec = apr_pstrdup(r->pool, buf);
             sec[url-buf] = 0;
             url++;
-            url = chxj_encoding_parameter(r, url);
+            url = chxj_encoding_parameter(r, url, 1);
             W_L(" ");
             W_V(name);
             W_L("=\"");
@@ -1132,7 +1132,7 @@ s_jxhtml_start_a_tag(void *pdoc, Node *node)
       /*----------------------------------------------------------------------*/
       /* CHTML1.0                                                             */
       /*----------------------------------------------------------------------*/
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       W_L(" href=\"");
       W_V(value);
       W_L("\"");
@@ -1634,7 +1634,7 @@ s_jxhtml_start_form_tag(void *pdoc, Node *node)
 
   W_L("<form");
   if (attr_action) {
-    attr_action = chxj_encoding_parameter(r, attr_action);
+    attr_action = chxj_encoding_parameter(r, attr_action, 1);
     attr_action = chxj_add_cookie_parameter(r, attr_action, jxhtml->cookie);
     char *q;
     q = strchr(attr_action, '?');
@@ -2822,7 +2822,7 @@ s_jxhtml_start_img_tag(void *pdoc, Node *node)
       /* CHTML 1.0                                                            */
       /*----------------------------------------------------------------------*/
 #ifdef IMG_NOT_CONVERT_FILENAME
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       if (value) {
         value = apr_psprintf(r->pool,
                              "%s",
@@ -2831,7 +2831,7 @@ s_jxhtml_start_img_tag(void *pdoc, Node *node)
       attr_src = value;
 #else
       value = chxj_img_conv(r, spec, value);
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       if (value) {
         value = apr_psprintf(r->pool,
                              "%s",
index 04f7f8b..af04064 100644 (file)
@@ -1108,7 +1108,7 @@ s_xhtml_1_0_start_a_tag(void *pdoc, Node *node)
       W_L("\"");
     }
     else if (STRCASEEQ('h','H',"href", name) && value && *value) {
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       value = chxj_add_cookie_parameter(r, value, xhtml->cookie);
       W_L(" href=\"");
       W_V(value);
@@ -3236,7 +3236,7 @@ s_xhtml_1_0_start_img_tag(void *pdoc, Node *node)
     char *value = qs_get_attr_value(doc,attr);
 
     if (STRCASEEQ('s','S',"src",name)) {
-      value = chxj_encoding_parameter(r, value);
+      value = chxj_encoding_parameter(r, value, 1);
       value = chxj_add_cookie_parameter(r, value, xhtml->cookie);
       if (value) {
         value = apr_psprintf(r->pool,