>>>> "Ilpo" == Ilpo Nyyssönen
<iny+dev(a)iki.fi> writes:
Ilpo> sperber(a)informatik.uni-tuebingen.de (Michael Sperber [Mr. Preprocessor]) writes:
> Oops, sorry for being unclear. I meant an *Elisp* source
> backtrace---I need to fix Gnus.
Ilpo> I deleted the .elc-files and here is a better one:
Ilpo> Signaling: (wrong-type-argument window-live-p #<window 0x1424b>)
Ilpo> select-window(#<window 0x1424b>)
Ilpo> (unwind-protect (progn (if w ... ...) (gnus-summary-next-page)) (select-window
GnusStartBufferWindow))
Ilpo> (let* ((GnusStartBufferWindow ...) (buf gnus-summary-buffer) (w ...))
(unwind-protect (progn ... ...) (select-window GnusStartBufferWindow)))
Ilpo> (gnus-eval-in-buffer-window gnus-summary-buffer (gnus-summary-next-page))
Ilpo> (lambda nil "Show the next page of the article." (interactive)
(gnus-eval-in-buffer-window gnus-summary-buffer (gnus-summary-next-page)))()
Ilpo> call-interactively(gnus-article-goto-next-page)
Ilpo> (dispatch-event "[internal]")
Ah, I see---the code in question indeed is only in CVS, not in Oort
0.15. Can you try replacing `gnus-article-goto-next-page' with this
code (untested) and run that for while?
(defmacro gnus-eval-in-buffer-window (buffer &rest forms)
"Pop to BUFFER, evaluate FORMS, and then return to the original window."
(let ((tempvar (make-symbol "GnusStartBufferWindow"))
(w (make-symbol "w"))
(buf (make-symbol "buf")))
`(let* ((,tempvar (selected-window))
(,buf ,buffer)
(,w (gnus-get-buffer-window ,buf 'visible)))
(unwind-protect
(progn
;; If the window isn't live, FORMS have done a
;; window-configuration save/restore, so we should be OK.
(if (and ,w (window-live-p ,w))
(progn
(select-window ,w)
(set-buffer (window-buffer ,w)))
(pop-to-buffer ,buf))
,@forms)
(select-window ,tempvar)))))
--
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla