David S. Goldberg wrote: > (defun dsg-bbdb-duplicate-and-edit-record (record newname) > "Duplicates the current record, prompting for a new value for name." > (interactive (list (bbdb-get-record "Record to start from: ") > (read-string "New Name: "))) > (let ((omit-fields dsg-bbdb-omit-fields-on-duplicate) > (newnotes (bbdb-record-raw-notes (bbdb-current-record)))) > (while omit-fields > (setq newnotes (remove (assoc (car omit-fields) newnotes) newnotes)) > (setq omit-fields (cdr omit-fields))) > (bbdb-create-internal newname (bbdb-record-company record) > (bbdb-record-net record) > (bbdb-record-addresses record) > (bbdb-record-phones record) > newnotes)))
This is a very cool function, but you seem to be in the middle of editing it. In `interactive', you ask for a record, but you then get the new notes from `bbdb-current-record'. I am still on bbdb 2.00.06, so below is a slightly modified version of your code that I am using. I made three changes: 1. Use `bbdb-completing-read-record', the old name of `bbdb-get-record'. 2. Instead of `(bbdb-current-record)', use `record'. 3. Remove `net' field from duplicate, since my version doesn't allow duplicate net addresses. (defun dsg-bbdb-duplicate-and-edit-record (record newname) "Duplicates the current record, prompting for a new value for name." (interactive (list (bbdb-completing-read-record "Record to start from: ") (read-string "New Name: "))) (let ((omit-fields dsg-bbdb-omit-fields-on-duplicate) (newnotes (bbdb-record-raw-notes record))) (while omit-fields (setq newnotes (remove (assoc (car omit-fields) newnotes) newnotes)) (setq omit-fields (cdr omit-fields))) (bbdb-display-records (list (bbdb-create-internal newname (bbdb-record-company record) nil (bbdb-record-addresses record) (bbdb-record-phones record) newnotes))))) ; Colin _______________________________________________ [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/bbdb-info BBDB Home Page: http://bbdb.sourceforge.net/