Mercurial > mplayer.hg
changeset 31280:17db8e56de4c
Extract duplicated code into a separate function.
author | reimar |
---|---|
date | Mon, 07 Jun 2010 19:01:15 +0000 |
parents | 0fc579d95340 |
children | cc43f6d8bb6b |
files | subreader.c |
diffstat | 1 files changed, 11 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/subreader.c Mon Jun 07 18:53:20 2010 +0000 +++ b/subreader.c Mon Jun 07 19:01:15 2010 +0000 @@ -111,6 +111,15 @@ return NULL; } +static void sami_add_line(subtitle *current, char *buffer, char **pos) { + char *p = *pos; + *p = 0; + trail_space(buffer); + if (*buffer && current->lines < SUB_MAX_TEXT) + current->text[current->lines++] = strdup(buffer); + *pos = buffer; +} + static subtitle *sub_read_line_sami(stream_t* st, subtitle *current, int utf16) { static char line[LINE_LEN+1]; static char *s = NULL, *slacktime_s; @@ -162,9 +171,7 @@ case 3: /* get all text until '<' appears */ if (*s == '\0') break; else if (!strncasecmp (s, "<br>", 4)) { - *p = '\0'; p = text; trail_space (text); - if (text[0] != '\0' && current->lines < SUB_MAX_TEXT) - current->text[current->lines++] = strdup (text); + sami_add_line(current, text, &p); s += 4; } else if ((*s == '{') && !sub_no_text_pp) { state = 5; ++s; continue; } @@ -243,9 +250,7 @@ // For the last subtitle if (current->end <= 0) { current->end = current->start + sub_slacktime; - *p = '\0'; trail_space (text); - if (text[0] != '\0' && current->lines < SUB_MAX_TEXT) - current->text[current->lines++] = strdup (text); + sami_add_line(current, text, &p); } return current;