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/

Reply via email to