diff options
author | ulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-20 15:39:13 +0000 |
---|---|---|
committer | ulion <ulion@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2008-01-20 15:39:13 +0000 |
commit | b060a1c6443d47a4b592508b6651ec8589eaf511 (patch) | |
tree | d868238a7593218e4dea60aecff924629773ed4b | |
parent | a27f74e98c21eb3a4006403529d90e1a41a3d68a (diff) |
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
-rw-r--r-- | mplayer.c | 13 |
1 files changed, 9 insertions, 4 deletions
@@ -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/" ))) { |