/[public]/psiconv/trunk/program/psiconv/gen_html.c
ViewVC logotype

Diff of /psiconv/trunk/program/psiconv/gen_html.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 34 Revision 142
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
29#ifdef DMALLOC
30#include "dmalloc.h"
31#endif
28 32
29/* This determines for each character how it is displayed */ 33/* This determines for each character how it is displayed */
30static const char *char_table[0x100] = 34static const char *char_table[0x100] =
31{ 35{
32 /* 0x00 */ "" ,"" ,"" ,"" ,"" ,"" ,"<P> ","<BR>" , 36 /* 0x00 */ "" ,"" ,"" ,"" ,"" ,"" ,"<P> ","<BR>" ,
91 This one is specific for the base point of HTML */ 95 This one is specific for the base point of HTML */
92psiconv_character_layout gen_base_char(const psiconv_font font, 96psiconv_character_layout gen_base_char(const psiconv_font font,
93 const psiconv_color color, 97 const psiconv_color color,
94 const psiconv_color back_color) 98 const psiconv_color back_color)
95{ 99{
96 struct psiconv_character_layout base_char_struct = 100 struct psiconv_character_layout_s base_char_struct =
97 { 101 {
98 NULL, /* color */ 102 NULL, /* color */
99 NULL, /* back_color */ 103 NULL, /* back_color */
100 13.0, /* font_size */ 104 13.0, /* font_size */
101 psiconv_bool_false, /* italic */ 105 psiconv_bool_false, /* italic */
102 psiconv_bool_false, /* bold */ 106 psiconv_bool_false, /* bold */
103 psiconv_normalscript, /* super_sub */ 107 psiconv_normalscript, /* super_sub */
104 psiconv_bool_false, /* underline */ 108 psiconv_bool_false, /* underline */
105 psiconv_bool_false, /* strike_out */ 109 psiconv_bool_false, /* strikethrough */
106 NULL, /* font */ 110 NULL, /* font */
107 }; 111 };
108 base_char_struct.color = color; 112 base_char_struct.color = color;
109 base_char_struct.back_color = back_color; 113 base_char_struct.back_color = back_color;
110 base_char_struct.font = font; 114 base_char_struct.font = font;
131 fputs("</I>",of); 135 fputs("</I>",of);
132 if (old->bold) 136 if (old->bold)
133 fputs("</B>",of); 137 fputs("</B>",of);
134 if (old->underline) 138 if (old->underline)
135 fputs("</U>",of); 139 fputs("</U>",of);
136 if (old->strike_out) 140 if (old->strikethrough)
137 fputs("</STRIKE>",of); 141 fputs("</STRIKE>",of);
138 if (old->super_sub == psiconv_superscript) 142 if (old->super_sub == psiconv_superscript)
139 fputs("</SUP>",of); 143 fputs("</SUP>",of);
140 if (old->super_sub == psiconv_subscript) 144 if (old->super_sub == psiconv_subscript)
141 fputs("</SUB>",of); 145 fputs("</SUB>",of);
158 fputs("6",of); 162 fputs("6",of);
159 else 163 else
160 fputs("7",of); 164 fputs("7",of);
161 fprintf(of," COLOR=#%02x%02x%02x",new->color->red,new->color->green, 165 fprintf(of," COLOR=#%02x%02x%02x",new->color->red,new->color->green,
162 new->color->blue); 166 new->color->blue);
163 if (new->font->screenfont == 1) 167 if (new->font->screenfont == psiconv_font_sansserif)
164 fprintf(of," FACE=\"%s, Sans-Serif\">",new->font->name); 168 fprintf(of," FACE=\"%s, Sans-Serif\">",new->font->name);
165 else if (new->font->screenfont == 2) 169 else if (new->font->screenfont == psiconv_font_nonprop)
166 fprintf(of," FACE=\"%s, Monospace\">",new->font-> name); 170 fprintf(of," FACE=\"%s, Monospace\">",new->font-> name);
167 else if (new->font->screenfont == 3) 171 else if (new->font->screenfont == psiconv_font_serif)
168 fprintf(of," FACE=\"%s, Serif\">",new->font-> name); 172 fprintf(of," FACE=\"%s, Serif\">",new->font-> name);
169 else 173 else
170 fprintf(of," FACE=\"%s, Serif\">",new->font-> name); 174 fprintf(of," FACE=\"%s, Serif\">",new->font-> name);
171 } 175 }
172 if (new->italic) 176 if (new->italic)
173 fputs("<I>",of); 177 fputs("<I>",of);
174 if (new->bold) 178 if (new->bold)
175 fputs("<B>",of); 179 fputs("<B>",of);
176 if (new->underline) 180 if (new->underline)
177 fputs("<U>",of); 181 fputs("<U>",of);
178 if (new->strike_out) 182 if (new->strikethrough)
179 fputs("<STRIKE>",of); 183 fputs("<STRIKE>",of);
180 if (new->super_sub == psiconv_superscript) 184 if (new->super_sub == psiconv_superscript)
181 fputs("<SUP>",of); 185 fputs("<SUP>",of);
182 if (new->super_sub == psiconv_subscript) 186 if (new->super_sub == psiconv_subscript)
183 fputs("<SUB>",of); 187 fputs("<SUB>",of);
198 if (old->underline) 202 if (old->underline)
199 fputs("</U>",of); 203 fputs("</U>",of);
200 else 204 else
201 fputs("<U>",of); 205 fputs("<U>",of);
202 } 206 }
203 if (old->strike_out != new->strike_out) { 207 if (old->strikethrough != new->strikethrough) {
204 if (old->strike_out) 208 if (old->strikethrough)
205 fputs("</STRIKE>",of); 209 fputs("</STRIKE>",of);
206 else 210 else
207 fputs("<STRIKE>",of); 211 fputs("<STRIKE>",of);
208 } 212 }
209 if (old->super_sub != new->super_sub) { 213 if (old->super_sub != new->super_sub) {
277 fputs("</UL>",of); 281 fputs("</UL>",of);
278 282
279 fputs("</P>\n",of); 283 fputs("</P>\n",of);
280} 284}
281 285
282int psiconv_gen_html(FILE *of,const psiconv_file file, const char *dest) 286int psiconv_gen_html(const char * filename,const psiconv_file file,
287 const char *dest)
283{ 288{
289 FILE *of = fopen(filename,"w");
290 if (! of)
291 return -1;
292
284 if (file->type == psiconv_word_file) { 293 if (file->type == psiconv_word_file) {
285 psiconv_gen_html_word(of,(psiconv_word_f) file->file); 294 psiconv_gen_html_word(of,(psiconv_word_f) file->file);
286 return 0;
287 } else if (file->type == psiconv_texted_file) { 295 } else if (file->type == psiconv_texted_file) {
288 psiconv_gen_html_texted(of,(psiconv_texted_f) file->file); 296 psiconv_gen_html_texted(of,(psiconv_texted_f) file->file);
289 return 0;
290 } else 297 } else {
298 fclose(of);
291 return -1; 299 return -1;
300 }
301 return fclose(of);
292} 302}
293 303
294void psiconv_gen_html_texted(FILE *of,psiconv_texted_f tf) 304void psiconv_gen_html_texted(FILE *of,psiconv_texted_f tf)
295{ 305{
296 psiconv_character_layout base_char; 306 psiconv_character_layout base_char;
347 } 357 }
348 fputs("</BODY>\n</HTML>\n",of); 358 fputs("</BODY>\n</HTML>\n",of);
349 psiconv_free_character_layout(base_char); 359 psiconv_free_character_layout(base_char);
350} 360}
351 361
352static struct psiconv_fileformat ff = 362static struct psiconv_fileformat_s ff =
353 { 363 {
354 "HTML3", 364 "HTML3",
355 "HTML 3.2, not verified so probably not completely compliant", 365 "HTML 3.2, not verified so probably not completely compliant",
356 &psiconv_gen_html 366 &psiconv_gen_html
357 }; 367 };

Legend:
Removed from v.34  
changed lines
  Added in v.142

frodo@frodo.looijaard.name
ViewVC Help
Powered by ViewVC 1.1.26