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