[slime-devel] [PATCH] fix restoration of window config when quitting from *compiler notes*

2007-04-12 Tobias C. Rittweiler <INSERT-EMAIL-HERE> * slime.el: Pressing `q' in *compiler notes* after a `C-c C-k' or `C-c M-k' would not probably restore the original window configuration. Fix that. (slime-get-temp-buffer-create): New &key arg WINDOW-CONFIGURATION. (slime-with-xref-buffer): Likewise. (slime-compilation-finished): New &optional arg WINDOW-CONFIG. (slime-maybe-show-xrefs-for-notes): Likewise. (slime-show-xrefs) Likewise. (slime-maybe-list-compiler-notes): Likewise. (slime-list-compiler-notes): Likewise. (slime-compilation-finished-continuation): Renamed to SLIME-MAKE-COMPILATION-FINISHED-CONTINUATION. (slime-make-compilation-finished-continuation): Now takes two args, the current buffer and optionally the current window config to be restored. (slime-compile-file): Save current window configuration before popping up the REPL for compilation output, pass it down.

Helu, I tried this patch on Emacs 22.0.91.1 of 2006-12-10, but it seems to break on xrefs. The truncated backtrace reads: Debugger entered--Lisp error: (void-variable window-configuration) (or window-configuration (current-window-configuration)) (setq slime-xref-saved-window-configuration (or window-configurat$ (progn (slime-init-xref-buffer G110255 G110253 G110254) (make-loc$ (prog2 (progn (slime-init-xref-buffer G110255 G110253 G110254) (m$ (save-current-buffer (set-buffer (get-buffer-create ...)) (prog2 $ (with-current-buffer (get-buffer-create (format "*XREF(%s: %s)*" $ (let ((G110253 type) (G110254 symbol) (G110255 package)) (with-cu$ (slime-with-xref-buffer (package type symbol :window-configuratio$ (if (null xrefs) (message "No references found for %s." symbol) ($ slime-show-xrefs((("logior" ("#'LOGIOR" :location ... ... ...) ("$ slime-show-definitions("logior" (("#'LOGIOR" (:location ... ... .$ (if (and (slime-length> definitions 1) (not all-locations-equal))$ (let ((all-locations-equal ...)) (if (and ... ...) (slime-show-de$ slime-goto-definition("logior" (("#'LOGIOR" (:location ... ... ..$ (cond ((null definitions) (if slime-edit-definition-fallback-func$ (let ((definitions ...)) (cond (... ...) (... ...) (t ...))) slime-edit-definition("logior") call-interactively(slime-edit-definition) I suspect defmacro* is the culprit, and would suggest avoiding dependence on emacs `cl' semantics -- Regards Madhu

Madhu <enometh@meer.net> writes:
Helu, I tried this patch on Emacs 22.0.91.1 of 2006-12-10, but it seems to break on xrefs. The truncated backtrace reads:
fixed. -- -Marco Ring the bells that still can ring. Forget your perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen

Marco Baringer <mb@bese.it> writes:
Madhu <enometh@meer.net> writes:
Helu, I tried this patch on Emacs 22.0.91.1 of 2006-12-10, but it seems to break on xrefs. The truncated backtrace reads:
fixed.
Thanks Macro for taking care of the issue; and thanks Madhu for testing the patch! I, however, found another regression when trying to abort a compilation, since the return value of SWANK::SWANK-COMPILER wasn't as homogeneous as I'd have thought. Fix attached. -T. 2007-04-16 Tobias C. Rittweiler <INSERT-EMAIL-HERE> * swank.lisp (swank-compiler): Fix the return value to always be a list of two elements even if the abort restart is invoked which originally just returned NIL. (Which wouldn't play with the recent change to use DESTRUCTURING-BIND in SLIME-COMPILATION-FINISHED.)

"Tobias C. Rittweiler" <tcr@freebits.de> writes:
2007-04-12 Tobias C. Rittweiler <INSERT-EMAIL-HERE>
* slime.el: Pressing `q' in *compiler notes* after a `C-c C-k' or `C-c M-k' would not probably restore the original window configuration. Fix that.
applied. -- -Marco Ring the bells that still can ring. Forget your perfect offering. There is a crack in everything. That's how the light gets in. -Leonard Cohen
participants (3)
-
Madhu
-
Marco Baringer
-
Tobias C. Rittweiler