/[public]/psiconv/trunk/lib/psiconv/generate_layout.c
ViewVC logotype

Diff of /psiconv/trunk/lib/psiconv/generate_layout.c

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

Revision 79 Revision 142
21#include "compat.h" 21#include "compat.h"
22 22
23#include "generate_routines.h" 23#include "generate_routines.h"
24#include "error.h" 24#include "error.h"
25 25
26#ifdef DMALLOC
27#include <dmalloc.h>
28#endif
29
30
26int psiconv_write_color(psiconv_buffer buf, const psiconv_color value) 31int psiconv_write_color(psiconv_buffer buf, const psiconv_color value)
27{ 32{
28 int res; 33 int res;
29 if (!value) { 34 if (!value) {
30 psiconv_warn(0,psiconv_buffer_length(buf),"Null color"); 35 psiconv_warn(0,psiconv_buffer_length(buf),"Null color");
37 return psiconv_write_u8(buf,value->blue); 42 return psiconv_write_u8(buf,value->blue);
38} 43}
39 44
40int psiconv_write_font(psiconv_buffer buf, const psiconv_font value) 45int psiconv_write_font(psiconv_buffer buf, const psiconv_font value)
41{ 46{
42 int res; 47 int res,i;
43 if (!value) { 48 if (!value) {
44 psiconv_warn(0,psiconv_buffer_length(buf),"Null font"); 49 psiconv_warn(0,psiconv_buffer_length(buf),"Null font");
45 return -PSICONV_E_GENERATE; 50 return -PSICONV_E_GENERATE;
46 } 51 }
52 if ((res = psiconv_write_u8(buf,strlen(value->name)+1)))
53 return res;
54 for (i = 0; i < strlen(value->name); i++)
47 if ((res = psiconv_write_string(buf,value->name))) 55 if ((res = psiconv_write_u8(buf,value->name[i])))
48 return res; 56 return res;
49 return psiconv_write_u8(buf,value->screenfont); 57 return psiconv_write_u8(buf,value->screenfont);
50} 58}
51 59
52int psiconv_write_border(psiconv_buffer buf, const psiconv_border value) 60int psiconv_write_border(psiconv_buffer buf, const psiconv_border value)
53{ 61{
86 if (!value) { 94 if (!value) {
87 psiconv_warn(0,psiconv_buffer_length(buf),"Null bullet"); 95 psiconv_warn(0,psiconv_buffer_length(buf),"Null bullet");
88 return -PSICONV_E_GENERATE; 96 return -PSICONV_E_GENERATE;
89 } 97 }
90 98
91 if (!(extra_buf = psiconv_buffer_new(0))) 99 if (!(extra_buf = psiconv_buffer_new()))
92 return -PSICONV_E_NOMEM; 100 return -PSICONV_E_NOMEM;
93 if ((res = psiconv_write_size(extra_buf,value->font_size))) 101 if ((res = psiconv_write_size(extra_buf,value->font_size)))
94 goto ERROR; 102 goto ERROR;
95 if ((res = psiconv_write_u8(extra_buf,value->character))) 103 if ((res = psiconv_write_u8(extra_buf,value->character)))
96 goto ERROR;
97 if ((res = psiconv_write_bool(extra_buf,value->on)))
98 goto ERROR; 104 goto ERROR;
99 if ((res = psiconv_write_bool(extra_buf,value->indent))) 105 if ((res = psiconv_write_bool(extra_buf,value->indent)))
100 goto ERROR; 106 goto ERROR;
101 if ((res = psiconv_write_color(extra_buf,value->color))) 107 if ((res = psiconv_write_color(extra_buf,value->color)))
102 goto ERROR; 108 goto ERROR;
140 146
141 if (!value) { 147 if (!value) {
142 psiconv_warn(0,psiconv_buffer_length(buf),"Null paragraph layout list"); 148 psiconv_warn(0,psiconv_buffer_length(buf),"Null paragraph layout list");
143 return -PSICONV_E_GENERATE; 149 return -PSICONV_E_GENERATE;
144 } 150 }
145 if (!(extra_buf = psiconv_buffer_new(0))) 151 if (!(extra_buf = psiconv_buffer_new()))
146 return -PSICONV_E_NOMEM; 152 return -PSICONV_E_NOMEM;
147 153
148 if (!base || psiconv_compare_color(base->back_color,value->back_color)) { 154 if (!base || psiconv_compare_color(base->back_color,value->back_color)) {
149 if ((res = psiconv_write_u8(extra_buf,0x01))) 155 if ((res = psiconv_write_u8(extra_buf,0x01)))
150 goto ERROR; 156 goto ERROR;
253 259
254 if (!base || (value->no_widow_protection != base->no_widow_protection)) { 260 if (!base || (value->no_widow_protection != base->no_widow_protection)) {
255 if ((res = psiconv_write_u8(extra_buf,0x0e))) 261 if ((res = psiconv_write_u8(extra_buf,0x0e)))
256 goto ERROR; 262 goto ERROR;
257 if ((res = psiconv_write_bool(extra_buf,value->no_widow_protection))) 263 if ((res = psiconv_write_bool(extra_buf,value->no_widow_protection)))
264 goto ERROR;
265 }
266
267 if (!base || (value->wrap_to_fit_cell != base->wrap_to_fit_cell)) {
268 if ((res = psiconv_write_u8(extra_buf,0x0f)))
269 goto ERROR;
270 if ((res = psiconv_write_bool(extra_buf,value->wrap_to_fit_cell)))
258 goto ERROR; 271 goto ERROR;
259 } 272 }
260 273
261 if (!base || (value->border_distance != base->border_distance)) { 274 if (!base || (value->border_distance != base->border_distance)) {
262 if ((res = psiconv_write_u8(extra_buf,0x10))) 275 if ((res = psiconv_write_u8(extra_buf,0x10)))
349 psiconv_buffer extra_buf; 362 psiconv_buffer extra_buf;
350 if (!value) { 363 if (!value) {
351 psiconv_warn(0,psiconv_buffer_length(buf),"Null character layout list"); 364 psiconv_warn(0,psiconv_buffer_length(buf),"Null character layout list");
352 return -PSICONV_E_GENERATE; 365 return -PSICONV_E_GENERATE;
353 } 366 }
354 if (!(extra_buf = psiconv_buffer_new(0))) 367 if (!(extra_buf = psiconv_buffer_new()))
355 return -PSICONV_E_NOMEM; 368 return -PSICONV_E_NOMEM;
356 369
357 if (!base || psiconv_compare_color(base->color,value->color)) { 370 if (!base || psiconv_compare_color(base->color,value->color)) {
358 if ((res = psiconv_write_u8(extra_buf,0x19))) 371 if ((res = psiconv_write_u8(extra_buf,0x19)))
359 goto ERROR; 372 goto ERROR;
397 "Unknown supersubscript (%d); assuming normal", 410 "Unknown supersubscript (%d); assuming normal",
398 value->super_sub); 411 value->super_sub);
399 if ((res = psiconv_write_u8(extra_buf,0x1f))) 412 if ((res = psiconv_write_u8(extra_buf,0x1f)))
400 goto ERROR; 413 goto ERROR;
401 if ((res = psiconv_write_u8(extra_buf, 414 if ((res = psiconv_write_u8(extra_buf,
402 base->super_sub == psiconv_superscript?1: 415 value->super_sub == psiconv_superscript?1:
403 base->super_sub == psiconv_superscript?2:0))) 416 value->super_sub == psiconv_subscript?2:0)))
404 goto ERROR; 417 goto ERROR;
405 } 418 }
406 419
407 if (!base || (value->underline != base->underline)) { 420 if (!base || (value->underline != base->underline)) {
408 if ((res = psiconv_write_u8(extra_buf,0x20))) 421 if ((res = psiconv_write_u8(extra_buf,0x20)))

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

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