diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/lisp/ChangeLog dgnus/lisp/ChangeLog *** pub/dgnus/lisp/ChangeLog Sun Mar 26 22:07:37 1995 --- dgnus/lisp/ChangeLog Mon Mar 27 18:41:41 1995 *************** *** 1,3 **** --- 1,29 ---- + Mon Mar 27 18:31:05 1995 Lars Magne Ingebrigtsen + + * gnus.el (gnus-summary-catchup-to-here): Would mark everything as + read. + + * nnml.el (nnml-request-expire-articles): Max without apply. + + Mon Mar 27 12:16:37 1995 Lars Magne Ingebrigtsen + + * gnus.el (gnus-no-groups-message): New variable. + (gnus-group-best-unread-group): Don't just to the current group. + + Mon Mar 27 11:18:40 1995 Lars Magne Ingebrigtsen + + * gnus-kill.el (gnus-kill): Would remove all kill entries from + kill files. + + * gnus.el (gnus-post-news): Did not work from the group buffer. + (gnus-score-load-file): Would unconditionally overwrite expunge + and mark levels. + + Mon Mar 27 11:13:43 1995 Lars Magne Ingebrigtsen + + * gnus.el: 0.41-0.44 released in quick succession. Fixed new range + operators. + Sat Mar 25 05:05:26 1995 Lars Ingebrigtsen * gnus.el (gnus-compress-newsrc-assoc, diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/lisp/gnus-kill.el dgnus/lisp/gnus-kill.el *** pub/dgnus/lisp/gnus-kill.el Sun Mar 26 22:07:30 1995 --- dgnus/lisp/gnus-kill.el Mon Mar 27 11:48:38 1995 *************** *** 361,366 **** --- 361,367 ---- (progn (message "Processing kill file %s..." (car kill-files)) (find-file (car kill-files)) + (gnus-kill-file-mode) (goto-char (point-min)) (while (progn (setq beg (point)) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/lisp/gnus.el dgnus/lisp/gnus.el *** pub/dgnus/lisp/gnus.el Sun Mar 26 22:07:33 1995 --- dgnus/lisp/gnus.el Mon Mar 27 18:41:42 1995 *************** *** 200,205 **** --- 200,209 ---- If the number of articles in a newsgroup is greater than this value, confirmation is required for selecting the newsgroup.") + ;; Suggested by Andrew Eskilsson . + (defvar gnus-no-groups-message "No news is horrible news" + "Message displayed by Gnus when no groups are available.") + (defvar gnus-author-copy (getenv "AUTHORCOPY") "Save outgoing articles in this file. Initialized from the AUTHORCOPY environment variable. *************** *** 1200,1206 **** (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.44" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1204,1210 ---- (defconst gnus-maintainer "Lars Magne Ingebrigtsen " "The mail address of the Gnus maintainer.") ! (defconst gnus-version "(ding) Gnus v0.45" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 2767,2774 **** (group (gnus-group-group-name))) (funcall gnus-group-prepare-function level unread nil) (if (zerop (buffer-size)) ! ;; Suggested by Andrew Eskilsson . ! (message "No news is horrible news") (goto-char (point-min)) (if (not group) ;; Go to the first group with unread articles. --- 2771,2777 ---- (group (gnus-group-group-name))) (funcall gnus-group-prepare-function level unread nil) (if (zerop (buffer-size)) ! (message gnus-no-groups-message) (goto-char (point-min)) (if (not group) ;; Go to the first group with unread articles. *************** *** 2894,2899 **** --- 2897,2903 ---- (while marked (or (eq 'score (car (car marked))) (eq 'bookmark (car (car marked))) + (eq 'killed (car (car marked))) (not (or (atom (cdr (cdr (car marked)))) (not (atom (car (cdr (car marked))))))) (setcdr (car marked) *************** *** 3229,3236 **** (gnus-group-next-unread-group (- n) t (gnus-group-group-level)) (gnus-group-position-cursor)) ! (defun gnus-group-best-unread-group () ! "Go to the group with the highest level." (interactive) (goto-char (point-min)) (let ((best 10) --- 3233,3241 ---- (gnus-group-next-unread-group (- n) t (gnus-group-group-level)) (gnus-group-position-cursor)) ! (defun gnus-group-best-unread-group (&optional exclude-group) ! "Go to the group with the highest level. ! If EXCLUDE-GROUP, do not go to that group." (interactive) (goto-char (point-min)) (let ((best 10) *************** *** 3239,3245 **** (if (and (numberp unread) (> unread 0)) (progn (or best-point (setq best-point (point))) ! (if (< (get-text-property (point) 'gnus-level) best) (progn (setq best (get-text-property (point) 'gnus-level)) (setq best-point (point)))))) --- 3244,3252 ---- (if (and (numberp unread) (> unread 0)) (progn (or best-point (setq best-point (point))) ! (if (and (< (get-text-property (point) 'gnus-level) best) ! (or (not exclude-group) ! (not (equal exclude-group (gnus-group-group-name))))) (progn (setq best (get-text-property (point) 'gnus-level)) (setq best-point (point)))))) *************** *** 3295,3300 **** --- 3302,3308 ---- (while marked (or (eq 'score (car (car marked))) (eq 'bookmark (car (car marked))) + (eq 'killed (car (car marked))) (setcdr (car marked) (gnus-compress-sequence (sort (cdr (car marked)) '<) t))) (setq marked (cdr marked)))) *************** *** 6026,6037 **** (if use-level (gnus-group-group-level) nil)) (gnus-group-group-name))))) ! (defun gnus-summary-best-group () ! "Find the name of the best unread group." (save-excursion (set-buffer gnus-group-buffer) (save-excursion ! (gnus-group-best-unread-group)))) (defun gnus-summary-search-subject (&optional backward unread subject) "Search for article forward. --- 6034,6046 ---- (if use-level (gnus-group-group-level) nil)) (gnus-group-group-name))))) ! (defun gnus-summary-best-group (&optional exclude-group) ! "Find the name of the best unread group. ! If EXCLUDE-GROUP, do not go to this group." (save-excursion (set-buffer gnus-group-buffer) (save-excursion ! (gnus-group-best-unread-group exclude-group)))) (defun gnus-summary-search-subject (&optional backward unread subject) "Search for article forward. *************** *** 6574,6580 **** (gnus-summary-jump-to-group gnus-newsgroup-name) (let ((cmd (aref (this-command-keys) 0)) (group ! (if (eq gnus-keep-same-level 'best) (gnus-summary-best-group) (gnus-summary-search-group backward gnus-keep-same-level)))) ;; Keep just the event type of CMD. (and (listp cmd) (setq cmd (car cmd))) --- 6583,6590 ---- (gnus-summary-jump-to-group gnus-newsgroup-name) (let ((cmd (aref (this-command-keys) 0)) (group ! (if (eq gnus-keep-same-level 'best) ! (gnus-summary-best-group gnus-newsgroup-name) (gnus-summary-search-group backward gnus-keep-same-level)))) ;; Keep just the event type of CMD. (and (listp cmd) (setq cmd (car cmd))) *************** *** 7923,7929 **** (if to-here (< (point) to-here) t) (gnus-summary-search-subject nil (not all))))) (- unreads (length gnus-newsgroup-unreads)))) ! (setq gnus-newsgroup-unreads gnus-newsgroup-marked) (gnus-summary-position-cursor))) (defun gnus-summary-catchup-to-here (&optional all) --- 7933,7940 ---- (if to-here (< (point) to-here) t) (gnus-summary-search-subject nil (not all))))) (- unreads (length gnus-newsgroup-unreads)))) ! (or to-here ! (setq gnus-newsgroup-unreads gnus-newsgroup-marked)) (gnus-summary-position-cursor))) (defun gnus-summary-catchup-to-here (&optional all) *************** *** 9686,9693 **** (gnus-score-load-file file)) files)))) (and eval (not global) (eval eval)) ! (setq gnus-summary-mark-below (or mark mark-and-expunge)) ! (setq gnus-summary-expunge-below (or expunge mark-and-expunge))) (setq gnus-current-score-file file) (setq gnus-score-alist alist) lists)) --- 9697,9706 ---- (gnus-score-load-file file)) files)))) (and eval (not global) (eval eval)) ! (setq gnus-summary-mark-below ! (or mark mark-and-expunge gnus-summary-mark-below)) ! (setq gnus-summary-expunge-below ! (or expunge mark-and-expunge gnus-summary-expunge-below))) (setq gnus-current-score-file file) (setq gnus-score-alist alist) lists)) *************** *** 10324,10334 **** (setq subject (read-string "Subject: ")))) (setq mail-reply-buffer article-buffer) ! (setq real-group (gnus-group-real-name group)) (setq gnus-post-news-buffer (gnus-request-post-buffer post real-group subject header article-buffer ! (nth 2 (gnus-gethash group gnus-newsrc-hashtb)) (if (and (boundp 'gnus-followup-to-function) gnus-followup-to-function) (setq follow-to --- 10337,10347 ---- (setq subject (read-string "Subject: ")))) (setq mail-reply-buffer article-buffer) ! (setq real-group (and group (gnus-group-real-name group))) (setq gnus-post-news-buffer (gnus-request-post-buffer post real-group subject header article-buffer ! (nth 2 (and group (gnus-gethash group gnus-newsrc-hashtb))) (if (and (boundp 'gnus-followup-to-function) gnus-followup-to-function) (setq follow-to *************** *** 11571,11577 **** ;; Fix by Sudish Joseph . (defun gnus-request-post-buffer (post group subject header artbuf info follow-to respect-poster) ! (let* ((info (or info (nth 2 (gnus-gethash group gnus-newsrc-hashtb)))) (method (if (and gnus-post-method ;; Fix by Sudish Joseph . --- 11584,11591 ---- ;; Fix by Sudish Joseph . (defun gnus-request-post-buffer (post group subject header artbuf info follow-to respect-poster) ! (let* ((info (or info (and group (nth 2 (gnus-gethash ! group gnus-newsrc-hashtb))))) (method (if (and gnus-post-method ;; Fix by Sudish Joseph . *************** *** 12438,12443 **** --- 12452,12458 ---- (while marked (or (eq 'score (car (car marked))) (eq 'bookmark (car (car marked))) + (eq 'killed (car (car marked))) (setcdr (car marked) (gnus-uncompress-range (cdr (car marked))))) (setq marked (cdr marked)))) (setq newsrc (cdr newsrc))))) *************** *** 12452,12457 **** --- 12467,12473 ---- (while marked (or (eq 'score (car (car marked))) (eq 'bookmark (car (car marked))) + (eq 'killed (car (car marked))) (setcdr (car marked) (gnus-compress-sequence (sort (cdr (car marked)) '<) t))) (setq marked (cdr marked)))) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/lisp/nnml.el dgnus/lisp/nnml.el *** pub/dgnus/lisp/nnml.el Sun Mar 26 22:07:34 1995 --- dgnus/lisp/nnml.el Mon Mar 27 18:31:46 1995 *************** *** 204,210 **** (lambda (name) (string-to-int name))) (directory-files nnml-current-directory nil "^[0-9]+$" t))) ! (max-article (max active-articles)) article rest mod-time) (while articles (setq article (concat nnml-current-directory (int-to-string --- 204,210 ---- (lambda (name) (string-to-int name))) (directory-files nnml-current-directory nil "^[0-9]+$" t))) ! (max-article (apply 'max active-articles)) article rest mod-time) (while articles (setq article (concat nnml-current-directory (int-to-string *************** *** 227,233 **** (setq rest (cons (car articles) rest)))) (setq articles (cdr articles))) (let ((active (nth 1 (assoc newsgroup nnml-group-alist)))) ! (setcar active (min active-articles)) (nnmail-save-active nnml-group-alist nnml-active-file)) (nnml-save-nov) rest)) --- 227,233 ---- (setq rest (cons (car articles) rest)))) (setq articles (cdr articles))) (let ((active (nth 1 (assoc newsgroup nnml-group-alist)))) ! (setcar active (apply 'min active-articles)) (nnmail-save-active nnml-group-alist nnml-active-file)) (nnml-save-nov) rest)) diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/lisp/nntp.el dgnus/lisp/nntp.el *** pub/dgnus/lisp/nntp.el Sun Mar 26 22:07:34 1995 --- dgnus/lisp/nntp.el Mon Mar 27 12:51:52 1995 *************** *** 64,70 **** If the number of the articles is greater than the value, verbose messages will be shown to indicate the current status.") ! (defvar nntp-buggy-select (memq system-type '(usg-unix-v fujitsu-uts)) "t if your select routine is buggy. If the select routine signals error or fall into infinite loop while waiting for the server response, the variable must be set to t. In --- 64,70 ---- If the number of the articles is greater than the value, verbose messages will be shown to indicate the current status.") ! (defvar nntp-buggy-select (memq system-type '(fujitsu-uts)) "t if your select routine is buggy. If the select routine signals error or fall into infinite loop while waiting for the server response, the variable must be set to t. In diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/readme dgnus/readme *** pub/dgnus/readme Sat Dec 31 23:46:40 1994 --- dgnus/readme Mon Dec 12 13:20:49 1994 *************** *** 1,67 **** ! This package contains a pre-release of (ding) Gnus, version 0.5. The ! lisp directory contains the source lisp files, and the texi directory ! contains an early draft of the Gnus info pages. ! ! IMPORTANT NOTE FOR NNML USERS: If you have used an earlier version of ! this package, you have to do the following: ! ! ESC ESC (load "nnml") ! M-x nnml-generate-nov-databases ! ! nnml will chew on your mail for a while, and then you can use Gnus ! again. Do not attempt to start Gnus before you have done this. ! ! (This note only applies to people who use nnml as a mail backedn.) ! ! ! Gnus is meant to be totally compatible with GNUS. But, alas, it ! probably isn't, which is one of the reasons for this pre-release. ! ! To use (ding) Gnus you first have to unpack the files, which you've ! obviously done, because you are reading this. ! ! You should definitely byte-compile the source files. To do that, you ! can simply say "make" in this directory. ! ! Then you have to tell Emacs where Gnus is. You might put something ! like ! ! (setq load-path (cons (expand-file-name "~/dgnus/lisp") load-path)) ! ! in your .emacs file, or wherever you keep such things. ! ! Note that (ding) Gnus and GNUS can not coexist in a single Emacs. They ! both use the same function and variable names. If you have been ! running GNUS in your Emacs, you should probably exit that Emacs and ! start a new one to fire up Gnus. ! ! Then you do a `M-x gnus', and everything should... uhm... it should ! work, but it might not. Set `debug-on-error' to t, and mail me the ! backtraces, or, better yet, find out why Gnus does something wrong, ! fix it, and send me the diffs. :-) ! ! There are three main things I want your help and input on: ! ! 1) Startup. Does eveything go smoothly, and why not? ! ! 2) Any errors while you read news normally? ! ! 3) Any errors if you do anything abnormal? ! ! 4) Features you do not like, or do like, but would like to tweak a ! bit, and features you would like to see. ! ! You do not have to send me typo corrections for the info pages. They ! are a very rough first draft - I haven't even read through it, ! although they should document all of Gnus, I think. ! ! I think I have implemented most of the deep-going changes that I'm ! going to. Things that will probably come in the future, but I haven't ! gotten around to yet is asynchronous posting/pre-fetch of headers and ! articles, better digest handling, a hierarchal Newsgroup buffer, ! allowing the user to provide Newsgroup headers from a function, and a ! few other things that I can't think of at the moment. Oh, and the ! mhspool backend doesn't work at all yet. ! ! Send any comments and all your bug fixes/complaints to ! `larsi@ifi.uio.no'. --- 1,3 ---- ! Ting som ligger under denne katalogen burde du ikke se så veldig mye ! på. Den nyeste (pre-)releasen av (ding) Gnus finner du under ! «~larsi/pub/dgnus». diff --exclude=*.elc --exclude=*~ --exclude=*-[0-9] --exclude=gnus --context --recursive pub/dgnus/texi/gnus.texi dgnus/texi/gnus.texi *** pub/dgnus/texi/gnus.texi Sun Mar 26 22:07:42 1995 --- dgnus/texi/gnus.texi Mon Mar 27 12:44:49 1995 *************** *** 123,128 **** --- 123,129 ---- @menu * Compatibility:: Just how compatible is (ding) Gnus with @sc{GNUS}? + * Gnus & hilit:: Old hilit19 code will not work with (ding) Gnus. * New Features:: A short description of all the new stuff in Gnus. * Newest Features:: Features so new that they haven't been written yet. @end menu *************** *** 190,195 **** --- 191,247 ---- @sc{GNUS} internals should suffer no problems. If problems occur, please let me know (@kbd{M-x gnus-bug}). + @node Gnus & hilit + @section Gnus & hilit + @cindex hilit + + @c Written by Sudish Joseph + + @code{gnus-visual} can be used to highlight the summary buffer. It + offers far more flexibility than hilit (since it has access to more + data; for eg., the article score) in deciding how to highlight a given + article. Also, highlight gets confused by the way Gnus manipulates the + summary buffer, leading to errors. Such errors may be detected by + looking for any hilit-specific functions in a *Backtrace* buffer. If + such a reference exists, you should be using the code below. + + On the other hand, @code{gnus-visual} makes no attempt to highlight the + article buffer, while hilit does a very good job of this. There is a + compatibility problem here though, since hilit uses + gnus-article-prepare-hook to do its magic. This hook is executed + @emph{before} headers are hidden, via + @code{gnus-article-hide-headers-if-wanted} which is run from + @code{gnus-article-display-hook}. The act of hiding the headers undoes + all of the hilighting already done. A similar effect occured in vanilla + @sc{GNUS 4.1} if @code{gnus-show-mime} was set to @code{t}, since + @sc{mime} processing too is done after this hook is executed. + + The solution here is to use @code{gnus-article-display-hook} for + highlighting (and for all purposes where you used + @code{gnus-article-prepare-hook} earlier). This hook is run after + @sc{mime} processing, and is the last thing done before actually + displaying the article. Add the code below to your @file{.gnus} file to + get the right functions onto the right hooks. + + @lisp + (add-hook 'gnus-startup-hook + '(lambda () + ;; gnus-visual is far better for summary highlighting + ;; also, hilit cannot handle a (ding) summary and will + ;; crash on you + (remove-hook 'gnus-summary-prepare-hook + 'hilit-rehighlight-buffer-quietly) + (remove-hook 'gnus-summary-prepare-hook 'hilit-install-line-hooks) + ;; this is too early for the purpose of highlighting + (remove-hook 'gnus-article-prepare-hook + 'hilit-rehighlight-buffer-quietly) + ;; use this instead. note that the final t is *essential*, + ;; this must be the last thing done + (add-hook 'gnus-article-display-hook + 'hilit-rehighlight-buffer-quietly t))) + @end lisp + + @node New Features @section New Features @cindex new features *************** *** 648,653 **** --- 700,708 ---- If non-@code{nil}, the startup message won't be displayed. That way, your boss might not notice thay you are reading news instead of doing your job. + @item gnus-no-groups-message + @vindex gnus-no-groups-message + Message displayed by Gnus when no groups are available. @end table @node The Group Buffer