Index: imap.el =================================================================== RCS file: /usr/local/cvsroot/gnus/lisp/imap.el,v retrieving revision 7.50 diff -c -r7.50 imap.el *** imap.el 1 Jan 2009 18:50:34 -0000 7.50 --- imap.el 2 Jan 2009 22:14:42 -0000 *************** *** 1816,1830 **** (signal (car data) (cdr data)))))) (defun imap-message-copyuid-1 (mailbox) (if (imap-capability 'UIDPLUS) ! (list (nth 0 (imap-mailbox-get-1 'copyuid mailbox)) ! (string-to-number (nth 2 (imap-mailbox-get-1 'copyuid mailbox)))) (let ((old-mailbox imap-current-mailbox) (state imap-state) (imap-message-data (make-vector 2 0))) (when (imap-mailbox-examine-1 mailbox) (prog1 ! (and (imap-fetch-safe '("*" . "*:*") "UID") (list (imap-mailbox-get-1 'uidvalidity mailbox) (apply 'max (imap-message-map (lambda (uid prop) uid) 'UID)))) --- 1816,1838 ---- (signal (car data) (cdr data)))))) (defun imap-message-copyuid-1 (mailbox) + (imap-message-copyuid-or-appenduid-1 mailbox t)) + + (defun imap-message-appenduid-1 (mailbox) + (imap-message-copyuid-or-appenduid-1 mailbox nil)) + + (defun imap-message-copyuid-or-appenduid-1 (mailbox copy) (if (imap-capability 'UIDPLUS) ! (if copy ! (list (nth 0 (imap-mailbox-get-1 'copyuid mailbox)) ! (string-to-number (nth 2 (imap-mailbox-get-1 'copyuid mailbox)))) ! (imap-mailbox-get-1 'appenduid mailbox)) (let ((old-mailbox imap-current-mailbox) (state imap-state) (imap-message-data (make-vector 2 0))) (when (imap-mailbox-examine-1 mailbox) (prog1 ! (and (imap-fetch-safe '("*" "*:*") "UID") (list (imap-mailbox-get-1 'uidvalidity mailbox) (apply 'max (imap-message-map (lambda (uid prop) uid) 'UID)))) *************** *** 1860,1883 **** (or no-copyuid (imap-message-copyuid-1 mailbox))))))) - ;; FIXME: Amalgamate with imap-message-copyuid-1, using an extra arg, since it - ;; shares most of the code? -- fx - (defun imap-message-appenduid-1 (mailbox) - (if (imap-capability 'UIDPLUS) - (imap-mailbox-get-1 'appenduid mailbox) - (let ((old-mailbox imap-current-mailbox) - (state imap-state) - (imap-message-data (make-vector 2 0))) - (when (imap-mailbox-examine-1 mailbox) - (prog1 - (and (imap-fetch-safe '("*" "*:*") "UID") - (list (imap-mailbox-get-1 'uidvalidity mailbox) - (apply 'max (imap-message-map - (lambda (uid prop) uid) 'UID)))) - (if old-mailbox - (imap-mailbox-select old-mailbox (eq state 'examine)) - (imap-mailbox-unselect))))))) - (defun imap-message-appenduid (mailbox &optional buffer) (with-current-buffer (or buffer (current-buffer)) (imap-message-appenduid-1 (imap-utf7-encode mailbox)))) --- 1868,1873 ----