? compile-string-for-emacs.patch
? set-key-adds-command-to-table.patch
? Apps/Inspector/disassembly.fasl
? Apps/Inspector/inspector.fasl
? Apps/Inspector/package.fasl
? Backends/Null/frame-manager.fasl
? Backends/Null/graft.fasl
? Backends/Null/medium.fasl
? Backends/Null/package.fasl
? Backends/Null/port.fasl
? Drei/abbrev.fasl
? Drei/base.fasl
? Drei/basic-commands.fasl
? Drei/buffer-streams.fasl
? Drei/buffer.fasl
? Drei/core-commands.fasl
? Drei/core.fasl
? Drei/delegating-buffer.fasl
? Drei/drawing-options.fasl
? Drei/drei-clim.fasl
? Drei/drei-redisplay.fasl
? Drei/drei.fasl
? Drei/editing.fasl
? Drei/fundamental-syntax.fasl
? Drei/input-editor.fasl
? Drei/kill-ring.fasl
? Drei/lisp-syntax-commands.fasl
? Drei/lisp-syntax-swank.fasl
? Drei/lisp-syntax-swine.fasl
? Drei/lisp-syntax.fasl
? Drei/lr-syntax.fasl
? Drei/misc-commands.fasl
? Drei/modes.fasl
? Drei/motion.fasl
? Drei/packages.fasl
? Drei/rectangle.fasl
? Drei/search-commands.fasl
? Drei/syntax.fasl
? Drei/targets.fasl
? Drei/undo.fasl
? Drei/views.fasl
? Drei/Persistent/binseq-package.fasl
? Drei/Persistent/binseq.fasl
? Drei/Persistent/binseq2.fasl
? Drei/Persistent/obinseq.fasl
? Drei/Persistent/persistent-buffer.fasl
? Drei/Persistent/persistent-undo.fasl
? Drei/cl-automaton/automaton-package.fasl
? Drei/cl-automaton/automaton.fasl
? Drei/cl-automaton/eqv-hash.fasl
? Drei/cl-automaton/regexp.fasl
? Drei/cl-automaton/state-and-transition.fasl
? ESA/colors.fasl
? ESA/esa-buffer.fasl
? ESA/esa-command-parser.fasl
? ESA/esa-io.fasl
? ESA/esa.fasl
? ESA/packages.fasl
? ESA/utils.fasl
? Extensions/tab-layout.fasl
Index: ESA/esa.lisp
===================================================================
RCS file: /project/mcclim/cvsroot/mcclim/ESA/esa.lisp,v
retrieving revision 1.25
diff -u -r1.25 esa.lisp
--- ESA/esa.lisp	18 May 2008 09:24:06 -0000	1.25
+++ ESA/esa.lisp	8 Jun 2008 16:49:59 -0000
@@ -1039,25 +1039,29 @@
   #-(and)
   (unless (consp command)
     (setf command (list command)))
-  (let ((gesture (car gestures)))
-    (cond ((null (cdr gestures))
-	   (add-keystroke-to-command-table
-	    table gesture :command command :errorp nil)
-	   (when (and (listp gesture)
-		      (find :meta gesture))
-             ;; KLUDGE: this is a workaround for poor McCLIM
-             ;; behaviour; really this canonization should happen in
-             ;; McCLIM's input layer.
-	     (set-key command table
-		      (list (list :escape)
-			    (let ((esc-list (remove :meta gesture)))
-			      (if (and (= (length esc-list) 2)
-				       (find :shift esc-list))
-				  (remove :shift esc-list)
-				  esc-list))))))
-	  (t (set-key command
-		      (ensure-subtable table gesture)
-		      (cdr gestures))))))
+  (labels ((%set-key (command table gestures)
+             (let ((gesture (car gestures)))
+               (cond ((null (cdr gestures))
+                      (add-keystroke-to-command-table
+                       table gesture :command command :errorp nil)
+                      (when (and (listp gesture) (find :meta gesture))
+                        ;; KLUDGE: this is a workaround for poor McCLIM
+                        ;; behaviour; really this canonization should happen in
+                        ;; McCLIM's input layer.
+                        (%set-key command table
+                                  (list (list :escape)
+                                        (let ((esc-list (remove :meta gesture)))
+                                          (if (and (= (length esc-list) 2)
+                                                   (find :shift esc-list))
+                                              (remove :shift esc-list)
+                                              esc-list))))))
+                     (t (%set-key command
+                                  (ensure-subtable table gesture)
+                                  (cdr gestures)))))))
+    (let ((name (if (consp command) (command-name command) command)))
+      (unless (command-present-in-command-table-p name table)
+        (add-command-to-command-table name table)))
+    (%set-key command table gestures)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; 
