;;; gnus-start.el --- startup functions for Gnus
-;; Copyright (C) 1996-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2014 Free Software Foundation, Inc.
;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
;; Keywords: news
groups since the last time it checked:
1. This variable is `ask-server'.
2. This variable is a list of select methods (see below).
- 3. `gnus-read-active-file' is nil or `some'.
+ 3. Option `gnus-read-active-file' is nil or `some'.
4. A prefix argument is given to `gnus-find-new-newsgroups' interactively.
Thus, if this variable is `ask-server' or a list of select methods or
the `ask-server' method in addition to the primary, secondary, and archive
servers.
-Eg.
+E.g.:
(setq gnus-check-new-newsgroups
'((nntp \"some.server\") (nntp \"other.server\")))
function
(repeat function)))
-(defcustom gnus-subscribe-newsgroup-hooks nil
+(define-obsolete-variable-alias 'gnus-subscribe-newsgroup-hooks
+ 'gnus-subscribe-newsgroup-functions "24.3")
+(defcustom gnus-subscribe-newsgroup-functions nil
"*Hooks run after you subscribe to a new group.
The hooks will be called with new group's name as argument."
:version "22.1"
(defcustom gnus-before-startup-hook nil
"A hook called before startup.
-This hook is called as the first thing when Gnus is started."
+This hook is called as the first thing when Gnus is started.
+See also `gnus-before-resume-hook'."
+ :group 'gnus-start
+ :type 'hook)
+
+(defcustom gnus-before-resume-hook nil
+ "A hook called before resuming Gnus after suspend.
+This hook is called as the first thing when Gnus is resumed after a suspend.
+See also `gnus-before-startup-hook'."
+ :version "24.4"
:group 'gnus-start
:type 'hook)
gnus-level-killed (gnus-group-entry (or next "dummy.group")))
(gnus-request-update-group-status newsgroup 'subscribe)
(gnus-message 5 "Subscribe newsgroup: %s" newsgroup)
- (run-hook-with-args 'gnus-subscribe-newsgroup-hooks newsgroup)
+ (run-hook-with-args 'gnus-subscribe-newsgroup-functions newsgroup)
t))
(defun gnus-read-active-file-p ()
(if (gnus-alive-p)
(progn
+ (gnus-run-hooks 'gnus-before-resume-hook)
(switch-to-buffer gnus-group-buffer)
(gnus-group-get-new-news
(and (numberp arg)
(when (and gnus-dribble-buffer
(buffer-name gnus-dribble-buffer))
(with-current-buffer gnus-dribble-buffer
- (save-buffer))))
+ (when (> (buffer-size) 0)
+ (save-buffer)))))
(defun gnus-dribble-clear ()
(when (gnus-buffer-exists-p gnus-dribble-buffer)
(funcall gnus-group-change-level-function
group level oldlevel previous)))))
-(defun gnus-kill-newsgroup (newsgroup)
- "Obsolete function. Kills a newsgroup."
- (gnus-group-change-level
- (gnus-group-entry newsgroup) gnus-level-killed))
-
(defun gnus-check-bogus-newsgroups (&optional confirm)
"Remove bogus newsgroups.
If CONFIRM is non-nil, the user has to confirm the deletion of every
(or (not (gnus-agent-method-p method))
(gnus-online method)))
(gnus-finish-retrieve-group-infos method infos early-data)
+ ;; We may have altered the data now, so mark the dribble buffer
+ ;; as dirty so that it gets saved.
+ (gnus-dribble-touch)
(gnus-agent-save-active method))
;; Most backends have -retrieve-groups.
((gnus-check-backend-function 'retrieve-groups (car method))
(gnus-online method)
(gnus-agent-method-p method))
(progn
- (gnus-agent-save-active method)
+ (gnus-agent-save-active method t)
(gnus-active-to-gnus-format method hashtb nil real-active))
(goto-char (point-min))
(gnus-convert-old-newsrc)
(gnus-clean-old-newsrc))))
-(defun gnus-clean-old-newsrc ()
- (when gnus-newsrc-file-version
- (when (< (gnus-continuum-version gnus-newsrc-file-version)
- (gnus-continuum-version "Ma Gnus v0.03"))
- ;; Remove old `exist' marks from old nnimap groups.
- (dolist (info (cdr gnus-newsrc-alist))
- (let ((exist (assoc 'unexist (gnus-info-marks info))))
- (when exist
- (gnus-info-set-marks
- info (delete exist (gnus-info-marks info)))))))))
+(defun gnus-clean-old-newsrc (&optional force)
+ ;; Currently no cleanups.
+ )
(defun gnus-convert-old-newsrc ()
"Convert old newsrc formats into the current format, if needed."
(when gnus-newsrc-assoc
(setq gnus-newsrc-alist gnus-newsrc-assoc))))
(dolist (elem gnus-newsrc-alist)
- (setcar elem (mm-string-as-unibyte (car elem))))
+ ;; Protect against broken .newsrc.el files.
+ (when (car elem)
+ (setcar elem (mm-string-as-unibyte (car elem)))))
(gnus-make-hashtable-from-newsrc-alist)
(when (file-newer-than-file-p file ding-file)
;; Old format quick file