Function: gnus-agent-synchronize-flags-server

gnus-agent-synchronize-flags-server is a byte-compiled function defined in gnus-agent.el.gz.

Signature

(gnus-agent-synchronize-flags-server METHOD)

Documentation

Synchronize flags set when unplugged for server.

Source Code

;; Defined in /usr/src/emacs/lisp/gnus/gnus-agent.el.gz
(defun gnus-agent-synchronize-flags-server (method)
  "Synchronize flags set when unplugged for server."
  (let ((gnus-command-method method)
	(gnus-agent nil))
    (when (file-exists-p (gnus-agent-lib-file "flags"))
      (set-buffer (gnus-get-buffer-create " *Gnus Agent flag synchronize*"))
      (erase-buffer)
      (nnheader-insert-file-contents (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
	     (condition-case err
		 (while t
		   (let ((bgn (point)))
		     (eval (read (current-buffer)) t)
		     (delete-region bgn (point))))
	       (end-of-file
		(delete-file (gnus-agent-lib-file "flags")))
	       (error
		(let ((file (gnus-agent-lib-file "flags")))
		  (write-region (point-min) (point-max)
				(gnus-agent-lib-file "flags") nil 'silent)
		  (error "Couldn't set flags from file %s due to %s"
			 file (error-message-string err)))))))
      (kill-buffer nil))))