*** pub/rgnus/lisp/article.el Thu Nov 14 14:05:09 1996 --- rgnus/lisp/article.el Sat Nov 16 17:40:32 1996 *************** *** 648,654 **** "Remove all blank lines from the beginning of the article." (interactive) (save-excursion ! (let (buffer-read-only) (goto-char (point-min)) (when (search-forward "\n\n" nil t) (while (and (not (eobp)) --- 648,655 ---- "Remove all blank lines from the beginning of the article." (interactive) (save-excursion ! (let ((inhibit-point-motion-hooks t) ! buffer-read-only) (goto-char (point-min)) (when (search-forward "\n\n" nil t) (while (and (not (eobp)) *** pub/rgnus/lisp/dgnushack.el Thu Nov 14 16:25:27 1996 --- rgnus/lisp/dgnushack.el Fri Nov 15 23:22:33 1996 *************** *** 37,52 **** (defalias 'efs-re-read-dir 'ignore) (defalias 'ange-ftp-re-read-dir 'ignore) - (fset 'orig-require (symbol-function 'require)) - - (defun require (package &optional file) - "Avoid loading .elc files." - (let ((filename (concat (symbol-name package) ".el"))) - (condition-case err - (orig-require package filename) - (error - (orig-require package))))) - (eval-and-compile (unless (string-match "XEmacs" emacs-version) (fset 'get-popup-menu-response 'ignore) --- 37,42 ---- *** pub/rgnus/lisp/gnus-art.el Thu Nov 14 14:02:01 1996 --- rgnus/lisp/gnus-art.el Fri Nov 15 23:41:56 1996 *************** *** 1063,1073 **** (gnus-narrow-to-page 1) ;Go to next page. nil) ;; More in this page. ! (condition-case () ! (scroll-up lines) ! (end-of-buffer ! ;; Long lines may cause an end-of-buffer error. ! (goto-char (point-max)))) (move-to-window-line 0) nil)) --- 1063,1074 ---- (gnus-narrow-to-page 1) ;Go to next page. nil) ;; More in this page. ! (let ((scroll-in-place nil)) ! (condition-case () ! (scroll-up lines) ! (end-of-buffer ! ;; Long lines may cause an end-of-buffer error. ! (goto-char (point-max))))) (move-to-window-line 0) nil)) *************** *** 1083,1092 **** (gnus-narrow-to-page -1) ;Go to previous page. (goto-char (point-max)) (recenter -1)) ! (prog1 ! (ignore-errors ! (scroll-down lines)) ! (move-to-window-line 0)))) (defun gnus-article-refer-article () "Read article specified by message-id around point." --- 1084,1094 ---- (gnus-narrow-to-page -1) ;Go to previous page. (goto-char (point-max)) (recenter -1)) ! (let ((scroll-in-place nil)) ! (prog1 ! (ignore-errors ! (scroll-down lines)) ! (move-to-window-line 0))))) (defun gnus-article-refer-article () "Read article specified by message-id around point." *** pub/rgnus/lisp/gnus-cache.el Fri Nov 8 05:53:24 1996 --- rgnus/lisp/gnus-cache.el Fri Nov 15 22:59:57 1996 *************** *** 642,647 **** --- 642,652 ---- (let ((nnml-generate-active-function 'identity)) (nnml-generate-nov-databases-1 dir))) + (defun gnus-cache-move-cache (dir) + "Move the cache tree to somewhere else." + (interactive "DMove the cache tree to: ") + (rename-file gnus-cache-directory dir)) + (provide 'gnus-cache) ;;; gnus-cache.el ends here *** pub/rgnus/lisp/gnus-group.el Wed Nov 13 23:35:38 1996 --- rgnus/lisp/gnus-group.el Sat Nov 16 18:16:04 1996 *************** *** 1177,1183 **** (if (member group gnus-zombie-list) gnus-level-zombie gnus-level-killed) nil (if (setq active (gnus-active group)) ! (- (1+ (cdr active)) (car active)) 0) nil)))) (defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level --- 1177,1186 ---- (if (member group gnus-zombie-list) gnus-level-zombie gnus-level-killed) nil (if (setq active (gnus-active group)) ! (if (zerop (cdr active)) ! 0 ! (- (1+ (cdr active)) (car active))) ! 0) nil)))) (defun gnus-group-insert-group-line (gnus-tmp-group gnus-tmp-level *************** *** 2479,2485 **** (when (gnus-group-native-p (gnus-info-group info)) (gnus-info-clear-data info))) (gnus-get-unread-articles) ! (gnus-dribble-enter "")))) (defun gnus-info-clear-data (info) "Clear all marks and read ranges from INFO." --- 2482,2491 ---- (when (gnus-group-native-p (gnus-info-group info)) (gnus-info-clear-data info))) (gnus-get-unread-articles) ! (gnus-dribble-enter "") ! (when (gnus-y-or-n-p ! "Move the cache away to avoid problems in the future? ") ! (call-interactively 'gnus-cache-move-cache))))) (defun gnus-info-clear-data (info) "Clear all marks and read ranges from INFO." *************** *** 2565,2571 **** (when all (gnus-add-marked-articles group 'tick nil nil 'force) (gnus-add-marked-articles group 'dormant nil nil 'force)) ! (run-hooks 'gnus-group-catchup-group-hook) num)))) (defun gnus-group-expire-articles (&optional n) --- 2571,2578 ---- (when all (gnus-add-marked-articles group 'tick nil nil 'force) (gnus-add-marked-articles group 'dormant nil nil 'force)) ! (let ((gnus-newsgroup-name group)) ! (run-hooks 'gnus-group-catchup-group-hook)) num)))) (defun gnus-group-expire-articles (&optional n) *************** *** 3137,3144 **** (when (and level (> (prefix-numeric-value level) gnus-level-killed)) (gnus-get-killed-groups)) ! (gnus-group-prepare-flat (or level gnus-level-subscribed) ! all (or lowest 1) regexp) (goto-char (point-min)) (gnus-group-position-point)) --- 3144,3151 ---- (when (and level (> (prefix-numeric-value level) gnus-level-killed)) (gnus-get-killed-groups)) ! (gnus-group-prepare-flat ! (or level gnus-level-subscribed) all (or lowest 1) regexp) (goto-char (point-min)) (gnus-group-position-point)) *** pub/rgnus/lisp/gnus-salt.el Fri Nov 8 01:41:56 1996 --- rgnus/lisp/gnus-salt.el Fri Nov 15 23:41:57 1996 *************** *** 265,273 **** (defun gnus-pick-next-page () "Go to the next page. If at the end of the buffer, start reading articles." (interactive) ! (condition-case nil ! (scroll-up) ! (end-of-buffer (gnus-pick-start-reading)))) ;;; ;;; gnus-binary-mode --- 265,274 ---- (defun gnus-pick-next-page () "Go to the next page. If at the end of the buffer, start reading articles." (interactive) ! (let ((scroll-in-place nil)) ! (condition-case nil ! (scroll-up) ! (end-of-buffer (gnus-pick-start-reading))))) ;;; ;;; gnus-binary-mode *** pub/rgnus/lisp/gnus-srvr.el Fri Nov 8 03:02:27 1996 --- rgnus/lisp/gnus-srvr.el Sat Nov 16 19:04:12 1996 *************** *** 626,632 **** (defun gnus-browse-read-group (&optional no-article) "Enter the group at the current line." (interactive) ! (let ((group (gnus-browse-group-name))) (unless (gnus-group-read-ephemeral-group group gnus-browse-current-method nil (cons (current-buffer) 'browse)) --- 626,632 ---- (defun gnus-browse-read-group (&optional no-article) "Enter the group at the current line." (interactive) ! (let ((group (gnus-group-real-name (gnus-browse-group-name)))) (unless (gnus-group-read-ephemeral-group group gnus-browse-current-method nil (cons (current-buffer) 'browse)) *** pub/rgnus/lisp/gnus-start.el Wed Nov 13 23:44:27 1996 --- rgnus/lisp/gnus-start.el Sat Nov 16 11:36:46 1996 *************** *** 336,342 **** :group 'gnus-start :type 'hook) ! (defcustom gnus-get-new-news-hook nil "A hook run just before Gnus checks for new news." :group 'gnus-start :type 'hook) --- 336,344 ---- :group 'gnus-start :type 'hook) ! (defcustom gnus-get-new-news-hook ! (when (gnus-boundp 'display-time-timer) ! '(display-time-event-handler)) "A hook run just before Gnus checks for new news." :group 'gnus-start :type 'hook) *** pub/rgnus/lisp/gnus-sum.el Wed Nov 13 16:54:42 1996 --- rgnus/lisp/gnus-sum.el Sat Nov 16 19:19:41 1996 *************** *** 2017,2027 **** (make-local-variable 'gnus-summary-line-format) (make-local-variable 'gnus-summary-line-format-spec) (make-local-variable 'gnus-summary-mark-positions) - (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy) - (gnus-update-summary-mark-positions) (gnus-make-local-hook 'post-command-hook) (gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t) ! (run-hooks 'gnus-summary-mode-hook)) (defun gnus-summary-make-local-variables () "Make all the local summary buffer variables." --- 2017,2027 ---- (make-local-variable 'gnus-summary-line-format) (make-local-variable 'gnus-summary-line-format-spec) (make-local-variable 'gnus-summary-mark-positions) (gnus-make-local-hook 'post-command-hook) (gnus-add-hook 'post-command-hook 'gnus-clear-inboxes-moved nil t) ! (run-hooks 'gnus-summary-mode-hook) ! (gnus-update-format-specifications nil 'summary 'summary-mode 'summary-dummy) ! (gnus-update-summary-mark-positions)) (defun gnus-summary-make-local-variables () "Make all the local summary buffer variables." *************** *** 2424,2433 **** (let ((gnus-replied-mark 129) (gnus-score-below-mark 130) (gnus-score-over-mark 130) - (thread nil) - (gnus-visual nil) (spec gnus-summary-line-format-spec) ! pos) (save-excursion (gnus-set-work-buffer) (let ((gnus-summary-line-format-spec spec)) --- 2424,2431 ---- (let ((gnus-replied-mark 129) (gnus-score-below-mark 130) (gnus-score-over-mark 130) (spec gnus-summary-line-format-spec) ! thread gnus-visual pos) (save-excursion (gnus-set-work-buffer) (let ((gnus-summary-line-format-spec spec)) *************** *** 5334,5341 **** "exiting")) (gnus-summary-next-group nil group backward))) (t ! (gnus-summary-walk-group-buffer ! gnus-newsgroup-name cmd unread backward))))))) (defun gnus-summary-walk-group-buffer (from-group cmd unread backward) (let ((keystrokes '((?\C-n (gnus-group-next-unread-group 1)) --- 5332,5340 ---- "exiting")) (gnus-summary-next-group nil group backward))) (t ! (when (numberp last-input-event) ! (gnus-summary-walk-group-buffer ! gnus-newsgroup-name cmd unread backward)))))))) (defun gnus-summary-walk-group-buffer (from-group cmd unread backward) (let ((keystrokes '((?\C-n (gnus-group-next-unread-group 1)) *************** *** 6524,6537 **** to-newsgroup select-method (not articles)))) ;; Crosspost the article. ((eq action 'crosspost) ! (let ((xref (mail-header-xref (gnus-summary-article-header article)))) ! (setq new-xref (concat gnus-newsgroup-name ":" article)) ! (if (and xref (not (string= xref ""))) ! (progn ! (when (string-match "^Xref: " xref) ! (setq xref (substring xref (match-end 0)))) ! (setq new-xref (concat xref " " new-xref))) ! (setq new-xref (concat (system-name) " " new-xref))) (save-excursion (set-buffer copy-buf) (gnus-request-article-this-buffer article gnus-newsgroup-name) --- 6523,6541 ---- to-newsgroup select-method (not articles)))) ;; Crosspost the article. ((eq action 'crosspost) ! (let ((xref (message-tokenize-header ! (mail-header-xref (gnus-summary-article-header article)) ! " "))) ! (setq new-xref (concat (gnus-group-real-name gnus-newsgroup-name) ! ":" article)) ! (unless xref ! (setq xref (list (system-name)))) ! (setq new-xref ! (concat ! (mapconcat 'identity ! (delete "Xref:" (delete new-xref xref)) ! " ") ! new-xref)) (save-excursion (set-buffer copy-buf) (gnus-request-article-this-buffer article gnus-newsgroup-name) *************** *** 6603,6610 **** (set-buffer copy-buf) (gnus-request-article-this-buffer article gnus-newsgroup-name) (nnheader-replace-header ! "xref" (concat new-xref " " (gnus-group-prefixed-name ! (car art-group) to-method) ":" (cdr art-group))) (gnus-request-replace-article article gnus-newsgroup-name (current-buffer))))) --- 6607,6613 ---- (set-buffer copy-buf) (gnus-request-article-this-buffer article gnus-newsgroup-name) (nnheader-replace-header ! "xref" (concat new-xref " " (car art-group) ":" (cdr art-group))) (gnus-request-replace-article article gnus-newsgroup-name (current-buffer))))) *************** *** 6743,6749 **** ;; This backend supports expiry. (let* ((total (gnus-group-total-expirable-p gnus-newsgroup-name)) (expirable (if total ! (gnus-list-of-read-articles gnus-newsgroup-name) (setq gnus-newsgroup-expirable (sort gnus-newsgroup-expirable '<)))) (expiry-wait (if now 'immediate --- 6746,6757 ---- ;; This backend supports expiry. (let* ((total (gnus-group-total-expirable-p gnus-newsgroup-name)) (expirable (if total ! (progn ! ;; We need to update the info for ! ;; this group for `gnus-list-of-read-articles' ! ;; to give us the right answer. ! (gnus-summary-update-info) ! (gnus-list-of-read-articles gnus-newsgroup-name)) (setq gnus-newsgroup-expirable (sort gnus-newsgroup-expirable '<)))) (expiry-wait (if now 'immediate *** pub/rgnus/lisp/gnus-topic.el Wed Nov 13 23:35:39 1996 --- rgnus/lisp/gnus-topic.el Sat Nov 16 19:14:20 1996 *************** *** 286,294 **** (defun gnus-topic-parameters (topic) "Return the parameters for TOPIC." (let ((top (gnus-topic-find-topology topic))) ! (unless top ! (error "No such topic: %s" topic)) ! (nth 3 (cadr top)))) (defun gnus-topic-set-parameters (topic parameters) "Set the topic parameters of TOPIC to PARAMETERS." --- 286,293 ---- (defun gnus-topic-parameters (topic) "Return the parameters for TOPIC." (let ((top (gnus-topic-find-topology topic))) ! (when top ! (nth 3 (cadr top))))) (defun gnus-topic-set-parameters (topic parameters) "Set the topic parameters of TOPIC to PARAMETERS." *************** *** 391,396 **** --- 390,396 ---- (beg (progn (beginning-of-line) (point))) (topicl (reverse topicl)) (all-entries entries) + (point-max (point-max)) (unread 0) (topic (car type)) info entry end active) *************** *** 428,434 **** ;; Insert the topic line. (when (and (not silent) (or gnus-topic-display-empty-topics ! (not (zerop unread)))) (gnus-extent-start-open (point)) (gnus-topic-insert-topic-line (car type) visiblep --- 428,435 ---- ;; Insert the topic line. (when (and (not silent) (or gnus-topic-display-empty-topics ! (not (zerop unread)) ! (/= point-max (point-max)))) (gnus-extent-start-open (point)) (gnus-topic-insert-topic-line (car type) visiblep *** pub/rgnus/lisp/gnus-util.el Thu Nov 14 17:19:40 1996 --- rgnus/lisp/gnus-util.el Sat Nov 16 11:36:46 1996 *************** *** 36,41 **** --- 36,46 ---- (require 'timezone) (require 'message) + (defun gnus-boundp (variable) + "Return non-nil if VARIABLE is bound and non-nil." + (and (boundp variable) + (symbol-value variable))) + (defmacro gnus-eval-in-buffer-window (buffer &rest forms) "Pop to BUFFER, evaluate FORMS, and then return to the original window." (let ((tempvar (make-symbol "GnusStartBufferWindow")) *** pub/rgnus/lisp/gnus-uu.el Fri Nov 8 05:53:21 1996 --- rgnus/lisp/gnus-uu.el Thu Nov 14 18:34:06 1996 *************** *** 31,39 **** (require 'message) (require 'gnus-msg) ;; Default viewing action rules ! (defvar gnus-uu-default-view-rules '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed s/\r//g") ("\\.pas$" "cat %s | sed s/\r//g") ("\\.[1-9]$" "groff -mandoc -Tascii %s | sed s/\b.//g") --- 31,43 ---- (require 'message) (require 'gnus-msg) + (defgroup gnus-extract nil + "Extracting encoded files." + :group 'gnus) + ;; Default viewing action rules ! (defcustom gnus-uu-default-view-rules '(("\\.te?xt$\\|\\.doc$\\|read.*me\\|\\.c?$\\|\\.h$\\|\\.bat$\\|\\.asm$\\|makefile" "cat %s | sed s/\r//g") ("\\.pas$" "cat %s | sed s/\r//g") ("\\.[1-9]$" "groff -mandoc -Tascii %s | sed s/\b.//g") *************** *** 51,57 **** ("\\.\\(flc\\|fli\\|rle\\|iff\\|pfx\\|avi\\|sme\\|rpza\\|dl\\|qt\\|rsrc\\|mov\\)$" "xanim") ("\\.\\(tar\\|arj\\|zip\\|zoo\\|arc\\|gz\\|Z\\|lzh\\|ar\\|lha\\)$" "gnus-uu-archive")) ! "*Default actions to be taken when the user asks to view a file. To change the behaviour, you can either edit this variable or set `gnus-uu-user-view-rules' to something useful. --- 55,61 ---- ("\\.\\(flc\\|fli\\|rle\\|iff\\|pfx\\|avi\\|sme\\|rpza\\|dl\\|qt\\|rsrc\\|mov\\)$" "xanim") ("\\.\\(tar\\|arj\\|zip\\|zoo\\|arc\\|gz\\|Z\\|lzh\\|ar\\|lha\\)$" "gnus-uu-archive")) ! "Default actions to be taken when the user asks to view a file. To change the behaviour, you can either edit this variable or set `gnus-uu-user-view-rules' to something useful. *************** *** 78,99 **** file. If this variable contains no matches, gnus-uu examines the default rule variable provided in this package. If gnus-uu finds no match here, it uses `gnus-uu-user-view-rules-end' to try to make a ! match.") ! (defvar gnus-uu-user-view-rules nil ! "*Variable detailing what actions are to be taken to view a file. See the documentation on the `gnus-uu-default-view-rules' variable for ! details.") ! (defvar gnus-uu-user-view-rules-end '(("" "file")) ! "*Variable saying what actions are to be taken if no rule matched the file name. See the documentation on the `gnus-uu-default-view-rules' variable for ! details.") ;; Default unpacking commands ! (defvar gnus-uu-default-archive-rules '(("\\.tar$" "tar xf") ("\\.zip$" "unzip -o") ("\\.ar$" "ar x") --- 82,109 ---- file. If this variable contains no matches, gnus-uu examines the default rule variable provided in this package. If gnus-uu finds no match here, it uses `gnus-uu-user-view-rules-end' to try to make a ! match." ! :group 'gnus-extract ! :type '(repeat (group regexp (string :tag "Command")))) ! (defcustom gnus-uu-user-view-rules nil ! "What actions are to be taken to view a file. See the documentation on the `gnus-uu-default-view-rules' variable for ! details." ! :group 'gnus-extract ! :type '(repeat (group regexp (string :tag "Command")))) ! (defcustom gnus-uu-user-view-rules-end '(("" "file")) ! "What actions are to be taken if no rule matched the file name. See the documentation on the `gnus-uu-default-view-rules' variable for ! details." ! :group 'gnus-extract ! :type '(repeat (group regexp (string :tag "Command")))) ;; Default unpacking commands ! (defcustom gnus-uu-default-archive-rules '(("\\.tar$" "tar xf") ("\\.zip$" "unzip -o") ("\\.ar$" "ar x") *************** *** 102,121 **** ("\\.\\(lzh\\|lha\\)$" "lha x") ("\\.Z$" "uncompress") ("\\.gz$" "gunzip") ! ("\\.arc$" "arc -x"))) (defvar gnus-uu-destructive-archivers (list "uncompress" "gunzip")) ! (defvar gnus-uu-user-archive-rules nil ! "*A list that can be set to override the default archive unpacking commands. To use, for instance, 'untar' to unpack tar files and 'zip -x' to unpack zip files, say the following: (setq gnus-uu-user-archive-rules '((\"\\\\.tar$\" \"untar\") ! (\"\\\\.zip$\" \"zip -x\")))") ! (defvar gnus-uu-ignore-files-by-name nil "*A regular expression saying what files should not be viewed based on name. If, for instance, you want gnus-uu to ignore all .au and .wav files, you could say something like --- 112,136 ---- ("\\.\\(lzh\\|lha\\)$" "lha x") ("\\.Z$" "uncompress") ("\\.gz$" "gunzip") ! ("\\.arc$" "arc -x")) ! "See `gnus-uu-user-archive-rules'." ! :group 'gnus-extract ! :type '(repeat (group regexp (string :tag "Command")))) (defvar gnus-uu-destructive-archivers (list "uncompress" "gunzip")) ! (defcustom gnus-uu-user-archive-rules nil ! "A list that can be set to override the default archive unpacking commands. To use, for instance, 'untar' to unpack tar files and 'zip -x' to unpack zip files, say the following: (setq gnus-uu-user-archive-rules '((\"\\\\.tar$\" \"untar\") ! (\"\\\\.zip$\" \"zip -x\")))" ! :group 'gnus-extract ! :type '(repeat (group regexp (string :tag "Command")))) ! (defcustom gnus-uu-ignore-files-by-name nil "*A regular expression saying what files should not be viewed based on name. If, for instance, you want gnus-uu to ignore all .au and .wav files, you could say something like *************** *** 123,131 **** (setq gnus-uu-ignore-files-by-name \"\\\\.au$\\\\|\\\\.wav$\") Note that this variable can be used in conjunction with the ! `gnus-uu-ignore-files-by-type' variable.") ! (defvar gnus-uu-ignore-files-by-type nil "*A regular expression saying what files that shouldn't be viewed, based on MIME file type. If, for instance, you want gnus-uu to ignore all audio files and all mpegs, you could say something like --- 138,149 ---- (setq gnus-uu-ignore-files-by-name \"\\\\.au$\\\\|\\\\.wav$\") Note that this variable can be used in conjunction with the ! `gnus-uu-ignore-files-by-type' variable." ! :group 'gnus-extract ! :type '(choice (const :tag "off" nil) ! (regexp :format "%v"))) ! (defcustom gnus-uu-ignore-files-by-type nil "*A regular expression saying what files that shouldn't be viewed, based on MIME file type. If, for instance, you want gnus-uu to ignore all audio files and all mpegs, you could say something like *************** *** 133,139 **** (setq gnus-uu-ignore-files-by-type \"audio/\\\\|video/mpeg\") Note that this variable can be used in conjunction with the ! `gnus-uu-ignore-files-by-name' variable.") ;; Pseudo-MIME support --- 151,160 ---- (setq gnus-uu-ignore-files-by-type \"audio/\\\\|video/mpeg\") Note that this variable can be used in conjunction with the ! `gnus-uu-ignore-files-by-name' variable." ! :group 'gnus-extract ! :type '(choice (const :tag "off" nil) ! (regexp :format "%v"))) ;; Pseudo-MIME support *************** *** 178,243 **** ;; Various variables users may set ! (defvar gnus-uu-tmp-dir "/tmp/" "*Variable saying where gnus-uu is to do its work. ! Default is \"/tmp/\".") ! (defvar gnus-uu-do-not-unpack-archives nil "*Non-nil means that gnus-uu won't peek inside archives looking for files to display. ! Default is nil.") ! (defvar gnus-uu-ignore-default-view-rules nil "*Non-nil means that gnus-uu will ignore the default viewing rules. ! Only the user viewing rules will be consulted. Default is nil.") ! (defvar gnus-uu-grabbed-file-functions nil ! "*Functions run on each file after successful decoding. They will be called with the name of the file as the argument. Likely functions you can use in this list are `gnus-uu-grab-view' ! and `gnus-uu-grab-move'.") ! (defvar gnus-uu-ignore-default-archive-rules nil "*Non-nil means that gnus-uu will ignore the default archive unpacking commands. ! Only the user unpacking commands will be consulted. Default is nil.") ! (defvar gnus-uu-kill-carriage-return t "*Non-nil means that gnus-uu will strip all carriage returns from articles. ! Default is t.") ! (defvar gnus-uu-view-with-metamail nil "*Non-nil means that files will be viewed with metamail. The gnus-uu viewing functions will be ignored and gnus-uu will try to guess at a content-type based on file name suffixes. Default ! it nil.") ! (defvar gnus-uu-unmark-articles-not-decoded nil "*Non-nil means that gnus-uu will mark articles that were unsuccessfully decoded as unread. ! Default is nil.") ! (defvar gnus-uu-correct-stripped-uucode nil "*Non-nil means that gnus-uu will *try* to fix uuencoded files that have had trailing spaces deleted. ! Default is nil.") ! (defvar gnus-uu-save-in-digest nil "*Non-nil means that gnus-uu, when asked to save without decoding, will save in digests. If this variable is nil, gnus-uu will just save everything in a file without any embellishments. The digesting almost conforms to RFC1153 - no easy way to specify any meaningful volume and issue numbers were found, ! so I simply dropped them.") ! (defvar gnus-uu-digest-headers '("^Date:" "^From:" "^To:" "^Cc:" "^Subject:" "^Message-ID:" "^Keywords:" "^Summary:" "^References:") ! "*List of regexps to match headers included in digested messages. ! The headers will be included in the sequence they are matched.") ! ! (defvar gnus-uu-save-separate-articles nil ! "*Non-nil means that gnus-uu will save articles in separate files.") ! (defvar gnus-uu-be-dangerous 'ask "*Specifies what to do if unusual situations arise during decoding. If nil, be as conservative as possible. If t, ignore things that ! didn't work, and overwrite existing files. Otherwise, ask each time.") ;; Internal variables --- 199,293 ---- ;; Various variables users may set ! (defcustom gnus-uu-tmp-dir "/tmp/" "*Variable saying where gnus-uu is to do its work. ! Default is \"/tmp/\"." ! :group 'gnus-extract ! :type 'directory) ! (defcustom gnus-uu-do-not-unpack-archives nil "*Non-nil means that gnus-uu won't peek inside archives looking for files to display. ! Default is nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-ignore-default-view-rules nil "*Non-nil means that gnus-uu will ignore the default viewing rules. ! Only the user viewing rules will be consulted. Default is nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-grabbed-file-functions nil ! "Functions run on each file after successful decoding. They will be called with the name of the file as the argument. Likely functions you can use in this list are `gnus-uu-grab-view' ! and `gnus-uu-grab-move'." ! :group 'gnus-extract ! :options '(gnus-uu-grab-view gnus-uu-grab-move) ! :type 'hook) ! (defcustom gnus-uu-ignore-default-archive-rules nil "*Non-nil means that gnus-uu will ignore the default archive unpacking commands. ! Only the user unpacking commands will be consulted. Default is nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-kill-carriage-return t "*Non-nil means that gnus-uu will strip all carriage returns from articles. ! Default is t." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-view-with-metamail nil "*Non-nil means that files will be viewed with metamail. The gnus-uu viewing functions will be ignored and gnus-uu will try to guess at a content-type based on file name suffixes. Default ! it nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-unmark-articles-not-decoded nil "*Non-nil means that gnus-uu will mark articles that were unsuccessfully decoded as unread. ! Default is nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-correct-stripped-uucode nil "*Non-nil means that gnus-uu will *try* to fix uuencoded files that have had trailing spaces deleted. ! Default is nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-save-in-digest nil "*Non-nil means that gnus-uu, when asked to save without decoding, will save in digests. If this variable is nil, gnus-uu will just save everything in a file without any embellishments. The digesting almost conforms to RFC1153 - no easy way to specify any meaningful volume and issue numbers were found, ! so I simply dropped them." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-digest-headers '("^Date:" "^From:" "^To:" "^Cc:" "^Subject:" "^Message-ID:" "^Keywords:" "^Summary:" "^References:") ! "List of regexps to match headers included in digested messages. ! The headers will be included in the sequence they are matched." ! :group 'gnus-extract ! :type '(repeat regexp)) ! ! (defcustom gnus-uu-save-separate-articles nil ! "*Non-nil means that gnus-uu will save articles in separate files." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-be-dangerous 'ask "*Specifies what to do if unusual situations arise during decoding. If nil, be as conservative as possible. If t, ignore things that ! didn't work, and overwrite existing files. Otherwise, ask each time." ! :group 'gnus-extract ! :type '(choice (const :tag "conservative" nil) ! (const :tag "ask" ask) ! (const :tag "liberal" t))) ;; Internal variables *************** *** 1676,1712 **** ;; parameters: PATH-NAME and FILE-NAME. (E.g. "/home/gaga/spiral.jpg" ;; and "spiral.jpg", respectively.) The function should return nil if ;; the encoding wasn't successful. ! (defvar gnus-uu-post-encode-method 'gnus-uu-post-encode-uuencode "Function used for encoding binary files. There are three functions supplied with gnus-uu for encoding files: `gnus-uu-post-encode-uuencode', which does straight uuencoding; `gnus-uu-post-encode-mime', which encodes with base64 and adds MIME headers; and `gnus-uu-post-encode-mime-uuencode', which encodes with ! uuencode and adds MIME headers.") ! (defvar gnus-uu-post-include-before-composing nil "Non-nil means that gnus-uu will ask for a file to encode before you compose the article. If this variable is t, you can either include an encoded file with ! \\[gnus-uu-post-insert-binary-in-article] or have one included for you when you post the article.") ! (defvar gnus-uu-post-length 990 "Maximum length of an article. The encoded file will be split into how many articles it takes to ! post the entire file.") ! (defvar gnus-uu-post-threaded nil "Non-nil means that gnus-uu will post the encoded file in a thread. This may not be smart, as no other decoder I have seen are able to follow threads when collecting uuencoded articles. (Well, I have seen one package that does that - gnus-uu, but somehow, I don't think that ! counts...) Default is nil.") ! (defvar gnus-uu-post-separate-description t "Non-nil means that the description will be posted in a separate article. The first article will typically be numbered (0/x). If this variable is nil, the description the user enters will be included at the beginning of the first article, which will be numbered (1/x). Default ! is t.") (defvar gnus-uu-post-binary-separator "--binary follows this line--") (defvar gnus-uu-post-message-id nil) --- 1726,1775 ---- ;; parameters: PATH-NAME and FILE-NAME. (E.g. "/home/gaga/spiral.jpg" ;; and "spiral.jpg", respectively.) The function should return nil if ;; the encoding wasn't successful. ! (defcustom gnus-uu-post-encode-method 'gnus-uu-post-encode-uuencode "Function used for encoding binary files. There are three functions supplied with gnus-uu for encoding files: `gnus-uu-post-encode-uuencode', which does straight uuencoding; `gnus-uu-post-encode-mime', which encodes with base64 and adds MIME headers; and `gnus-uu-post-encode-mime-uuencode', which encodes with ! uuencode and adds MIME headers." ! :group 'gnus-extract ! :type '(radio (function-item gnus-uu-post-encode-uuencode) ! (function-item gnus-uu-post-encode-mime) ! (function-item gnus-uu-post-encode-mime-uuencode) ! (function :tag "Other"))) ! (defcustom gnus-uu-post-include-before-composing nil "Non-nil means that gnus-uu will ask for a file to encode before you compose the article. If this variable is t, you can either include an encoded file with ! \\[gnus-uu-post-insert-binary-in-article] or have one included for you when you post the article." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-post-length 990 "Maximum length of an article. The encoded file will be split into how many articles it takes to ! post the entire file." ! :group 'gnus-extract ! :type 'integer) ! (defcustom gnus-uu-post-threaded nil "Non-nil means that gnus-uu will post the encoded file in a thread. This may not be smart, as no other decoder I have seen are able to follow threads when collecting uuencoded articles. (Well, I have seen one package that does that - gnus-uu, but somehow, I don't think that ! counts...) Default is nil." ! :group 'gnus-extract ! :type 'boolean) ! (defcustom gnus-uu-post-separate-description t "Non-nil means that the description will be posted in a separate article. The first article will typically be numbered (0/x). If this variable is nil, the description the user enters will be included at the beginning of the first article, which will be numbered (1/x). Default ! is t." ! :group 'gnus-extract ! :type 'boolean) (defvar gnus-uu-post-binary-separator "--binary follows this line--") (defvar gnus-uu-post-message-id nil) *** pub/rgnus/lisp/gnus-win.el Wed Nov 13 23:43:19 1996 --- rgnus/lisp/gnus-win.el Thu Nov 14 20:43:22 1996 *************** *** 27,46 **** (require 'gnus) ! (defvar gnus-use-full-window t ! "*If non-nil, use the entire Emacs screen.") (defvar gnus-window-configuration nil "Obsolete variable. See `gnus-buffer-configuration'.") ! (defvar gnus-window-min-width 2 ! "*Minimum width of Gnus buffers.") ! (defvar gnus-window-min-height 1 ! "*Minimum height of Gnus buffers.") ! (defvar gnus-always-force-window-configuration nil ! "*If non-nil, always force the Gnus window configurations.") (defvar gnus-buffer-configuration '((group --- 27,58 ---- (require 'gnus) ! (defgroup gnus-windows nil ! "Window configuration." ! :group 'gnus) ! ! (defcustom gnus-use-full-window t ! "*If non-nil, use the entire Emacs screen." ! :group 'gnus-windows ! :type 'boolean) (defvar gnus-window-configuration nil "Obsolete variable. See `gnus-buffer-configuration'.") ! (defcustom gnus-window-min-width 2 ! "*Minimum width of Gnus buffers." ! :group 'gnus-windows ! :type 'integer) ! (defcustom gnus-window-min-height 1 ! "*Minimum height of Gnus buffers." ! :group 'gnus-windows ! :type 'integer) ! (defcustom gnus-always-force-window-configuration nil ! "*If non-nil, always force the Gnus window configurations." ! :group 'gnus-windows ! :type 'boolean) (defvar gnus-buffer-configuration '((group *** pub/rgnus/lisp/gnus-xmas.el Sat Nov 9 05:13:38 1996 --- rgnus/lisp/gnus-xmas.el Sat Nov 16 11:36:51 1996 *************** *** 392,397 **** --- 392,400 ---- (when (< emacs-minor-version 14) (fset 'gnus-set-text-properties 'gnus-xmas-set-text-properties)) + (when (fboundp 'turn-off-scroll-in-place) + (add-hook 'gnus-article-mode-hook 'turn-off-scroll-in-place)) + (unless (boundp 'standard-display-table) (setq standard-display-table nil)) *** pub/rgnus/lisp/gnus.el Thu Nov 14 17:21:40 1996 --- rgnus/lisp/gnus.el Sat Nov 16 11:36:46 1996 *************** *** 42,48 **** "Score and kill file handling." :group 'gnus ) ! (defconst gnus-version-number "0.62" "Version number for this version of Gnus.") (defconst gnus-version (format "Red Gnus v%s" gnus-version-number) --- 42,48 ---- "Score and kill file handling." :group 'gnus ) ! (defconst gnus-version-number "0.63" "Version number for this version of Gnus.") (defconst gnus-version (format "Red Gnus v%s" gnus-version-number) *** pub/rgnus/lisp/nnmail.el Thu Nov 14 11:34:04 1996 --- rgnus/lisp/nnmail.el Sat Nov 16 18:27:12 1996 *************** *** 467,474 **** (if (not (buffer-modified-p errors)) ;; No output => movemail won (progn ! (or popmail ! (set-file-modes tofile nnmail-default-file-modes)) (push inbox nnmail-moved-inboxes)) (set-buffer errors) ;; There may be a warning about older revisions. We --- 467,474 ---- (if (not (buffer-modified-p errors)) ;; No output => movemail won (progn ! (unless popmail ! (set-file-modes tofile nnmail-default-file-modes)) (push inbox nnmail-moved-inboxes)) (set-buffer errors) ;; There may be a warning about older revisions. We *************** *** 476,483 **** (goto-char (point-min)) (if (search-forward "older revision" nil t) (progn ! (or popmail ! (set-file-modes tofile nnmail-default-file-modes)) (push inbox nnmail-moved-inboxes)) ;; Probably a real error. (subst-char-in-region (point-min) (point-max) ?\n ?\ ) --- 476,483 ---- (goto-char (point-min)) (if (search-forward "older revision" nil t) (progn ! (unless popmail ! (set-file-modes tofile nnmail-default-file-modes)) (push inbox nnmail-moved-inboxes)) ;; Probably a real error. (subst-char-in-region (point-min) (point-max) ?\n ?\ ) *** pub/rgnus/lisp/nntp.el Thu Nov 14 14:11:47 1996 --- rgnus/lisp/nntp.el Sat Nov 16 18:07:37 1996 *************** *** 466,482 **** This function is supposed to be called from `nntp-server-opened-hook'. It will prompt for a password." (when (file-exists-p "~/.nntp-authinfo") ! (save-excursion ! (set-buffer (get-buffer-create " *authinfo*")) ! (buffer-disable-undo (current-buffer)) ! (erase-buffer) (insert-file-contents "~/.nntp-authinfo") (goto-char (point-min)) (nntp-send-command "^.*\r?\n" "AUTHINFO USER" (user-login-name)) (nntp-send-command "^.*\r?\n" "AUTHINFO PASS" ! (buffer-substring (point) (progn (end-of-line) (point)))) ! (kill-buffer (current-buffer))))) ;;; Internal functions. --- 466,478 ---- This function is supposed to be called from `nntp-server-opened-hook'. It will prompt for a password." (when (file-exists-p "~/.nntp-authinfo") ! (nnheader-temp-write nil (insert-file-contents "~/.nntp-authinfo") (goto-char (point-min)) (nntp-send-command "^.*\r?\n" "AUTHINFO USER" (user-login-name)) (nntp-send-command "^.*\r?\n" "AUTHINFO PASS" ! (buffer-substring (point) (progn (end-of-line) (point))))))) ;;; Internal functions. *************** *** 745,758 **** (unless connectionless (or (nntp-find-connection nntp-server-buffer) ! (nntp-open-connection nntp-server-buffer))) ! (when group ! (let ((entry (nntp-find-connection-entry nntp-server-buffer))) ! (when (not (equal group (caddr entry))) ! (nntp-request-group group) ! (save-excursion ! (set-buffer nntp-server-buffer) (erase-buffer))))))) (defun nntp-decode-text (&optional cr-only) --- 741,759 ---- (unless connectionless (or (nntp-find-connection nntp-server-buffer) ! (nntp-open-connection nntp-server-buffer)))) ! (when group ! (let ((entry (nntp-find-connection-entry nntp-server-buffer))) ! (when (not (equal group (caddr entry))) ! (nntp-request-group group) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (if nnheader-callback-function ! (progn ! (goto-char (point-max)) ! (forward-line -1) ! (gnus-delete-line)) (erase-buffer))))))) (defun nntp-decode-text (&optional cr-only) *** pub/rgnus/lisp/nnvirtual.el Mon Nov 11 05:14:35 1996 --- rgnus/lisp/nnvirtual.el Fri Nov 15 22:12:47 1996 *************** *** 66,84 **** to virtual article number.") (defvoo nnvirtual-mapping-offsets nil ! "Table indexed by component group to an offset to be applied to article ! numbers in that group.") (defvoo nnvirtual-mapping-len 0 "Number of articles in this virtual group.") (defvoo nnvirtual-mapping-reads nil ! "Compressed sequence of read articles on the virtual group as computed ! from the unread status of individual component groups.") (defvoo nnvirtual-mapping-marks nil ! "Compressed marks alist for the virtual group as computed from the ! marks of individual component groups.") (defvoo nnvirtual-status-string "") --- 66,81 ---- to virtual article number.") (defvoo nnvirtual-mapping-offsets nil ! "Table indexed by component group to an offset to be applied to article numbers in that group.") (defvoo nnvirtual-mapping-len 0 "Number of articles in this virtual group.") (defvoo nnvirtual-mapping-reads nil ! "Compressed sequence of read articles on the virtual group as computed from the unread status of individual component groups.") (defvoo nnvirtual-mapping-marks nil ! "Compressed marks alist for the virtual group as computed from the marks of individual component groups.") (defvoo nnvirtual-status-string "") *************** *** 339,346 **** (defun nnvirtual-update-xref-header (group article prefix system-name) ! "Edit current NOV header in current buffer to have an xref to the ! component group, and also server prefix any existing xref lines." ;; Move to beginning of Xref field, creating a slot if needed. (beginning-of-line) (looking-at --- 336,342 ---- (defun nnvirtual-update-xref-header (group article prefix system-name) ! "Edit current NOV header in current buffer to have an xref to the component group, and also server prefix any existing xref lines." ;; Move to beginning of Xref field, creating a slot if needed. (beginning-of-line) (looking-at *************** *** 512,519 **** ;;; unique reverse mapping. (defun nnvirtual-map-article (article) ! "Return a cons of the component group and article corresponding to ! the given virtual ARTICLE." (let ((table nnvirtual-mapping-table) entry group-pos) (while (and table --- 508,514 ---- ;;; unique reverse mapping. (defun nnvirtual-map-article (article) ! "Return a cons of the component group and article corresponding to the given virtual ARTICLE." (let ((table nnvirtual-mapping-table) entry group-pos) (while (and table *************** *** 534,541 **** (defun nnvirtual-reverse-map-article (group article) ! "Return the virtual article number corresponding to the given ! component GROUP and ARTICLE." (let ((table nnvirtual-mapping-table) (group-pos 0) entry) --- 529,535 ---- (defun nnvirtual-reverse-map-article (group article) ! "Return the virtual article number corresponding to the given component GROUP and ARTICLE." (let ((table nnvirtual-mapping-table) (group-pos 0) entry) *************** *** 584,594 **** (defun nnvirtual-partition-sequence (articles) ! "Return an association list of component article numbers, indexed ! by elements of nnvirtual-component-groups, based on the sequence ! ARTICLES of virtual article numbers. ARTICLES should be sorted, ! and can be a compressed sequence. If any of the article numbers has ! no corresponding component article, then it is left out of the result." (when (numberp (cdr-safe articles)) (setq articles (list articles))) (let ((carticles (mapcar (lambda (g) (list g)) --- 578,589 ---- (defun nnvirtual-partition-sequence (articles) ! "Return an association list of component article numbers. ! These are indexed by elements of nnvirtual-component-groups, based on ! the sequence ARTICLES of virtual article numbers. ARTICLES should be ! sorted, and can be a compressed sequence. If any of the article ! numbers has no corresponding component article, then it is left out of ! the result." (when (numberp (cdr-safe articles)) (setq articles (list articles))) (let ((carticles (mapcar (lambda (g) (list g)) *************** *** 611,619 **** (defun nnvirtual-create-mapping () ! "Build the tables necessary to map between component (group, article) ! to virtual article. Generate the set of read messages and marks for ! the virtual group based on the marks on the component groups." (let ((cnt 0) (tot 0) (M 0) --- 606,614 ---- (defun nnvirtual-create-mapping () ! "Build the tables necessary to map between component (group, article) to virtual article. ! Generate the set of read messages and marks for the virtual group ! based on the marks on the component groups." (let ((cnt 0) (tot 0) (M 0) *************** *** 632,638 **** (setq active (gnus-activate-group g) min (car active) max (cdr active)) ! (when (and active (>= max min)) ;; store active information (push (list g (- max min -1) max) actives) ;; collect unread/mark info for later --- 627,633 ---- (setq active (gnus-activate-group g) min (car active) max (cdr active)) ! (when (and active (>= max min) (not (zerop max))) ;; store active information (push (list g (- max min -1) max) actives) ;; collect unread/mark info for later *** pub/rgnus/lisp/nnweb.el Sun Nov 10 10:21:07 1996 --- rgnus/lisp/nnweb.el Fri Nov 15 22:59:56 1996 *************** *** 31,36 **** --- 31,37 ---- (require 'nnoo) (require 'message) (require 'gnus-util) + (require 'gnus) (require 'w3) (require 'url) (ignore-errors *** pub/rgnus/lisp/ChangeLog Thu Nov 14 17:16:23 1996 --- rgnus/lisp/ChangeLog Sat Nov 16 19:19:41 1996 *************** *** 1,3 **** --- 1,71 ---- + Sat Nov 16 11:32:43 1996 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-next-article): Ignore non-keyboard + events before starting to walk. + + * gnus-topic.el (gnus-topic-prepare-topic): Insert topics that + have 0 unread if there is anything under. + + * gnus-sum.el (gnus-summary-move-article): Do `B B' properly. + + * gnus-topic.el (gnus-topic-parameters): Return nil on + non-existant topics. + + * nntp.el (nntp-possibly-change-group): Would nix out async buffer + when switching groups. + + * gnus-sum.el (gnus-summary-expire-articles): Update info before + expiring. + + * article.el (article-strip-leading-blank-lines): Would strip too + much. + + * gnus-sum.el (gnus-summary-mode): Update specs after running + hook. + + * gnus-util.el (gnus-boundp): New function. + + * gnus-start.el (gnus-get-new-news-hook): Default to updating + display-time, if present. + + Fri Nov 15 13:59:16 1996 Steven L Baur + + * gnus-xmas.el (gnus-xmas-define): Better fix for dealing with + scroll-in-place, which will be preloaded in XEmacs 19.15. + + * gnus-art.el (gnus-article-prev-page): Guard scroll-(up|down) + against scroll-in-place package. + (gnus-article-next-page): Ditto. + + * gnus-salt.el (gnus-pick-next-page): Ditto. + + Fri Nov 15 21:40:12 1996 Lars Magne Ingebrigtsen + + * nnweb.el (gnus): Required. + + * gnus-group.el (gnus-group-clear-data-on-native-groups): Offer to + move cache. + + * gnus-cache.el (gnus-cache-move-cache): New command. + + * nnvirtual.el (nnvirtual-create-mapping): Handle groups with no + articles. + + * gnus-group.el (gnus-group-insert-group-line-info): Compute the + right number for dead groups. + + * nnvirtual.el: Complete-first-sentence-in-first-line-of-doc fix. + + Thu Nov 14 10:20:44 1996 Per Abrahamsen + + * gnus-win.el: Added customize support. + + * gnus-uu.el: Added customize support. + + Thu Nov 14 17:50:12 1996 Lars Magne Ingebrigtsen + + * gnus.el: Red Gnus v0.62 is released. + Thu Nov 14 12:25:23 1996 Lars Magne Ingebrigtsen * gnus.el (gnus-article-display-hook): Add *** pub/rgnus/lisp/Makefile Sun Nov 10 11:50:22 1996 --- rgnus/lisp/Makefile Fri Nov 15 23:41:50 1996 *************** *** 6,11 **** --- 6,14 ---- rm -f *.elc ; $(EMACS) $(FLAGS) -f dgnushack-compile all: + rm -f *.elc ; $(EMACS) $(FLAGS) -f dgnushack-compile + + clever: $(EMACS) $(FLAGS) -f dgnushack-compile some: *** pub/rgnus/Makefile Thu Nov 14 14:07:02 1996 --- rgnus/Makefile Fri Nov 15 23:23:58 1996 *************** *** 9,14 **** --- 9,16 ---- # Rule for Lars and nobody else. some: cd lisp; $(MAKE) EMACS=$(EMACS) some + l: + cd lisp; $(MAKE) EMACS=$(EMACS) clever info: cd texi; $(MAKE) EMACS=$(EMACS) all *** pub/rgnus/texi/gnus.texi Thu Nov 14 17:25:34 1996 --- rgnus/texi/gnus.texi Sat Nov 16 19:42:03 1996 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Red Gnus 0.62 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Red Gnus 0.63 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 287,293 **** @tex @titlepage ! @title Red Gnus 0.62 Manual @author by Lars Magne Ingebrigtsen @page --- 287,293 ---- @tex @titlepage ! @title Red Gnus 0.63 Manual @author by Lars Magne Ingebrigtsen @page *************** *** 322,327 **** --- 322,329 ---- can be gotten by any nefarious means you can think of---@sc{nntp}, local spool or your mbox file. All at the same time, if you want to push your luck. + + This manual corresponds to Red Gnus 0.63 @end ifinfo