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

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

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