Synch with Oort Gnus.
+2001-04-09 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * lisp/gnus-vers.el (gnus-revision-number): Increment to 10.
+
2001-04-03 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp>
* lisp/nnshimbun.el (nnshimbun-type-definition: Follow changes in
+2001-04-09 03:55:09 Katsumi Yamaoka <yamaoka@jpl.org>
+
+ * gnus-start.el (gnus-read-newsrc-el-file): Work with Semi-gnus.
+
+2001-04-05 21:43:25 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-sum.el (gnus-update-summary-mark-positions): Use a valid
+ date.
+
+2001-04-04 16:13:17 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-group.el (gnus-group-quit): Check that the dribble buffer
+ lives.
+
2001-04-02 00:40:12 Lars Magne Ingebrigtsen <larsi@gnus.org>
+ * gnus-art.el (gnus-parse-news-url): New function.
+ (gnus-button-handle-news): New function.
+ (gnus-button-alist): Point to new functions.
+
+ * gnus-group.el (gnus-group-quit): Only mark buffer in non-empty.
+
+ * gnus-start.el (gnus-read-newsrc-el-file): Nix out
+ gnus-format-specs.
+
* message.el (message-check-news-header-syntax): Question even
when Gnus doesn't know the group names.
(message-send-news): Clean up.
:type 'regexp)
(defcustom gnus-button-alist
- `(("<\\(url:[>\n\t ]*?\\)?news:[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>"
- 0 t gnus-button-message-id 2)
- ("\\bnews:\\([^>\n\t ]*@[^>)!;:,\n\t ]*\\)" 0 t gnus-button-message-id 1)
+ `(("<\\(url:[>\n\t ]*?\\)?\\(nntp\\|news\\):[>\n\t ]*\\([^>\n\t ]*@[^>\n\t ]*\\)>"
+ 0 t gnus-button-handle-news 3)
+ ("\\b\\(nntp\\|news\\):\\([^>\n\t ]*@[^>)!;:,\n\t ]*\\)" 0 t
+ gnus-button-handle-news 2)
("\\(\\b<\\(url:[>\n\t ]*\\)?news:[>\n\t ]*\\(//\\)?\\([^>\n\t ]*\\)>\\)"
1 t
gnus-button-fetch-group 4)
(gnus-message 1 "You must define `%S' to use this button"
(cons fun args)))))))
+(defun gnus-parse-news-url (url)
+ (let (scheme server group message-id articles)
+ (with-temp-buffer
+ (insert url)
+ (goto-char (point-min))
+ (when (looking-at "\\([A-Za-z]+\\):")
+ (setq scheme (match-string 1))
+ (goto-char (match-end 0)))
+ (when (looking-at "//\\([^/]+\\)/")
+ (setq server (match-string 1))
+ (goto-char (match-end 0)))
+
+ (cond
+ ((looking-at "\\(.*@.*\\)")
+ (setq message-id (match-string 1)))
+ ((looking-at "\\([^/]+\\)/\\([-0-9]+\\)")
+ (setq group (match-string 1)
+ articles (split-string (match-string 2) "-")))
+ ((looking-at "\\([^/]+\\)/?")
+ (setq group (match-string 1)))
+ (t
+ (error "Unknown news URL syntax"))))
+ (list scheme server group message-id articles)))
+
+(defun gnus-button-handle-news (url)
+ "Fetch a news URL."
+ (destructuring-bind (scheme server group message-id articles)
+ (gnus-parse-news-url url)
+ (cond
+ (message-id
+ (save-excursion
+ (set-buffer gnus-summary-buffer)
+ (if server
+ (let ((gnus-refer-article-method (list (list 'nntp server))))
+ (gnus-summary-refer-article message-id))
+ (gnus-summary-refer-article message-id))))
+ (group
+ (gnus-button-fetch-group url)))))
+
(defun gnus-button-message-id (message-id)
"Fetch MESSAGE-ID."
(save-excursion
(file-name-nondirectory gnus-current-startup-file))))
(gnus-run-hooks 'gnus-exit-gnus-hook)
(gnus-configure-windows 'group t)
- (gnus-dribble-enter
- ";;; Gnus was exited on purpose without saving the .newsrc files.")
+ (when (and (gnus-buffer-live-p gnus-dribble-buffer)
+ (not (zerop (save-excursion
+ (set-buffer gnus-dribble-buffer)
+ (buffer-size)))))
+ (gnus-dribble-enter
+ ";;; Gnus was exited on purpose without saving the .newsrc files."))
(gnus-dribble-save)
(gnus-close-backends)
(gnus-clear-system)
(let ((gnus-summary-line-format-spec spec)
(gnus-newsgroup-downloadable '((0 . t))))
(gnus-summary-insert-line
- (make-full-mail-header 0 "" "nobody" "" "" "" 0 0 "" nil)
+ (make-full-mail-header 0 "" "nobody"
+ "05 Apr 2001 23:33:09 +0400"
+ "" "" 0 0 "" nil)
0 nil 128 t nil "" nil 1)
(goto-char (point-min))
(setq pos (list (cons 'unread (and (search-forward "\200" nil t)
(require 'product)
(provide 'gnus-vers)
-(defconst gnus-revision-number "09"
+(defconst gnus-revision-number "10"
"Revision number for this version of gnus.")
;; Product information of this gnus.
+2001-04-07 Ryan Yeske <rcyeske@vcn.bc.ca>
+
+ * gnus.texi (Splitting in IMAP): Fix.
+
+2001-04-07 Jesper Harder <harder@ifa.au.dk>
+
+ * gnus.texi (More Threading): Fix.
+
2001-04-01 00:32:46 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (S): Renamed.
@item gnus-thread-ignore-subject
@vindex gnus-thread-ignore-subject
\e$B;~!9!"C/$+$,%9%l%C%I$N??Cf$GI=Bj$rJQ99$9$k$3$H$,$"$j$^$9!#$b$7$3$NJQ?t\e(B
-\e$B$,\e(B @code{nil} \e$B$G$J$$$H!"I=Bj$NJQ99$OL5;k$5$l$^$9!#$b$7\e(B @code{nil} \e$B$@$H!"\e(B
-\e$B$3$l$,%G%#%U%)%k%H$G$9$,!"I=Bj$NJQ99$r$9$k$HJL$N%9%l%C%I$K$J$j$^$9!#\e(B
+\e$B$,\e(B @code{nil} \e$B$G$J$$$H!"$3$l$,%G%#%U%)%k%H$G$9$,!"I=Bj$NJQ99$OL5;k$5$l$^\e(B
+\e$B$9!#$b$7\e(B @code{nil} \e$B$@$H!"I=Bj$NJQ99$r$9$k$HJL$N%9%l%C%I$K$J$j$^$9!#\e(B
@item gnus-thread-indent-level
@vindex gnus-thread-indent-level
\e$B%H$G!":G=i$NMWAG$,\e(B @code{:} \e$B$G$"$k$H!"FsHVL\$NMWAG$,\e(B @var{args} \e$B$r0z?t$H\e(B
\e$B$7$F4X?t$H$7$F8F$P$l$^$9!#4X?t$O\e(B @var{split} \e$B$rJV$9$Y$-$G$9!#\e(B
+@cindex body split
\e$BNc$($P0J2<$N4X?t$O!"5-;v$N%\%G%#$K4p$E$$$?J,3d$K;H$($k$G$7$g$&\e(B:
@lisp
"string.group")))
@end lisp
+@code{:} \e$B$,;H$o$l$k$H$-!"%P%C%U%!\e(B @samp{" *nnmail incoming*"} \e$B$O%a%C%;!<\e(B
+\e$B%8$NItJ,$K69$a$i$l$^$9!#\e(B
+
@item
@code{(! @var{func} @var{split})}: \e$BJ,3d$,%j%9%H$G!":G=i$NMWAG\e(B
\e$B$,\e(B @code{!} \e$B$G$"$k$H\e(B @var{split} \e$B$,<B9T$5$l!"\e(B
\e$B$3$l$O\e(B nnimap \e$B%a!<%j%s%0%j%9%H$+$i$NA4$F$N5-;v$r%a!<%k%\%C%/\e(B
\e$B%9\e(B INBOX.nnimap \e$B$KF~$l!"\e(BSubject: \e$B9T$K\e(B MAKE MONEY \e$B$N$"$kA4$F$N5-;v\e(B
-\e$B$r\e(B INBOX.spam \e$B$KF~$l!"$=$NB>A4$F$N$b$N$r\e(B INBOX.private \e$B$KF~$l$^$9!#\e(B
+\e$B$r\e(B INBOX.junk \e$B$KF~$l!"$=$NB>A4$F$N$b$N$r\e(B INBOX.private \e$B$KF~$l$^$9!#\e(B
\e$B:G=i$NJ8;zNs$O!"\e(Breplace-match \e$B$G9gCW$7$?%F%-%9%H$+$iI{I=8=$rA^F~$9$k$H$-\e(B
\e$B$K;HMQ$5$l$k$N$HF1$8$h$&$J!"\e(B`\\1' \e$B7A<0$r4^$`$3$H$,$G$-$^$9!#Nc$($P\e(B:
@item gnus-thread-ignore-subject
@vindex gnus-thread-ignore-subject
Sometimes somebody changes the subject in the middle of a thread. If
-this variable is non-@code{nil}, the subject change is ignored. If it
-is @code{nil}, which is the default, a change in the subject will result
-in a new thread.
+this variable is non-@code{nil}, which is the default, the subject
+change is ignored. If it is @code{nil}, a change in the subject will
+result in a new thread.
@item gnus-thread-indent-level
@vindex gnus-thread-indent-level
be called as a function with @var{args} given as arguments. The
function should return a @var{split}.
+@cindex body split
For instance, the following function could be used to split based on the
body of the messages:
"string.group")))
@end lisp
+The @samp{" *nnmail incoming*"} is narrowed to the message in question
+when the @code{:} function is run.
+
@item
@code{(! @var{func} @var{split})}: If the split is a list, and the first
element is @code{!}, then SPLIT will be processed, and FUNC will be
This will put all articles from the nnimap mailing list into mailbox
INBOX.nnimap, all articles containing MAKE MONEY in the Subject: line
-into INBOX.spam and everything else in INBOX.private.
+into INBOX.junk and everything else in INBOX.private.
The first string may contain `\\1' forms, like the ones used by
replace-match to insert sub-expressions from the matched text. For