--- psiconv/trunk/program/psiconv/gen_xhtml.c 2004/01/28 20:18:54 191 +++ psiconv/trunk/program/psiconv/gen_xhtml.c 2004/02/02 20:43:04 192 @@ -31,6 +31,51 @@ #define TEMPSTR_LEN 100 +static void text(const psiconv_config config,psiconv_list list, + psiconv_string_t data,const encoding enc); +static void color(const psiconv_config config, psiconv_list list, + psiconv_color color,int may_be_transparant, const encoding enc); +static void border(const psiconv_config config, psiconv_list list, + psiconv_border_kind_t border,const encoding enc); +static void style_name(const psiconv_config config, psiconv_list list, + const psiconv_string_t name,const encoding enc); +static void character_layout_diffs(const psiconv_config config, + psiconv_list list, + const psiconv_character_layout new, + const psiconv_character_layout base, + const encoding enc); +static void paragraph_layout_diffs(const psiconv_config config, + psiconv_list list, + const psiconv_paragraph_layout new, + const psiconv_paragraph_layout base, + const encoding enc); +static void style(const psiconv_config config, psiconv_list list, + const psiconv_word_style style, + const psiconv_paragraph_layout base_para, + const psiconv_character_layout base_char, + const encoding enc); +static void styles(const psiconv_config config, psiconv_list list, + const psiconv_word_styles_section styles_sec,const encoding enc); +static void header(const psiconv_config config, psiconv_list list, + const psiconv_word_styles_section styles_sec,const encoding enc); +static void footer(const psiconv_config config, psiconv_list list, + const encoding enc); +static void characters(const psiconv_config config, psiconv_list list, + const psiconv_string_t textstr, + const psiconv_character_layout layout, + const psiconv_character_layout base, + const encoding enc); +static void paragraph(const psiconv_config config, psiconv_list list, + const psiconv_paragraph para, + const psiconv_word_styles_section styles_sec, + const encoding enc); +static void gen_word(const psiconv_config config, psiconv_list list, + const psiconv_word_f file, const encoding enc); +static void gen_texted(const psiconv_config config, psiconv_list list, + const psiconv_texted_f file, const encoding enc); + + + void text(const psiconv_config config,psiconv_list list, psiconv_string_t data,const encoding enc) { @@ -551,7 +596,7 @@ } } output_simple_chars(config, list, - para->base_paragraph->bullet->on?"\n":"

\n", + para->base_paragraph->bullet->on?"\n":"

\n", enc); if (!styles_sec) { psiconv_free_paragraph_layout(base_para); @@ -576,7 +621,7 @@ } } -void gen_html_word(const psiconv_config config, psiconv_list list, +void gen_word(const psiconv_config config, psiconv_list list, const psiconv_word_f file, const encoding enc) { if (!file) @@ -588,7 +633,7 @@ } -void gen_html_texted(const psiconv_config config, psiconv_list list, +void gen_texted(const psiconv_config config, psiconv_list list, const psiconv_texted_f file, const encoding enc) { header(config,list,NULL,enc); @@ -596,20 +641,23 @@ footer(config,list,enc); } -int gen_html(const psiconv_config config, psiconv_list list, +int gen_xhtml(const psiconv_config config, psiconv_list list, const psiconv_file file, const char *dest, const encoding enc) { + encoding enc1 = enc; + if (enc == ENCODING_PSION) { fputs("Unsupported encoding\n",stderr); return -1; - } + } else if (enc == ENCODING_ASCII) + enc1 = ENCODING_ASCII_HTML; if (file->type == psiconv_word_file) { - gen_html_word(config,list,(psiconv_word_f) file->file,enc); + gen_word(config,list,(psiconv_word_f) file->file,enc1); return 0; } else if (file->type == psiconv_texted_file) { - gen_html_texted(config,list,(psiconv_texted_f) file->file,enc); + gen_texted(config,list,(psiconv_texted_f) file->file,enc1); return 0; } else return -1; @@ -621,17 +669,19 @@ { "XHTML", "XHTML 1.0 Strict, using CSS for formatting", - gen_html + FORMAT_WORD | FORMAT_TEXTED, + gen_xhtml }, { NULL, NULL, + 0, NULL } }; -void init_html(void) +void init_xhtml(void) { int i; for (i = 0; ffs[i].name; i++)