… | |
… | |
68 | |
68 | |
69 | int psiconv_write_word_styles_section(const psiconv_config config, |
69 | int psiconv_write_word_styles_section(const psiconv_config config, |
70 | psiconv_buffer buf, int lev, |
70 | psiconv_buffer buf, int lev, |
71 | psiconv_word_styles_section value) |
71 | psiconv_word_styles_section value) |
72 | { |
72 | { |
73 | int res,i; |
73 | int res,i,j; |
74 | psiconv_word_style style; |
74 | psiconv_word_style style; |
75 | psiconv_paragraph_layout basepara; |
75 | psiconv_paragraph_layout basepara; |
76 | psiconv_character_layout basechar; |
76 | psiconv_character_layout basechar; |
77 | psiconv_font font; |
77 | psiconv_font font; |
|
|
78 | psiconv_u32 buflen; |
78 | |
79 | |
79 | psiconv_progress(config,lev,0,"Writing word styles section"); |
80 | psiconv_progress(config,lev,0,"Writing word styles section"); |
80 | |
81 | |
81 | if (!value || !value->normal || !value->styles) { |
82 | if (!value || !value->normal || !value->styles) { |
82 | psiconv_error(config,0,psiconv_buffer_length(buf),"Null word styles section"); |
83 | psiconv_error(config,0,psiconv_buffer_length(buf),"Null word styles section"); |
… | |
… | |
104 | res = psiconv_write_character_layout_list(config,buf,lev+1,value->normal->character, |
105 | res = psiconv_write_character_layout_list(config,buf,lev+1,value->normal->character, |
105 | basechar); |
106 | basechar); |
106 | basechar->font = font; |
107 | basechar->font = font; |
107 | if (res) |
108 | if (res) |
108 | goto ERROR3; |
109 | goto ERROR3; |
|
|
110 | buflen = psiconv_buffer_length(buf); |
109 | if ((res = psiconv_unicode_write_char(config,buf,lev+1, |
111 | if ((res = psiconv_unicode_write_char(config,buf,lev+1, |
110 | value->normal->hotkey))) |
112 | value->normal->hotkey))) |
111 | goto ERROR3; |
113 | goto ERROR3; |
|
|
114 | for (j = psiconv_buffer_length(buf) - buflen; j < 4; j++) |
|
|
115 | if ((res = psiconv_write_u8(config,buf,lev+1,0))) |
|
|
116 | goto ERROR3; |
|
|
117 | |
112 | if ((res = psiconv_write_u8(config,buf,lev+1,psiconv_list_length(value->styles)))) |
118 | if ((res = psiconv_write_u8(config,buf,lev+1,psiconv_list_length(value->styles)))) |
113 | goto ERROR3; |
119 | goto ERROR3; |
114 | |
120 | |
115 | |
121 | |
116 | |
122 | |
… | |
… | |
118 | if (!(style = psiconv_list_get(value->styles,i))) { |
124 | if (!(style = psiconv_list_get(value->styles,i))) { |
119 | psiconv_error(config,0,psiconv_buffer_length(buf),"Massive memory corruption"); |
125 | psiconv_error(config,0,psiconv_buffer_length(buf),"Massive memory corruption"); |
120 | res = -PSICONV_E_NOMEM; |
126 | res = -PSICONV_E_NOMEM; |
121 | goto ERROR3; |
127 | goto ERROR3; |
122 | } |
128 | } |
|
|
129 | buflen = psiconv_buffer_length(buf); |
123 | if ((res = psiconv_unicode_write_char(config,buf,lev+1,style->hotkey))) |
130 | if ((res = psiconv_unicode_write_char(config,buf,lev+1,style->hotkey))) |
124 | goto ERROR3; |
131 | goto ERROR3; |
|
|
132 | for (j = psiconv_buffer_length(buf) - buflen; j < 4; j++) |
|
|
133 | if ((res = psiconv_write_u8(config,buf,lev+1,0))) |
|
|
134 | goto ERROR3; |
125 | } |
135 | } |
126 | if ((res = psiconv_write_u8(config,buf,lev+1,psiconv_list_length(value->styles)))) |
136 | if ((res = psiconv_write_u8(config,buf,lev+1,psiconv_list_length(value->styles)))) |
127 | goto ERROR3; |
137 | goto ERROR3; |
128 | for (i = 0; i < psiconv_list_length(value->styles); i++) { |
138 | for (i = 0; i < psiconv_list_length(value->styles); i++) { |
129 | if (!(style = psiconv_list_get(value->styles,i))) { |
139 | if (!(style = psiconv_list_get(value->styles,i))) { |