From 46765420620509f17dbd6a90f6829e6e2b26b0c6 Mon Sep 17 00:00:00 2001 From: Noam Postavsky Date: Wed, 22 Feb 2017 21:48:29 -0500 Subject: [PATCH] Don't record eshell/clear "command" in history (Bug#25838) `eshell/clear' is implemented by sending a series of blank lines, which is not a useful thing to have in the history. * lisp/eshell/em-hist.el (eshell-input-filter-default): Use `string-blank-p' which does check for newlines (even though newlines have comment-end syntax, not whitespace syntax class). * lisp/eshell/esh-mode.el (eshell/clear): Remove `eshell-add-to-history' from `eshell-input-filter-functions' while sending the blank lines. This change is needed to solve the bug if the user customizes `eshell-input-filter' to something that doesn't filter newlines. --- lisp/eshell/em-hist.el | 3 ++- lisp/eshell/esh-mode.el | 6 ++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index 99158c76863..5c6e6291209 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -55,6 +55,7 @@ ;;; Code: (eval-when-compile (require 'cl-lib)) +(eval-when-compile (require 'subr-x)) ; `string-blank-p' (require 'ring) (require 'esh-opt) @@ -208,7 +209,7 @@ element, regardless of any text on the command line. In that case, (defun eshell-input-filter-default (input) "Do not add blank input to input history. Returns non-nil if INPUT is blank." - (not (string-match "\\`\\s-*\\'" input))) + (not (string-blank-p input))) (defun eshell-input-filter-initial-space (input) "Do not add input beginning with empty space to history. diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index b1195c9e1de..0fd0c183016 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -882,8 +882,10 @@ If SCROLLBACK is non-nil, clear the scrollback contents." (interactive) (if scrollback (eshell/clear-scrollback) - (insert (make-string (window-size) ?\n)) - (eshell-send-input))) + (let ((eshell-input-filter-functions + (remq 'eshell-add-to-history eshell-input-filter-functions))) + (insert (make-string (window-size) ?\n)) + (eshell-send-input)))) (defun eshell/clear-scrollback () "Clear the scrollback content of the eshell window." -- 2.39.5