summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authorulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-01-20 15:39:13 +0000
committerulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2>2008-01-20 15:39:13 +0000
commitb060a1c6443d47a4b592508b6651ec8589eaf511 (patch)
treed868238a7593218e4dea60aecff924629773ed4b /mplayer.c
parenta27f74e98c21eb3a4006403529d90e1a41a3d68a (diff)
downloadmpv-b060a1c6443d47a4b592508b6651ec8589eaf511.tar.bz2
mpv-b060a1c6443d47a4b592508b6651ec8589eaf511.tar.xz
Fix auto-sub code to support filenames with any extension length.
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@25818 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/mplayer.c b/mplayer.c
index 3364018fd8..9482d61799 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -2895,11 +2895,16 @@ if (edl_output_filename) {
if(vo_vobsub==NULL)
mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadSub,
filename_recode(vobsub_name));
- }else if(sub_auto && filename && (strlen(filename)>=5)){
+ } else if (sub_auto && filename){
/* try to autodetect vobsub from movie filename ::atmos */
- char *buf = malloc((strlen(filename)-3)),*psub;
- memset(buf,0,strlen(filename)-3); // make sure string is terminated
- strncpy(buf, filename, strlen(filename)-4);
+ char *buf = strdup(filename), *psub;
+ char *pdot = strrchr(buf, '.');
+ char *pslash = strrchr(buf, '/');
+#ifdef WIN32
+ if (!pslash) pslash = strrchr(buf, '\\');
+#endif
+ if (pdot && (!pslash || pdot > pslash))
+ *pdot = '\0';
vo_vobsub=vobsub_open(buf,spudec_ifo,0,&vo_spudec);
/* try from ~/.mplayer/sub */
if(!vo_vobsub && (psub = get_path( "sub/" ))) {