[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 8776051 341/350: Changes to manual and README, re
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 8776051 341/350: Changes to manual and README, reflecting EBDB's move to ELPA |
Date: |
Mon, 14 Aug 2017 11:47:07 -0400 (EDT) |
branch: externals/ebdb
commit 8776051a4857a0abccec773f74c5303b5288af78
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Changes to manual and README, reflecting EBDB's move to ELPA
* README.org: This was sort of acting as a manual, before we had one.
* ebdb.org: Mention which packages are now separately loadable.
* ebdb.info: etc
* ebdb.texi: etc
---
README.org | 86 +++++--------------------------------
ebdb.info | 142 ++++++++++++++++++++++++++++++++-----------------------------
ebdb.org | 52 +++++++++++++---------
ebdb.texi | 45 ++++++++++++--------
4 files changed, 146 insertions(+), 179 deletions(-)
diff --git a/README.org b/README.org
index 32c984d..bdf6bfb 100644
--- a/README.org
+++ b/README.org
@@ -1,81 +1,17 @@
* EBDB
-EBDB is a EIEIO port of the BBDB package for Emacs.
+EBDB is a contact management/addressbook package for Emacs.
-In plain English: it is a re-write of the Insidious Big Brother
-Database -- Emacs' principal contact management/addressbook program --
-using Emacs Lisp's (relatively new) object oriented libraries. The "E"
-is vaguely meant to signify "EIEIO".
-** Why Did You Do This?
-In part to gain practice in writing object-oriented Elisp. The EIEIO
-and generic-function libraries are based on Common Lisp's
[[https://en.wikipedia.org/wiki/Common_Lisp_Object_System][CLOS system]],
-which I think is the
[[http://www.gigamonkeys.com/book/object-reorientation-generic-functions.html][cat's
pyjamas]].
+It's a re-write of the Insidious Big Brother Database
([[https://savannah.nongnu.org/projects/bbdb/][BBDB]]) using
+Emacs Lisp's (relatively new) object oriented libraries. The "E" is
+vaguely meant to signify
"[[https://ericabrahamsen.net/tech/2016/feb/bbdb-eieio-object-oriented-elisp.html][EIEIO]]".
-Also, a database/record-keeping library is an excellent candidate for
-the object-oriented programming approach. By making databases, records
-and fields into classes (and by making sure that the library code
-itself is agnostic as possible about those classes), third-party
-developers can easily create new subclasses, and new behavior for
-existing classes. By loading external packages, users can augment the
-behavior of EBDB without having to use hooks or even customization
-options.
-** Okay, But What's Cool About It Right Now?
-EBDB as it stands provides a few enhancements over BBDB.
+It lives in both the ELPA repositories, and on Github at
+https://github.com/girzel/ebdb. It's best to
[[https://www.emacswiki.org/emacs/InstallingPackages][install from ELPA]], but
+bug reports and pull requests on Github will also be attended to.
+Alternately, run ~report-emacs-bugs~, include "EBDB" somewhere in the
+subject line, and cc the maintainer.
-1. Multiple databases.
-2. Records are identified by UUID. Combined with multiple database
- support, this means that single records can live in more than one
- database. The loading routine checks for duplicate records and does
- its best to automatically merge them. Loading, editing and saving
- records into multiple databases should all work transparently.
-3. Organizations are top-level records. To be precise, both "people"
- and "organizations" are subclasses of an abstract parent class
- (other record classes are planned). A person record can have a
- "role" at an organization, and that role can contain an arbitrary
- amount of metadata.
-4. Records can have relations to other records.
-5. ebdb-i18n.el. This pluggable internationalization framework allows
- developers to write country-specific libraries providing different
- behavior for records and fields depending on nationality. It works
- for all countries except Abkhazia and the Vatican (don't ask).
-6. High configurability. EBDB has many customization options (though
- fewer than BBDB had), but users and developers who are familiar
- with generic functions can use them to fundamentally alter the
- behavior and appearance of EBDB with very little code, and fairly
- low risk of breakage. Want to prepend the string "Hi my name is "
- to all the record names in your EBDB buffer? That would be three
- lines of code.
-7. A native vCard database class is on its way. A native CardDav
- database class is following at a significant distance.
-** What Are the Drawbacks?
+More EBDB-related packages are available in ELPA.
-Buggy code! Potential data loss! This is still very much beta.
-
-Other than that, loading is a bit slow, and the database persistence
-file is significantly larger than it was in BBDB. It's likely that
-optimizations can be made to reduce load times, and the size of the
-persistence file.
-** I Still Want to Try This, Is There a Migration Scheme?
-Yes, EBDB will read and migrate from a BBDB v3 data file. Actually,
-EBDB preserves the BBDB's old migration routines, so theoretically you
-could go from a BBDB v2 file, through BBDB v3, straight to EBDB. I
-wouldn't recommend that, though. To migrate:
-
-1. Load the EBDB code while your BBDB customizations are still in
- place -- specifically, the `bbdb-file' option should point to your
- existing BBDB file.
-2. Back up that file.
-3. Set `ebdb-sources' to a non-existent file name, where you'd like to
- keep the new database.
-4. Run `ebdb-load'. You'll be prompted to create the new database, and
- migrate to the new format. It will take a surprisingly long time.
-5. If there were any migration failures, you'll get a "BBDB Migration"
- buffer containing the records which couldn't be migrated. Migration
- bug reports are very welcome.
-
-Once you're migrated, load MUA interaction by simply requiring the
-relevant libraries, ie ebdb-gnus or ebdb-message. There's no more
-`initialize' or `auto-update-init'.
-
-Many of the customization options have changed: there are fewer of
-them, for a start. Please see the manual for details.
+See the manual for usage details.
diff --git a/ebdb.info b/ebdb.info
index 6082813..6f934fa 100644
--- a/ebdb.info
+++ b/ebdb.info
@@ -145,7 +145,7 @@ management software, it is enough to call the top-level
‘ebdb’ command.
This will create a new database at the location specified by
‘ebdb-sources’ (see *note The EBDB Database::), prompt you for a search
string, fail to find anything (because you don’t have any records yet),
-and lastly open a *EBDB* buffer where you can start to make new records
+and finally open a *EBDB* buffer where you can start to make new records
(see *note Creating Records::).
* Menu:
@@ -174,7 +174,7 @@ customizations still in place, set ‘ebdb-sources’ to a
non-existent file
name, and then run ‘ebdb-load’ (or any of the other EBDB entry
commands). You’ll be prompted to create the new database, and upgrade
from BBDB. If any records could not be upgraded, they will be displayed
-in an *EBDB Migration* buffer.
+in an *EBDB Migration* buffer. Migration bug reports are very welcome.
File: ebdb.info, Node: Variables and Options, Prev: Record Migration, Up:
Migration from BBDB
@@ -1098,16 +1098,17 @@ File: ebdb.info, Node: Completion, Next: Snarfing,
Prev: EBDB Buffers, Up: T
7 Completion
************
-There are many Emacs completion frameworks out there, and EBDB comes
-with support for helm, counsel, and company. See the relevant
-libraries; they provide the commands ‘helm-ebdb’, ‘counsel-ebdb’, and
-‘company-ebdb’, respectively. Counsel and company are made to be hooked
-into Emacs’ existing completion frameworks; the helm command must be
-called explicitly.
-
- Another library, ‘ebdb-complete’, uses an ephemeral pop-up *EBDB*
-buffer for record completion. The command ‘ebdb-complete’ provides an
-interactive entry point, or you can enable it for “TAB” in
+There are many Emacs completion frameworks out there, and libraries
+exist providing EBDB support for helm, counsel, and company—these
+libraries must be loaded from the package repositories. These libraries
+provide the commands ‘helm-ebdb’, ‘counsel-ebdb’, and ‘company-ebdb’,
+respectively. Counsel and company are made to be hooked into Emacs’
+existing completion frameworks; the helm command must be called
+explicitly.
+
+ Another built-in library, ‘ebdb-complete’, uses an ephemeral pop-up
+*EBDB* buffer for record completion. The command ‘ebdb-complete’
+provides an interactive entry point, or you can enable it for “TAB” in
‘message-mode’ by calling ‘ebdb-complete-enable’.
Several native EBDB commands involve selecting a record, or multiple
@@ -1175,16 +1176,23 @@ EBDB comes with an internationalization framework that
can provide
country- and region-specific behavior for certain fields. This
functionality is initialized by loading the ‘ebdb-i18n’ library. This
library does nothing by itself, it simply provides hooks for other
-country-specific libraries, which must be loaded separately.
+country-specific libraries.
+
+ Country libraries that do not depend on other external libraries may
+live within the EBDB codebase, in which case they will be loaded
+automatically when ‘ebdb-i18n’ is loaded. Libraries with extra
+dependencies may be found in the package repositories.
- At present, EBDB comes with only one country-specific library,
-‘ebdb-chn’, for Chinese-related fields. It parses and displays phone
-numbers and names correctly, and also allows users to search on Chinese
-names using pinyin. It requires the ‘pyim’ package, available on MELPA.
+ EBDB currently comes with only one country library, ‘ebdb-i18n-chn’,
+for Chinese-related fields. It parses and displays phone numbers and
+names correctly, and also allows users to search on Chinese names using
+pinyin. It can be installed from ELPA, and requires the ‘pyim’ package,
+available on MELPA.
The present dearth of libraries is a result of the author scratching
-his own itch. Contributions of new libraries are very welcome. Also
-welcome, though less enthusiastically, are requests for new libraries.
+his own itch. Contributions of new libraries are very welcome (see
+*note Writing Internationalization Libraries::). Also welcome, though
+less enthusiastically, are requests for new libraries.
Internationalization libraries do not modify the database in any way,
and can be safely unloaded. They simply alter the way EBDB reads,
@@ -1896,54 +1904,54 @@ Index
Tag Table:
Node: Top806
Node: Getting Started2320
-Node: Migration from BBDB2942
-Node: Record Migration3117
-Node: Variables and Options3654
-Node: The EBDB Database4140
-Node: Creating Records7296
-Node: Record classes8343
-Node: Record names8676
-Node: Record Fields9351
-Node: Inserting New Fields9595
-Node: Editing Existing Fields10391
-Node: Deleting Records and Fields10991
-Node: Field Types11387
-Node: Role Fields13232
-Node: MUA Interaction14923
-Node: Loading MUA Code15447
-Node: Display and Updating16160
-Node: Pop-up Buffers16929
-Node: Auto-Updating Records17794
-Node: Noticing and Automatic Rules20179
-Node: Interactive Commands21522
-Node: EBDB and MUA summary buffers24011
-Node: Sender name display24497
-Node: Summary buffer marks25785
-Node: EBDB Buffers26980
-Node: Searching28173
-Node: Changing Search Behavior29883
-Node: The Basics of ebdb-mode31133
-Node: Marking34497
-Node: Exporting/Formatting34925
-Node: Completion35884
-Node: Snarfing37025
-Node: Internationalization39004
-Node: Diary Integration40429
-Node: Mail Aliases41295
-Node: vCard Support42004
-Node: Org Integration42503
-Node: Citing Records44077
-Node: Hacking EBDB44836
-Node: Field Classes47166
-Node: Init and Delete Methods50103
-Node: The Labeled Field Class51659
-Node: Actions52495
-Node: Custom Field Searching53160
-Node: Formatting in the EBDB Buffer54948
-Node: Writing Internationalization Libraries56947
-Node: Writing Integration For New MUAs61298
-Node: Article snarfing64724
-Node: Index65446
+Node: Migration from BBDB2943
+Node: Record Migration3118
+Node: Variables and Options3696
+Node: The EBDB Database4182
+Node: Creating Records7338
+Node: Record classes8385
+Node: Record names8718
+Node: Record Fields9393
+Node: Inserting New Fields9637
+Node: Editing Existing Fields10433
+Node: Deleting Records and Fields11033
+Node: Field Types11429
+Node: Role Fields13274
+Node: MUA Interaction14965
+Node: Loading MUA Code15489
+Node: Display and Updating16202
+Node: Pop-up Buffers16971
+Node: Auto-Updating Records17836
+Node: Noticing and Automatic Rules20221
+Node: Interactive Commands21564
+Node: EBDB and MUA summary buffers24053
+Node: Sender name display24539
+Node: Summary buffer marks25827
+Node: EBDB Buffers27022
+Node: Searching28215
+Node: Changing Search Behavior29925
+Node: The Basics of ebdb-mode31175
+Node: Marking34539
+Node: Exporting/Formatting34967
+Node: Completion35926
+Node: Snarfing37137
+Node: Internationalization39116
+Node: Diary Integration40848
+Node: Mail Aliases41714
+Node: vCard Support42423
+Node: Org Integration42922
+Node: Citing Records44496
+Node: Hacking EBDB45255
+Node: Field Classes47585
+Node: Init and Delete Methods50522
+Node: The Labeled Field Class52078
+Node: Actions52914
+Node: Custom Field Searching53579
+Node: Formatting in the EBDB Buffer55367
+Node: Writing Internationalization Libraries57366
+Node: Writing Integration For New MUAs61717
+Node: Article snarfing65143
+Node: Index65865
End Tag Table
diff --git a/ebdb.org b/ebdb.org
index ca54831..fe1dce2 100644
--- a/ebdb.org
+++ b/ebdb.org
@@ -35,7 +35,7 @@ management software, it is enough to call the top-level ~ebdb~
command. This will create a new database at the location specified by
~ebdb-sources~ (see [[id:9a02f8fb-01e2-4cd8-8166-608814a031f7][The EBDB
Database]]), prompt you for a search
string, fail to find anything (because you don't have any records
-yet), and lastly open a {{{buf(EBDB)}}} buffer where you can start to
+yet), and finally open a {{{buf(EBDB)}}} buffer where you can start to
make new records (see [[id:692cde31-73be-4faf-b436-7eae8a5d02d1][Creating
Records]]).
** Migration from BBDB
:PROPERTIES:
@@ -51,7 +51,8 @@ customizations still in place, set ~ebdb-sources~ to a
non-existent
file name, and then run ~ebdb-load~ (or any of the other EBDB entry
commands). You'll be prompted to create the new database, and upgrade
from BBDB. If any records could not be upgraded, they will be
-displayed in an {{{buf(EBDB Migration)}}} buffer.
+displayed in an {{{buf(EBDB Migration)}}} buffer. Migration bug
+reports are very welcome.
*** Variables and Options
:PROPERTIES:
@@ -814,18 +815,19 @@ imperfect: not all fields can be exported correctly.
VCard version
It's possible to write new formatters, documentation is forthcoming.
* Completion
-There are many Emacs completion frameworks out there, and EBDB comes
-with support for helm, counsel, and company. See the relevant
-libraries; they provide the commands ~helm-ebdb~, ~counsel-ebdb~, and
+There are many Emacs completion frameworks out there, and libraries
+exist providing EBDB support for helm, counsel, and company---these
+libraries must be loaded from the package repositories. These
+libraries provide the commands ~helm-ebdb~, ~counsel-ebdb~, and
~company-ebdb~, respectively. Counsel and company are made to be
hooked into Emacs' existing completion frameworks; the helm command
must be called explicitly.
-Another library, @@texinfo:@file{@@ebdb-complete@@texinfo:}@@, uses an
-ephemeral pop-up {{{buf(EBDB)}}} buffer for record completion. The
-command ~ebdb-complete~ provides an interactive entry point, or you
-can enable it for "TAB" in ~message-mode~ by calling
-~ebdb-complete-enable~.
+Another built-in library,
+@@texinfo:@file{@@ebdb-complete@@texinfo:}@@, uses an ephemeral pop-up
+{{{buf(EBDB)}}} buffer for record completion. The command
+~ebdb-complete~ provides an interactive entry point, or you can enable
+it for "TAB" in ~message-mode~ by calling ~ebdb-complete-enable~.
Several native EBDB commands involve selecting a record, or multiple
records. At present, the completion interface for these commands is a
@@ -883,17 +885,26 @@ country- and region-specific behavior for certain fields.
This
functionality is initialized by loading the
@@texinfo:@file{@@ebdb-i18n@@texinfo:}@@ library. This library does
nothing by itself, it simply provides hooks for other country-specific
-libraries, which must be loaded separately.
-
-At present, EBDB comes with only one country-specific library,
-@@texinfo:@file{@@ebdb-chn@@texinfo:}@@, for Chinese-related fields.
-It parses and displays phone numbers and names correctly, and also
-allows users to search on Chinese names using pinyin. It requires the
-~pyim~ package, available on MELPA.
+libraries.
+
+Country libraries that do not depend on other external libraries may
+live within the EBDB codebase, in which case they will be loaded
+automatically when ~ebdb-i18n~ is loaded. Libraries with external
+dependencies may be installed from the package repositories. Because
+function autoloading doesn't work with generic methods, you'll need to
+require the libraries in addition to simply installing them.
+
+EBDB currently comes with only one country library,
+@@texinfo:@file{@@ebdb-i18n-chn@@texinfo:}@@, for Chinese-related
+fields. It parses and displays phone numbers and names correctly, and
+also allows users to search on Chinese names using pinyin. It can be
+installed from ELPA, and requires the ~pyim~ package, available on
+MELPA.
The present dearth of libraries is a result of the author scratching
-his own itch. Contributions of new libraries are very welcome. Also
-welcome, though less enthusiastically, are requests for new libraries.
+his own itch. Contributions of new libraries are very welcome (see
+[[id:5446ff9c-78ca-4e12-89cc-6d4ccd9b2b83][Writing Internationalization
Libraries]]). Also welcome, though less
+enthusiastically, are requests for new libraries.
Internationalization libraries do not modify the database in any way,
and can be safely unloaded. They simply alter the way EBDB reads,
@@ -1227,6 +1238,9 @@ quiet: the arguments are necessary for dispatch, but
aren't actually
used in the body of the method.
** Writing Internationalization Libraries
+:PROPERTIES:
+:ID: 5446ff9c-78ca-4e12-89cc-6d4ccd9b2b83
+:END:
Writing new internationalization libraries involves using generic
functions. [[info:elisp#Generic%20Functions][Generic Functions]]. It will
also require a bit of
familiarity with EBDB's internals.
diff --git a/ebdb.texi b/ebdb.texi
index fe7da2d..ef6a57d 100644
--- a/ebdb.texi
+++ b/ebdb.texi
@@ -165,7 +165,7 @@ management software, it is enough to call the top-level
@code{ebdb}
command. This will create a new database at the location specified by
@code{ebdb-sources} (see @ref{The EBDB Database}), prompt you for a search
string, fail to find anything (because you don't have any records
-yet), and lastly open a *EBDB* buffer where you can start to
+yet), and finally open a *EBDB* buffer where you can start to
make new records (see @ref{Creating Records}).
@menu
@@ -190,7 +190,8 @@ customizations still in place, set @code{ebdb-sources} to a
non-existent
file name, and then run @code{ebdb-load} (or any of the other EBDB entry
commands). You'll be prompted to create the new database, and upgrade
from BBDB. If any records could not be upgraded, they will be
-displayed in an *EBDB Migration* buffer.
+displayed in an *EBDB Migration* buffer. Migration bug
+reports are very welcome.
@node Variables and Options
@subsection Variables and Options
@@ -1201,18 +1202,19 @@ It's possible to write new formatters, documentation is
forthcoming.
@node Completion
@chapter Completion
-There are many Emacs completion frameworks out there, and EBDB comes
-with support for helm, counsel, and company. See the relevant
-libraries; they provide the commands @code{helm-ebdb}, @code{counsel-ebdb}, and
+There are many Emacs completion frameworks out there, and libraries
+exist providing EBDB support for helm, counsel, and company---these
+libraries must be loaded from the package repositories. These
+libraries provide the commands @code{helm-ebdb}, @code{counsel-ebdb}, and
@code{company-ebdb}, respectively. Counsel and company are made to be
hooked into Emacs' existing completion frameworks; the helm command
must be called explicitly.
-Another library, @file{ebdb-complete}, uses an
-ephemeral pop-up *EBDB* buffer for record completion. The
-command @code{ebdb-complete} provides an interactive entry point, or you
-can enable it for ``TAB'' in @code{message-mode} by calling
address@hidden
+Another built-in library,
address@hidden, uses an ephemeral pop-up
+*EBDB* buffer for record completion. The command
address@hidden provides an interactive entry point, or you can enable
+it for ``TAB'' in @code{message-mode} by calling @code{ebdb-complete-enable}.
Several native EBDB commands involve selecting a record, or multiple
records. At present, the completion interface for these commands is a
@@ -1282,17 +1284,24 @@ country- and region-specific behavior for certain
fields. This
functionality is initialized by loading the
@file{ebdb-i18n} library. This library does
nothing by itself, it simply provides hooks for other country-specific
-libraries, which must be loaded separately.
+libraries.
-At present, EBDB comes with only one country-specific library,
address@hidden, for Chinese-related fields.
-It parses and displays phone numbers and names correctly, and also
-allows users to search on Chinese names using pinyin. It requires the
address@hidden package, available on MELPA.
+Country libraries that do not depend on other external libraries may
+live within the EBDB codebase, in which case they will be loaded
+automatically when @code{ebdb-i18n} is loaded. Libraries with extra
+dependencies may be found in the package repositories.
+
+EBDB currently comes with only one country library,
address@hidden, for Chinese-related
+fields. It parses and displays phone numbers and names correctly, and
+also allows users to search on Chinese names using pinyin. It can be
+installed from ELPA, and requires the @code{pyim} package, available on
+MELPA.
The present dearth of libraries is a result of the author scratching
-his own itch. Contributions of new libraries are very welcome. Also
-welcome, though less enthusiastically, are requests for new libraries.
+his own itch. Contributions of new libraries are very welcome (see
address@hidden Internationalization Libraries}). Also welcome, though less
+enthusiastically, are requests for new libraries.
Internationalization libraries do not modify the database in any way,
and can be safely unloaded. They simply alter the way EBDB reads,
- [elpa] externals/ebdb 27325c4 336/350: Replace trailing whitespace in tests, (continued)
- [elpa] externals/ebdb 27325c4 336/350: Replace trailing whitespace in tests, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb b990fdf 327/350: File header changes preparatory to breaking off separate libraries, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 5f97295 337/350: Catching wrong error in internationalized version of name string, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 2c9d491 323/350: Rework snarf collection, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb f466e6e 342/350: Add some country name "shorthands", Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 26ee1cb 330/350: Refactor snarfing, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 6cc67a7 315/350: Add instructions for writing i18n libraries to manual, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb c11ef0e 334/350: Rename ebdb-message-header to ebdb-mua-message-header, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 7dd034d 349/350: Fix up record citation, bind a command in EBDB mode, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 615ed9a 326/350: Prefix arg to article snarfing only snarfs signature, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8776051 341/350: Changes to manual and README, reflecting EBDB's move to ELPA,
Eric Abrahamsen <=
- [elpa] externals/ebdb 80ce330 340/350: Remove libraries that will live in separate packages, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb bc3c712 332/350: Move "Writing Internationalization Libraries" in manual, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 3210ad7 338/350: Compiler-inspired fixes version 443992, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb d7bc0c9 284/350: Drop the whole auto-notes thing, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb b25edb9 002/350: Squash "prep" branch, push to Github, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4bdf47e 263/350: Get notice routine working, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9ce8e30 310/350: Check db editable before reading new record, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a4d11f5 293/350: Modify ebdb-mua-yank-cc to yank from any EBDB buffer, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 7caa1b4 308/350: Fix bug in reading mail alias fields, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb f987d46 305/350: Fix buffer modification call, Eric Abrahamsen, 2017/08/14