Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs into emacs-30

This commit is contained in:
Michael Albinus 2024-07-15 18:20:59 +02:00
commit 510ca5e84b
2 changed files with 18 additions and 22 deletions

View file

@ -295,12 +295,8 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil."
(setq-local eshell-hist--new-items 0)
(setq-local eshell-history-ring nil)
(if (minibuffer-window-active-p (selected-window))
(progn
(setq-local eshell-history-append t)
(add-hook 'minibuffer-exit-hook #'eshell-add-command-to-history nil t))
(if eshell-history-file-name
(eshell-read-history nil t)))
(when eshell-history-file-name
(eshell-read-history nil t))
(unless eshell-history-ring
(setq eshell-history-ring (make-ring eshell-history-size)))
@ -411,18 +407,6 @@ input."
(setq eshell-save-history-index eshell-history-index)
(setq eshell-history-index nil))
(defun eshell-add-command-to-history ()
"Add the command entered at `eshell-command's prompt to the history ring.
The command is added to the input history ring, if the value of
variable `eshell-input-filter' returns non-nil when called on the
command.
This function is supposed to be called from the minibuffer, presumably
as a `minibuffer-exit-hook'."
(eshell-add-input-to-history
(buffer-substring (minibuffer-prompt-end) (point-max)))
(eshell--save-history))
(defun eshell-add-to-history ()
"Add last Eshell command to the history ring.
The command is entered into the input history ring, if the value of

View file

@ -256,14 +256,26 @@ information on Eshell, see Info node `(eshell)Top'."
(eshell-mode))
buf))
(declare-function eshell-add-input-to-history "em-hist" (input))
(declare-function eshell--save-history "em-hist" ())
(defun eshell-command-mode-exit ()
"Exit the `eshell-commad-mode' minibuffer and save Eshell history."
(interactive)
(when (eshell-using-module 'eshell-hist)
(eshell-add-input-to-history
(buffer-substring (minibuffer-prompt-end) (point-max)))
(eshell--save-history))
(exit-minibuffer))
(define-minor-mode eshell-command-mode
"Minor mode for `eshell-command' input.
\\{eshell-command-mode-map}"
:keymap (let ((map (make-sparse-keymap)))
(define-key map [(control ?g)] 'abort-recursive-edit)
(define-key map [(control ?m)] 'exit-minibuffer)
(define-key map [(control ?j)] 'exit-minibuffer)
(define-key map [(meta control ?m)] 'exit-minibuffer)
(define-key map [(control ?g)] #'abort-recursive-edit)
(define-key map [(control ?m)] #'eshell-command-mode-exit)
(define-key map [(control ?j)] #'eshell-command-mode-exit)
(define-key map [(meta control ?m)] #'eshell-command-mode-exit)
map))
(define-obsolete-function-alias 'eshell-return-exits-minibuffer