2002-01-21 Katsumi Yamaoka <yamaoka@jpl.org>
+ * lisp/gnus-vers.el: T-gnus 6.15.6 revision 00.
+
+ * lisp/nnheader.el (std11-unfold-region): New function copied from
+ `rfc2047-unfold-region'.
+ (std11-unfold-field): New function.
+ (mail-header-unfold-field): Alias to `std11-unfold-field'.
+
+2002-01-21 Katsumi Yamaoka <yamaoka@jpl.org>
+
* lisp/gnus-vers.el (gnus-revision-number): Increment to 02 (synch
with the released version of Oort Gnus v0.05).
2002-01-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
- * gnus-util.el (gnus-completing-read): Remove
+ * nnfolder.el (nnfolder-request-accept-article): Unfold
+ x-from-line.
+ (nnfolder-request-replace-article): Ditto.
+
+2002-01-20 Nevin Kapur <nevin@jhu.edu>
+
+ * gnus-group.el (gnus-group-best-unread-group): Use the right
+ positioning function.
+
+2002-01-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * smiley-ems.el (smiley-region): Use new function.
+ (smiley-update-cache): Use general image functions.
+ (smiley-region): Use general functions.
+
+ * gnus-util.el (gnus-graphic-display-p): New function.
+
+ * nnmail.el (nnmail-article-group): Allow outputting traces of
+ non-strings.
+
+ * nndoc.el (nndoc-type-alist): Rules for exim bounces.
+ (nndoc-exim-bounce-type-p): New function.
+
+ * message.el (message-dont-send): Doc fix.
+
+ * gnus-util.el (gnus-completing-read): Remove
inherit-input-method.
+ * gnus-art.el (gnus-treat-smiley): Doc fix.
+
+ * gnus-agent.el (gnus-agent-fetch-headers): Ignore seen and recent
+ articles.
+
+2002-01-19 Simon Josefsson <jas@extundo.com>
+
+ * imap.el (imap-gssapi-open): Don't wait for logout to complete.
+ (imap-kerberos4-open): Ditto.
+ (imap-open): Set port correctly, don't set auth.
+
+2002-01-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.el (gnus-version-number): Bump version number.
+
2002-01-20 05:33:30 Lars Magne Ingebrigtsen <lars@ingebrigtsen.no>
* gnus.el: Oort Gnus v0.05 is released.
(setq articles (nthcdr i articles))))
;; add article with marks to list of article headers we want to fetch.
(dolist (arts (gnus-info-marks (gnus-get-info group)))
- (setq articles (gnus-range-add articles (cdr arts))))
+ (unless (memq (car arts) '(seen recent))
+ (setq articles (gnus-range-add articles (cdr arts)))))
(setq articles (sort (gnus-uncompress-sequence articles) '<))
;; Remove known articles.
(when (gnus-agent-load-alist group)
(goto-char (point-max))))))
(defun gnus-treat-smiley ()
- "Display textual emoticons (\"smileys\") as small graphical icons."
+ "Toggle display of textual emoticons (\"smileys\") as small graphical icons."
(interactive)
(unless (featurep 'xemacs)
(when (and (>= emacs-major-version 21)
(autoload 'gnus-xmas-redefine "gnus-xmas")
(autoload 'appt-select-lowest-window "appt"))
-(cond ((featurep 'xemacs)
- (autoload 'smiley-region "smiley"))
- ;; override XEmacs version
- ((>= emacs-major-version 21)
- (autoload 'smiley-region "smiley-ems"))
- (t
- (autoload 'smiley-region "smiley-mule")))
+(if (or (featurep 'xemacs)
+ (>= emacs-major-version 21))
+ (autoload 'smiley-region "smiley-ems")
+ (autoload 'smiley-region "smiley-mule"))
(defun gnus-kill-all-overlays ()
"Delete all overlays in the current buffer."
(forward-line 1))
(when best-point
(goto-char best-point))
- (gnus-summary-position-point)
+ (gnus-group-position-point)
(and best-point (gnus-group-group-name))))
(defun gnus-group-first-unread-group ()
history
(car (symbol-value history))))
+(defun gnus-graphic-display-p ()
+ (or (and (fboundp 'display-graphic-p)
+ (display-graphic-p))
+ ;;;!!!This is bogus. Fixme!
+ (and (featurep 'xemacs)
+ t)))
+
(provide 'gnus-util)
;;; gnus-util.el ends here
(require 'product)
(provide 'gnus-vers)
-(defconst gnus-revision-number "02"
+(defconst gnus-revision-number "00"
"Revision number for this version of gnus.")
;; Product information of this gnus.
(product-provide 'gnus-vers
(product-define "T-gnus" nil
- (list 6 15 5
+ (list 6 15 6
(string-to-number gnus-revision-number))))
-(defconst gnus-original-version-number "0.05"
+(defconst gnus-original-version-number "0.06"
"Version number for this version of Gnus.")
(provide 'running-pterodactyl-gnus-0_73-or-later)
(not (string-match "failed" response))))
(setq done process)
(if (memq (process-status process) '(open run))
- (imap-send-command-wait "LOGOUT"))
+ (imap-send-command "LOGOUT"))
(delete-process process)
nil)))))
done))
(not (string-match "failed" response))))
(setq done process)
(if (memq (process-status process) '(open run))
- (imap-send-command-wait "LOGOUT"))
+ (imap-send-command "LOGOUT"))
(delete-process process)
nil)))))
done))
(set-buffer-multibyte nil)
(buffer-disable-undo)
(setq imap-server (or server imap-server))
- (setq imap-port imap-port)
- (setq imap-auth imap-auth)
+ (setq imap-port (or port imap-port))
+ (setq imap-auth (or auth imap-auth))
(message "imap: Reconnecting with stream `%s'..." stream)
(if (null (let ((imap-stream stream))
(imap-open-1 (current-buffer))))
t)))
(defun message-dont-send ()
- "Don't send the message you have been editing."
+ "Don't send the message you have been editing.
+Instead, just auto-save the buffer and then bury it."
(interactive)
(message-save-drafts)
(let ((actions message-postpone-actions)
One of `mbox', `babyl', `digest', `news', `rnews', `mmdf', `forward',
`rfc934', `rfc822-forward', `mime-parts', `standard-digest',
`slack-digest', `clari-briefs', `nsmail', `outlook', `oe-dbx',
-`mailman' or `guess'.")
+`mailman', `exim-bounce', or `guess'.")
(defvoo nndoc-post-type 'mail
"*Whether the nndoc group is `mail' or `post'.")
`((mmdf
(article-begin . "^\^A\^A\^A\^A\n")
(body-end . "^\^A\^A\^A\^A\n"))
+ (exim-bounce
+ (article-begin . "^------ This is a copy of the message, including all the headers. ------\n\n")
+ (body-end-function . nndoc-exim-bounce-body-end-function))
(nsmail
(article-begin . "^From - "))
(news
(insert "From: " "clari@clari.net (" (or from "unknown") ")"
"\nSubject: " (or subject "(no subject)") "\n")))
+(defun nndoc-exim-bounce-type-p ()
+ (and (re-search-forward "^------ This is a copy of the message, including all the headers. ------" nil t)
+ t))
+
+(defun nndoc-exim-bounce-body-end-function ()
+ (goto-char (point-max)))
+
(defun nndoc-mime-digest-type-p ()
(let ((case-fold-search t)
result art-group)
(goto-char (point-min))
(when (looking-at "X-From-Line: ")
+ (save-match-data
+ (mail-header-unfold-field))
(replace-match "From "))
(with-temp-buffer
(let ((nnmail-file-coding-system nnfolder-active-file-coding-system)
(save-excursion
(set-buffer buffer)
(goto-char (point-min))
- (let (xfrom)
- (while (re-search-forward "^X-From-Line: \\(.*\\)$" nil t)
- (setq xfrom (match-string 1))
- (gnus-delete-line))
- (goto-char (point-min))
- (if xfrom
- (insert "From " xfrom "\n")
- (unless (looking-at "From ")
- (insert "From nobody " (current-time-string) "\n"))))
+ (if (not (looking-at "X-From-Line: "))
+ (insert "From nobody " (current-time-string) "\n")
+ (save-match-data
+ (mail-header-unfold-field))
+ (replace-match "From "))
(nnfolder-normalize-buffer)
(set-buffer nnfolder-current-buffer)
(goto-char (point-min))
(defalias 'mail-header-fold-field 'std11-fold-field)
+ (defun-maybe std11-unfold-region (b e)
+ "Unfold lines in region B to E."
+ (save-restriction
+ (narrow-to-region b e)
+ (goto-char (point-min))
+ (let ((bol (save-restriction
+ (widen)
+ (gnus-point-at-bol)))
+ (eol (gnus-point-at-eol))
+ leading)
+ (forward-line 1)
+ (while (not (eobp))
+ (looking-at "[ \t]*")
+ (setq leading (- (match-end 0) (match-beginning 0)))
+ (if (< (- (gnus-point-at-eol) bol leading) 76)
+ (progn
+ (goto-char eol)
+ (delete-region eol (progn
+ (skip-chars-forward " \t\n\r")
+ (1- (point)))))
+ (setq bol (gnus-point-at-bol)))
+ (setq eol (gnus-point-at-eol))
+ (forward-line 1)))))
+
+ (defun-maybe std11-unfold-field ()
+ "Fold the current line."
+ (save-excursion
+ (save-restriction
+ (std11-narrow-to-field)
+ (std11-unfold-region (point-min) (point-max)))))
+
+ (defalias 'mail-header-unfold-field 'std11-unfold-field)
+
(defun-maybe std11-extract-addresses-components (string)
"Extract a list of full name and canonical address from STRING. Each
element looks like a list of the form (FULL-NAME CANONICAL-ADDRESS).
(not (assoc gname nnkiboze-newsrc)) ; It isn't registered
(numberp (car (symbol-value group))) ; It is active
(or (> nnkiboze-level 7)
- (and (setq glevel (nth 1 (nth 2 (gnus-gethash
- gname gnus-newsrc-hashtb))))
+ (and (setq glevel
+ (nth 1 (nth 2 (gnus-gethash
+ gname gnus-newsrc-hashtb))))
(>= nnkiboze-level glevel)))
(not (string-match "^nnkiboze:" gname)) ; Exclude kibozes
(push (cons gname (1- (car (symbol-value group))))
(nnheader-set-temp-buffer "*Split Trace*")
(gnus-add-buffer)
(dolist (trace (nreverse nnmail-split-trace))
- (insert trace "\n"))
+ (prin1 trace (current-buffer))
+ (insert "\n"))
(goto-char (point-min))
(gnus-configure-windows 'split-trace)
(set-buffer restore)))
;; A group name. Do the \& and \N subs into the string.
((stringp split)
(when nnmail-split-tracing
- (push (format "\"%s\"" split) nnmail-split-trace))
+ (push split nnmail-split-trace))
(list (nnmail-expand-newtext split)))
;; Junk the message.
(while (and (goto-char end-point)
(re-search-backward (cdr cached-pair) nil t))
(when nnmail-split-tracing
- (push (cdr cached-pair) nnmail-split-trace))
+ (push split nnmail-split-trace))
(let ((split-rest (cddr split))
(end (match-end 0))
;; The searched regexp is \(\(FIELD\).*\)\(VALUE\). So,
smiley-data-directory)))
(setq file nil)))
(when type
- (let ((image (find-image (list (list :type (intern type)
- :file file
- :ascent 'center)))))
+ (let ((image (gnus-create-image file (intern type) nil
+ :ascent 'center)))
(when image
(push (list (car elt) (cadr elt) image)
smiley-cached-regexp-alist)))))))
"Replace in the region `smiley-regexp-alist' matches with corresponding images.
A list of images is returned."
(interactive "r")
- (when (and (fboundp 'display-graphic-p)
- (display-graphic-p))
- (mapcar (lambda (o)
- (if (eq 'smiley (overlay-get o 'smiley))
- (delete-overlay o)))
- (overlays-in start end))
+ (when (gnus-graphic-display-p)
(unless smiley-cached-regexp-alist
(smiley-update-cache))
(save-excursion
(let ((beg (or start (point-min)))
- group overlay image images)
+ group image images string)
(dolist (entry smiley-cached-regexp-alist)
(setq group (nth 1 entry)
image (nth 2 entry))
(goto-char beg)
(while (re-search-forward (car entry) end t)
+ (setq string (match-string group))
+ (goto-char (match-end group))
+ (delete-region (match-beginning group) (match-end group))
(when image
(push image images)
(gnus-add-wash-type 'smiley)
(gnus-add-image 'smiley image)
- (add-text-properties
- (match-beginning group) (match-end group)
- `(display ,image
- mouse-face highlight
- smiley t
- help-echo "mouse-2: toggle smilies in buffer"
- keymap smiley-mouse-map)))))
+ (gnus-put-image image string))))
images))))
(defun smiley-toggle-buffer (&optional arg)
+2002-01-20 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus.texi (Document Groups): Added info on more doc types.
+ (More Threading): Move documentation here.
+
+2002-01-20 Simon Josefsson <jas@extundo.com>
+
+ * message.texi (Mailing Lists): Fix. From Love
+ <lha@stacken.kth.se>.
+
2002-01-20 Patric Mueller <bhaak@gmx.net>
* gnus.texi (Group Timestamp): Typo fix.
\e$B$3$l$,\e(B @code{nil} \e$B$G$J$$$H!"$9$Y$F$N%9%l%C%I$O35N,%P%C%U%!$,@8@.$5$l$?$H\e(B
\e$B$-$K1#$l$^$9!#\e(B
+\e$B$3$l$O=R8l;X<(;R$G$"$k$3$H$b$G$-$^$9\e(B (@pxref{Predicate Specifiers})\e$B!#Mx\e(B
+\e$BMQ$G$-$k=R8l\e(B
+\e$B$O\e(B @code{gnus-article-unread-p} \e$B$H\e(B @code{gnus-article-unseen-p} \e$B$G$9!#\e(B
+
+\e$B$3$l$ONc$G$9\e(B:
+
+@lisp
+(setq gnus-thread-hide-subtree
+ '(or gnus-article-unread-p
+ gnus-article-unseen-p))
+@end lisp
+
+(\e$B$3$l$O$+$J$j$P$+$2$?Nc$G$9!#$J$<$J$i$9$Y$F$N$^$@FI$^$l$?$3$H$,L5$$5-;v\e(B
+\e$B$OL$FI$G$b$"$k$+$i$J$N$G$9$,!"<g;]$O5b$_<h$C$F2<$5$$!#\e(B)
+
@item gnus-thread-expunge-below
@vindex gnus-thread-expunge-below
\e$B$3$N?t;z$h$j>/$J$$Am9gE*%9%3%"\e(B (@code{gnus-thread-score-function}) \e$B$r;}\e(B
\e$BE>Aw$5$l$?5-;v!#\e(B
@item nsmail
-Netscape mail box\e$B!#\e(B
+Netscape \e$B$N%a!<%k%\%C%/%9!#\e(B
-@item mime-digest
@item mime-parts
-MIME \e$BB>ItJ,%a%C%;!<%8\e(B (multipart) \e$B$G$9!#\e(B
+MIME \e$BItJ,%a%C%;!<%8\e(B (multipart)\e$B!#\e(B
@item standard-digest
\e$BI8=`\e(B (RFC 1153) \e$B$^$H$aAw$j7A<0!#\e(B
+@item mime-digest
+MIME \e$B$N$^$H$aAw$j%a%C%;!<%8!#\e(B
+
+@item lanl-gov-announce
+\e$B%m%9%"%i%b%99qN)8&5f=j\e(B (LANL) Gov Announce \e$B$+$i$NH/I=%a%C%;!<%8!#\e(B
+
+@item rfc822-forward
+RFC822 \e$B$GE>Aw$5$l$?%a%C%;!<%8!#\e(B
+
+@item outlook
+Outlook \e$B$N%a!<%k%\%C%/%9!#\e(B
+
+@item oe-dbx
+Outlook Express \e$B$N\e(B dbx \e$B%a!<%k%\%C%/%9!#\e(B
+
+@item exim-bounce
+Exim MTA \e$B$+$iD7$MJV$5$l$?%a%C%;!<%8!#\e(B
+
+@item forward
+\e$BHs8x<0$N5,B'$GE>Aw$5$l$?%a%C%;!<%8!#\e(B
+
+@item rfc934
+RFC934 \e$B7A<0$GE>Aw$5$l$?%a%C%;!<%8!#\e(B
+
+@item mailman
+mailman \e$B$N$^$H$aAw$j!#\e(B
+
+@item clari-briefs
+Clarinet \e$B$N%K%e!<%99`L\$rMWLs$7$?$^$H$aAw$j!#\e(B
+
@item slack-digest
\e$BHsI8=`$^$H$aAw$j7A<0\e(B --- \e$B$@$$$?$$$O$&$^$/%^%C%A$9$k$,!"$G$b07$$$O2<<j!#\e(B
@end table
\e$B$9!#$3$l$OAm$8$F$=$s$J$K8:$i$7$^$;$s!#$3$l$O!"5-;v$r$I$C$A$K$7$mFI$_$?$/\e(B
\e$B$J$$$H$$$&;v$r7hDj$9$kA0$K!">/$7$NItJ,$7$+8+$kI,MW$,L5$$$H$$$&;v$G$9!#\e(B
-@item gnus-threada-hide-subtree
+@item gnus-thread-hide-subtree
\e$B$3$l$,\e(B @code{nil} \e$B$G$J$1$l$P!"A4$F$N35N,%P%C%U%!$N%9%l%C%I$O=i$a$K1#$5$l\e(B
\e$B$^$9!#\e(B
-\e$B$3$l$O=R8l;X<(;R$G$"$k$3$H$b$G$-$^$9\e(B (@pxref{Predicate Specifiers})\e$B!#Mx\e(B
-\e$BMQ$G$-$k=R8l\e(B
-\e$B$O\e(B @code{gnus-article-unread-p} \e$B$H\e(B @code{gnus-article-unseen-p} \e$B$G$9!#\e(B
-
-\e$B$3$l$ONc$G$9\e(B:
-
-@lisp
-(setq gnus-thread-hide-subtree
- '(or gnus-article-unread-p
- gnus-article-unseen-p))
-@end lisp
-
-(\e$B$3$l$O$+$J$j$P$+$2$?Nc$G$9!#$J$<$J$i$9$Y$F$N$^$@FI$^$l$?$3$H$,L5$$5-;v\e(B
-\e$B$OL$FI$G$b$"$k$+$i$J$N$G$9$,!"<g;]$O5b$_<h$C$F2<$5$$!#\e(B)
-
@item gnus-updated-mode-lines
\e$B$3$l$,\e(B @code{nil} \e$B$G$"$k$H!"\e(Bgnus \e$B$O%P%C%U%!$N%b!<%I9T$K>pJs$rF~$l$^$;$s\e(B
\e$B$N$G!";~4V$r@aLs$G$-$k$G$7$g$&!#\e(B
If non-@code{nil}, all threads will be hidden when the summary buffer is
generated.
+This can also be a predicate specifier (@pxref{Predicate Specifiers}).
+Avaliable predicates are @code{gnus-article-unread-p} and
+@code{gnus-article-unseen-p}).
+
+Here's an example:
+
+@lisp
+(setq gnus-thread-hide-subtree
+ '(or gnus-article-unread-p
+ gnus-article-unseen-p))
+@end lisp
+
+(It's a pretty nonsensical example, since all unseen articles are also
+unread, but you get my drift.)
+
+
@item gnus-thread-expunge-below
@vindex gnus-thread-expunge-below
All threads that have a total score (as defined by
@item standard-digest
The standard (RFC 1153) digest format.
+@item mime-digest
+A MIME digest of messages.
+
+@item lanl-gov-announce
+Announcement messages from LANL Gov Announce.
+
+@item rfc822-forward
+A message forwarded according to RFC822.
+
+@item outlook
+The Outlook mail box.
+
+@item oe-dbx
+The Outlook Express dbx mail box.
+
+@item exim-bounce
+A bounce message from the Exim MTA.
+
+@item forward
+A message forwarded according to informal rules.
+
+@item rfc934
+An RFC934-forwarded message.
+
+@item mailman
+A mailman digest.
+
+@item clari-briefs
+A digest of Clarinet brief news items.
+
@item slack-digest
Non-standard digest format---matches most things, but does it badly.
@end table
If this is non-@code{nil}, all threads in the summary buffer will be
hidden initially.
-This can also be a predicate specifier (@pxref{Predicate Specifiers}).
-Avaliable predicates are @code{gnus-article-unread-p} and
-@code{gnus-article-unseen-p}.
-
-Here's an example:
-
-@lisp
-(setq gnus-thread-hide-subtree
- '(or gnus-article-unread-p
- gnus-article-unseen-p))
-@end lisp
-
-(It's a pretty nonsensical example, since all unseen articles are also
-unread, but you get my drift.)
-
@item gnus-updated-mode-lines
If this is @code{nil}, Gnus will not put information in the buffer mode
\e$B%W5-;v$N08@h$r;XDj$7$?$$$3$H$,$"$j$^$9!#\e(BMail-Followup-To (MFT) \e$B$O$^$5$K\e(B
\e$B$3$l$r2DG=$K$9$k$?$a$K:n$i$l$^$7$?!#$3$l$,Lr$KN)$D>l9g$NNc$rFs$D\e(B:
-@itemize
+@itemize @bullet
@item
\e$B%a!<%j%s%0%j%9%H$KEj9F$9$k?M$O!"JV;v$rEj9F<T$r4^$a$:$KC1$K%a!<%j%s%0%j%9\e(B
\e$B%H$@$1$KAw?.$9$Y$-$G$"$k$3$H$r!"\e(BMFT \e$B$r;H$C$FI=8=$9$k$3$H$,$G$-$^$9!#$3$l\e(B
was created to enable just this. Two example scenarios where this is
useful:
-@itemize
+@itemize @bullet
@item
A mailing list poster can use MFT to express that responses should be
sent to just the list, and not the poster as well. This will happen