- if (m->box_flags & STYL_BOX) {
- for (i = 0; i < m->style_entries; i++) {
- if (m->s[i]->style_flag && text_pos == m->s[i]->style_end) {
- av_bprintf(buf, "{\\r}");
+ if ((m->box_flags & STYL_BOX) && entry < m->style_entries) {
+ 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)
+ for (i = 0; i < m->ftab_entries; i++) {
+ if (m->s[entry]->style_fontID == m->ftab[i]->fontID)
+ av_bprintf(buf, "{\\fn%s}", m->ftab[i]->font);
+ }
+ if (m->d.color != m->s[entry]->color) {
+ color = m->s[entry]->color;
+ av_bprintf(buf, "{\\1c&H%X&}", RGB_TO_BGR(color));