# DP: Use `command -v editor`, as an editor, if available.

--- a/bashline.c
+++ b/bashline.c
@@ -921,8 +921,8 @@ hostnames_matching (text)
    command being entered (if no explicit argument is given), otherwise on
    a command from the history file. */
 
-#define VI_EDIT_COMMAND		"fc -e \"${VISUAL:-${EDITOR:-vi}}\""
-#define EMACS_EDIT_COMMAND	"fc -e \"${VISUAL:-${EDITOR:-emacs}}\""
+#define VI_EDIT_COMMAND		"fc -e \"${VISUAL:-${EDITOR:-$(command -v editor || echo vi)}}\""
+#define EMACS_EDIT_COMMAND	"fc -e \"${VISUAL:-${EDITOR:-$(command -v editor || echo emacs)}}\""
 #define POSIX_VI_EDIT_COMMAND	"fc -e vi"
 
 static int
--- a/builtins/fc.def
+++ b/builtins/fc.def
@@ -171,11 +171,11 @@ set_verbose_flag ()
 }
 
 /* String to execute on a file that we want to edit. */
-#define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-vi}}"
+#define FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-$(command -v editor || echo vi)}}"
 #if defined (STRICT_POSIX)
 #  define POSIX_FC_EDIT_COMMAND "${FCEDIT:-ed}"
 #else
-#  define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-ed}}"
+#  define POSIX_FC_EDIT_COMMAND "${FCEDIT:-${EDITOR:-$(command -v editor || echo ed)}}"
 #endif
 
 int
