[MPlayer-cvslog] CVS: main mplayer.c,1.879,1.880

Alban Bedel CVS syncmail at mplayerhq.hu
Thu Nov 3 15:19:27 CET 2005


CVS change done by Alban Bedel CVS

Update of /cvsroot/mplayer/main
In directory mail:/var2/tmp/cvs-serv25481

Modified Files:
	mplayer.c 
Log Message:
Autoload vobsub's from ~/.mplayer/sub


Index: mplayer.c
===================================================================
RCS file: /cvsroot/mplayer/main/mplayer.c,v
retrieving revision 1.879
retrieving revision 1.880
diff -u -r1.879 -r1.880
--- mplayer.c	17 Oct 2005 18:16:28 -0000	1.879
+++ mplayer.c	3 Nov 2005 14:19:25 -0000	1.880
@@ -1591,10 +1591,26 @@
         mp_msg(MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadSub,vobsub_name);
     }else if(sub_auto && filename && (strlen(filename)>=5)){
       /* try to autodetect vobsub from movie filename ::atmos */
-      char *buf = malloc((strlen(filename)-3) * sizeof(char));
+      char *buf = malloc((strlen(filename)-3) * sizeof(char)),*psub;
       memset(buf,0,strlen(filename)-3); // make sure string is terminated
       strncpy(buf, filename, strlen(filename)-4); 
       vo_vobsub=vobsub_open(buf,spudec_ifo,0,&vo_spudec);
+      /* try from ~/.mplayer/sub */
+      if(!vo_vobsub && (psub = get_path( "sub/" ))) {
+          char *bname;
+          int l;
+          bname = strrchr(buf,'/');
+#ifdef WIN32
+          if(!bname) bname = strrchr(buf,'\\');
+#endif
+          if(bname) bname++;
+          else bname = buf;
+          l = strlen(psub) + strlen(bname) + 1;
+          psub = realloc(psub,l);
+          strcat(psub,bname);
+          vo_vobsub=vobsub_open(psub,spudec_ifo,0,&vo_spudec);
+          free(psub);          
+      }
       free(buf);
     }
     if(vo_vobsub){




More information about the MPlayer-cvslog mailing list