| … | |
… | |
| 19 | |
19 | |
| 20 | #include "config.h" |
20 | #include "config.h" |
| 21 | #include <stdio.h> |
21 | #include <stdio.h> |
| 22 | #include <string.h> |
22 | #include <string.h> |
| 23 | #include <stdlib.h> |
23 | #include <stdlib.h> |
| 24 | #include "data.h" |
24 | #include "psiconv/data.h" |
| 25 | #include "list.h" |
25 | #include "psiconv/list.h" |
| 26 | #include "gen.h" |
26 | #include "gen.h" |
| 27 | #include "psiconv.h" |
27 | #include "psiconv.h" |
| 28 | |
28 | |
| 29 | /* This determines for each character how it is displayed */ |
29 | /* This determines for each character how it is displayed */ |
| 30 | static const char *char_table[0x100] = |
30 | static const char *char_table[0x100] = |
| … | |
… | |
| 91 | This one is specific for the base point of HTML */ |
91 | This one is specific for the base point of HTML */ |
| 92 | psiconv_character_layout gen_base_char(const psiconv_font font, |
92 | psiconv_character_layout gen_base_char(const psiconv_font font, |
| 93 | const psiconv_color color, |
93 | const psiconv_color color, |
| 94 | const psiconv_color back_color) |
94 | const psiconv_color back_color) |
| 95 | { |
95 | { |
| 96 | struct psiconv_character_layout base_char_struct = |
96 | struct psiconv_character_layout_s base_char_struct = |
| 97 | { |
97 | { |
| 98 | NULL, /* color */ |
98 | NULL, /* color */ |
| 99 | NULL, /* back_color */ |
99 | NULL, /* back_color */ |
| 100 | 13.0, /* font_size */ |
100 | 13.0, /* font_size */ |
| 101 | psiconv_bool_false, /* italic */ |
101 | psiconv_bool_false, /* italic */ |
| … | |
… | |
| 277 | fputs("</UL>",of); |
277 | fputs("</UL>",of); |
| 278 | |
278 | |
| 279 | fputs("</P>\n",of); |
279 | fputs("</P>\n",of); |
| 280 | } |
280 | } |
| 281 | |
281 | |
| 282 | int psiconv_gen_html(FILE *of,const psiconv_file file, const char *dest) |
282 | int psiconv_gen_html(const char * filename,const psiconv_file file, |
|
|
283 | const char *dest) |
| 283 | { |
284 | { |
|
|
285 | FILE *of = fopen(filename,"w"); |
|
|
286 | if (! of) |
|
|
287 | return -1; |
|
|
288 | |
| 284 | if (file->type == psiconv_word_file) { |
289 | if (file->type == psiconv_word_file) { |
| 285 | psiconv_gen_html_word(of,(psiconv_word_f) file->file); |
290 | psiconv_gen_html_word(of,(psiconv_word_f) file->file); |
| 286 | return 0; |
|
|
| 287 | } else if (file->type == psiconv_texted_file) { |
291 | } else if (file->type == psiconv_texted_file) { |
| 288 | psiconv_gen_html_texted(of,(psiconv_texted_f) file->file); |
292 | psiconv_gen_html_texted(of,(psiconv_texted_f) file->file); |
| 289 | return 0; |
|
|
| 290 | } else |
293 | } else { |
|
|
294 | fclose(of); |
| 291 | return -1; |
295 | return -1; |
|
|
296 | } |
|
|
297 | return fclose(of); |
| 292 | } |
298 | } |
| 293 | |
299 | |
| 294 | void psiconv_gen_html_texted(FILE *of,psiconv_texted_f tf) |
300 | void psiconv_gen_html_texted(FILE *of,psiconv_texted_f tf) |
| 295 | { |
301 | { |
| 296 | psiconv_character_layout base_char; |
302 | psiconv_character_layout base_char; |
| … | |
… | |
| 347 | } |
353 | } |
| 348 | fputs("</BODY>\n</HTML>\n",of); |
354 | fputs("</BODY>\n</HTML>\n",of); |
| 349 | psiconv_free_character_layout(base_char); |
355 | psiconv_free_character_layout(base_char); |
| 350 | } |
356 | } |
| 351 | |
357 | |
| 352 | static struct psiconv_fileformat ff = |
358 | static struct psiconv_fileformat_s ff = |
| 353 | { |
359 | { |
| 354 | "HTML3", |
360 | "HTML3", |
| 355 | "HTML 3.2, not verified so probably not completely compliant", |
361 | "HTML 3.2, not verified so probably not completely compliant", |
| 356 | &psiconv_gen_html |
362 | &psiconv_gen_html |
| 357 | }; |
363 | }; |