[slime-devel] String arguments to define-key

Harald Hanche-Olsen hanche at math.ntnu.no
Tue Oct 18 20:21:29 UTC 2005

I have just started playing with the emacs-unicode-2 branch from the
emacs CVS repository.  It was not happy with slime.el, choking on this
piece of code:

	 (define-key slime-doc-map (string modified) command)

where modified is the result of (slime-control-modified-char key):  A
very large integer.

The following patch seems to cure the problem.

Index: slime.el
RCS file: /project/slime/cvsroot/slime/slime.el,v
retrieving revision 1.556
diff -u -r1.556 slime.el
--- slime.el	17 Oct 2005 18:15:32 -0000	1.556
+++ slime.el	18 Oct 2005 20:11:37 -0000
@@ -714,7 +714,7 @@
              (define-key slime-doc-map (string key) command)
              (unless (equal key ?h)     ; But don't bind C-h
                (let ((modified (slime-control-modified-char key)))
-                 (define-key slime-doc-map (string modified) command)))))
+                 (define-key slime-doc-map (vector modified) command)))))
   ;; C-c C-d is the prefix for the doc map.
   (slime-define-key "\C-d" slime-doc-map :prefixed t :inferior t)
   ;; Who-xref
@@ -724,7 +724,7 @@
              ;; We bind both unmodified and with control.
              (define-key slime-who-map (string key) command)
              (let ((modified (slime-control-modified-char key)))
-                 (define-key slime-who-map (string modified) command))))
+                 (define-key slime-who-map (vector modified) command))))
   ;; C-c C-w is the prefix for the who-xref map.
   (slime-define-key "\C-w" slime-who-map :prefixed t :inferior t))

In fact, I don't understand how the original code is supposed to work,
since older emacsen seem to just strip off the high bits before
putting them in the string.  Surely, vectors are a more robust way
than strings to specify key sequences?

The good news is that, with this modification, slime seems to work
fine with this bleeding edge emacs.  But then I have only played with
it for two minutes.

- Harald

More information about the slime-devel mailing list