diff lisp/cmdloop.el @ 5125:b5df3737028a ben-lisp-object

merge
author Ben Wing <ben@xemacs.org>
date Wed, 24 Feb 2010 01:58:04 -0600
parents fd36a980d701
children 9fa29ec759e3
line wrap: on
line diff
--- a/lisp/cmdloop.el	Wed Jan 20 07:05:57 2010 -0600
+++ b/lisp/cmdloop.el	Wed Feb 24 01:58:04 2010 -0600
@@ -344,35 +344,36 @@
   (if (and teach-extended-commands-p
 	   (interactive-p))
       ;; Remember the keys, run the command, and show the keys (if
-      ;; any).  The funny variable names are a poor man's guarantee
-      ;; that we don't get tripped by this-command doing something
-      ;; funny.  Quoth our forefathers: "We want lexical scope!"
-      (let ((_execute_command_keys_ (where-is-internal this-command))
-	    (_execute_command_name_ this-command)) ; the name can change
-	(command-execute this-command t)
-	(when _execute_command_keys_
-	  ;; Normally the region is adjusted in post_command_hook;
-	  ;; however, it is not called until after we finish.  It
-	  ;; looks ugly for the region to get updated after the
-	  ;; delays, so we do it now.  The code below is a Lispified
-	  ;; copy of code in event-stream.c:post_command_hook().
-	  (if (and (not zmacs-region-stays)
-		   (or (not (eq (selected-window) (minibuffer-window)))
-		       (eq (zmacs-region-buffer) (current-buffer))))
-	      (zmacs-deactivate-region)
-	    (zmacs-update-region))
-	  ;; Wait for a while, so the user can see a message printed,
-	  ;; if any.
-	  (when (sit-for 1)
-	    (display-message
-		'no-log
-	      (format (if (cdr _execute_command_keys_)
-			  "Command `%s' is bound to keys: %s"
-			"Command `%s' is bound to key: %s")
-		      _execute_command_name_
-		      (sorted-key-descriptions _execute_command_keys_)))
-	    (sit-for teach-extended-commands-timeout)
-	    (clear-message 'no-log))))
+      ;; any).  The symbol-macrolet avoids some lexical-scope lossage.
+      (symbol-macrolet
+	  ((execute-command-keys #:execute-command-keys)
+	   (execute-command-name #:execute-command-name))
+	(let ((execute-command-keys (where-is-internal this-command))
+	      (execute-command-name this-command)) ; the name can change
+	  (command-execute this-command t)
+	  (when execute-command-keys
+	    ;; Normally the region is adjusted in post_command_hook;
+	    ;; however, it is not called until after we finish.  It
+	    ;; looks ugly for the region to get updated after the
+	    ;; delays, so we do it now.  The code below is a Lispified
+	    ;; copy of code in event-stream.c:post_command_hook().
+	    (if (and (not zmacs-region-stays)
+		     (or (not (eq (selected-window) (minibuffer-window)))
+			 (eq (zmacs-region-buffer) (current-buffer))))
+		(zmacs-deactivate-region)
+	      (zmacs-update-region))
+	    ;; Wait for a while, so the user can see a message printed,
+	    ;; if any.
+	    (when (sit-for 1)
+	      (display-message
+		  'no-log
+		(format (if (cdr execute-command-keys)
+			    "Command `%s' is bound to keys: %s"
+			  "Command `%s' is bound to key: %s")
+			execute-command-name
+			(sorted-key-descriptions execute-command-keys)))
+	      (sit-for teach-extended-commands-timeout)
+	      (clear-message 'no-log)))))
     ;; Else, just run the command.
     (command-execute this-command t)))