[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: nnimap 0.116 released



Simon Josefsson <jas@pdc.kth.se> writes:

  > Workaround for the cyrus server bug, does it work for you Kai?

Wow, this is *much* better.  It is not perfect, though: trying to copy
an unmarked article (after M-u) to an nnimap group elicits the
following backtrace:

,-----
| Signaling: (wrong-type-argument arrayp nil)
|   nnheader-insert-nov(nil)
|   gnus-cache-possibly-enter-article("nnimap:user.grossjoh.test" 101 [101 "Number of documents at http://www.pcworld.com/pcwtoday/" "Kai.Grossjohann@CS.Uni-Dortmund.DE" "11 Mar 1999 13:06:06 +0100" "<vafpv6gi635.fsf@ramses.cs.uni-dortmund.de>" "" 1478 34 "Xref: petty.cs.uni-dortmund.de test:4" ((To . "Webmaster@pcworld.com"))] nil nil (4))
|   (progn (gnus-cache-possibly-enter-article to-group to-article (let ... ... header) (memq article gnus-newsgroup-marked) (memq article gnus-newsgroup-dormant) (memq article gnus-newsgroup-unreads)))
|   (if gnus-use-cache (progn (gnus-cache-possibly-enter-article to-group to-article ... ... ... ...)))
|   (when gnus-use-cache (gnus-cache-possibly-enter-article to-group to-article (let ... ... header) (memq article gnus-newsgroup-marked) (memq article gnus-newsgroup-dormant) (memq article gnus-newsgroup-unreads)))
|   (let ((marks gnus-article-mark-lists) (to-article ...) (to-marks nil)) (unless (memq article gnus-newsgroup-unreads) (push ... to-marks)) (when gnus-use-cache (gnus-cache-possibly-enter-article to-group to-article ... ... ... ...)) (when (and ... ...) (push ... gnus-newsgroup-reads) (setcdr ... to-article) (setcdr gnus-newsgroup-active to-article)) (while marks (when ... ... ... ...) (setq marks ...)) (gnus-request-set-mark to-group (list ...)) (gnus-dribble-enter (concat "(gnus-group-set-info '" ... ")")))
|   (progn (unless (member to-group to-groups) (push to-group to-groups)) (unless (memq article gnus-newsgroup-unreads) (gnus-info-set-read info ...)) (let (... ... ...) (unless ... ...) (when gnus-use-cache ...) (when ... ... ... ...) (while marks ... ...) (gnus-request-set-mark to-group ...) (gnus-dribble-enter ...)))
|   (if (and info (memq action ...)) (progn (unless ... ...) (unless ... ...) (let ... ... ... ... ... ... ...)))
|   (when (and info (memq action ...)) (unless (member to-group to-groups) (push to-group to-groups)) (unless (memq article gnus-newsgroup-unreads) (gnus-info-set-read info ...)) (let (... ... ...) (unless ... ...) (when gnus-use-cache ...) (when ... ... ... ...) (while marks ... ...) (gnus-request-set-mark to-group ...) (gnus-dribble-enter ...)))
|   (let* ((pto-group ...) (entry ...) (info ...) (to-group ...)) (when (and info ...) (unless ... ...) (unless ... ...) (let ... ... ... ... ... ... ...)) (when (eq action ...) (save-excursion ... ... ... ...)))
|   (cond ((not art-group) (gnus-message 1 "Couldn't %s article %s" ... article)) ((and ... ...) (gnus-summary-mark-article article gnus-canceled-mark) (gnus-message 4 "Deleted article %s" article)) (t (let* ... ... ...) (set-buffer gnus-summary-buffer) (gnus-summary-goto-subject article) (when ... ...)))
|   (while articles (setq article (pop articles)) (setq art-group (cond ... ... ...)) (cond (... ...) (... ... ...) (t ... ... ... ...)) (gnus-summary-remove-process-mark article))
|   (let ((articles ...) (prefix ...) (names ...) (copy-buf ...) art-group to-method new-xref article to-groups) (unless (assq action names) (error "Unknown action %s" action)) (when (and ... ...) (setq to-newsgroup ...) (set ... to-newsgroup)) (setq to-method (or select-method ...)) (unless (gnus-check-backend-function ... ...) (error "%s does not support article copying" ...)) (unless (gnus-check-server to-method) (error "Can't open server %s" ...)) (gnus-message 6 "%s to %s: %s..." (caddr ...) (or ... to-newsgroup) articles) (while articles (setq article ...) (setq art-group ...) (cond ... ... ...) (gnus-summary-remove-process-mark article)) (while to-groups (save-excursion ... ... ...)) (gnus-kill-buffer copy-buf) (gnus-summary-position-point) (gnus-set-mode-line (quote summary)))
|   gnus-summary-move-article(nil nil nil copy)
|   gnus-summary-copy-article(nil)
|   call-interactively(gnus-summary-copy-article)
`-----

The two log buffers follow, as usual.  I'll also try to move a larger
number of articles from nnml to nnimap (working around this bug by
ticking all unmarked articles) and see how that goes.  Don't have time
right now, though.

Thanks for the good work with nnimap, Simon!

kai
-- 
Abort this operation?   [OK]  [Cancel]

======================================================================
1 -> nnimap-server-opened: server=""
1 <- nnimap-server-opened: (open run)
======================================================================
1 -> nnimap-request-accept-article: group="user.grossjoh.test" server="" last=t
| 2 -> nnimap-possibly-change-server: server=""
| 2 <- nnimap-possibly-change-server: " *nnimap* "
1 <- nnimap-request-accept-article: ("user.grossjoh.test" . 101)
======================================================================
1 -> nnimap-request-article: article=101 group="user.grossjoh.test" server="" to-buffer=#<buffer  *nntpd*>
| 2 -> nnimap-request-article-part: article=101 part="RFC822.PEEK" prop=RFC822 group="user.grossjoh.test" server="" to-buffer=#<buffer  *nntpd*>
| | 3 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | | 4 -> nnimap-possibly-change-server: server=""
| | | 4 <- nnimap-possibly-change-server: " *nnimap* "
| | | 4 -> nnimap-verify-uidvalidity: group="user.grossjoh.test" server=""
| | | 4 <- nnimap-verify-uidvalidity: t
| | 3 <- nnimap-possibly-change-group: "user.grossjoh.test"
| 2 <- nnimap-request-article-part: ("user.grossjoh.test" . 101)
1 <- nnimap-request-article: ("user.grossjoh.test" . 101)
======================================================================
1 -> nnimap-server-opened: server=""
1 <- nnimap-server-opened: (open run)
======================================================================
1 -> nnimap-request-group: group="user.grossjoh.test" server="" fast=t
| 2 -> nnimap-request-update-info-internal: group="user.grossjoh.test" info=("nnimap:user.grossjoh.test" 3 ((1 . 100)) ((score (100 . 100) (97 . 100))) (nnimap "") ((uidvalidity . "929023644"))) server=""
| | 3 -> nnimap-update-alist-soft: key=uidvalidity value=nil alist=((uidvalidity . "929023644"))
| | 3 <- nnimap-update-alist-soft: nil
| | 3 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | | 4 -> nnimap-possibly-change-server: server=""
| | | 4 <- nnimap-possibly-change-server: " *nnimap* "
| | 3 <- nnimap-possibly-change-group: t
| | 3 -> nnimap-mark-permanent-p: mark=read group=nil
| | | 4 -> nnimap-mark-to-flag: preds=read always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=read
| | | | 5 <- nnimap-mark-to-flag-1: "\\Seen"
| | | 4 <- nnimap-mark-to-flag: "\\Seen"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-permanent-p: mark=tick group=nil
| | | 4 -> nnimap-mark-to-flag: preds=tick always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=tick
| | | | 5 <- nnimap-mark-to-flag-1: "\\Flagged"
| | | 4 <- nnimap-mark-to-flag: "\\Flagged"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=tick always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=tick
| | | 4 <- nnimap-mark-to-flag-1: "\\Flagged"
| | 3 <- nnimap-mark-to-flag: "\\Flagged"
| | 3 -> nnimap-mark-to-predicate: pred=tick
| | 3 <- nnimap-mark-to-predicate: "FLAGGED"
| | 3 -> nnimap-update-alist-soft: key=tick value=nil alist=((score (100 . 100) (97 . 100)))
| | 3 <- nnimap-update-alist-soft: ((score (100 . 100) (97 . 100)))
| | 3 -> nnimap-mark-permanent-p: mark=reply group=nil
| | | 4 -> nnimap-mark-to-flag: preds=reply always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=reply
| | | | 5 <- nnimap-mark-to-flag-1: "\\Answered"
| | | 4 <- nnimap-mark-to-flag: "\\Answered"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=reply always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=reply
| | | 4 <- nnimap-mark-to-flag-1: "\\Answered"
| | 3 <- nnimap-mark-to-flag: "\\Answered"
| | 3 -> nnimap-mark-to-predicate: pred=reply
| | 3 <- nnimap-mark-to-predicate: "ANSWERED"
| | 3 -> nnimap-update-alist-soft: key=reply value=nil alist=((score (100 . 100) (97 . 100)))
| | 3 <- nnimap-update-alist-soft: ((score (100 . 100) (97 . 100)))
| | 3 -> nnimap-mark-permanent-p: mark=expire group=nil
| | | 4 -> nnimap-mark-to-flag: preds=expire always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=expire
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-expire"
| | | 4 <- nnimap-mark-to-flag: "gnus-expire"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=expire always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=expire
| | | 4 <- nnimap-mark-to-flag-1: "gnus-expire"
| | 3 <- nnimap-mark-to-flag: "gnus-expire"
| | 3 -> nnimap-mark-permanent-p: mark=killed group=nil
| | | 4 -> nnimap-mark-to-flag: preds=killed always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=killed
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-killed"
| | | 4 <- nnimap-mark-to-flag: "gnus-killed"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=killed always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=killed
| | | 4 <- nnimap-mark-to-flag-1: "gnus-killed"
| | 3 <- nnimap-mark-to-flag: "gnus-killed"
| | 3 -> nnimap-mark-permanent-p: mark=bookmark group=nil
| | | 4 -> nnimap-mark-to-flag: preds=bookmark always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=bookmark
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-bookmark"
| | | 4 <- nnimap-mark-to-flag: "gnus-bookmark"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=bookmark always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=bookmark
| | | 4 <- nnimap-mark-to-flag-1: "gnus-bookmark"
| | 3 <- nnimap-mark-to-flag: "gnus-bookmark"
| | 3 -> nnimap-mark-permanent-p: mark=dormant group=nil
| | | 4 -> nnimap-mark-to-flag: preds=dormant always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=dormant
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-dormant"
| | | 4 <- nnimap-mark-to-flag: "gnus-dormant"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=dormant always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=dormant
| | | 4 <- nnimap-mark-to-flag-1: "gnus-dormant"
| | 3 <- nnimap-mark-to-flag: "gnus-dormant"
| | 3 -> nnimap-mark-to-predicate: pred=dormant
| | 3 <- nnimap-mark-to-predicate: "KEYWORD gnus-dormant"
| | 3 -> nnimap-update-alist-soft: key=dormant value=nil alist=((score (100 . 100) (97 . 100)))
| | 3 <- nnimap-update-alist-soft: ((score (100 . 100) (97 . 100)))
| | 3 -> nnimap-mark-permanent-p: mark=score group=nil
| | | 4 -> nnimap-mark-to-flag: preds=score always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=score
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-score"
| | | 4 <- nnimap-mark-to-flag: "gnus-score"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=score always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=score
| | | 4 <- nnimap-mark-to-flag-1: "gnus-score"
| | 3 <- nnimap-mark-to-flag: "gnus-score"
| | 3 -> nnimap-mark-permanent-p: mark=save group=nil
| | | 4 -> nnimap-mark-to-flag: preds=save always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=save
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-save"
| | | 4 <- nnimap-mark-to-flag: "gnus-save"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=save always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=save
| | | 4 <- nnimap-mark-to-flag-1: "gnus-save"
| | 3 <- nnimap-mark-to-flag: "gnus-save"
| | 3 -> nnimap-mark-permanent-p: mark=cache group=nil
| | | 4 -> nnimap-mark-to-flag: preds=cache always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=cache
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-cache"
| | | 4 <- nnimap-mark-to-flag: "gnus-cache"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=cache always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=cache
| | | 4 <- nnimap-mark-to-flag-1: "gnus-cache"
| | 3 <- nnimap-mark-to-flag: "gnus-cache"
| | 3 -> nnimap-mark-permanent-p: mark=download group=nil
| | | 4 -> nnimap-mark-to-flag: preds=download always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=download
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-download"
| | | 4 <- nnimap-mark-to-flag: "gnus-download"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=download always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=download
| | | 4 <- nnimap-mark-to-flag-1: "gnus-download"
| | 3 <- nnimap-mark-to-flag: "gnus-download"
| | 3 -> nnimap-mark-permanent-p: mark=unsend group=nil
| | | 4 -> nnimap-mark-to-flag: preds=unsend always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=unsend
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-unsend"
| | | 4 <- nnimap-mark-to-flag: "gnus-unsend"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=unsend always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=unsend
| | | 4 <- nnimap-mark-to-flag-1: "gnus-unsend"
| | 3 <- nnimap-mark-to-flag: "gnus-unsend"
| 2 <- nnimap-request-update-info-internal: ("nnimap:user.grossjoh.test" 3 ((1 . 100)) ((score (100 . 100) (97 . 100))) (nnimap "") nil)
| 2 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-possibly-change-group: t
1 <- nnimap-request-group: t
======================================================================
1 -> nnimap-retrieve-headers: articles=(96 97 98 99 100) group="user.grossjoh.test" server="" fetch-old=t
| 2 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-possibly-change-group: t
| 2 -> nnimap-retrieve-headers-get-uids: articles=(96 97 98 99 100) fetch-old=t
| | 3 -> nnimap-retrieve-headers-store-uids: 
| | 3 <- nnimap-retrieve-headers-store-uids: (101)
| 2 <- nnimap-retrieve-headers-get-uids: (101)
| 2 -> nnimap-range-to-string: range=(101)
| 2 <- nnimap-range-to-string: "101"
| 2 -> nnimap-retrieve-headers-progress: 
| 2 <- nnimap-retrieve-headers-progress: nil
1 <- nnimap-retrieve-headers: nov
======================================================================
1 -> nnimap-close-group: group="user.grossjoh.test" server=""
| 2 -> nnimap-expunge-close-group: server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-expunge-close-group: t
1 <- nnimap-close-group: t
======================================================================
1 -> nnimap-server-opened: server=""
1 <- nnimap-server-opened: (open run)
======================================================================
1 -> nnimap-request-group: group="user.grossjoh.test" server="" fast=t
| 2 -> nnimap-request-update-info-internal: group="user.grossjoh.test" info=("nnimap:user.grossjoh.test" 3 ((1 . 100)) ((cache 101) (score (100 . 100) (97 . 100))) (nnimap "")) server=""
| | 3 -> nnimap-update-alist-soft: key=uidvalidity value=nil alist=nil
| | 3 <- nnimap-update-alist-soft: nil
| | 3 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | | 4 -> nnimap-possibly-change-server: server=""
| | | 4 <- nnimap-possibly-change-server: " *nnimap* "
| | | 4 -> nnimap-verify-uidvalidity: group="user.grossjoh.test" server=""
| | | 4 <- nnimap-verify-uidvalidity: t
| | 3 <- nnimap-possibly-change-group: "user.grossjoh.test"
| | 3 -> nnimap-mark-permanent-p: mark=read group=nil
| | | 4 -> nnimap-mark-to-flag: preds=read always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=read
| | | | 5 <- nnimap-mark-to-flag-1: "\\Seen"
| | | 4 <- nnimap-mark-to-flag: "\\Seen"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-permanent-p: mark=tick group=nil
| | | 4 -> nnimap-mark-to-flag: preds=tick always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=tick
| | | | 5 <- nnimap-mark-to-flag-1: "\\Flagged"
| | | 4 <- nnimap-mark-to-flag: "\\Flagged"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=tick always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=tick
| | | 4 <- nnimap-mark-to-flag-1: "\\Flagged"
| | 3 <- nnimap-mark-to-flag: "\\Flagged"
| | 3 -> nnimap-mark-to-predicate: pred=tick
| | 3 <- nnimap-mark-to-predicate: "FLAGGED"
| | 3 -> nnimap-update-alist-soft: key=tick value=nil alist=((cache 101) (score (100 . 100) (97 . 100)))
| | 3 <- nnimap-update-alist-soft: ((cache 101) (score (100 . 100) (97 . 100)))
| | 3 -> nnimap-mark-permanent-p: mark=reply group=nil
| | | 4 -> nnimap-mark-to-flag: preds=reply always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=reply
| | | | 5 <- nnimap-mark-to-flag-1: "\\Answered"
| | | 4 <- nnimap-mark-to-flag: "\\Answered"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=reply always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=reply
| | | 4 <- nnimap-mark-to-flag-1: "\\Answered"
| | 3 <- nnimap-mark-to-flag: "\\Answered"
| | 3 -> nnimap-mark-to-predicate: pred=reply
| | 3 <- nnimap-mark-to-predicate: "ANSWERED"
| | 3 -> nnimap-update-alist-soft: key=reply value=nil alist=((cache 101) (score (100 . 100) (97 . 100)))
| | 3 <- nnimap-update-alist-soft: ((cache 101) (score (100 . 100) (97 . 100)))
| | 3 -> nnimap-mark-permanent-p: mark=expire group=nil
| | | 4 -> nnimap-mark-to-flag: preds=expire always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=expire
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-expire"
| | | 4 <- nnimap-mark-to-flag: "gnus-expire"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=expire always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=expire
| | | 4 <- nnimap-mark-to-flag-1: "gnus-expire"
| | 3 <- nnimap-mark-to-flag: "gnus-expire"
| | 3 -> nnimap-mark-permanent-p: mark=killed group=nil
| | | 4 -> nnimap-mark-to-flag: preds=killed always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=killed
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-killed"
| | | 4 <- nnimap-mark-to-flag: "gnus-killed"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=killed always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=killed
| | | 4 <- nnimap-mark-to-flag-1: "gnus-killed"
| | 3 <- nnimap-mark-to-flag: "gnus-killed"
| | 3 -> nnimap-mark-permanent-p: mark=bookmark group=nil
| | | 4 -> nnimap-mark-to-flag: preds=bookmark always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=bookmark
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-bookmark"
| | | 4 <- nnimap-mark-to-flag: "gnus-bookmark"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=bookmark always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=bookmark
| | | 4 <- nnimap-mark-to-flag-1: "gnus-bookmark"
| | 3 <- nnimap-mark-to-flag: "gnus-bookmark"
| | 3 -> nnimap-mark-permanent-p: mark=dormant group=nil
| | | 4 -> nnimap-mark-to-flag: preds=dormant always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=dormant
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-dormant"
| | | 4 <- nnimap-mark-to-flag: "gnus-dormant"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=dormant always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=dormant
| | | 4 <- nnimap-mark-to-flag-1: "gnus-dormant"
| | 3 <- nnimap-mark-to-flag: "gnus-dormant"
| | 3 -> nnimap-mark-to-predicate: pred=dormant
| | 3 <- nnimap-mark-to-predicate: "KEYWORD gnus-dormant"
| | 3 -> nnimap-update-alist-soft: key=dormant value=nil alist=((cache 101) (score (100 . 100) (97 . 100)))
| | 3 <- nnimap-update-alist-soft: ((cache 101) (score (100 . 100) (97 . 100)))
| | 3 -> nnimap-mark-permanent-p: mark=score group=nil
| | | 4 -> nnimap-mark-to-flag: preds=score always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=score
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-score"
| | | 4 <- nnimap-mark-to-flag: "gnus-score"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=score always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=score
| | | 4 <- nnimap-mark-to-flag-1: "gnus-score"
| | 3 <- nnimap-mark-to-flag: "gnus-score"
| | 3 -> nnimap-mark-permanent-p: mark=save group=nil
| | | 4 -> nnimap-mark-to-flag: preds=save always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=save
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-save"
| | | 4 <- nnimap-mark-to-flag: "gnus-save"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=save always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=save
| | | 4 <- nnimap-mark-to-flag-1: "gnus-save"
| | 3 <- nnimap-mark-to-flag: "gnus-save"
| | 3 -> nnimap-mark-permanent-p: mark=cache group=nil
| | | 4 -> nnimap-mark-to-flag: preds=cache always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=cache
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-cache"
| | | 4 <- nnimap-mark-to-flag: "gnus-cache"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=cache always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=cache
| | | 4 <- nnimap-mark-to-flag-1: "gnus-cache"
| | 3 <- nnimap-mark-to-flag: "gnus-cache"
| | 3 -> nnimap-mark-permanent-p: mark=download group=nil
| | | 4 -> nnimap-mark-to-flag: preds=download always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=download
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-download"
| | | 4 <- nnimap-mark-to-flag: "gnus-download"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=download always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=download
| | | 4 <- nnimap-mark-to-flag-1: "gnus-download"
| | 3 <- nnimap-mark-to-flag: "gnus-download"
| | 3 -> nnimap-mark-permanent-p: mark=unsend group=nil
| | | 4 -> nnimap-mark-to-flag: preds=unsend always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=unsend
| | | | 5 <- nnimap-mark-to-flag-1: "gnus-unsend"
| | | 4 <- nnimap-mark-to-flag: "gnus-unsend"
| | 3 <- nnimap-mark-permanent-p: ("\\*")
| | 3 -> nnimap-mark-to-flag: preds=unsend always-list=nil make-string=nil
| | | 4 -> nnimap-mark-to-flag-1: preds=unsend
| | | 4 <- nnimap-mark-to-flag-1: "gnus-unsend"
| | 3 <- nnimap-mark-to-flag: "gnus-unsend"
| 2 <- nnimap-request-update-info-internal: ("nnimap:user.grossjoh.test" 3 ((1 . 100)) ((cache 101) (score (100 . 100) (97 . 100))) (nnimap "") ((uidvalidity . "929023644")))
| 2 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-possibly-change-group: t
1 <- nnimap-request-group: t
======================================================================
1 -> nnimap-retrieve-headers: articles=(96 97 98 99 100) group="user.grossjoh.test" server="" fetch-old=t
| 2 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-possibly-change-group: t
| 2 -> nnimap-retrieve-headers-get-uids: articles=(96 97 98 99 100) fetch-old=t
| | 3 -> nnimap-retrieve-headers-store-uids: 
| | 3 <- nnimap-retrieve-headers-store-uids: (101)
| 2 <- nnimap-retrieve-headers-get-uids: (101)
| 2 -> nnimap-range-to-string: range=(101)
| 2 <- nnimap-range-to-string: "101"
| 2 -> nnimap-retrieve-headers-progress: 
| 2 <- nnimap-retrieve-headers-progress: nil
1 <- nnimap-retrieve-headers: nov
======================================================================
1 -> nnimap-request-expire-articles: articles=(101) group="user.grossjoh.test" server="" force=force
| 2 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-possibly-change-group: t
| 2 -> nnimap-range-to-string: range=(101)
| 2 <- nnimap-range-to-string: "101"
1 <- nnimap-request-expire-articles: nil
======================================================================
1 -> nnimap-server-opened: server=""
1 <- nnimap-server-opened: (open run)
======================================================================
1 -> nnimap-request-set-mark: group="user.grossjoh.test" actions=(((101) add (read))) server=""
| 2 -> nnimap-possibly-change-group: group="user.grossjoh.test" server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-possibly-change-group: t
| 2 -> nnimap-mark-to-flag: preds=read always-list=nil make-string=nil
| | 3 -> nnimap-mark-to-flag-1: preds=read
| | 3 <- nnimap-mark-to-flag-1: "\\Seen"
| 2 <- nnimap-mark-to-flag: "\\Seen"
| 2 -> nnimap-range-to-string: range=(101)
| 2 <- nnimap-range-to-string: "101"
| 2 -> nnimap-mark-to-flag: preds=(read) always-list=nil make-string=t
| | 3 -> nnimap-mark-to-flag-1: preds=(read)
| | | 4 -> nnimap-mark-to-flag: preds=read always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=read
| | | | 5 <- nnimap-mark-to-flag-1: "\\Seen"
| | | 4 <- nnimap-mark-to-flag: "\\Seen"
| | | 4 -> nnimap-mark-to-flag: preds=nil always-list=nil make-string=nil
| | | | 5 -> nnimap-mark-to-flag-1: preds=nil
| | | | 5 <- nnimap-mark-to-flag-1: nil
| | | 4 <- nnimap-mark-to-flag: nil
| | 3 <- nnimap-mark-to-flag-1: ("\\Seen")
| 2 <- nnimap-mark-to-flag: "\\Seen"
1 <- nnimap-request-set-mark: nil
======================================================================
1 -> nnimap-close-group: group="user.grossjoh.test" server=""
| 2 -> nnimap-expunge-close-group: server=""
| | 3 -> nnimap-possibly-change-server: server=""
| | 3 <- nnimap-possibly-change-server: " *nnimap* "
| 2 <- nnimap-expunge-close-group: t
1 <- nnimap-close-group: t
216 APPEND "user.grossjoh.test" {1962}
+ go ahead
To: Webmaster@pcworld.com
Subject: Number of documents at http://www.pcworld.com/pcwtoday/
Content-Type: text/plain; charset=iso-8859-1
From: Kai.Grossjohann@CS.Uni-Dortmund.DE
Date: 11 Mar 1999 13:06:06 +0100
Message-ID: <vafpv6gi635.fsf@ramses.cs.uni-dortmund.de>
User-Agent: Gnus/5.07008 (Pterodactyl Gnus v0.80) Emacs/20.3
Xref: petty.cs.uni-dortmund.de test:4
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Lines: 34

Dear Webmaster,

I am a participant in the EUROgatherer project sponsored by the
European Union (see http://pc-erato2.iei.pi.cnr.it/eurogatherer/ for
details).  In this project, we aim at providing a personalized
information gathering system which retrieves information from several
sources.  Amongst other things, we provide access to existing Web
search engines in the areas `Computers and Internet' and `Daily News'.

http://www.pcworld.com/pcwtoday/ is one of the sites we would like to
provide access to.

Part of the planned functionality of our system is to automatically (!)
select the appropriate sources for any given user query.  This is done
using a decision-theoretic approach where we assign costs for
documents from each source then try to find the combination which
minimizes costs.  The main cost factor is retrieval quality; to
determine this, we need an estimate of the number of documents in the
source.

Would you be willing to say how many documents are in the database
searched by the search form on your home page, such that I can judge
the quality of my estimation method?

Ask me if you wish to learn about my ideas of estimating the number of
documents.

Thanks in advance,
Kai Gro=DFjohann
--=20
Kai Gro=DFjohann, Informatik VI         grossjohann@ls6.cs.uni-dortmund.de
Uni Dortmund, D-44221 Dortmund        http://ls6-www.cs.uni-dortmund.de/
                                      Vox +49 231 755 5670, Fax -2405
I like _b_o_t_h kinds of music.
216 OK [APPENDUID 929023644 101] Completed
217 SELECT user.grossjoh.test
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen gnus-dormant)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen gnus-dormant \*)] 
* 1 EXISTS
* 1 RECENT
* OK [UNSEEN 1] 
* OK [UIDVALIDITY 929023644] 
217 OK [READ-WRITE] Completed
218 UID FETCH 101 RFC822.PEEK
* 1 FETCH (UID 101 RFC822 {1962}
To: Webmaster@pcworld.com
Subject: Number of documents at http://www.pcworld.com/pcwtoday/
Content-Type: text/plain; charset=iso-8859-1
From: Kai.Grossjohann@CS.Uni-Dortmund.DE
Date: 11 Mar 1999 13:06:06 +0100
Message-ID: <vafpv6gi635.fsf@ramses.cs.uni-dortmund.de>
User-Agent: Gnus/5.07008 (Pterodactyl Gnus v0.80) Emacs/20.3
Xref: petty.cs.uni-dortmund.de test:4
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Lines: 34

Dear Webmaster,

I am a participant in the EUROgatherer project sponsored by the
European Union (see http://pc-erato2.iei.pi.cnr.it/eurogatherer/ for
details).  In this project, we aim at providing a personalized
information gathering system which retrieves information from several
sources.  Amongst other things, we provide access to existing Web
search engines in the areas `Computers and Internet' and `Daily News'.

http://www.pcworld.com/pcwtoday/ is one of the sites we would like to
provide access to.

Part of the planned functionality of our system is to automatically (!)
select the appropriate sources for any given user query.  This is done
using a decision-theoretic approach where we assign costs for
documents from each source then try to find the combination which
minimizes costs.  The main cost factor is retrieval quality; to
determine this, we need an estimate of the number of documents in the
source.

Would you be willing to say how many documents are in the database
searched by the search form on your home page, such that I can judge
the quality of my estimation method?

Ask me if you wish to learn about my ideas of estimating the number of
documents.

Thanks in advance,
Kai Gro=DFjohann
--=20
Kai Gro=DFjohann, Informatik VI         grossjohann@ls6.cs.uni-dortmund.de
Uni Dortmund, D-44221 Dortmund        http://ls6-www.cs.uni-dortmund.de/
                                      Vox +49 231 755 5670, Fax -2405
I like _b_o_t_h kinds of music.
)
218 OK Completed
219 UID SEARCH UNSEEN UNDELETED
* SEARCH 101
219 OK Completed
220 UID SEARCH SEEN
* SEARCH
220 OK Completed
221 UID SEARCH FLAGGED
* SEARCH
221 OK Completed
222 UID SEARCH ANSWERED
* SEARCH
222 OK Completed
223 UID SEARCH KEYWORD gnus-dormant
* SEARCH
223 OK Completed
224 UID FETCH 1:* UID
* 1 FETCH (UID 101)
224 OK Completed
225 UID FETCH 101 (UID RFC822.SIZE ENVELOPE BODY BODY.PEEK[HEADER.FIELDS (References)])
* 1 FETCH (UID 101 RFC822.SIZE 1962 ENVELOPE ("11 Mar 1999 13:06:06 +0100" "Number of documents at http://www.pcworld.com/pcwtoday/" ((NIL NIL "Kai.Grossjohann" "CS.Uni-Dortmund.DE")) ((NIL NIL "Kai.Grossjohann" "CS.Uni-Dortmund.DE")) ((NIL NIL "Kai.Grossjohann" "CS.Uni-Dortmund.DE")) ((NIL NIL "Webmaster" "pcworld.com")) NIL NIL NIL "<vafpv6gi635.fsf@ramses.cs.uni-dortmund.de>") BODY ("TEXT" "PLAIN" ("CHARSET" "iso-8859-1") NIL NIL "QUOTED-PRINTABLE" 1512 34) BODY[HEADER.FIELDS (References)] {2}

)
225 OK Completed
226 EXPUNGE
* 1 EXISTS
* 1 RECENT
226 OK Completed
227 CLOSE
227 OK Completed
228 SELECT user.grossjoh.test
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen gnus-dormant)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen gnus-dormant \*)] 
* 1 EXISTS
* 0 RECENT
* OK [UNSEEN 1] 
* OK [UIDVALIDITY 929023644] 
228 OK [READ-WRITE] Completed
229 UID SEARCH UNSEEN UNDELETED
* SEARCH 101
229 OK Completed
230 UID SEARCH SEEN
* SEARCH
230 OK Completed
231 UID SEARCH FLAGGED
* SEARCH
231 OK Completed
232 UID SEARCH ANSWERED
* SEARCH
232 OK Completed
233 UID SEARCH KEYWORD gnus-dormant
* SEARCH
233 OK Completed
234 UID FETCH 1:* UID
* 1 FETCH (UID 101)
234 OK Completed
235 UID FETCH 101 (UID RFC822.SIZE ENVELOPE BODY BODY.PEEK[HEADER.FIELDS (References)])
* 1 FETCH (UID 101 RFC822.SIZE 1962 ENVELOPE ("11 Mar 1999 13:06:06 +0100" "Number of documents at http://www.pcworld.com/pcwtoday/" ((NIL NIL "Kai.Grossjohann" "CS.Uni-Dortmund.DE")) ((NIL NIL "Kai.Grossjohann" "CS.Uni-Dortmund.DE")) ((NIL NIL "Kai.Grossjohann" "CS.Uni-Dortmund.DE")) ((NIL NIL "Webmaster" "pcworld.com")) NIL NIL NIL "<vafpv6gi635.fsf@ramses.cs.uni-dortmund.de>") BODY ("TEXT" "PLAIN" ("CHARSET" "iso-8859-1") NIL NIL "QUOTED-PRINTABLE" 1512 34) BODY[HEADER.FIELDS (References)] {2}

)
235 OK Completed
236 UID STORE 101 +FLAGS (\Deleted)
* 1 FETCH (FLAGS (\Deleted) UID 101)
236 OK Completed
237 UID STORE 101 +FLAGS (\Seen)
* 1 FETCH (FLAGS (\Deleted \Seen) UID 101)
237 OK Completed
238 EXPUNGE
* 1 EXPUNGE
* 0 EXISTS
* 0 RECENT
238 OK Completed
239 CLOSE
239 OK Completed