Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!HPLB.HPL.HP.COM!ange From: ange@HPLB.HPL.HP.COM (Andy Norman) Newsgroups: gnu.emacs.gnus Subject: Re: sorting subjects Message-ID: <8907311549.AA11658@otter.hpl.hp.com> Date: 31 Jul 89 15:48:52 GMT References: Sender: news@tut.cis.ohio-state.edu Reply-To: Andy Norman Organization: The Internet Lines: 39 > How can I do this? Thanks for any help in advance. Well, this is something I knocked up in 10 mins. It may not be the most efficient of code, but it may solve your problem... Hope this helps. -- ange -- ange@hplb.hpl.hp.com -------------------------------------------------------------------------------- (setq gnus-Select-group-hook '(lambda () (mapcar (function (lambda (header) (nntp-set-header-subject header (gnus-simplify-subject (gnus-header-subject header) 're-only)))) gnus-newsgroup-headers) (ange-sort-headers))) (defun ange-sort-headers () (let ((alist nil) ;assoc list keyed on subject (entry nil) ;current assoc entry (elt nil)) ;current elt of list (while gnus-newsgroup-headers (setq elt (car gnus-newsgroup-headers)) (setq entry (assoc (nntp-header-subject elt) alist)) (if entry (rplacd entry (cons elt (cdr entry))) (setq alist (cons (list (nntp-header-subject elt) elt) alist))) (setq gnus-newsgroup-headers (cdr gnus-newsgroup-headers))) (setq alist (reverse alist)) (while alist (setq elt (car alist)) (setq gnus-newsgroup-headers (nconc gnus-newsgroup-headers (reverse (cdr elt)))) (setq alist (cdr alist)))))