[MPlayer-dev-eng] Re: [PATCH] Incomplete patch for USF (correct diff) NOVIRUS
Moritz Bunkus
moritz at bunkus.org
Wed Dec 10 09:27:54 CET 2003
Hi,
+ if (!sscanf(line, " <subtitle start=\"%d:%d:%d.%d\" stop=\"%d:%d:%d.%d\"", &a1, &a2, &a3, &a4, &b1, &b2, &b3, &b4)) {
sscanf returns the number of items assigned, so you should better test
for 'sscanf(...) != 8'.
+ printf("SUB: SORRY! USF decoding doesn't parse XML correctly.\n"); //TODO: allow more than one line per time marker
Please use the mp_msg() function for such messages. Never use printf.
+ while (!(p = strstr(line, "<text"))) {
+ fgets(line, LINE_LEN, fd);
+ }
If the subtitle file is broken then this will lead to an endless
loop. You should check fgets' return value.
+ p = &line[0];
+ int len = 0;
+ // detects </text
+ for (;!(*p=='t' && *p-1=='x' && *p-2=='e' && *p-3=='t' && *p-4=='/' && *p-5=='<') && *p; p++,len++); //TODO: allow more than one line per subtitle
Huh!?
1) * (dereference) has precedence over - (subtraction), so *p-1 is
(*p) - 1. This is not what you want.
2) If you want *(p-1), then you're accessing memory that you're not
supposed to access! p is set to &line[0] at the start and you just
access *(p - 5)...
Mosu
--
If Darl McBride was in charge, he'd probably make marriage
unconstitutional too, since clearly it de-emphasizes the commercial
nature of normal human interaction, and probably is a major impediment
to the commercial growth of prostitution. - Linus Torvalds
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/mplayer-dev-eng/attachments/20031210/9d118618/attachment.pgp>
More information about the MPlayer-dev-eng
mailing list