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

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

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

Revision 190 Revision 192
29#include "dmalloc.h" 29#include "dmalloc.h"
30#endif 30#endif
31 31
32#define TEMPSTR_LEN 100 32#define TEMPSTR_LEN 100
33 33
34static void text(const psiconv_config config,psiconv_list list,
35 psiconv_string_t data,const encoding enc);
36static void color(const psiconv_config config, psiconv_list list,
37 psiconv_color color,int may_be_transparant, const encoding enc);
38static void border(const psiconv_config config, psiconv_list list,
39 psiconv_border_kind_t border,const encoding enc);
40static void style_name(const psiconv_config config, psiconv_list list,
41 const psiconv_string_t name,const encoding enc);
42static void character_layout_diffs(const psiconv_config config,
43 psiconv_list list,
44 const psiconv_character_layout new,
45 const psiconv_character_layout base,
46 const encoding enc);
47static void paragraph_layout_diffs(const psiconv_config config,
48 psiconv_list list,
49 const psiconv_paragraph_layout new,
50 const psiconv_paragraph_layout base,
51 const encoding enc);
52static void style(const psiconv_config config, psiconv_list list,
53 const psiconv_word_style style,
54 const psiconv_paragraph_layout base_para,
55 const psiconv_character_layout base_char,
56 const encoding enc);
57static void styles(const psiconv_config config, psiconv_list list,
58 const psiconv_word_styles_section styles_sec,const encoding enc);
59static void header(const psiconv_config config, psiconv_list list,
60 const psiconv_word_styles_section styles_sec,const encoding enc);
61static void footer(const psiconv_config config, psiconv_list list,
62 const encoding enc);
63static void characters(const psiconv_config config, psiconv_list list,
64 const psiconv_string_t textstr,
65 const psiconv_character_layout layout,
66 const psiconv_character_layout base,
67 const encoding enc);
68static void paragraph(const psiconv_config config, psiconv_list list,
69 const psiconv_paragraph para,
70 const psiconv_word_styles_section styles_sec,
71 const encoding enc);
72static void gen_word(const psiconv_config config, psiconv_list list,
73 const psiconv_word_f file, const encoding enc);
74static void gen_texted(const psiconv_config config, psiconv_list list,
75 const psiconv_texted_f file, const encoding enc);
76
77
78
79void text(const psiconv_config config,psiconv_list list,
80 psiconv_string_t data,const encoding enc)
81{
82 int i;
83 for (i = 0; i < psiconv_unicode_strlen(data); i++) {
84 if ((data[i] == 0x06) || (data[i] == 0x07) || (data[i] == 0x08))
85 output_simple_chars(config,list,"<br/>",enc);
86 else if ((data[i] == 0x0b) || (data[i] == 0x0c))
87 output_simple_chars(config,list,"-",enc);
88 else if (data[i] == 0x0f)
89 output_simple_chars(config,list," ",enc);
90 else if (data[i] >= 0x20)
91 output_char(config,list,data[i],enc);
92 }
93}
94
34void color(const psiconv_config config, psiconv_list list, 95void color(const psiconv_config config, psiconv_list list,
35 psiconv_color color,int may_be_transparant, const encoding enc) 96 psiconv_color color,int may_be_transparant, const encoding enc)
36{ 97{
37 char tempstr[TEMPSTR_LEN]; 98 char tempstr[TEMPSTR_LEN];
38 if (may_be_transparant && 99 if (may_be_transparant &&
47 color->blue); 108 color->blue);
48 output_simple_chars(config,list,tempstr,enc); 109 output_simple_chars(config,list,tempstr,enc);
49 } 110 }
50} 111}
51 112
113void border(const psiconv_config config, psiconv_list list,
114 psiconv_border_kind_t border,const encoding enc)
115{
116 output_simple_chars(config,list,
117 border == psiconv_border_none?"none":
118 border == psiconv_border_solid?"solid":
119 border == psiconv_border_double?"double":
120 border == psiconv_border_dotted?"dotted":
121 border == psiconv_border_dashed?"dashed":
122 border == psiconv_border_dotdashed?"dashed":
123 border == psiconv_border_dotdotdashed?"dashed":"",enc);
124}
125
52void style_name(const psiconv_config config, psiconv_list list, 126void style_name(const psiconv_config config, psiconv_list list,
53 const psiconv_string_t name,const encoding enc) 127 const psiconv_string_t name,const encoding enc)
54{ 128{
55 psiconv_string_t name_copy; 129 psiconv_string_t name_copy;
56 int i; 130 int i;
76 const psiconv_character_layout base, 150 const psiconv_character_layout base,
77 const encoding enc) 151 const encoding enc)
78{ 152{
79 char tempstr[TEMPSTR_LEN]; 153 char tempstr[TEMPSTR_LEN];
80 154
155 if (!base || (new->color->red != base->color->red) ||
156 (new->color->green != base->color->green) ||
157 (new->color->blue != base->color->blue)) {
158 output_simple_chars(config,list,"color:",enc);
159 color(config,list,new->color,0,enc);
160 output_simple_chars(config,list,";",enc);
161 }
162
163 if (!base || (new->back_color->red != base->back_color->red) ||
164 (new->back_color->green != base->back_color->green) ||
165 (new->back_color->blue != base->back_color->blue)) {
166 output_simple_chars(config,list,"background-color:",enc);
167 color(config,list,new->back_color,1,enc);
168 output_simple_chars(config,list,";",enc);
169 }
170
171 if (!base || (new->font_size != base->font_size)) {
172 output_simple_chars(config,list,"font-size:",enc);
173 snprintf(tempstr,TEMPSTR_LEN,"%f",new->font_size);
174 output_simple_chars(config,list,tempstr,enc);
175 output_simple_chars(config,list,"pt;",enc);
176 }
177
81 if (!base || (new->italic != base->italic)) { 178 if (!base || (new->italic != base->italic)) {
82 output_simple_chars(config,list,"font-style:",enc); 179 output_simple_chars(config,list,"font-style:",enc);
83 output_simple_chars(config,list,new->italic?"italic":"normal",enc); 180 output_simple_chars(config,list,new->italic?"italic":"normal",enc);
181 output_simple_chars(config,list,";",enc);
182 }
183 if (!base || (new->bold != base->bold)) {
184 output_simple_chars(config,list,"font-weight:",enc);
185 output_simple_chars(config,list,new->bold?"bold":"normal",enc);
186 output_simple_chars(config,list,";",enc);
187 }
188 if (!base || (new->super_sub != base->super_sub)) {
189 output_simple_chars(config,list,"font-style:",enc);
190 output_simple_chars(config,list,
191 new->super_sub==psiconv_superscript?"super":
192 new->super_sub==psiconv_subscript?"sub":
193 "normal",enc);
84 output_simple_chars(config,list,";",enc); 194 output_simple_chars(config,list,";",enc);
85 } 195 }
86 if (!base || (new->underline != base->underline) || 196 if (!base || (new->underline != base->underline) ||
87 (new->strikethrough != base->strikethrough)) { 197 (new->strikethrough != base->strikethrough)) {
88 output_simple_chars(config,list,"text-decoration:",enc); 198 output_simple_chars(config,list,"text-decoration:",enc);
89 output_simple_chars(config,list,new->underline?"underline": 199 output_simple_chars(config,list,new->underline?"underline":
90 new->strikethrough?"line-through": 200 new->strikethrough?"line-through":
91 "none",enc); 201 "none",enc);
92 output_simple_chars(config,list,";",enc); 202 output_simple_chars(config,list,";",enc);
93 } 203 }
94 if (!base || (new->bold != base->bold)) { 204 if (!base || (new->font->screenfont != base->font->screenfont)) {
95 output_simple_chars(config,list,"font-weight:",enc);
96 output_simple_chars(config,list,new->bold?"bold":"normal",enc);
97 output_simple_chars(config,list,";",enc);
98 }
99 if (!base || (new->super_sub != base->super_sub)) {
100 output_simple_chars(config,list,"font-style:",enc); 205 output_simple_chars(config,list,"font-family:",enc);
101 output_simple_chars(config,list, 206 output_simple_chars(config,list,
102 new->super_sub==psiconv_superscript?"super": 207 new->font->screenfont == psiconv_font_serif?"serif":
103 new->super_sub==psiconv_subscript?"sub": 208 new->font->screenfont == psiconv_font_sansserif?"sans-serif":
104 "normal",enc); 209 new->font->screenfont == psiconv_font_nonprop?"monospace":
105 output_simple_chars(config,list,";",enc); 210 new->font->screenfont == psiconv_font_misc?"fantasy":"",
106 } 211 enc);
107
108 if (!base || (new->color->red != base->color->red) ||
109 (new->color->green != base->color->green) ||
110 (new->color->blue != base->color->blue)) {
111 output_simple_chars(config,list,"color:",enc);
112 color(config,list,new->color,0,enc);
113 output_simple_chars(config,list,";",enc);
114 }
115
116 if (!base || (new->back_color->red != base->back_color->red) ||
117 (new->back_color->green != base->back_color->green) ||
118 (new->back_color->blue != base->back_color->blue)) {
119 output_simple_chars(config,list,"background-color:",enc);
120 color(config,list,new->back_color,1,enc);
121 output_simple_chars(config,list,";",enc);
122 }
123
124 if (!base || (new->font_size != base->font_size)) {
125 output_simple_chars(config,list,"font-size:",enc);
126 snprintf(tempstr,TEMPSTR_LEN,"%f",new->font_size);
127 output_simple_chars(config,list,tempstr,enc);
128 output_simple_chars(config,list,"pt;",enc);
129 } 212 }
130} 213}
131 214
132void paragraph_layout_diffs(const psiconv_config config, psiconv_list list, 215void paragraph_layout_diffs(const psiconv_config config, psiconv_list list,
133 const psiconv_paragraph_layout new, 216 const psiconv_paragraph_layout new,
134 const psiconv_paragraph_layout base, 217 const psiconv_paragraph_layout base,
135 const encoding enc) 218 const encoding enc)
136{ 219{
137 char tempstr[TEMPSTR_LEN]; 220 char tempstr[TEMPSTR_LEN];
221 float pad_left_base=0.0,pad_left_new,text_indent_base=0.0,text_indent_new;
222
223 if (new->bullet->on) {
224 pad_left_new = new->indent_left < new->indent_first?
225 new->indent_left:new->indent_first;
226 text_indent_new = 0.0;
227 } else {
228 pad_left_new = new->indent_left;
229 text_indent_new = new->indent_first;
230 }
231 if (base) {
232 if (base->bullet->on) {
233 pad_left_base = base->indent_left < base->indent_first?
234 base->indent_left:base->indent_first;
235 text_indent_base = 0.0;
236 } else {
237 pad_left_base = base->indent_left;
238 text_indent_base = base->indent_first;
239 }
240 }
241
138 242
139 if (!base || (new->back_color->red != base->back_color->red) || 243 if (!base || (new->back_color->red != base->back_color->red) ||
140 (new->back_color->green != base->back_color->green) || 244 (new->back_color->green != base->back_color->green) ||
141 (new->back_color->blue != base->back_color->blue)) { 245 (new->back_color->blue != base->back_color->blue)) {
142 output_simple_chars(config,list,"background-color:",enc); 246 output_simple_chars(config,list,"background-color:",enc);
143 color(config,list,new->back_color,1,enc); 247 color(config,list,new->back_color,1,enc);
144 output_simple_chars(config,list,";",enc); 248 output_simple_chars(config,list,";",enc);
145 } 249 }
146 250
147 if (!base || (new->indent_left != base->indent_left)) { 251 if (!base || (pad_left_new != pad_left_base)) {
148 output_simple_chars(config,list,"padding-left:",enc); 252 output_simple_chars(config,list,"padding-left:",enc);
149 snprintf(tempstr,TEMPSTR_LEN,"%f",new->indent_left); 253 snprintf(tempstr,TEMPSTR_LEN,"%f",pad_left_new);
150 output_simple_chars(config,list,tempstr,enc); 254 output_simple_chars(config,list,tempstr,enc);
151 output_simple_chars(config,list,"cm;",enc); 255 output_simple_chars(config,list,"cm;",enc);
152 } 256 }
153 257
154 if (!base || (new->indent_right != base->indent_right)) { 258 if (!base || (new->indent_right != base->indent_right)) {
156 snprintf(tempstr,TEMPSTR_LEN,"%f",new->indent_right); 260 snprintf(tempstr,TEMPSTR_LEN,"%f",new->indent_right);
157 output_simple_chars(config,list,tempstr,enc); 261 output_simple_chars(config,list,tempstr,enc);
158 output_simple_chars(config,list,"cm;",enc); 262 output_simple_chars(config,list,"cm;",enc);
159 } 263 }
160 264
161 if (!base || (new->indent_left - new->indent_first != 265 if (!base || (text_indent_new != text_indent_base)) {
162 base->indent_left - base->indent_first)) {
163 output_simple_chars(config,list,"text-indent:",enc); 266 output_simple_chars(config,list,"text-indent:",enc);
164 snprintf(tempstr,TEMPSTR_LEN,"%f",new->indent_right - new->indent_first); 267 snprintf(tempstr,TEMPSTR_LEN,"%f",text_indent_new);
165 output_simple_chars(config,list,tempstr,enc); 268 output_simple_chars(config,list,tempstr,enc);
166 output_simple_chars(config,list,"cm;",enc); 269 output_simple_chars(config,list,"cm;",enc);
167 } 270 }
168 271
169 if (!base || (new->justify_hor != base ->justify_hor)) { 272 if (!base || (new->justify_hor != base ->justify_hor)) {
195 output_simple_chars(config,list,"padding-bottom:",enc); 298 output_simple_chars(config,list,"padding-bottom:",enc);
196 snprintf(tempstr,TEMPSTR_LEN,"%f",new->space_below); 299 snprintf(tempstr,TEMPSTR_LEN,"%f",new->space_below);
197 output_simple_chars(config,list,tempstr,enc); 300 output_simple_chars(config,list,tempstr,enc);
198 output_simple_chars(config,list,"pt;",enc); 301 output_simple_chars(config,list,"pt;",enc);
199 } 302 }
200 303
304 if (!base || (new->right_border->kind != base->right_border->kind)) {
305 output_simple_chars(config,list,"border-right-style:",enc);
306 border(config,list,new->right_border->kind,enc);
307 output_simple_chars(config,list,";",enc);
308 }
309 if (!base || (new->bottom_border->kind != base->bottom_border->kind)) {
310 output_simple_chars(config,list,"border-bottom-style:",enc);
311 border(config,list,new->bottom_border->kind,enc);
312 output_simple_chars(config,list,";",enc);
313 }
314 if (!base || (new->top_border->kind != base->top_border->kind)) {
315 output_simple_chars(config,list,"border-top-style:",enc);
316 border(config,list,new->top_border->kind,enc);
317 output_simple_chars(config,list,";",enc);
318 }
319 if (!base || (new->left_border->kind != base->left_border->kind)) {
320 output_simple_chars(config,list,"border-left-style:",enc);
321 border(config,list,new->left_border->kind,enc);
322 output_simple_chars(config,list,";",enc);
323 }
324
325 if (!base ||
326 ((new->right_border->kind != psiconv_border_none) &&
327 (new->right_border->thickness != base->right_border->thickness))) {
328 output_simple_chars(config,list,"border-right-width:",enc);
329 snprintf(tempstr,TEMPSTR_LEN,"%f",new->right_border->thickness);
330 output_simple_chars(config,list,tempstr,enc);
331 output_simple_chars(config,list,"pt;",enc);
332 }
333 if (!base ||
334 ((new->bottom_border->kind != psiconv_border_none) &&
335 (new->bottom_border->thickness != base->bottom_border->thickness))) {
336 output_simple_chars(config,list,"border-bottom-width:",enc);
337 snprintf(tempstr,TEMPSTR_LEN,"%f",new->bottom_border->thickness);
338 output_simple_chars(config,list,tempstr,enc);
339 output_simple_chars(config,list,"pt;",enc);
340 }
341 if (!base ||
342 ((new->top_border->kind != psiconv_border_none) &&
343 ( new->top_border->thickness != base->top_border->thickness))) {
344 output_simple_chars(config,list,"border-top-width:",enc);
345 snprintf(tempstr,TEMPSTR_LEN,"%f",new->top_border->thickness);
346 output_simple_chars(config,list,tempstr,enc);
347 output_simple_chars(config,list,"pt;",enc);
348 }
349 if (!base ||
350 ((new->left_border->kind != psiconv_border_none) &&
351 (new->left_border->thickness != base->left_border->thickness))) {
352 output_simple_chars(config,list,"border-left-width:",enc);
353 snprintf(tempstr,TEMPSTR_LEN,"%f",new->left_border->thickness);
354 output_simple_chars(config,list,tempstr,enc);
355 output_simple_chars(config,list,"pt;",enc);
356 }
357
358 if (!base ||
359 ((new->right_border->kind != psiconv_border_none) &&
360 ((new->right_border->color->red != base->right_border->color->red) ||
361 (new->right_border->color->green != base->right_border->color->green)||
362 (new->right_border->color->blue != base->right_border->color->blue)))) {
363 output_simple_chars(config,list,"border-right-color:",enc);
364 color(config,list,new->right_border->color,0,enc);
365 output_simple_chars(config,list,";",enc);
366 }
367 if (!base ||
368 ((new->top_border->kind != psiconv_border_none) &&
369 ((new->top_border->color->red != base->top_border->color->red) ||
370 (new->top_border->color->green != base->top_border->color->green) ||
371 (new->top_border->color->blue != base->top_border->color->blue)))) {
372 output_simple_chars(config,list,"border-top-color:",enc);
373 color(config,list,new->top_border->color,0,enc);
374 output_simple_chars(config,list,";",enc);
375 }
376 if (!base ||
377 ((new->bottom_border->kind != psiconv_border_none) &&
378 ((new->bottom_border->color->red != base->bottom_border->color->red) ||
379 (new->bottom_border->color->green !=base->bottom_border->color->green)||
380 (new->bottom_border->color->blue != base->bottom_border->color->blue)))){
381 output_simple_chars(config,list,"border-bottom-color:",enc);
382 color(config,list,new->bottom_border->color,0,enc);
383 output_simple_chars(config,list,";",enc);
384 }
385 if (!base ||
386 ((new->left_border->kind != psiconv_border_none) &&
387 ((new->left_border->color->red != base->left_border->color->red) ||
388 (new->left_border->color->green != base->left_border->color->green) ||
389 (new->left_border->color->blue != base->left_border->color->blue)))) {
390 output_simple_chars(config,list,"border-left-color:",enc);
391 color(config,list,new->left_border->color,0,enc);
392 output_simple_chars(config,list,";",enc);
393 }
201} 394}
202 395
203void style(const psiconv_config config, psiconv_list list, 396void style(const psiconv_config config, psiconv_list list,
204 const psiconv_word_style style, 397 const psiconv_word_style style,
205 const psiconv_paragraph_layout base_para, 398 const psiconv_paragraph_layout base_para,
206 const psiconv_character_layout base_char, 399 const psiconv_character_layout base_char,
207 const encoding enc) 400 const encoding enc)
208{ 401{
209 output_simple_chars(config,list,"p[class=\"style_",enc); 402 output_simple_chars(config,list,"*.style_",enc);
210 style_name(config,list,style->name,enc); 403 style_name(config,list,style->name,enc);
211 output_simple_chars(config,list,"\"] {",enc); 404 output_simple_chars(config,list," {",enc);
212 paragraph_layout_diffs(config,list,style->paragraph,base_para,enc); 405 paragraph_layout_diffs(config,list,style->paragraph,base_para,enc);
213 character_layout_diffs(config,list,style->character,base_char,enc); 406 character_layout_diffs(config,list,style->character,base_char,enc);
214 output_simple_chars(config,list,"}\n",enc); 407 output_simple_chars(config,list,"}\n",enc);
215} 408}
216 409
291 output_simple_chars(config,list,"</body>\n",enc); 484 output_simple_chars(config,list,"</body>\n",enc);
292 output_simple_chars(config,list,"</html>\n",enc); 485 output_simple_chars(config,list,"</html>\n",enc);
293} 486}
294 487
295void characters(const psiconv_config config, psiconv_list list, 488void characters(const psiconv_config config, psiconv_list list,
296 const psiconv_string_t text, 489 const psiconv_string_t textstr,
297 const psiconv_character_layout layout, 490 const psiconv_character_layout layout,
298 const psiconv_character_layout base, 491 const psiconv_character_layout base,
299 const encoding enc) 492 const encoding enc)
300{ 493{
301 psiconv_list templist; 494 psiconv_list templist;
313 exit(1); 506 exit(1);
314 } 507 }
315 output_simple_chars(config,list,"\">",enc); 508 output_simple_chars(config,list,"\">",enc);
316 } 509 }
317 510
318 output_string(config,list,text,enc); 511 text(config,list,textstr,enc);
319 512
320 if (psiconv_list_length(templist)) { 513 if (psiconv_list_length(templist)) {
321 output_simple_chars(config,list,"</span>",enc); 514 output_simple_chars(config,list,"</span>",enc);
322 } 515 }
323 516
356 fputs("Out of memory error\n",stderr); 549 fputs("Out of memory error\n",stderr);
357 exit(1); 550 exit(1);
358 } 551 }
359 } 552 }
360 553
361 output_simple_chars(config,list,"<p ",enc); 554 output_simple_chars(config,
555 list,para->base_paragraph->bullet->on?"<ul><li ":"<p ",
556 enc);
362 557
363 if (styles_sec) { 558 if (styles_sec) {
364 output_simple_chars(config,list,"class=\"style_",enc); 559 output_simple_chars(config,list,"class=\"style_",enc);
365 style_name(config,list,style->name,enc); 560 style_name(config,list,style->name,enc);
366 output_simple_chars(config,list,"\" ",enc); 561 output_simple_chars(config,list,"\" ",enc);
398 characters(config,list,text,layout->layout,para->base_character,enc); 593 characters(config,list,text,layout->layout,para->base_character,enc);
399 free(text); 594 free(text);
400 charnr += layout->length; 595 charnr += layout->length;
401 } 596 }
402 } 597 }
403 output_simple_chars(config,list,"</p>\n",enc); 598 output_simple_chars(config, list,
599 para->base_paragraph->bullet->on?"</li></ul>\n":"</p>\n",
600 enc);
404 if (!styles_sec) { 601 if (!styles_sec) {
405 psiconv_free_paragraph_layout(base_para); 602 psiconv_free_paragraph_layout(base_para);
406 psiconv_free_character_layout(base_char); 603 psiconv_free_character_layout(base_char);
407 } 604 }
408 psiconv_list_free(templist); 605 psiconv_list_free(templist);
422 } 619 }
423 paragraph(config,list,para,styles,enc); 620 paragraph(config,list,para,styles,enc);
424 } 621 }
425} 622}
426 623
427void gen_html_word(const psiconv_config config, psiconv_list list, 624void gen_word(const psiconv_config config, psiconv_list list,
428 const psiconv_word_f file, const encoding enc) 625 const psiconv_word_f file, const encoding enc)
429{ 626{
430 if (!file) 627 if (!file)
431 return; 628 return;
432 629
434 paragraphs(config,list,file->paragraphs,file->styles_sec,enc); 631 paragraphs(config,list,file->paragraphs,file->styles_sec,enc);
435 footer(config,list,enc); 632 footer(config,list,enc);
436} 633}
437 634
438 635
439void gen_html_texted(const psiconv_config config, psiconv_list list, 636void gen_texted(const psiconv_config config, psiconv_list list,
440 const psiconv_texted_f file, const encoding enc) 637 const psiconv_texted_f file, const encoding enc)
441{ 638{
442 header(config,list,NULL,enc); 639 header(config,list,NULL,enc);
443 paragraphs(config,list,file->texted_sec->paragraphs,NULL,enc); 640 paragraphs(config,list,file->texted_sec->paragraphs,NULL,enc);
444 footer(config,list,enc); 641 footer(config,list,enc);
445} 642}
446 643
447int gen_html(const psiconv_config config, psiconv_list list, 644int gen_xhtml(const psiconv_config config, psiconv_list list,
448 const psiconv_file file, const char *dest, 645 const psiconv_file file, const char *dest,
449 const encoding enc) 646 const encoding enc)
450{ 647{
648 encoding enc1 = enc;
649
451 if (enc == ENCODING_PSION) { 650 if (enc == ENCODING_PSION) {
452 fputs("Unsupported encoding\n",stderr); 651 fputs("Unsupported encoding\n",stderr);
453 return -1; 652 return -1;
454 } 653 } else if (enc == ENCODING_ASCII)
654 enc1 = ENCODING_ASCII_HTML;
455 655
456 if (file->type == psiconv_word_file) { 656 if (file->type == psiconv_word_file) {
457 gen_html_word(config,list,(psiconv_word_f) file->file,enc); 657 gen_word(config,list,(psiconv_word_f) file->file,enc1);
458 return 0; 658 return 0;
459 } else if (file->type == psiconv_texted_file) { 659 } else if (file->type == psiconv_texted_file) {
460 gen_html_texted(config,list,(psiconv_texted_f) file->file,enc); 660 gen_texted(config,list,(psiconv_texted_f) file->file,enc1);
461 return 0; 661 return 0;
462 } else 662 } else
463 return -1; 663 return -1;
464} 664}
465 665
467static struct fileformat_s ffs[] = 667static struct fileformat_s ffs[] =
468 { 668 {
469 { 669 {
470 "XHTML", 670 "XHTML",
471 "XHTML 1.0 Strict, using CSS for formatting", 671 "XHTML 1.0 Strict, using CSS for formatting",
672 FORMAT_WORD | FORMAT_TEXTED,
472 gen_html 673 gen_xhtml
473 }, 674 },
474 { 675 {
475 NULL, 676 NULL,
476 NULL, 677 NULL,
678 0,
477 NULL 679 NULL
478 } 680 }
479 }; 681 };
480 682
481 683
482void init_html(void) 684void init_xhtml(void)
483{ 685{
484 int i; 686 int i;
485 for (i = 0; ffs[i].name; i++) 687 for (i = 0; ffs[i].name; i++)
486 psiconv_list_add(fileformat_list,ffs+i); 688 psiconv_list_add(fileformat_list,ffs+i);
487} 689}

Legend:
Removed from v.190  
changed lines
  Added in v.192

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