From owner-cvs-all Fri Nov 3 13:21:46 2000 Delivered-To: cvs-all@freebsd.org Received: from granger.mail.mindspring.net (granger.mail.mindspring.net [207.69.200.148]) by hub.freebsd.org (Postfix) with ESMTP id 1D85937B479; Fri, 3 Nov 2000 13:21:42 -0800 (PST) Received: from silvia.hip.berkeley.edu (sji-ca5-234.ix.netcom.com [209.109.234.234]) by granger.mail.mindspring.net (8.9.3/8.8.5) with ESMTP id QAA18980; Fri, 3 Nov 2000 16:21:18 -0500 (EST) Received: (from asami@localhost) by silvia.hip.berkeley.edu (8.11.1/8.11.0) id eA3LIeD38866; Fri, 3 Nov 2000 13:18:40 -0800 (PST) (envelope-from asami@cs.berkeley.edu) Date: Fri, 3 Nov 2000 13:18:40 -0800 (PST) Message-Id: <200011032118.eA3LIeD38866@silvia.hip.berkeley.edu> X-Authentication-Warning: silvia.hip.berkeley.edu: asami set sender to asami@cs.berkeley.edu using -f To: taoka@FreeBSD.org Cc: ports-jp@jp.FreeBSD.org, cvs-all@FreeBSD.org In-reply-to: <200011031501.HAA65475@freefall.freebsd.org> (message from Satoshi Taoka on Fri, 3 Nov 2000 07:01:53 -0800 (PST)) Subject: Re: cvs commit: ports/news Makefile ports/news/t-gnus-emacs20 Makefile distinfo pkg-comment pkg-descr pkg-message pkg-plist.emacs20 pkg-plist.mule pkg-plist.xemacs21-mule ports/news/t-gnus-emacs20/files patch-aa patch-ab patch-ac patch-ad patch-ae patch-af ... From: asami@FreeBSD.org (Satoshi - Ports Wraith - Asami) References: <200011031501.HAA65475@freefall.freebsd.org> User-Agent: SEMI/1.13.7 (Awazu) FLIM/1.13.2 (Kasanui) Emacs/20.7 (i386--freebsd) MULE/4.0 (=?ISO-2022-JP?B?GyRCMlYxYxsoQg==?=) MIME-Version: 1.0 (generated by SEMI 1.13.7 - "Awazu") Content-Type: text/plain; charset=ISO-2022-JP Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG * Log: * t-gnus for emacs20, mule or xemacs21-mule is a kind of gnus using SEMI * for MIME どうもありがとうございます。emacs-20.7のgnusよりはるかに素晴らしいです ね。これでサブジェクトの日本語とかがフックなしでもちゃんと表示されるよ うになりましたし、以前騒いでいたRMAILの日本語を読むと文字コードがぶっ 飛ぶ問題(そのためにgnus-article-display-hook で記事に /bin/cat をかけ ていたという...)もなくなりました。 ところで、2点だけ。infoファイルが"gnus"等の名前でインストールされるの はちょっとまずくないでしょうか。このままだとemacsのものを書き換えてし まいます。あと、内容的に普通のgnusと具体的に(変数名とか)どう違うのか を書いてもらうと助かると思うんですが、これはt-gnusの作者の方に言うべき ことですね。 もう一つはnnbabyl.elのことで、古い未読メッセージがあるとメールグループ からq(したときに走るexpire)が異様に遅くなるという問題があります。こ れは記事がどのニュースグループに属しているかを繰り返しRMAILファイルを 読んで探しているからで、以前これを直すパッチを作ってgnusの作者の方に送っ たんですがなしのつぶてです。このt-gnusでも直っていないようですので、こ れをportに入れるとともに、t-gnusの作者の方に伝えていただけますでしょう か。 あさみ --- From: asami@FreeBSD.org (Satoshi Asami) Subject: faster expiry in nnbabyl To: bugs@gnus.org (The Gnus Bugfixing Girls + Boys) Date: 12 Apr 2000 15:20:29 -0700 Message-ID: X-Mailer: Gnus v5.7/Emacs 20.6 Girls and Boys, This is not a bug report but rather an improvement suggestion. Currently, expiring mails when you are using nnbabyl (RMAIL format mailboxes) is horrendously slow if you have an old unread mail. The expiry code searches a large part of the RMAIL buffer over and over to see whether a certain article is in the group. Since the article numbers it searches start from the smallest still-known-to-be-alive article (basically the oldest unread mail) and increases by one each time, it will potentially have to search a large portion of the buffer (starting from where the previous search ended) hundreds of times even when you have only one old article and everything in-between is gone. I have changed it to go through the buffer once at the beginning to create a list (called "article-list" in the function) and then using "member" to check whether a particular article is still alive. It will search through the buffer for it only if it is known to be there. Admittedly I'm no lisp programmer so the code is ugly, but at least it works. And now instead of waiting 30 minutes on my old P6-200 after I press "q" in a large mail group, I only have to wait a few seconds. :) Satoshi ------- (deffoo nnbabyl-request-expire-articles (articles newsgroup &optional server force) (nnbabyl-possibly-change-newsgroup newsgroup server) (let* ((is-old t) rest article-list) (nnmail-activate 'nnbabyl) (save-excursion (set-buffer nnbabyl-mbox-buffer) (gnus-set-text-properties (point-min) (point-max) nil) (goto-char (point-min)) (while (re-search-forward (concat "\nX-Gnus-Newsgroup: " nnbabyl-current-group ":\\([0-9]+\\)") nil t) (setq article-list (cons (string-to-int (buffer-substring (match-beginning 1) (match-end 1))) article-list))) (while (and articles is-old) (goto-char (point-min)) (when (member (car articles) article-list) (search-forward (nnbabyl-article-string (car articles)) nil t) (if (setq is-old (nnmail-expired-article-p newsgroup (buffer-substring (point) (progn (end-of-line) (point))) force)) (progn (nnheader-message 5 "Deleting article %d in %s..." (car articles) newsgroup) (nnbabyl-delete-mail)) (push (car articles) rest))) (setq articles (cdr articles))) (save-buffer) ;; Find the lowest active article in this group. (let ((active (nth 1 (assoc newsgroup nnbabyl-group-alist)))) (goto-char (point-min)) (while (and (not (search-forward (nnbabyl-article-string (car active)) nil t)) (<= (car active) (cdr active))) (setcar active (1+ (car active))) (goto-char (point-min)))) (nnmail-save-active nnbabyl-group-alist nnbabyl-active-file) (nconc rest articles)))) To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message