Colin Rafferty <[EMAIL PROTECTED]> writes: > Micha Wiedenmann wrote: > >> bbdb automatically adds the x-face to the bbdb-records, but I don't know >> how to add several xfaces to the face-field. A new xface is appended via >> ", " this destroys both, the old and the new x-faces. > > (put 'face 'field-separator "\n")
I always wondered how to do this in Emacs 21. Rather than messing with bbdb-gui.el, which I had some difficulties in understanding because it uses lots of low-level stuff from vm (which I do not know), and is written for XEmacs (which I do not use), I went a different route. Integrating this back into bbdb-gui is probably messy and would ideally involve some refactoring as well. :( This uses the bbdb-list-hook, and adds a little defun there that contains some code ripped from the gnus files, and which requires the gnus file gnus-ems and its dependencies. I use Oort Gnus, so YMMV. When you want to add somebody's face, you must first use `t' to show the headers, and then stuff after the X-Face: header. For a BBDB record, create a new field named `face' and paste the copied cruft. If you want several faces, separate them via a comma and a space. I think the space is invalid within an X-Face, but I could be wrong. (add-hook 'bbdb-list-hook 'bbdb/gnus-display-xface) (defun bbdb/gnus-display-xface () "Search for face properties and display the faces." (when (or (gnus-image-type-available-p 'xface) (gnus-image-type-available-p 'pbm)) (save-excursion (goto-char (point-min)) (let ((inhibit-read-only t); edit the BBDB buffer (default-enable-multibyte-characters nil); prevents corruption pbm faces) (while (re-search-forward "^ face: \\(.*\\)" nil t) (setq faces (match-string 1)) (replace-match "" t t nil 1) (dolist (data (split-string faces ", ")) (setq pbm (uncompface data)) (if (gnus-image-type-available-p 'xface) (insert-image (gnus-create-image (concat "X-Face: " data) 'xface t :ascent 'center :face 'gnus-x-face)) (when pbm (insert-image (gnus-create-image pbm 'pbm t :ascent 'center :face 'gnus-x-face)))) (insert " "))))))) It works for me. If you want to experiment with the elisp, here is the piece of code I needed to get started. (let ((default-enable-multibyte-characters nil)) (insert-image (gnus-create-image (uncompface "^BC$`[IcggstLPyen&dqF+b2'zyK#r.mU*'Nms}@&4zw%SJ#5!/7SMVjBS7'lb;QK)|IPU5U'o1'522W4TyzB3Ab*IBo^iw]l4|kUbdZuUDO6=Um-.4IzhNiV'B\"@K#jy_(wW|Zbk[34flKY^|PrQ?$u2\\fKg^]AY>wOX#H32i") 'pbm t :ascent 'center :face 'gnus-x-face))) Does anybody have a nice piece of code, that will let me add a face to a record when I hit `:' on a message? Alex. ------------------------------------------------------- This sf.net email is sponsored by: Access Your PC Securely with GoToMyPC. Try Free Now https://www.gotomypc.com/s/OSND/DD _______________________________________________ [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/bbdb-info BBDB Home Page: http://bbdb.sourceforge.net/