diff --git a/sphinx_doc_src/cmds/bind.rst b/sphinx_doc_src/cmds/bind.rst index cb90f406f..4bb0aa821 100644 --- a/sphinx_doc_src/cmds/bind.rst +++ b/sphinx_doc_src/cmds/bind.rst @@ -102,6 +102,8 @@ The following special input functions are available: - ``delete-char``, delete one character to the right of the cursor +- ``delete-or-exit``, deletes one character to the right of the cursor or exits the shell if the commandline is empty. + - ``downcase-word``, make the current word lowercase - ``end-of-buffer``, moves to the end of the buffer, i.e. the end of the first line diff --git a/src/reader.cpp b/src/reader.cpp index 88baa3e60..6249a7a08 100644 --- a/src/reader.cpp +++ b/src/reader.cpp @@ -2682,7 +2682,7 @@ void reader_data_t::handle_readline_command(readline_cmd_t c, readline_loop_stat if (el->position < el->size()) { update_buff_pos(el, el->position + 1); remove_backward(); - } else if (c == rl::delete_or_exit) { + } else if (c == rl::delete_or_exit && el->empty()) { reader_set_end_loop(true); } break;