In the absence of a dialog program use builtin select
authorChristian Ebert <blacktrash@gmx.net>
Sat, 4 Dec 2010 00:48:31 +0000 (01:48 +0100)
committerJohannes Weißl <jargon@molb.org>
Sat, 4 Dec 2010 18:22:54 +0000 (19:22 +0100)
muttjump

index 4a1fd9324e32d400d5a37d7aab463cfa0382512b..28fb3a79579315c8cf3f031d60fae3d6a4433142 100755 (executable)
--- a/muttjump
+++ b/muttjump
@@ -175,8 +175,20 @@ if [ $count -gt 1 -a -n "$DIALOG_PROG" ] ; then
     orig_maildir=$($DIALOG_PROG --clear --title "More than one mailbox found" \
         --menu "Select mailbox:" $((count+8)) $((maxwidth+16)) \
         $count $choices 3>&2 2>&1 1>&3-)
     orig_maildir=$($DIALOG_PROG --clear --title "More than one mailbox found" \
         --menu "Select mailbox:" $((count+8)) $((maxwidth+16)) \
         $count $choices 3>&2 2>&1 1>&3-)
+elif [ $count -gt 1 ] ; then
+    dirs=()
+    for f in $orig_msgfiles ; do
+        dirs=(${dirs[@]} "$(dirname "$(dirname "$f")")")
+    done
+    echo "More than one mailbox found"
+    echo "Select mailbox:"
+    select md in ${dirs[@]} ; do
+        orig_maildir="$md"
+        orig_msgfile="${orig_msgfiles[$REPLY]}"
+        break
+    done <> /dev/tty
 else
 else
-    orig_msgfile=$(echo "$orig_msgfiles" | head -n1)
+    orig_msgfile="$orig_msgfiles"
     # get containing maildir of $orig_msgfile
     orig_maildir=$(dirname "$(dirname "$orig_msgfile")")
 fi
     # get containing maildir of $orig_msgfile
     orig_maildir=$(dirname "$(dirname "$orig_msgfile")")
 fi

Benjamin Mako Hill || Want to submit a patch?