+Mon Mar 24 01:24:27 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
+
+ * gnus.el: Gnus v5.4.36 is released.
+
+Sun Mar 23 18:51:00 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-group.el (gnus-group-list-groups): Doc fix.
+
+ * gnus-demon.el (gnus-inhibit-demon): New variable.
+ (gnus-demon): Use it.
+
+Sun Mar 23 18:42:55 1997 David Moore <dmoore@ucsd.edu>
+
+ * gnus-nocem.el (gnus-nocem-already-running): New variable.
+
+Sun Mar 23 17:27:17 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-sum.el (gnus-select-newsgroup): Revert to old duplicate
+ behavior for nnvirtual groups.
+
+ * gnus-util.el (gnus-buffer-live-p): Removed.
+
+Sat Mar 22 22:11:28 1997 Steven L Baur <steve@altair.xemacs.org>
+
+ * gnus-msg.el (gnus-setup-message): Mark buffer unmodified as last
+ step of setting message buffer up.
+
+ * message.el (message-kill-buffer): Make prompt look more like the
+ one in kill-buffer.
+ Only prompt if the buffer has been changed.
+
Sun Mar 23 02:52:51 1997 Lars Magne Ingebrigtsen <larsi@menja.ifi.uio.no>
* gnus.el: Gnus v5.4.35 is released.
(defun gnus-async-prefetch-next (group article summary)
"Possibly prefetch several articles starting with the article after ARTICLE."
- (when (and (gnus-buffer-live-p summary)
+ (when (and (buffer-live-p summary)
gnus-asynchronous
(gnus-group-asynchronous-p group))
(save-excursion
(defun gnus-async-prefetch-article (group article summary &optional next)
"Possibly prefetch several articles starting with ARTICLE."
- (if (not (gnus-buffer-live-p summary))
+ (if (not (buffer-live-p summary))
(gnus-async-with-semaphore
(setq gnus-async-fetch-list nil))
(when (and gnus-asynchronous
(let ((do-fetch next)
(do-message t)) ;(eq major-mode 'gnus-summary-mode)))
(when (and (gnus-group-asynchronous-p group)
- (gnus-buffer-live-p summary)
+ (buffer-live-p summary)
(or (not next)
gnus-async-fetch-list))
(gnus-async-with-semaphore
,mark (set-marker (make-marker) (point-max))
,group ,article)
gnus-async-article-alist)))
- (if (not (gnus-buffer-live-p ,summary))
+ (if (not (buffer-live-p ,summary))
(gnus-async-with-semaphore
(setq gnus-async-fetch-list nil))
(gnus-async-prefetch-article ,group ,next ,summary t)))))
(defvar gnus-demon-idle-time 0)
(defvar gnus-demon-handler-state nil)
(defvar gnus-demon-last-keys nil)
+(defvar gnus-inhibit-demon nil
+ "*If non-nil, no daemonic function will be run.")
(eval-and-compile
(autoload 'timezone-parse-date "timezone")
(setq gnus-demon-idle-time 0)
(setq gnus-demon-idle-has-been-called nil))
;; Disable all daemonic stuff if we're in the minibuffer
- (unless (window-minibuffer-p (selected-window))
+ (when (and (not (window-minibuffer-p (selected-window)))
+ (not gnus-inhibit-demon))
;; Then we go through all the handler and call those that are
;; sufficiently ripe.
(let ((handlers gnus-demon-handler-state)
+ (gnus-inhibit-demon t)
handler time idle)
(while handlers
(setq handler (pop handlers))
"List newsgroups with level LEVEL or lower that have unread articles.
Default is all subscribed groups.
If argument UNREAD is non-nil, groups with no unread articles are also
-listed."
+listed.
+
+Also see the `gnus-group-use-permanent-levels' variable."
(interactive
(list (if current-prefix-arg
(prefix-numeric-value current-prefix-arg)
re-scanning. If ARG is non-nil and not a number, this will force
\"hard\" re-reading of the active files from all servers."
(interactive "P")
- (run-hooks 'gnus-get-new-news-hook)
-
- ;; Read any slave files.
- (unless gnus-slave
- (gnus-master-read-slave-newsrc))
-
- ;; We might read in new NoCeM messages here.
- (when (and gnus-use-nocem
- (null arg))
- (gnus-nocem-scan-groups))
- ;; If ARG is not a number, then we read the active file.
- (when (and arg (not (numberp arg)))
- (let ((gnus-read-active-file t))
- (gnus-read-active-file))
- (setq arg nil)
-
- ;; If the user wants it, we scan for new groups.
- (when (eq gnus-check-new-newsgroups 'always)
- (gnus-find-new-newsgroups)))
-
- (setq arg (gnus-group-default-level arg t))
- (if (and gnus-read-active-file (not arg))
- (progn
- (gnus-read-active-file)
- (gnus-get-unread-articles arg))
- (let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
- (gnus-get-unread-articles arg)))
- (run-hooks 'gnus-after-getting-new-news-hook)
- (gnus-group-list-groups (and (numberp arg)
- (max (car gnus-group-list-mode) arg))))
+ (let ((gnus-inhibit-demon t))
+ (run-hooks 'gnus-get-new-news-hook)
+
+ ;; Read any slave files.
+ (unless gnus-slave
+ (gnus-master-read-slave-newsrc))
+
+ ;; We might read in new NoCeM messages here.
+ (when (and gnus-use-nocem
+ (null arg))
+ (gnus-nocem-scan-groups))
+ ;; If ARG is not a number, then we read the active file.
+ (when (and arg (not (numberp arg)))
+ (let ((gnus-read-active-file t))
+ (gnus-read-active-file))
+ (setq arg nil)
+
+ ;; If the user wants it, we scan for new groups.
+ (when (eq gnus-check-new-newsgroups 'always)
+ (gnus-find-new-newsgroups)))
+
+ (setq arg (gnus-group-default-level arg t))
+ (if (and gnus-read-active-file (not arg))
+ (progn
+ (gnus-read-active-file)
+ (gnus-get-unread-articles arg))
+ (let ((gnus-read-active-file (if arg nil gnus-read-active-file)))
+ (gnus-get-unread-articles arg)))
+ (run-hooks 'gnus-after-getting-new-news-hook)
+ (gnus-group-list-groups (and (numberp arg)
+ (max (car gnus-group-list-mode) arg)))))
(defun gnus-group-get-new-news-this-group (&optional n)
"Check for newly arrived news in the current group (and the N-1 next groups).
(defun gnus-request-scan (group method)
"Request a SCAN being performed in GROUP from METHOD.
If GROUP is nil, all groups on METHOD are scanned."
- (let ((method (if group (gnus-find-method-for-group group) method)))
+ (let ((method (if group (gnus-find-method-for-group group) method))
+ (gnus-inhibit-demon t))
(funcall (gnus-get-function method 'request-scan)
(and group (gnus-group-real-name group)) (nth 1 method))))
(defun gnus-close-backends ()
;; Send a close request to all backends that support such a request.
(let ((methods gnus-valid-select-methods)
+ (gnus-inhibit-demon t)
func method)
(while (setq method (pop methods))
(when (fboundp (setq func (intern
(setq gnus-message-buffer (current-buffer))
(make-local-variable 'gnus-newsgroup-name)
(run-hooks 'gnus-message-setup-hook))
- (gnus-configure-windows ,config t))))
+ (gnus-configure-windows ,config t)
+ (set-buffer-modified-p nil))))
(defun gnus-inews-add-send-actions (winconf buffer article)
(make-local-hook 'message-sent-hook)
"Scan all NoCeM groups for new NoCeM messages."
(interactive)
(let ((groups gnus-nocem-groups)
+ (gnus-inhibit-demon t)
group active gactive articles)
(gnus-make-directory gnus-nocem-directory)
;; Load any previous NoCeM headers.
(defun gnus-pick-setup-message ()
"Make Message do the right thing on exit."
- (when (and (gnus-buffer-live-p gnus-summary-buffer)
+ (when (and (buffer-live-p gnus-summary-buffer)
(save-excursion
(set-buffer gnus-summary-buffer)
gnus-pick-mode))
"Add SCORE to all followups to the article in the current buffer."
(interactive "P")
(setq score (gnus-score-default score))
- (when (gnus-buffer-live-p gnus-summary-buffer)
+ (when (buffer-live-p gnus-summary-buffer)
(save-excursion
(save-restriction
(message-narrow-to-headers)
"Add SCORE to all later articles in the thread the current buffer is part of."
(interactive "P")
(setq score (gnus-score-default score))
- (when (gnus-buffer-live-p gnus-summary-buffer)
+ (when (buffer-live-p gnus-summary-buffer)
(save-excursion
(save-restriction
(goto-char (point-min))
(setq gnus-reffed-article-number reffed)
(setq gnus-current-score-file score-file)
;; The article buffer also has local variables.
- (when (gnus-buffer-live-p gnus-article-buffer)
+ (when (buffer-live-p gnus-article-buffer)
(set-buffer gnus-article-buffer)
(setq gnus-summary-buffer summary))))))
"Select newsgroup GROUP.
If READ-ALL is non-nil, all articles in the group are selected."
(let* ((entry (gnus-gethash group gnus-newsrc-hashtb))
+ ;;!!! Dirty hack; should be removed.
+ (gnus-summary-ignore-duplicates
+ (if (eq (car (gnus-find-method-for-group group)) 'nnvirtual)
+ t
+ gnus-summary-ignore-duplicates))
(info (nth 2 entry))
articles fetched-articles cached)
;; The `gnus-summary-buffer' variable may point
;; to the old summary buffer when using a single
;; article buffer.
- (unless (gnus-buffer-live-p gnus-summary-buffer)
+ (unless (buffer-live-p gnus-summary-buffer)
(set-buffer gnus-group-buffer))
(set-buffer gnus-summary-buffer)
(gnus-set-global-variables))))
(let ((ids (inline (gnus-split-references references))))
(car (last ids (or n 1))))))
-(defsubst gnus-buffer-live-p (buffer)
- "Say whether BUFFER is alive or not."
- (and buffer
- (get-buffer buffer)
- (buffer-name (get-buffer buffer))))
-
(defun gnus-horizontal-recenter ()
"Recenter the current buffer horizontally."
(if (< (current-column) (/ (window-width) 2))
:link '(custom-manual "(gnus)Exiting Gnus")
:group 'gnus)
-(defconst gnus-version-number "5.4.35"
+(defconst gnus-version-number "5.4.36"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Gnus v%s" gnus-version-number)
(defun message-kill-buffer ()
"Kill the current buffer."
(interactive)
- (when (yes-or-no-p "Kill the buffer? ")
+ (when (or (not (buffer-modified-p))
+ (yes-or-no-p "Message modified; kill anyway? "))
(let ((actions message-kill-actions))
(kill-buffer (current-buffer))
(message-do-actions actions))))
(when (and server
(not (nnfolder-server-opened server)))
(nnfolder-open-server server))
- (unless (gnus-buffer-live-p nnfolder-current-buffer)
+ (unless (buffer-live-p nnfolder-current-buffer)
(setq nnfolder-current-buffer nil
nnfolder-current-group nil))
;; Change group.
;; is live, verify that nobody else has touched the file since last
;; time.
(when (and nnfolder-current-buffer
- (not (gnus-buffer-live-p nnfolder-current-buffer)))
+ (not (buffer-live-p nnfolder-current-buffer)))
(setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)
nnfolder-current-buffer nil))
(defun nnfolder-possibly-change-folder (group)
(let ((inf (assoc group nnfolder-buffer-alist)))
(if (and inf
- (gnus-buffer-live-p (cadr inf)))
+ (buffer-live-p (cadr inf)))
(set-buffer (cadr inf))
(when inf
(setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)))
(autoload 'mail-position-on-field "sendmail")
(autoload 'message-remove-header "message")
(autoload 'cancel-function-timers "timers")
- (autoload 'gnus-point-at-eol "gnus-util")
- (autoload 'gnus-buffer-live-p "gnus-util"))
+ (autoload 'gnus-point-at-eol "gnus-util"))
;;; Header access macros.
(defun nnheader-init-server-buffer ()
"Initialize the Gnus-backend communication buffer."
(save-excursion
- (unless (gnus-buffer-live-p nntp-server-buffer)
+ (unless (buffer-live-p nntp-server-buffer)
(setq nntp-server-buffer (get-buffer-create " *nntpd*")))
(set-buffer nntp-server-buffer)
(buffer-disable-undo (current-buffer))
(defun nnmail-cache-insert (id)
(when nnmail-treat-duplicates
- (unless (gnus-buffer-live-p nnmail-cache-buffer)
+ (unless (buffer-live-p nnmail-cache-buffer)
(nnmail-cache-open))
(save-excursion
(set-buffer nnmail-cache-buffer)
"Say whether a connection to SERVER has been opened."
(and (nnoo-current-server-p 'nntp server)
nntp-server-buffer
- (gnus-buffer-live-p nntp-server-buffer)
+ (buffer-live-p nntp-server-buffer)
(nntp-find-connection nntp-server-buffer)))
(deffoo nntp-open-server (server &optional defs connectionless)
(deffoo nnweb-close-group (group &optional server)
(nnweb-possibly-change-server group server)
- (when (gnus-buffer-live-p nnweb-buffer)
+ (when (buffer-live-p nnweb-buffer)
(save-excursion
(set-buffer nnweb-buffer)
(set-buffer-modified-p nil)
(deffoo nnweb-close-server (&optional server)
(when (and (nnweb-server-opened server)
- (gnus-buffer-live-p nnweb-buffer))
+ (buffer-live-p nnweb-buffer))
(save-excursion
(set-buffer nnweb-buffer)
(set-buffer-modified-p nil)
(defun nnweb-init (server)
"Initialize buffers and such."
- (unless (gnus-buffer-live-p nnweb-buffer)
+ (unless (buffer-live-p nnweb-buffer)
(setq nnweb-buffer
(save-excursion
(nnheader-set-temp-buffer
t)))
(defun nnweb-callback (buffer callback)
- (when (gnus-buffer-live-p url-working-buffer)
+ (when (buffer-live-p url-working-buffer)
(save-excursion
(set-buffer url-working-buffer)
(funcall (nnweb-definition 'article))
Sun Mar 23 02:16:19 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
* gnus.texi (Thwarting Email Spam): New.
+ (Unavailable Servers): Fix.
Wed Mar 19 15:45:17 1997 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Gnus 5.4.35 Manual
+@settitle Gnus 5.4.36 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Gnus 5.4.35 Manual
+@title Gnus 5.4.36 Manual
@author by Lars Magne Ingebrigtsen
@page
spool or your mbox file. All at the same time, if you want to push your
luck.
-This manual corresponds to Gnus 5.4.35.
+This manual corresponds to Gnus 5.4.36.
@end ifinfo
That might seem quite naughty, but it does make sense most of the time.
Let's say you have 10 groups subscribed to the server
-@samp{nepholococcygia.com}. This server is located somewhere quite far
-away from you, the machine is quite, so it takes 1 minute just to find
-out that it refuses connection from you today. If Gnus were to attempt
-to do that 10 times, you'd be quite annoyed, so Gnus won't attempt to do
-that. Once it has gotten a single ``connection refused'', it will
-regard that server as ``down''.
+@samp{nephelococcygia.com}. This server is located somewhere quite far
+away from you and the machine is quite slow, so it takes 1 minute just
+to find out that it refuses connection from you today. If Gnus were to
+attempt to do that 10 times, you'd be quite annoyed, so Gnus won't
+attempt to do that. Once it has gotten a single ``connection refused'',
+it will regard that server as ``down''.
So, what happens if the machine was only feeling unwell temporarily?
How do you test to see whether the machine has come up again?
Note that adding daemons can be pretty naughty if you overdo it. Adding
functions that scan all news and mail from all servers every two seconds
is a sure-fire way of getting booted off any respectable system. So
-behave.
+behave.
@node NoCeM
\input texinfo @c -*-texinfo-*-
@setfilename message
-@settitle Message 5.4.35 Manual
+@settitle Message 5.4.36 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Message 5.4.35 Manual
+@title Message 5.4.36 Manual
@author by Lars Magne Ingebrigtsen
@page
* Key Index:: List of Message mode keys.
@end menu
-This manual corresponds to Message 5.4.35. Message is distributed with
+This manual corresponds to Message 5.4.36. Message is distributed with
the Gnus distribution bearing the same version number as this manual
has.