[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

nnimap 0.3.7 released



This makes sure nnimap remember what was read and wasn't, because Gnus
seem to insist on wanting read marks on non-existant articles.

The logic is simple:

  gnus_read_marks + server_side_read_marks - server_side_notread_articles

I include the relevant diff because it might be food for
though&discussion. (Not to mention, headaches. It's extremely ugly).

Multiple concurrent server connections is also tested and it seem to
work.

http://vic20.dzp.se/gnus-imap/nnimap-0.3.7.tar.gz.

/S

       (gnus-info-set-read 
        info 
-       (gnus-compress-sequence (nnimap-search "SEEN") t))
+       ;; Heavy optimizations are possible if someone answered the following:
+       ;;
+       ;; does UID SEARCH returned sorted data? (probably not)
+       ;; does gnus-uncompress-range return sorted data? (probably?)
+       ;; does gnus-sorted-complement return sorted data? (probably?)
+       ;; does gnus-compress-sequence handle unsorted data? (probably not?)
+       ;;
+       ;; Other improvements would be available if someone wrote
+       ;; a range version of gnus-sorted-complement.
+       (let* ((oldread (gnus-info-read info))
+	      (seen (nnimap-search "SEEN"))
+	      (seens (sort seen '<))
+	      (unseen (nnimap-search "NOT SEEN"))
+	      (unseens (sort unseen '<))
+	      (oldandnewseentmp (gnus-add-to-range oldread seens))
+	      (oldandnewseen (gnus-uncompress-range oldandnewseentmp))
+	      (oldandnewseens (sort oldandnewseen '<))
+	      (correctedtmp (gnus-sorted-complement oldandnewseens unseens))
+	      (correctedtmps (sort correctedtmp '<))
+	      (corrected (gnus-compress-sequence correctedtmps t)))
+	 corrected))
1998-06-28 19:39:21  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap 0.3.7 released

1998-06-28 19:37:42  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap.el: todo changes

1998-06-28 19:25:08  Simon Josefsson  <jas@pdc.kth.se>

	* nnimap.el (nnimap-request-update-info): now correctly sets read
	marks