Synch to Oort Gnus 200303190702.
[elisp/gnus.git-] / lisp / gnus-bbdb.el
index 9999498..35dd546 100644 (file)
@@ -81,13 +81,20 @@ the user confirms the creation."
          (when (setq sender
                      (funcall gnus-bbdb/extract-message-sender-function))
            (save-excursion
-             (bbdb-encache-message
-              message-key
-              (bbdb-annotate-message-sender sender t
-                                            (or (bbdb-invoke-hook-for-value
-                                                 bbdb/news-auto-create-p)
-                                                offer-to-create)
-                                            offer-to-create))))))))
+             (setq record (bbdb-annotate-message-sender
+                           sender t
+                           (or (bbdb-invoke-hook-for-value
+                                bbdb/news-auto-create-p)
+                               offer-to-create)
+                           offer-to-create)))
+           (when record
+             ;; XXX: BBDB 2.3x not only redefines
+             ;; `bbdb-encache-message' as a macro but also the inherent
+             ;; semantics of message caching functions is changed, so
+             ;; the following calls are much the same here.
+             (if (functionp 'bbdb-encache-message)
+                 (car (bbdb-encache-message message-key (list record)))
+               (bbdb-encache-message message-key record))))))))
 
 ;;;###autoload
 (defun gnus-bbdb/annotate-sender (string &optional replace)