>>>>> "Kai" == Kai Großjohann >>>>> "Re: Trouble selecting group in recent cvs" >>>>> Fri, 29 Nov 2002 16:36:03 +0100 Kai> jam@jamux.com (John A. Martin) writes: >>>>>> "Kai" == Kai Großjohann >>>>>> "Re: Trouble selecting group in recent cvs" >>>>>> Fri, 29 Nov 2002 14:22:04 +0100 >> Kai> Could you load gnus-sum.el (the .el is important) and get Kai> another backtrace? I think the new one will contain more Kai> information. >> >> ,---- >> | Signaling: (void-function nil) >> | nil() >> | funcall(nil) >> | (let ((face ...)) (unless (eq face ...) (gnus-put-text-property-excluding-characters-with-faces beg ... ... ...) (when gnus-summary-highlight-line-function ...))) >> | (let* ((list gnus-summary-highlight) (beg ...) (article ...) (score ...) (mark ...) (inhibit-read-only t) (default gnus-summary-default-score) (default-high gnus-summary-default-high-score) (default-low gnus-summary-default-low-score) (downloaded ...)) (let (...) (unless ... ... ...))) >> | gnus-summary-highlight-line() Kai> Uh. There are two instances of `funcall' in that function, Kai> and the first one invokes gnus-summary-highlight-line-0. Kai> Does your gnus-sum.el contain gnus-summary-highlight-line-0? Yes. Kai> If not, try updating from CVS. If yes, then I'm stumped. Kai> Please investigate as follows: Kai> Put point inside the definition of Kai> gnus-summary-highlight-line and type M-x edebug-defun RET. Kai> Then do stuff that reproduces the error. During execution, Kai> Emacs will show you the source code of Kai> gnus-summary-highlight-line and allows you to single-step Kai> with SPC. Do that single-stepping and report where it fails. Kai> Also report any other strange things that you might see. ,---- | ;; New implementation by Christian Limpach . | (defun gnus-summary-highlight-line () | "Highlight current line according to `gnus-summary-highlight'." | (let* ((list gnus-summary-highlight) | (beg (gnus-point-at-bol)) | (article (gnus-summary-article-number)) | (score (or (cdr (assq (or article gnus-current-article) | gnus-newsgroup-scored)) | gnus-summary-default-score 0)) | (mark (or (gnus-summary-article-mark) gnus-unread-mark)) | (inhibit-read-only t) | (default gnus-summary-default-score) | (default-high gnus-summary-default-high-score) | (default-low gnus-summary-default-low-score) | (downloaded (and (boundp 'gnus-agent-article-alist) | gnus-agent-article-alist | ;; Optimized for when gnus-summary-highlight-line is called multiple times for articles in ascending order (i.e. initial generation of summary buffer). | (progn | (if (and (eq gnus-summary-highlight-line-downloaded-alist gnus-agent-article-alist) | (<= (caar gnus-summary-highlight-line-downloaded-cached) article)) | nil | (setq gnus-summary-highlight-line-downloaded-alist gnus-agent-article-alist | gnus-summary-highlight-line-downloaded-cached gnus-agent-article-alist)) | (let (n) | (while (and (< (caar gnus-summary-highlight-line-downloaded-cached) article) | (setq n (cdr gnus-summary-highlight-line-downloaded-cached))) | (setq gnus-summary-highlight-line-downloaded-cached n))) | (and (eq (caar gnus-summary-highlight-line-downloaded-cached) article) | (cdar gnus-summary-highlight-line-downloaded-cached)))))) | => (let ((face (funcall (gnus-summary-highlight-line-0))-!-)) | (unless (eq face (get-text-property beg 'face)) | (gnus-put-text-property-excluding-characters-with-faces | beg (gnus-point-at-eol) 'face | (setq face (if (boundp face) (symbol-value face) face))) | (when gnus-summary-highlight-line-function | (funcall gnus-summary-highlight-line-function article face)))))) `----v ,----^ | Recent minibuffer messages (most recent first): | | Result: nil | Result: nil | Result: nil | Result: t | Result: 0 = C-@ | Result: 0 = C-@ | Result: 0 = C-@ | Result: ?! | Result: ?! | Result: 0 = C-@ | Result: 0 = C-@ | Result: nil | Result: nil | Result: nil | Result: 368 | Result: 368 | Result: 368 | Result: 1 = C-a | C-c C-a not defined. | Quit | Result: (((eq mark gnus-canceled-mark) . gnus-summary-cancelled-face) ((and (> score default-high) (or (eq mark gnus-dormant-mark) (eq mark gnus-ticked-mark))) . gnus-summary-high-ticked-face) ((and (< score default-low) (or (eq mark gnus-dormant-mark) (eq mark gnus-ticked-mark))) . gnus-summary-low-ticked-face) ((or (eq mark gnus-dormant-mark) (eq mark gnus-ticked-mark)) . gnus-summary-normal-ticked-face) ((and (> score default-high) (eq mark gnus-ancient-mark)) . gnus-summary-high-ancient-face) ((and (< score default-low) (eq mark gnus-ancient-mark)) . gnus-summary-low-ancient-face) ((eq mark gnus-ancient-mark) . gnus-summary-normal-ancient-face) (downloaded . gnus-agent-downloaded-article-face) ((and (> score default-high) (eq mark gnus-unread-mark)) . gnus-summary-high-unread-face) ((and (< score default-low) (eq mark gnus-unread-mark)) . gnus-summary-low-unread-face) ((eq mark gnus-unread-mark) . gnus-summary-normal-unread-face) ((and (> score default-high) (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark))) . gnus-summary-high-unread-face) ((and (< score default-low) (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark))) . gnus-summary-low-unread-face) ((and (memq mark (list gnus-downloadable-mark gnus-undownloaded-mark)) (memq article gnus-newsgroup-unreads)) . gnus-summary-normal-unread-face) ((memq mark (list gnus-downloadable-mark gnus-undownloaded-mark)) . gnus-summary-normal-read-face) ((> score default-high) . gnus-summary-high-read-face) ((< score default-low) . gnus-summary-low-read-face) (t . gnus-summary-normal-read-face)) | Generating summary... | Fetching headers for nnmaildir:sg-dc...done | Fetching headers for nnmaildir:sg-dc... | Retrieving newsgroup: nnmaildir:sg-dc... | Edebug: gnus-summary-highlight-line | Loading lazy-lock...done | Loading lazy-lock... | Loading gnus-sum.el...done | Loading gnus-sum.el... | Symbol's function definition is void: nil | Generating summary... | Fetching headers for nnmaildir:sg-dc...done | Loading sort...done | Loading sort... | Fetching headers for nnmaildir:sg-dc... | Loading gnus-ml...done | Loading gnus-ml... | Retrieving newsgroup: nnmaildir:sg-dc... | Checking new news...done | Opening nntp server on news.gnus.org...done | Opening nntp server on news.gnus.org... | nnmh: Reading incoming mail (no new mail)...done | nnmh: Reading incoming mail from file... | Opening nnmh server...done | Opening nnmh server... | Opening nndoc server on gnus-help...done | Opening nndoc server on gnus-help... | Checking new news... | No new newsgroups | Reading active file from archive via nnfolder...done | Reading active file from archive via nnfolder... | Opening nnfolder server on archive...done | Opening nnfolder server on archive... | Reading active file from archive via nnfolder... | Opening nnmaildir server...done | Opening nnmaildir server... | Reading active file via nnmaildir... | Reading active file via nnnil...done | Reading active file via nnnil... | Reading active file via nnnil... | Reading /home/jam/.newsrc.eld... | Loading bbdb-gnus...done | Loading bbdb-gnus... | Loading gnus-agent...done | Loading gnus-agent... | Loading regexp-opt...done | Loading regexp-opt... | Loading edebug...done | Loading edebug... | Loading /home/jam/.xemacs/lisp/boxquote...done | Loading /home/jam/.xemacs/lisp/boxquote... | Loading /home/jam/.xemacs/lisp/smiley...done | Loading /home/jam/.xemacs/lisp/smiley... | Reading directory /home/jam/...done | Reading directory /home/jam/... | Reading directory /home/jam/.saves-*...done | Reading directory /home/jam/.saves-*... | Loading font...done | Loading font... `---- I'm too clumbsy to nail it down clearly but I think, in ,---- | (defun gnus-summary-highlight-line-0 () | (if (and (eq gnus-summary-highlight-line-trigger | gnus-summary-highlight) | gnus-summary-highlight-line-cached) | gnus-summary-highlight-line-cached | (setq gnus-summary-highlight-line-trigger gnus-summary-highlight | gnus-summary-highlight-line-cached | (let* ((cond (list 'cond)) | (c cond) | (list gnus-summary-highlight)) | (while list | (setcdr c (cons (list (caar list) (list 'quote (cdar list))) nil)) | (setq c (cdr c) | list (cdr list))) | (gnus-byte-compile (list 'lambda nil cond)))))) `---- the while is exited with nil. It is for sure nil over the first few iterations. I can't seem to get edebug to run up to a breakpoint and show the value coming out of the loop. For example, SPACE doesn't seem to work here for me. jam