case $1 in
compile|compil|compi|comp|com|co|o)
shift; set -- --mode=compile ${1+"$@"}
;;
execute|execut|execu|exec|exe|ex|e)
shift; set -- --mode=execute ${1+"$@"}
;;
install|instal|insta|inst|ins|in|i)
shift; set -- --mode=install ${1+"$@"}
;;
link|lin|li|l)
shift; set -- --mode=link ${1+"$@"}
;;
uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
shift; set -- --mode=uninstall ${1+"$@"}
;;
esac
Allow abit of time for people to disagree with me, otherwise I agree to
the commit of the other part of your patch if the case statement above
is also included. Oh, and NEWS will need updating again.