[slime-devel] [BUG] ed-in-emacs on symbols

Terje Norderhaug terje at in-progress.com
Thu Jul 2 07:43:02 UTC 2009


The ed-in-emacs function may err when given certain symbols as  
argument. In particular, multiple escaped characters in a symbol can  
trip it up.

For example, with AquaMacs + Clozure:

(ed 'a\ b\ c)
=> error in process filter: Wrong number of arguments: NIL, 3

(ed-in-emacs '|ab)c|)
=> error in process filter: No known definition for: common-lisp- 
user::ab (in nil)

The cause is that ed-in-emacs attempts to pass the raw symbol when  
dispatching :ED to emacs:

1. dispatch-event: (:EMACS-REX (SWANK:LISTENER-EVAL "(ed 'a\\ b\\  
c)") "COMMON-LISP-USER" :REPL-THREAD 74)
2. send-event: #<PROCESS repl-thread(36)> (:EMACS-REX (SWANK:LISTENER- 
EVAL "(ed 'a\\ b\\ c)") "COMMON-LISP-USER" 74)
3. dispatch-event: (:ED COMMON-LISP-USER::|A B C|)
4. WRITE: (:ed common-lisp-user::|A B C|)

Common LISP typically outputs a symbol using bars for |multiple  
escape|. However, this is not understood by the emacs reader.

How can we change the encoding of the :ED dispatch symbol argument to  
fix this issue?

-- Terje Norderhaug 









More information about the slime-devel mailing list