Re: gnus-group-change-level
Eric Abrahamsen <[email protected]>
| Newsgroups | gmane.emacs.gnus.general |
|---|---|
| Message-ID | <[email protected]> |
James Cloos <[email protected]> writes: >>>>>> "EA" == Eric Abrahamsen <[email protected]> writes: > > EA> (let ((level 55)) > EA> (dolist (grp very-long-list-of-group-names) > EA> (when-let ((entry (gnus-group-entry grp))) > EA> (setcar (cdadr entry) level)))) > > Ah. Cool. As a first step I tried out: > > (cdadr (gnus-group-entry "nnimap+oxygen:[email protected]")) > > since ding was at point and thus easy to copy-n-yank. > > It errored out that (listp 0) return nil. > > Some experimentation showed that: > > (cadadr (gnus-group-entry "nnimap+oxygen:[email protected]")) > > returned the cons (11 . 15), where 11 is the current level. > (I'm not sure what that cons' cdr is.) Ah, that's "rank". Once upon a time I knew what rank meant, but have since forgotten. > I see aroung 7% of the groups' lines in .newsrc.eld have just an integer > at that point for level, whereas the others have such a cons. > > Eg this returns just the integer 11: > > (cadadr (gnus-group-entry "nnimap+oxygen:GitHub-Torvalds")) > > I take it setcar will not do the right thing in such cases, yes? > And something like a cl-typecase would be required? > > Is cadadr setf-able in emacs? I'd also forgotten there are tools for reliably setting the level, whether or not rank is involved. Specifically there's a `gnus-info-level' that advertises itself as setf-able, so try: (let ((level 55)) (dolist (grp very-long-list-of-group-names) (when-let ((info (gnus-get-info grp))) (setf (gnus-info-level info) level)))) Note that now we're using `gnus-get-info', not `gnus-group-entry'. Sorry I didn't (re-)discover this the first time around! > P.S. setting (nnimap-expunge never) or (nnimap-expunge 'never) > in an entry in gnus-secondary-select-methods doesn't seem > to do anything. dovecot removes the files everytime gnus > quits the *Summary* buffer. I want to set \Delete but not > to expunge... Hmm, that ought to work -- how are you marking your messages for deletion?