emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] master 2244439: Add an option for eshell-input-filter


From: Mark Oteiza
Subject: [Emacs-diffs] master 2244439: Add an option for eshell-input-filter
Date: Tue, 18 Oct 2016 22:10:56 +0000 (UTC)

branch: master
commit 224443922ce169ab0e21ad8495d32b269972c028
Author: Mark Oteiza <address@hidden>
Commit: Mark Oteiza <address@hidden>

    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.
---
 etc/NEWS               |    7 +++++++
 lisp/eshell/em-hist.el |   19 ++++++++++++++-----
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index c5245bc..4f88de9 100644
--- 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
 
 +++
diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el
index 198b1d0..067c5ea 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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]