[slime-devel] Slime macroexpansion breaks on xemacs.
Raymond Toy
toy.raymond at gmail.com
Fri Mar 4 18:39:32 UTC 2011
This issue is 100% reproducible. In a file, put some form like:
(loop for k from 1 to 10 do (print i))
Make sure the file ends at the closing paren; no newline or anything.
Put the cursor after the closing paren, and press C-c C-m to have slime
macroexpand it. This causes xemacs to crash (due to a bug in xemacs).
But the issue is this in slime-sexp-at-point-for-macroexpansion:
(let ((string (slime-sexp-at-point-or-error))
(bounds (bounds-of-thing-at-point 'sexp))
(char-at-point (substring-no-properties (thing-at-point 'char))))
In xemacs, (thing-at-point 'char) returns nil. Then
(substring-no-properties nil) crashes xemacs. But if the obvious fix is
applied to xemacs, slime would just signal an error about nil not being
a string.
My workaround for this is
(char-at-point (substring-no-properties (or (thing-at-point 'char) "\n")))
Not great, but solves the problem. I'm not sure what the right solution
would be.
Ray
More information about the slime-devel
mailing list