*** pub/dgnus/lisp/gnus-cache.el Mon Jul 10 20:12:20 1995 --- dgnus/lisp/gnus-cache.el Tue Jul 11 15:28:11 1995 *************** *** 38,43 **** --- 38,44 ---- (defvar gnus-cache-buffer nil) + (defvar gnus-cache-removeable-articles nil) *************** *** 67,73 **** (setcar gnus-cache-buffer group) (let ((file (gnus-cache-file-name group ".overview"))) (and (file-exists-p file) ! (insert-file-contents file))))))) ;; Just save the overview buffer. --- 68,75 ---- (setcar gnus-cache-buffer group) (let ((file (gnus-cache-file-name group ".overview"))) (and (file-exists-p file) ! (insert-file-contents file)))))) ! (setq gnus-cache-removeable-articles nil)) ;; Just save the overview buffer. *************** *** 142,165 **** (or (header-xref headers) "")))) t)))) - (defvar gnus-cache-removeable-articles nil) - (defun gnus-cache-enter-remove-article (article) (setq gnus-cache-removeable-articles (cons article gnus-cache-removeable-articles))) (defun gnus-cache-possibly-remove-articles () (let ((articles gnus-cache-removeable-articles) article) (while articles (setq article (car articles) articles (cdr articles)) ! (gnus-cache-possibly-remove-article ! gnus-newsgroup-name article ! (memq article gnus-newsgroup-marked) ! (memq article gnus-newsgroup-dormant) ! (or (memq article gnus-newsgroup-unreads) ! (memq article gnus-newsgroup-unselected)))))) (defun gnus-cache-possibly-remove-article (group article ticked dormant unread) --- 144,169 ---- (or (header-xref headers) "")))) t)))) (defun gnus-cache-enter-remove-article (article) (setq gnus-cache-removeable-articles (cons article gnus-cache-removeable-articles))) (defun gnus-cache-possibly-remove-articles () (let ((articles gnus-cache-removeable-articles) + (cache-articles (gnus-cache-articles-in-group gnus-newsgroup-name)) article) (while articles (setq article (car articles) articles (cdr articles)) ! (if (memq article cache-articles) ! ;; The article was in the cache, so we see whether we are ! ;; supposed to remove it from the cache. ! (gnus-cache-possibly-remove-article ! gnus-newsgroup-name article ! (memq article gnus-newsgroup-marked) ! (memq article gnus-newsgroup-dormant) ! (or (memq article gnus-newsgroup-unreads) ! (memq article gnus-newsgroup-unselected))))))) (defun gnus-cache-possibly-remove-article (group article ticked dormant unread) *** pub/dgnus/lisp/gnus-cite.el Mon Jul 10 20:12:20 1995 --- dgnus/lisp/gnus-cite.el Tue Jul 11 15:25:51 1995 *************** *** 552,557 **** --- 552,559 ---- (setq prefix (car entry)))) prefix)) + (gnus-ems-redefine) + (provide 'gnus-cite) ;;; gnus-cite.el ends here *** pub/dgnus/lisp/gnus-ems.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/gnus-ems.el Tue Jul 11 15:25:51 1995 *************** *** 413,418 **** --- 413,435 ---- ) (defalias 'gnus-truncate-string 'truncate-string) + (defun gnus-cite-add-face (number prefix face) + ;; At line NUMBER, ignore PREFIX and add FACE to the rest of the line. + (if face + (let ((inhibit-point-motion-hooks t) + from to) + (goto-line number) + (if (boundp 'MULE) + (forward-char (chars-in-string prefix)) + (forward-char (length prefix))) + (skip-chars-forward " \t") + (setq from (point)) + (end-of-line 1) + (skip-chars-backward " \t") + (setq to (point)) + (if (< from to) + (overlay-put (make-overlay from to) 'face face))))) + (fset 'gnus-format-max-width (lambda (form length) *** pub/dgnus/lisp/gnus-msg.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/gnus-msg.el Tue Jul 11 15:25:46 1995 *************** *** 1657,1667 **** (interactive) (let ((files '("gnus.el" "gnus-msg.el" "gnus-score.el")) file dirs expr olist) (save-excursion (set-buffer (get-buffer-create " *gnus bug info*")) (buffer-disable-undo (current-buffer)) - (message "Please wait while we snoop your variables...") - (sit-for 0) (while files (erase-buffer) (setq dirs load-path) --- 1657,1667 ---- (interactive) (let ((files '("gnus.el" "gnus-msg.el" "gnus-score.el")) file dirs expr olist) + (message "Please wait while we snoop your variables...") + (sit-for 0) (save-excursion (set-buffer (get-buffer-create " *gnus bug info*")) (buffer-disable-undo (current-buffer)) (while files (erase-buffer) (setq dirs load-path) *************** *** 1675,1681 **** (setq dirs nil) (insert-file-contents file) (goto-char (point-min)) ! (or (re-search-forward "^;;* Internal variables" nil t) (error "Malformed sources in file %s" file)) (narrow-to-region (point-min) (point)) (goto-char (point-min)) --- 1675,1681 ---- (setq dirs nil) (insert-file-contents file) (goto-char (point-min)) ! (or (re-search-forward "^;;* *Internal variables" nil t) (error "Malformed sources in file %s" file)) (narrow-to-region (point-min) (point)) (goto-char (point-min)) *** pub/dgnus/lisp/gnus-uu.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/gnus-uu.el Tue Jul 11 13:26:58 1995 *************** *** 1520,1529 **** (append file gnus-uu-generated-file-list)))) ;; Inputs an action and a file and returns a full command, putting ! ;; ticks round the file name and escaping any ticks in the file name. (defun gnus-uu-command (action file) (let ((ofile "")) ! (while (string-match "`\\|\"\\|\\$\\|\\\\" file) (progn (setq ofile (concat ofile (substring file 0 (match-beginning 0)) "\\" --- 1520,1529 ---- (append file gnus-uu-generated-file-list)))) ;; Inputs an action and a file and returns a full command, putting ! ;; quotes round the file name and escaping any quotes in the file name. (defun gnus-uu-command (action file) (let ((ofile "")) ! (while (string-match "!\\|`\\|\"\\|\\$\\|\\\\" file) (progn (setq ofile (concat ofile (substring file 0 (match-beginning 0)) "\\" *** pub/dgnus/lisp/gnus-vis.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/gnus-vis.el Tue Jul 11 15:25:50 1995 *************** *** 442,448 **** ["Fetch parent of article" gnus-summary-refer-parent-article t] ["Fetch article with id..." gnus-summary-refer-article t] ["Stop page breaking" gnus-summary-stop-page-breaking t] ! ["Caesar rotate" gnus-summary-caesar-message t] ["Redisplay" gnus-summary-show-article t] ["Toggle header" gnus-summary-toggle-header t] ["Toggle MIME" gnus-summary-toggle-mime t] --- 442,448 ---- ["Fetch parent of article" gnus-summary-refer-parent-article t] ["Fetch article with id..." gnus-summary-refer-article t] ["Stop page breaking" gnus-summary-stop-page-breaking t] ! ["Rot 13" gnus-summary-caesar-message t] ["Redisplay" gnus-summary-show-article t] ["Toggle header" gnus-summary-toggle-header t] ["Toggle MIME" gnus-summary-toggle-mime t] *** pub/dgnus/lisp/gnus.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/gnus.el Tue Jul 11 15:25:50 1995 *************** *** 1229,1235 **** (defvar gnus-newsgroup-selected-overlay nil) (defvar gnus-article-mode-map nil) - (defvar caesar-translate-table nil) (defvar gnus-dribble-buffer nil) (defvar gnus-headers-retrieved-by nil) (defvar gnus-article-reply nil) --- 1229,1234 ---- *************** *** 1341,1347 **** (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "(ding) Gnus v0.93" "Version number for this version of Gnus.") (defvar gnus-info-nodes --- 1340,1346 ---- (defconst gnus-maintainer "gnus-bug@ifi.uio.no (The Gnus Bugfixing Girls + Boys)" "The mail address of the Gnus maintainers.") ! (defconst gnus-version "(ding) Gnus v0.94" "Version number for this version of Gnus.") (defvar gnus-info-nodes *************** *** 1374,1381 **** "Gnus variables saved in the quick startup file.") (defvar gnus-overload-functions ! '((news-inews gnus-inews-news "rnewspost") ! (caesar-region gnus-caesar-region "rnews")) "Functions overloaded by gnus. It is a list of `(original overload &optional file)'.") --- 1373,1379 ---- "Gnus variables saved in the quick startup file.") (defvar gnus-overload-functions ! '((news-inews gnus-inews-news "rnewspost")) "Functions overloaded by gnus. It is a list of `(original overload &optional file)'.") *************** *** 8254,8277 **** (> (prefix-numeric-value arg) 0))) (gnus-summary-select-article t 'force)) ! (defun gnus-summary-caesar-message (rotnum) ! "Caesar rotates all letters of current message by 13/47 places. ! With prefix arg, specifies the number of places to rotate each letter forward. ! Caesar rotates Japanese letters by 47 places in any case." (interactive "P") (gnus-set-global-variables) (gnus-summary-select-article) ! (let ((mail-header-separator "")) ; !!! Is this necessary? ! (gnus-overload-functions) (gnus-eval-in-buffer-window gnus-article-buffer (save-restriction (widen) - ;; We don't want to jump to the beginning of the message. - ;; `save-excursion' does not do its job. - (move-to-window-line 0) (let ((last (point))) ! (news-caesar-buffer-body rotnum) (goto-char last) (recenter 0)))))) --- 8252,8271 ---- (> (prefix-numeric-value arg) 0))) (gnus-summary-select-article t 'force)) ! (defun gnus-summary-caesar-message (arg) ! "Caesar rotate the current article by 13. ! The numerical prefix specifies how manu places to rotate each letter ! forward." (interactive "P") (gnus-set-global-variables) (gnus-summary-select-article) ! (let ((mail-header-separator "")) (gnus-eval-in-buffer-window gnus-article-buffer (save-restriction (widen) (let ((last (point))) ! (news-caesar-buffer-body arg) (goto-char last) (recenter 0)))))) *************** *** 8302,8308 **** (error "The current newsgroup does not support article moving")) (let ((articles (gnus-summary-work-articles n)) (prefix (gnus-group-real-prefix gnus-newsgroup-name)) ! art-group to-method) (if (and (not to-newsgroup) (not select-method)) (setq to-newsgroup (completing-read --- 8296,8302 ---- (error "The current newsgroup does not support article moving")) (let ((articles (gnus-summary-work-articles n)) (prefix (gnus-group-real-prefix gnus-newsgroup-name)) ! art-group to-method sel-met) (if (and (not to-newsgroup) (not select-method)) (setq to-newsgroup (completing-read *************** *** 8322,8329 **** (gnus-activate-newsgroup to-newsgroup) (error "No such group: %s" to-newsgroup)) (setq gnus-current-move-group to-newsgroup))) ! (setq to-method (or select-method (gnus-find-method-for-group ! to-newsgroup))) (or (gnus-check-backend-function 'request-accept-article (car to-method)) (error "%s does not support article copying" (car to-method))) (or (gnus-server-opened to-method) --- 8316,8323 ---- (gnus-activate-newsgroup to-newsgroup) (error "No such group: %s" to-newsgroup)) (setq gnus-current-move-group to-newsgroup))) ! (setq to-method (if select-method (list select-method "") ! (gnus-find-method-for-group to-newsgroup))) (or (gnus-check-backend-function 'request-accept-article (car to-method)) (error "%s does not support article copying" (car to-method))) (or (gnus-server-opened to-method) *************** *** 8455,8462 **** (gnus-activate-newsgroup to-newsgroup) (error "No such group: %s" to-newsgroup)) (setq gnus-current-move-group to-newsgroup))) ! (setq to-method (or select-method (gnus-find-method-for-group ! to-newsgroup))) (or (gnus-check-backend-function 'request-accept-article (car to-method)) (error "%s does not support article copying" (car to-method))) (or (gnus-server-opened to-method) --- 8449,8456 ---- (gnus-activate-newsgroup to-newsgroup) (error "No such group: %s" to-newsgroup)) (setq gnus-current-move-group to-newsgroup))) ! (setq to-method (if select-method (list select-method "") ! (gnus-find-method-for-group to-newsgroup))) (or (gnus-check-backend-function 'request-accept-article (car to-method)) (error "%s does not support article copying" (car to-method))) (or (gnus-server-opened to-method) *************** *** 8559,8565 **** (gnus-y-or-n-p "Are you really, really, really sure you want to expunge? ") (error "Phew!")) ! (let ((nnmail-expiry-wait 0) (nnmail-expiry-wait-function nil)) (gnus-summary-expire-articles))) --- 8553,8559 ---- (gnus-y-or-n-p "Are you really, really, really sure you want to expunge? ") (error "Phew!")) ! (let ((nnmail-expiry-wait -1) (nnmail-expiry-wait-function nil)) (gnus-summary-expire-articles))) *************** *** 9356,9364 **** If ALL is non-nil, also mark ticked and dormant articles as read." (interactive) (save-excursion ! (end-of-line) ! (gnus-summary-catchup all t (point)) ! (gnus-set-mode-line 'summary)) (gnus-summary-position-cursor)) (defun gnus-summary-catchup-all (&optional quietly) --- 9350,9360 ---- If ALL is non-nil, also mark ticked and dormant articles as read." (interactive) (save-excursion ! (and (zerop (forward-line -1)) ! (progn ! (end-of-line) ! (gnus-summary-catchup all t (point)) ! (gnus-set-mode-line 'summary)))) (gnus-summary-position-cursor)) (defun gnus-summary-catchup-all (&optional quietly) *************** *** 10835,10897 **** (switch-to-buffer gnus-summary-buffer 'norecord) (setq func (lookup-key (current-local-map) (this-command-keys))) (call-interactively func))) - - ;; caesar-region written by phr@prep.ai.mit.edu Nov 86 - ;; Modified by tower@prep Nov 86 - ;; Modified by umerin@flab.flab.Fujitsu.JUNET for ROT47. - - (defun gnus-caesar-region (&optional n) - "Caesar rotation of region by N, default 13, for decrypting netnews. - ROT47 will be performed for Japanese text in any case." - (interactive (if current-prefix-arg ; Was there a prefix arg? - (list (prefix-numeric-value current-prefix-arg)) - (list nil))) - (cond ((not (numberp n)) (setq n 13)) - (t (setq n (mod n 26)))) ;canonicalize N - (if (not (zerop n)) ; no action needed for a rot of 0 - (progn - (if (or (not (boundp 'caesar-translate-table)) - (not caesar-translate-table) - (/= (aref caesar-translate-table ?a) (+ ?a n))) - (let ((i 0) - (lower "abcdefghijklmnopqrstuvwxyz") - upper) - (gnus-message 9 "Building caesar-translate-table...") - (setq caesar-translate-table (make-vector 256 0)) - (while (< i 256) - (aset caesar-translate-table i i) - (setq i (1+ i))) - (setq lower (concat lower lower) - upper (upcase lower) - i 0) - (while (< i 26) - (aset caesar-translate-table (+ ?a i) (aref lower (+ i n))) - (aset caesar-translate-table (+ ?A i) (aref upper (+ i n))) - (setq i (1+ i))) - ;; ROT47 for Japanese text. - ;; Thanks to ichikawa@flab.fujitsu.junet. - (setq i 161) - (let ((t1 (logior ?O 128)) - (t2 (logior ?! 128)) - (t3 (logior ?~ 128))) - (while (< i 256) - (aset caesar-translate-table i - (let ((v (aref caesar-translate-table i))) - (if (<= v t1) (if (< v t2) v (+ v 47)) - (if (<= v t3) (- v 47) v)))) - (setq i (1+ i)))) - (gnus-message 9 "Building caesar-translate-table...done"))) - (let ((from (region-beginning)) - (to (region-end)) - (i 0) str len) - (setq str (buffer-substring from to)) - (setq len (length str)) - (while (< i len) - (aset str i (aref caesar-translate-table (aref str i))) - (setq i (1+ i))) - (goto-char from) - (delete-region from to) - (insert str))))) ;; Basic ideas by emv@math.lsa.umich.edu (Edward Vielmetti) --- 10831,10836 ---- *** pub/dgnus/lisp/nnbabyl.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/nnbabyl.el Tue Jul 11 15:25:43 1995 *************** *** 242,247 **** --- 242,250 ---- nnmail-expiry-wait)) (is-old t) rest) + (nnbabyl-request-list) + (setq nnbabyl-group-alist (nnmail-get-active)) + (save-excursion (set-buffer nnbabyl-mbox-buffer) (while articles *** pub/dgnus/lisp/nnfolder.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/nnfolder.el Tue Jul 11 15:25:44 1995 *************** *** 303,308 **** --- 303,311 ---- nnmail-expiry-wait)) (is-old t) rest) + (nnfolder-request-list) + (setq nnfolder-group-alist (nnmail-get-active)) + (save-excursion (set-buffer nnfolder-current-buffer) (while articles *** pub/dgnus/lisp/nnmbox.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/nnmbox.el Tue Jul 11 15:25:44 1995 *************** *** 234,239 **** --- 234,242 ---- nnmail-expiry-wait)) (is-old t) rest) + (nnmbox-request-list) + (setq nnmbox-group-alist (nnmail-get-active)) + (save-excursion (set-buffer nnmbox-mbox-buffer) (while articles *** pub/dgnus/lisp/nnmh.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/nnmh.el Tue Jul 11 15:25:45 1995 *************** *** 254,259 **** --- 254,262 ---- (max-article (and active-articles (apply 'max active-articles))) (is-old t) article rest mod-time) + (nnmh-request-list) + (setq nnmh-group-alist (nnmail-get-active)) + (while (and articles is-old) (setq article (concat nnmh-current-directory (int-to-string (car articles)))) *** pub/dgnus/lisp/nnml.el Mon Jul 10 20:12:21 1995 --- dgnus/lisp/nnml.el Tue Jul 11 15:25:43 1995 *************** *** 271,276 **** --- 271,279 ---- (max-article (and active-articles (apply 'max active-articles))) (is-old t) article rest mod-time) + (nnml-request-list) + (setq nnml-group-alist (nnmail-get-active)) + (while (and articles is-old) (setq article (concat nnml-current-directory (int-to-string (car articles)))) *** pub/dgnus/lisp/ChangeLog Mon Jul 10 20:12:23 1995 --- dgnus/lisp/ChangeLog Tue Jul 11 15:25:46 1995 *************** *** 1,4 **** ! Mon Jul 10 10:44:46 1995 Lars Magne Ingebrigtsen * gnus-ems.el (gnus-ems-redefine): Redefine for XEmacs. --- 1,33 ---- ! Tue Jul 11 09:36:28 1995 Lars Magne Ingebrigtsen ! ! * gnus-msg.el (gnus-debug): A `sit-for' may sometimes change ! active buffer. ! ! * gnus-ems.el (gnus-ems-redefine): Mule redefinition. ! ! * gnus.el (gnus-summary-respool-article): Didn't allow respooling. ! ! ! * gnus-uu.el (gnus-uu-command): Also escape !s. ! ! * gnus-cache.el (gnus-cache-change-buffer): Reset ! gnus-cache-removeable-articles. ! (gnus-cache-possibly-remove-articles): Don't stat everything ! between heaven and earth. ! ! * gnus.el (gnus-summary-expire-articles-now): Use -1 as the expiry ! wait period. ! (gnus-summary-caesar-message): Changed somewhat. Removed all ! caesar code from gnus - use the functions in rnews.el instead. ! ! Mon Jul 10 20:42:14 1995 Lars Magne Ingebrigtsen ! ! * gnus.el (gnus-summary-catchup-to-here): Don't mark current ! article as read. ! ! Mon Jul 10 10:44:46 1995 Lars Magne Ingebrigtsen ! ! * gnus.el: 0.93 is released. * gnus-ems.el (gnus-ems-redefine): Redefine for XEmacs. *** pub/dgnus/texi/gnus.texi Mon Jul 10 20:12:24 1995 --- dgnus/texi/gnus.texi Tue Jul 11 09:51:11 1995 *************** *** 119,125 **** * Why?:: What's the point of Gnus? * Compatibility:: Just how compatible is (ding) Gnus with @sc{gnus}? * Contributors:: Oodles of people. - * 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 --- 119,124 ---- *************** *** 193,199 **** (@code{gnus-group-prepare-hook}, @code{gnus-summary-prepare-hook} and @code{gnus-summary-article-hook}). (Well, at the very least the first two.) Gnus provides various integrated functions for highlighting. ! These are faster and more accurate. Packages like @code{expire-kill} will no longer work. As a matter of fact, you should probably remove all old @sc{gnus} packages (and other --- 192,200 ---- (@code{gnus-group-prepare-hook}, @code{gnus-summary-prepare-hook} and @code{gnus-summary-article-hook}). (Well, at the very least the first two.) Gnus provides various integrated functions for highlighting. ! These are faster and more accurate. To make life easier for everybody, ! Gnus will by default remove all hilit calls from all hilit hooks. ! Uncleanliness! Away! Packages like @code{expire-kill} will no longer work. As a matter of fact, you should probably remove all old @sc{gnus} packages (and other *************** *** 267,312 **** Cringle, Geoffrey T. Dairiki and Andrew Eskilsson have all contributed code and suggestions. @end itemize - - - @node Gnus & hilit - @section Gnus & hilit - @cindex hilit - - @c Written by Sudish Joseph - - @code{gnus-vis} can be used to highlight the summary buffer. It - offers far more flexibility than hilit (since it has access to more - data; eg. the article score) in deciding how to highlight a given - article. Also, hilit 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 the @code{*Backtrace*} - buffer. If such a reference exists, you should be using the code below. - - You can also get @code{gnus-vis} to highlight the article buffer, so - you should get rid of all hilit-specific Gnus calls. - - Add the code below to your @file{.gnus} file to remove all the hilit - crud: - - @lisp - (add-hook 'gnus-startup-hook - '(lambda () - ;; gnus-vis 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) - (setq gnus-mark-article-hook '(gnus-summary-mark-unread-as-read)) - ;; 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 - 'gnus-article-maybe-highlight t))) - @end lisp @node New Features --- 268,273 ----