OSDN Git Service

* Fixed Bug.
authorAtsushi Konno <konn@users.sourceforge.jp>
Wed, 8 Apr 2009 17:42:52 +0000 (02:42 +0900)
committerAtsushi Konno <konn@users.sourceforge.jp>
Wed, 8 Apr 2009 17:42:52 +0000 (02:42 +0900)
    - Changed JRConvOff features.

include/chxj_jreserved_tag.h
src/chxj_jreserved_tag.c
src/chxj_tag_util.c
src/mod_chxj.c

index ff5506e..1432238 100644 (file)
@@ -23,4 +23,6 @@ extern char *chxj_jreserved_to_safe_tag(request_rec *r, const char *src, chxjcon
 extern char *chxj_safe_to_jreserved_tag(request_rec *r, const char *src);
 
 extern char *chxj_jreserved_tag_to_safe_for_query_string(request_rec *r, const char *query_string, chxjconvrule_entry *entryp);
+
+extern int chxj_is_jreserved_tag(const char *src);
 #endif
index 575ef13..f0bf30f 100644 (file)
@@ -120,6 +120,21 @@ static r_table_t reserved_table[] = {
 };
 
 
+int
+chxj_is_jreserved_tag(const char *src) 
+{
+  int ii;
+  for (ii=0;ii<RESERVED_NELT;ii++) {
+    if (STRCASEEQ(reserved_table[ii].lower,
+                  reserved_table[ii].upper,
+                  reserved_table[ii].name, 
+                  src)) {
+      return 1;
+    }
+  }
+  return 0;
+}
+
 char *
 chxj_jreserved_to_safe_tag(request_rec *r, const char *src, chxjconvrule_entry *entryp)
 {
index 873561f..8184910 100644 (file)
@@ -671,11 +671,29 @@ chxj_form_action_to_hidden_tag(
           }
         }
         else {
-          tmp = apr_psprintf(pool, 
-                             "<input type=\"hidden\" name=\"_chxj_qs_%s\" value=\"%s\"%s>", 
-                             chxj_url_decode(pool, key), 
-                             chxj_url_decode(pool, val), 
-                             (xmlFlag == 1) ? " /" : "");
+          if (entryp->action & CONVRULE_JRCONV_OFF_BIT) {
+            if (chxj_is_jreserved_tag(key)) {
+              tmp = apr_psprintf(pool, 
+                                 "<input type=\"hidden\" name=\"%s\" value=\"%s\"%s>", 
+                                 chxj_url_decode(pool, key), 
+                                 chxj_url_decode(pool, val), 
+                                 (xmlFlag == 1) ? " /" : "");
+            }
+            else {
+              tmp = apr_psprintf(pool, 
+                                 "<input type=\"hidden\" name=\"_chxj_qs_%s\" value=\"%s\"%s>", 
+                                 chxj_url_decode(pool, key), 
+                                 chxj_url_decode(pool, val), 
+                                 (xmlFlag == 1) ? " /" : "");
+            }
+          }
+          else {
+            tmp = apr_psprintf(pool, 
+                               "<input type=\"hidden\" name=\"_chxj_qs_%s\" value=\"%s\"%s>", 
+                               chxj_url_decode(pool, key), 
+                               chxj_url_decode(pool, val), 
+                               (xmlFlag == 1) ? " /" : "");
+          }
         }
         if (result) {
           result = apr_pstrcat(pool, result, tmp, NULL);
index 2c59628..10aa224 100644 (file)
@@ -247,7 +247,7 @@ chxj_headers_fixup(request_rec *r)
     break;
   
   default:
-    DBG(r, "REQ[%X] end chxj_headers_fixup() (not mobile)", (unsigned int)(apr_size_t)r);
+    DBG(r, "REQ[%X] end chxj_headers_fixup() (not mobile) spec->device_name[%s]", (unsigned int)(apr_size_t)r, spec->device_name);
     return DECLINED;
 
   }
@@ -1638,7 +1638,7 @@ chxj_insert_filter(request_rec *r)
     break;
 
   default:
-    DBG(r, "REQ[%X] end chxj_insert_filter() Unknown spec type.", (unsigned int)(apr_size_t)r);
+    DBG(r, "REQ[%X] end chxj_insert_filter() Unknown spec type(%d).", (unsigned int)(apr_size_t)r, spec->html_spec_type);
     return;
   }