summaryrefslogtreecommitdiffstats
path: root/subreader.c
diff options
context:
space:
mode:
authoratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-11 15:41:17 +0000
committeratmos4 <atmos4@b3059339-0415-0410-9bf9-f77b7e298cf2>2001-11-11 15:41:17 +0000
commitee898ac2f938393b8d8106db9780ebde2e267cb1 (patch)
tree7d2752ec7ef329863ca87e538a314b8de26a0dda /subreader.c
parent1ffb6bfa2be8d8f3b5e527d7950b6d2b115c1cda (diff)
downloadmpv-ee898ac2f938393b8d8106db9780ebde2e267cb1.tar.bz2
mpv-ee898ac2f938393b8d8106db9780ebde2e267cb1.tar.xz
Applied SAMI patch by Evgeny Chukreev <codedj at echo dot ru>
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2837 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'subreader.c')
-rw-r--r--subreader.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/subreader.c b/subreader.c
index 282228e193..85fc36e800 100644
--- a/subreader.c
+++ b/subreader.c
@@ -89,16 +89,21 @@ subtitle *sub_read_line_sami(FILE *fd, subtitle *current) {
case 3: /* get all text until '<' appears */
if (*s == '\0') { break; }
- else if (*s == '<') { state = 4; }
- else if (!strncasecmp (s, "&nbsp;", 6)) { *p++ = ' '; s += 6; }
- else if (*s == '\r') { s++; }
- else if (!strncasecmp (s, "<br>", 4) || *s == '\n') {
+ else if (!strncasecmp (s, "<br>", 4)) {
*p = '\0'; p = text; trail_space (text);
if (text[0] != '\0')
current->text[current->lines++] = strdup (text);
- if (*s == '\n') s++; else s += 4;
+ s += 4;
}
+ else if (*s == '<') { state = 4; }
+ else if (!strncasecmp (s, "&nbsp;", 6)) { *p++ = ' '; s += 6; }
+ else if (*s == '\t') { *p++ = ' '; s++; }
+ else if (*s == '\r' || *s == '\n') { s++; }
else *p++ = *s++;
+
+ /* skip duplicated space */
+ if (p > text + 2) if (*(p-1) == ' ' && *(p-2) == ' ') p--;
+
continue;
case 4: /* get current->end or skip <TAG> */