#include "mod_chxj.h"
-extern chxjconvrule_entry* chxj_apply_convrule(
- request_rec* r,
- apr_array_header_t* convrules);
+extern chxjconvrule_entry* chxj_apply_convrule(request_rec *r, apr_array_header_t *convrules);
#endif
/*
#include "chxj_qr_code.h"
-extern int chxj_calc_ecc(
- qr_code_t* qrcode,
- unsigned char* indata,
- unsigned char* dst);
+extern int chxj_calc_ecc(qr_code_t *qrcode, unsigned char *indata, unsigned char *dst);
#endif
/*
typedef struct ctml10_t chtml10_t;
struct ctml10_t {
- Doc* doc;
- char* out;
- int out_len;
- int pre_flag;
- int textarea_flag;
+ Doc *doc;
+ char *out;
+ int out_len;
+ int pre_flag;
+ int textarea_flag;
- device_table* spec;
- mod_chxj_config* conf;
- chxjconvrule_entry* entryp;
- cookie_t* cookie;
+ device_table *spec;
+ mod_chxj_config *conf;
+ chxjconvrule_entry *entryp;
+ cookie_t *cookie;
};
/*----------------------------------------------------------------------------*/
/* Prototype */
/*----------------------------------------------------------------------------*/
-extern char* chxj_convert_chtml10(
- request_rec* r,
- device_table* spec,
- const char* src,
- apr_size_t srclen,
- apr_size_t* dstlen,
- chxjconvrule_entry* entryp,
- cookie_t* cookie);
+extern char *chxj_convert_chtml10(
+ request_rec *r,
+ device_table *spec,
+ const char *src,
+ apr_size_t srclen,
+ apr_size_t *dstlen,
+ chxjconvrule_entry *entryp,
+ cookie_t *cookie);
#endif
typedef struct ctml20_t chtml20_t;
struct ctml20_t {
- Doc* doc;
- char* out;
+ Doc *doc;
+ char *out;
int out_len;
int pre_flag;
int textarea_flag;
- device_table* spec;
- mod_chxj_config* conf;
- chxjconvrule_entry* entryp;
- cookie_t* cookie;
+ device_table *spec;
+ mod_chxj_config *conf;
+ chxjconvrule_entry *entryp;
+ cookie_t *cookie;
};
/*----------------------------------------------------------------------------*/
/* Prototype */
/*----------------------------------------------------------------------------*/
extern char* chxj_convert_chtml20(
- request_rec* r,
- device_table* spec,
- const char* src,
+ request_rec *r,
+ device_table *spec,
+ const char *src,
apr_size_t srclen,
- apr_size_t* dstlen,
- chxjconvrule_entry* entryp,
- cookie_t* cookie);
+ apr_size_t *dstlen,
+ chxjconvrule_entry *entryp,
+ cookie_t *cookie);
#endif
typedef struct chtml30_t chtml30_t;
struct chtml30_t {
- Doc* doc;
- char* out;
+ Doc *doc;
+ char *out;
int out_len;
int pre_flag;
int textarea_flag;
- device_table* spec;
- mod_chxj_config* conf;
- chxjconvrule_entry* entryp;
- cookie_t* cookie;
+ device_table *spec;
+ mod_chxj_config *conf;
+ chxjconvrule_entry *entryp;
+ cookie_t *cookie;
};
/*----------------------------------------------------------------------------*/
/* Prototype */
/*----------------------------------------------------------------------------*/
extern char* chxj_convert_chtml30(
- request_rec* r,
- device_table* spec,
- const char* src,
+ request_rec *r,
+ device_table *spec,
+ const char *src,
apr_size_t srclen,
- apr_size_t* dstlen,
- chxjconvrule_entry* entryp,
- cookie_t* cookie);
+ apr_size_t *dstlen,
+ chxjconvrule_entry *entryp,
+ cookie_t *cookie);
#endif
struct cookie_t {
- char* cookie_id;
- apr_array_header_t* cookie_headers;
+ char *cookie_id;
+ apr_array_header_t *cookie_headers;
};
-extern cookie_t* chxj_save_cookie(
- request_rec* r);
-
-extern char* chxj_add_cookie_parameter(
- request_rec* r,
- char* value,
- cookie_t* cookie);
-
-extern int chxj_cookie_check_host(
- request_rec* r,
- char* value);
-
-extern cookie_t* chxj_load_cookie(
- request_rec* r,
- char* cookie_id);
-
-extern apr_file_t* chxj_cookie_db_lock(
- request_rec* r);
-
-extern void chxj_cookie_db_unlock(
- request_rec* r,
- apr_file_t* file);
+extern cookie_t *chxj_save_cookie(request_rec *r);
+extern char *chxj_add_cookie_parameter(request_rec *r, char *value, cookie_t *cookie);
+extern int chxj_cookie_check_host(request_rec *r, char *value);
+extern cookie_t *chxj_load_cookie(request_rec *r, char *cookie_id);
+extern apr_file_t *chxj_cookie_db_lock(request_rec *r);
+extern void chxj_cookie_db_unlock(request_rec *r, apr_file_t *file);
extern void chxj_delete_cookie(request_rec *r, const char *cookie_id);
-
-extern char* chxj_cookie_db_name_create(
- request_rec* r,
- const char* dir);
-
-extern char* chxj_cookie_db_lock_name_create(
- request_rec* r,
- const char* dir);
-
-extern char* chxj_cookie_expire_db_lock_name_create(
- request_rec* r,
- const char* dir);
-
-extern char* chxj_cookie_expire_db_name_create(
- request_rec* r,
- const char* dir);
-
-extern apr_file_t* chxj_cookie_expire_db_lock(
- request_rec* r);
-
-extern void chxj_cookie_expire_db_unlock(
- request_rec* r,
- apr_file_t* file);
-
-extern void chxj_save_cookie_expire(
- request_rec* r,
- cookie_t* cookie);
-
-extern void chxj_delete_cookie_expire(
- request_rec* r,
- char* cookie_id);
-
-extern void chxj_cookie_expire_gc(
- request_rec* r);
-
-extern cookie_t* chxj_update_cookie(
- request_rec* r,
- cookie_t* old_cookie);
-
+extern char *chxj_cookie_db_name_create(request_rec *r, const char *dir);
+extern char *chxj_cookie_db_lock_name_create(request_rec *r, const char *dir);
+extern char *chxj_cookie_expire_db_lock_name_create(request_rec *r, const char *dir);
+extern char *chxj_cookie_expire_db_name_create(request_rec *r, const char *dir);
+extern apr_file_t *chxj_cookie_expire_db_lock(request_rec *r);
+extern void chxj_cookie_expire_db_unlock(request_rec *r, apr_file_t *file);
+extern void chxj_save_cookie_expire(request_rec *r, cookie_t *cookie);
+extern void chxj_delete_cookie_expire(request_rec *r, char *cookie_id);
+extern void chxj_cookie_expire_gc(request_rec *r);
+extern cookie_t *chxj_update_cookie(request_rec *r, cookie_t *old_cookie);
extern apr_time_t chxj_parse_cookie_expires(const char *s);
#endif
/*
#define __CHXJ_DUMP_H__
extern void chxj_dump_out(
- const char* title,
- const char* s,
- int slen);
+ const char *title,
+ const char *s,
+ int slen);
#endif
/*----------------------------------------------------------------------------*/
/* Prototype */
/*----------------------------------------------------------------------------*/
-extern char* chxj_encoding(
- request_rec* r,
- const char* src,
- apr_size_t* len);
-
-extern char* chxj_rencoding(
- request_rec* r,
- const char* src,
- apr_size_t* len);
-
-extern char* chxj_encoding_parameter(
- request_rec* r,
- const char* value);
+extern char *chxj_encoding(
+ request_rec *r,
+ const char *src,
+ apr_size_t *len);
+
+extern char *chxj_rencoding(
+ request_rec *r,
+ const char *src,
+ apr_size_t *len);
+
+extern char *chxj_encoding_parameter(
+ request_rec *r,
+ const char *value);
extern char *
chxj_encoding_by_spec(
typedef struct hdml_t hdml_t;
struct hdml_t {
- Doc* doc;
- char* out;
+ Doc *doc;
+ char *out;
int center;
int in_center;
- char* card;
+ char *card;
int card_cnt;
apr_time_t form_cnt;
int pure_form_cnt;
int var_cnt[MAX_FORM_COUNT];
- char* postdata[MAX_FORM_COUNT];
+ char *postdata[MAX_FORM_COUNT];
/*------------------------------*/
/* max <input type="radio"> tag */
/*------------------------------*/
- char* radio_value_list[MAX_RADIO_COUNT][MAX_RADIO_VALUE_COUNT];
- char* radio_name_list[MAX_RADIO_COUNT];
+ char *radio_value_list[MAX_RADIO_COUNT][MAX_RADIO_VALUE_COUNT];
+ char *radio_name_list[MAX_RADIO_COUNT];
int radio_out_cnt[MAX_RADIO_COUNT];
- char* radio_checked_value[MAX_RADIO_COUNT];
+ char *radio_checked_value[MAX_RADIO_COUNT];
/*---------------------------------*/
/* for <input type="submit"> tag */
/*---------------------------------*/
- char* submit_button[MAX_SUBMIT_BUTTON_COUNT];
+ char *submit_button[MAX_SUBMIT_BUTTON_COUNT];
/*---------------------------------*/
/* for <input type="checkbox"> tag */
/*---------------------------------*/
int has_checkbox;
- char* form_tmp;
- char* init_vars;
+ char *form_tmp;
+ char *init_vars;
int out_len;
int card_len;
int hdml_end_flag;
- device_table* spec;
+ device_table *spec;
- mod_chxj_config* conf;
+ mod_chxj_config *conf;
- chxjconvrule_entry* entryp;
- cookie_t* cookie;
+ chxjconvrule_entry *entryp;
+ cookie_t *cookie;
};
/*============================================================================*/
/* Prototype declaration. */
/*============================================================================*/
-extern char* chxj_convert_hdml(
- request_rec* r,
- device_table* spec,
- const char* src,
+extern char *chxj_convert_hdml(
+ request_rec *r,
+ device_table *spec,
+ const char *src,
apr_size_t srclen,
- apr_size_t* dstlen,
- chxjconvrule_entry* entryp,
- cookie_t* cookie);
-
-extern char* qs_out_apr_pstrcat(
- request_rec* r,
- char* o,
- char* s,
- int* len);
-
-extern char* qs_conv_istyle_to_format(
- request_rec* r,
- char* is);
+ apr_size_t *dstlen,
+ chxjconvrule_entry *entryp,
+ cookie_t *cookie);
+
+extern char *qs_out_apr_pstrcat(
+ request_rec *r,
+ char *o,
+ char *s,
+ int *len);
+
+extern char *qs_conv_istyle_to_format(
+ request_rec *r,
+ char *is);
#endif
#include "mod_chxj.h"
-extern char* chxj_img_conv(
- request_rec* r,
- device_table* spec,
- const char* s);
+extern char *chxj_img_conv(
+ request_rec *r,
+ device_table *spec,
+ const char *s);
#endif
extern int chxj_img_conv_format_handler(
- request_rec* r);
+ request_rec *r);
-extern char* chxj_convert_image(
- request_rec* r,
- const char** src,
- apr_size_t* len);
+extern char *chxj_convert_image(
+ request_rec *r,
+ const char **src,
+ apr_size_t *len);
extern int chxj_trans_name(
- request_rec* r);
+ request_rec *r);
/* micro second */
typedef struct jhtml_t jhtml_t;
struct jhtml_t {
- Doc* doc;
- char* out;
- int out_len;
- int pre_flag;
- int textarea_flag;
+ Doc *doc;
+ char *out;
+ int out_len;
+ int pre_flag;
+ int textarea_flag;
- device_table* spec;
- mod_chxj_config* conf;
- chxjconvrule_entry* entryp;
- cookie_t* cookie;
+ device_table *spec;
+ mod_chxj_config *conf;
+ chxjconvrule_entry *entryp;
+ cookie_t *cookie;
};
/*----------------------------------------------------------------------------*/
/* Prototype */
/*----------------------------------------------------------------------------*/
-extern char* chxj_convert_jhtml(
- request_rec* r,
- device_table* spec,
- const char* src,
- apr_size_t srclen,
- apr_size_t* dstlen,
- chxjconvrule_entry* entryp,
- cookie_t* cookie);
+extern char *chxj_convert_jhtml(
+ request_rec *r,
+ device_table *spec,
+ const char *src,
+ apr_size_t srclen,
+ apr_size_t *dstlen,
+ chxjconvrule_entry *entryp,
+ cookie_t *cookie);
#endif
#include "mod_chxj.h"
extern void chxj_load_device_data(
- Doc* doc,
- apr_pool_t* p,
- mod_chxj_config* conf);
+ Doc *doc,
+ apr_pool_t *p,
+ mod_chxj_config *conf);
#endif
#define ESCAPE_CHAR_GT ">"
-extern char* chxj_load_emoji_data(
- Doc* doc,
- apr_pool_t* p,
- mod_chxj_config* conf);
+extern char *chxj_load_emoji_data(
+ Doc *doc,
+ apr_pool_t *p,
+ mod_chxj_config *conf);
#endif
} qr_level_t;
/*----------------------------------------------------------------------------*/
-/* ¥â¡¼¥É */
/*----------------------------------------------------------------------------*/
typedef enum _qr_mode_t {
QR_NUM_MODE = 0,
qr_ver_t version;
qr_level_t level;
qr_mode_t mode;
- request_rec* r;
- Doc* doc;
+ request_rec *r;
+ Doc *doc;
int size;
- char* indata;
+ char *indata;
};
-extern int chxj_qr_code_handler(
- request_rec* r);
+extern int chxj_qr_code_handler(request_rec *r);
extern int chxj_qrcode_create_image_data(
- qr_code_t* qrcode,
- char** img,
- size_t* img_len);
+ qr_code_t *qrcode,
+ char **img,
+ size_t *img_len);
extern void chxj_qrcode_node_to_qrcode(
- qr_code_t* qrcode,
- Node* root);
+ qr_code_t *qrcode,
+ Node *root);
-extern char* chxj_qr_code_blob_handler(
- request_rec* r,
- const char* indata,
- size_t* len);
+extern char *chxj_qr_code_blob_handler(
+ request_rec *r,
+ const char *indata,
+ size_t *len);
#endif
typedef struct device_table_t device_table;
struct device_table_t {
- struct device_table_t* next;
- const char* device_id;
- const char* device_name;
- spec_type html_spec_type;
- int width;
- int heigh;
+ struct device_table_t *next;
+ const char *device_id;
+ const char *device_name;
+ spec_type html_spec_type;
+ int width;
+ int heigh;
/*--------------------------------------------------------------------------*/
/* Walll Paper Size */
/*--------------------------------------------------------------------------*/
- int wp_width;
- int wp_heigh;
+ int wp_width;
+ int wp_heigh;
/*--------------------------------------------------------------------------*/
/* Cache Size */
/*--------------------------------------------------------------------------*/
- int cache;
+ int cache;
/*--------------------------------------------------------------------------*/
/* Correspondence image format */
/* 1: It is possible to display it. */
/* 0: It is not possible to display it. */
/*--------------------------------------------------------------------------*/
- int available_gif;
- int available_jpeg;
- int available_png;
- int available_bmp2;
- int available_bmp4;
+ int available_gif;
+ int available_jpeg;
+ int available_png;
+ int available_bmp2;
+ int available_bmp4;
/*--------------------------------------------------------------------------*/
/* Resolution */
/*--------------------------------------------------------------------------*/
- int dpi_width;
- int dpi_heigh;
+ int dpi_width;
+ int dpi_heigh;
/*--------------------------------------------------------------------------*/
/* Color number type */
/* 2 : 2 Colors */
/* 262144 : 262144 Colors */
/* 15680000: 15680000 over colors */
/*--------------------------------------------------------------------------*/
- int color;
- char *emoji_type;
- char *charset;
+ int color;
+ char *emoji_type;
+ char *charset;
};
#define GET_EMOJI_TYPE(spec) ((spec)->emoji_type)
typedef struct device_table_list_t device_table_list;
struct device_table_list_t {
- struct device_table_list_t* next;
+ struct device_table_list_t *next;
- char* pattern;
- ap_regex_t* regexp;
- device_table* table;
- device_table* tail;
+ char *pattern;
+ ap_regex_t *regexp;
+ device_table *table;
+ device_table *tail;
};
typedef struct converter_t converter_t;
struct converter_t {
/* convert routine */
- char* (*converter)(request_rec* r,
- struct device_table_t* spec,
- const char* src,
+ char *(*converter)(request_rec *r,
+ struct device_table_t *spec,
+ const char *src,
apr_size_t srclen,
- apr_size_t* dstlen,
- struct chxjconvrule_entry* entryp,
- cookie_t* cookie);
+ apr_size_t *dstlen,
+ struct chxjconvrule_entry *entryp,
+ cookie_t *cookie);
- char* (*encoder)(request_rec* r,
- const char* src,
- apr_size_t* len);
+ char *(*encoder)(request_rec *r,
+ const char *src,
+ apr_size_t *len);
};
extern converter_t convert_routine[];
-extern device_table* chxj_specified_device(
- request_rec* r,
- const char* user_agent);
+extern device_table *chxj_specified_device(
+ request_rec *r,
+ const char *user_agent);
#endif
#include <apr_pools.h>
extern int chxj_chk_numeric(
- const char* s);
+ const char *s);
extern int chxj_atoi(
- const char* s);
+ const char *s);
extern int chxj_strcasenrcmp(apr_pool_t *p, const char *s1, const char *s2, int n);
extern int chxj_starts_with(const char *str, const char *word);
/*----------------------------------------------------------------------------*/
/* prototype declare */
/*----------------------------------------------------------------------------*/
-extern char* qs_get_value_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_checked_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_type_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_name_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_istyle_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_maxlength_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_size_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_accesskey_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
+extern char *qs_get_value_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_checked_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_type_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_name_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_istyle_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_maxlength_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_size_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_accesskey_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
extern int qs_is_checked_checkbox_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
extern char* qs_get_selected_value_text(
- Doc* doc,
- Node* node,
- request_rec* r);
+ Doc *doc,
+ Node *node,
+ request_rec *r);
-extern char* qs_get_selected_value(
- Doc* doc,
- Node* node,
- request_rec* r);
+extern char *qs_get_selected_value(
+ Doc *doc,
+ Node *node,
+ request_rec *r);
-extern char* qs_alloc_zero_byte_string(
- request_rec* r);
+extern char *qs_alloc_zero_byte_string(
+ request_rec *r);
-extern char* qs_trim_string(
- apr_pool_t* p,
- char* s);
+extern char *qs_trim_string(
+ apr_pool_t *p,
+ char *s);
extern int chxj_chxjif_is_mine(
- device_table* spec,
- Doc* doc,
- Node* tag);
-
-extern char* qs_get_destlang_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
-
-extern char* qs_get_parse_attr(
- Doc* doc,
- Node* tag,
- request_rec* r);
+ device_table *spec,
+ Doc *doc,
+ Node *tag);
+
+extern char *qs_get_destlang_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
+
+extern char *qs_get_parse_attr(
+ Doc *doc,
+ Node *tag,
+ request_rec *r);
#endif
/*
#include "chxj_qr_code.h"
#include "chxj_cookie.h"
#include "chxj_encoding.h"
+#include "chxj_buffered_write.h"
+
+#define BUFFERED 1
#define GET_CHTML10(X) ((chtml10_t *)(X))
+#define W_L(X) do { chtml10->out = BUFFERED_WRITE_LITERAL(chtml10->out, &doc->buf, (X)); } while(0)
+#define W_V(X) do { chtml10->out = (X) ? BUFFERED_WRITE_VALUE(chtml10->out, &doc->buf, (X)) \
+ : BUFFERED_WRITE_LITERAL(chtml10->out, &doc->buf, ""); } while(0)
static char *s_chtml10_start_html_tag (void *pdoc, Node *node);
static char *s_chtml10_end_html_tag (void *pdoc, Node *node);