X-Git-Url: https://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fnnml.el;h=59e06364f4247bb1751dc845b11a4c9c7d7e99bc;hb=89a68cfae8cefd25eab8cc881888fb954be1d784;hp=b84ce518a2801c3991959ebc1e26e3e204b93243;hpb=0b4f71aa1706a0f1716978fc9dceb141769fb8ec;p=gnus diff --git a/lisp/nnml.el b/lisp/nnml.el index b84ce518a..59e06364f 100644 --- a/lisp/nnml.el +++ b/lisp/nnml.el @@ -1,7 +1,7 @@ ;;; nnml.el --- mail spool access for Gnus -;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, -;; 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +;; Copyright (C) 1995-2011 Free Software +;; Foundation, Inc. ;; Authors: Didier Verna (adding compaction) ;; Simon Josefsson (adding MARKS) @@ -235,7 +235,11 @@ non-nil.") (nnheader-article-to-file-alist (setq gpath (nnml-group-pathname (car group-num) nil server)))))) - (setq path (concat gpath (int-to-string (cdr group-num))))) + (nnml-update-file-alist) + (setq path (concat gpath (if nnml-use-compressed-files + (cdr (assq (cdr group-num) + nnml-article-file-alist)) + (number-to-string (cdr group-num)))))) (setq path (nnml-article-to-file id))) (cond ((not path) @@ -1033,19 +1037,7 @@ Use the nov database for the current group if available." (nnml-possibly-change-directory group server) (unless nnml-marks-is-evil (nnml-open-marks group server) - (dolist (action actions) - (let ((range (nth 0 action)) - (what (nth 1 action)) - (marks (nth 2 action))) - (assert (or (eq what 'add) (eq what 'del)) nil - "Unknown request-set-mark action: %s" what) - (dolist (mark marks) - (setq nnml-marks (gnus-update-alist-soft - mark - (funcall (if (eq what 'add) 'gnus-range-add - 'gnus-remove-from-range) - (cdr (assoc mark nnml-marks)) range) - nnml-marks))))) + (setq nnml-marks (nnheader-update-marks-actions nnml-marks actions)) (nnml-save-marks group server)) nil) @@ -1221,7 +1213,7 @@ Use the nov database for the current group if available." ;; #### already belongs to a range, whereas the corresponding ;; #### article doesn't exist (for example, if you delete an ;; #### article). For that reason, it is important to update - ;; #### the ranges (meaning remove inexistent articles) before + ;; #### the ranges (meaning remove nonexistent articles) before ;; #### doing anything on them. ;; 2 a/ read articles: (let ((read (gnus-info-read info)))