From d1cab8fb37f109a4dbe2669e396e219367f6412b Mon Sep 17 00:00:00 2001 From: Atsushi Konno Date: Fri, 11 Mar 2011 12:35:25 +0900 Subject: [PATCH] * Added features. - EmojiOnly Mode without EngineOn --- src/Makefile.am | 2 +- src/Makefile.in | 2 +- src/mod_chxj.c | 31 ++++++++++++++++++++++++++++--- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/src/Makefile.am b/src/Makefile.am index f575c862..07d8335f 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -43,7 +43,7 @@ libmod_chxj_la_SOURCES = mod_chxj.c \ chxj_conv_z2h.c \ chxj_conv_z2h_num.c \ chxj_header_inf.c \ - chxj_jreserved_tag.c + chxj_jreserved_tag.c libmod_chxj_la_CFLAGS = -O2 -prefer-pic @QDEFS@ @DDEFS@ -I. -I../include -I@with_apache_header@ -I./serf diff --git a/src/Makefile.in b/src/Makefile.in index 5f977a01..91b244bb 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -275,7 +275,7 @@ libmod_chxj_la_SOURCES = mod_chxj.c \ chxj_conv_z2h.c \ chxj_conv_z2h_num.c \ chxj_header_inf.c \ - chxj_jreserved_tag.c + chxj_jreserved_tag.c libmod_chxj_la_CFLAGS = -O2 -prefer-pic @QDEFS@ @DDEFS@ -I. -I../include -I@with_apache_header@ -I./serf AM_CFLAGS = @CFLAGS@ -O2 -prefer-pic @QDEFS@ @DDEFS@ -I. -I../include -I@with_apache_header@ diff --git a/src/mod_chxj.c b/src/mod_chxj.c index 7a30bbc4..9002ece6 100644 --- a/src/mod_chxj.c +++ b/src/mod_chxj.c @@ -402,7 +402,10 @@ chxj_convert(request_rec *r, const char **src, apr_size_t *len, device_table *sp entryp = chxj_apply_convrule(r, dconf->convrules); - if (!entryp || (!(entryp->action & CONVRULE_ENGINE_ON_BIT) && !(entryp->action & CONVRULE_COOKIE_ONLY_BIT))) { + if (!entryp + || (!(entryp->action & CONVRULE_ENGINE_ON_BIT) + && !(entryp->action & CONVRULE_COOKIE_ONLY_BIT) + && !(entryp->action & CONVRULE_EMOJI_ONLY_BIT))) { DBG(r,"REQ[%X] end %s()", TO_ADDR(r),__func__); return (char *)*src; } @@ -470,6 +473,27 @@ chxj_convert(request_rec *r, const char **src, apr_size_t *len, device_table *sp /* ignore */ } } + else if (!(entryp->action & CONVRULE_ENGINE_ON_BIT) && (entryp->action & CONVRULE_EMOJI_ONLY_BIT)) { + /*---------------------------------------------------------------------*/ + /* force emoji only mode */ + /*---------------------------------------------------------------------*/ + tmp = NULL; + if (convert_routine[spec->html_spec_type].encoder) + tmp = convert_routine[spec->html_spec_type].encoder(r, + *src, + (apr_size_t *)len); + if (convert_routine[spec->html_spec_type].emoji_only_converter) { + dst = convert_routine[spec->html_spec_type].emoji_only_converter(r,spec, tmp,*len); + if (dst != NULL) { + *len = strlen(dst); + } + else { + dst = apr_palloc(r->pool, 1); + *dst = 0; + *len = 0; + } + } + } else { tmp = NULL; if (convert_routine[spec->html_spec_type].encoder) @@ -1728,8 +1752,9 @@ chxj_insert_filter(request_rec *r) ctx->buffer = apr_palloc(ctx->pool, 1); ctx->buffer[0] = 0; - if (dconf->image != CHXJ_IMG_ON && (!entryp || (!(entryp->action & CONVRULE_ENGINE_ON_BIT) && !(entryp->action & CONVRULE_COOKIE_ONLY_BIT)))) { - DBG(r,"REQ[%X] EngineOff and ChxjImageEngine Off", TO_ADDR(r)); + if (dconf->image != CHXJ_IMG_ON + && (!entryp || (!(entryp->action & CONVRULE_ENGINE_ON_BIT) && !(entryp->action & CONVRULE_COOKIE_ONLY_BIT) && !(entryp->action & CONVRULE_EMOJI_ONLY_BIT)))) { + DBG(r,"REQ[%X] EngineOff and ChxjImageEngine Off and No EmojiOnly", TO_ADDR(r)); DBG(r,"REQ[%X] end %s()", TO_ADDR(r),__func__); return; } -- 2.11.0