Print WP matches first, since YP takes more time.
[utils.git] / planime
diff --git a/planime b/planime
index 62c01a4..b2b14dd 100755 (executable)
--- a/planime
+++ b/planime
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/bin/bash
 
 isnum() {
     grep -xq '[0-9]\+' <<<"$1"
@@ -35,7 +35,7 @@ findfile() {
 }
 
 origargs=("$0" "$@")
-cmdline=(mplayer -fs)
+cmdline=(mplayer -fs -ass)
 
 while [ "${1:0:1}" = - ]; do
     a="$1"
@@ -48,6 +48,16 @@ while [ "${1:0:1}" = - ]; do
        -t)
            cmdline=("${cmdline[@]}" -ao oss:/dev/dsp1)
            ;;
+       -A)
+           while :; do
+               a="$1"
+               shift
+               if [ "$a" = \; ]; then
+                   break;
+               fi
+               cmdline=("${cmdline[@]}" "$a")
+           done
+           ;;
        -s)
            savepar="$1"
            shift
@@ -63,6 +73,9 @@ file=
 tqual=
 if [ $# -eq 0 ]; then
     nextep=y
+    if [ -r curser ]; then
+       base="$base $(<curser)"
+    fi
 elif [ $# -eq 1 ]; then
     if [ -r "$1" ]; then
        file="$1"
@@ -79,11 +92,19 @@ elif [ $# -eq 2 ]; then
        ep="$1"
        tqual="$2"
     else
-       base="$base $1"
+       if [ "$1" = . -a -r curser ]; then
+           base="$base $(<curser)"
+       else
+           base="$base $1"
+       fi
        ep="$2"
     fi
 else
-    base="$base $1"
+    if [ "$1" = . -a -r curser ]; then
+       base="$base $(<curser)"
+    else
+       base="$base $1"
+    fi
     ep="$2"
     tqual="$3"
 fi
@@ -106,10 +127,12 @@ fi
 
 case "${file##*.}" in
     ogm)
-       defopts=(-aid 1 -sid 0)
+       aid=1
+       sid=0
        ;;
     mkv)
-       defopts=(-slang eng -alang jpn)
+       alang=jpn
+       slang=eng
        ;;
 esac
 
@@ -134,12 +157,33 @@ if [ -r "$ifile" ]; then
            cmdline=("${cmdline[@]}" -delay "$arg")
        elif [ "$par" = aspect ]; then
            cmdline=("${cmdline[@]}" -aspect "$arg")
+       elif [ "$par" = alang ]; then
+           unset alang aid
+           alang="$arg"
+       elif [ "$par" = aid ]; then
+           unset alang aid
+           aid="$arg"
+       elif [ "$par" = slang ]; then
+           unset slang sid
+           slang="$arg"
+       elif [ "$par" = sid ]; then
+           unset slang sid
+           sid="$arg"
        fi
     done
     exec 0<&3
     exec 3<&-
-else
-    cmdline=("${cmdline[@]}" "${defopts[@]}")
+fi
+
+if [ -n "$alang" ]; then
+    cmdline=("${cmdline[@]}" -alang "$alang")
+elif [ -n "$aid" ]; then
+    cmdline=("${cmdline[@]}" -aid "$aid")
+fi
+if [ -n "$slang" ]; then
+    cmdline=("${cmdline[@]}" -slang "$slang")
+elif [ -n "$sid" ]; then
+    cmdline=("${cmdline[@]}" -sid "$sid")
 fi
 
 if [ "`hostname`" = pc6 ]; then chwp=y; fi