view TOOLS/subsearch.sh @ 23708:1fb5f0b13a1a

Fix crash on some DVDs sprintf(tmp,"%.02x",(char)0xef); would print "ffffffef" instead of "ef", in this case this leads to local array buffer overflow and hard to trace stack corruption. The quick, easy & durty solution is to use (unsigned char) or (uint8_t) Fixes Bugzilla 860 & 845
author iive
date Fri, 06 Jul 2007 23:22:51 +0000
parents 4d8489f21983
children
line wrap: on
line source

#!/bin/sh
#
# Collects all the appropriate subtitle files in a given directory and
# its subdirectories, no matter what the filename is.
# Use this together as: mplayer -sub `subsearch.sh` movie
# Author: Alex
#

[ $1 ] && cd `dirname $1`

_sub_names=""

one_dir_search() {
    for i in $dir/*
    do
	case "`echo $i | tr [:upper:] [:lower:]`" in
		*.sub|*.srt|*.mps|*.txt) _sub_names="$i,$_sub_names" ;;
		*) ;;
	esac
    done
}

dir="."
one_dir_search

# add subdirectories too
for dir in *
do
    [ -d $dir ] && one_dir_search
done

_len="`echo $_sub_names | wc -c`"
_len=$((_len-2))
echo $_sub_names | cut -b -"$_len"