unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#31739: 25.2; Cannot expire articles in virtual group
@ 2018-06-06 18:07 Jamie Forth
  2019-09-29  8:21 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Jamie Forth @ 2018-06-06 18:07 UTC (permalink / raw)
  To: 31739

Hi,

Expiring articles within a non-virtual group works as expected, but not
within a virtual group.

1. Create a new virtual group (G V)
2. Select and add a component group (G v)
3. Enter the new virtual group and mark a message as expirable (E)
4. Quit the group (or B e) to trigger the expiry process results in
   the following messages

Expiring articles...
Expiring articles in <component group>...done
Expiring articles...done

5. Re-enter the virtual group (or C-u M-g), and find that the article
   previously marked as expirable has not been expired.

I’m using nnimap groups and `nnmail-expiry-wait` is set to immediate.

Setting `expiry-wait` and `expiry-target` nnvirtual group parameters
does not seem to have any effect.

Thanks,
Jamie


In GNU Emacs 25.2.2 (x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
 of 2018-05-07, modified by Debian built on binet
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description:	Debian GNU/Linux testing (buster)

Configured using:
 'configure --build x86_64-linux-gnu --prefix=/usr
 --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --build x86_64-linux-gnu
 --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var/lib --infodir=/usr/share/info
 --mandir=/usr/share/man --with-pop=yes
 --enable-locallisppath=/etc/emacs25:/etc/emacs:/usr/local/share/emacs/25.2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.2/site-lisp:/usr/share/emacs/site-lisp
 --with-sound=alsa --without-gconf --with-x=yes --with-x-toolkit=gtk3
 --with-toolkit-scroll-bars 'CFLAGS=-g -O2
 -fdebug-prefix-map=/build/emacs25-NE1ko4/emacs25-25.2+1=. -fstack-protector-strong
 -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time
 -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro'

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LC_MONETARY: en_GB.UTF-8
  value of $LC_NUMERIC: en_GB.UTF-8
  value of $LC_TIME: en_GB.UTF-8
  value of $LANG: en_GB.UTF-8
  locale-coding-system: utf-8-unix

Major mode: Summary

Minor modes in effect:
  recentf-mode: t
  pyvenv-mode: t
  diff-auto-refine-mode: t
  async-bytecomp-package-mode: t
  typo-global-mode: t
  intero-global-mode: t
  shell-dirtrack-mode: t
  global-company-mode: t
  company-mode: t
  global-flycheck-mode: t
  pdf-occur-global-minor-mode: t
  show-paren-mode: t
  ivy-mode: t
  override-global-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent messages:
Expiring articles in nnimap+gold-staff:INBOX...done
Expiring articles in nnimap+gold-staff:Sent Items...done
Expiring articles...done
previous-line: Beginning of buffer [2 times]
nnimap read 0k from gold-staff
Finding sort keys...
Sorting records...
Reordering buffer... Done
No more unseen articles
Auto-saving...

Load-path shadows:
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-mouse hides /home/jamie/.emacs.d/elpa/org-20180604/org-mouse
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-calc hides /home/jamie/.emacs.d/elpa/org-20180604/ob-calc
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sql hides /home/jamie/.emacs.d/elpa/org-20180604/ob-sql
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-element hides /home/jamie/.emacs.d/elpa/org-20180604/org-element
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-comint hides /home/jamie/.emacs.d/elpa/org-20180604/ob-comint
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-octave hides /home/jamie/.emacs.d/elpa/org-20180604/ob-octave
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-makefile hides /home/jamie/.emacs.d/elpa/org-20180604/ob-makefile
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org hides /home/jamie/.emacs.d/elpa/org-20180604/org
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-J hides /home/jamie/.emacs.d/elpa/org-20180604/ob-J
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-clock hides /home/jamie/.emacs.d/elpa/org-20180604/org-clock
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-agenda hides /home/jamie/.emacs.d/elpa/org-20180604/org-agenda
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-abc hides /home/jamie/.emacs.d/elpa/org-20180604/ob-abc
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-python hides /home/jamie/.emacs.d/elpa/org-20180604/ob-python
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-beamer hides /home/jamie/.emacs.d/elpa/org-20180604/ox-beamer
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-emacs-lisp hides /home/jamie/.emacs.d/elpa/org-20180604/ob-emacs-lisp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-java hides /home/jamie/.emacs.d/elpa/org-20180604/ob-java
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-mobile hides /home/jamie/.emacs.d/elpa/org-20180604/org-mobile
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lob hides /home/jamie/.emacs.d/elpa/org-20180604/ob-lob
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-archive hides /home/jamie/.emacs.d/elpa/org-20180604/org-archive
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-man hides /home/jamie/.emacs.d/elpa/org-20180604/ox-man
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-picolisp hides /home/jamie/.emacs.d/elpa/org-20180604/ob-picolisp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob hides /home/jamie/.emacs.d/elpa/org-20180604/ob
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-publish hides /home/jamie/.emacs.d/elpa/org-20180604/ox-publish
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-timer hides /home/jamie/.emacs.d/elpa/org-20180604/org-timer
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lisp hides /home/jamie/.emacs.d/elpa/org-20180604/ob-lisp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lilypond hides /home/jamie/.emacs.d/elpa/org-20180604/ob-lilypond
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-mscgen hides /home/jamie/.emacs.d/elpa/org-20180604/ob-mscgen
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sass hides /home/jamie/.emacs.d/elpa/org-20180604/ob-sass
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-install hides /home/jamie/.emacs.d/elpa/org-20180604/org-install
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ocaml hides /home/jamie/.emacs.d/elpa/org-20180604/ob-ocaml
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-odt hides /home/jamie/.emacs.d/elpa/org-20180604/ox-odt
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-ascii hides /home/jamie/.emacs.d/elpa/org-20180604/ox-ascii
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-shell hides /home/jamie/.emacs.d/elpa/org-20180604/ob-shell
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-io hides /home/jamie/.emacs.d/elpa/org-20180604/ob-io
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-haskell hides /home/jamie/.emacs.d/elpa/org-20180604/ob-haskell
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-id hides /home/jamie/.emacs.d/elpa/org-20180604/org-id
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-duration hides /home/jamie/.emacs.d/elpa/org-20180604/org-duration
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-rmail hides /home/jamie/.emacs.d/elpa/org-20180604/org-rmail
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-html hides /home/jamie/.emacs.d/elpa/org-20180604/ox-html
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-attach hides /home/jamie/.emacs.d/elpa/org-20180604/org-attach
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-protocol hides /home/jamie/.emacs.d/elpa/org-20180604/org-protocol
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-exp hides /home/jamie/.emacs.d/elpa/org-20180604/ob-exp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-eww hides /home/jamie/.emacs.d/elpa/org-20180604/org-eww
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-css hides /home/jamie/.emacs.d/elpa/org-20180604/ob-css
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ref hides /home/jamie/.emacs.d/elpa/org-20180604/ob-ref
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-org hides /home/jamie/.emacs.d/elpa/org-20180604/ox-org
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-shen hides /home/jamie/.emacs.d/elpa/org-20180604/ob-shen
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sed hides /home/jamie/.emacs.d/elpa/org-20180604/ob-sed
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-macs hides /home/jamie/.emacs.d/elpa/org-20180604/org-macs
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-colview hides /home/jamie/.emacs.d/elpa/org-20180604/org-colview
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-plot hides /home/jamie/.emacs.d/elpa/org-20180604/org-plot
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-dot hides /home/jamie/.emacs.d/elpa/org-20180604/ob-dot
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-latex hides /home/jamie/.emacs.d/elpa/org-20180604/ob-latex
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-inlinetask hides /home/jamie/.emacs.d/elpa/org-20180604/org-inlinetask
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-keys hides /home/jamie/.emacs.d/elpa/org-20180604/ob-keys
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-entities hides /home/jamie/.emacs.d/elpa/org-20180604/org-entities
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox hides /home/jamie/.emacs.d/elpa/org-20180604/ox
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-mhe hides /home/jamie/.emacs.d/elpa/org-20180604/org-mhe
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-core hides /home/jamie/.emacs.d/elpa/org-20180604/ob-core
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ruby hides /home/jamie/.emacs.d/elpa/org-20180604/ob-ruby
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-tangle hides /home/jamie/.emacs.d/elpa/org-20180604/ob-tangle
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-perl hides /home/jamie/.emacs.d/elpa/org-20180604/ob-perl
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-habit hides /home/jamie/.emacs.d/elpa/org-20180604/org-habit
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-src hides /home/jamie/.emacs.d/elpa/org-20180604/org-src
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-eshell hides /home/jamie/.emacs.d/elpa/org-20180604/org-eshell
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-C hides /home/jamie/.emacs.d/elpa/org-20180604/ob-C
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-crypt hides /home/jamie/.emacs.d/elpa/org-20180604/org-crypt
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ebnf hides /home/jamie/.emacs.d/elpa/org-20180604/ob-ebnf
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-capture hides /home/jamie/.emacs.d/elpa/org-20180604/org-capture
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-indent hides /home/jamie/.emacs.d/elpa/org-20180604/org-indent
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-datetree hides /home/jamie/.emacs.d/elpa/org-20180604/org-datetree
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ditaa hides /home/jamie/.emacs.d/elpa/org-20180604/ob-ditaa
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-plantuml hides /home/jamie/.emacs.d/elpa/org-20180604/ob-plantuml
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sqlite hides /home/jamie/.emacs.d/elpa/org-20180604/ob-sqlite
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-version hides /home/jamie/.emacs.d/elpa/org-20180604/org-version
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-compat hides /home/jamie/.emacs.d/elpa/org-20180604/org-compat
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-md hides /home/jamie/.emacs.d/elpa/org-20180604/ox-md
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-scheme hides /home/jamie/.emacs.d/elpa/org-20180604/ob-scheme
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-groovy hides /home/jamie/.emacs.d/elpa/org-20180604/ob-groovy
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-icalendar hides /home/jamie/.emacs.d/elpa/org-20180604/ox-icalendar
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-awk hides /home/jamie/.emacs.d/elpa/org-20180604/ob-awk
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-processing hides /home/jamie/.emacs.d/elpa/org-20180604/ob-processing
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-clojure hides /home/jamie/.emacs.d/elpa/org-20180604/ob-clojure
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-table hides /home/jamie/.emacs.d/elpa/org-20180604/ob-table
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-pcomplete hides /home/jamie/.emacs.d/elpa/org-20180604/org-pcomplete
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-matlab hides /home/jamie/.emacs.d/elpa/org-20180604/ob-matlab
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ledger hides /home/jamie/.emacs.d/elpa/org-20180604/ob-ledger
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-stan hides /home/jamie/.emacs.d/elpa/org-20180604/ob-stan
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-texinfo hides /home/jamie/.emacs.d/elpa/org-20180604/ox-texinfo
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-faces hides /home/jamie/.emacs.d/elpa/org-20180604/org-faces
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-bbdb hides /home/jamie/.emacs.d/elpa/org-20180604/org-bbdb
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-asymptote hides /home/jamie/.emacs.d/elpa/org-20180604/ob-asymptote
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-bibtex hides /home/jamie/.emacs.d/elpa/org-20180604/org-bibtex
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-feed hides /home/jamie/.emacs.d/elpa/org-20180604/org-feed
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-macro hides /home/jamie/.emacs.d/elpa/org-20180604/org-macro
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-w3m hides /home/jamie/.emacs.d/elpa/org-20180604/org-w3m
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-latex hides /home/jamie/.emacs.d/elpa/org-20180604/ox-latex
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-R hides /home/jamie/.emacs.d/elpa/org-20180604/ob-R
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-vala hides /home/jamie/.emacs.d/elpa/org-20180604/ob-vala
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-screen hides /home/jamie/.emacs.d/elpa/org-20180604/ob-screen
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-org hides /home/jamie/.emacs.d/elpa/org-20180604/ob-org
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-gnuplot hides /home/jamie/.emacs.d/elpa/org-20180604/ob-gnuplot
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-info hides /home/jamie/.emacs.d/elpa/org-20180604/org-info
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-fortran hides /home/jamie/.emacs.d/elpa/org-20180604/ob-fortran
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lua hides /home/jamie/.emacs.d/elpa/org-20180604/ob-lua
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-docview hides /home/jamie/.emacs.d/elpa/org-20180604/org-docview
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-hledger hides /home/jamie/.emacs.d/elpa/org-20180604/ob-hledger
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-footnote hides /home/jamie/.emacs.d/elpa/org-20180604/org-footnote
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-irc hides /home/jamie/.emacs.d/elpa/org-20180604/org-irc
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-gnus hides /home/jamie/.emacs.d/elpa/org-20180604/org-gnus
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-coq hides /home/jamie/.emacs.d/elpa/org-20180604/ob-coq
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-list hides /home/jamie/.emacs.d/elpa/org-20180604/org-list
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-js hides /home/jamie/.emacs.d/elpa/org-20180604/ob-js
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-maxima hides /home/jamie/.emacs.d/elpa/org-20180604/ob-maxima
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-table hides /home/jamie/.emacs.d/elpa/org-20180604/org-table
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-forth hides /home/jamie/.emacs.d/elpa/org-20180604/ob-forth
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-lint hides /home/jamie/.emacs.d/elpa/org-20180604/org-lint
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-eval hides /home/jamie/.emacs.d/elpa/org-20180604/ob-eval
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-loaddefs hides /home/jamie/.emacs.d/elpa/org-20180604/org-loaddefs
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-ctags hides /home/jamie/.emacs.d/elpa/org-20180604/org-ctags
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3mhack hides /usr/share/emacs25/site-lisp/w3m/w3mhack
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-image hides /usr/share/emacs25/site-lisp/w3m/w3m-image
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/bookmark-w3m hides /usr/share/emacs25/site-lisp/w3m/bookmark-w3m
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-util hides /usr/share/emacs25/site-lisp/w3m/w3m-util
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-ems hides /usr/share/emacs25/site-lisp/w3m/w3m-ems
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-namazu hides /usr/share/emacs25/site-lisp/w3m/w3m-namazu
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-antenna hides /usr/share/emacs25/site-lisp/w3m/w3m-antenna
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-mail hides /usr/share/emacs25/site-lisp/w3m/w3m-mail
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-save hides /usr/share/emacs25/site-lisp/w3m/w3m-save
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-proc hides /usr/share/emacs25/site-lisp/w3m/w3m-proc
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-cookie hides /usr/share/emacs25/site-lisp/w3m/w3m-cookie
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-dtree hides /usr/share/emacs25/site-lisp/w3m/w3m-dtree
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-session hides /usr/share/emacs25/site-lisp/w3m/w3m-session
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-filter hides /usr/share/emacs25/site-lisp/w3m/w3m-filter
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-fb hides /usr/share/emacs25/site-lisp/w3m/w3m-fb
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-perldoc hides /usr/share/emacs25/site-lisp/w3m/w3m-perldoc
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-ccl hides /usr/share/emacs25/site-lisp/w3m/w3m-ccl
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-symbol hides /usr/share/emacs25/site-lisp/w3m/w3m-symbol
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/mime-w3m hides /usr/share/emacs25/site-lisp/w3m/mime-w3m
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m hides /usr/share/emacs25/site-lisp/w3m/w3m
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-bookmark hides /usr/share/emacs25/site-lisp/w3m/w3m-bookmark
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-weather hides /usr/share/emacs25/site-lisp/w3m/w3m-weather
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-favicon hides /usr/share/emacs25/site-lisp/w3m/w3m-favicon
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-rss hides /usr/share/emacs25/site-lisp/w3m/w3m-rss
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-search hides /usr/share/emacs25/site-lisp/w3m/w3m-search
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-tabmenu hides /usr/share/emacs25/site-lisp/w3m/w3m-tabmenu
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-lnum hides /usr/share/emacs25/site-lisp/w3m/w3m-lnum
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-hist hides /usr/share/emacs25/site-lisp/w3m/w3m-hist
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-form hides /usr/share/emacs25/site-lisp/w3m/w3m-form
/home/jamie/.emacs.d/elpa/w3m-20180404.2220/w3m-bug hides /usr/share/emacs25/site-lisp/w3m/w3m-bug
/usr/share/emacs/25.2/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs25/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs25/site-lisp/flim/hex-util hides /usr/share/emacs/25.2/lisp/hex-util
/usr/share/emacs25/site-lisp/flim/md4 hides /usr/share/emacs/25.2/lisp/md4
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/25.2/lisp/textmodes/rst
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-shen hides /usr/share/emacs/25.2/lisp/org/ob-shen
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-dot hides /usr/share/emacs/25.2/lisp/org/ob-dot
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-table hides /usr/share/emacs/25.2/lisp/org/ob-table
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-gnus hides /usr/share/emacs/25.2/lisp/org/org-gnus
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ocaml hides /usr/share/emacs/25.2/lisp/org/ob-ocaml
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-emacs-lisp hides /usr/share/emacs/25.2/lisp/org/ob-emacs-lisp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-ctags hides /usr/share/emacs/25.2/lisp/org/org-ctags
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-attach hides /usr/share/emacs/25.2/lisp/org/org-attach
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-id hides /usr/share/emacs/25.2/lisp/org/org-id
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-html hides /usr/share/emacs/25.2/lisp/org/ox-html
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-asymptote hides /usr/share/emacs/25.2/lisp/org/ob-asymptote
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-maxima hides /usr/share/emacs/25.2/lisp/org/ob-maxima
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sqlite hides /usr/share/emacs/25.2/lisp/org/ob-sqlite
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-habit hides /usr/share/emacs/25.2/lisp/org/org-habit
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-datetree hides /usr/share/emacs/25.2/lisp/org/org-datetree
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-org hides /usr/share/emacs/25.2/lisp/org/ox-org
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-java hides /usr/share/emacs/25.2/lisp/org/ob-java
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-matlab hides /usr/share/emacs/25.2/lisp/org/ob-matlab
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-eval hides /usr/share/emacs/25.2/lisp/org/ob-eval
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-publish hides /usr/share/emacs/25.2/lisp/org/ox-publish
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-irc hides /usr/share/emacs/25.2/lisp/org/org-irc
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lilypond hides /usr/share/emacs/25.2/lisp/org/ob-lilypond
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-entities hides /usr/share/emacs/25.2/lisp/org/org-entities
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-element hides /usr/share/emacs/25.2/lisp/org/org-element
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-mouse hides /usr/share/emacs/25.2/lisp/org/org-mouse
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-install hides /usr/share/emacs/25.2/lisp/org/org-install
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-R hides /usr/share/emacs/25.2/lisp/org/ob-R
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-mobile hides /usr/share/emacs/25.2/lisp/org/org-mobile
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-icalendar hides /usr/share/emacs/25.2/lisp/org/ox-icalendar
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-feed hides /usr/share/emacs/25.2/lisp/org/org-feed
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-comint hides /usr/share/emacs/25.2/lisp/org/ob-comint
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-list hides /usr/share/emacs/25.2/lisp/org/org-list
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-mhe hides /usr/share/emacs/25.2/lisp/org/org-mhe
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-calc hides /usr/share/emacs/25.2/lisp/org/ob-calc
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-archive hides /usr/share/emacs/25.2/lisp/org/org-archive
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-screen hides /usr/share/emacs/25.2/lisp/org/ob-screen
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-table hides /usr/share/emacs/25.2/lisp/org/org-table
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-css hides /usr/share/emacs/25.2/lisp/org/ob-css
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-io hides /usr/share/emacs/25.2/lisp/org/ob-io
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-indent hides /usr/share/emacs/25.2/lisp/org/org-indent
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-exp hides /usr/share/emacs/25.2/lisp/org/ob-exp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-bibtex hides /usr/share/emacs/25.2/lisp/org/org-bibtex
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-compat hides /usr/share/emacs/25.2/lisp/org/org-compat
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-perl hides /usr/share/emacs/25.2/lisp/org/ob-perl
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-macs hides /usr/share/emacs/25.2/lisp/org/org-macs
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ruby hides /usr/share/emacs/25.2/lisp/org/ob-ruby
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-haskell hides /usr/share/emacs/25.2/lisp/org/ob-haskell
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-bbdb hides /usr/share/emacs/25.2/lisp/org/org-bbdb
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-clock hides /usr/share/emacs/25.2/lisp/org/org-clock
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-org hides /usr/share/emacs/25.2/lisp/org/ob-org
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-picolisp hides /usr/share/emacs/25.2/lisp/org/ob-picolisp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox hides /usr/share/emacs/25.2/lisp/org/ox
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-beamer hides /usr/share/emacs/25.2/lisp/org/ox-beamer
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-rmail hides /usr/share/emacs/25.2/lisp/org/org-rmail
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-crypt hides /usr/share/emacs/25.2/lisp/org/org-crypt
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-plantuml hides /usr/share/emacs/25.2/lisp/org/ob-plantuml
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-octave hides /usr/share/emacs/25.2/lisp/org/ob-octave
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-keys hides /usr/share/emacs/25.2/lisp/org/ob-keys
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-js hides /usr/share/emacs/25.2/lisp/org/ob-js
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-awk hides /usr/share/emacs/25.2/lisp/org/ob-awk
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-pcomplete hides /usr/share/emacs/25.2/lisp/org/org-pcomplete
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-info hides /usr/share/emacs/25.2/lisp/org/org-info
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-ascii hides /usr/share/emacs/25.2/lisp/org/ox-ascii
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-makefile hides /usr/share/emacs/25.2/lisp/org/ob-makefile
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org hides /usr/share/emacs/25.2/lisp/org/org
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-plot hides /usr/share/emacs/25.2/lisp/org/org-plot
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-agenda hides /usr/share/emacs/25.2/lisp/org/org-agenda
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-eshell hides /usr/share/emacs/25.2/lisp/org/org-eshell
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-loaddefs hides /usr/share/emacs/25.2/lisp/org/org-loaddefs
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-md hides /usr/share/emacs/25.2/lisp/org/ox-md
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-w3m hides /usr/share/emacs/25.2/lisp/org/org-w3m
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-capture hides /usr/share/emacs/25.2/lisp/org/org-capture
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-latex hides /usr/share/emacs/25.2/lisp/org/ox-latex
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lob hides /usr/share/emacs/25.2/lisp/org/ob-lob
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ledger hides /usr/share/emacs/25.2/lisp/org/ob-ledger
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sql hides /usr/share/emacs/25.2/lisp/org/ob-sql
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-mscgen hides /usr/share/emacs/25.2/lisp/org/ob-mscgen
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob hides /usr/share/emacs/25.2/lisp/org/ob
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-python hides /usr/share/emacs/25.2/lisp/org/ob-python
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-texinfo hides /usr/share/emacs/25.2/lisp/org/ox-texinfo
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-core hides /usr/share/emacs/25.2/lisp/org/ob-core
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-sass hides /usr/share/emacs/25.2/lisp/org/ob-sass
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ditaa hides /usr/share/emacs/25.2/lisp/org/ob-ditaa
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-fortran hides /usr/share/emacs/25.2/lisp/org/ob-fortran
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-odt hides /usr/share/emacs/25.2/lisp/org/ox-odt
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-scheme hides /usr/share/emacs/25.2/lisp/org/ob-scheme
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-timer hides /usr/share/emacs/25.2/lisp/org/org-timer
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-clojure hides /usr/share/emacs/25.2/lisp/org/ob-clojure
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-faces hides /usr/share/emacs/25.2/lisp/org/org-faces
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-protocol hides /usr/share/emacs/25.2/lisp/org/org-protocol
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-tangle hides /usr/share/emacs/25.2/lisp/org/ob-tangle
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-latex hides /usr/share/emacs/25.2/lisp/org/ob-latex
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-docview hides /usr/share/emacs/25.2/lisp/org/org-docview
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-macro hides /usr/share/emacs/25.2/lisp/org/org-macro
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ox-man hides /usr/share/emacs/25.2/lisp/org/ox-man
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-gnuplot hides /usr/share/emacs/25.2/lisp/org/ob-gnuplot
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-colview hides /usr/share/emacs/25.2/lisp/org/org-colview
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-src hides /usr/share/emacs/25.2/lisp/org/org-src
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-inlinetask hides /usr/share/emacs/25.2/lisp/org/org-inlinetask
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-footnote hides /usr/share/emacs/25.2/lisp/org/org-footnote
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-lisp hides /usr/share/emacs/25.2/lisp/org/ob-lisp
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-ref hides /usr/share/emacs/25.2/lisp/org/ob-ref
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/ob-C hides /usr/share/emacs/25.2/lisp/org/ob-C
/home/jamie/.emacs.d/elpa/org-plus-contrib-20180604/org-version hides /usr/share/emacs/25.2/lisp/org/org-version
/usr/share/emacs25/site-lisp/flim/ntlm hides /usr/share/emacs/25.2/lisp/net/ntlm
/usr/share/emacs25/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/25.2/lisp/net/sasl-ntlm
/usr/share/emacs25/site-lisp/flim/sasl-cram hides /usr/share/emacs/25.2/lisp/net/sasl-cram
/usr/share/emacs25/site-lisp/flim/hmac-def hides /usr/share/emacs/25.2/lisp/net/hmac-def
/usr/share/emacs25/site-lisp/flim/hmac-md5 hides /usr/share/emacs/25.2/lisp/net/hmac-md5
/usr/share/emacs25/site-lisp/flim/sasl hides /usr/share/emacs/25.2/lisp/net/sasl
/usr/share/emacs25/site-lisp/flim/sasl-digest hides /usr/share/emacs/25.2/lisp/net/sasl-digest
/home/jamie/.emacs.d/elpa/let-alist-1.0.5/let-alist hides /usr/share/emacs/25.2/lisp/emacs-lisp/let-alist
/home/jamie/.emacs.d/elpa/seq-2.20/seq hides /usr/share/emacs/25.2/lisp/emacs-lisp/seq

Features:
(shadow org-table footnote emacsbug gnus-cite gnus-html url-cache mm-url
mm-archive mail-extr gnus-bcklg qp gnus-async sort gnus-ml disp-table
recentf gnus-cus gnus-topic nndraft nnmh gnus-agent gnus-srvr gnus-score
score-mode nnvirtual gnus-msg utf-7 network-stream nsm starttls
gnus-cache nnnil nntp smtpmail sendmail colir color counsel swiper
server cap-words superword subword company-oddmuse company-keywords
company-etags company-gtags company-dabbrev-code company-dabbrev
company-files company-capf company-cmake company-xcode company-clang
company-semantic company-eclim company-template company-css company-nxml
company-bbdb py-autopep8 yasnippet highlight-indentation flymake elpy
find-file-in-project elpy-shell pyvenv esh-var esh-io esh-cmd esh-opt
esh-ext esh-proc esh-arg esh-groups eshell esh-module esh-mode esh-util
elpy-profile elpy-django elpy-refactor grep files-x ox-extra vc-git
diff-mode org-eldoc cdlatex texmathp flyspell ispell ws-butler org-rmail
org-mhe org-irc org-info org-gnus nnir org-docview doc-view org-bbdb
org-w3m org-archive org-id org-ref org-ref-helm-bibtex org-ref-helm
helm-utils helm-bibtex bibtex-completion filenotify biblio
biblio-download biblio-dissemin biblio-hal biblio-dblp biblio-crossref
biblio-arxiv timezone biblio-doi biblio-core url-queue ido hl-line
helm-net browse-url helm-help helm helm-source helm-multi-match helm-lib
helm-config helm-easymenu async-bytecomp async org-ref-core reftex-cite
reftex reftex-vars parsebib org-ref-glossary org-ref-bibtex
org-ref-citeproc key-chord hydra lv doi-utils org-ref-utils org-ref-pdf
url-http url-auth url-gw htmlize ox-reveal ox-md org-bibtex-extras
org-bibtex bibtex ox-bibtex org-mobile org-contacts org-clock org-habit
org-agenda ox-org ox-beamer ox-odt rng-loc rng-uri rng-parse rng-match
rng-dt rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util
ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox ob-js
ob-shell ob-ein ein-notebook eieio-opt speedbar sb-image ezimage dframe
ein-junk ein-shared-output ein-inspector ein-traceback ein-pytools
ein-pseudo-console ein-pager ein-completer ein-subpackages
ein-notification ein-scratchsheet ein-iexec ein-worksheet ein-kill-ring
ein-cell-output ein-cell-edit ein-cell ein-hy ein-skewer skewer-mode
cache-table js2-mode etags xref project js sgml-mode moz simple-httpd
ein-output-area xml ein-kernelinfo ein-kernel ein-ipdb ein-events
ein-websocket websocket bindat ein-contents-api ein-query
request-deferred deferred request url url-proxy url-privacy url-expand
url-methods url-history url-cookie url-domsuf url-util ein-node ein-log
ein-console ein-classes ein-core ein-utils cc-mode cc-fonts cc-guess
cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs ein ewoc
ob-ipython python tramp-sh f dash-functional ob-python ob-plantuml
ob-sql ob-R ob-haskell ob-lisp ob-lilypond ob-http ob-http-mode s
ob-ditaa ob-awk typo flycheck-yamllint use-package-ensure intero tramp
tramp-compat tramp-loaddefs trampver ucs-normalize shell company
warnings flycheck json map dash gnus-icalendar org-capture org-element
avl-tree org org-macro org-footnote org-pcomplete pcomplete org-list
org-faces org-entities noutline outline org-version ob-emacs-lisp ob
ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp ob-comint
ob-core ob-eval org-compat org-macs org-loaddefs eieio-compat gnus-art
mm-uu mml2015 mm-view mml-smime smime dig mailcap gnus-sum gnus-group
gnus-undo gnus-start gnus-cloud nnimap nnmail mail-source tls gnutls
utf7 netrc nnoo parse-time gnus-spec gnus-int gnus-range message rfc822
mml mml-sec epg mailabbrev mailheader gnus-win gnus gnus-ems nnheader
mail-utils mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047
rfc2045 ietf-drums gmm-utils icalendar diary-lib diary-loaddefs cal-menu
calendar cal-loaddefs pdf-occur ibuf-ext ibuffer tablist tablist-filter
semantic/wisent/comp semantic/wisent semantic/wisent/wisent
semantic/util-modes semantic/util semantic semantic/tag semantic/lex
semantic/fw mode-local find-func cedet dired pdf-isearch let-alist
pdf-misc imenu pdf-tools compile comint ansi-color cus-edit cus-start
cus-load pdf-view bookmark pp jka-compr pdf-cache pdf-info tq pdf-util
advice format-spec image-mode paren windmove edmacro kmacro ivy delsel
ivy-overlay ffap thingatpt url-parse auth-source eieio eieio-core
gnus-util time-date mm-util help-fns mail-prsvr password-cache url-vars
use-package-bind-key bind-key cl-seq use-package-core subr-x
material-theme finder-inf tex-site cl-macs rx info package epg-config
seq byte-opt bytecomp byte-compile cl-extra help-mode cconv w3m-load
sclang sclang-widgets tree-widget wid-edit sclang-server sclang-help
sclang-vars sclang-help-minor-mode sclang-minor-mode easy-mmode
sclang-mode easymenu sclang-dev sclang-document sclang-language ring
sclang-interp sclang-browser view sclang-util cl gv cl-loaddefs pcase
cl-lib mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 931849 79138)
 (symbols 48 76554 3)
 (miscs 40 11435 5506)
 (strings 32 212881 20890)
 (string-bytes 1 7006230)
 (vectors 16 106994)
 (vector-slots 8 1625219 38570)
 (floats 8 1656 690)
 (intervals 56 5452 171)
 (buffers 976 53))





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2018-06-06 18:07 bug#31739: 25.2; Cannot expire articles in virtual group Jamie Forth
@ 2019-09-29  8:21 ` Lars Ingebrigtsen
  2019-09-30 17:00   ` Jamie Forth
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-09-29  8:21 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739

Jamie Forth <j.forth@gold.ac.uk> writes:

> Expiring articles within a non-virtual group works as expected, but not
> within a virtual group.
>
> 1. Create a new virtual group (G V)
> 2. Select and add a component group (G v)
> 3. Enter the new virtual group and mark a message as expirable (E)
> 4. Quit the group (or B e) to trigger the expiry process results in
>    the following messages
>
> Expiring articles...
> Expiring articles in <component group>...done
> Expiring articles...done
>
> 5. Re-enter the virtual group (or C-u M-g), and find that the article
>    previously marked as expirable has not been expired.
>
> I’m using nnimap groups and `nnmail-expiry-wait` is set to immediate.

I'm unable to reproduce this in Emacs 27.  If I follow your recipe
(create a virtual group with an nnimap component, and mark an article in
the virtual group with `E'), the IMAP log shows:

10:19:12 [quimby.gnus.org] 7219 SELECT "spam"
10:19:12 [quimby.gnus.org] 7220 UID STORE 392789 +FLAGS.SILENT (\Deleted)
10:19:12 [quimby.gnus.org] 7221 UID EXPUNGE 392789

So the message was deleted from the nnimap component group.

Are you still seeing this bug in newer Emacs versions?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-09-29  8:21 ` Lars Ingebrigtsen
@ 2019-09-30 17:00   ` Jamie Forth
  2019-10-01 12:25     ` Lars Ingebrigtsen
  2019-10-01 12:27     ` Lars Ingebrigtsen
  0 siblings, 2 replies; 17+ messages in thread
From: Jamie Forth @ 2019-09-30 17:00 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Jamie Forth <j.forth@gold.ac.uk> writes:
>
>> Expiring articles within a non-virtual group works as expected, but not
>> within a virtual group.
>>
>> 1. Create a new virtual group (G V)
>> 2. Select and add a component group (G v)
>> 3. Enter the new virtual group and mark a message as expirable (E)
>> 4. Quit the group (or B e) to trigger the expiry process results in
>>    the following messages
>>
>> Expiring articles...
>> Expiring articles in <component group>...done
>> Expiring articles...done
>>
>> 5. Re-enter the virtual group (or C-u M-g), and find that the article
>>    previously marked as expirable has not been expired.
>>
>> I’m using nnimap groups and `nnmail-expiry-wait` is set to immediate.
>
> I'm unable to reproduce this in Emacs 27.  If I follow your recipe
> (create a virtual group with an nnimap component, and mark an article in
> the virtual group with `E'), the IMAP log shows:
>
> 10:19:12 [quimby.gnus.org] 7219 SELECT "spam"
> 10:19:12 [quimby.gnus.org] 7220 UID STORE 392789 +FLAGS.SILENT (\Deleted)
> 10:19:12 [quimby.gnus.org] 7221 UID EXPUNGE 392789
>
> So the message was deleted from the nnimap component group.
>
> Are you still seeing this bug in newer Emacs versions?

Thanks for looking into it, I still experience the issue with Emacs
27.0.50.

My setup is fairly minimal. This is how imap is configured.

(add-to-list
 'gnus-secondary-select-methods
 '(nnimap "gold"
          (nnimap-stream shell)
          (nnimap-shell-program
           "/usr/lib/dovecot/imap -c ~/.config/dovecot/gold.conf  2> /dev/null")
          (nnir-search-engine imap)
          (nnmail-expiry-target "nnimap+gold:Deleted Items")
          (nnmail-expiry-wait immediate)))

I’m not quite sure how to debug this, but if you have any suggestion
I’ll give them a try.

--
Jamie

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-09-30 17:00   ` Jamie Forth
@ 2019-10-01 12:25     ` Lars Ingebrigtsen
  2019-10-01 12:27     ` Lars Ingebrigtsen
  1 sibling, 0 replies; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-01 12:25 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

>> 10:19:12 [quimby.gnus.org] 7219 SELECT "spam"
>> 10:19:12 [quimby.gnus.org] 7220 UID STORE 392789 +FLAGS.SILENT (\Deleted)
>> 10:19:12 [quimby.gnus.org] 7221 UID EXPUNGE 392789
>>
>> So the message was deleted from the nnimap component group.
>>
>> Are you still seeing this bug in newer Emacs versions?
>
> Thanks for looking into it, I still experience the issue with Emacs
> 27.0.50.

By "the issue", do you mean that messages in INBOX aren't expunged after
splitting mail?

> My setup is fairly minimal. This is how imap is configured.
>
> (add-to-list
>  'gnus-secondary-select-methods
>  '(nnimap "gold"
>           (nnimap-stream shell)
>           (nnimap-shell-program
>            "/usr/lib/dovecot/imap -c ~/.config/dovecot/gold.conf  2> /dev/null")
>           (nnir-search-engine imap)
>           (nnmail-expiry-target "nnimap+gold:Deleted Items")
>           (nnmail-expiry-wait immediate)))
>
> I’m not quite sure how to debug this, but if you have any suggestion
> I’ll give them a try.

(setq nnimap-record-commands t)

and look in the "*imap log*" buffer after splitting, and post the
relevant bits here.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-09-30 17:00   ` Jamie Forth
  2019-10-01 12:25     ` Lars Ingebrigtsen
@ 2019-10-01 12:27     ` Lars Ingebrigtsen
  2019-10-01 14:08       ` Jamie Forth
  1 sibling, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-01 12:27 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

> Thanks for looking into it, I still experience the issue with Emacs
> 27.0.50.

Sorry; I was thinking about a different bug nnimap expiration bug, not
the nnvirtual one.

To debug, mark a message in the nnvirtual group as expirable, exit the
group, and look in the *imap log* buffer and see what's there.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-01 12:27     ` Lars Ingebrigtsen
@ 2019-10-01 14:08       ` Jamie Forth
  2019-10-03 15:51         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Jamie Forth @ 2019-10-01 14:08 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Jamie Forth <J.Forth@gold.ac.uk> writes:
>
> To debug, mark a message in the nnvirtual group as expirable, exit the
> group, and look in the *imap log* buffer and see what's there.

14:34:43 [gold] 3562 SELECT "Junk Email"
14:34:43 [gold] 3563 UID STORE 34 +FLAGS.SILENT (\Seen)

Hm, so no \Deleted.

Doing the same in a normal group:

14:40:03 [gold] 3787 SELECT "Junk Email"
14:40:03 [gold] 3788 SELECT "Junk Email"
14:40:03 [gold] 3789 UID MOVE 31 "Deleted Items"
14:40:03 [gold] 3790 SELECT "Junk Email"
14:40:03 [gold] 3791 SELECT "Junk Email"
14:40:03 [gold] 3792 UID STORE 31 +FLAGS.SILENT (\Seen)

OK, so I’m moving rather than deleting, this makes sense because I have
(nnmail-expiry-target "nnimap+gold:Deleted Items").

Setting nnmail-expiry-target back to the default I now see:

14:55:11 [gold] 188 SELECT "Junk Email"
14:55:11 [gold] 189 UID STORE 25 +FLAGS.SILENT (\Deleted)
14:55:11 [gold] 190 UID EXPUNGE 25
14:55:11 [gold] 191 SELECT "Junk Email"
14:55:11 [gold] 192 UID STORE 25 +FLAGS.SILENT (\Seen)

But no difference when expiring within the virtual group.

14:55:57 [gold] 196 SELECT "Junk Email"
14:55:57 [gold] 197 UID STORE 22 +FLAGS.SILENT (\Seen)

--
Jamie

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-01 14:08       ` Jamie Forth
@ 2019-10-03 15:51         ` Lars Ingebrigtsen
  2019-10-04 18:34           ` Jamie Forth
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-03 15:51 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

> Setting nnmail-expiry-target back to the default I now see:
>
> 14:55:11 [gold] 188 SELECT "Junk Email"
> 14:55:11 [gold] 189 UID STORE 25 +FLAGS.SILENT (\Deleted)
> 14:55:11 [gold] 190 UID EXPUNGE 25
> 14:55:11 [gold] 191 SELECT "Junk Email"
> 14:55:11 [gold] 192 UID STORE 25 +FLAGS.SILENT (\Seen)
>
> But no difference when expiring within the virtual group.
>
> 14:55:57 [gold] 196 SELECT "Junk Email"
> 14:55:57 [gold] 197 UID STORE 22 +FLAGS.SILENT (\Seen)

It does seem like the nnimap expiration function isn't being called at
all, somehow.

Would it be possible for you do open nnvirtual.el and `M-x edebug-defun'
on `nnvirtual-request-expire-articles' and then step through the
function when exiting from the nnvirtual group (with some articles
marked as expirable)?

What's interesting here is whether the

  (gnus-group-expire-articles-1 group)

form is being executed for the nnimap group.  

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-03 15:51         ` Lars Ingebrigtsen
@ 2019-10-04 18:34           ` Jamie Forth
  2019-10-07  3:16             ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Jamie Forth @ 2019-10-04 18:34 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> It does seem like the nnimap expiration function isn't being called at
> all, somehow.
>
> Would it be possible for you do open nnvirtual.el and `M-x edebug-defun'
> on `nnvirtual-request-expire-articles' and then step through the
> function when exiting from the nnvirtual group (with some articles
> marked as expirable)?
>
> What's interesting here is whether the
>
>   (gnus-group-expire-articles-1 group)
>
> form is being executed for the nnimap group.  

gnus-group-expire-articles-1 is being called.

Stepping through gnus-group-expire-articles-1, 
expirable is nil.

The value returned from (gnus-info-marks info) is:

  ((seen (22 . 40)) (unexist (1 . 34)))

So the expirable marks are getting dropped somehow?

--
Jamie





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-04 18:34           ` Jamie Forth
@ 2019-10-07  3:16             ` Lars Ingebrigtsen
  2019-10-07 16:18               ` Jamie Forth
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-07  3:16 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

> Stepping through gnus-group-expire-articles-1, 
> expirable is nil.
>
> The value returned from (gnus-info-marks info) is:
>
>   ((seen (22 . 40)) (unexist (1 . 34)))
>
> So the expirable marks are getting dropped somehow?

Sounds like it.

For my test group, I get:

(assq 'expire (gnus-info-marks (gnus-get-info "nnvirtual:imap-test")))
=> (expire 392790 394237)

You get nil for yours?

I've looked through the code for something special being done with the
expirable marks, and I can't find anything that's nixing out those in
particular.  But I may be looking in the wrong parts of the code...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-07  3:16             ` Lars Ingebrigtsen
@ 2019-10-07 16:18               ` Jamie Forth
  2019-10-14  6:35                 ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Jamie Forth @ 2019-10-07 16:18 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> For my test group, I get:
>
> (assq 'expire (gnus-info-marks (gnus-get-info "nnvirtual:imap-test")))
> => (expire 392790 394237)
>
> You get nil for yours?

Yes unfortunately.

(gnus-info-marks (gnus-get-info "nnvirtual:vgtest")

=> ((unexist (1 . 34) (37 . 40)) (seen (22 . 40)))

As a sanity check I just tried recreating the group with `emacs -Q` and
the following gnus config.

(setq gnus-select-method '(nntp "news.gmane.org"))

(add-to-list
 'gnus-secondary-select-methods
 '(nnimap "gold"
          (nnimap-stream shell)
          (nnimap-shell-program
           "/usr/lib/dovecot/imap -c ~/.config/dovecot/gold.conf 2> /dev/null")))

Then G V, then M-e with: (nnvirtual "^nnimap\\+gold:Junk Email$")

Marking some articles E, but same result!

> I've looked through the code for something special being done with the
> expirable marks, and I can't find anything that's nixing out those in
> particular.  But I may be looking in the wrong parts of the code...

Thanks for looking!

--
Jamie





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-07 16:18               ` Jamie Forth
@ 2019-10-14  6:35                 ` Lars Ingebrigtsen
  2019-10-16 11:50                   ` Jamie Forth
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-14  6:35 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

> Lars Ingebrigtsen <larsi@gnus.org> writes:
>
>> For my test group, I get:
>>
>> (assq 'expire (gnus-info-marks (gnus-get-info "nnvirtual:imap-test")))
>> => (expire 392790 394237)
>>
>> You get nil for yours?
>
> Yes unfortunately.
>
> (gnus-info-marks (gnus-get-info "nnvirtual:vgtest")
>
> => ((unexist (1 . 34) (37 . 40)) (seen (22 . 40)))
>
> As a sanity check I just tried recreating the group with `emacs -Q` and
> the following gnus config.
>
> (setq gnus-select-method '(nntp "news.gmane.org"))
>
> (add-to-list
>  'gnus-secondary-select-methods
>  '(nnimap "gold"
>           (nnimap-stream shell)
>           (nnimap-shell-program
>            "/usr/lib/dovecot/imap -c ~/.config/dovecot/gold.conf 2> /dev/null")))
>
> Then G V, then M-e with: (nnvirtual "^nnimap\\+gold:Junk Email$")
>
> Marking some articles E, but same result!

How very odd.  I have the same setup, but with a real IMAP server, and
not nnimap-shell-program, but that shouldn't make a difference.

I've stared at the code some more, but I can't find out why the
expirable marks go missing.

Would it be possible for you to edebug through parts of
gnus-summary-exit to see when the expirable marks disappear?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-14  6:35                 ` Lars Ingebrigtsen
@ 2019-10-16 11:50                   ` Jamie Forth
  2019-10-18  3:54                     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Jamie Forth @ 2019-10-16 11:50 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> How very odd.  I have the same setup, but with a real IMAP server, and
> not nnimap-shell-program, but that shouldn't make a difference.

I’ve just tried with a real IMAP server and an confirm it makes no
difference – expired articles in virtual groups do not get expired.

> I've stared at the code some more, but I can't find out why the
> expirable marks go missing.
>
> Would it be possible for you to edebug through parts of
> gnus-summary-exit to see when the expirable marks disappear?

There expire marks disappear where I think they are supposed to.

  ;; Make all changes in this group permanent.
    (unless quit-config
      (gnus-run-hooks 'gnus-exit-group-hook)
      (gnus-summary-update-info))  <-- Here

What I tried was:
1. enter vg and mark some articles `E`.
2. (gnus-summary-update-info)
3. (gnus-info-marks (gnus-get-info "nnvirtual:vg-test"))

The same thing happens in a non-virtual group, except then when I
re-enter the group the previously marked articles have been correctly
expired.

--
Jamie

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-16 11:50                   ` Jamie Forth
@ 2019-10-18  3:54                     ` Lars Ingebrigtsen
  2019-10-18 13:13                       ` Jamie Forth
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-18  3:54 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

> There expire marks disappear where I think they are supposed to.
>
>   ;; Make all changes in this group permanent.
>     (unless quit-config
>       (gnus-run-hooks 'gnus-exit-group-hook)
>       (gnus-summary-update-info))  <-- Here
>
> What I tried was:
> 1. enter vg and mark some articles `E`.
> 2. (gnus-summary-update-info)
> 3. (gnus-info-marks (gnus-get-info "nnvirtual:vg-test"))
>
> The same thing happens in a non-virtual group, except then when I
> re-enter the group the previously marked articles have been correctly
> expired.

Let's see...  Here's the call sequence I get when I `E' and then `q'
from the nnvirtual group:

Debugger entered: nil
  nnimap-request-expire-articles((392790 394237 394238) "spam" "quimby.gnus.org" nil)
  gnus-request-expire-articles((392790 394237 394238) "nnimap+quimby.gnus.org:spam")
  gnus-group-expire-articles-1("nnimap+quimby.gnus.org:spam")
  nnvirtual-request-expire-articles((392790 394237 394238 394330) "imap-test" "^$\\|\\(^nnimap\\+quimby\\.gnus\\.org:spam$\\)" nil)
  gnus-request-expire-articles((392790 394237 394238 394330) "nnvirtual:imap-test")
  gnus-summary-expire-articles()
  run-hooks(gnus-summary-prepare-exit-hook)
  apply(run-hooks gnus-summary-prepare-exit-hook)
  gnus-run-hooks(gnus-summary-prepare-exit-hook)
  gnus-summary-exit()
  funcall-interactively(gnus-summary-exit)

So this is done from gnus-summary-prepare-exit-hook.  What's the value
of that hook for you?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-18  3:54                     ` Lars Ingebrigtsen
@ 2019-10-18 13:13                       ` Jamie Forth
  2019-10-19  8:09                         ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Jamie Forth @ 2019-10-18 13:13 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Let's see...  Here's the call sequence I get when I `E' and then `q'
> from the nnvirtual group:
>
> Debugger entered: nil
>   nnimap-request-expire-articles((392790 394237 394238) "spam" "quimby.gnus.org" nil)
>   gnus-request-expire-articles((392790 394237 394238) "nnimap+quimby.gnus.org:spam")
>   gnus-group-expire-articles-1("nnimap+quimby.gnus.org:spam")
>   nnvirtual-request-expire-articles((392790 394237 394238 394330) "imap-test" "^$\\|\\(^nnimap\\+quimby\\.gnus\\.org:spam$\\)" nil)
>   gnus-request-expire-articles((392790 394237 394238 394330) "nnvirtual:imap-test")
>   gnus-summary-expire-articles()
>   run-hooks(gnus-summary-prepare-exit-hook)
>   apply(run-hooks gnus-summary-prepare-exit-hook)
>   gnus-run-hooks(gnus-summary-prepare-exit-hook)
>   gnus-summary-exit()
>   funcall-interactively(gnus-summary-exit)
>
> So this is done from gnus-summary-prepare-exit-hook.  What's the value
> of that hook for you?

Not sure I’m doing the right thing here… setting `debug-on-entry` for
`gnus-summary-prepare-exit-hook` and stepping through I see this.

  Debugger entered--returning value: nil
  #f(compiled-function (&optional now) "Expire all articles that are marked as expirable in the current group." (interactive nil) #<bytecode 0x15590511b8b9>)()
* apply(#f(compiled-function (&optional now) "Expire all articles that are marked as expirable in the current group." (interactive nil) #<bytecode 0x15590511b8b9>) nil)
* gnus-summary-expire-articles()
  run-hooks(gnus-summary-prepare-exit-hook)
  apply(run-hooks gnus-summary-prepare-exit-hook)
  gnus-run-hooks(gnus-summary-prepare-exit-hook)
  gnus-summary-exit()
  funcall-interactively(gnus-summary-exit)
  call-interactively(gnus-summary-exit nil nil)
  command-execute(gnus-summary-exit)

And going a bit deeper…

  Debugger entered--entering a function:
* apply(message ("Expiring articles in %s..." "nnimap+gold:Junk Email"))
* gnus-message(6 "Expiring articles in %s..." "nnimap+gold:Junk Email")
* gnus-group-expire-articles-1("nnimap+gold:Junk Email")
* nnvirtual-request-expire-articles((13) "vg-test" "^nnimap\\+gold:Junk Email$" nil)
* gnus-request-expire-articles((13) "nnvirtual:vg-test")
* #f(compiled-function (&optional now) "Expire all articles that are marked as expirable in the current group." (interactive nil) #<bytecode 0x15590511b8b9>)()
* apply(#f(compiled-function (&optional now) "Expire all articles that are marked as expirable in the current group." (interactive nil) #<bytecode 0x15590511b8b9>) nil)
* gnus-summary-expire-articles()
  run-hooks(gnus-summary-prepare-exit-hook)
  apply(run-hooks gnus-summary-prepare-exit-hook)
  gnus-run-hooks(gnus-summary-prepare-exit-hook)
  gnus-summary-exit()
  funcall-interactively(gnus-summary-exit)
  call-interactively(gnus-summary-exit nil nil)
  command-execute(gnus-summary-exit)

Sorry if that wasn’t what you meant.

--
Jamie

^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-18 13:13                       ` Jamie Forth
@ 2019-10-19  8:09                         ` Lars Ingebrigtsen
  2022-04-30 16:24                           ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2019-10-19  8:09 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Jamie Forth <J.Forth@gold.ac.uk> writes:

>> So this is done from gnus-summary-prepare-exit-hook.  What's the value
>> of that hook for you?
>
> Not sure I’m doing the right thing here… setting `debug-on-entry` for
> `gnus-summary-prepare-exit-hook` and stepping through I see this.
>
>   Debugger entered--returning value: nil
>   #f(compiled-function (&optional now) "Expire all articles that are
> marked as expirable in the current group." (interactive nil)
> #<bytecode 0x15590511b8b9>)()
> * apply(#f(compiled-function (&optional now) "Expire all articles that
> are marked as expirable in the current group." (interactive nil)
> #<bytecode 0x15590511b8b9>) nil)
> * gnus-summary-expire-articles()
>   run-hooks(gnus-summary-prepare-exit-hook)

[...]

> Sorry if that wasn’t what you meant.

I just wondered what the value of the variable was.  :-)  But this shows
that you definitely have gnus-summary-expire-articles in
gnus-summary-prepare-exit-hook, so that's not the reason the articles
aren't expired.

Reading the code, gnus-summary-prepare-exit-hook is called before the
marks are cleared, so at that point the expirable list should still
exist, which makes the bug you're seeing even more incomprehensible...

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2019-10-19  8:09                         ` Lars Ingebrigtsen
@ 2022-04-30 16:24                           ` Lars Ingebrigtsen
  2022-05-29 13:19                             ` Lars Ingebrigtsen
  0 siblings, 1 reply; 17+ messages in thread
From: Lars Ingebrigtsen @ 2022-04-30 16:24 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I just wondered what the value of the variable was.  :-)  But this shows
> that you definitely have gnus-summary-expire-articles in
> gnus-summary-prepare-exit-hook, so that's not the reason the articles
> aren't expired.
>
> Reading the code, gnus-summary-prepare-exit-hook is called before the
> marks are cleared, so at that point the expirable list should still
> exist, which makes the bug you're seeing even more incomprehensible...

I seemed to have dropped the ball on this one -- this was two years ago.

Jamie, do you still see these problems in recent Emacs versions?

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

* bug#31739: 25.2; Cannot expire articles in virtual group
  2022-04-30 16:24                           ` Lars Ingebrigtsen
@ 2022-05-29 13:19                             ` Lars Ingebrigtsen
  0 siblings, 0 replies; 17+ messages in thread
From: Lars Ingebrigtsen @ 2022-05-29 13:19 UTC (permalink / raw)
  To: Jamie Forth; +Cc: 31739@debbugs.gnu.org

Lars Ingebrigtsen <larsi@gnus.org> writes:

> I seemed to have dropped the ball on this one -- this was two years ago.
>
> Jamie, do you still see these problems in recent Emacs versions?

More information was requested, but no response was given within a
month, so I'm closing this bug report.  If the problem still exists,
please respond to this email and we'll reopen the bug report.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2022-05-29 13:19 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-06-06 18:07 bug#31739: 25.2; Cannot expire articles in virtual group Jamie Forth
2019-09-29  8:21 ` Lars Ingebrigtsen
2019-09-30 17:00   ` Jamie Forth
2019-10-01 12:25     ` Lars Ingebrigtsen
2019-10-01 12:27     ` Lars Ingebrigtsen
2019-10-01 14:08       ` Jamie Forth
2019-10-03 15:51         ` Lars Ingebrigtsen
2019-10-04 18:34           ` Jamie Forth
2019-10-07  3:16             ` Lars Ingebrigtsen
2019-10-07 16:18               ` Jamie Forth
2019-10-14  6:35                 ` Lars Ingebrigtsen
2019-10-16 11:50                   ` Jamie Forth
2019-10-18  3:54                     ` Lars Ingebrigtsen
2019-10-18 13:13                       ` Jamie Forth
2019-10-19  8:09                         ` Lars Ingebrigtsen
2022-04-30 16:24                           ` Lars Ingebrigtsen
2022-05-29 13:19                             ` Lars Ingebrigtsen

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).