/[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 231 Revision 348
1/* 1/*
2 generate_layout.c - Part of psiconv, a PSION 5 file formats converter 2 generate_layout.c - Part of psiconv, a PSION 5 file formats converter
3 Copyright (c) 2000-2004 Frodo Looijaard <frodol@dds.nl> 3 Copyright (c) 2000-2005 Frodo Looijaard <frodo@frodo.looijaard.name>
4 4
5 This program is free software; you can redistribute it and/or modify 5 This program is free software; you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by 6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation; either version 2 of the License, or 7 the Free Software Foundation; either version 2 of the License, or
8 (at your option) any later version. 8 (at your option) any later version.
136 res = -PSICONV_E_GENERATE; 136 res = -PSICONV_E_GENERATE;
137 goto ERROR1; 137 goto ERROR1;
138 } 138 }
139 139
140 if (!(extra_buf = psiconv_buffer_new())) { 140 if (!(extra_buf = psiconv_buffer_new())) {
141 psiconv_error(config,lev+1,0,"Out of memory error");
141 res = -PSICONV_E_NOMEM; 142 res = -PSICONV_E_NOMEM;
142 goto ERROR1; 143 goto ERROR1;
143 } 144 }
144 if ((res = psiconv_write_size(config,extra_buf,lev+1,value->font_size))) 145 if ((res = psiconv_write_size(config,extra_buf,lev+1,value->font_size)))
145 goto ERROR2; 146 goto ERROR2;
153 if ((res = psiconv_write_font(config,extra_buf,lev+1,value->font))) 154 if ((res = psiconv_write_font(config,extra_buf,lev+1,value->font)))
154 goto ERROR2; 155 goto ERROR2;
155 156
156 if ((res = psiconv_write_u8(config,buf,lev+1,psiconv_buffer_length(extra_buf)))) 157 if ((res = psiconv_write_u8(config,buf,lev+1,psiconv_buffer_length(extra_buf))))
157 goto ERROR2; 158 goto ERROR2;
158 res = psiconv_buffer_concat(buf,extra_buf); 159 if ((res = psiconv_buffer_concat(buf,extra_buf))) {
160 psiconv_error(config,lev+1,0,"Out of memory error");
161 goto ERROR2;
162 }
159 163
160ERROR2: 164ERROR2:
161 psiconv_buffer_free(extra_buf); 165 psiconv_buffer_free(extra_buf);
162ERROR1: 166ERROR1:
163 if (res) 167 if (res)
264 if ((res = psiconv_write_u8(config,extra_buf,lev+1,0x06))) 268 if ((res = psiconv_write_u8(config,extra_buf,lev+1,0x06)))
265 goto ERROR2; 269 goto ERROR2;
266 if ((value->justify_ver < psiconv_justify_top) || 270 if ((value->justify_ver < psiconv_justify_top) ||
267 (value->justify_ver > psiconv_justify_bottom)) 271 (value->justify_ver > psiconv_justify_bottom))
268 psiconv_warn(config,0,psiconv_buffer_length(buf), 272 psiconv_warn(config,0,psiconv_buffer_length(buf),
269 "Unknown vertical justify (%d); assuming middle", 273 "Unknown vertical justify (%d); assuming top",
270 value->justify_ver); 274 value->justify_ver);
271 if ((res = psiconv_write_u8(config,extra_buf,lev+1, 275 if ((res = psiconv_write_u8(config,extra_buf,lev+1,
272 value->justify_ver == psiconv_justify_centre?1: 276 value->justify_ver == psiconv_justify_middle?1:
273 value->justify_ver == psiconv_justify_right?2:0))) 277 value->justify_ver == psiconv_justify_bottom?2:0)))
274 goto ERROR2; 278 goto ERROR2;
275 } 279 }
276 280
277 if (!base || (value->linespacing != base->linespacing)) { 281 if (!base || (value->linespacing != base->linespacing)) {
278 if ((res = psiconv_write_u8(config,extra_buf,lev+1,0x07))) 282 if ((res = psiconv_write_u8(config,extra_buf,lev+1,0x07)))
397 goto ERROR2; 401 goto ERROR2;
398 if ((res = psiconv_write_length(config,extra_buf,lev+1,value->tabs->normal))) 402 if ((res = psiconv_write_length(config,extra_buf,lev+1,value->tabs->normal)))
399 goto ERROR2; 403 goto ERROR2;
400 for (i = 0; i < psiconv_list_length(value->tabs->extras); i++) { 404 for (i = 0; i < psiconv_list_length(value->tabs->extras); i++) {
401 if (!(tab = psiconv_list_get(value->tabs->extras,i))) { 405 if (!(tab = psiconv_list_get(value->tabs->extras,i))) {
402 psiconv_error(config,lev+1,0,"Massive memory corruption"); 406 psiconv_error(config,lev+1,0,"Data structure corruption");
403 res = -PSICONV_E_NOMEM; 407 res = -PSICONV_E_NOMEM;
404 goto ERROR2; 408 goto ERROR2;
405 } 409 }
406 if ((res = psiconv_write_u8(config,extra_buf,lev+1,0x17))) 410 if ((res = psiconv_write_u8(config,extra_buf,lev+1,0x17)))
407 goto ERROR2; 411 goto ERROR2;
411 } 415 }
412 416
413 if ((res = psiconv_write_u32(config,buf,lev+1,psiconv_buffer_length(extra_buf)))) 417 if ((res = psiconv_write_u32(config,buf,lev+1,psiconv_buffer_length(extra_buf))))
414 goto ERROR2; 418 goto ERROR2;
415 419
416 res = psiconv_buffer_concat(buf,extra_buf); 420 if ((res = psiconv_buffer_concat(buf,extra_buf))) {
421 psiconv_error(config,lev+1,0,"Out of memory error");
422 goto ERROR2;
423 }
417 424
418ERROR2: 425ERROR2:
419 psiconv_buffer_free(extra_buf); 426 psiconv_buffer_free(extra_buf);
420ERROR1: 427ERROR1:
421 if (res) 428 if (res)

Legend:
Removed from v.231  
changed lines
  Added in v.348

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