From bfc3a17fd7d7bf65f6ea90b1f681c660aec531a5 Mon Sep 17 00:00:00 2001 From: konn Date: Sun, 10 Apr 2005 08:51:16 +0000 Subject: [PATCH] *** empty log message *** git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/modchxj/mod_chxj/trunk@86 1a406e8e-add9-4483-a2c8-d8cac5b7c224 --- src/chxj_qr_code.c | 18 ++++++++++++++---- src/chxj_qr_code.h | 6 ++++++ src/chxj_xhtml_mobile_1_0.c | 16 +++++++++++++++- src/mod_chxj.c | 7 ------- 4 files changed, 35 insertions(+), 12 deletions(-) diff --git a/src/chxj_qr_code.c b/src/chxj_qr_code.c index 7e3d6491..fe49cd57 100644 --- a/src/chxj_qr_code.c +++ b/src/chxj_qr_code.c @@ -642,6 +642,9 @@ chxj_qr_code_blob_handler(request_rec* r, const char* indata, size_t* len) char* img; Node* root; + ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, + "start chxj_qr_code_blob_handler()"); + memset(&doc, 0, sizeof(Doc)); memset(&qrcode, 0, sizeof(qr_code_t)); @@ -654,13 +657,21 @@ chxj_qr_code_blob_handler(request_rec* r, const char* indata, size_t* len) root = qs_parse_string(&doc, indata, *len); chxj_qrcode_node_to_qrcode(&qrcode, root); qs_all_free(&doc,QX_LOGMARK); + if (qrcode.found == QR_NOT_FOUND) + { + return NULL; + } sts = chxj_qrcode_create_image_data(&qrcode, &img, len); if (sts != OK) { + ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, + "end chxj_qr_code_blob_handler()"); return NULL; } ap_set_content_type(r, "image/jpg"); + ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, + "end chxj_qr_code_blob_handler()"); return img; } @@ -1026,10 +1037,8 @@ chxj_qrcode_node_to_qrcode(qr_code_t* qrcode, Node* node) request_rec* r = qrcode->r; Doc* doc = qrcode->doc; Node* child; - /*--------------------------------------------------------------------------*/ - /* TODO: ¥Î¡¼¥É¤«¤é¥Ç¡¼¥¿¤ò¼èÆÀ¤·¡¢ */ - /* ¤½¤ì¤¾¤ì¤Î¥á¥ó¥Ð¤ËÀßÄꤹ¤ë¥í¥¸¥Ã¥¯¤ò½ñ¤­¤Þ¤¹ */ - /*--------------------------------------------------------------------------*/ + qrcode->found = QR_NOT_FOUND; + for (child = qs_get_child_node(doc,node); child ; child = qs_get_next_node(doc,child)) @@ -1037,6 +1046,7 @@ chxj_qrcode_node_to_qrcode(qr_code_t* qrcode, Node* node) char* name = qs_get_node_name(doc,child); if (strcasecmp("qrcode",name) == 0) { + qrcode->found = QR_FOUND; chxj_qrcode_node_to_qrcode(qrcode, child); } else diff --git a/src/chxj_qr_code.h b/src/chxj_qr_code.h index 08d97bc1..5ed58021 100644 --- a/src/chxj_qr_code.h +++ b/src/chxj_qr_code.h @@ -92,8 +92,14 @@ typedef enum _qr_mode_t { QR_RSV7_MODE, } qr_mode_t; +typedef enum _qr_code_found_t { + QR_NOT_FOUND = 0, + QR_FOUND, +} qr_code_found_t; typedef struct _qr_code_t { + qr_code_found_t found; + qr_ver_t version; qr_level_t level; qr_mode_t mode; diff --git a/src/chxj_xhtml_mobile_1_0.c b/src/chxj_xhtml_mobile_1_0.c index a710c045..553949ab 100644 --- a/src/chxj_xhtml_mobile_1_0.c +++ b/src/chxj_xhtml_mobile_1_0.c @@ -19,6 +19,7 @@ #include "chxj_hdml.h" #include "chxj_dump.h" #include "chxj_img_conv.h" +#include "chxj_qr_code.h" static char* xhtml_1_0_node_exchange (Xhtml* xhtml, Node* node, int indent); @@ -82,10 +83,23 @@ chxj_exchange_xhtml_mobile_1_0( Xhtml xhtml; Doc doc; + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,"start chxj_exchange_xhtml_mobile_1_0()"); + + /*--------------------------------------------------------------------------*/ + /* If qrcode xml */ + /*--------------------------------------------------------------------------*/ + *dstlen = srclen; + dst = chxj_qr_code_blob_handler(r, src, (size_t*)dstlen); + if (dst != NULL) + { + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,"i found qrcode xml"); + return dst; + } + ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,"not found qrcode xml"); + /*--------------------------------------------------------------------------*/ /* The XHTML structure is initialized. */ /*--------------------------------------------------------------------------*/ - ap_log_rerror(APLOG_MARK, APLOG_DEBUG, 0, r,"start chxj_exchange_xhtml_mobile_1_0()"); chxj_init_xhtml(&xhtml, &doc, r, spec); ap_set_content_type(r, "text/html; charset=Windows-31J"); diff --git a/src/mod_chxj.c b/src/mod_chxj.c index b97c8f65..273f4cad 100644 --- a/src/mod_chxj.c +++ b/src/mod_chxj.c @@ -117,7 +117,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select DoCoMo i-Mode 1.0 "); dst = chxj_exchange_chtml10(r, spec, *src, *len, len); - *len = strlen(dst); ap_set_content_type(r, "text/html; charset=Windows-31J"); } @@ -129,7 +128,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select DoCoMo i-Mode 2.0 "); dst = chxj_exchange_chtml20(r, spec, *src, *len, len); - *len = strlen(dst); ap_set_content_type(r, "text/html; charset=Windows-31J"); } else @@ -140,7 +138,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select DoCoMo i-Mode 3.0 "); dst = chxj_exchange_chtml30(r, spec, *src, *len, len); - *len = strlen(dst); ap_set_content_type(r, "text/html; charset=Windows-31J"); } else @@ -151,7 +148,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select DoCoMo i-Mode 4.0 "); dst = chxj_exchange_chtml30(r, spec, *src, *len, len); - *len = strlen(dst); ap_set_content_type(r, "text/html; charset=Windows-31J"); } else @@ -162,7 +158,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select DoCoMo i-Mode 5.0 "); dst = chxj_exchange_chtml30(r, spec, *src, *len, len); - *len = strlen(dst); ap_set_content_type(r, "text/html; charset=Windows-31J"); } else @@ -173,7 +168,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select XHTML Mobile 1.0"); dst = chxj_exchange_xhtml_mobile_1_0(r, spec, *src, *len, len); - *len = strlen(dst); } else if (spec->html_spec_type == CHXJ_SPEC_Hdml) @@ -193,7 +187,6 @@ chxj_exchange(request_rec *r, const char** src, apr_size_t* len) /*----------------------------------------------------------------------*/ ap_log_rerror(APLOG_MARK,APLOG_DEBUG, 0, r, "select JHTML"); dst = chxj_exchange_jhtml(r, spec, *src, *len, len); - *len = strlen(dst); ap_set_content_type(r, "text/html; charset=Windows-31J"); } else -- 2.11.0