+;; Don't expire articles on selection if they're alread read. This provides
+;; a handy way to prevent expiry, and actually forcing expiry isn't
+;; significantly harder.
+(remove-hook 'gnus-mark-article-hook
+ 'gnus-summary-mark-read-and-unread-as-read)
+(add-hook 'gnus-mark-article-hook 'gnus-summary-mark-unread-as-read)
+
+;; Leave an oubliette level 7 for broken things which look like mailboxes.
+;; Otherwise Gnus keeps on resurrecting them and later realising that they're
+;; bogus.
+(setq gnus-level-unsubscribed 6)
+
+;; Reconfigure the `nnmail-split-fancy' syntax table to be less mad.
+(setq nnmail-split-fancy-syntax-table
+ (let ((table (make-syntax-table)))
+
+ ;; This is from upstream. I don't know what it's for.
+ (modify-syntax-entry ?% "." table)
+
+ ;; Email addresses are often wrapped in `<...>', so don't consider
+ ;; those to be part of the address.
+ (modify-syntax-entry ?< "(>" table)
+ (modify-syntax-entry ?> ")<" table)
+
+ ;; Email addresses definitely contain `.'.
+ (modify-syntax-entry ?. "_" table)
+
+ ;; Done.
+ table))
+