X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=elmo%2Felmo-nntp.el;h=33a4991c96cd80f5f27d7b92f461c2d7290c0ccf;hb=dfc1de0866286be26d3998a75e74f8a3a052d8eb;hp=27e8e22ec662867be626c6212c8d1955869979aa;hpb=d8838bdec014f06e32343932cc1faa19ba82cc71;p=elisp%2Fwanderlust.git diff --git a/elmo/elmo-nntp.el b/elmo/elmo-nntp.el index 27e8e22..33a4991 100644 --- a/elmo/elmo-nntp.el +++ b/elmo/elmo-nntp.el @@ -109,7 +109,7 @@ (elmo-nntp-folder-group-internal folder) (expand-file-name (or (elmo-net-folder-server-internal folder) "nowhere") (expand-file-name "nntp" - elmo-msgdb-dir))))) + elmo-msgdb-directory))))) (luna-define-method elmo-folder-newsgroups ((folder elmo-nntp-folder)) (list (elmo-nntp-folder-group-internal folder))) @@ -245,7 +245,10 @@ Don't cache if nil.") (defun elmo-nntp-get-session (folder &optional if-exists) (elmo-network-get-session 'elmo-nntp-session - "NNTP" + (concat + (if (elmo-folder-biff-internal folder) + "BIFF-") + "NNTP") folder if-exists)) @@ -386,7 +389,8 @@ Don't cache if nil.") (with-current-buffer outbuf (erase-buffer) (insert-buffer-substring (elmo-network-session-buffer session) - start (- end 3)))))) + start (- end 3)))) + t)) (defun elmo-nntp-select-group (session group &optional force) (let (response) @@ -712,10 +716,11 @@ Don't cache if nil.") (while extras (setq ext (downcase (car extras))) (when (setq field-index (cdr (assoc ext elmo-nntp-overview-index))) - (setq field (aref ov-entity field-index)) - (when (eq field-index 8) ;; xref - (setq field (elmo-msgdb-remove-field-string field))) - (setq extra (cons (cons ext field) extra))) + (when (> (length ov-entity) field-index) + (setq field (aref ov-entity field-index)) + (when (eq field-index 8) ;; xref + (setq field (elmo-msgdb-remove-field-string field))) + (setq extra (cons (cons ext field) extra)))) (setq extras (cdr extras))) (setq overview (elmo-msgdb-append-element @@ -959,12 +964,14 @@ Don't cache if nil.") (with-current-buffer (elmo-network-session-buffer session) (std11-field-body "Newsgroups"))))) -(luna-define-method elmo-message-fetch-with-cache-process :after +(luna-define-method elmo-message-fetch-with-cache-process :around ((folder elmo-nntp-folder) number strategy &optional section unread) - (elmo-nntp-setup-crosspost-buffer folder number) - (unless unread - (elmo-nntp-folder-update-crosspost-message-alist - folder (list number)))) + (when (luna-call-next-method) + (elmo-nntp-setup-crosspost-buffer folder number) + (unless unread + (elmo-nntp-folder-update-crosspost-message-alist + folder (list number))) + t)) (luna-define-method elmo-message-fetch-plugged ((folder elmo-nntp-folder) number strategy @@ -1120,27 +1127,27 @@ Returns a list of cons cells like (NUMBER . VALUE)" numbers)) ((or (string= "since" search-key) (string= "before" search-key)) - (let* ((key-date (elmo-date-get-datevec (elmo-filter-value condition))) - (key-datestr (elmo-date-make-sortable-string key-date)) + (let* ((specified-date (elmo-date-make-sortable-string + (elmo-date-get-datevec (elmo-filter-value + condition)))) (since (string= "since" search-key)) - result) + field-date result) (if (eq (elmo-filter-type condition) 'unmatch) (setq since (not since))) (setq result (delq nil (mapcar (lambda (pair) + (setq field-date + (elmo-date-make-sortable-string + (timezone-fix-time + (cdr pair) + (current-time-zone) nil))) (if (if since - (string< key-datestr - (elmo-date-make-sortable-string - (timezone-fix-time - (cdr pair) - (current-time-zone) nil))) - (not (string< key-datestr - (elmo-date-make-sortable-string - (timezone-fix-time - (cdr pair) - (current-time-zone) nil))))) + (or (string= specified-date field-date) + (string< specified-date field-date)) + (string< field-date + specified-date)) (car pair))) (elmo-nntp-retrieve-field spec "date" from-msgs)))) (if from-msgs