Add an option for eshell-input-filter

* etc/NEWS: Document changes.
* lisp/eshell/em-hist.el (eshell-input-filter): Set value to function
symbol.  Change type to a radio for choosing functions.  Refer to both
new functions.
(eshell-input-filter-default): New function.  Same body as the previous
value of eshell-input-filter.
(eshell-input-filter-initial-space): New function.
This commit is contained in:
Mark Oteiza 2016-10-18 18:05:51 -04:00
parent 2ce01c494d
commit 224443922c
2 changed files with 21 additions and 5 deletions

View file

@ -308,6 +308,13 @@ viewing HTML files and the like.
breakpoint (e.g. with "f" and "o") by customizing the new option
'edebug-sit-on-break'.
** Eshell
*** 'eshell-input-filter's value is now a named function
'eshell-input-filter-default', and has a new custom option
'eshell-input-filter-initial-space' to ignore adding commands prefixed
with blank space to eshell history.
** eww
+++

View file

@ -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