]> git.eshelyaron.com Git - emacs.git/commitdiff
Add an option for eshell-input-filter
authorMark Oteiza <mvoteiza@udel.edu>
Tue, 18 Oct 2016 22:05:51 +0000 (18:05 -0400)
committerMark Oteiza <mvoteiza@udel.edu>
Tue, 18 Oct 2016 22:05:51 +0000 (18:05 -0400)
* 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.

etc/NEWS
lisp/eshell/em-hist.el

index c5245bcd18bcc2032130e222a91daa672b4dc847..4f88de9c5b6454d399205c3914e41692eed747f8 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -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
 
 +++
index 198b1d017c4a30ea0537a0574cdc8860ff6096c1..067c5ea7ff247a42122ec515b43bdf87f867ff5a 100644 (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