--- psiconv/trunk/lib/psiconv/generate_layout.c 2000/12/25 22:25:33 79 +++ psiconv/trunk/lib/psiconv/generate_layout.c 2002/01/29 18:38:38 142 @@ -23,6 +23,11 @@ #include "generate_routines.h" #include "error.h" +#ifdef DMALLOC +#include +#endif + + int psiconv_write_color(psiconv_buffer buf, const psiconv_color value) { int res; @@ -39,13 +44,16 @@ int psiconv_write_font(psiconv_buffer buf, const psiconv_font value) { - int res; + int res,i; if (!value) { psiconv_warn(0,psiconv_buffer_length(buf),"Null font"); return -PSICONV_E_GENERATE; } - if ((res = psiconv_write_string(buf,value->name))) + if ((res = psiconv_write_u8(buf,strlen(value->name)+1))) return res; + for (i = 0; i < strlen(value->name); i++) + if ((res = psiconv_write_u8(buf,value->name[i]))) + return res; return psiconv_write_u8(buf,value->screenfont); } @@ -88,14 +96,12 @@ return -PSICONV_E_GENERATE; } - if (!(extra_buf = psiconv_buffer_new(0))) + if (!(extra_buf = psiconv_buffer_new())) return -PSICONV_E_NOMEM; if ((res = psiconv_write_size(extra_buf,value->font_size))) goto ERROR; if ((res = psiconv_write_u8(extra_buf,value->character))) goto ERROR; - if ((res = psiconv_write_bool(extra_buf,value->on))) - goto ERROR; if ((res = psiconv_write_bool(extra_buf,value->indent))) goto ERROR; if ((res = psiconv_write_color(extra_buf,value->color))) @@ -142,7 +148,7 @@ psiconv_warn(0,psiconv_buffer_length(buf),"Null paragraph layout list"); return -PSICONV_E_GENERATE; } - if (!(extra_buf = psiconv_buffer_new(0))) + if (!(extra_buf = psiconv_buffer_new())) return -PSICONV_E_NOMEM; if (!base || psiconv_compare_color(base->back_color,value->back_color)) { @@ -258,6 +264,13 @@ goto ERROR; } + if (!base || (value->wrap_to_fit_cell != base->wrap_to_fit_cell)) { + if ((res = psiconv_write_u8(extra_buf,0x0f))) + goto ERROR; + if ((res = psiconv_write_bool(extra_buf,value->wrap_to_fit_cell))) + goto ERROR; + } + if (!base || (value->border_distance != base->border_distance)) { if ((res = psiconv_write_u8(extra_buf,0x10))) goto ERROR; @@ -351,7 +364,7 @@ psiconv_warn(0,psiconv_buffer_length(buf),"Null character layout list"); return -PSICONV_E_GENERATE; } - if (!(extra_buf = psiconv_buffer_new(0))) + if (!(extra_buf = psiconv_buffer_new())) return -PSICONV_E_NOMEM; if (!base || psiconv_compare_color(base->color,value->color)) { @@ -399,8 +412,8 @@ if ((res = psiconv_write_u8(extra_buf,0x1f))) goto ERROR; if ((res = psiconv_write_u8(extra_buf, - base->super_sub == psiconv_superscript?1: - base->super_sub == psiconv_superscript?2:0))) + value->super_sub == psiconv_superscript?1: + value->super_sub == psiconv_subscript?2:0))) goto ERROR; }