
case $# in
  0)
    ;;
  1)
    case "$1" in
      failsafe)
        if grep -qs ^allow-failsafe "$OPTIONFILE"; then
          if [ -e /usr/bin/x-terminal-emulator ]; then
            if [ -x /usr/bin/x-terminal-emulator ]; then
              exec x-terminal-emulator -geometry +1+1
            else
              # fatal error
              errormsg "Xsession: unable to launch failsafe X session;" \
                       "x-terminal-emulator not executable.  Aborting."
            fi
          else
            # fatal error
            errormsg "Xsession: unable to launch failsafe X session;" \
                     "x-terminal-emulator not found.  Aborting."
          fi
        fi
        ;;
      default)
        ;;
      *)
        PROGRAM=$(which $1)
        if [ -n "$PROGRAM" -a -e "$PROGRAM" ]; then
          if [ -x "$PROGRAM" ]; then
            STARTUP=$PROGRAM
          else
            message "Xsession: unable to launch $1 X session; $1 not" \
                    "executable.  Falling back to default session."
          fi
        else
          message "Xsession: unable to launch $1 X session; $1 not found." \
                  "Falling back to default session."
        fi
        ;;
    esac
    ;;
  *)
    message "Xsession: unsupported number of arguments ($#).  Falling back" \
            "to default session."
    ;;
esac
