… | |
… | |
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 */ |
102 | psiconv_bool_false, /* bold */ |
102 | psiconv_bool_false, /* bold */ |
103 | psiconv_normalscript, /* super_sub */ |
103 | psiconv_normalscript, /* super_sub */ |
104 | psiconv_bool_false, /* underline */ |
104 | psiconv_bool_false, /* underline */ |
105 | psiconv_bool_false, /* strike_out */ |
105 | psiconv_bool_false, /* strikethrough */ |
106 | NULL, /* font */ |
106 | NULL, /* font */ |
107 | }; |
107 | }; |
108 | base_char_struct.color = color; |
108 | base_char_struct.color = color; |
109 | base_char_struct.back_color = back_color; |
109 | base_char_struct.back_color = back_color; |
110 | base_char_struct.font = font; |
110 | base_char_struct.font = font; |
… | |
… | |
131 | fputs("</I>",of); |
131 | fputs("</I>",of); |
132 | if (old->bold) |
132 | if (old->bold) |
133 | fputs("</B>",of); |
133 | fputs("</B>",of); |
134 | if (old->underline) |
134 | if (old->underline) |
135 | fputs("</U>",of); |
135 | fputs("</U>",of); |
136 | if (old->strike_out) |
136 | if (old->strikethrough) |
137 | fputs("</STRIKE>",of); |
137 | fputs("</STRIKE>",of); |
138 | if (old->super_sub == psiconv_superscript) |
138 | if (old->super_sub == psiconv_superscript) |
139 | fputs("</SUP>",of); |
139 | fputs("</SUP>",of); |
140 | if (old->super_sub == psiconv_subscript) |
140 | if (old->super_sub == psiconv_subscript) |
141 | fputs("</SUB>",of); |
141 | fputs("</SUB>",of); |
… | |
… | |
158 | fputs("6",of); |
158 | fputs("6",of); |
159 | else |
159 | else |
160 | fputs("7",of); |
160 | fputs("7",of); |
161 | fprintf(of," COLOR=#%02x%02x%02x",new->color->red,new->color->green, |
161 | fprintf(of," COLOR=#%02x%02x%02x",new->color->red,new->color->green, |
162 | new->color->blue); |
162 | new->color->blue); |
163 | if (new->font->screenfont == 1) |
163 | if (new->font->screenfont == psiconv_font_sansserif) |
164 | fprintf(of," FACE=\"%s, Sans-Serif\">",new->font->name); |
164 | fprintf(of," FACE=\"%s, Sans-Serif\">",new->font->name); |
165 | else if (new->font->screenfont == 2) |
165 | else if (new->font->screenfont == psiconv_font_nonprop) |
166 | fprintf(of," FACE=\"%s, Monospace\">",new->font-> name); |
166 | fprintf(of," FACE=\"%s, Monospace\">",new->font-> name); |
167 | else if (new->font->screenfont == 3) |
167 | else if (new->font->screenfont == psiconv_font_serif) |
168 | fprintf(of," FACE=\"%s, Serif\">",new->font-> name); |
168 | fprintf(of," FACE=\"%s, Serif\">",new->font-> name); |
169 | else |
169 | else |
170 | fprintf(of," FACE=\"%s, Serif\">",new->font-> name); |
170 | fprintf(of," FACE=\"%s, Serif\">",new->font-> name); |
171 | } |
171 | } |
172 | if (new->italic) |
172 | if (new->italic) |
173 | fputs("<I>",of); |
173 | fputs("<I>",of); |
174 | if (new->bold) |
174 | if (new->bold) |
175 | fputs("<B>",of); |
175 | fputs("<B>",of); |
176 | if (new->underline) |
176 | if (new->underline) |
177 | fputs("<U>",of); |
177 | fputs("<U>",of); |
178 | if (new->strike_out) |
178 | if (new->strikethrough) |
179 | fputs("<STRIKE>",of); |
179 | fputs("<STRIKE>",of); |
180 | if (new->super_sub == psiconv_superscript) |
180 | if (new->super_sub == psiconv_superscript) |
181 | fputs("<SUP>",of); |
181 | fputs("<SUP>",of); |
182 | if (new->super_sub == psiconv_subscript) |
182 | if (new->super_sub == psiconv_subscript) |
183 | fputs("<SUB>",of); |
183 | fputs("<SUB>",of); |
… | |
… | |
198 | if (old->underline) |
198 | if (old->underline) |
199 | fputs("</U>",of); |
199 | fputs("</U>",of); |
200 | else |
200 | else |
201 | fputs("<U>",of); |
201 | fputs("<U>",of); |
202 | } |
202 | } |
203 | if (old->strike_out != new->strike_out) { |
203 | if (old->strikethrough != new->strikethrough) { |
204 | if (old->strike_out) |
204 | if (old->strikethrough) |
205 | fputs("</STRIKE>",of); |
205 | fputs("</STRIKE>",of); |
206 | else |
206 | else |
207 | fputs("<STRIKE>",of); |
207 | fputs("<STRIKE>",of); |
208 | } |
208 | } |
209 | if (old->super_sub != new->super_sub) { |
209 | if (old->super_sub != new->super_sub) { |
… | |
… | |
353 | } |
353 | } |
354 | fputs("</BODY>\n</HTML>\n",of); |
354 | fputs("</BODY>\n</HTML>\n",of); |
355 | psiconv_free_character_layout(base_char); |
355 | psiconv_free_character_layout(base_char); |
356 | } |
356 | } |
357 | |
357 | |
358 | static struct psiconv_fileformat ff = |
358 | static struct psiconv_fileformat_s ff = |
359 | { |
359 | { |
360 | "HTML3", |
360 | "HTML3", |
361 | "HTML 3.2, not verified so probably not completely compliant", |
361 | "HTML 3.2, not verified so probably not completely compliant", |
362 | &psiconv_gen_html |
362 | &psiconv_gen_html |
363 | }; |
363 | }; |