*** pub/rgnus/lisp/gnus-group.el Thu Feb 20 04:19:50 1997 --- rgnus/lisp/gnus-group.el Sat Mar 1 03:54:48 1997 *************** *** 1128,1135 **** "Update all lines where GROUP appear. If VISIBLE-ONLY is non-nil, the group won't be displayed if it isn't already." ! (save-excursion (set-buffer gnus-group-buffer) ;; The buffer may be narrowed. (save-restriction (widen) --- 1128,1138 ---- "Update all lines where GROUP appear. If VISIBLE-ONLY is non-nil, the group won't be displayed if it isn't already." ! ;; Can't use `save-excursion' here, so we do it manually. ! (let ((buf (current-buffer)) ! mark) (set-buffer gnus-group-buffer) + (setq mark (point-marker)) ;; The buffer may be narrowed. (save-restriction (widen) *************** *** 1179,1185 **** (run-hooks 'gnus-group-update-group-hook)))) (when gnus-group-update-group-function (funcall gnus-group-update-group-function group)) ! (gnus-group-set-mode-line))))) (defun gnus-group-set-mode-line () "Update the mode line in the group buffer." --- 1182,1191 ---- (run-hooks 'gnus-group-update-group-hook)))) (when gnus-group-update-group-function (funcall gnus-group-update-group-function group)) ! (gnus-group-set-mode-line))) ! (goto-char mark) ! (set-marker mark nil) ! (set-buffer buf))) (defun gnus-group-set-mode-line () "Update the mode line in the group buffer." *************** *** 1836,1842 **** ;; We find the proper prefixed name. (setq new-name ! (if (equal (gnus-group-real-name new-name) new-name) ;; Native group. new-name ;; Foreign group. --- 1842,1848 ---- ;; We find the proper prefixed name. (setq new-name ! (if (gnus-group-native-p group) ;; Native group. new-name ;; Foreign group. *************** *** 2848,2854 **** (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)) (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). --- 2854,2861 ---- (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). *** pub/rgnus/lisp/gnus-picon.el Thu Jan 9 11:59:39 1997 --- rgnus/lisp/gnus-picon.el Sat Mar 1 03:54:48 1997 *************** *** 44,50 **** :group 'picons) (defcustom gnus-picons-display-where 'picons ! "Where to display the group and article icons." :type '(choice symbol string) :group 'picons) --- 44,51 ---- :group 'picons) (defcustom gnus-picons-display-where 'picons ! "Where to display the group and article icons. ! Legal values are `article' and `picons'." :type '(choice symbol string) :group 'picons) *** pub/rgnus/lisp/gnus-srvr.el Thu Feb 20 04:19:51 1997 --- rgnus/lisp/gnus-srvr.el Sat Mar 1 03:54:48 1997 *************** *** 207,216 **** (setq gnus-inserted-opened-servers nil) ;; First we do the real list of servers. (while alist ! (push (caar alist) done) ! (cdr (setq server (pop alist))) ! (when (and server (car server) (cdr server)) ! (gnus-server-insert-server-line (car server) (cdr server)))) ;; Then we insert the list of servers that have been opened in ;; this session. (while opened --- 207,217 ---- (setq gnus-inserted-opened-servers nil) ;; First we do the real list of servers. (while alist ! (unless (member (caar alist) done) ! (push (caar alist) done) ! (cdr (setq server (pop alist))) ! (when (and server (car server) (cdr server)) ! (gnus-server-insert-server-line (car server) (cdr server))))) ;; Then we insert the list of servers that have been opened in ;; this session. (while opened *** pub/rgnus/lisp/gnus-start.el Sun Feb 16 18:16:38 1997 --- rgnus/lisp/gnus-start.el Sat Mar 1 03:54:49 1997 *************** *** 337,342 **** --- 337,347 ---- :group 'gnus-start :type 'hook) + (defcustom gnus-started-hook nil + "A hook called as the last thing after startup." + :group 'gnus-start + :type 'hook) + (defcustom gnus-get-new-news-hook nil "A hook run just before Gnus checks for new news." :group 'gnus-group-new *************** *** 630,636 **** (eq major-mode 'gnus-group-mode))) (progn (switch-to-buffer gnus-group-buffer) ! (gnus-group-get-new-news)) (gnus-splash) (gnus-clear-system) --- 635,644 ---- (eq major-mode 'gnus-group-mode))) (progn (switch-to-buffer gnus-group-buffer) ! (gnus-group-get-new-news ! (and (numberp arg) ! (> arg 0) ! (max (car gnus-group-list-mode) arg)))) (gnus-splash) (gnus-clear-system) *************** *** 675,681 **** (gnus-group-list-groups level) (gnus-group-first-unread-group) (gnus-configure-windows 'group) ! (gnus-group-set-mode-line)))))) ;;;###autoload (defun gnus-unload () --- 683,690 ---- (gnus-group-list-groups level) (gnus-group-first-unread-group) (gnus-configure-windows 'group) ! (gnus-group-set-mode-line) ! (run-hooks 'gnus-started-hook)))))) ;;;###autoload (defun gnus-unload () *************** *** 1819,1825 **** (condition-case nil (load ding-file t t t) (error ! (gnus-error 1 "Error in %s" ding-file))) (when gnus-newsrc-assoc (setq gnus-newsrc-alist gnus-newsrc-assoc))) (gnus-make-hashtable-from-newsrc-alist) --- 1828,1837 ---- (condition-case nil (load ding-file t t t) (error ! (ding) ! (unless (gnus-yes-or-no-p ! (format "Error in %s; continue? " ding-file)) ! (error "Error in %s" ding-file)))) (when gnus-newsrc-assoc (setq gnus-newsrc-alist gnus-newsrc-assoc))) (gnus-make-hashtable-from-newsrc-alist) *** pub/rgnus/lisp/gnus-sum.el Thu Feb 20 04:19:52 1997 --- rgnus/lisp/gnus-sum.el Sat Mar 1 03:54:50 1997 *************** *** 3873,3879 **** (setq mode-string (eval mformat)) (setq max-len (max 4 (if gnus-mode-non-string-length (- (window-width) ! gnus-mode-non-string-length) (length mode-string)))) ;; We might have to chop a bit of the string off... (when (> (length mode-string) max-len) --- 3873,3882 ---- (setq mode-string (eval mformat)) (setq max-len (max 4 (if gnus-mode-non-string-length (- (window-width) ! gnus-mode-non-string-length ! (if (string-match "%%b" mode-string) ! (length (buffer-name)) ! 0)) (length mode-string)))) ;; We might have to chop a bit of the string off... (when (> (length mode-string) max-len) *************** *** 4299,4307 **** ;; headers using HEAD. (if (or (not also-fetch-heads) (not sequence)) (nreverse headers) ! (let ((gnus-nov-is-evil t) ! (nntp-nov-is-evil t)) (nconc (nreverse headers) (when (gnus-retrieve-headers sequence group) --- 4302,4310 ---- ;; headers using HEAD. (if (or (not also-fetch-heads) (not sequence)) + ;; We (probably) got all the headers. (nreverse headers) ! (let ((gnus-nov-is-evil t)) (nconc (nreverse headers) (when (gnus-retrieve-headers sequence group) *************** *** 5260,5265 **** --- 5263,5272 ---- (unless (gnus-ephemeral-group-p gnus-newsgroup-name) (gnus-summary-jump-to-group gnus-newsgroup-name)) (let ((cmd last-command-char) + (point + (save-excursion + (set-buffer gnus-group-buffer) + (point))) (group (if (eq gnus-keep-same-level 'best) (gnus-summary-best-group gnus-newsgroup-name) *************** *** 5288,5303 **** (t (when (gnus-key-press-event-p 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)) (?\C-p (gnus-group-prev-unread-group 1)))) (cursor-in-echo-area t) keve key group ended) (save-excursion (set-buffer gnus-group-buffer) ! (gnus-summary-jump-to-group from-group) (setq group (if (eq gnus-keep-same-level 'best) (gnus-summary-best-group gnus-newsgroup-name) --- 5295,5310 ---- (t (when (gnus-key-press-event-p last-input-event) (gnus-summary-walk-group-buffer ! gnus-newsgroup-name cmd unread backward point)))))))) ! (defun gnus-summary-walk-group-buffer (from-group cmd unread backward start) (let ((keystrokes '((?\C-n (gnus-group-next-unread-group 1)) (?\C-p (gnus-group-prev-unread-group 1)))) (cursor-in-echo-area t) keve key group ended) (save-excursion (set-buffer gnus-group-buffer) ! (goto-char start) (setq group (if (eq gnus-keep-same-level 'best) (gnus-summary-best-group gnus-newsgroup-name) *************** *** 7694,7700 **** (gnus-summary-goto-subject article))) (defun gnus-summary-reparent-thread () ! "Make current article child of the marked (or previous) article. Note that the re-threading will only work if `gnus-thread-ignore-subject' is non-nil or the Subject: of both articles are the same." --- 7701,7707 ---- (gnus-summary-goto-subject article))) (defun gnus-summary-reparent-thread () ! "Make the current article child of the marked (or previous) article. Note that the re-threading will only work if `gnus-thread-ignore-subject' is non-nil or the Subject: of both articles are the same." *************** *** 7706,7712 **** (save-window-excursion (let ((gnus-article-buffer " *reparent*") (current-article (gnus-summary-article-number)) ! ; first grab the marked article, otherwise one line up. (parent-article (if (not (null gnus-newsgroup-processable)) (car gnus-newsgroup-processable) (save-excursion --- 7713,7719 ---- (save-window-excursion (let ((gnus-article-buffer " *reparent*") (current-article (gnus-summary-article-number)) ! ;; First grab the marked article, otherwise one line up. (parent-article (if (not (null gnus-newsgroup-processable)) (car gnus-newsgroup-processable) (save-excursion *************** *** 7720,7738 **** (unless (and message-id (not (equal message-id ""))) (error "No message-id in desired parent.")) (gnus-summary-select-article t t nil current-article) ! (set-buffer gnus-article-buffer) ! (setq buffer-read-only nil) (let ((buf (format "%s" (buffer-string)))) ! (erase-buffer) ! (insert buf)) ! (goto-char (point-min)) ! (if (search-forward-regexp "^References: " nil t) ! (insert message-id " " ) ! (insert "References: " message-id "\n")) ! (unless (gnus-request-replace-article current-article ! (car gnus-article-current) ! gnus-article-buffer) ! (error "Couldn't replace article.")) (set-buffer gnus-summary-buffer) (gnus-summary-unmark-all-processable) (gnus-summary-rethread-current) --- 7727,7744 ---- (unless (and message-id (not (equal message-id ""))) (error "No message-id in desired parent.")) (gnus-summary-select-article t t nil current-article) ! (set-buffer gnus-original-article-buffer) (let ((buf (format "%s" (buffer-string)))) ! (nnheader-temp-write nil ! (insert buf) ! (goto-char (point-min)) ! (if (search-forward-regexp "^References: " nil t) ! (insert message-id " " ) ! (insert "References: " message-id "\n")) ! (unless (gnus-request-replace-article ! current-article (car gnus-article-current) ! (current-buffer)) ! (error "Couldn't replace article.")))) (set-buffer gnus-summary-buffer) (gnus-summary-unmark-all-processable) (gnus-summary-rethread-current) *** pub/rgnus/lisp/gnus-xmas.el Thu Feb 20 04:19:53 1997 --- rgnus/lisp/gnus-xmas.el Sat Mar 1 03:54:50 1997 *************** *** 137,146 **** (set-extent-face gnus-newsgroup-selected-overlay gnus-summary-selected-face))) ! (defvar gnus-xmas-force-redisplay t "If non-nil, force a redisplay before recentering the summary buffer. This is ugly, but it works around a bug in `window-displayed-height'.") (defun gnus-xmas-summary-recenter () "\"Center\" point in the summary window. If `gnus-auto-center-summary' is nil, or the article buffer isn't --- 137,149 ---- (set-extent-face gnus-newsgroup-selected-overlay gnus-summary-selected-face))) ! (defvar gnus-xmas-force-redisplay nil "If non-nil, force a redisplay before recentering the summary buffer. This is ugly, but it works around a bug in `window-displayed-height'.") + (defun gnus-xmas-switch-horizontal-scrollbar-off () + (set-specifier scrollbar-height (cons (current-buffer) 0))) + (defun gnus-xmas-summary-recenter () "\"Center\" point in the summary window. If `gnus-auto-center-summary' is nil, or the article buffer isn't *************** *** 475,480 **** --- 478,485 ---- (add-hook 'gnus-group-mode-hook 'gnus-xmas-setup-group-toolbar) (add-hook 'gnus-summary-mode-hook 'gnus-xmas-setup-summary-toolbar) + + (add-hook 'gnus-summary-mode-hook 'gnus-xmas-switch-horizontal-scrollbar-off) (when (and (<= emacs-major-version 19) (<= emacs-minor-version 13)) *** pub/rgnus/lisp/gnus.el Thu Feb 20 04:19:53 1997 --- rgnus/lisp/gnus.el Sat Mar 1 03:54:51 1997 *************** *** 223,229 **** :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "5.4.15" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) --- 223,229 ---- :link '(custom-manual "(gnus)Exiting Gnus") :group 'gnus) ! (defconst gnus-version-number "5.4.16" "Version number for this version of Gnus.") (defconst gnus-version (format "Gnus v%s" gnus-version-number) *** pub/rgnus/lisp/nnfolder.el Sat Jan 25 08:36:41 1997 --- rgnus/lisp/nnfolder.el Sat Mar 1 03:54:51 1997 *************** *** 614,620 **** (push (list group (setq active (cons 1 1))) nnfolder-group-alist)) (cdr active)) - (nnmail-save-active nnfolder-group-alist nnfolder-active-file) (nnfolder-possibly-activate-groups group))))) --- 614,619 ---- *** pub/rgnus/lisp/nnmail.el Sun Feb 16 18:16:41 1997 --- rgnus/lisp/nnmail.el Sat Mar 1 03:54:52 1997 *************** *** 707,718 **** (goto-char (point-max)) ;; Find the Message-ID header. (save-excursion ! (if (re-search-backward "^Message-ID:[ \t]*\\(<[^>]*>\\)" nil t) (setq message-id (buffer-substring (match-beginning 1) (match-end 1))) ;; There is no Message-ID here, so we create one. (save-excursion ! (when (re-search-backward "^Message-ID:" nil t) (beginning-of-line) (insert "Original-"))) (forward-line -1) --- 707,719 ---- (goto-char (point-max)) ;; Find the Message-ID header. (save-excursion ! (if (re-search-backward ! "^Message-ID[ \t]*:[ \n\t]*\\(<[^>]*>\\)" nil t) (setq message-id (buffer-substring (match-beginning 1) (match-end 1))) ;; There is no Message-ID here, so we create one. (save-excursion ! (when (re-search-backward "^Message-ID[ \t]*:" nil t) (beginning-of-line) (insert "Original-"))) (forward-line -1) *************** *** 781,787 **** (forward-line 1) (while (looking-at ">From ") (forward-line 1)) ! (looking-at "[^ \t:]+[ \t]*:"))) (setq found 'yes))))) (beginning-of-line) (eq found 'yes))) --- 782,788 ---- (forward-line 1) (while (looking-at ">From ") (forward-line 1)) ! (looking-at "[^ \n\t:]+[ \n\t]*:"))) (setq found 'yes))))) (beginning-of-line) (eq found 'yes))) *************** *** 810,816 **** (forward-line 1) (while (looking-at ">From ") (forward-line 1)) ! (looking-at "[^ \t:]+[ \t]*:"))) (setq found 'yes))))) (beginning-of-line) (eq found 'yes))) --- 811,817 ---- (forward-line 1) (while (looking-at ">From ") (forward-line 1)) ! (looking-at "[^ \n\t:]+[ \n\t]*:"))) (setq found 'yes))))) (beginning-of-line) (eq found 'yes))) *************** *** 840,849 **** (point)))) ;; Find the Message-ID header. (goto-char (point-min)) ! (if (re-search-forward "^Message-ID:[ \t]*\\(<[^>]+>\\)" nil t) (setq message-id (match-string 1)) (save-excursion ! (when (re-search-forward "^Message-ID:" nil t) (beginning-of-line) (insert "Original-"))) ;; There is no Message-ID here, so we create one. --- 841,850 ---- (point)))) ;; Find the Message-ID header. (goto-char (point-min)) ! (if (re-search-forward "^Message-ID[ \t]*:[ \n\t]*\\(<[^>]+>\\)" nil t) (setq message-id (match-string 1)) (save-excursion ! (when (re-search-forward "^Message-ID[ \t]*:" nil t) (beginning-of-line) (insert "Original-"))) ;; There is no Message-ID here, so we create one. *************** *** 924,934 **** (point)))) ;; Find the Message-ID header. (goto-char (point-min)) ! (if (re-search-forward "^Message-ID:[ \t]*\\(<[^>]+>\\)" nil t) (setq message-id (match-string 1)) ;; There is no Message-ID here, so we create one. (save-excursion ! (when (re-search-backward "^Message-ID:" nil t) (beginning-of-line) (insert "Original-"))) (forward-line 1) --- 925,935 ---- (point)))) ;; Find the Message-ID header. (goto-char (point-min)) ! (if (re-search-forward "^Message-ID[ \t]*:[ \n\t]*\\(<[^>]+>\\)" nil t) (setq message-id (match-string 1)) ;; There is no Message-ID here, so we create one. (save-excursion ! (when (re-search-backward "^Message-ID[ \t]*:" nil t) (beginning-of-line) (insert "Original-"))) (forward-line 1) *************** *** 1443,1449 **** (let ((case-fold-search t) (newid (nnmail-message-id))) (goto-char (point-min)) ! (when (re-search-forward "^message-id:" nil t) (beginning-of-line) (insert "Original-")) (beginning-of-line) --- 1444,1450 ---- (let ((case-fold-search t) (newid (nnmail-message-id))) (goto-char (point-min)) ! (when (re-search-forward "^message-id[ \t]*:" nil t) (beginning-of-line) (insert "Original-")) (beginning-of-line) *************** *** 1581,1587 **** (save-restriction (message-narrow-to-head) (let ((case-fold-search t)) ! (unless (re-search-forward "^Message-ID:" nil t) (insert "Message-ID: " (nnmail-message-id) "\n"))))) (defun nnmail-write-region (start end filename &optional append visit lockname) --- 1582,1588 ---- (save-restriction (message-narrow-to-head) (let ((case-fold-search t)) ! (unless (re-search-forward "^Message-ID[ \t]*:" nil t) (insert "Message-ID: " (nnmail-message-id) "\n"))))) (defun nnmail-write-region (start end filename &optional append visit lockname) *** pub/rgnus/lisp/nnmh.el Sun Feb 16 18:16:41 1997 --- rgnus/lisp/nnmh.el Sat Mar 1 03:54:52 1997 *************** *** 274,279 **** --- 274,280 ---- (nnmh-request-article article group server) (save-excursion (set-buffer buf) + (erase-buffer) (insert-buffer-substring nntp-server-buffer) (setq result (eval accept-form)) (kill-buffer (current-buffer)) *** pub/rgnus/lisp/nnml.el Thu Feb 20 04:19:55 1997 --- rgnus/lisp/nnml.el Sat Mar 1 03:54:52 1997 *************** *** 101,117 **** beg article) (if (stringp (car sequence)) 'headers - (unless nnml-article-file-alist - (setq nnml-article-file-alist - (nnheader-article-to-file-alist nnml-current-directory))) (if (nnml-retrieve-headers-with-nov sequence fetch-old) 'nov (while sequence (setq article (car sequence)) ! (setq file ! (concat nnml-current-directory ! (or (cdr (assq article nnml-article-file-alist)) ! ""))) (when (and (file-exists-p file) (not (file-directory-p file))) (insert (format "221 %d Article retrieved.\n" article)) --- 101,111 ---- beg article) (if (stringp (car sequence)) 'headers (if (nnml-retrieve-headers-with-nov sequence fetch-old) 'nov (while sequence (setq article (car sequence)) ! (setq file (nnml-article-to-file article)) (when (and (file-exists-p file) (not (file-directory-p file))) (insert (format "221 %d Article retrieved.\n" article)) *************** *** 261,275 **** article rest mod-time number) (nnmail-activate 'nnml) - (unless nnml-article-file-alist - (setq nnml-article-file-alist - (nnheader-article-to-file-alist nnml-current-directory))) - (while (and articles is-old) ! (when (setq article ! (assq (setq number (pop articles)) ! nnml-article-file-alist)) ! (setq article (concat nnml-current-directory (cdr article))) (when (setq mod-time (nth 5 (file-attributes article))) (if (and (nnml-deletable-article-p group number) (setq is-old --- 255,262 ---- article rest mod-time number) (nnmail-activate 'nnml) (while (and articles is-old) ! (when (setq article (nnml-article-to-file (setq number (pop articles)))) (when (setq mod-time (nth 5 (file-attributes article))) (if (and (nnml-deletable-article-p group number) (setq is-old *************** *** 299,307 **** (let ((buf (get-buffer-create " *nnml move*")) result) (nnml-possibly-change-directory group server) ! (unless nnml-article-file-alist ! (setq nnml-article-file-alist ! (nnheader-article-to-file-alist nnml-current-directory))) (and (nnml-deletable-article-p group article) (nnml-request-article article group server) --- 286,292 ---- (let ((buf (get-buffer-create " *nnml move*")) result) (nnml-possibly-change-directory group server) ! (nnml-update-file-alist) (and (nnml-deletable-article-p group article) (nnml-request-article article group server) *************** *** 315,322 **** (nnml-possibly-change-directory group server) (condition-case () (funcall nnmail-delete-file-function ! (concat nnml-current-directory ! (int-to-string article))) (file-error nil)) (nnml-nov-delete-article group article) (when last --- 300,306 ---- (nnml-possibly-change-directory group server) (condition-case () (funcall nnmail-delete-file-function ! (nnml-article-to-file article)) (file-error nil)) (nnml-nov-delete-article group article) (when last *************** *** 357,364 **** (progn (nnmail-write-region (point-min) (point-max) ! (concat nnml-current-directory ! (int-to-string article)) nil (if (nnheader-be-verbose 5) nil 'nomesg)) t) (error nil)) --- 341,349 ---- (progn (nnmail-write-region (point-min) (point-max) ! (or (nnml-article-to-file article) ! (concat nnml-current-directory ! (int-to-string article))) nil (if (nnheader-be-verbose 5) nil 'nomesg)) t) (error nil)) *************** *** 466,483 **** ;;; Internal functions. (defun nnml-article-to-file (article) ! (unless nnml-article-file-alist ! (setq nnml-article-file-alist ! (nnheader-article-to-file-alist nnml-current-directory))) (let (file) (when (setq file (cdr (assq article nnml-article-file-alist))) (concat nnml-current-directory file)))) (defun nnml-deletable-article-p (group article) "Say whether ARTICLE in GROUP can be deleted." ! (let (file path) ! (when (setq file (cdr (assq article nnml-article-file-alist))) ! (setq path (concat nnml-current-directory file)) (when (file-writable-p path) (or (not nnmail-keep-last-article) (not (eq (cdr (nth 1 (assoc group nnml-group-alist))) --- 451,465 ---- ;;; Internal functions. (defun nnml-article-to-file (article) ! (nnml-update-file-alist) (let (file) (when (setq file (cdr (assq article nnml-article-file-alist))) (concat nnml-current-directory file)))) (defun nnml-deletable-article-p (group article) "Say whether ARTICLE in GROUP can be deleted." ! (let (path) ! (when (setq path (nnml-article-to-file article)) (when (file-writable-p path) (or (not nnmail-keep-last-article) (not (eq (cdr (nth 1 (assoc group nnml-group-alist))) *************** *** 789,794 **** --- 771,781 ---- (numberp num)) (setf (car active) num))))))) t)) + + (defun nnml-update-file-alist () + (unless nnml-article-file-alist + (setq nnml-article-file-alist + (nnheader-article-to-file-alist nnml-current-directory)))) (provide 'nnml) *** pub/rgnus/lisp/nntp.el Mon Feb 10 14:27:26 1997 --- rgnus/lisp/nntp.el Sat Mar 1 03:54:53 1997 *************** *** 233,239 **** (re-search-backward "^[0-9]" nil t) (when (looking-at "^[23]") (while (progn ! (goto-char (- (point-max) 3)) (not (looking-at "^\\.\r?\n"))) (nntp-accept-response))) (and (numberp nntp-large-newsgroup) --- 233,240 ---- (re-search-backward "^[0-9]" nil t) (when (looking-at "^[23]") (while (progn ! (goto-char (point-max)) ! (forward-line -1) (not (looking-at "^\\.\r?\n"))) (nntp-accept-response))) (and (numberp nntp-large-newsgroup) *************** *** 1086,1093 **** (nntp-wait-for-string "^\r*200") (beginning-of-line) (delete-region (point-min) (point)) ! proc) ! ) (defun nntp-find-group-and-number () (save-excursion --- 1087,1093 ---- (nntp-wait-for-string "^\r*200") (beginning-of-line) (delete-region (point-min) (point)) ! proc)) (defun nntp-find-group-and-number () (save-excursion *** pub/rgnus/lisp/ChangeLog Thu Feb 20 04:19:50 1997 --- rgnus/lisp/ChangeLog Sat Mar 1 03:54:47 1997 *************** *** 1,3 **** --- 1,66 ---- + Sat Mar 1 03:51:18 1997 Lars Magne Ingebrigtsen + + * gnus.el: Gnus v5.4.16 is released. + + Sat Mar 1 00:04:09 1997 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-set-mode-line): Possibly take into account the + buffer name. + + * gnus-srvr.el (gnus-server-prepare): Try to make sure we only + insert servers once. + + * gnus-sum.el (gnus-summary-walk-group-buffer): Don't move point + much. + + * gnus-group.el (gnus-group-update-group): Don't move point. + + * gnus-xmas.el (gnus-xmas-force-redisplay): Changed default to + nil. + (gnus-xmas-switch-horizontal-scrollbar-off): New function. + (gnus-xmas-redefine): Use it. + + * nnfolder.el (nnfolder-active-number): Don't save active here. + + * gnus-sum.el (gnus-summary-reparent-thread): Use the original + article. + + Fri Feb 28 01:01:33 1997 Lars Magne Ingebrigtsen + + * gnus-start.el (gnus-1): Pass ARG on to listing. + (gnus-started-hook): New. + (gnus-1): Use it. + + * gnus-group.el (gnus-group-get-new-news): List using ARG if ARG + is higher than current listing. + + Tue Feb 25 23:28:47 1997 Lars Magne Ingebrigtsen + + * nntp.el (nntp-retrieve-headers): Go to the next-to-last line. + + Fri Feb 21 00:28:37 1997 Lars Magne Ingebrigtsen + + * gnus-group.el (gnus-group-rename-group): Rename to right name. + + * nnmail.el (nnmail-process-babyl-mail-format): Allow continuation + Message-IDs. + (nnmail-process-unix-mail-format): Ditto. + (nnmail-process-mmdf-mail-format): Ditto. + + * nnml.el (nnml-update-file-alist): New function. + (nnml-retrieve-headers): Use it. + (nnml-request-move-article): Delete zipped files. + (nnml-request-replace-article): Write to gzipped, if wanted. + + Thu Feb 20 18:36:22 1997 Lars Magne Ingebrigtsen + + * gnus-picon.el (gnus-picons-display-where): Doc fix. + + * gnus-start.el (gnus-read-newsrc-el-file): Offer to break. + + * nnmail.el (nnmail-search-unix-mail-delim): Exclude newlines from + matches. + Thu Feb 20 04:16:50 1997 Lars Magne Ingebrigtsen * gnus.el: Gnus v5.4.15 is released. *** pub/rgnus/lisp/Makefile Sun Jan 5 12:05:32 1997 --- rgnus/lisp/Makefile Sat Mar 1 03:54:53 1997 *************** *** 34,36 **** --- 34,40 ---- echo "(provide 'gnus-load)" >> gnus-load.el echo >> gnus-load.el echo ";;; gnus-load.el ends here" >> gnus-load.el + + distclean: + rm -f *.orig *.rej *.elc *~ + *** pub/rgnus/Makefile Fri Nov 15 23:23:58 1996 --- rgnus/Makefile Sat Mar 1 03:54:53 1997 *************** *** 26,28 **** --- 26,33 ---- x: make EMACS=xemacs + + distclean: + make clean + rm -r *~ + for i in lisp texi; do (cd $$i; make distclean); done *** pub/rgnus/texi/Makefile Wed Nov 6 04:02:56 1996 --- rgnus/texi/Makefile Sat Mar 1 03:54:53 1997 *************** *** 99,101 **** --- 99,106 ---- veryclean: make clean rm -f gnus.dvi gnus.ps + + distclean: + make clean + rm -f *.orig *.rej *.elc *~ gnus gnus-[0-9] gnus-[0-9][0-9] + rm -f message message-[0-9] widget custom *** pub/rgnus/texi/gnus.texi Thu Feb 20 04:19:57 1997 --- rgnus/texi/gnus.texi Sat Mar 1 03:54:55 1997 *************** *** 959,964 **** --- 959,969 ---- @vindex gnus-startup-hook A hook that is run after starting up Gnus successfully. + @item gnus-started-hook + @vindex gnus-started-hook + A hook that is run as the very last thing after starting up Gnus + successfully. + @item gnus-check-bogus-newsgroups @vindex gnus-check-bogus-newsgroups If non-@code{nil}, Gnus will check for and delete all bogus groups at *************** *** 4380,4386 **** @cindex fuzzy article gathering If you set this variable to the special value @code{fuzzy}, Gnus will ! use a fuzzy string comparison algorithm on the subjects. @item gnus-simplify-subject-fuzzy-regexp @vindex gnus-simplify-subject-fuzzy-regexp --- 4385,4392 ---- @cindex fuzzy article gathering If you set this variable to the special value @code{fuzzy}, Gnus will ! use a fuzzy string comparison algorithm on the subjects (@pxref{Fuzzy ! Matching}). @item gnus-simplify-subject-fuzzy-regexp @vindex gnus-simplify-subject-fuzzy-regexp *************** *** 4665,4671 **** when doing thread commands. If this variable is @code{nil}, articles in the same thread with different subjects will not be included in the operation in question. If this variable is @code{fuzzy}, only articles ! that have subjects that are fuzzily equal will be included. @node Sorting --- 4671,4678 ---- when doing thread commands. If this variable is @code{nil}, articles in the same thread with different subjects will not be included in the operation in question. If this variable is @code{fuzzy}, only articles ! that have subjects that are fuzzily equal will be included (@pxref{Fuzzy ! Matching}). @node Sorting *************** *** 7577,7585 **** @cindex archived messages @cindex sent messages ! Gnus provides a few different methods for storing the mail you send. ! The default method is to use the @dfn{archive virtual server} to store ! the mail. If you want to disable this completely, the @code{gnus-message-archive-group} variable should be @code{nil}, which is the default. --- 7584,7592 ---- @cindex archived messages @cindex sent messages ! Gnus provides a few different methods for storing the mail and news you ! send. The default method is to use the @dfn{archive virtual server} to ! store the messages. If you want to disable this completely, the @code{gnus-message-archive-group} variable should be @code{nil}, which is the default. *************** *** 7674,7683 **** nice---@samp{misc-mail-september-1995}, or whatever. New messages will continue to be stored in the old (now empty) group. ! That's the default method of archiving sent mail. Gnus also a different ! way for the people who don't like the default method. In that case you ! should set @code{gnus-message-archive-group} to @code{nil}; this will ! disable archiving. XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to use a different value for @code{gnus-message-archive-group} there. --- 7681,7690 ---- nice---@samp{misc-mail-september-1995}, or whatever. New messages will continue to be stored in the old (now empty) group. ! That's the default method of archiving sent messages. Gnus also a ! different way for the people who don't like the default method. In that ! case you should set @code{gnus-message-archive-group} to @code{nil}; ! this will disable archiving. XEmacs 19.13 doesn't have @code{format-time-string}, so you'll have to use a different value for @code{gnus-message-archive-group} there. *************** *** 7694,7699 **** --- 7701,7709 ---- message in, you can set this variable to a function that checks the current newsgroup name and then returns a suitable group name (or list of names). + + This variable can be used instead of @code{gnus-message-archive-group}, + but the latter is the preferred method. @end table *************** *** 10638,10644 **** Substring matching. @item f ! Fuzzy matching. @item r Regexp matching --- 10648,10654 ---- Substring matching. @item f ! Fuzzy matching (@pxref{Fuzzy Matching}). @item r Regexp matching *************** *** 11432,11438 **** @lisp ("references" ! ("" 1000 nil r)) @end lisp Whether it's the first two or first three characters that are ``yours'' --- 11442,11448 ---- @lisp ("references" ! ("" 1000 nil r)) @end lisp Whether it's the first two or first three characters that are ``yours'' *************** *** 12133,12138 **** --- 12143,12149 ---- * Undo:: Some actions can be undone. * Moderation:: What to do if you're a moderator. * XEmacs Enhancements:: There are more pictures and stuff under XEmacs. + * Fuzzy Matching:: What's the big fuzz? * Various Various:: Things that are really various. @end menu *************** *** 13339,13344 **** --- 13350,13373 ---- @end table + @node Fuzzy Matching + @section Fuzzy Matching + @cindex fuzzy matching + + Gnus provides @dfn{fuzzy matching} of @code{Subject} lines when doing + things like scoring, thread gathering and thread comparison. + + As opposed to regular expression matching, fuzzy matching is very fuzzy. + It's so fuzzy that there's not even a definition of what @dfn{fuzziness} + means, and the implementation has changed over time. + + Basically, it tries to remove all noise from lines before comparing. + @samp{Re: }, parenthetical remarks, white space, and so on, are filtered + out of the strings before comparing the results. This often leads to + adequate results---even when faced with strings generated by text + manglers masquerading as newsreaders. + + @node Various Various @section Various Various @cindex mode lines *************** *** 15198,15206 **** A Gnus group info (@pxref{Group Info}) is handed to the backend for alterations. This comes in handy if the backend really carries all the ! information (as is the case with virtual an imap groups). This function ! should destructively alter the info to suit its needs, and should return ! the (altered) group info. There should be no result data from this function. --- 15227,15235 ---- A Gnus group info (@pxref{Group Info}) is handed to the backend for alterations. This comes in handy if the backend really carries all the ! information (as is the case with virtual and imap groups). This ! function should destructively alter the info to suit its needs, and ! should return the (altered) group info. There should be no result data from this function. *** pub/rgnus/texi/message.texi Tue Feb 18 23:29:08 1997 --- rgnus/texi/message.texi Sat Mar 1 03:54:56 1997 *************** *** 74,79 **** --- 74,80 ---- * Interface:: Setting up message buffers. * Commands:: Commands you can execute in message mode buffers. * Variables:: Customizing the message buffers. + * Compatibility:: Making Message backwards compatible. * Index:: Variable, function and concept index. * Key Index:: List of Message mode keys. @end menu *************** *** 930,941 **** @lisp (defun my-message-header-setup-hook () ! (when (or (message-fetch-field "newsgroups") ! (gnus-group-find-parameter ! gnus-newsgroup-name 'to-address) ! (gnus-group-find-parameter ! gnus-newsgroup-name 'to-list)) ! (insert "Mail-Copies-To: never\n"))) (add-hook 'message-header-setup-hook 'my-message-header-setup-hook) @end lisp --- 931,941 ---- @lisp (defun my-message-header-setup-hook () ! (let ((group (or gnus-newsgroup-name ""))) ! (when (or (message-fetch-field "newsgroups") ! (gnus-group-find-parameter group 'to-address) ! (gnus-group-find-parameter group 'to-list)) ! (insert "Mail-Copies-To: never\n")))) (add-hook 'message-header-setup-hook 'my-message-header-setup-hook) @end lisp *************** *** 1067,1072 **** --- 1067,1090 ---- An @dfn{action} can be either: a normal function, or a list where the @code{car} is a function and the @code{cdr} is the list of arguments, or a form to be @code{eval}ed. + + + @node Compatibility + @chapter Compatibility + @cindex compatibility + + Message uses virtually only its own variables---older @code{mail-} + variables aren't consulted. To force Message to take those variables + into account, you can put the following in your @code{.emacs} file: + + @lisp + (require 'messcompat) + @end lisp + + This will initialize many Message variables from the values in the + corresponding mail variables. + + @node Index @chapter Index *** pub/rgnus/texi/widget.texi Sun Feb 16 18:16:45 1997 --- rgnus/texi/widget.texi Sat Mar 1 03:54:56 1997 *************** *** 1,6 **** \input texinfo.tex ! @c $Id: widget.texi,v 1.62 1997/02/12 17:49:27 abraham Exp $ @c %**start of header @setfilename widget --- 1,6 ---- \input texinfo.tex ! @c $Id: widget.texi,v 1.1.1.1 1997/02/27 01:36:06 larsi Exp $ @c %**start of header @setfilename widget *** pub/rgnus/texi/ChangeLog Thu Feb 20 04:19:57 1997 --- rgnus/texi/ChangeLog Sat Mar 1 03:54:56 1997 *************** *** 1,3 **** --- 1,12 ---- + Fri Feb 28 23:23:31 1997 Lars Magne Ingebrigtsen + + * gnus.texi (Archived Messages): Clarify. + (Fuzzy Matching): New. + + Mon Feb 24 23:41:57 1997 Lars Magne Ingebrigtsen + + * message.texi (Compatibility): New. + Thu Feb 20 03:29:17 1997 Lars Magne Ingebrigtsen * gnus.texi (Foreign Groups): Addition.