From: Daniel Caujolle-B. <f1...@us...> - 2004-09-15 16:11:18
|
Update of /cvsroot/xine/xine-ui/src/xitk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5797 Modified Files: event.c mediamark.c Log Message: fix playlist length < 3 and shuffle playmode segfault. Index: event.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/event.c,v retrieving revision 1.262 retrieving revision 1.263 diff -u -r1.262 -r1.263 --- event.c 14 Sep 2004 20:40:30 -0000 1.262 +++ event.c 15 Sep 2004 16:11:09 -0000 1.263 @@ -1189,7 +1189,6 @@ * init playlist */ for (i = 0; i < nfiles; i++) { - char *sub = NULL; char *file = atoa(filenames[i]); /* grab recursively all files from dir */ @@ -1201,16 +1200,23 @@ mediamark_collect_from_directory(file); } else { - if((sub = (char *)get_last_double_semicolon(file)) != NULL) { - if(is_ipv6_last_double_semicolon(file)) - sub = NULL; - else { - *sub = 0; - sub += 2; + + if(mrl_look_like_playlist(file)) + (void) mediamark_concat_mediamarks(file); + else { + char *sub = NULL; + + if((sub = (char *)get_last_double_semicolon(file)) != NULL) { + if(is_ipv6_last_double_semicolon(file)) + sub = NULL; + else { + *sub = 0; + sub += 2; + } } + + mediamark_append_entry((const char *)file, (const char *)file, sub, 0, -1, 0, 0); } - - mediamark_append_entry((const char *)file, (const char *)file, sub, 0, -1, 0, 0); } } Index: mediamark.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/mediamark.c,v retrieving revision 1.91 retrieving revision 1.92 diff -u -r1.91 -r1.92 --- mediamark.c 14 Sep 2004 20:40:31 -0000 1.91 +++ mediamark.c 15 Sep 2004 16:11:09 -0000 1.92 @@ -2649,7 +2649,7 @@ next = gGui->playlist.cur; } - else if(gGui->playlist.num) + else if(gGui->playlist.num == 2) next = !gGui->playlist.cur; return next; |