diff lisp/eshell/esh-cmd.el @ 96274:b0ac9927a5c0

(eshell-manipulate): Check eshell-debug-command is bound before using it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 25 Jun 2008 15:05:33 +0000
parents 45dbb3c749a6
children 5be4c494e1d5
line wrap: on
line diff
--- a/lisp/eshell/esh-cmd.el	Wed Jun 25 15:01:47 2008 +0000
+++ b/lisp/eshell/esh-cmd.el	Wed Jun 25 15:05:33 2008 +0000
@@ -397,8 +397,7 @@
   "Output a debugging message to '*eshell last cmd*'."
   (let ((buf (get-buffer-create "*eshell last cmd*"))
 	(text (eshell-stringify eshell-current-command)))
-    (save-excursion
-      (set-buffer buf)
+    (with-current-buffer buf
       (if (not tag)
 	  (erase-buffer)
 	(insert "\n\C-l\n" tag "\n\n" text
@@ -997,11 +996,9 @@
 			  (list 'eshell-do-eval
 				(list 'quote command)))))
     (and eshell-debug-command
-	 (save-excursion
-	   (let ((buf (get-buffer-create "*eshell last cmd*")))
-	     (set-buffer buf)
-	     (erase-buffer)
-	     (insert "command: \"" input "\"\n"))))
+         (with-current-buffer (get-buffer-create "*eshell last cmd*")
+           (erase-buffer)
+           (insert "command: \"" input "\"\n")))
     (setq eshell-current-command command)
     (let ((delim (catch 'eshell-incomplete
 		   (eshell-resume-eval))))
@@ -1041,7 +1038,9 @@
 
 (defmacro eshell-manipulate (tag &rest commands)
   "Manipulate a COMMAND form, with TAG as a debug identifier."
-  (if (not eshell-debug-command)
+  ;; Check `bound'ness since at compile time the code until here has not
+  ;; executed yet.
+  (if (not (and (boundp 'eshell-debug-command) eshell-debug-command))
       `(progn ,@commands)
     `(progn
        (eshell-debug-command ,(eval tag) form)