+Fri Aug 30 01:36:10 1996 Lars Magne Ingebrigtsen <larsi@hrym.ifi.uio.no>
+
+ * gnus-msg.el (gnus-inews-insert-archive-gcc): Use
+ `gnus-group-find-parameter'.
+
+ * nndoc.el (nndoc-mbox-article-begin): New function.
+
+ * gnus-sum.el (gnus-summary-search-article): Would expose the
+ first hidden thread.
+
+ * gnus-msg.el (gnus-copy-article-buffer): Delete annotations
+ before following up.
+
+ * gnus-cite.el (gnus-article-hide-citation): Mark buttons as
+ annotations.
+
+ * article.el (article-delete-text-of-type): New function.
+
+ * nndoc.el (nndoc-type-alist): Be slightly more permissive.
+
+ * gnus-sum.el (gnus-summary-enter-digest-group): Would nix out
+ quit-conf.
+ (gnus-summary-read-document): Ditto.
+
+ * nndoc.el (nndoc-dissect-buffer): Escape errors in overflows.
+
+ * message.el (message-send-news): Give a message after not
+ posting.
+ (message-reply): Remove leading spaces from Cc.
+
+Fri Aug 30 01:32:27 1996 Jack Vinson <jvinson@cheux.ecs.umass.edu>
+
+ * nnmail.el (nnmail-get-split-group): New version.
+
+Fri Aug 30 00:47:17 1996 Jens Lautenbacher <jens@lemming0.lem.uni-karlsruhe.de>
+
+ * gnus.texi (Group Parameters): Updated documentation
+
+ * gnus-msg.el (gnus-inews-insert-archive-gcc): Updated to use the
+ topic's value of gcc-self if no group value present.
+
+Fri Aug 30 00:19:43 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-start.el (gnus-set-default-directory): Expand default
+ directory.
+
+ * gnus-group.el (gnus-group-make-web-group): Changed keystroke.
+
+ * gnus-sum.el (gnus-summary-verbose-headers): Show article after
+ toggling.
+
+Thu Aug 29 23:50:54 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus-demon.el (gnus-demon-add-rescan): New function.
+ (gnus-demon-scan-news): New function.
+
+Thu Aug 29 05:34:40 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.el: Red Gnus v0.19 is released.
+
Thu Aug 29 02:04:35 1996 Lars Magne Ingebrigtsen <larsi@hrym.ifi.uio.no>
* nndoc.el (nndoc-babyl-body-begin): Would skip empty messages.
(while (setq b (text-property-any b e 'article-type type))
(add-text-properties b (incf b) gnus-hidden-properties)))))
+(defun article-delete-text-of-type (type)
+ "Delete text of TYPE in the current buffer."
+ (save-excursion
+ (let ((b (point-min))
+ (e (point-max)))
+ (while (setq b (text-property-any b e 'article-type type))
+ (delete-region b (incf b))))))
+
(defun article-text-type-exists-p (type)
"Say whether any text of type TYPE exists in the buffer."
(text-property-any (point-min) (point-max) 'article-type type))
(require 'gnus-art)
(require 'gnus-range)
-(eval-and-compile
- (autoload 'gnus-article-add-button "gnus-vis"))
-
;;; Customization:
(defvar gnus-cited-text-button-line-format "%(%{[...]%}%)\n"
(goto-char beg)
(unless (save-excursion (search-backward "\n\n" nil t))
(insert "\n"))
- (gnus-article-add-button
+ (put-text-property
(point)
- (progn (eval gnus-cited-text-button-line-format-spec) (point))
- `gnus-article-toggle-cited-text (cons beg end))
+ (progn
+ (gnus-article-add-button
+ (point)
+ (progn (eval gnus-cited-text-button-line-format-spec) (point))
+ `gnus-article-toggle-cited-text (cons beg end))
+ (point))
+ 'article-type 'annotation)
(set-marker beg (point)))))))))
(defun gnus-article-toggle-cited-text (region)
(require 'gnus-load)
(require 'gnus-int)
+(require 'nnheader)
(require 'gnus)
(defvar gnus-demon-handlers nil
(gnus-open-server server))
(gnus-request-scan nil server)))))
+(defun gnus-demon-add-rescan ()
+ "Add daemonic scanning of new articles from all backends."
+ (gnus-demon-add-handler 'gnus-demon-scan-news 120 60))
+
+(defun gnus-demon-scan-news ()
+ (when (gnus-alive-p)
+ (save-excursion
+ (set-buffer gnus-group-buffer)
+ (gnus-group-get-new-news))))
+
(provide 'gnus-demon)
;;; gnus-demon.el ends here
"V" gnus-group-make-empty-virtual
"D" gnus-group-enter-directory
"f" gnus-group-make-doc-group
- "n" gnus-group-make-web-group
+ "w" gnus-group-make-web-group
"r" gnus-group-rename-group
"\177" gnus-group-delete-group
[delete] gnus-group-delete-group)
(set-buffer article-buffer)
(save-restriction
(widen)
+ (article-delete-text-of-type 'annotation)
(setq contents (format "%s" (buffer-string)))
(set-buffer gnus-original-article-buffer)
(goto-char (point-min))
(insert "Gcc: ")
(if (and gnus-newsgroup-name
(setq gcc-self-val
- (gnus-group-get-parameter
+ (gnus-group-find-parameter
gnus-newsgroup-name 'gcc-self)))
(progn
(insert
\\{gnus-pick-mode-map}"
(interactive "P")
(when (eq major-mode 'gnus-summary-mode)
- (make-local-variable 'gnus-pick-mode)
- (setq gnus-pick-mode
- (if (null arg) (not gnus-pick-mode)
- (> (prefix-numeric-value arg) 0)))
- (when gnus-pick-mode
+ (when (set (make-local-variable 'gnus-pick-mode)
+ (if (null arg) (not gnus-pick-mode)
+ (> (prefix-numeric-value arg) 0)))
;; Make sure that we don't select any articles upon group entry.
- (make-local-variable 'gnus-auto-select-first)
- (setq gnus-auto-select-first nil)
+ (set (make-local-variable 'gnus-auto-select-first) nil)
;; Change line format.
(setq gnus-summary-line-format gnus-summary-pick-line-format)
(setq gnus-summary-line-format-spec nil)
(defun gnus-set-default-directory ()
"Set the default directory in the current buffer to `gnus-default-directory'.
If this variable is nil, don't do anything."
- (setq default-directory (or gnus-default-directory default-directory)))
+ (setq default-directory
+ (if (and gnus-default-directory
+ (file-exists-p gnus-default-directory))
+ (expand-file-name gnus-default-directory)
+ default-directory)))
(provide 'gnus-start)
(let ((config (make-symbol "config")))
`(let ((,config (gnus-hidden-threads-configuration)))
(unwind-protect
- (progn
+ (save-excursion
,@forms)
(gnus-restore-hidden-threads-configuration ,config)))))
(defvar gnus-tmp-new-adopts nil)
(defun gnus-summary-number-of-articles-in-thread (thread &optional level char)
- ;; Sum up all elements (and sub-elements) in a list.
+ "Return the number of articles in THREAD.
+This may be 0 in some cases -- if none of the articles in
+the thread are to be displayed."
(let* ((number
;; Fix by Luc Van Eycken <Luc.VanEycken@esat.kuleuven.ac.be>.
(cond
,(get-buffer dig))
(nndoc-article-type ,(if force 'digest 'guess))) t)
;; Make all postings to this group go to the parent group.
- (gnus-info-set-params (gnus-get-info name) params)
+ (nconc (gnus-info-params (gnus-get-info name))
+ params)
;; Couldn't select this doc group.
(switch-to-buffer buf)
(gnus-set-global-variables)
t nil t))
(progn
;; Make all postings to this group go to the parent group.
- (gnus-info-set-params (gnus-get-info name) params)
+ (nconc (gnus-info-params (gnus-get-info egroup))
+ params)
(push egroup groups))
;; Couldn't select this doc group.
(gnus-error 3 "Article couldn't be entered"))))))
(if backward
're-search-backward 're-search-forward))
(sum (current-buffer))
- (found nil))
+ (found nil)
+ point)
(gnus-save-hidden-threads
(gnus-summary-select-article)
(set-buffer gnus-article-buffer)
(get-buffer-window (current-buffer))
(point))
(forward-line 1)
- (set-buffer sum))
+ (set-buffer sum)
+ (setq point (point)))
;; We didn't find it, so we go to the next article.
(set-buffer sum)
(if (not (if backward (gnus-summary-find-prev)
(gnus-message 7 ""))
;; Return whether we found the regexp.
(when (eq found 'found)
+ (goto-char point)
(gnus-summary-show-thread)
(gnus-summary-goto-subject gnus-current-article)
(gnus-summary-position-point)
If ARG is a negative number, turn header display off."
(interactive "P")
(gnus-set-global-variables)
- (gnus-summary-toggle-header arg)
(setq gnus-show-all-headers
(cond ((or (not (numberp arg))
(zerop arg))
(not gnus-show-all-headers))
((natnump arg)
- t))))
+ t)))
+ (gnus-summary-show-article))
(defun gnus-summary-toggle-header (&optional arg)
"Show the headers if they are hidden, or hide them if they are shown.
[gnus-summary-next-unread
gnus-summary-next-unread-article t "Next unread article"]
[gnus-summary-mail-reply gnus-summary-reply t "Reply"]
- [gnus-summary-mail-get gnus-mail-get t "Message get"]
+; [gnus-summary-mail-get gnus-mail-get t "Message get"]
[gnus-summary-mail-originate gnus-summary-post-news t "Originate"]
[gnus-summary-mail-save gnus-summary-save-article t "Save"]
[gnus-summary-mail-copy gnus-summary-copy-article t "Copy message"]
(eval '(run-hooks 'gnus-load-hook))
-(defconst gnus-version-number "0.19"
+(defconst gnus-version-number "0.20"
"Version number for this version of Gnus.")
(defconst gnus-version (format "Red Gnus v%s" gnus-version-number)
;; Let the user do all of the above.
(run-hooks 'message-header-hook))
(message-cleanup-headers)
- (when (message-check-news-syntax)
+ (if (not (message-check-news-syntax))
+ (progn
+ (message "Posting nor performed")
+ nil)
(unwind-protect
(save-excursion
(set-buffer tembuf)
(setq ccalist (delq (assoc (car (pop s)) s) ccalist)))))
(setq follow-to (list (cons 'To (cdr (pop ccalist)))))
(when ccalist
- (push (cons 'Cc
- (mapconcat (lambda (addr) (cdr addr)) ccalist ", "))
- follow-to)))))
+ (let ((ccs (cons 'Cc (mapconcat
+ (lambda (addr) (cdr addr)) ccalist ", "))))
+ (when (string-match "^ +" ccs)
+ (setq ccs (substring ccs (match-end 0))))
+ (push ccs follow-to))))))
(widen))
(message-pop-to-buffer (message-buffer-name
(article-begin . "^#! *rnews +\\([0-9]+\\) *\n")
(body-end-function . nndoc-rnews-body-end))
(mbox
- (article-begin .
- ,(let ((delim (concat "^" message-unix-mail-delimiter)))
- (if (string-match "\n\\'" delim)
- (substring delim 0 (match-beginning 0))
- delim)))
+ (article-begin-function . nndoc-mbox-article-begin)
(body-end-function . nndoc-mbox-body-end))
(babyl
(article-begin . "\^_\^L *\n")
(subtype digest guess))
(standard-digest
(first-article . ,(concat "^" (make-string 70 ?-) "\n\n+"))
- (article-begin . ,(concat "\n\n" (make-string 30 ?-) "\n\n+"))
+ (article-begin . ,(concat "^\n" (make-string 30 ?-) "\n\n+"))
(prepare-body-function . nndoc-unquote-dashes)
(body-end-function . nndoc-digest-body-end)
(head-end . "^ ?$")
(when (looking-at message-unix-mail-delimiter)
t))
+(defun nndoc-mbox-article-begin ()
+ (when (re-search-forward (concat "^" message-unix-mail-delimiter))
+ (goto-char (match-beginning 0))))
+
(defun nndoc-mbox-body-end ()
(let ((beg (point))
len end)
;; Go through the file.
(while (if (and first nndoc-first-article)
(nndoc-search nndoc-first-article)
- (nndoc-search nndoc-article-begin))
+ (condition-case ()
+ (nndoc-search nndoc-article-begin)
+ (error nil)))
(setq first nil)
(cond (nndoc-head-begin-function
(funcall nndoc-head-begin-function))
(nndoc-head-begin
(nndoc-search nndoc-head-begin)))
- (if (or (>= (point) (point-max)) (and nndoc-file-end
- (looking-at nndoc-file-end)))
+ (if (or (>= (point) (point-max))
+ (and nndoc-file-end
+ (looking-at nndoc-file-end)))
(goto-char (point-max))
(setq head-begin (point))
(nndoc-search (or nndoc-head-end "^$"))
(funcall nndoc-body-end-function))
(and nndoc-body-end
(nndoc-search nndoc-body-end))
- (nndoc-search nndoc-article-begin)
+ (condition-case ()
+ (nndoc-search nndoc-article-begin)
+ (error nil))
(progn
(goto-char (point-max))
(when nndoc-file-end
(kill-buffer (current-buffer))))))
(defun nnmail-get-split-group (file group)
+ "Find out whether this FILE is to be split into GROUP only.
+If GROUP is non-nil and we are using procmail, return the group name
+only when the file is the correct procmail file. When GROUP is nil,
+return nil if FILE is a spool file or the procmail group for which it
+is a spool. If not using procmail, return GROUP."
(if (or (eq nnmail-spool-file 'procmail)
nnmail-use-procmail)
- (cond (group group)
- ((string-match (concat "^" (expand-file-name
- (file-name-as-directory
- nnmail-procmail-directory))
- "\\([^/]*\\)" nnmail-procmail-suffix "$")
- (expand-file-name file))
- (substring (expand-file-name file)
- (match-beginning 1) (match-end 1)))
- (t
- group))
+ (if (string-match (concat "^" (expand-file-name
+ (file-name-as-directory
+ nnmail-procmail-directory))
+ "\\([^/]*\\)" nnmail-procmail-suffix "$")
+ (expand-file-name file))
+ (let ((procmail-group (substring (expand-file-name file)
+ (match-beginning 1)
+ (match-end 1))))
+ (if group
+ (if (string-equal group procmail-group)
+ group
+ nil)
+ procmail-group))
+ nil)
group))
(defun nnmail-process-babyl-mail-format (func artnum-func)
+Fri Aug 30 00:21:59 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Foreign Groups): Change.
+
+Thu Aug 29 23:51:45 1996 Lars Magne Ingebrigtsen <larsi@ifi.uio.no>
+
+ * gnus.texi (Daemons): Addition.
+
Thu Aug 29 02:09:24 1996 François Pinard <pinard@progiciels-bpi.ca>
* gnus.texi (Web Searches): Typo.
\input texinfo @c -*-texinfo-*-
@setfilename gnus
-@settitle Red Gnus 0.19 Manual
+@settitle Red Gnus 0.20 Manual
@synindex fn cp
@synindex vr cp
@synindex pg cp
@tex
@titlepage
-@title Red Gnus 0.19 Manual
+@title Red Gnus 0.20 Manual
@author by Lars Magne Ingebrigtsen
@page
@code{forward}. If you run this command without a prefix, Gnus will
guess at the file type. @xref{Document Groups}.
-@item G n
-@kindex G n (Group)
+@item G w
+@kindex G w (Group)
@findex gnus-group-make-web-group
@cindex DejaNews
@cindex Alta Vista
@item gcc-self
@cindex gcc-self
-If this symbol is present in the group parameter list, new composed
-messages will be @code{Gcc}'d to the current group.
+If this symbol is present in the group parameter list and set to
+@code{t}, new composed messages will be @code{Gcc}'d to the current
+group. If it is present and set to @code{none}, no @code{Gcc:} header
+will be generated, if it is present and a string, this string will be
+inserted literally as a @code{gcc} header (this symbol takes precedence over
+any default @code{Gcc} rules as described later).
@item auto-expire
@cindex auto-expire
@findex gnus-demon-add-nocem
@findex gnus-demon-add-scanmail
+@findex gnus-demon-add-rescan
@findex gnus-demon-add-disconnection
Some ready-made functions to do this has been created:
-@code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection}, and
-@code{gnus-demon-add-scanmail}. Just put those functions in your
-@file{.gnus} if you want those abilities.
+@code{gnus-demon-add-nocem}, @code{gnus-demon-add-disconnection},
+@code{gnus-demon-add-rescan}, and @code{gnus-demon-add-scanmail}. Just
+put those functions in your @file{.gnus} if you want those abilities.
@findex gnus-demon-init
@findex gnus-demon-cancel