… | |
… | |
22 | #include <string.h> |
22 | #include <string.h> |
23 | #include <stdlib.h> |
23 | #include <stdlib.h> |
24 | #include "data.h" |
24 | #include "data.h" |
25 | #include "list.h" |
25 | #include "list.h" |
26 | #include "gen.h" |
26 | #include "gen.h" |
|
|
27 | #include "psiconv.h" |
27 | |
28 | |
28 | /* This determines for each character how it is displayed */ |
29 | /* This determines for each character how it is displayed */ |
29 | static const char *char_table[0x100] = |
30 | static const char *char_table[0x100] = |
30 | { |
31 | { |
31 | /* 0x00 */ "" ,"" ,"" ,"" ,"" ,"" ,"<P> ","<BR>" , |
32 | /* 0x00 */ "" ,"" ,"" ,"" ,"" ,"" ,"<P> ","<BR>" , |
… | |
… | |
90 | This one is specific for the base point of HTML */ |
91 | This one is specific for the base point of HTML */ |
91 | psiconv_character_layout gen_base_char(const psiconv_font font, |
92 | psiconv_character_layout gen_base_char(const psiconv_font font, |
92 | const psiconv_color color, |
93 | const psiconv_color color, |
93 | const psiconv_color back_color) |
94 | const psiconv_color back_color) |
94 | { |
95 | { |
95 | struct psiconv_character_layout base_char_struct = |
96 | struct psiconv_character_layout_s base_char_struct = |
96 | { |
97 | { |
97 | color, /* color */ |
98 | NULL, /* color */ |
98 | back_color, /* back_color */ |
99 | NULL, /* back_color */ |
99 | 13.0, /* font_size */ |
100 | 13.0, /* font_size */ |
100 | psiconv_bool_false, /* italic */ |
101 | psiconv_bool_false, /* italic */ |
101 | psiconv_bool_false, /* bold */ |
102 | psiconv_bool_false, /* bold */ |
102 | psiconv_normalscript, /* super_sub */ |
103 | psiconv_normalscript, /* super_sub */ |
103 | psiconv_bool_false, /* underline */ |
104 | psiconv_bool_false, /* underline */ |
104 | psiconv_bool_false, /* strike_out */ |
105 | psiconv_bool_false, /* strike_out */ |
105 | font, /* font */ |
106 | NULL, /* font */ |
106 | }; |
107 | }; |
|
|
108 | base_char_struct.color = color; |
|
|
109 | base_char_struct.back_color = back_color; |
|
|
110 | base_char_struct.font = font; |
107 | return psiconv_clone_character_layout(&base_char_struct); |
111 | return psiconv_clone_character_layout(&base_char_struct); |
108 | } |
112 | } |
109 | |
113 | |
110 | /* flags & 1: 0 if no <FONT> was yet generated. |
114 | /* flags & 1: 0 if no <FONT> was yet generated. |
111 | flags & 2: 1 if at end-of-paragraph |
115 | flags & 2: 1 if at end-of-paragraph |
… | |
… | |
273 | fputs("</UL>",of); |
277 | fputs("</UL>",of); |
274 | |
278 | |
275 | fputs("</P>\n",of); |
279 | fputs("</P>\n",of); |
276 | } |
280 | } |
277 | |
281 | |
278 | void psiconv_gen_html(FILE *of,psiconv_file file) |
282 | int psiconv_gen_html(const char * filename,const psiconv_file file, |
|
|
283 | const char *dest) |
279 | { |
284 | { |
|
|
285 | FILE *of = fopen(filename,"w"); |
|
|
286 | if (! of) |
|
|
287 | return -1; |
|
|
288 | |
280 | if (file->type == psiconv_word_file) |
289 | if (file->type == psiconv_word_file) { |
281 | psiconv_gen_html_word(of,(psiconv_word_f) file->file); |
290 | psiconv_gen_html_word(of,(psiconv_word_f) file->file); |
282 | else if (file->type == psiconv_texted_file) |
291 | } else if (file->type == psiconv_texted_file) { |
283 | psiconv_gen_html_texted(of,(psiconv_texted_f) file->file); |
292 | psiconv_gen_html_texted(of,(psiconv_texted_f) file->file); |
284 | else |
293 | } else { |
|
|
294 | fclose(of); |
285 | return; |
295 | return -1; |
|
|
296 | } |
|
|
297 | return fclose(of); |
286 | } |
298 | } |
287 | |
299 | |
288 | void psiconv_gen_html_texted(FILE *of,psiconv_texted_f tf) |
300 | void psiconv_gen_html_texted(FILE *of,psiconv_texted_f tf) |
289 | { |
301 | { |
290 | psiconv_character_layout base_char; |
302 | psiconv_character_layout base_char; |
… | |
… | |
341 | } |
353 | } |
342 | fputs("</BODY>\n</HTML>\n",of); |
354 | fputs("</BODY>\n</HTML>\n",of); |
343 | psiconv_free_character_layout(base_char); |
355 | psiconv_free_character_layout(base_char); |
344 | } |
356 | } |
345 | |
357 | |
|
|
358 | static struct psiconv_fileformat_s ff = |
|
|
359 | { |
|
|
360 | "HTML3", |
|
|
361 | "HTML 3.2, not verified so probably not completely compliant", |
|
|
362 | &psiconv_gen_html |
|
|
363 | }; |
346 | |
364 | |
|
|
365 | void init_html(void) |
|
|
366 | { |
|
|
367 | psiconv_list_add(fileformat_list,&ff); |
|
|
368 | } |