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