#ifndef _HTML2HDML_H #define _HTML2HDML_H #ifdef ZODIAX #define CONVERT_A_HREF_HTML2HDML 0 #define CONVERT_IMG 1 #define CONVERT_IMG_GIF2BMP 1 #endif /* ZODIAX */ /* CONVERT_A_HREF_HTML2HDML: If defined, convert '.html' into '.hdml' in */ #ifndef CONVERT_A_HREF_HTML2HDML #define CONVERT_A_HREF_HTML2HDML 1 #endif #ifdef MOD_HTML2HDML #include "httpd.h" /* #include "alloc.h" */ extern struct pool *gl_pool; /* #define my_strdup(str) ap_pstrdup(gl_pool, str) #define my_malloc(size) ap_pcalloc(gl_pool, size) #define my_calloc(nelem, size) ap_pcalloc(gl_pool, nelem*size) #define my_free(str) */ #define my_strdup(str) strdup(str) #define my_malloc(size) malloc(size) #define my_calloc(nelem, size) calloc(nelem, size) #define my_free(str) free(str) #else #define my_strdup(str) strdup(str) #define my_malloc(size) malloc(size) #define my_calloc(nelem, size) calloc(nelem, size) #define my_free(str) free(str) #endif /* CONVERT_IMG: If defined, convert elements. CONVERT_IMG_GIF2BMP: If defined, convert '.gif' into '.bmp' in */ #ifndef CONVERT_IMG #define CONVERT_IMG 1 #endif #ifndef CONVERT_IMG_ALT #define CONVERT_IMG_ALT 1 #endif #ifndef CONVERT_IMG_GIF2BMP #define CONVERT_IMG_GIF2BMP 1 #endif # ifdef _MSC_VER #define RET_STR "\n" # else #define RET_STR "\r\n" # endif /* _MSC_VER */ #define BUFFER_SIZE 4096 #ifndef strcmpi # ifdef _MSC_VER # define strcmpi _strcmpi /* Visual C++*/ # else # define strcmpi strcasecmp /* Solaris */ # endif /* _MSC_VER */ #endif #ifndef strncmpi # ifdef _MSC_VER # define strncmpi _strncmpi /* Visual C++*/ # else # define strncmpi strncasecmp /* Solaris */ # endif /* _MSC_VER */ #endif struct _hdml_piece { char *str; int including_sp_char; struct _hdml_piece *next; }; struct _hdml_block { int remove_last_amp; int dont_free; struct _hdml_block *next; struct _hdml_piece *top; struct _hdml_piece *bottom; }; struct _hdml { struct _hdml_block *all; /* top of header */ struct _hdml_block *header; /* last of header. header->next==top of body */ struct _hdml_block *body; /* last of body. body->next==top of footer */ struct _hdml_block *footer; /* last of footer. head->next==NULL */ }; typedef struct _hdml_piece HDMLpiece; typedef struct _hdml_block HDMLblock; typedef struct _hdml_block HDML; enum attrname { enum_NAME, enum_HREF, enum_ACCESSKEY, enum_CLEAR, enum_ALIGN, enum_ACTION, enum_METHOD, enum_SIZE, enum_WIDTH, enum_NOSHADE, enum_SRC, enum_HEIGHT, enum_HSPACE, enum_VSPACE, enum_ALT, enum_BORDER, enum_TYPE, enum_MAXLENGTH, enum_VALUE, enum_CHECKED, enum_START, enum_SELECTED, enum_MULTIPLE, enum_ROWS, enum_COLS, enum_ISTYLE, enum_UNKNOWNATTR, sizeof_attrname }; enum inputtype { enum_TEXT, enum_PASSWORD, enum_CHECKBOX, enum_RADIO, enum_HIDDEN, enum_SUBMIT, enum_RESET, enum_UNKNOWNTYPE }; enum hdmloutput { enum_current, enum_begin, enum_header, enum_body, enum_footer, enum_init, enum_reset, enum_submit, enum_title, enum_textarea, enum_select, enum_select_selected, }; /*** html2hdml.y ***/ extern int parse_html(void); /*** convert.c ***/ extern int init_cardnum(void); extern int add_header_and_footer(void); extern int convert_BR(char *stago, char *elemname, char **attr, char *tagc); extern int convert_HR(char *stago, char *elemname, char **attr, char *tagc); extern int convert_P(char *stago, char *elemname, char **attr, char *tagc); extern int convert_P_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_A(char *stago, char *elemname, char **attr, char *tagc); extern int convert_A_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_IMG(char *stago, char *elemname, char **attr, char *tagc); extern int convert_IMG_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_FORM(char *stago, char *elemname, char **attr, char *tagc); extern int convert_FORM_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_INPUT(char *stago, char *elemname, char **attr, char *tagc); extern int convert_SELECT(char *stago, char *elemname, char **attr, char *tagc); extern int convert_SELECT_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_OPTION(char *stago, char *elemname, char **attr, char *tagc); extern int convert_TEXTAREA(char *stago, char *elemname, char **attr, char *tagc); extern int convert_TEXTAREA_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_PRE(char *stago, char *elemname, char **attr, char *tagc); extern int convert_PRE_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_CENTER(char *stago, char *elemname, char **attr, char *tagc); extern int convert_CENTER_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_BASE(char *stago, char *elemname, char **attr, char *tagc); extern int convert_text(char *text); extern int convert_ret(void); extern int convert_spc(char *spc); extern int convert_comment(char *text); /*** list.c ***/ extern int convert_OL(char *stago, char *elemname, char **attr, char *tagc); extern int convert_OL_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_UL(char *stago, char *elemname, char **attr, char *tagc); extern int convert_UL_(char *stago, char *elemname, char **attr, char *tagc); extern int convert_LI(char *stago, char *elemname, char **attr, char *tagc); /*** hdmlstruct.c ***/ extern HDMLblock *add_piece(enum hdmloutput hdml, char *str); extern HDMLblock *add_piece_with_sp_char(enum hdmloutput hdml, char *str); /* extern HDMLblock *add_piece(HDMLblock *hdml, char *str); */ extern HDMLblock *append_block(HDMLblock *hdml, HDMLblock *block); extern int append_varlist(enum hdmloutput output, enum hdmloutput varnum, int remove_last_amp); extern int catdup_varlist(enum hdmloutput output, enum hdmloutput varnum); extern int reset_varlist(enum hdmloutput varnum); extern int is_varlist_empty(enum hdmloutput varnum); extern int init_hdmlstruct(void); extern int print_all(enum hdmloutput output); extern HDMLpiece *alloc_HDMLpiece(char *str, int sp_char); extern HDMLblock *alloc_HDMLblock(HDMLblock *src); extern void free_HDMLblock_list(enum hdmloutput output); extern int is_current_output(enum hdmloutput output); extern int set_current_output(enum hdmloutput output); extern int set_select_selected(void); /*** radionum.c ***/ extern int find_radionum(char *name); extern int add_radionum(char *name, int cardnum); extern void clear_radionum(void); extern int gl_lineno; #endif /* _HTML2HDML_H */