> Is it trivial to add fields to BBDB's format?
Just adding fields is trivial ... but I have something that
automatically adds a "country" field based on the e-mail address.
Here it is.
Enjoy.
--
Charles Durst .-------------------------------------.
CenterLine Software, Inc. | Email: [EMAIL PROTECTED] |
(formerly Saber Software) | Phone: (617) 498-3309 |
10 Fawcett Street | Web: http://www.centerline.com/ |
Cambridge, MA 02138-1110 USA `-------------------------------------'
------------------------------------------------------------------------------
First, add the following code to your .emacs (or .vm) file:
;; Define domain-country-list
(require 'country-info)
Then add the code marked with ">>>" to wherever you set bbdb-auto-notes-alist.
You may need to rearrange things a little to do this, so I'll show you
how I do it:
;; Note: if debugging changes to bbdb-auto-notes-alist, you should probably
;; set "bbdb-message-caching-enabled" to nil.
(setq bbdb-auto-notes-alist
(append
(list
(append '("From")
'(
("^[^@!]*$" company "<Your company name here>")
<other, literal From-related notes go here>
)
>>> ;; Recognize the country names implicit in the address
>>> (mapcar (function
>>> (lambda (x)
>>> (list (concat "@[^<>, ()]*\\." (car x) "\\([<>,
>()].*\\)?$")
>>> 'country
>>> (nth 1 x))))
>>> domain-country-list)
>>> )
)
'(
("Newsgroups" (".*" newsgroup 0))
("Organization" (".*" company 0))
("Organisation" (".*" company 0))
("X-Organization" (".*" company 0))
("X-Organisation" (".*" company 0))
("Web" (".*" url 0))
("X-Web" (".*" url 0))
("X-WWW-Homepage" (".*" url 0))
;; This is what Netscape puts in when sending a URL reference
("X-Url" (".*" last-url 0))
)
))
------------------------------------------------------------------------------
Here is the country-info.el file as a uuencoded gzipped file. It is
just a lisp database of ISO two-letter country codes and matching
country names in English.
begin 644 country-info.el.gz
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
+OOL;!KHT0B46```3
`
end