-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;; The big stuff (bbdb, mailcrypt, etc.)
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(setq bbdb-file "~/private/bbdb")
-
-(when (file-exists-p bbdb-file)
-
- ;; Failsafe version if we can't load bbdb
- (defun ff/explicit-name (email) email)
-
- (when (ff/load-or-alert "bbdb")
-
- (setq
- ;; Stop asking (if not t or nil, will not ask)
- bbdb-offer-save 'never
- ;; I hate when bbdb decides to mess up my windows
- bbdb-use-pop-up nil
- ;; I have no problem with bbdb asking me if the sender email
- ;; does not match exactly the address we have in the database
- bbdb-quiet-about-name-mismatches 0
- ;; I have european friends, too
- bbdb-north-american-phone-numbers-p nil
- ;; To cycle through all possible addresses
- bbdb-complete-name-allow-cycling t
- ;; Cycle with full names only, not through all net-addresses alone too
- bbdb-dwim-net-address-allow-redundancy t
- ;; Do not add new addresses automatically
- bbdb-always-add-addresses nil
- )
-
- (defface ff/known-address-face
- '((t (:foreground "blue2")))
- "The face to display known mail identities.")
-
- (defface ff/unknown-address-face
- '((t (:foreground "gray50")))
- "The face to display unknown mail identities.")
-
- (defun ff/explicit-name (email)
- "Returns a string identity for the first address in EMAIL. The
-identity is taken from bbdb if possible or from the address itself
-with mail-extract-address-components. The suffix \"& al.\" is added if
-there are more than one address.
-
-If no bbdb record is found, the name is propertized with the face
-ff/unknown-address-face. If a record is found and contains a note
-'face, the associated face is used, otherwise
-ff/known-address-face is used."
-
- (and email
- (let* ((data (mail-extract-address-components email))
- (name (car data))
- (net (cadr data))
- (record (bbdb-search-simple nil net)))
-
- (concat
-
- (condition-case nil
- (propertize (bbdb-record-name record)
- 'face
- (or (cdr (assoc 'face
- (bbdb-record-raw-notes record)))
- 'ff/known-address-face))
- (error
- (propertize (or (and data (concat "<" net ">"))
- "*undefined*")
- 'face 'ff/unknown-address-face)
- ))
- (if (string-match "," (mail-strip-quoted-names email)) " & al.")
- )))
- )
-
- (ff/configure-faces '((ff/robot-address-face :foreground "green4")
- (ff/personal-address-face :foreground "dark magenta" :weight 'bold)
- (ff/important-address-face :foreground "red3"
- :weight 'bold
- )))
-
- )
- )
-