Path: utzoo!attcan!utgpu!watmath!att!rutgers!ucsd!usc!snorkelwacker!apple!bbn!gateway!NMSU.EDU!jthomas From: jthomas@NMSU.EDU Newsgroups: comp.emacs Subject: possible s-expr management error (? naw, but ...) Message-ID: <8911160201.AA04995@NMSU.Edu> Date: 16 Nov 89 02:01:02 GMT Sender: news@bbn.COM Reply-To: UNIX-EMACS@VM.TCS.Tulane.EDU Organization: BBN news/mail gateway Lines: 40 Machine: Sun 3/60 OS: SunOS 3.5 Emacs: gnu emacs 18.51.28 Compiler: I'm not sure, I think gcc 1.34, but maybe just Sun cc Gnus: gnus 3.12 Routine: gnus-reorder-newsrc-file of David Lawrence of 27 Jun 89 Situation: I've finally tried to use the gnus-reorder-newsrc-file that David posted last June. But it dies with a "consp nil" error message in a call to setcdr. So I've looked at what's happening using the debugger. It is dying on the line: (insert "-") ----->>>> (setcdr (nth 2 compress-group) (cdr (nth (1- (length compress-group)) compress-group))) (setcdr (memq (nth 2 compress-group) compress-group) nil)))) , because compress-group is nil . So I checked around to see why that might be so. To make a long story shorter, I wandered around and reproducably get in: (if (or nosort (not reordered)) nil (sort-lines nil (progn (re-search-forward "! " nil t) (beginning-of-line) (point)) (point-max)) ---->>> (setq gnus-unsub-assoc (sort gnus-unsub-assoc 'gnus-assoc-lessp))) that before this line, gnus-newsrc-assoc is what it should be, but afterwards it has been changed. It is approximately the right size but is now sorted (as if somehow the last lines of the reorder function have already been called). This would not be noticable if Murphy were really playing games, but gnus-unsub-assoc is missing a couple of unsubscribed newgroups that were in the original gnus-newsrc-assoc. They should be there, but since they're not the setcdr dies later. I realize this scenario is a bit hard to believe, but has anyone else seen something like this? I looks to me as if the pointers for the unsub and newsrc lists have gotten too intermingled. Or am I dreaming? Jim Thomas