summaryrefslogtreecommitdiff
path: root/lisp/eshell/em-hist.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/eshell/em-hist.el')
-rw-r--r--lisp/eshell/em-hist.el19
1 files changed, 14 insertions, 5 deletions
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 198b1d017c4..067c5ea7ff2 100644
--- a/lisp/eshell/em-hist.el
+++ b/lisp/eshell/em-hist.el
@@ -119,15 +119,14 @@ If set to t, history will always be saved, silently."
(const :tag "Always save" t))
:group 'eshell-hist)
-(defcustom eshell-input-filter
- (function
- (lambda (str)
- (not (string-match "\\`\\s-*\\'" str))))
+(defcustom eshell-input-filter 'eshell-input-filter-default
"Predicate for filtering additions to input history.
Takes one argument, the input. If non-nil, the input may be saved on
the input history list. Default is to save anything that isn't all
whitespace."
- :type 'function
+ :type '(radio (function-item eshell-input-filter-default)
+ (function-item eshell-input-filter-initial-space)
+ (function :tag "Other function"))
:group 'eshell-hist)
(put 'eshell-input-filter 'risky-local-variable t)
@@ -206,6 +205,16 @@ element, regardless of any text on the command line. In that case,
;;; Functions:
+(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)))
+
+(defun eshell-input-filter-initial-space (input)
+ "Do not add input beginning with empty space to history.
+Returns nil if INPUT is prepended by blank space, otherwise non-nil."
+ (not (string-match-p "\\`\\s-+" input)))
+
(defun eshell-hist-initialize ()
"Initialize the history management code for one Eshell buffer."
(add-hook 'eshell-expand-input-functions