-mc() {
- if [ -n "$SLOWTERM" ]; then
- MC_SLOW="--slow"
- fi
-
- case "$TERM" in
- screen*) # screen, screen.rxvt
- if [ "$TERM" = screen.rxvt ]; then
- MC_SAVE_TERM="$TERM"
- TERM=rxvt
- fi
- MC_XTERM="-x"
- ;;
- esac
-
- #TMPDIR="$HOME"/tmp
- #export TMPDIR
-
- MC_FOUND=NO
-
- for wrapper in \
- /usr/local/share/mc/bin/mc-wrapper.sh \
- /usr/local/libexec/mc/mc-wrapper.sh \
- /usr/share/mc/bin/mc-wrapper.sh; do
- if [ -r $wrapper ]; then
- . $wrapper $MC_SLOW $MC_XTERM "$@"
- rc=$?
- MC_FOUND=YES
- break
- fi
- done
-
- if [ $MC_FOUND = NO ]; then
- for mc in /usr/local/bin/mc /usr/bin/mc; do
- if [ -x $mc ]; then
- MC_TMP_DIR="${TMPDIR-/tmp}/mc-$USER"
- if [ ! -d MC_TMP_DIR="${TMPDIR-/tmp}/mc-$USER" ]; then
- MC_TMP_DIR="${TMPDIR-/tmp}"
- fi
- MC_PWD_FILE="$MC_TMP_DIR/mc.pwd.$$"
- mc_type="`mc_type.py $mc`"
- if [ "$mc_type" = old ]; then
- $mc -P $MC_SLOW $MC_XTERM "$@" > "$MC_PWD_FILE"
- rc=$?
- MC_FOUND=YES
- elif [ "$mc_type" = new ]; then
- $mc -P "$MC_PWD_FILE" $MC_SLOW $MC_XTERM "$@"
- rc=$?
- MC_FOUND=YES
- else
- continue
- fi
- cd "`cat \"$MC_PWD_FILE\"`" && /bin/rm "$MC_PWD_FILE"
- break
- fi
- done
- fi
-
- if [ $MC_FOUND = NO ]; then
- echo "Cannot find mc-wrapper.sh or mc" >&2
- rc=1
- fi
-
- [ -n "$MC_SAVE_TERM" ] && TERM="$MC_SAVE_TERM"
- unset MC_FOUND MC_PWD_FILE MC_SAVE_TERM MC_SLOW MC_TMP_DIR MC_XTERM
- return $rc