On Monday, February 9, 2004 at 17:18:49, Reiner Steib wrote:
> On Sun, Feb 01 2004, Ronan Waide wrote:
>
> > I've tweaked this to automatically listify the mail addresses if
> > they're not already in list form.
>
> Thanks.
>
> > Try what's in CVS and see if it works for you.
>
> `bbdb-merge-interactively' works now. But another (unrelated?)
> problem appeared:
There is a list of records where we expect a record.
Below is a patch for approval, discussion and some other
things beside the bug described above ...
Index: lisp/bbdb-com.el
===================================================================
RCS file: /cvsroot/bbdb/bbdb/lisp/bbdb-com.el,v
retrieving revision 1.169
diff -u -r1.169 bbdb-com.el
--- lisp/bbdb-com.el 13 Oct 2003 08:38:53 -0000 1.169
+++ lisp/bbdb-com.el 11 Feb 2004 16:40:21 -0000
@@ -981,7 +981,9 @@
(bbdb-change-record record need-to-sort)
(bbdb-redisplay-one-record record)
;; (bbdb-offer-save)
- (if (and (eq 'property (car field)) (eq 'mail-alias (caadr field)))
+ (if (and (eq 'property (car field))
+ (or (eq 'mail-alias (caadr field))
+ (eq 'net (caadr field))))
(setq bbdb-define-all-aliases-needs-rebuilt 'edit))
))
@@ -1206,10 +1208,11 @@
(if bbdb-no-duplicates-p
(let ((rest newnets))
(while rest
- (let ((old (bbdb-gethash (downcase (car rest)))))
- (if (and old (not (eq old bbdb-record)))
+ (let ((old (delete bbdb-record (bbdb-gethash (downcase (car rest))))))
+ (if old
(error "net address \"%s\" is used by \"%s\""
- (car rest) (bbdb-record-name old))))
+ (car rest) (mapconcat (lambda (r) (bbdb-record-name r))
+ old ", "))))
(setq rest (cdr rest)))))
;; then update.
(let ((rest oldnets))
@@ -2594,11 +2597,11 @@
"*The type of alias which are created.
first: Default is to generate an abbrev which is \"alias\" and expands to the
primary net.
-star: Generate an extra alias \"<alias>*\" whic expands to all nets of an
+star: Generate an extra alias \"<alias>*\" which expands to all nets of an
record.
-all: Generate an alias as for all nets ('star) and an alias for each net
- as \"<alias>n\" where n is the position of the net in the nets of the
- record."
+all: Generate an alias all nets (as for 'star) and an alias for each net
+ as \"<alias>n\" where n is the position of the net in the nets of the
+ record."
:group 'bbdb
:type '(choice (symbol :tag "Only first" first)
(symbol :tag "<alias>* for all nets" star)
@@ -2718,6 +2721,7 @@
;; these to records, which is plenty fast.
(fset alias (list 'lambda '()
(list 'bbdb-mail-abbrev-expand-hook
+ alias
(list 'quote
(mapcar (lambda (x)
(car (bbdb-record-net x)))
@@ -2739,7 +2743,14 @@
(setq bbdb-define-all-aliases-needs-rebuilt nil)
(bbdb-define-all-aliases))))
-(defun bbdb-mail-abbrev-expand-hook (records)
+(defcustom bbdb-mail-abbrev-expand-hook nil
+ "*Hook or hooks invoked each time an alias is expanded.
+The hook is called with two arguments the alias and the list of records."
+ :group 'bbdb-hooks
+ :type 'hook)
+
+(defun bbdb-mail-abbrev-expand-hook (alias records)
+ (run-hook-with-args 'bbdb-mail-abbrev-expand-hook alias records)
(mail-abbrev-expand-hook)
(when bbdb-completion-display-record
(if bbdb-use-pop-up
-------------------------------------------------------
SF.Net is sponsored by: Speed Start Your Linux Apps Now.
Build and deploy apps & Web services for Linux with
a free DVD software kit from IBM. Click Now!
http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click
_______________________________________________
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/