*** pub/rgnus/lisp/article.el Sat Nov 9 05:00:50 1996 --- rgnus/lisp/article.el Sat Nov 9 17:22:01 1996 *************** *** 130,136 **** ("\\*/" "/\\*" bold-italic) ("_\\*/" "/\\*_" underline-bold-italic)))) `(("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)" ! 2 3 'gnus-emphasis-underline) ,@(mapcar (lambda (spec) (list --- 130,136 ---- ("\\*/" "/\\*" bold-italic) ("_\\*/" "/\\*_" underline-bold-italic)))) `(("\\(\\s-\\|^\\)\\(_\\(\\(\\w\\|_\\)+\\)_\\)\\(\\s-\\|[?!.,;]\\)" ! 2 3 gnus-emphasis-underline) ,@(mapcar (lambda (spec) (list *************** *** 140,146 **** "Alist that says how to fontify certain phrases. Each item looks like this: ! (\"_\\\\([[\\w+\\\\)_\" 0 1 'underline) The first element is a regular expression to be matched. The second is a number that says what regular expression grouping used to find --- 140,146 ---- "Alist that says how to fontify certain phrases. Each item looks like this: ! (\"_\\\\(\\\\w+\\\\)_\" 0 1 'underline) The first element is a regular expression to be matched. The second is a number that says what regular expression grouping used to find *** pub/rgnus/lisp/gnus-art.el Sat Nov 9 05:00:48 1996 --- rgnus/lisp/gnus-art.el Sat Nov 9 10:41:20 1996 *************** *** 675,683 **** ["Remove carriage return" gnus-article-remove-cr t] ["Remove quoted-unreadable" gnus-article-de-quoted-unreadable t])) (define-key gnus-article-mode-map (vector 'menu-bar (car gnus-summary-article-menu)) ! gnus-summary-article-menu) (run-hooks 'gnus-article-menu-hook))) --- 675,684 ---- ["Remove carriage return" gnus-article-remove-cr t] ["Remove quoted-unreadable" gnus-article-de-quoted-unreadable t])) + (when nil (define-key gnus-article-mode-map (vector 'menu-bar (car gnus-summary-article-menu)) ! gnus-summary-article-menu)) (run-hooks 'gnus-article-menu-hook))) *** pub/rgnus/lisp/gnus-async.el Mon Nov 4 08:03:16 1996 --- rgnus/lisp/gnus-async.el Sat Nov 9 06:47:55 1996 *************** *** 151,157 **** (when next (gnus-async-with-semaphore (pop gnus-async-fetch-list))) ! (let ((do-fetch next)) (when (and (gnus-group-asynchronous-p group) (gnus-buffer-live-p summary) (or (not next) --- 151,158 ---- (when next (gnus-async-with-semaphore (pop gnus-async-fetch-list))) ! (let ((do-fetch next) ! (do-message (eq major-mode 'gnus-summary-mode))) (when (and (gnus-group-asynchronous-p group) (gnus-buffer-live-p summary) (or (not next) *************** *** 194,201 **** group article mark summary next)) (nntp-server-buffer (get-buffer gnus-async-prefetch-article-buffer))) ! (gnus-message 7 "Prefetching article %d in group %s" ! article group) (gnus-request-article article group)))))))))) (defun gnus-make-async-article-function (group article mark summary next) --- 195,203 ---- group article mark summary next)) (nntp-server-buffer (get-buffer gnus-async-prefetch-article-buffer))) ! (when do-message ! (gnus-message 7 "Prefetching article %d in group %s" ! article group)) (gnus-request-article article group)))))))))) (defun gnus-make-async-article-function (group article mark summary next) *** pub/rgnus/lisp/gnus-msg.el Fri Nov 8 05:57:06 1996 --- rgnus/lisp/gnus-msg.el Sat Nov 9 06:47:56 1996 *************** *** 358,373 **** (t 'message)) (let* ((group (or group gnus-newsgroup-name)) (pgroup group) ! to-address to-group mailing-list to-list) (when group (setq to-address (gnus-group-find-parameter group 'to-address) to-group (gnus-group-find-parameter group 'to-group) to-list (gnus-group-find-parameter group 'to-list) mailing-list (when gnus-mailing-list-groups (string-match gnus-mailing-list-groups group)) group (gnus-group-real-name group))) (if (or (and to-group (gnus-news-group-p to-group)) force-news (and (gnus-news-group-p (or pgroup gnus-newsgroup-name) --- 358,376 ---- (t 'message)) (let* ((group (or group gnus-newsgroup-name)) (pgroup group) ! to-address to-group mailing-list to-list ! newsgroup-p) (when group (setq to-address (gnus-group-find-parameter group 'to-address) to-group (gnus-group-find-parameter group 'to-group) to-list (gnus-group-find-parameter group 'to-list) + newsgroup-p (gnus-group-find-parameter group 'newsgroup) mailing-list (when gnus-mailing-list-groups (string-match gnus-mailing-list-groups group)) group (gnus-group-real-name group))) (if (or (and to-group (gnus-news-group-p to-group)) + newsgroup-p force-news (and (gnus-news-group-p (or pgroup gnus-newsgroup-name) *************** *** 380,386 **** (if post (message-news (or to-group group)) (set-buffer gnus-article-copy) ! (message-followup (if force-news nil to-group))) ;; The is mail. (if post (progn --- 383,389 ---- (if post (message-news (or to-group group)) (set-buffer gnus-article-copy) ! (message-followup (if (or newsgroup-p force-news) nil to-group))) ;; The is mail. (if post (progn *************** *** 798,804 **** (goto-char (point-min)) (while (setq expr (ignore-errors (read (current-buffer)))) (ignore-errors ! (and (eq (car expr) 'defvar) (stringp (nth 3 expr)) (or (not (boundp (nth 1 expr))) (not (equal (eval (nth 2 expr)) --- 801,808 ---- (goto-char (point-min)) (while (setq expr (ignore-errors (read (current-buffer)))) (ignore-errors ! (and (or (eq (car expr) 'defvar) ! (eq (car expr) 'defcustom)) (stringp (nth 3 expr)) (or (not (boundp (nth 1 expr))) (not (equal (eval (nth 2 expr)) *** pub/rgnus/lisp/gnus-score.el Fri Nov 8 01:53:33 1996 --- rgnus/lisp/gnus-score.el Sun Nov 10 05:44:25 1996 *************** *** 1858,1867 **** (cond ;; Fuzzy matches. We save these for later. ((= dmt ?f) ! (push entries fuzzies)) ;; Word matches. Save these for even later. ((= dmt ?w) ! (push entries words)) ;; Exact matches. ((= dmt ?e) ;; Do exact matching. --- 1858,1867 ---- (cond ;; Fuzzy matches. We save these for later. ((= dmt ?f) ! (push (cons entries alist) fuzzies)) ;; Word matches. Save these for even later. ((= dmt ?w) ! (push (cons entries alist) words)) ;; Exact matches. ((= dmt ?e) ;; Do exact matching. *************** *** 1930,1936 **** (when fuzzies ;; Simplify the entire buffer for easy matching. (gnus-simplify-buffer-fuzzy) ! (while (setq kill (cadar fuzzies)) (let* ((match (nth 0 kill)) (type (nth 3 kill)) (score (or (nth 1 kill) gnus-score-interactive-default-score)) --- 1930,1936 ---- (when fuzzies ;; Simplify the entire buffer for easy matching. (gnus-simplify-buffer-fuzzy) ! (while (setq kill (cadaar fuzzies)) (let* ((match (nth 0 kill)) (type (nth 3 kill)) (score (or (nth 1 kill) gnus-score-interactive-default-score)) *************** *** 1948,1954 **** (while (setq art (pop arts)) (setcdr art (+ score (cdr art))) (push (cons ! (car-safe (rassq alist gnus-score-cache)) kill) gnus-score-trace)) ;; Found a match, update scores. (while (setq art (pop arts)) --- 1948,1955 ---- (while (setq art (pop arts)) (setcdr art (+ score (cdr art))) (push (cons ! (car-safe (rassq (cdar fuzzies) gnus-score-cache)) ! kill) gnus-score-trace)) ;; Found a match, update scores. (while (setq art (pop arts)) *************** *** 1961,1972 **** ) ;; Match, update date. ((and found gnus-update-score-entry-dates) ! (gnus-score-set 'touched '(t) alist) (setcar (nthcdr 2 kill) now)) ;; Old entry, remove. ((and expire (< date expire)) ! (gnus-score-set 'touched '(t) alist) ! (setcdr (car fuzzies) (cddar fuzzies)))) (setq fuzzies (cdr fuzzies))))) (when words --- 1962,1973 ---- ) ;; Match, update date. ((and found gnus-update-score-entry-dates) ! (gnus-score-set 'touched '(t) (cdar fuzzies)) (setcar (nthcdr 2 kill) now)) ;; Old entry, remove. ((and expire (< date expire)) ! (gnus-score-set 'touched '(t) (cdar fuzzies)) ! (setcdr (caar fuzzies) (cddaar fuzzies)))) (setq fuzzies (cdr fuzzies))))) (when words *************** *** 1974,1980 **** (let ((hashtb (gnus-make-hashtable (* 10 (count-lines (point-min) (point-max)))))) (gnus-enter-score-words-into-hashtb hashtb) ! (while (setq kill (cadar words)) (let* ((score (or (nth 1 kill) gnus-score-interactive-default-score)) (date (nth 2 kill)) found) --- 1975,1981 ---- (let ((hashtb (gnus-make-hashtable (* 10 (count-lines (point-min) (point-max)))))) (gnus-enter-score-words-into-hashtb hashtb) ! (while (setq kill (cadaar words)) (let* ((score (or (nth 1 kill) gnus-score-interactive-default-score)) (date (nth 2 kill)) found) *************** *** 1984,1990 **** (if trace (while (setq art (pop arts)) (setcdr art (+ score (cdr art))) ! (push (cons (car-safe (rassq alist gnus-score-cache)) kill) gnus-score-trace)) ;; Found a match, update scores. (while (setq art (pop arts)) --- 1985,1993 ---- (if trace (while (setq art (pop arts)) (setcdr art (+ score (cdr art))) ! (push (cons ! (car-safe (rassq (cdar words) gnus-score-cache)) ! kill) gnus-score-trace)) ;; Found a match, update scores. (while (setq art (pop arts)) *************** *** 1996,2007 **** ) ;; Match, update date. ((and found gnus-update-score-entry-dates) ! (gnus-score-set 'touched '(t) alist) (setcar (nthcdr 2 kill) now)) ;; Old entry, remove. ((and expire (< date expire)) ! (gnus-score-set 'touched '(t) alist) ! (setcdr (car words) (cddar words)))) (setq words (cdr words)))))) nil)) --- 1999,2010 ---- ) ;; Match, update date. ((and found gnus-update-score-entry-dates) ! (gnus-score-set 'touched '(t) (cdar words)) (setcar (nthcdr 2 kill) now)) ;; Old entry, remove. ((and expire (< date expire)) ! (gnus-score-set 'touched '(t) (cdar words)) ! (setcdr (caar words) (cddaar words)))) (setq words (cdr words)))))) nil)) *** pub/rgnus/lisp/gnus-sum.el Fri Nov 8 05:53:23 1996 --- rgnus/lisp/gnus-sum.el Sat Nov 9 19:09:58 1996 *************** *** 150,158 **** :type 'string) (defcustom gnus-summary-goto-unread t ! "*If non-nil, marking commands will go to the next unread article. ! If `never', \\\\[gnus-summary-next-page] will go to the next article, ! whether it is read or not." :group 'gnus-summary :type '(choice (const :tag "off" nil) (const never) --- 150,159 ---- :type 'string) (defcustom gnus-summary-goto-unread t ! "*If t, marking commands will go to the next unread article. ! If `never', commands that usually go to the next unread article, will ! go to the next article, whether it is read or not. ! If nil, only the marking commands will go to the next (un)read article." :group 'gnus-summary :type '(choice (const :tag "off" nil) (const never) *************** *** 1771,1777 **** ["Uuencode and post" gnus-uu-post-news t] ["Followup via news" gnus-summary-followup-to-mail t] ["Followup via news and yank" ! gnus-summary-followup-with-original-to-mail t] ;;("Draft" ;;["Send" gnus-summary-send-draft t] ;;["Send bounced" gnus-resend-bounced-mail t]) --- 1772,1778 ---- ["Uuencode and post" gnus-uu-post-news t] ["Followup via news" gnus-summary-followup-to-mail t] ["Followup via news and yank" ! gnus-summary-followup-to-mail-with-original t] ;;("Draft" ;;["Send" gnus-summary-send-draft t] ;;["Send bounced" gnus-resend-bounced-mail t]) *** pub/rgnus/lisp/gnus-topic.el Wed Nov 6 09:33:03 1996 --- rgnus/lisp/gnus-topic.el Sun Nov 10 05:44:25 1996 *************** *** 446,452 **** (list (if insert 'visible 'invisible) (if hide 'hide nil) (cadddr data)))) ! (unless total-remove (gnus-topic-insert-topic topic in-level))))) (defun gnus-topic-insert-topic (topic &optional level) --- 446,454 ---- (list (if insert 'visible 'invisible) (if hide 'hide nil) (cadddr data)))) ! (if total-remove ! (setq gnus-topic-alist ! (delq (assoc topic gnus-topic-alist) gnus-topic-alist)) (gnus-topic-insert-topic topic in-level))))) (defun gnus-topic-insert-topic (topic &optional level) *** pub/rgnus/lisp/gnus.el Sat Nov 9 05:16:01 1996 --- rgnus/lisp/gnus.el Sat Nov 9 05:58:53 1996 *************** *** 42,48 **** "Score and kill file handling." :group 'gnus ) ! (defconst gnus-version-number "0.57" "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.58" "Version number for this version of Gnus.") (defconst gnus-version (format "Red Gnus v%s" gnus-version-number) *** pub/rgnus/lisp/nnheader.el Fri Nov 8 05:53:20 1996 --- rgnus/lisp/nnheader.el Sat Nov 9 18:51:12 1996 *************** *** 568,576 **** (defun nnheader-fold-continuation-lines () "Fold continuation lines in the current buffer." ! (goto-char (point-min)) ! (while (re-search-forward "\\(\r?\n[ \t]+\\)+" nil t) ! (replace-match " " t t))) (defun nnheader-translate-file-chars (file) (if (null nnheader-file-name-translation-alist) --- 568,574 ---- (defun nnheader-fold-continuation-lines () "Fold continuation lines in the current buffer." ! (nnheader-replace-regexp "\\(\r?\n[ \t]+\\)+" " ")) (defun nnheader-translate-file-chars (file) (if (null nnheader-file-name-translation-alist) *************** *** 757,762 **** --- 755,794 ---- (push (car files) out)) (pop files)) (nreverse out))) + + (defmacro nnheader-skeleton-replace (from &optional to regexp) + `(let ((new (generate-new-buffer " *nnheader replace*")) + (cur (current-buffer)) + (start (point-min))) + (set-buffer new) + (buffer-disable-undo (current-buffer)) + (set-buffer cur) + (goto-char (point-min)) + (while (,(if regexp 're-search-forward 'search-forward) + ,from nil t) + (insert-buffer-substring + cur start (prog1 (match-beginning 0) (set-buffer new))) + (goto-char (point-max)) + ,(when to `(insert ,to)) + (set-buffer cur) + (setq start (point))) + (insert-buffer-substring + cur start (prog1 (point-max) (set-buffer new))) + (copy-to-buffer cur (point-min) (point-max)) + (kill-buffer (current-buffer)) + (set-buffer cur))) + + (defun nnheader-replace-string (from to) + "Do a fast replacement of FROM to TO from point to point-max." + (nnheader-skeleton-replace from to)) + + (defun nnheader-replace-regexp (from to) + "Do a fast regexp replacement of FROM to TO from point to point-max." + (nnheader-skeleton-replace from to t)) + + (defun nnheader-strip-cr () + "Strip all \r's from the current buffer." + (nnheader-skeleton-replace "\r")) (fset 'nnheader-run-at-time 'run-at-time) (fset 'nnheader-cancel-timer 'cancel-timer) *** pub/rgnus/lisp/nnmail.el Sat Nov 9 05:15:32 1996 --- rgnus/lisp/nnmail.el Sat Nov 9 17:21:00 1996 *************** *** 1019,1025 **** ;; Someone might want to do a \N sub on this match, so get the ;; correct match positions. (goto-char (match-end 0)) ! (re-search-backward (nth 1 split) (match-end 1)) (nnmail-split-it (nth 2 split)))) ;; Not in cache, compute a regexp for the field/value pair. --- 1019,1029 ---- ;; Someone might want to do a \N sub on this match, so get the ;; correct match positions. (goto-char (match-end 0)) ! (let ((value (nth 1 split))) ! (re-search-backward (if (symbolp value) ! (cdr (assq value nnmail-split-abbrev-alist)) ! value) ! (match-end 1))) (nnmail-split-it (nth 2 split)))) ;; Not in cache, compute a regexp for the field/value pair. *** pub/rgnus/lisp/nntp.el Fri Nov 8 12:20:04 1996 --- rgnus/lisp/nntp.el Sun Nov 10 06:02:37 1996 *************** *** 239,247 **** ;; Now all of replies are received. Fold continuation lines. (nnheader-fold-continuation-lines) ;; Remove all "\r"'s. ! (goto-char (point-min)) ! (while (search-forward "\r" nil t) ! (replace-match "" t t)) (copy-to-buffer nntp-server-buffer (point-min) (point-max)) 'headers)))) --- 239,245 ---- ;; Now all of replies are received. Fold continuation lines. (nnheader-fold-continuation-lines) ;; Remove all "\r"'s. ! (nnheader-strip-cr) (copy-to-buffer nntp-server-buffer (point-min) (point-max)) 'headers)))) *************** *** 745,761 **** (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) "Decode the text in the current buffer." (goto-char (point-min)) ! ;; Remove \R's. ! (while (search-forward "\r" nil t) ! (delete-char -1)) (unless cr-only ;; Remove trailing ".\n" end-of-transfer marker. (goto-char (point-max)) --- 743,763 ---- (when group (let ((entry (nntp-find-connection-entry nntp-server-buffer))) (when (not (equal group (caddr entry))) ! (let ((nnheader-callback-function nil)) ! (nntp-request-group group) ! (save-excursion ! (set-buffer nntp-server-buffer) ! (erase-buffer))))))) (defun nntp-decode-text (&optional cr-only) "Decode the text in the current buffer." (goto-char (point-min)) ! ;; Remove \r's. If this is a big article, we use a faster ! ;; algorithm. ! (if (> (point-max) 5000) ! (nnheader-strip-cr) ! (while (search-forward "\r" nil t) ! (delete-char -1))) (unless cr-only ;; Remove trailing ".\n" end-of-transfer marker. (goto-char (point-max)) *** pub/rgnus/lisp/nnweb.el Fri Nov 8 05:53:17 1996 --- rgnus/lisp/nnweb.el Sat Nov 9 20:06:55 1996 *************** *** 211,217 **** (setq header (nnheader-parse-nov)) (forward-line 1) (push (list (mail-header-number header) ! header (nnheader-header-xref header)) nnweb-articles) (nnweb-set-hashtb header (car nnweb-articles))))))) --- 211,217 ---- (setq header (nnheader-parse-nov)) (forward-line 1) (push (list (mail-header-number header) ! header (mail-header-xref header)) nnweb-articles) (nnweb-set-hashtb header (car nnweb-articles))))))) *************** *** 223,229 **** (nnheader-insert-nov (cadr (pop articles))))))) (defun nnweb-set-hashtb (header data) ! (gnus-sethastb (nnweb-identifier (mail-header-xrefs header)) data nnweb-hashtb)) (defun nnweb-get-hashtb (url) --- 223,229 ---- (nnheader-insert-nov (cadr (pop articles))))))) (defun nnweb-set-hashtb (header data) ! (gnus-sethash (nnweb-identifier (mail-header-xref header)) data nnweb-hashtb)) (defun nnweb-get-hashtb (url) *** pub/rgnus/lisp/ChangeLog Sat Nov 9 05:18:03 1996 --- rgnus/lisp/ChangeLog Sun Nov 10 05:44:24 1996 *************** *** 1,3 **** --- 1,49 ---- + Sun Nov 10 05:35:25 1996 Lars Magne Ingebrigtsen + + * gnus-topic.el (gnus-topic-remove-topic): Remove from alist. + + * gnus-score.el (gnus-score-string): Didn't trace fuzzies and + words. + + Sat Nov 9 18:14:42 1996 Lars Magne Ingebrigtsen + + * nnweb.el (nnweb-set-hashtb): Typo. + (nnweb-read-overview): Typo. + + * nnheader.el (nnheader-skeleton-replace): New macro. + (nnheader-replace-string): Use it. + (nnheader-replace-regexp): Use it. + (nnheader-strip-cr): Use it. + + * nntp.el (nntp-retrieve-headers): Be faster. + (nntp-decode-text): Use faster algorithm. + + * nnheader.el (nnheader-replace-string): New function. + + Sat Nov 9 17:22:16 1996 Hrvoje Niksic + + * article.el (gnus-emphasis-alist): Doc fix. + + Sat Nov 9 16:27:27 1996 Per Abrahamsen + + * nnmail.el (nnmail-split-it): Fix bug in abbrev handling. + + Sat Nov 9 05:59:02 1996 Lars Magne Ingebrigtsen + + * nnweb.el (nnweb-set-hashtb): Typo. + + * article.el (gnus-emphasis-alist): One ' too many. + + * gnus-async.el (gnus-async-prefetch-article): Only message when + in the summary buffer. + + * gnus-msg.el (gnus-post-news): Handle `newsgroup' param. + (gnus-debug): Be `defcustom' aware. + + Sat Nov 9 05:41:27 1996 Lars Magne Ingebrigtsen + + * gnus.el: Red Gnus v0.57 is released. + Fri Nov 8 22:56:59 1996 Per Abrahamsen * gnus.el: Added customize support. *** pub/rgnus/texi/gnus.texi Sat Nov 9 05:34:41 1996 --- rgnus/texi/gnus.texi Sun Nov 10 06:05:12 1996 *************** *** 1,7 **** \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Red Gnus 0.57 Manual @synindex fn cp @synindex vr cp @synindex pg cp --- 1,7 ---- \input texinfo @c -*-texinfo-*- @setfilename gnus ! @settitle Red Gnus 0.58 Manual @synindex fn cp @synindex vr cp @synindex pg cp *************** *** 287,293 **** @tex @titlepage ! @title Red Gnus 0.57 Manual @author by Lars Magne Ingebrigtsen @page --- 287,293 ---- @tex @titlepage ! @title Red Gnus 0.58 Manual @author by Lars Magne Ingebrigtsen @page *************** *** 1881,1886 **** --- 1881,1892 ---- @cindex to-group Elements like @code{(to-group . "some.group.name")} means that all posts in that group will be sent to @code{some.group.name}. + + @item newsgroup + @cindex newsgroup + If this symbol is present in the group parameter list, Gnus will treat + all responses as if they were responses to news articles. This can be + useful if you have a mail group that's really a mirror of a news group. @item gcc-self @cindex gcc-self *** pub/rgnus/texi/ChangeLog Fri Nov 8 02:43:26 1996 --- rgnus/texi/ChangeLog Sat Nov 9 06:47:56 1996 *************** *** 1,3 **** --- 1,7 ---- + Sat Nov 9 06:04:22 1996 Lars Magne Ingebrigtsen + + * gnus.texi (Group Parameters): Addition. + Fri Nov 8 04:01:06 1996 Lars Magne Ingebrigtsen * gnus.texi (Article Fontisizing): New.