-Mon Jul 10 10:44:46 1995 Lars Magne Ingebrigtsen <lingebri@sunscipw.cern.ch>
+Tue Jul 11 09:36:28 1995 Lars Magne Ingebrigtsen <lingebri@sunscipw.cern.ch>
+
+ * 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 <lingebri@sunscipw.cern.ch>
+
+ * gnus.el (gnus-summary-catchup-to-here): Don't mark current
+ article as read.
+
+Mon Jul 10 10:44:46 1995 Lars Magne Ingebrigtsen <lingebri@sunsci4.cern.ch>
+
+ * gnus.el: 0.93 is released.
* gnus-ems.el (gnus-ems-redefine): Redefine for XEmacs.
\f
(defvar gnus-cache-buffer nil)
+(defvar gnus-cache-removeable-articles nil)
\f
(setcar gnus-cache-buffer group)
(let ((file (gnus-cache-file-name group ".overview")))
(and (file-exists-p file)
- (insert-file-contents file)))))))
+ (insert-file-contents file))))))
+ (setq gnus-cache-removeable-articles nil))
;; Just save the overview buffer.
(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)
+ (cache-articles (gnus-cache-articles-in-group gnus-newsgroup-name))
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))))))
+ (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)
(setq prefix (car entry))))
prefix))
+(gnus-ems-redefine)
+
(provide 'gnus-cite)
;;; gnus-cite.el ends here
)
(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)
(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))
- (message "Please wait while we snoop your variables...")
- (sit-for 0)
(while files
(erase-buffer)
(setq dirs load-path)
(setq dirs nil)
(insert-file-contents file)
(goto-char (point-min))
- (or (re-search-forward "^;;* Internal variables" nil t)
+ (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))
(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.
+;; 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)
+ (while (string-match "!\\|`\\|\"\\|\\$\\|\\\\" file)
(progn
(setq ofile
(concat ofile (substring file 0 (match-beginning 0)) "\\"
["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]
+ ["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]
(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)
(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"
+(defconst gnus-version "(ding) Gnus v0.94"
"Version number for this version of Gnus.")
(defvar gnus-info-nodes
"Gnus variables saved in the quick startup file.")
(defvar gnus-overload-functions
- '((news-inews gnus-inews-news "rnewspost")
- (caesar-region gnus-caesar-region "rnews"))
+ '((news-inews gnus-inews-news "rnewspost"))
"Functions overloaded by gnus.
It is a list of `(original overload &optional file)'.")
(> (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."
+(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 "")) ; !!! Is this necessary?
- (gnus-overload-functions)
+ (let ((mail-header-separator ""))
(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)
+ (news-caesar-buffer-body arg)
(goto-char last)
(recenter 0))))))
(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)
+ art-group to-method sel-met)
(if (and (not to-newsgroup) (not select-method))
(setq to-newsgroup
(completing-read
(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)))
+ (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)
(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)))
+ (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)
(gnus-y-or-n-p
"Are you really, really, really sure you want to expunge? ")
(error "Phew!"))
- (let ((nnmail-expiry-wait 0)
+ (let ((nnmail-expiry-wait -1)
(nnmail-expiry-wait-function nil))
(gnus-summary-expire-articles)))
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))
+ (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)
(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)))))
-
\f
;; Basic ideas by emv@math.lsa.umich.edu (Edward Vielmetti)
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
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
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
(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))))
(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))))
* 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
(@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.
+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
@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
@section New Features
@cindex new features