Mercurial > mplayer.hg
diff subreader.c @ 509:1b2cd175236f
add sub autodetect
| author | pontscho |
|---|---|
| date | Wed, 18 Apr 2001 20:25:04 +0000 |
| parents | 7d544020e398 |
| children | abd7391a31e3 |
line wrap: on
line diff
--- a/subreader.c Wed Apr 18 19:12:35 2001 +0000 +++ b/subreader.c Wed Apr 18 20:25:04 2001 +0000 @@ -199,6 +199,54 @@ return first; } +char * strreplace( char * in,char * what,char * whereof ) +{ + int i; + char * tmp; + + if ( ( in == NULL )||( what == NULL )||( whereof == NULL )||( ( tmp=strstr( in,what ) ) == NULL ) ) return NULL; + for( i=0;i<strlen( whereof );i++ ) tmp[i]=whereof[i]; + if ( strlen( what ) > strlen( whereof ) ) tmp[i]=0; + return in; +} + +char * sub_filename( char * fname ) +{ + char * sub_name = NULL; + char * sub_tmp = NULL; + int i; +#define SUB_EXTS 4 + char * sub_exts[SUB_EXTS] = + { ".sub", + ".SUB", + ".srt", + ".SRT" }; + + if ( fname == NULL ) return NULL; + for( i=strlen( fname );i>0;i-- ) + if( fname[i] == '.' ) + { + sub_tmp=(char *)&fname[i]; + break; + } + if ( i == 0 ) return NULL; + sub_name=strdup( fname ); + for ( i=0;i<SUB_EXTS;i++ ) + { + FILE * f; + + strcpy( sub_name,fname ); + f=fopen( strreplace( sub_name,sub_tmp,sub_exts[i] ),"rt" ); + if ( f != NULL ) + { + fclose( f ); + printf( "SUB: Detected sub file: %s\n",sub_name ); + return sub_name; + } + } + return NULL; +} + #if 0 int main(int argc, char **argv) { // for testing
