Hi Tobias,
here's a comment on one of your recent changes.
2007-06-16 Tobias C. Rittweiler tcr@freebits.de
* slime.el: Pressing `C-M-a' (beginning-of-defun) in midst of the last REPL prompt directs the cursor to the beginning of the prompt. Pressing it again, would do nothing; now it moves the cursor to the start of the previous prompt (as it's consistent with the behaviour when the cursor was placed midst one of the old prompts.)
Likewise for `C-M-e' (end-of-defun)
(slime-keys): New bindings for `C-M-a' and `C-M-e' to SLIME-BEGINNING-OF-DEFUN and SLIME-END-OF-DEFUN respectively. (slime-repl-mode-map): Removed bindings for `C-M-a' and `C-M-e', as they're now inherited from SLIME-KEYS. (slime-repl-beginning-of-defun, slime-repl-end-of-defun): Jump to the previous (next) prompt if called twice in a row.
In general overriding C-M-a and C-M-e is not necessary since the variables `beginnning-of-defun-function' and `end-of-defun-function' can be given buffer-local values. (Also note that just overriding C-M-a and C-M-e is not enough, since there is another binding for these functions on C-M-home and C-M-end.)
Such a `beginnning-of-defun-function' and `end-of-defun-function' are actually already defined in SLIME REPL mode, invoking `slime-repl-previous-prompt', `slime-repl-next-prompt'.
I suspect your code is just working around a bug in `slime-repl-previous-prompt', `slime-repl-next-prompt', which should be fixed instead. Would you like to work on this?
Regards, Matthias