#!/bin/sh ret="$?" # Prevent recursive loops, where these values are set to this script p="$(which sensible-editor)" [ "$(which $EDITOR || true)" = "$p" ] && EDITOR= [ "$(which $VISUAL || true)" = "$p" ] && VISUAL= [ "$(which $SELECTED_EDITOR || true)" = "$p" ] && SELECTED_EDITOR= if [ -n "$VISUAL" ]; then ${VISUAL} "$@" ret="$?" if [ "$ret" -ne 126 ] && [ "$ret" -ne 127 ]; then exit "$ret" fi fi if [ -r ~/.selected_editor ]; then . ~/.selected_editor 2>/dev/null || true elif [ -z "$EDITOR" ] && [ -z "$SELECTED_EDITOR" ] && [ -t 0 ]; then select-editor && . ~/.selected_editor 2>/dev/null || true fi ${EDITOR:-${SELECTED_EDITOR:-editor}} "$@" ret="$?" if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then nano "$@" ret="$?" if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then nano-tiny "$@" ret="$?" if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then vi "$@" ret="$?" if [ "$ret" -eq 126 ] || [ "$ret" -eq 127 ]; then echo "Couldn't find an editor!" 1>&2 echo "Set the \$EDITOR environment variable to your desired editor." 1>&2 exit 1 fi fi fi fi exit "$ret"