summaryrefslogtreecommitdiffstats
path: root/playtreeparser.c
diff options
context:
space:
mode:
authorrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-04-26 19:33:37 +0000
committerrtognimp <rtognimp@b3059339-0415-0410-9bf9-f77b7e298cf2>2004-04-26 19:33:37 +0000
commit7cfacb3340f4195a6f47cdb0de3095df53a3a18f (patch)
tree183428b11510a2973b9442a63f573637cc1866f4 /playtreeparser.c
parentcda54f5aea1d0eacee72bed52fff862eab071a84 (diff)
downloadmpv-7cfacb3340f4195a6f47cdb0de3095df53a3a18f.tar.bz2
mpv-7cfacb3340f4195a6f47cdb0de3095df53a3a18f.tar.xz
Fix embedded smil playlist detection if there are parameters on the url
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12301 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'playtreeparser.c')
-rw-r--r--playtreeparser.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/playtreeparser.c b/playtreeparser.c
index 81680e8feb..2785d398e6 100644
--- a/playtreeparser.c
+++ b/playtreeparser.c
@@ -11,6 +11,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
+#include <ctype.h>
#include "m_config.h"
#include "playtree.h"
#include "playtreeparser.h"
@@ -545,7 +546,8 @@ embedded_playlist_parse(char *line) {
play_tree_t*
parse_textplain(play_tree_parser_t* p) {
char* line;
- int reflen;
+ char *c;
+ int embedded;
play_tree_t *list = NULL, *entry = NULL, *last_entry = NULL;
mp_msg(MSGT_PLAYTREE,MSGL_V,"Trying plaintext playlist...\n");
@@ -556,11 +558,19 @@ parse_textplain(play_tree_parser_t* p) {
if(line[0] == '\0')
continue;
- //Special check for smil refernce in file
- reflen=strlen(line);
- if ( (reflen>5) && (strncasecmp(line+(reflen-5),".smil",5)==0) ) { //embedded playlist link
- entry=embedded_playlist_parse(line);
- } else { //regular file link
+ //Special check for smil reference in file
+ embedded = 0;
+ if (strlen(line) > 5)
+ for(c = line; c[0]; c++ )
+ if((c[0] == '.') && (tolower(c[1]) == 's') && (tolower(c[2])== 'm') &&
+ (tolower(c[3]) == 'i') && (tolower(c[4]) == 'l') &&
+ (!c[5] || c[5] == '?' || c[5] == '&')) {
+ entry=embedded_playlist_parse(line);
+ embedded = 1;
+ break;
+ }
+
+ if (!embedded) { //regular file link
entry = play_tree_new();
play_tree_add_file(entry,line);
}