diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/ChangeLog dgnus/lisp/ChangeLog *** pub/dgnus/lisp/ChangeLog Mon Apr 24 18:21:07 1995 --- dgnus/lisp/ChangeLog Tue Apr 25 13:36:25 1995 *************** *** 1,4 **** ! Mon Apr 24 17:38:36 1995 Lars Magne Ingebrigtsen * nntp.el (nntp-kill-connection): Add a small wait after timing out. --- 1,59 ---- ! Tue Apr 25 12:54:28 1995 Lars Magne Ingebrigtsen ! ! * gnus.el (gnus-valid-select-methods): nnvirtual groups should not ! have the address in the name. ! (gnus-article-prepare): When trying to refer an article that ! didn't exist, the current article pointers would become confused. ! (gnus-summary-line-format-alist): Make sure `thread' is defined. ! ! Mon Apr 24 10:50:09 1995 Scott Byer ! ! * gnus.el (gnus-get-unread-articles) Closed each group after ! checking the number of unread articles in order to minimize memory ! usage when using a file-based backend (e.g., nnfolder). ! ! * nnfolder.el (nnfolder-possibly-change-group) Added check on ! modtime of mbox. This should help those who use procmail. ! ! * nnfolder.el (nnfolder-close-group) Added use of ! nnfolder-always-close. ! ! * nnfolder.el (nnfolder-always-close) Added this variable to ! determine if nnfolder should got for speed or minimize space ! requirements. The old tradeoff. If this new variable is t, ! nnfolder will try and keep only one mbox open at a time. This ! will cost some time! ! ! * nnfolder.el (nnfolder-ignore-active-file) Renamed ! nnfolder-active-file--paranoia to something mor reasonable. Did ! not change the sense. ! ! * nnfolder.el (nnfolder-read-folder) Consolidated the min-max loop ! when being paranoid or recovering from bad active file. ! ! Tue Apr 25 12:27:03 1995 Lars Magne Ingebrigtsen ! ! * gnus.el (gnus-server-to-method): Did not find method for native ! groups. ! (gnus-article-x-face-command): Value fix. ! ! Tue Apr 25 11:06:36 1995 Lars Magne Ingebrigtsen ! ! * gnus.el (gnus-summary-next-page): Would not allow exit from the ! last group. ! ! * gnus-message.el (gnus-post-news): Would not allow posting from ! the group buffer. ! (gnus-inews-remove-headers): New function to remove headers before ! posting. ! (gnus-inews-lines): Would compute an incorrect Lines header. ! ! * gnus.el (gnus-article-de-quoted-unreadable): Make sure that the ! article really is quoted-unreadable. ! ! Mon Apr 24 17:38:36 1995 Lars Magne Ingebrigtsen ! ! * gnus.el: 0.58 is released. * nntp.el (nntp-kill-connection): Add a small wait after timing out. diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus-message.el dgnus/lisp/gnus-message.el *** pub/dgnus/lisp/gnus-message.el Mon Apr 24 18:20:55 1995 --- dgnus/lisp/gnus-message.el Tue Apr 25 11:59:41 1995 *************** *** 197,204 **** (format "%s" (car (gnus-find-method-for-group gnus-newsgroup-name))) gnus-valid-select-methods)))) ! (assq 'to-address (nth 5 (nth 2 (gnus-gethash gnus-newsgroup-name ! gnus-newsrc-hashtb)))) (gnus-y-or-n-p "Are you sure you want to post to all of USENET? ")) (let ((sumart (if (not post) (save-excursion --- 197,205 ---- (format "%s" (car (gnus-find-method-for-group gnus-newsgroup-name))) gnus-valid-select-methods)))) ! (and group ! (assq 'to-address ! (nth 5 (nth 2 (gnus-gethash group gnus-newsrc-hashtb))))) (gnus-y-or-n-p "Are you sure you want to post to all of USENET? ")) (let ((sumart (if (not post) (save-excursion *************** *** 615,620 **** --- 616,622 ---- (re-search-forward (concat "^" (regexp-quote mail-header-separator) "$")) (match-beginning 0))) + (gnus-inews-remove-headers) (gnus-inews-insert-headers) (run-hooks gnus-inews-article-header-hook) (widen)) *************** *** 643,648 **** --- 645,663 ---- gnus-select-method) use-group-method) (kill-buffer (current-buffer)))))) + (defun gnus-inews-remove-headers () + (let ((case-fold-search t)) + ;; Remove NNTP-posting-host. + (goto-char (point-min)) + (and (re-search-forward "^nntp-posting-host:" nil t) + (delete-region (progn (beginning-of-line) (point)) + (progn (forward-line 1) (point)))) + ;; Remove Bcc. + (goto-char (point-min)) + (and (re-search-forward "^bcc:" nil t) + (delete-region (progn (beginning-of-line) (point)) + (progn (forward-line 1) (point)))))) + (defun gnus-inews-insert-headers () "Prepare article headers. Headers already prepared in the buffer are not modified. *************** *** 668,678 **** (re-search-forward "^Message-ID:" nil t) (delete-region (progn (beginning-of-line) (point)) (progn (forward-line 1) (point)))) - ;; Remove NNTP-posting-host. - (goto-char (point-min)) - (and (re-search-forward "^nntp-posting-host:" nil t) - (delete-region (progn (beginning-of-line) (point)) - (progn (forward-line 1) (point)))) ;; Insert new Sender if the From is strange. (let ((from (mail-fetch-field "from"))) (if (and from (not (string= (downcase from) (downcase From)))) --- 683,688 ---- *************** *** 976,982 **** (save-restriction (widen) (goto-char (point-min)) ! (search-forward "\n\n" nil 'move) (int-to-string (count-lines (point) (point-max)))))) --- 986,994 ---- (save-restriction (widen) (goto-char (point-min)) ! (re-search-forward ! (concat "^" (regexp-quote mail-header-separator) "$")) ! (forward-line 1) (int-to-string (count-lines (point) (point-max)))))) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/gnus.el dgnus/lisp/gnus.el *** pub/dgnus/lisp/gnus.el Mon Apr 24 18:20:59 1995 --- dgnus/lisp/gnus.el Tue Apr 25 13:43:07 1995 *************** *** 35,43 **** (require 'mail-utils) (require 'timezone) - (require 'rnews) - (require 'rmail) - (require 'nnheader) ;; Site dependent variables. These variables should be defined in --- 35,40 ---- *************** *** 965,971 **** (defvar gnus-valid-select-methods '(("nntp" post address prompt-address) ("nnspool" post) ! ("nnvirtual" none virtual prompt-address address) ("nnmbox" mail respool) ("nnml" mail respool) ("nnmh" mail respool) --- 962,968 ---- (defvar gnus-valid-select-methods '(("nntp" post address prompt-address) ("nnspool" post) ! ("nnvirtual" none virtual prompt-address) ("nnmbox" mail respool) ("nnml" mail respool) ("nnmh" mail respool) *************** *** 1118,1124 **** (add-hook 'gnus-article-display-hook 'gnus-article-treat-overstrike) (defvar gnus-article-x-face-command ! "{ echo '/* WidthH, HeightH */'; uncompface; } | icontopbm | xv -" "String or function to be executed to display an X-Face header. If it is a string, the command will be executed in a sub-shell asynchronously. The compressed face will be piped to this command.") --- 1115,1121 ---- (add-hook 'gnus-article-display-hook 'gnus-article-treat-overstrike) (defvar gnus-article-x-face-command ! "{ echo '/* Width=48, Height=48 */'; uncompface; } | icontopbm | xv -" "String or function to be executed to display an X-Face header. If it is a string, the command will be executed in a sub-shell asynchronously. The compressed face will be piped to this command.") *************** *** 1281,1288 **** (list ?i 'score ?s) (list ?z 'score-char ?c) (list ?U 'unread ?c) ! (list ?t '(gnus-summary-number-of-articles-in-thread thread) ?d) ! (list ?e '(gnus-summary-number-of-articles-in-thread thread t) ?c) (list ?u 'user-defined ?s)) "An alist of format specifications that can appear in summary lines, and what variables they correspond with, along with the type of the --- 1278,1287 ---- (list ?i 'score ?s) (list ?z 'score-char ?c) (list ?U 'unread ?c) ! (list ?t '(gnus-summary-number-of-articles-in-thread ! (if (boundp 'thread) (symbol-value 'thread) nil) t) ?d) ! (list ?e '(gnus-summary-number-of-articles-in-thread ! (if (boundp 'thread) (symbol-value 'thread) nil) t) ?c) (list ?u 'user-defined ?s)) "An alist of format specifications that can appear in summary lines, and what variables they correspond with, along with the type of the *************** *** 1315,1321 **** (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.58" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1314,1320 ---- (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.59" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 1519,1524 **** --- 1518,1527 ---- (autoload 'mail-setup "sendmail") (autoload 'news-mail-other-window "rnewspost") (autoload 'news-reply-yank-original "rnewspost") + + (autoload 'rmail-insert-rmail-file-header "rmail") + (autoload 'rmail-count-new-messages "rmail") + (autoload 'rmail-show-message "rmail") (autoload 'gnus-mail-reply-using-mhe "gnus-mh") (autoload 'gnus-mail-forward-using-mhe "gnus-mh") *************** *** 1533,1563 **** (autoload 'gnus-visual-highlight-selected-summary "gnus-visual") (autoload 'gnus-visual-summary-highlight-line "gnus-visual") ! (autoload 'gnus-uu-mark-by-regexp "gnus-uu") ! (autoload 'gnus-uu-mark-region "gnus-uu") ! (autoload 'gnus-uu-mark-thread "gnus-uu") ! (autoload 'gnus-uu-mark-sparse "gnus-uu") ! (autoload 'gnus-uu-mark-series "gnus-uu") ! (autoload 'gnus-uu-mark-all "gnus-uu") ! (autoload 'gnus-uu-post-news "gnus-uu") ! (autoload 'gnus-uu-digest-and-forward "gnus-uu") ! ! (autoload 'gnus-uu-decode-uu "gnus-uu") ! (autoload 'gnus-uu-decode-uu-and-save "gnus-uu") ! (autoload 'gnus-uu-decode-unshar "gnus-uu") ! (autoload 'gnus-uu-decode-unshar-and-save "gnus-uu") ! (autoload 'gnus-uu-decode-save "gnus-uu") ! (autoload 'gnus-uu-decode-binhex "gnus-uu") ! (autoload 'gnus-uu-decode-uu-view "gnus-uu") ! (autoload 'gnus-uu-decode-uu-and-save-view "gnus-uu") ! (autoload 'gnus-uu-decode-unshar-view "gnus-uu") ! (autoload 'gnus-uu-decode-unshar-and-save-view "gnus-uu") ! (autoload 'gnus-uu-decode-save-view "gnus-uu") ! (autoload 'gnus-uu-decode-binhex-view "gnus-uu") ! (autoload 'gnus-uu-decode-postscript "gnus-uu") ! (autoload 'gnus-uu-decode-postscript-and-save "gnus-uu") ! (autoload 'gnus-uu-decode-postscript-view "gnus-uu") ! (autoload 'gnus-uu-decode-postscript-and-save-view "gnus-uu") (autoload 'gnus-kill "gnus-kill") (autoload 'gnus-apply-kill-file-internal "gnus-kill") --- 1536,1566 ---- (autoload 'gnus-visual-highlight-selected-summary "gnus-visual") (autoload 'gnus-visual-summary-highlight-line "gnus-visual") ! (autoload 'gnus-uu-mark-by-regexp "gnus-uu" nil t) ! (autoload 'gnus-uu-mark-region "gnus-uu" nil t) ! (autoload 'gnus-uu-mark-thread "gnus-uu" nil t) ! (autoload 'gnus-uu-mark-sparse "gnus-uu" nil t) ! (autoload 'gnus-uu-mark-series "gnus-uu" nil t) ! (autoload 'gnus-uu-mark-all "gnus-uu" nil t) ! (autoload 'gnus-uu-post-news "gnus-uu" nil t) ! (autoload 'gnus-uu-digest-and-forward "gnus-uu" nil t) ! ! (autoload 'gnus-uu-decode-uu "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-uu-and-save "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-unshar "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-unshar-and-save "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-save "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-binhex "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-uu-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-uu-and-save-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-unshar-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-unshar-and-save-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-save-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-binhex-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-postscript "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-postscript-and-save "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-postscript-view "gnus-uu" nil t) ! (autoload 'gnus-uu-decode-postscript-and-save-view "gnus-uu" nil t) (autoload 'gnus-kill "gnus-kill") (autoload 'gnus-apply-kill-file-internal "gnus-kill") *************** *** 1577,1597 **** (autoload 'gnus-current-score-file-nondirectory "gnus-score") (autoload 'gnus-score-adaptive "gnus-score") ! (autoload 'gnus-group-post-news "gnus-message") ! (autoload 'gnus-summary-post-news "gnus-message") ! (autoload 'gnus-summary-followup "gnus-message") ! (autoload 'gnus-summary-followup-with-original "gnus-message") ! (autoload 'gnus-summary-followup-and-reply "gnus-message") ! (autoload 'gnus-summary-followup-and-reply-with-original "gnus-message") ! (autoload 'gnus-summary-cancel-article "gnus-message") ! (autoload 'gnus-summary-supersede-article "gnus-message") ! (autoload 'gnus-post-news "gnus-message") ! (autoload 'gnus-inews-news "gnus-message") ! (autoload 'gnus-cancel-news "gnus-message") ! (autoload 'gnus-summary-reply "gnus-message") ! (autoload 'gnus-summary-reply-with-original "gnus-message") ! (autoload 'gnus-summary-mail-forward "gnus-message") ! (autoload 'gnus-summary-mail-other-window "gnus-message") (autoload 'gnus-mail-reply-using-mail "gnus-message") (autoload 'gnus-mail-yank-original "gnus-message") (autoload 'gnus-mail-send-and-exit "gnus-message") --- 1580,1600 ---- (autoload 'gnus-current-score-file-nondirectory "gnus-score") (autoload 'gnus-score-adaptive "gnus-score") ! (autoload 'gnus-group-post-news "gnus-message" nil t) ! (autoload 'gnus-summary-post-news "gnus-message" nil t) ! (autoload 'gnus-summary-followup "gnus-message" nil t) ! (autoload 'gnus-summary-followup-with-original "gnus-message" nil t) ! (autoload 'gnus-summary-followup-and-reply "gnus-message" nil t) ! (autoload 'gnus-summary-followup-and-reply-with-original "gnus-message" nil t) ! (autoload 'gnus-summary-cancel-article "gnus-message" nil t) ! (autoload 'gnus-summary-supersede-article "gnus-message" nil t) ! (autoload 'gnus-post-news "gnus-message" nil t) ! (autoload 'gnus-inews-news "gnus-message" nil t) ! (autoload 'gnus-cancel-news "gnus-message" nil t) ! (autoload 'gnus-summary-reply "gnus-message" nil t) ! (autoload 'gnus-summary-reply-with-original "gnus-message" nil t) ! (autoload 'gnus-summary-mail-forward "gnus-message" nil t) ! (autoload 'gnus-summary-mail-other-window "gnus-message" nil t) (autoload 'gnus-mail-reply-using-mail "gnus-message") (autoload 'gnus-mail-yank-original "gnus-message") (autoload 'gnus-mail-send-and-exit "gnus-message") *************** *** 6668,6674 **** ;; variables as well, just to be on the safe side. (set-buffer gnus-group-buffer) (gnus-summary-clear-local-variables) ! (gnus-configure-windows 'newsgroups t) ;; Return to group mode buffer. (if (eq mode 'gnus-summary-mode) (gnus-kill-buffer buf)) --- 6671,6678 ---- ;; variables as well, just to be on the safe side. (set-buffer gnus-group-buffer) (gnus-summary-clear-local-variables) ! (gnus-configure-windows 'article) ! (gnus-configure-windows 'newsgroups) ;; Return to group mode buffer. (if (eq mode 'gnus-summary-mode) (gnus-kill-buffer buf)) *************** *** 6676,6681 **** --- 6680,6687 ---- (bury-buffer gnus-article-buffer)) (setq gnus-current-select-method gnus-select-method) (pop-to-buffer gnus-group-buffer) + (gnus-group-jump-to-group group) + (gnus-group-next-group 1) (if (gnus-buffer-exists-p quit-buffer) (progn (switch-to-buffer quit-buffer) *************** *** 7025,7031 **** (gnus-eval-in-buffer-window gnus-article-buffer (setq endp (gnus-article-next-page lines))) - (pop-to-buffer gnus-summary-buffer) (if endp (cond (circular (gnus-summary-beginning-of-article)) --- 7031,7036 ---- *************** *** 7033,7040 **** (message "End of message")) ((null lines) (gnus-summary-next-unread-article)))) ! (pop-to-buffer gnus-summary-buffer))) ! (gnus-summary-position-cursor)) (defun gnus-summary-prev-page (lines) "Show previous page of selected article. --- 7038,7048 ---- (message "End of message")) ((null lines) (gnus-summary-next-unread-article)))) ! (and gnus-summary-buffer ! (buffer-name gnus-summary-buffer) ! (progn ! (pop-to-buffer gnus-summary-buffer) ! (gnus-summary-position-cursor)))))) (defun gnus-summary-prev-page (lines) "Show previous page of selected article. *************** *** 9195,9204 **** (and (numberp article) (gnus-summary-mark-as-read article gnus-canceled-mark)) (message "No such article (may be canceled)") ! (setq gnus-current-article article) (ding)) ! (setq gnus-article-current ! (cons gnus-newsgroup-name article)) nil) (if (not (eq result 'article)) (progn --- 9203,9214 ---- (and (numberp article) (gnus-summary-mark-as-read article gnus-canceled-mark)) (message "No such article (may be canceled)") ! (and (numberp article) ! (setq gnus-current-article article)) (ding)) ! (and (numberp article) ! (setq gnus-article-current ! (cons gnus-newsgroup-name article))) nil) (if (not (eq result 'article)) (progn *************** *** 9297,9303 **** (widen) (goto-char 1) ;; Hide any "From " lines at the beginning of (mail) articles. ! (while (looking-at rmail-unix-mail-delimiter) (forward-line 1)) (if (/= (point) 1) (add-text-properties 1 (point) '(invisible t))) --- 9307,9313 ---- (widen) (goto-char 1) ;; Hide any "From " lines at the beginning of (mail) articles. ! (while (looking-at "From ") (forward-line 1)) (if (/= (point) 1) (add-text-properties 1 (point) '(invisible t))) *************** *** 9475,9495 **** (save-excursion (save-restriction (set-buffer gnus-article-buffer) ! (let ((buffer-read-only nil)) (widen) (goto-char (point-min)) ! (while (re-search-forward "=[0-9A-F][0-9A-F]" nil t) ! (replace-match ! (char-to-string ! (+ ! (* 16 (gnus-hex-char-to-integer ! (char-after (1+ (match-beginning 0))))) ! (gnus-hex-char-to-integer ! (char-after (1- (match-end 0)))))) t t)) ! (goto-char (point-min)) ! (search-forward "\n\n" nil t) ! (while (search-forward "=\n" nil t) ! (replace-match "" t t)))))) ;; Taken from hexl.el. (defun gnus-hex-char-to-integer (character) --- 9485,9511 ---- (save-excursion (save-restriction (set-buffer gnus-article-buffer) ! (let ((buffer-read-only nil) ! (case-fold-search t)) (widen) (goto-char (point-min)) ! (if (and (or (search-forward "\nContent-Transfer-Encoding: " nil t) ! (looking-at "Content-Transfer-Encoding: ")) ! (search-forward "quoted-printable" nil (gnus-point-at-eol))) ! (progn ! (goto-char (point-min)) ! (while (re-search-forward "=[0-9A-F][0-9A-F]" nil t) ! (replace-match ! (char-to-string ! (+ ! (* 16 (gnus-hex-char-to-integer ! (char-after (1+ (match-beginning 0))))) ! (gnus-hex-char-to-integer ! (char-after (1- (match-end 0)))))) t t)) ! (goto-char (point-min)) ! (search-forward "\n\n" nil t) ! (while (search-forward "=\n" nil t) ! (replace-match "" t t)))))))) ;; Taken from hexl.el. (defun gnus-hex-char-to-integer (character) *************** *** 9597,9603 **** (set-buffer outbuf) (let ((buffer-read-only nil) (msg (and (boundp 'rmail-current-message) ! rmail-current-message))) ;; If MSG is non-nil, buffer is in RMAIL mode. (if msg (progn (widen) --- 9613,9619 ---- (set-buffer outbuf) (let ((buffer-read-only nil) (msg (and (boundp 'rmail-current-message) ! (symbol-value 'rmail-current-message)))) ;; If MSG is non-nil, buffer is in RMAIL mode. (if msg (progn (widen) *************** *** 10840,10846 **** (or active (progn (gnus-sethash group nil gnus-active-hashtb) (setcar (gnus-gethash group gnus-newsrc-hashtb) t))) ! (and active (gnus-get-unread-articles-in-group info active)) (setq newsrc (cdr newsrc))) ;; Activate the virtual groups. This has to be done after all the --- 10856,10865 ---- (or active (progn (gnus-sethash group nil gnus-active-hashtb) (setcar (gnus-gethash group gnus-newsrc-hashtb) t))) ! (and active ! (gnus-get-unread-articles-in-group info active) ! ;; Close the groups as we look at them! ! (gnus-close-group group)) (setq newsrc (cdr newsrc))) ;; Activate the virtual groups. This has to be done after all the *************** *** 11855,11861 **** (defun gnus-server-to-method (server) ;; Map virtual server names to select methods. ! (cdr (assoc server gnus-server-alist))) (defun gnus-server-extend-method (group method) ;; This function "extends" a virtual server. If the server is --- 11874,11881 ---- (defun gnus-server-to-method (server) ;; Map virtual server names to select methods. ! (or (and (equal server "native") gnus-select-method) ! (cdr (assoc server gnus-server-alist)))) (defun gnus-server-extend-method (group method) ;; This function "extends" a virtual server. If the server is diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/nnfolder.el dgnus/lisp/nnfolder.el *** pub/dgnus/lisp/nnfolder.el Mon Apr 24 18:20:59 1995 --- dgnus/lisp/nnfolder.el Tue Apr 25 12:51:30 1995 *************** *** 1,7 **** ;;; nnfolder.el --- mail folder access for Gnus ;; Copyright (C) 1995 Free Software Foundation, Inc. ! ;; Author: Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail --- 1,8 ---- ;;; nnfolder.el --- mail folder access for Gnus ;; Copyright (C) 1995 Free Software Foundation, Inc. ! ;; Author: Scott Byer ! ;; Lars Magne Ingebrigtsen ;; Masanobu UMEDA ;; Keywords: news, mail *************** *** 40,48 **** (defvar nnfolder-active-file (concat nnfolder-directory "active") "The name of the active file.") ! (defvar nnfolder-active-file-paranoia nil ! "If non-nil, causes nnfolder to do some extra work in order to ! determine the true active ranges of an mbox file.") (defvar nnfolder-newsgroups-file (concat nnfolder-directory "newsgroups") "Mail newsgroups description file.") --- 41,64 ---- (defvar nnfolder-active-file (concat nnfolder-directory "active") "The name of the active file.") ! ;; I renamed this variable to somehting more in keeping with the general GNU ! ;; style. -SLB ! ! (defvar nnfolder-ignore-active-file nil ! "If non-nil, causes nnfolder to do some extra work in order to determine the true active ranges of an mbox file. ! Note that the active file is still saved, but it's values are not ! used. This costs some extra time when scanning an mbox when opening ! it.") ! ! ;; Note that this variable may not be completely implemented yet. -SLB ! ! (defvar nnfolder-always-close t ! "If non-nil, nnfolder attempts to only ever have one mbox open at a time. ! This is a straight space/performance trade off, as the mboxes will have to ! be scaned every time they are read in. If nil (default), nnfolder will ! attempt to keep the buffers around (saving the nnfolder's buffer upon group ! close, but not killing it), speeding some things up tremendously, especially ! such things as moving mail. All buffers always get killed upon server close.") (defvar nnfolder-newsgroups-file (concat nnfolder-directory "newsgroups") "Mail newsgroups description file.") *************** *** 52,58 **** ! (defconst nnfolder-version "nnfolder 0.1" "nnfolder version.") (defconst nnfolder-article-marker "X-Gnus-Article-Number: " --- 68,74 ---- ! (defconst nnfolder-version "nnfolder 0.2" "nnfolder version.") (defconst nnfolder-article-marker "X-Gnus-Article-Number: " *************** *** 225,233 **** (set-buffer nnfolder-current-buffer) ;; If the buffer was modified, write the file out now. (save-buffer) ! (if force ;; If we're shutting the server down, we need to kill the buffer and ! ;; remove it from the open buffer list. (progn (kill-buffer (current-buffer)) (setq nnfolder-buffer-alist (delq (assoc group nnfolder-buffer-alist) --- 241,251 ---- (set-buffer nnfolder-current-buffer) ;; If the buffer was modified, write the file out now. (save-buffer) ! (if (or force ! nnfolder-always-close) ;; If we're shutting the server down, we need to kill the buffer and ! ;; remove it from the open buffer list. Or, of course, if we're ! ;; trying to minimize our space impact. (progn (kill-buffer (current-buffer)) (setq nnfolder-buffer-alist (delq (assoc group nnfolder-buffer-alist) *************** *** 403,415 **** (if (and (equal group nnfolder-current-group) (buffer-name nnfolder-current-buffer)) () (if (setq inf (assoc group nnfolder-buffer-alist)) (setq nnfolder-current-buffer (nth 1 inf))) ! (setq nnfolder-current-group group) ! (if (not (buffer-name nnfolder-current-buffer)) (progn (setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)) (setq inf nil))) (if inf () (save-excursion --- 421,447 ---- (if (and (equal group nnfolder-current-group) (buffer-name nnfolder-current-buffer)) () + (setq nnfolder-current-group group) + + ;; If we have to change groups, see if we don't already have the mbox + ;; in memory. If we do, verify the modtime and destroy the mbox if + ;; needed so we can rescan it. (if (setq inf (assoc group nnfolder-buffer-alist)) (setq nnfolder-current-buffer (nth 1 inf))) ! ! ;; If the buffer is not live, make sure it isn't in the alist. If it ! ;; is live, verify that nobody else has touched the file since last ! ;; time. ! (if (or (not (buffer-name nnfolder-current-buffer)) ! (not (and (bufferp nnfolder-current-buffer) ! (verify-visited-file-modtime nnfolder-current-buffer)))) (progn + (if (and (buffer-name nnfolder-current-buffer) + (bufferp nnfolder-current-buffer)) + (kill-buffer nnfolder-current-buffer)) (setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)) (setq inf nil))) + (if inf () (save-excursion *************** *** 506,512 **** (number "[0-9]+") (active (car (cdr (assoc nnfolder-current-group nnfolder-group-alist)))) ! activenumber start end) (goto-char (point-min)) ;; ;; Anytime the active number is 1 or 0, it is supect. In that case, --- 538,544 ---- (number "[0-9]+") (active (car (cdr (assoc nnfolder-current-group nnfolder-group-alist)))) ! activenumber activemin start end) (goto-char (point-min)) ;; ;; Anytime the active number is 1 or 0, it is supect. In that case, *************** *** 515,542 **** ;; other lists from the header markers, such as expunge lists, etc., if ;; we ever desired to abandon the active file entirely for mboxes.) (setq activenumber (cdr active)) ! (if (or nnfolder-active-file-paranoia (< activenumber 2)) (progn (while (and (search-forward marker nil t) (re-search-forward number nil t)) ! (setq activenumber (max activenumber ! (string-to-number (buffer-substring ! (match-beginning 0) ! (match-end 0)))))) ! (goto-char (point-min)))) ! ! ;; ! ;; If we're being paranoid, verify the minimum number as well. ! (if nnfolder-active-file-paranoia ! (let ((activemin activenumber)) ! (while (and (search-forward marker nil t) ! (re-search-forward number nil t)) ! (setq activemin (min activemin ! (string-to-number (buffer-substring ! (match-beginning 0) ! (match-end 0)))))) ! (setcar active activemin) (goto-char (point-min)))) ;; Keep track of the active number on our own, and insert it back into --- 547,567 ---- ;; other lists from the header markers, such as expunge lists, etc., if ;; we ever desired to abandon the active file entirely for mboxes.) (setq activenumber (cdr active)) ! (if (or nnfolder-ignore-active-file (< activenumber 2)) (progn + (setq activemin (max (1- (lsh 1 23)) + (1- (lsh 1 24)) + (1- (lsh 1 25)))) (while (and (search-forward marker nil t) (re-search-forward number nil t)) ! (let (newnum (string-to-number (buffer-substring ! (match-beginning 0) ! (match-end 0)))) ! (setq activenumber (max activenumber newnum)) ! (setq activemin (min activemin newnum)))) ! (setcar active (min activemin activenumber)) ! (setcdr active activenumber) (goto-char (point-min)))) ;; Keep track of the active number on our own, and insert it back into diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/nntp.el dgnus/lisp/nntp.el *** pub/dgnus/lisp/nntp.el Mon Apr 24 18:21:00 1995 --- dgnus/lisp/nntp.el Tue Apr 25 13:43:43 1995 *************** *** 338,345 **** (setq nntp-server-alist (delq state nntp-server-alist))) (nnheader-set-init-variables nntp-server-variables defs))) (setq nntp-current-server server) ! (run-hooks 'nntp-prepare-server-hook) ! (nntp-open-server-semi-internal nntp-address))) (defun nntp-close-server (&optional server) "Close connection to SERVER." --- 338,347 ---- (setq nntp-server-alist (delq state nntp-server-alist))) (nnheader-set-init-variables nntp-server-variables defs))) (setq nntp-current-server server) ! (or (nntp-server-opened server) ! (progn ! (run-hooks 'nntp-prepare-server-hook) ! (nntp-open-server-semi-internal nntp-address))))) (defun nntp-close-server (&optional server) "Close connection to SERVER." *************** *** 940,949 **** (defun nntp-open-network-stream (server) (open-network-stream "nntpd" nntp-server-buffer server nntp-port-number)) ! (defun nntp-open-rlogin-stream (server) ! (apply 'start-process "nntpd" nntp-server-buffer "rsh" ! "-l" (or nntp-rlogin-user-name (user-login-name)) ! server nntp-rlogin-parameters)) (defun nntp-close-server-internal (&optional server) "Close connection to news server." --- 942,952 ---- (defun nntp-open-network-stream (server) (open-network-stream "nntpd" nntp-server-buffer server nntp-port-number)) ! (defun nntp-open-rlogin (server) ! (let ((proc (start-process "nntpd" nntp-server-buffer "rsh" server))) ! (process-send-string proc (mapconcat (lambda (s) s) nntp-rlogin-parameters ! " ")) ! (process-send-string proc "\n"))) (defun nntp-close-server-internal (&optional server) "Close connection to news server." *************** *** 1015,1021 **** (save-excursion (set-buffer (generate-new-buffer " *async-nntp*")) (setq nntp-async-buffer (current-buffer)) ! (buffer-disable-undo)) (let ((nntp-server-process nil) (nntp-server-buffer nntp-async-buffer)) (nntp-open-server-semi-internal nntp-address nntp-port-number) --- 1018,1024 ---- (save-excursion (set-buffer (generate-new-buffer " *async-nntp*")) (setq nntp-async-buffer (current-buffer)) ! (buffer-disable-undo (current-buffer))) (let ((nntp-server-process nil) (nntp-server-buffer nntp-async-buffer)) (nntp-open-server-semi-internal nntp-address nntp-port-number) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --exclude=readme --context --recursive pub/dgnus/lisp/nnvirtual.el dgnus/lisp/nnvirtual.el *** pub/dgnus/lisp/nnvirtual.el Mon Apr 24 18:21:00 1995 --- dgnus/lisp/nnvirtual.el Tue Apr 25 13:15:43 1995 *************** *** 164,179 **** (defun nnvirtual-request-group (group &optional server dont-check) "Make GROUP the current newsgroup." (nnvirtual-possibly-change-newsgroups group server dont-check) ! (if (not dont-check) ! (let ((map nnvirtual-current-mapping)) ! (while (cdr map) ! (setq map (cdr map))) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (insert (format "211 %d 1 %d %s\n" (car (car map)) ! (car (car map)) group))))) ! t) (defun nnvirtual-close-group (group &optional server) (nnvirtual-possibly-change-newsgroups group server t) --- 164,183 ---- (defun nnvirtual-request-group (group &optional server dont-check) "Make GROUP the current newsgroup." (nnvirtual-possibly-change-newsgroups group server dont-check) ! (let ((map nnvirtual-current-mapping)) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer) ! (if map ! (progn ! (while (cdr map) ! (setq map (cdr map))) ! (insert (format "211 %d 1 %d %s\n" (car (car map)) ! (car (car map)) group)) ! t) ! (setq nnvirtual-status-string "No component groups") ! (setq nnvirtual-current-group nil) ! nil)))) (defun nnvirtual-close-group (group &optional server) (nnvirtual-possibly-change-newsgroups group server t)