]> git.eshelyaron.com Git - emacs.git/commitdiff
Handle updates flags when setting flags
authorPhilip Kaludercic <philipk@posteo.net>
Wed, 15 Sep 2021 08:58:50 +0000 (10:58 +0200)
committerPhilip Kaludercic <philipk@posteo.net>
Thu, 23 Sep 2021 18:54:40 +0000 (20:54 +0200)
* nnmaildir.el (nnmaildir--article-set-flags): Handle updated flags
  more gracefully

lisp/gnus/nnmaildir.el

index 171f0813b38a6a8cd42ec393d1161543ccee969c..690761a2d6c2df6b54dda1ab5ebd4b349baef116 100644 (file)
@@ -194,7 +194,15 @@ This variable is set by `nnmaildir-request-article'.")
         (article-file (concat curdir prefix suffix))
         (new-name (concat curdir prefix new-suffix)))
     (unless (file-exists-p article-file)
-      (error "Couldn't find article file %s" article-file))
+      (let ((possible (file-expand-wildcards (concat curdir prefix "*"))))
+       (cond ((length= possible 1)
+              (unless (string-match-p "\\`\\(.+\\):2,.*?\\'" (car possible))
+                (error "Couldn't find updated article file %s" article-file))
+              (setq article-file (car possible)))
+             ((length> possible 1)
+              (error "Couldn't determine exact article file %s" article-file))
+             ((null possible)
+              (error "Couldn't find article file %s" article-file)))))
     (rename-file article-file new-name 'replace)
     (setf (nnmaildir--art-suffix article) new-suffix)))