[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