comparison lisp/gnus/nnir.el @ 110516:4d2f8b81bb01

Merge changes made in Gnus trunk. nnimap.el (nnimap-update-info): When UIDNEXT is present, use that for the active. Split -request-update-info into -request-marks and -update-info. nnimap.el (nnimap-transform-headers): Don't bug out on invalid BODYSTRUCTUREs. nnimap.el (nnimap-transform-headers): Unfold quoted {42} headers. nnir.el (nnir-run-imap): Fix up nnir to work with the new nnimap. nnimap.el (nnimap-stream): Add starttls support. gnus-int.el (gnus-request-update-info): Protect against backends not having the function. gnus-html.el (gnus-html-rescale-image): Revert change that uses window-inside-pixel-edges. gnus-start.el (gnus-fixup-nnimap-unread-after-getting-new-news): Remove. nnimap.el (nnimap-retrieve-headers): Return 'headers. gnus-sum.el (gnus-summary-local-variables): Prepare for list/range makeover. gnus-start.el: Add new variable gnus-use-backend-marks, and start reading marks again.
author Katsumi Yamaoka <yamaoka@jpl.org>
date Thu, 23 Sep 2010 23:14:02 +0000
parents ab3a38ccb842
children 64945cefe6a6
comparison
equal deleted inserted replaced
110515:6248bcadfd21 110516:4d2f8b81bb01
965 (server (cadr (gnus-server-to-method srv))) 965 (server (cadr (gnus-server-to-method srv)))
966 (group (or group-option (gnus-group-group-name))) 966 (group (or group-option (gnus-group-group-name)))
967 (defs (caddr (gnus-server-to-method srv))) 967 (defs (caddr (gnus-server-to-method srv)))
968 (criteria (or (cdr (assq 'criteria query)) 968 (criteria (or (cdr (assq 'criteria query))
969 nnir-imap-search-field)) 969 nnir-imap-search-field))
970 artlist buf) 970 (gnus-inhibit-demon t)
971 artlist)
971 (message "Opening server %s" server) 972 (message "Opening server %s" server)
972 (condition-case () 973 (condition-case ()
973 (when (nnimap-open-server server defs) ;; xxx 974 (when (nnimap-possibly-change-group (gnus-group-short-name group) server)
974 (setq buf nnimap-server-buffer) ;; xxx 975 (with-current-buffer (nnimap-buffer)
975 (message "Searching %s..." group) 976 (message "Searching %s..." group)
976 (let ((arts 0) 977 (let ((arts 0)
977 (mbx (gnus-group-real-name group))) 978 (result
978 (when (imap-mailbox-select mbx nil buf) 979 (nnimap-command "UID SEARCH %s"
979 (mapc 980 (nnir-imap-make-query criteria qstring))))
980 (lambda (artnum) 981 (mapc
981 (push (vector group artnum 1) artlist) 982 (lambda (artnum)
982 (setq arts (1+ arts))) 983 (push (vector group artnum 1) artlist)
983 (imap-search (nnir-imap-make-query criteria qstring) buf)) 984 (setq arts (1+ arts)))
984 (message "Searching %s... %d matches" mbx arts))) 985 (and (car result)
985 (message "Searching %s...done" group)) 986 (delete 0 (mapcar #'string-to-number
986 (quit nil)) 987 (cdr (assoc "SEARCH" (cdr result)))))))
988 (message "Searching %s... %d matches" group arts)))
989 (message "Searching %s...done" group))
990 (quit nil))
987 (reverse artlist)))) 991 (reverse artlist))))
988 992
989 (defun nnir-imap-make-query (criteria qstring) 993 (defun nnir-imap-make-query (criteria qstring)
990 "Parse the query string and criteria into an appropriate IMAP search 994 "Parse the query string and criteria into an appropriate IMAP search
991 expression, returning the string query to make. 995 expression, returning the string query to make.