- if (text_pos == m->s[entry]->style_start) {
- style_active = 1;
- if (m->s[entry]->bold ^ m->d.bold)
- av_bprintf(buf, "{\\b%d}", m->s[entry]->bold);
- if (m->s[entry]->italic ^ m->d.italic)
- av_bprintf(buf, "{\\i%d}", m->s[entry]->italic);
- if (m->s[entry]->underline ^ m->d.underline)
- av_bprintf(buf, "{\\u%d}", m->s[entry]->underline);
- if (m->s[entry]->fontsize != m->d.fontsize)
- av_bprintf(buf, "{\\fs%d}", m->s[entry]->fontsize);
- if (m->s[entry]->style_fontID != m->d.fontID)
+ const StyleBox *style = &m->s[entry];
+ if (text_pos == style->style_end) {
+ av_bprintf(buf, "{\\r}");
+ color = m->d.color;
+ entry++;
+ style++;
+ }
+ if (entry < m->style_entries && text_pos == style->style_start) {
+ if (style->bold ^ m->d.bold)
+ av_bprintf(buf, "{\\b%d}", style->bold);
+ if (style->italic ^ m->d.italic)
+ av_bprintf(buf, "{\\i%d}", style->italic);
+ if (style->underline ^ m->d.underline)
+ av_bprintf(buf, "{\\u%d}", style->underline);
+ if (style->fontsize != m->d.fontsize)
+ av_bprintf(buf, "{\\fs%d}", style->fontsize);
+ if (style->style_fontID != m->d.fontID)