projects
/
gnus
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
*** empty log message ***
[gnus]
/
lisp
/
gnus-agent.el
diff --git
a/lisp/gnus-agent.el
b/lisp/gnus-agent.el
index
853c0ca
..
f8f353d
100644
(file)
--- a/
lisp/gnus-agent.el
+++ b/
lisp/gnus-agent.el
@@
-1,9
+1,7
@@
;;; gnus-agent.el --- unplugged support for Gnus
;;; gnus-agent.el --- unplugged support for Gnus
-;; Copyright (C) 1997 Free Software Foundation, Inc.
+;; Copyright (C) 1997
,98
Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
;; Author: Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
-;; Keywords: news
-
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
;; This file is part of GNU Emacs.
;; GNU Emacs is free software; you can redistribute it and/or modify
@@
-46,6
+44,11
@@
:group 'gnus-agent
:type 'hook)
:group 'gnus-agent
:type 'hook)
+(defcustom gnus-agent-handle-level gnus-level-subscribed
+ "Groups on levels higher than this variable will be ignored by the Agent."
+ :group 'gnus-agent
+ :type 'integer)
+
;;; Internal variables
(defvar gnus-agent-history-buffers nil)
;;; Internal variables
(defvar gnus-agent-history-buffers nil)
@@
-110,7
+113,8
@@
(defsubst gnus-agent-directory ()
"Path of the Gnus agent directory."
(defsubst gnus-agent-directory ()
"Path of the Gnus agent directory."
- (nnheader-concat gnus-agent-directory (gnus-agent-method) "/"))
+ (nnheader-concat gnus-agent-directory
+ (nnheader-translate-file-chars (gnus-agent-method)) "/"))
(defun gnus-agent-lib-file (file)
"The full path of the Gnus agent library FILE."
(defun gnus-agent-lib-file (file)
"The full path of the Gnus agent library FILE."
@@
-172,11
+176,11
@@
buffer))))
minor-mode-map-alist))
(gnus-agent-toggle-plugged gnus-plugged)
buffer))))
minor-mode-map-alist))
(gnus-agent-toggle-plugged gnus-plugged)
- (run-hooks 'gnus-agent-mode-hook)))
+ (
gnus-
run-hooks 'gnus-agent-mode-hook)))
(defvar gnus-agent-group-mode-map (make-sparse-keymap))
(gnus-define-keys gnus-agent-group-mode-map
(defvar gnus-agent-group-mode-map (make-sparse-keymap))
(gnus-define-keys gnus-agent-group-mode-map
- "Ju" gnus-agent-fetch-group
+ "Ju" gnus-agent-fetch-group
s
"Jc" gnus-enter-category-buffer
"Jj" gnus-agent-toggle-plugged
"Js" gnus-agent-fetch-session
"Jc" gnus-enter-category-buffer
"Jj" gnus-agent-toggle-plugged
"Js" gnus-agent-fetch-session
@@
-234,12
+238,13
@@
(interactive (list (not gnus-plugged)))
(if plugged
(progn
(interactive (list (not gnus-plugged)))
(if plugged
(progn
- (run-hooks 'gnus-agent-plugged-hook)
+ (setq gnus-plugged plugged)
+ (gnus-run-hooks 'gnus-agent-plugged-hook)
(setcar (cdr gnus-agent-mode-status) " Plugged"))
(gnus-agent-close-connections)
(setcar (cdr gnus-agent-mode-status) " Plugged"))
(gnus-agent-close-connections)
- (run-hooks 'gnus-agent-unplugged-hook)
+ (setq gnus-plugged plugged)
+ (gnus-run-hooks 'gnus-agent-unplugged-hook)
(setcar (cdr gnus-agent-mode-status) " Unplugged"))
(setcar (cdr gnus-agent-mode-status) " Unplugged"))
- (setq gnus-plugged plugged)
(set-buffer-modified-p t))
(defun gnus-agent-close-connections ()
(set-buffer-modified-p t))
(defun gnus-agent-close-connections ()
@@
-255,6
+260,13
@@
(setq gnus-plugged nil)
(gnus))
(setq gnus-plugged nil)
(gnus))
+;;;###autoload
+(defun gnus-plugged ()
+ "Start Gnus plugged."
+ (interactive)
+ (setq gnus-plugged t)
+ (gnus))
+
;;;###autoload
(defun gnus-agentize ()
"Allow Gnus to be an offline newsreader.
;;;###autoload
(defun gnus-agentize ()
"Allow Gnus to be an offline newsreader.
@@
-297,6
+309,11
@@
agent minor mode in all Gnus buffers."
;;; Group mode commands
;;;
;;; Group mode commands
;;;
+(defun gnus-agent-fetch-groups (n)
+ "Put all new articles in the current groups into the agent."
+ (interactive "P")
+ (gnus-group-iterate n 'gnus-agent-fetch-group))
+
(defun gnus-agent-fetch-group (group)
"Put all new articles in GROUP into the agent."
(interactive (list (gnus-group-group-name)))
(defun gnus-agent-fetch-group (group)
"Put all new articles in GROUP into the agent."
(interactive (list (gnus-group-group-name)))
@@
-378,7
+395,6
@@
If N is negative, mark backward instead. If UNMARK is non-nil, remove
the mark instead. The difference between N and the actual number of
articles marked is returned."
(interactive "p")
the mark instead. The difference between N and the actual number of
articles marked is returned."
(interactive "p")
- (gnus-set-global-variables)
(let ((backward (< n 0))
(n (abs n)))
(while (and
(let ((backward (< n 0))
(n (abs n)))
(while (and
@@
-399,7
+415,6
@@
articles marked is returned."
If N is negative, unmark backward instead. The difference between N and
the actual number of articles unmarked is returned."
(interactive "p")
If N is negative, unmark backward instead. The difference between N and
the actual number of articles unmarked is returned."
(interactive "p")
- (gnus-set-global-variables)
(gnus-agent-mark-article n t))
(defun gnus-agent-toggle-mark (n)
(gnus-agent-mark-article n t))
(defun gnus-agent-toggle-mark (n)
@@
-407,7
+422,6
@@
the actual number of articles unmarked is returned."
If N is negative, toggle backward instead. The difference between N and
the actual number of articles toggled is returned."
(interactive "p")
If N is negative, toggle backward instead. The difference between N and
the actual number of articles toggled is returned."
(interactive "p")
- (gnus-set-global-variables)
(gnus-agent-mark-article n 'toggle))
(defun gnus-summary-set-agent-mark (article &optional unmark)
(gnus-agent-mark-article n 'toggle))
(defun gnus-summary-set-agent-mark (article &optional unmark)
@@
-415,9
+429,13
@@
the actual number of articles toggled is returned."
(let ((unmark (if (and (not (null unmark)) (not (eq t unmark)))
(memq article gnus-newsgroup-downloadable)
unmark)))
(let ((unmark (if (and (not (null unmark)) (not (eq t unmark)))
(memq article gnus-newsgroup-downloadable)
unmark)))
- (setq gnus-newsgroup-downloadable
- (delq article gnus-newsgroup-downloadable))
- (unless unmark
+ (if unmark
+ (progn
+ (setq gnus-newsgroup-downloadable
+ (delq article gnus-newsgroup-downloadable))
+ (push article gnus-newsgroup-undownloaded))
+ (setq gnus-newsgroup-undownloaded
+ (delq article gnus-newsgroup-undownloaded))
(push article gnus-newsgroup-downloadable))
(gnus-summary-update-mark
(if unmark gnus-undownloaded-mark gnus-downloadable-mark)
(push article gnus-newsgroup-downloadable))
(gnus-summary-update-mark
(if unmark gnus-undownloaded-mark gnus-downloadable-mark)
@@
-469,8
+487,11
@@
the actual number of articles toggled is returned."
(defun gnus-agent-group-path (group)
"Translate GROUP into a path."
(defun gnus-agent-group-path (group)
"Translate GROUP into a path."
- (nnheader-translate-file-chars
- (nnheader-replace-chars-in-string group ?. ?/)))
+ (if nnmail-use-long-file-names
+ group
+ (nnheader-replace-chars-in-string
+ (nnheader-translate-file-chars group)
+ ?. ?/)))
\f
\f
@@
-608,9
+629,11
@@
the actual number of articles toggled is returned."
(if (not (re-search-forward "^Message-ID: *<\\([^>\n]+\\)>" nil t))
(setq id "No-Message-ID-in-article")
(setq id (buffer-substring (match-beginning 1) (match-end 1))))
(if (not (re-search-forward "^Message-ID: *<\\([^>\n]+\\)>" nil t))
(setq id "No-Message-ID-in-article")
(setq id (buffer-substring (match-beginning 1) (match-end 1))))
- (write-region (point-min) (point-max)
- (concat dir (number-to-string (caar pos)))
- nil 'silent)
+ (let ((coding-system-for-write
+ gnus-agent-article-file-coding-system))
+ (write-region (point-min) (point-max)
+ (concat dir (number-to-string (caar pos)))
+ nil 'silent))
(when (setq elem (assq (caar pos) gnus-agent-article-alist))
(setcdr elem t))
(gnus-agent-enter-history
(when (setq elem (assq (caar pos) gnus-agent-article-alist))
(setcdr elem t))
(gnus-agent-enter-history
@@
-686,7
+709,8
@@
the actual number of articles toggled is returned."
(when (file-exists-p
(setq file (gnus-agent-article-name ".overview" group)))
(gnus-agent-braid-nov group articles file))
(when (file-exists-p
(setq file (gnus-agent-article-name ".overview" group)))
(gnus-agent-braid-nov group articles file))
- (gnus-make-directory (file-name-directory file))
+ (gnus-make-directory (nnheader-translate-file-chars
+ (file-name-directory file)))
(write-region (point-min) (point-max) file nil 'silent)
(gnus-agent-save-alist group articles nil))
t))))
(write-region (point-min) (point-max) file nil 'silent)
(gnus-agent-save-alist group articles nil))
t))))
@@
-786,7
+810,8
@@
the actual number of articles toggled is returned."
groups (gnus-groups-from-server (pop methods)))
(gnus-agent-with-fetch
(while (setq group (pop groups))
groups (gnus-groups-from-server (pop methods)))
(gnus-agent-with-fetch
(while (setq group (pop groups))
- (gnus-agent-fetch-group-1 group gnus-command-method))))
+ (when (<= (gnus-group-level group) gnus-agent-handle-level)
+ (gnus-agent-fetch-group-1 group gnus-command-method)))))
(gnus-message 6 "Finished fetching articles into the Gnus agent"))))
(defun gnus-agent-fetch-group-1 (group method)
(gnus-message 6 "Finished fetching articles into the Gnus agent"))))
(defun gnus-agent-fetch-group-1 (group method)
@@
-912,7
+937,7
@@
the actual number of articles toggled is returned."
["Edit groups" gnus-category-edit-groups t]
["Exit" gnus-category-exit t]))
["Edit groups" gnus-category-edit-groups t]
["Exit" gnus-category-exit t]))
- (run-hooks 'gnus-category-menu-hook)))
+ (
gnus-
run-hooks 'gnus-category-menu-hook)))
(defun gnus-category-mode ()
"Major mode for listing and editing agent categories.
(defun gnus-category-mode ()
"Major mode for listing and editing agent categories.
@@
-938,7
+963,7
@@
The following commands are available:
(buffer-disable-undo (current-buffer))
(setq truncate-lines t)
(setq buffer-read-only t)
(buffer-disable-undo (current-buffer))
(setq truncate-lines t)
(setq buffer-read-only t)
- (run-hooks 'gnus-category-mode-hook))
+ (
gnus-
run-hooks 'gnus-category-mode-hook))
(defalias 'gnus-category-position-point 'gnus-goto-colon)
(defalias 'gnus-category-position-point 'gnus-goto-colon)
@@
-987,7
+1012,7
@@
The following commands are available:
(setq gnus-category-alist
(or (gnus-agent-read-file
(nnheader-concat gnus-agent-directory "lib/categories"))
(setq gnus-category-alist
(or (gnus-agent-read-file
(nnheader-concat gnus-agent-directory "lib/categories"))
- (list (list 'default '
true
nil nil)))))
+ (list (list 'default '
short
nil nil)))))
(defun gnus-category-write ()
"Write the category alist."
(defun gnus-category-write ()
"Write the category alist."
@@
-1250,6
+1275,15
@@
The following commands are available:
(delete-file file))))))
(gnus-agent-save-alist nil nil nil dir))))
(delete-file file))))))
(gnus-agent-save-alist nil nil nil dir))))
+;;;###autoload
+(defun gnus-agent-batch ()
+ (interactive)
+ (let ((init-file-user "")
+ (gnus-always-read-dribble-file t))
+ (gnus))
+ (gnus-group-send-drafts)
+ (gnus-agent-fetch-session))
+
(provide 'gnus-agent)
;;; gnus-agent.el ends here
(provide 'gnus-agent)
;;; gnus-agent.el ends here