From mboxrd@z Thu Jan 1 00:00:00 1970 X-Msuck: nntp://news.gmane.io/gmane.emacs.gnus.general/33011 Path: main.gmane.org!not-for-mail From: Dan Christensen Newsgroups: gmane.emacs.gnus.general Subject: Re: nnfolder NOV (was: Wishlist for oGnus) Date: 29 Oct 2000 21:49:19 -0500 Sender: owner-ding@hpc.uh.edu Message-ID: <87lmv7xcuo.fsf@scratchy.dhis.org> References: <2n3dhfw8v5.fsf_-_@tiger.jia.vnet> NNTP-Posting-Host: coloc-standby.netfonds.no Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: main.gmane.org 1035169195 22884 80.91.224.250 (21 Oct 2002 02:59:55 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Mon, 21 Oct 2002 02:59:55 +0000 (UTC) Return-Path: Original-Received: from spinoza.math.uh.edu (spinoza.math.uh.edu [129.7.128.18]) by mailhost.sclp.com (Postfix) with ESMTP id 76189D049A for ; Sun, 29 Oct 2000 22:00:43 -0500 (EST) Original-Received: from sina.hpc.uh.edu (lists@Sina.HPC.UH.EDU [129.7.3.5]) by spinoza.math.uh.edu (8.9.1/8.9.1) with ESMTP id VAB26229; Sun, 29 Oct 2000 21:00:31 -0600 (CST) Original-Received: by sina.hpc.uh.edu (TLB v0.09a (1.20 tibbs 1996/10/09 22:03:07)); Sun, 29 Oct 2000 20:59:52 -0600 (CST) Original-Received: from mailhost.sclp.com (postfix@66-209.196.61.interliant.com [209.196.61.66] (may be forged)) by sina.hpc.uh.edu (8.9.3/8.9.3) with ESMTP id UAA05593 for ; Sun, 29 Oct 2000 20:59:41 -0600 (CST) Original-Received: from pony.its.uwo.ca (pony.its.uwo.ca [129.100.2.63]) by mailhost.sclp.com (Postfix) with ESMTP id 3DF68D049A for ; Sun, 29 Oct 2000 22:00:02 -0500 (EST) Original-Received: from scratchy (jdc.math.uwo.ca [129.100.75.19]) by pony.its.uwo.ca (8.10.0/8.10.0) with ESMTP id e9U2xth14597 for ; Sun, 29 Oct 2000 21:59:55 -0500 (EST) Original-Received: from jdc by scratchy with local (Exim 3.16 #1 (Debian)) id 13q50h-0005UX-00; Sun, 29 Oct 2000 21:49:19 -0500 Original-To: ding@gnus.org In-Reply-To: <2n3dhfw8v5.fsf_-_@tiger.jia.vnet> Original-Lines: 57 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 Precedence: list X-Majordomo: 1.94.jlt7 Xref: main.gmane.org gmane.emacs.gnus.general:33011 X-Report-Spam: http://spam.gmane.org/gmane.emacs.gnus.general:33011 ShengHuo ZHU writes: > Robert Epprecht writes: > > > * A nnfolder like backend with .overview files. > > This would not only speed up things, but also allow nnir to work on it. > > Done, but unstable. > > (setq nnfolder-nov-is-evil t) disables the feature. > > ShengHuo When I run nnfolder-generate-active-file, I get the backtrace below. I am using Gnu emacs 20.7.2 and the latest version of Gnus from cvs. Dan Signaling: (wrong-type-argument stringp nil) mm-encode-coding-string(nil binary) (setq group (mm-encode-coding-string group nnmail-pathname-coding-system)) nnfolder-group-pathname(nil) (concat (nnfolder-group-pathname group) nnfolder-nov-file-suffix) (let ((nnfolder-directory ...)) (concat (nnfolder-group-pathname group) nnfolder-nov-file-suffix)) nnfolder-group-nov-pathname(nil) (set (make-local-variable (quote nnfolder-nov-buffer-file-name)) (nnfolder-group-nov-pathname nnfolder-current-group)) (save-excursion (set-buffer buffer) (set (make-local-variable ...) (nnfolder-group-nov-pathname nnfolder-current-group)) (erase-buffer) (when (file-exists-p nnfolder-nov-buffer-file-name) (nnheader-insert-file-contents nnfolder-nov-buffer-file-name))) (let ((buffer ...)) (save-excursion (set-buffer buffer) (set ... ...) (erase-buffer) (when ... ...)) (push (cons group buffer) nnfolder-nov-buffer-alist) buffer) (or (cdr (assoc group nnfolder-nov-buffer-alist)) (let (...) (save-excursion ... ... ... ...) (push ... nnfolder-nov-buffer-alist) buffer)) nnfolder-open-nov("1year") (setq novbuf (nnfolder-open-nov group)) (set-buffer (setq novbuf (nnfolder-open-nov group))) (save-current-buffer (set-buffer (setq novbuf ...)) (goto-char (point-min)) (while (not ...) (push ... articles) (forward-line 1)) (setq articles (nreverse articles))) (with-current-buffer (setq novbuf (nnfolder-open-nov group)) (goto-char (point-min)) (while (not ...) (push ... articles) (forward-line 1)) (setq articles (nreverse articles))) (if (or gnus-nov-is-evil nnfolder-nov-is-evil (and ... ...)) nil (unless (file-exists-p nov) (gnus-make-directory ...)) (with-current-buffer (setq novbuf ...) (goto-char ...) (while ... ... ...) (setq articles ...))) (unless (or gnus-nov-is-evil nnfolder-nov-is-evil (and ... ...)) (unless (file-exists-p nov) (gnus-make-directory ...)) (with-current-buffer (setq novbuf ...) (goto-char ...) (while ... ... ...) (setq articles ...))) (let ((delim "^From ") (marker ...) (number "[0-9]+") (active ...) (scantime ...) (minid ...) maxid start end newscantime novbuf articles newnum buffer-read-only) (buffer-disable-undo) (setq maxid (cdr active)) (unless (or gnus-nov-is-evil nnfolder-nov-is-evil ...) (unless ... ...) (with-current-buffer ... ... ... ...)) (goto-char (point-min)) (when (or nnfolder-ignore-active-file novbuf ...) (while ... ... ...) (when ... ...) (setcar active ...) (setcdr active ...) (goto-char ...)) (when (not ...) (goto-char ...) (unless ... ...)) (unless (nnmail-search-unix-mail-delim) (goto-char ...)) (setq end (point-marker)) (while (not ...) (setq start ...) (goto-char end) (while ... ...) (set-marker end ...) (goto-char start) (when ... ... ... ... ... ...)) (set-marker end nil) (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) (setq newscantime (visited-file-modtime)) (if scantime (setcdr scantime ...) (push ... nnfolder-scantime-alist)) (when novbuf (nnfolder-save-no! v)) (current-buffer)) (save-excursion (goto-char (point-min)) (while (eq ... 10) (delete-char 1)) (nnmail-activate (quote nnfolder)) (let (... ... ... ... ... ... maxid start end newscantime novbuf articles newnum buffer-read-only) (buffer-disable-undo) (setq maxid ...) (unless ... ... ...) (goto-char ...) (when ... ... ... ... ... ...) (when ... ... ...) (unless ... ...) (setq end ...) (while ... ... ... ... ... ... ...) (set-marker end nil) (nnfolder-save-active nnfolder-group-alist nnfolder-active-file) (setq newscantime ...) (if scantime ... ...) (when novbuf ...) (current-buffer))) (if (equal (cadr ...) (nth 5 ...)) (if (file-exists-p file) buffer (push ... nnfolder-buffer-alist) (set-buffer-modified-p t) (nnfolder-save-buffer)) (save-excursion (goto-char ...) (while ... ...) (nnmail-activate ...) (let ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...))) (let* ((file ...) (nov ...) (buffer ...)) (if (equal ... ...) (if ... buffer ... ... ...) (save-excursion ... ... ... ...))) nnfolder-read-folder("1year") (list group (nnfolder-read-folder group)) (cons (list group (nnfolder-read-folder group)) nnfolder-buffer-alist) (setq nnfolder-buffer-alist (cons (list group ...) nnfolder-buffer-alist)) (push (list group (nnfolder-read-folder group)) nnfolder-buffer-alist) (if (and inf (gnus-buffer-live-p ...)) (set-buffer (cadr inf)) (when inf (setq nnfolder-buffer-alist ...)) (when nnfolder-group-alist (nnfolder-save-active nnfolder-group-alist nnfolder-active-file)) (push (list group ...) nnfolder-buffer-alist)) (let ((inf ...)) (if (and inf ...) (set-buffer ...) (when inf ...) (when nnfolder-group-alist ...) (push ... nnfolder-buffer-alist))) nnfolder-possibly-change-folder("1year") (let ((oldgroup ...)) (if oldgroup (nnheader-message 5 "Refreshing group %s..." file) (nnheader-message 5 "Adding group %s..." file)) (if oldgroup (setq nnfolder-group-alist ...)) (push (list file ...) nnfolder-group-alist) (nnfolder-possibly-change-folder file) (nnfolder-possibly-change-group file) (nnfolder-close-group file)) (progn (let (...) (if oldgroup ... ...) (if oldgroup ...) (push ... nnfolder-group-alist) (nnfolder-possibly-change-folder file) (nnfolder-possibly-change-group file) (nnfolder-close-group file))) (if (and (not ...) (message-mail-file-mbox-p ...)) (progn (let ... ... ... ... ... ... ...))) (when (and (not ...) (message-mail-file-mbox-p ...)) (let (...) (if oldgroup ... ...) (if oldgroup ...) (push ... nnfolder-group-alist) (nnfolder-possibly-change-folder file) (nnfolder-possibly-change-group file) (nnfolder-close-group file))) (while (setq file (pop files)) (when (and ... ...) (let ... ... ... ... ... ... ...))) (let ((files ...) file) (while (setq file ...) (when ... ...)) (nnheader-message 5 "")) nnfolder-generate-active-file() call-interactively(nnfolder-generate-active-file) execute-extended-command(nil) call-interactively(execute-extended-command)