It has been rather quiet on this list. Recently I discovered that my BBDB file was mis-sorted and I could well reproduce what had happened. I realized that I never paid much attention to how BBDB re-sorts the database after changing a record. The old code was rather complicated and error-prone. The new code is simpler and hopefully also more robust.
Also, I added a new snarfing rule `eu' following a suggestion by Marco Wahl sent to this list. I am sorry, Marco, my final code has turned out rather different from your original suggestion. Yet hopefully the new code will be more robust and it should also be useful for yet more people. 2015-11-08 Roland Winkler <wink...@gnu.org> Add new snarfing rule eu for many continental European countries. Improve snarfing algorithm. * lisp/bbdb-snarf.el (bbdb-snarf-rule-alist): Add new rule eu. (bbdb-snarf-phone-nanp-regexp, bbdb-snarf-postcode-us-regexp) (bbdb-snarf-url-regexp): Improve regexp. Use first subexpression. (bbdb-snarf-mail-regexp): New variable. (bbdb-snarf-mail): Use it. (bbdb-snarf-address-us-country): New variable. (bbdb-snarf-address-us): Use it. Check whether we actually snarfed an address. (bbdb-snarf-phone-eu-regexp, bbdb-snarf-postcode-eu-regexp) (bbdb-snarf-address-eu-country): New variables. (bbdb-snarf-label): Use save-match-data. (bbdb-snarf-phone-nanp): Use save-match-data. Reverse order of snarfed phone numbers. (bbdb-snarf-phone-eu, bbdb-snarf-address-eu): New functions. 2015-11-08 Roland Winkler <wink...@gnu.org> Simplify re-sorting of records when a record has been changed. Re-display re-sorted records. * lisp/bbdb.el (bbdb-need-to-sort): Removed. (bbdb-record-set-name): Simplify accordingly. (bbdb-record-set-sortkey): Always evaluate new sortkey. (bbdb-record-sortkey): Simplify accordingly. (bbdb-change-record): Sort records if we have a new sort key. (bbdb-redisplay-record-globally): Rename from bbdb-maybe-update-display. New optional arg sort. (bbdb-delete-record-internal, bbdb-insert-record-internal): Do not unset sort key. (bbdb-display-records): Put point at beginning of buffer. (bbdb-redisplay-record): New optional arg sort. Throw error if record was not displayed previously. (bbdb-sort-records): Clarify status message. Redisplay sorted records. * lisp/bbdb-com.el (bbdb-fix-records): Sort records. (bbdb-create, bbdb-create-internal, bbdb-merge-records): Use nil for unused second arg of bbdb-change-record. (bbdb-edit-field, bbdb-transpose-fields): Do not worry about re-sorting records. * lisp/bbdb-mua.el (bbdb-annotate-message): Use nil for unused second arg of bbdb-change-record. ------------------------------------------------------------------------------ _______________________________________________ firstname.lastname@example.org https://lists.sourceforge.net/lists/listinfo/bbdb-info BBDB Home Page: http://bbdb.sourceforge.net/