(defun gnus-agent-synchronize-flags-server (method)
"Synchronize flags set when unplugged for server."
- (let ((gnus-command-method method))
+ (let ((gnus-command-method method)
+ (gnus-agent nil))
(when (file-exists-p (gnus-agent-lib-file "flags"))
(set-buffer (get-buffer-create " *Gnus Agent flag synchronize*"))
(erase-buffer)
(nnheader-insert-file-contents (gnus-agent-lib-file "flags"))
- (if (null (gnus-check-server gnus-command-method))
- (gnus-message 1 "Couldn't open server %s" (nth 1 gnus-command-method))
- (while (not (eobp))
- (if (null (eval (read (current-buffer))))
- (gnus-delete-line)
- (write-file (gnus-agent-lib-file "flags"))
- (error "Couldn't set flags from file %s"
- (gnus-agent-lib-file "flags"))))
- (delete-file (gnus-agent-lib-file "flags")))
+ (cond ((null gnus-plugged)
+ (gnus-message
+ 1 "You must be plugged to synchronize flags with server %s"
+ (nth 1 gnus-command-method)))
+ ((null (gnus-check-server gnus-command-method))
+ (gnus-message
+ 1 "Couldn't open server %s" (nth 1 gnus-command-method)))
+ (t
+ (while (not (eobp))
+ (if (null (eval (read (current-buffer))))
+ (gnus-delete-line)
+ (write-file (gnus-agent-lib-file "flags"))
+ (error "Couldn't set flags from file %s"
+ (gnus-agent-lib-file "flags"))))
+ (delete-file (gnus-agent-lib-file "flags"))))
(kill-buffer nil))))
(defun gnus-agent-possibly-synchronize-flags-server (method)
(const :tag "Deny server" denied)
(const :tag "Unplug Agent" offline)))
-(defcustom gnus-servers-that-use-local-marks '(nntp)
- "A list of backends that store marks locally. This means that
- the backend is used to set its marks even when unplugged."
- :version "21.4"
- :group 'gnus-start
- :type '(repeat symbol))
-
(defvar gnus-internal-registry-spool-current-method nil
"The current method, for the registry.")
(defun gnus-request-set-mark (group action)
"Set marks on articles in the back end."
- (let* ((gnus-command-method (gnus-find-method-for-group group))
- (gnus-agent (if (member (car gnus-command-method)
- gnus-servers-that-use-local-marks)
- nil
- gnus-agent)))
+ (let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
'request-set-mark (car gnus-command-method)))
action
(defun gnus-request-update-mark (group article mark)
"Allow the back end to change the mark the user tries to put on an article."
- (let* ((gnus-command-method (gnus-find-method-for-group group))
- (gnus-agent (if (member (car gnus-command-method)
- gnus-servers-that-use-local-marks)
- nil
- gnus-agent)))
+ (let ((gnus-command-method (gnus-find-method-for-group group)))
(if (not (gnus-check-backend-function
'request-update-mark (car gnus-command-method)))
mark