#!/bin/sh
#

prefix=@prefix@
suppbindir=@prefix@/lib/mc/bin

do_compat_replace () {
    cp $1 $1.orig
    if test "$?" != "0"; then
	echo "Command \`cp $1 $1.orig' failed. File $1 not changed!"
	return 1
    fi
    sed '/^mc ()/ {
     # Add comment
     i\
#Commented out by mc_fninstall. Source @prefix@/lib/mc/bin/mc.sh instead.
}

/^mc ()[^}]*$/,/}[; ]*$/{
    # Function definition over several lines
    s/^\(.*\)$/#\1/g
}

/^mc ().*}.*$/{
    # Function definition on one line
    s/^\(.*\)$/#\1/g
}' < $1.orig > $1

    echo >> $1
    echo ". $suppbindir/mc.sh" >> $1
    echo ""
    echo "I commented out the mc () function definitions in $1 and added"
    echo "\`. $suppbindir/mc.sh'. Your previous profile has been saved as"
    echo "$1.orig."
}

if test -n `echo $prefix | grep prefix`; then
    prefix=/usr/local
fi
if test x$BASH = x; then
    BASHRC=
else
    BASHRC=~/.bashrc
fi
if test "x$EUID" = x0; then
    PROFILE=/etc/profile
else
    PROFILE=~/.profile
fi
if test -f $PROFILE; then
    A=`grep "mc ()" $PROFILE`
    B=
    if test -n "$BASHRC"; then
	if test -f $BASHRC; then
	    B=`grep "mc ()" $BASHRC`
	fi
    fi

    if test -n "$A" -o -n "$B"; then
	if test -n "$B"; then
	    echo "While examining your $PROFILE and $BASHRC,"
	else
            echo "While examining your $PROFILE,"
	fi
	echo "I've found that you have a probably outdated mc () function definition"
        echo "there. Do you want to replace this function definition with "
        echo "        . $suppbindir/mc.sh"
        read rep
        case $rep in
	    [Yy]*) ;;
	    *) exit ;;
        esac
        if test -n "$A"; then
		do_compat_replace $PROFILE
        fi
        if test -n "$B"; then
		do_compat_replace $BASHRC
        fi

	exit 0
    fi
    unset -f do_compat_replace

    # This doesn't handle the case that $prefix changed 
    A=`grep "/mc.sh" $PROFILE`
    B=
    if test -n "$BASHRC"; then
	if test -f $BASHRC; then
	    B=`grep "/mc.sh" $BASHRC`
	fi
    fi
    if test -n "$A"; then
	:
    else 
        if test -n "$B"; then
	    :
	else
            A=`typeset -f | grep "mc ()" 2>/dev/null`
	    if test ! -n "$A"; then
	        echo "mc () installation."
		if test -n "$BASHRC"; then
		    echo "While examining your $PROFILE and $BASHRC,"
		else
	            echo "While examining your $PROFILE,"
		fi
		echo "I've found that you do not source $suppbindir/mc.sh there."
		echo "This shell script defines a function which enables a feature of mc(1)"
                echo "that when you leave mc(1), you return to a directory where you were"
                echo "in mc just before exiting and not to the directory you've started mc"
                echo "from."
	        echo "Would you like to append"
	        echo "test -f $suppbindir/mc.sh && . $suppbindir/mc.sh"
		if test -n "$BASHRC"; then
	            echo "to your (p) $PROFILE (mc function will be active in your login shells)"
		    echo -n "or to your (b) $BASHRC (in every bash instance) or (n) no? [p|b|n] "
		else
	            echo -n "function to your $PROFILE? [y|n] "
		fi
	        read rep
		if test -n "$BASHRC"; then
		    INITFILE=$BASHRC
		else
		    INITFILE=$PROFILE
		fi
	        case $rep in
		    [Yy]*) ;;
		    [Pp]*) INITFILE=$PROFILE ;;
                    *) exit 1;;
	        esac
                echo >>$INITFILE
	        echo 'test -f $suppbindir/mc.sh && . $suppbindir/mc.sh' >>$INITFILE
	        echo "mc () function appended to your $INITFILE"
	    fi
        fi 
    fi
fi
