X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=mime-bbdb.el;h=cc6f7f28266c524fead91762b246b301b8db5fab;hb=10a330a36688503b11ce62b75d3bd914037d3535;hp=b6695b07e0570c9e44689dbe596424e0a34f51d4;hpb=d52a22861beba8d4eb3c41c6a41601da7c138554;p=elisp%2Fsemi.git diff --git a/mime-bbdb.el b/mime-bbdb.el index b6695b0..cc6f7f2 100644 --- a/mime-bbdb.el +++ b/mime-bbdb.el @@ -1,16 +1,13 @@ ;;; mime-bbdb.el --- SEMI shared module for BBDB -;; Copyright (C) 1995,1996 Shuhei KOBAYASHI -;; Copyright (C) 1996 Artur Pioro -;; Copyright (C) 1997 MORIOKA Tomohiko +;; Copyright (C) 1995,1996,1997 Shuhei KOBAYASHI +;; Copyright (C) 1997,1998 MORIOKA Tomohiko ;; Author: Shuhei KOBAYASHI -;; Artur Pioro ;; Maintainer: Shuhei KOBAYASHI -;; Version: $Id: mime-bbdb.el,v 0.3 1997-03-18 14:44:39 morioka Exp $ ;; Keywords: BBDB, MIME, multimedia, multilingual, mail, news -;; This file is part of SEMI (SEMI is Emacs MIME Interfaces). +;; This file is part of SEMI (Suite of Emacs MIME Interfaces). ;; This program is free software; you can redistribute it and/or ;; modify it under the terms of the GNU General Public License as @@ -29,7 +26,7 @@ ;;; Code: -(require 'file-detect) +(require 'path-util) (require 'std11) (require 'mime-view) @@ -105,10 +102,15 @@ For framepop users: If empty, `framepop-banish' is used instead.") (progn ;; (require 'bbdb-hooks) ; not provided. ;; (or (fboundp 'bbdb-extract-field-value) ; defined as autoload - (or (fboundp 'bbdb-header-start) - (load "bbdb-hooks")) + + ;; almost BBDB functions are autoloaded. + ;; (or (fboundp 'bbdb-header-start) + (or (and (fboundp 'bbdb-extract-field-value) + (not (eq 'autoload (car-safe (symbol-function + 'bbdb-extract-field-value))))) + (load "bbdb-hooks")) (fset 'tm:bbdb-extract-field-value - (symbol-function 'bbdb-extract-field-value)) + (symbol-function 'bbdb-extract-field-value)) (defun bbdb-extract-field-value (field) (let ((value (tm:bbdb-extract-field-value field))) (and value @@ -158,22 +160,24 @@ Creating or modifying it as necessary. A record will be created if mime-bbdb/auto-create-p is non-nil, or if OFFER-TO-CREATE is non-nil and the user confirms the creation." (save-excursion - (if (and mime-view-buffer - (get-buffer mime-view-buffer)) - (set-buffer mime-view-buffer)) + (if (and mime-preview-buffer + (get-buffer mime-preview-buffer)) + (set-buffer mime-preview-buffer)) (if bbdb-use-pop-up (mime-bbdb/pop-up-bbdb-buffer offer-to-create) - (let* ((from (std11-field-body "From")) - (addr (if from - (car (cdr (mail-extract-address-components from)))))) - (if (or (null from) - (null addr) - (string-match (bbdb-user-mail-names) addr)) - (setq from (or (std11-field-body "To") from)) + (let* ((message (get-text-property (point-min) 'mime-view-entity)) + (from (mime-entity-fetch-field message 'From)) + addr) + (if (or (null from) + (null (setq addr (car (mime-entity-read-field message 'From)))) + (string-match (bbdb-user-mail-names) + (std11-address-string addr))) + (setq from (or (mime-entity-fetch-field message 'To) + from)) ) (if from (bbdb-annotate-message-sender - from t + (mime-decode-field-body from 'From) t (or (bbdb-invoke-hook-for-value mime-bbdb/auto-create-p) offer-to-create) offer-to-create))