--- psiconv/trunk/lib/psiconv/generate_page.c 2003/11/25 17:57:05 168 +++ psiconv/trunk/lib/psiconv/generate_page.c 2005/11/15 15:52:34 270 @@ -1,6 +1,6 @@ /* generate_page.c - Part of psiconv, a PSION 5 file formats converter - Copyright (c) 2000 Frodo Looijaard + Copyright (c) 2000-2005 Frodo Looijaard This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,7 +33,7 @@ int psiconv_write_page_header(const psiconv_config config, - psiconv_buffer buf, + psiconv_buffer buf, int lev, const psiconv_page_header value, psiconv_buffer *extra_buf) { @@ -41,40 +41,44 @@ psiconv_paragraph_layout basepara; psiconv_character_layout basechar; + psiconv_progress(config,lev,0,"Writing page header"); + if (!value) { - psiconv_warn(config,0,psiconv_buffer_length(buf),"Null page header"); + psiconv_error(config,lev,0,"Null page header"); res = -PSICONV_E_GENERATE; goto ERROR1; } if (!(basepara=psiconv_basic_paragraph_layout())) { + psiconv_error(config,lev+1,0,"Out of memory error"); res = -PSICONV_E_NOMEM; goto ERROR1; } if (!(basechar=psiconv_basic_character_layout())) { + psiconv_error(config,lev+1,0,"Out of memory error"); res = -PSICONV_E_NOMEM; goto ERROR2; } /* Unknown byte */ - if ((res = psiconv_write_u8(config,buf,0x01))) + if ((res = psiconv_write_u8(config,buf,lev+1,0x01))) goto ERROR3; - if ((res = psiconv_write_bool(config,buf,value->on_first_page))) + if ((res = psiconv_write_bool(config,buf,lev+1,value->on_first_page))) goto ERROR3; /* Three unknown bytes */ - if ((res = psiconv_write_u8(config,buf,0x00))) + if ((res = psiconv_write_u8(config,buf,lev+1,0x00))) goto ERROR3; - if ((res = psiconv_write_u8(config,buf,0x00))) + if ((res = psiconv_write_u8(config,buf,lev+1,0x00))) goto ERROR3; - if ((res = psiconv_write_u8(config,buf,0x00))) + if ((res = psiconv_write_u8(config,buf,lev+1,0x00))) goto ERROR3; - if ((res = psiconv_write_paragraph_layout_list(config,buf, + if ((res = psiconv_write_paragraph_layout_list(config,buf,lev+1, value->base_paragraph_layout,basepara))) goto ERROR3; - if ((res = psiconv_write_character_layout_list(config,buf, + if ((res = psiconv_write_character_layout_list(config,buf,lev+1, value->base_character_layout,basechar))) goto ERROR3; - res = psiconv_write_texted_section(config,buf,value->text, + res = psiconv_write_texted_section(config,buf,lev+1,value->text, value->base_character_layout, value->base_paragraph_layout,extra_buf); ERROR3: @@ -82,51 +86,62 @@ ERROR2: psiconv_free_paragraph_layout(basepara); ERROR1: + if (res) + psiconv_error(config,lev,0,"Writing of page header failed"); + else + psiconv_progress(config,lev,0,"End of page header"); return res; } int psiconv_write_page_layout_section(const psiconv_config config, - psiconv_buffer buf, + psiconv_buffer buf, int lev, const psiconv_page_layout_section value) { int res; psiconv_buffer header_buf,footer_buf; + psiconv_progress(config,lev,0,"Writing page layout section"); + if (!value) { - psiconv_warn(config,0,psiconv_buffer_length(buf),"Null page section"); + psiconv_error(config,lev,0,"Null page section"); res = -PSICONV_E_GENERATE; goto ERROR1; } - if ((res = psiconv_write_u32(config,buf,value->first_page_nr))) + if ((res = psiconv_write_u32(config,buf,lev+1,value->first_page_nr))) goto ERROR1; - if ((res = psiconv_write_length(config,buf,value->header_dist))) + if ((res = psiconv_write_length(config,buf,lev+1,value->header_dist))) goto ERROR1; - if ((res = psiconv_write_length(config,buf,value->footer_dist))) + if ((res = psiconv_write_length(config,buf,lev+1,value->footer_dist))) goto ERROR1; - if ((res = psiconv_write_length(config,buf,value->left_margin))) + if ((res = psiconv_write_length(config,buf,lev+1,value->left_margin))) goto ERROR1; - if ((res = psiconv_write_length(config,buf,value->right_margin))) + if ((res = psiconv_write_length(config,buf,lev+1,value->right_margin))) goto ERROR1; - if ((res = psiconv_write_length(config,buf,value->top_margin))) + if ((res = psiconv_write_length(config,buf,lev+1,value->top_margin))) goto ERROR1; - if ((res = psiconv_write_length(config,buf,value->bottom_margin))) + if ((res = psiconv_write_length(config,buf,lev+1,value->bottom_margin))) goto ERROR1; - if ((res = psiconv_write_page_header(config,buf,value->header,&header_buf))) + if ((res = psiconv_write_page_header(config,buf,lev+1,value->header,&header_buf))) goto ERROR1; - if ((res = psiconv_write_page_header(config,buf,value->footer,&footer_buf))) + if ((res = psiconv_write_page_header(config,buf,lev+1,value->footer,&footer_buf))) goto ERROR2; - if ((res = psiconv_write_u32(config,buf,PSICONV_ID_PAGE_DIMENSIONS2))) + if ((res = psiconv_write_u32(config,buf,lev+1,PSICONV_ID_PAGE_DIMENSIONS2))) goto ERROR3; - if ((res = psiconv_write_length(config,buf,value->page_width))) + if ((res = psiconv_write_length(config,buf,lev+1,value->page_width))) goto ERROR3; - if ((res = psiconv_write_length(config,buf,value->page_height))) + if ((res = psiconv_write_length(config,buf,lev+1,value->page_height))) goto ERROR3; - if ((res = psiconv_write_bool(config,buf,value->landscape))) + if ((res = psiconv_write_bool(config,buf,lev+1,value->landscape))) goto ERROR3; - if ((res = psiconv_buffer_concat(buf,header_buf))) + if ((res = psiconv_buffer_concat(buf,header_buf))) { + psiconv_error(config,lev+1,0,"Out of memory error"); goto ERROR3; - res = psiconv_buffer_concat(buf,footer_buf); + } + if ((res = psiconv_buffer_concat(buf,footer_buf))) { + psiconv_error(config,lev+1,0,"Out of memory error"); + goto ERROR3; + } ERROR3: @@ -134,5 +149,9 @@ ERROR2: psiconv_buffer_free(header_buf); ERROR1: + if (res) + psiconv_error(config,lev,0,"Writing of page layout section failed"); + else + psiconv_progress(config,lev,0,"End of page layout section"); return res; }