[this is a followup to my report of this bug last week, with some more
insight]
I have a few records with multiple net addresses, but each net address
has a common prefix. The desired behavior is for bbdb-complete-name
to complete the primary net address first, but bbdb chooses one of the
net addresses randomly.
E.g. say I have the record "Bob Smith" [EMAIL PROTECTED], [EMAIL PROTECTED]
When I bbdb-complete-name on "bobs" the [EMAIL PROTECTED] is completed
first.
This seems to happen randomly, probably because the order of
bbdb-hashtable is random.
Attempts to minimize my .bbdb down to a small test case failed -- I
can send my whole .bbdb privately if desired.
However, this might be a simple fix. I notice this code in
bbdb-complete-name that looks like it tries to address this problem:
;; This is to pick the primary mail address by default, unless
;; it's not a valid expansion of 'pattern' above.
;;
;; There is a small amount of non-obviousness here; if, for
;; example, I type ronan<M-TAB>, should this fill in
;; "[EMAIL PROTECTED]", or the primary email record
;; for "Ronan Waide"? Possibly yet another tuning parameter. Oop.
(and (stringp completion)
yeah-yeah-this-one
only-one-p
...
However, it is easy to tell from the code prior that
yeah-yeah-this-one and only-one-p will never be true at the same time,
so this code will never execute.
Emacs : GNU Emacs 21.1.1 (i386-debian-linux-gnu, X toolkit, Xaw3d scroll bars)
of 2001-10-25 on raven, modified by Debian
Package: BBDB 2.33
current state:
==============
(setq
emacs-version "21.1.1"
bbdb-version-date "$Date: 2001/11/19 21:37:47 $"
bbdb-file-format 6
bbdb-no-duplicates-p nil
bbdb-address-editing-function 'bbdb-address-edit-default
bbdb-address-formatting-alist '((bbdb-address-is-continental .
bbdb-format-address-continental)
(nil . bbdb-format-address-default))
bbdb-addresses-label-list '("Home" "Office" "Mobile" "Other" "Forwarder"
"Work")
bbdb-after-change-hook '(bbdb/gnus-score-invalidate-alist)
bbdb-after-read-db-hook nil
bbdb-always-add-addresses nil
bbdb-auto-notes-alist nil
bbdb-auto-notes-ignore nil
bbdb-auto-notes-ignore-all nil
bbdb-auto-revert-p nil
bbdb-canonical-hosts
"cs\\.cmu\\.edu\\|ri\\.cmu\\.edu\\|edrc\\.cmu\\.edu\\|andrew\\.cmu\\.edu\\|mcom\\.com\\|netscape\\.com\\|cenatls\\.cena\\.dgac\\.fr\\|cenaath\\.cena\\.dgac\\.fr\\|irit\\.fr\\|enseeiht\\.fr\\|inria\\.fr\\|cs\\.uiuc\\.edu\\|xemacs\\.org"
bbdb-canonicalize-net-hook 'my-bbdb-canonicalize-net-hook
bbdb-canonicalize-redundant-nets-p t
bbdb-case-fold-search t
bbdb-change-hook '(bbdb-timestamp-hook)
bbdb-check-zip-codes-p t
bbdb-complete-name-allow-cycling t
bbdb-complete-name-full-completion 5
bbdb-complete-name-hooks '(ding)
bbdb-completion-display-record nil
bbdb-completion-type nil
bbdb-continental-zip-regexp "^\\s *[A-Z][A-Z]?\\s *-\\s *[0-9][0-9][0-9]"
bbdb-create-hook '(bbdb-creation-date-hook)
bbdb-default-area-code nil
bbdb-default-country "Emacs"
bbdb-default-domain nil
bbdb-default-label-list '("Home" "Office" "Mobile" "Other")
bbdb-define-all-aliases-field 'mail-alias
bbdb-dial-local-prefix nil
bbdb-dial-local-prefix-alist '(((if bbdb-default-area-code
(format "(%03d)" bbdb-default-area-code) "")
"")
)
bbdb-dial-long-distance-prefix nil
bbdb-display-layout nil
bbdb-display-layout-alist '((one-line (order phones mail-alias net notes)
(name-end . 24) (toggle . t))
(multi-line (indention . 14) (toggle . t))
(pop-up-multi-line (indention . 14)))
bbdb-dwim-net-address-allow-redundancy t
bbdb-electric-p nil
bbdb-elided-display nil
bbdb-expand-mail-aliases t
bbdb-extract-address-component-handler 'message
bbdb-extract-address-component-ignore-regexp
"\\(\\(undisclosed\\|unlisted\\)[^,]*recipients\\)\\|no To-header on input"
bbdb-extract-address-component-regexps '(("\"\\([^\"]*\\)\"\\s-*<\\([^>]+\\)>"
(bbdb-clean-username
(match-string 1 adstring)
)
2)
("\"\\([^\"]*\\)\"\\s-*<\\([^>]+\\)>"
(bbdb-clean-username
(match-string 1 adstring)
)
2)
("\\(\\b[^<,]*\\b\\)\\s-*<\\([^>]+\\)>" 1 2)
("<\\([^>]+\\)>" nil 2)
("\\(\\b[^<\",()]+\\b\\)\\s-*(\\([^)]+\\))"
2 1)
("\\b\\(\\([^@]+\\.[^@]+\\)@[0-9a-z._-]+\\)\\b"
(bbdb-clean-username
(match-string 2 adstring)
)
1)
("\\b\\(\\([0-9a-z._-+]+\\)@[0-9a-z._-]+\\)\\b" nil 1)
("\\b\\([0-9a-z._-]+\\)\\b" nil 1))
bbdb-extract-address-components-func 'bbdb-rfc822-addresses
bbdb-file "~/.bbdb"
bbdb-file-remote nil
bbdb-file-remote-save-always t
bbdb-finger-buffer-name "*finger*"
bbdb-finger-host-field 'finger-host
bbdb-get-addresses-headers '((authors "From" "Resent-From" "Reply-To")
(recipients "Resent-To" "Resent-CC" "To" "CC"
"BCC")
)
bbdb-get-only-first-address-p t
bbdb-gui t
bbdb-hashtable-size 1021
bbdb-ignore-most-messages-alist nil
bbdb-ignore-selected-messages-confirmation nil
bbdb-ignore-some-messages-alist nil
bbdb-info-file nil
bbdb-initialize-hook nil
bbdb-legal-zip-codes '("^$"
"^[ \n]*[0-9][0-9]?[0-9]?[0-9]?[0-9]?[0-9]?[ \n]*$"
"^[ \n]*\\([0-9][0-9][0-9][0-9][0-9]\\)[ \n]*-?[
\n]*\\([0-9][0-9][0-9][0-9]?\\)[ \n]*$" "^[ \n]*\\([A-Za-z0-9]+\\)[
\n]+\\([A-Za-z0-9]+\\)[ \n]*$" "^[ \n]*\\([A-Z]+\\)[ \n]*-?[
\n]*\\([0-9]+ ?[A-Z]*\\)[ \n]*$" "^[ \n]*\\([A-Z]+\\)[ \n]*-?[
\n]*\\([0-9]+\\)[ \n]+\\([0-9]+\\)[ \n]*$")
bbdb-list-hook '(bbdb-fontify-buffer)
bbdb-load-hook nil
bbdb-message-caching-enabled t
bbdb-message-marker-field 'mark-char
bbdb-mode-hook nil
bbdb-modem-device "/dev/modem"
bbdb-modem-dial nil
bbdb-new-nets-always-primary nil
bbdb-north-american-phone-numbers-p t
bbdb-notes-default-separator ", "
bbdb-notes-sort-order '((notes . 0) (www . 1) (ftp . 2) (gopher . 3)
(telnet . 4) (mail-alias . 5) (mail-folder . 6)
(lpr . 7) (creation-date . 1000) (timestamp . 1001))
bbdb-notice-auto-save-file nil
bbdb-notice-hook nil
bbdb-offer-save 'always-save
bbdb-phones-label-list '("Home" "Office" "Mobile" "Other" "Work"
"FAX (personal)" "FAX (bank)")
bbdb-pop-up-display-layout 'one-line
bbdb-pop-up-elided-display nil
bbdb-pop-up-target-lines 1
bbdb-quiet-about-name-mismatches 0
bbdb-readonly-p nil
bbdb-refile-notes-default-merge-function 'bbdb-refile-notes-default-merge-function
bbdb-refile-notes-generate-alist '((creation-date .
bbdb-refile-notes-string-least)
(timestamp . bbdb-refile-notes-string-most)
)
bbdb-save-db-timeout nil
bbdb-send-mail-style nil
bbdb-silent-running nil
bbdb-snarf-web-prop 'www
bbdb-sound-files ["/usr/demo/SOUND/sounds/touchtone.0.au"
"/usr/demo/SOUND/sounds/touchtone.1.au" "/usr/demo/SOUND/sounds/touchtone.2.au"
"/usr/demo/SOUND/sounds/touchtone.3.au" "/usr/demo/SOUND/sounds/touchtone.4.au"
"/usr/demo/SOUND/sounds/touchtone.5.au" "/usr/demo/SOUND/sounds/touchtone.6.au"
"/usr/demo/SOUND/sounds/touchtone.7.au" "/usr/demo/SOUND/sounds/touchtone.8.au"
"/usr/demo/SOUND/sounds/touchtone.9.au" "/usr/demo/SOUND/sounds/touchtone.pound.au"
"/usr/demo/SOUND/sounds/touchtone.star.au"]
bbdb-sound-player "/usr/demo/SOUND/play"
bbdb-time-display-format "%d %b %Y"
bbdb-update-records-mode 'annotating
bbdb-use-alternate-names t
bbdb-use-pop-up t
bbdb-user-mail-names
"^matt\\.armstrong@openwave\\.com\\|matt@\\([^\\.]*\\.\\)?phone\\.com\\|matt\\(+.*\\)?@lickey\\.com\\|matta@bluemug\\.com$"
bbdb-write-file-hooks '(bbdb-write-file-hook-fn)
bbdb/gnus-lines-and-from-length 18
bbdb/gnus-score-default nil
bbdb/gnus-score-field 'gnus-score
bbdb/gnus-split-crosspost-default nil
bbdb/gnus-split-default-group "mail.misc"
bbdb/gnus-split-myaddr-regexp "^matt$\\|^matt@\\([-a-z0-9]+\\.\\)*lickey.com$"
bbdb/gnus-split-nomatch-function nil
bbdb/gnus-split-private-field 'gnus-private
bbdb/gnus-split-public-field 'gnus-public
bbdb/gnus-summary-in-bbdb-format-letter "b"
bbdb/gnus-summary-known-poster-mark "+"
bbdb/gnus-summary-mark-known-posters t
bbdb/gnus-summary-prefer-bbdb-data t
bbdb/gnus-summary-prefer-real-names t
bbdb/gnus-summary-show-bbdb-names t
bbdb/gnus-summary-user-format-letter "B"
bbdb/gnus-update-records-mode 'annotating
bbdb/mail-auto-create-p t
bbdb/news-auto-create-p nil
bbdb/vm-set-auto-folder-alist-field 'vm-folder
features '(cl-specs edebug reporter vc-cvs bbdb-hooks dired enriched noutline
outline easy-mmode vc vc-sccs inf-ruby ruby-mode etags debug
gnus-bcklg gnus-draft gnus-agent nnvirtual gnus-cus gnus-topic
gnus-score score-mode flow-fill dabbrev newcomment view bbdb-gui
sort smiley gnus-cite gnus-async gnus-dup gnus-ml gnus-msg nndraft
nnmh gnus-cache nnfolder byte-opt bytecomp byte-compile nnml
bbdb-gnus gnus-art mm-uu binhex uudecode mm-view gnus-sum
gnus-group gnus-undo nnmail mail-source format-spec bbdb-snarf
mail-extr bbdb-com mailabbrev sendmail nntp nnoo gnus-start
message rfc822 mml easymenu mml-sec mml-smime smime comint ring
dig mml1991 mml2015 gpg mm-decode mm-bodies mm-encode mailcap
mail-parse rfc2045 rfc2231 rfc2047 qp ietf-drums mailheader
canlock gnus-range gnus-spec gnus-int gnus-win gnus gnus-ems
gnus-util time-date parse-time nnheader mail-utils mm-util
mule-util mail-prsvr wid-edit flyspell ispell p4-menu protbuf
generic-x typematic rsz-mini p4 bbdb-autoloads bbdb timezone
ctypes tempo pp skeleton autoinsert jit-lock font-lock regexp-opt
time uniquify gnuserv-compat gnuserv devices advice advice-preload
cl cl-19 msb iswitchb autorevert paren pager jka-compr filladapt
generic pcmpl-auto eshell-auto tooltip image tool-bar disp-table
fontset ediff-hook vc-hooks lisp-float-type lisp-mode page
menu-bar timer select scroll-bar mldrag mouse facemenu faces
cus-face frame misc-lang vietnamese tibetan thai lao korean
japanese hebrew greek romanian slovak czech european ethiopic
devanagari indian cyrillic chinese case-table help overlay md5
base64 format mule env backquote custom widget x-toolkit)
)
--
matt
_______________________________________________
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/bbdb-info
BBDB Home Page: http://bbdb.sourceforge.net/