OSDN Git Service

Merge branch 'branch_0.12.0'
[modchxj/mod_chxj.git] / src / mod_chxj.c
index 1432630..0f9180f 100644 (file)
@@ -54,6 +54,7 @@
 #include "chxj_chtml30.h"
 #include "chxj_chtml40.h"
 #include "chxj_chtml50.h"
+#include "chxj_ixhtml10.h"
 #include "chxj_jhtml.h"
 #include "chxj_jxhtml.h"
 #include "chxj_img_conv_format.h"
@@ -63,6 +64,7 @@
 #include "chxj_cookie.h"
 #include "chxj_url_encode.h"
 #include "chxj_str_util.h"
+#include "chxj_dump_string.h"
 #if defined(USE_MYSQL_COOKIE)
 #  include "chxj_mysql.h"
 #endif
@@ -116,15 +118,15 @@ converter_t convert_routine[] = {
   },
   {
     /* CHXJ_SPEC_Chtml_6_0        */
-    .converter            = chxj_convert_chtml50,
-    .encoder              = chxj_encoding,
-    .emoji_only_converter = chxj_chtml50_emoji_only_converter,
+    .converter = chxj_convert_ixhtml10,
+    .encoder  = chxj_encoding,
+    .emoji_only_converter = chxj_chtml50_emoji_only_converter, /* XXX: TODO */
   },
   {
     /* CHXJ_SPEC_Chtml_7_0        */
-    .converter            = chxj_convert_chtml50,
-    .encoder              = chxj_encoding,
-    .emoji_only_converter = chxj_chtml50_emoji_only_converter,
+    .converter = chxj_convert_ixhtml10,
+    .encoder  = chxj_encoding,
+    .emoji_only_converter = chxj_chtml50_emoji_only_converter, /* XXX: TODO */
   },
   {
     /* CHXJ_SPEC_XHtml_Mobile_1_0 */
@@ -343,7 +345,10 @@ chxj_convert(request_rec *r, const char **src, apr_size_t *len, device_table *sp
   mod_chxj_config     *dconf; 
   chxjconvrule_entry  *entryp;
 
-  DBG(r,"REQ[%X] start of chxj_convert() input:[%.*s]", (unsigned int)(apr_size_t)r, (int)*len, *src);
+  DBG(r,"REQ[%X] start of chxj_convert()", (unsigned int)(apr_size_t)r);
+
+  chxj_dump_string(r, APLOG_MARK, "INPUT Data", *src, *len);
+
   dst  = apr_pstrcat(r->pool, (char *)*src, NULL);
 
   dconf = chxj_get_module_config(r->per_dir_config, &chxj_module);
@@ -711,7 +716,6 @@ chxj_input_convert(
   cookie_t *cookie = NULL;
   char     *buff_pre;
   int      no_update_flag = 0;
-  apr_size_t ii;
   apr_size_t ilen = 0;
   apr_pool_t *pool;
 
@@ -730,19 +734,7 @@ chxj_input_convert(
 
   result   = qs_alloc_zero_byte_string(pool);
 
-  DBG(r, "REQ[%X] +-------------------------------------------------------------------+", (unsigned int)(apr_size_t)r);
-  DBG(r, "REQ[%X] | BEFORE input convert source                                       |", (unsigned int)(apr_size_t)r);
-  DBG(r, "REQ[%X] +-------------------------------------------------------------------+", (unsigned int)(apr_size_t)r);
-  for (ii=0; ii<ilen-64; ii+=64) {
-    DBG(r, "REQ[%X] | [%-*.*s] |", (unsigned int)(apr_size_t)r, 64, 64, &s[ii]);
-    if (ilen < 64) {
-      break;
-    }
-  }
-  if (ilen >= 64 && ((ilen-64) % 64 != 0)) {
-    DBG(r, "REQ[%X] | [%-*.*s] |", (unsigned int)(apr_size_t)r, 64, 64, &s[ii]);
-  }
-  DBG(r, "REQ[%X] +--------------------------------------------------------------------+", (unsigned int)(apr_size_t)r);
+  chxj_dump_string(r, APLOG_MARK, "BEFORE input convert source", s, ilen);
 
   for (;;) {
     char *pair_sv;
@@ -959,7 +951,6 @@ pass_data_to_filter(ap_filter_t *f, const char *data,
   return rv;
 }
 
-
 /**
  * Add No Cache Header
  */
@@ -1077,7 +1068,7 @@ chxj_output_filter(ap_filter_t *f, apr_bucket_brigade *bb)
        b = APR_BUCKET_NEXT(b)) {
 
     if (apr_bucket_read(b, &data, &len, APR_BLOCK_READ) == APR_SUCCESS) {
-      DBG(r, "REQ[%X] read data[%.*s]",(unsigned int)(apr_size_t)r, (int)len, data);
+      chxj_dump_string(r, APLOG_MARK, "READ Data", data, len);
 
       /*--------------------------------------------------------------------*/
       /* append data                                                        */
@@ -2382,6 +2373,15 @@ cmd_convert_rule(cmd_parms *cmd, void *mconfig, const char *arg)
       if (strcasecmp(CONVRULE_COOKIE_ON_CMD, action) == 0) {
         newrule->action |= CONVRULE_COOKIE_ON_BIT;
       }
+      else if (strcasecmp(CONVRULE_COOKIE_OFF_CMD, action) == 0) {
+        newrule->action &= (0xffffffff ^ CONVRULE_COOKIE_ON_BIT);
+      }
+      else if (strcasecmp(CONVRULE_CSS_ON_CMD, action) == 0) {
+        newrule->action |= CONVRULE_CSS_ON_BIT;
+      }
+      else if (strcasecmp(CONVRULE_CSS_OFF_CMD, action) == 0) {
+        newrule->action &= (0xffffffff ^ CONVRULE_CSS_ON_BIT);
+      }
       break;
 
     case 'J':