summaryrefslogtreecommitdiff
path: root/lisp/eshell
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2007-10-26 08:07:17 +0000
committerJohn Wiegley <johnw@newartisans.com>2007-10-26 08:07:17 +0000
commit4990598e2ca81efe8086c77e89324736c9fd3a61 (patch)
tree57c266c3b3dbb9d7ae5250680f42e6e97a9ef12b /lisp/eshell
parent6a83140588c243ad5aa0f85d903b843679d9c09c (diff)
downloademacs-4990598e2ca81efe8086c77e89324736c9fd3a61.tar.gz
2007-10-26 John Wiegley <johnw@newartisans.com>
* eshell/em-unix.el (eshell/diff): Before calling the `diff' function, ensure that the third argument is turned into a NIL if the string is otherwise completely empty (either no characters, or all tabs/spaces). This fixes a bug from a user who found himself unable to customize `diff-switches' and still use Eshell's diff command.
Diffstat (limited to 'lisp/eshell')
-rw-r--r--lisp/eshell/em-unix.el10
1 files changed, 9 insertions, 1 deletions
diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el
index 850d51dcac5..384fa083947 100644
--- a/lisp/eshell/em-unix.el
+++ b/lisp/eshell/em-unix.el
@@ -974,6 +974,13 @@ Show wall-clock time elapsed during execution of COMMAND.")
(if eshell-diff-window-config
(set-window-configuration eshell-diff-window-config)))
+(defun nil-blank-string ( string )
+ "if a string is all blanks return nil, if there are non-blank characters
+return the string"
+ (cond
+ ((string-match "[^[:blank:]]" string ) string)
+ (nil)))
+
(defun eshell/diff (&rest args)
"Alias \"diff\" to call Emacs `diff' function."
(let ((orig-args (eshell-stringify-list (eshell-flatten-list args))))
@@ -995,7 +1002,8 @@ Show wall-clock time elapsed during execution of COMMAND.")
(setcdr (last args 3) nil))
(with-current-buffer
(condition-case err
- (diff old new (eshell-flatten-and-stringify args))
+ (diff old new
+ (nil-blank-string (eshell-flatten-and-stringify args)))
(error
(throw 'eshell-replace-command
(eshell-parse-command "*diff" orig-args))))