13" mba (and various other platforms)
macos 10.7.4
emacs i386-apple-darwin9.8.0, Carbon Version 1.6.0
wanderlust 2.15.9
bbdb 2.35

when i have kanji in a name and then save the .bbdb, i end up with \mush
in the file and lose the kanji.  i tried saving in mule,
iso-this-and-that, etc.  no love.  same problem for extended latin
alphabets.

it is likely my fault, as i seem to have accumulated an amazing amount
of bbdb cruft.

randy

(require 'bbdb-wl)
(bbdb-wl-setup)
;; enable pop-ups
(setq bbdb-use-pop-up nil)
;; auto collection
(setq bbdb/mail-auto-create-p nil)
;; exceptional folders against auto collection
(setq bbdb-wl-ignore-folder-regexp "^@")
(setq signature-use-bbdb t)
(setq bbdb-north-american-phone-numbers-p nil)
;; shows the name of bbdb in the summary :-)
(setq wl-summary-from-function 'bbdb-wl-from-func)
;; print full names as much as possible
(setq bbdb-dwim-net-address-allow-redundancy t)

;; bbdb gather from message send addresses
(defun zzz-bbdb-mail-send-function ()
  (bbdb-update-records
   (delete-if (lambda (item)
                (string= "" (caaddr item)))
              (bbdb-wl-get-addresses bbdb-get-only-first-address-p))
   t t))
(add-hook 'mail-send-hook 'zzz-bbdb-mail-send-function)

; canonicalize bbdb names
; Len Trigg <lenbok+mlb...@gmail.com>
(defun zzz-bbdb-canonicalize-name-hook (name)
  "Function used to canonicalize the full names of bbdb entries."
  (cond
    ;; strip extra quotes (Some MS mailer likes "'full name'")
    ((string-match "\\`[`'\"]\\(.*\\)[`'\"]\\'" name)
     (bbdb-match-substring name 1))
    ;; replace multiple whitespace with single
    ((string-match "[ \f\t\n\r\v]\\{2,\\}" name)
     (replace-match " " nil t name))
    ;; remove anything in round brackets, e.g.: "Firstname Surname (E-mail)"
    ((string-match "[ ]+(.*)" name)
     (replace-match "" nil t name))
    ;; strip leading whitespace (this is a bug in std11 libs?)
    ((string-match "\\`[ \t]+\\(.*\\)" name)
     (bbdb-match-substring name 1))
    ;; strip trailing whitespace
    ((string-match "\\(.*\\)[ ]+\\'" name)
     (bbdb-match-substring name 1))
    ;; strip Dr pronoun
    ((string-match "\\`Dr\\.? \\(.*\\)" name)
     (bbdb-match-substring name 1))
    ;; person and person -> person & person
    ((string-match "\\`\\(\\w+\\) and \\(\\w.+\\)\\'" name)
     (concat (bbdb-match-substring name 1) " & " (bbdb-match-substring name 2)))
    ;; Surname, Firstname -> Firstname Surname
    ((string-match "\\`\\(\\w.+\\), \\(\\w.+\\)\\'" name)
     (concat (bbdb-match-substring name 2) " " (bbdb-match-substring name 1)))
    ;; replace name without any whitespace with empty; I don't want bbdb names 
containing only a single name
    ((string-match "\\`\\(\\w+\\)\\'" name)
     ;;(message (format "Eliding name %s" name))
     "")
    (t name)))

;; make bbdb-wl-canonicalize-full-name-function behave like
;; bbdb-canonicalize-net-hook. (much more useful, imo)
(defun zzz-bbdb-canonicalize-name (name)
  (when name                            ;name is sometimes nil?
    (while (not (eq name (setq name (zzz-bbdb-canonicalize-name-hook name))))
      ;;(insert-string (concat name "\n"))
    ))
  name)

(setq bbdb-wl-canonicalize-full-name-function 'zzz-bbdb-canonicalize-name)

randy

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
bbdb-info@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/

Reply via email to