… | |
… | |
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; |
109 | if ((res = psiconv_write_u32(config,buf,lev+1,psiconv_unicode_to_char(config,value->normal->hotkey)))) |
110 | buflen = psiconv_buffer_length(buf); |
|
|
111 | if ((res = psiconv_unicode_write_char(config,buf,lev+1, |
|
|
112 | value->normal->hotkey))) |
110 | 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 | |
111 | 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)))) |
112 | goto ERROR3; |
119 | goto ERROR3; |
113 | |
120 | |
114 | |
121 | |
115 | |
122 | |
… | |
… | |
117 | if (!(style = psiconv_list_get(value->styles,i))) { |
124 | if (!(style = psiconv_list_get(value->styles,i))) { |
118 | psiconv_error(config,0,psiconv_buffer_length(buf),"Massive memory corruption"); |
125 | psiconv_error(config,0,psiconv_buffer_length(buf),"Massive memory corruption"); |
119 | res = -PSICONV_E_NOMEM; |
126 | res = -PSICONV_E_NOMEM; |
120 | goto ERROR3; |
127 | goto ERROR3; |
121 | } |
128 | } |
122 | if ((res = psiconv_write_u32(config,buf,lev+1,psiconv_unicode_to_char(config,style->hotkey)))) |
129 | buflen = psiconv_buffer_length(buf); |
|
|
130 | if ((res = psiconv_unicode_write_char(config,buf,lev+1,style->hotkey))) |
123 | 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; |
124 | } |
135 | } |
125 | 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)))) |
126 | goto ERROR3; |
137 | goto ERROR3; |
127 | for (i = 0; i < psiconv_list_length(value->styles); i++) { |
138 | for (i = 0; i < psiconv_list_length(value->styles); i++) { |
128 | if (!(style = psiconv_list_get(value->styles,i))) { |
139 | if (!(style = psiconv_list_get(value->styles,i))) { |