emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/ebdb b9ebce9 4/9: Provide MUA-specific versions of ebdb


From: Eric Abrahamsen
Subject: [elpa] externals/ebdb b9ebce9 4/9: Provide MUA-specific versions of ebdb-mua-auto-update-p
Date: Tue, 13 Aug 2019 21:46:50 -0400 (EDT)

branch: externals/ebdb
commit b9ebce9bd8fdf3cbfc5067f318b8316d6293c4aa
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>

    Provide MUA-specific versions of ebdb-mua-auto-update-p
    
    * ebdb-mua.el (ebdb-mua-reader-update-p, ebdb-mua-sender-update-p):
      New options specifying reader/sender MUA versions of
      ebdb-mua-auto-update-p.
      (ebdb-mua-auto-update): Swap order of arguments, UPDATE-P is more
      important.
    * ebdb-wl.el (ebdb-wl-auto-update-p):
    * ebdb-gnus.el (ebdb-gnus-auto-update-p):
    * ebdb-message.el (ebdb-message-auto-update-p):
    * ebdb-mhe.el (ebdb-mhe-auto-update-p):
    * ebdb-mu4e.el (ebdb-mu4e-auto-update-p):
    * ebdb-rmail.el (ebdb-rmail-auto-update-p): New MUA-specific versions
      of this option.
    * ebdb.org (Auto-Updating Records): Document.
---
 ebdb-gnus.el    |  14 +++++-
 ebdb-message.el |  18 +++++--
 ebdb-mhe.el     |  14 +++++-
 ebdb-mu4e.el    |   9 ++++
 ebdb-mua.el     |  44 +++++++++++++---
 ebdb-rmail.el   |  14 +++++-
 ebdb-wl.el      |  14 +++++-
 ebdb.info       | 153 +++++++++++++++++++++++++++++++++++---------------------
 ebdb.org        |  46 ++++++++++++++---
 ebdb.texi       |  45 ++++++++++++++---
 10 files changed, 286 insertions(+), 85 deletions(-)

diff --git a/ebdb-gnus.el b/ebdb-gnus.el
index 198cd2c..ea059d8 100644
--- a/ebdb-gnus.el
+++ b/ebdb-gnus.el
@@ -35,6 +35,15 @@
   :group 'ebdb-mua)
 (put 'ebdb-mua-gnus 'custom-loads '(ebdb-gnus))
 
+(defcustom ebdb-gnus-auto-update-p ebdb-mua-reader-update-p
+  "Gnus-specific value of `ebdb-mua-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
 (defcustom ebdb-gnus-window-size ebdb-default-window-size
   "Size of the EBDB buffer when popping up in Gnus.
 Size should be specified as a float between 0 and 1.  Defaults to
@@ -229,7 +238,10 @@ Note that `\( is the backquote, NOT the quote '\(."
 ;; Insinuation
 ;;
 
-(add-hook 'gnus-article-prepare-hook #'ebdb-mua-auto-update)
+(defun ebdb-gnus-auto-update ()
+  (ebdb-mua-auto-update ebdb-gnus-auto-update-p))
+
+(add-hook 'gnus-article-prepare-hook #'ebdb-gnus-auto-update)
 
 (add-hook 'gnus-startup-hook #'ebdb-insinuate-gnus)
 
diff --git a/ebdb-message.el b/ebdb-message.el
index 03b68fb..4701a82 100644
--- a/ebdb-message.el
+++ b/ebdb-message.el
@@ -36,6 +36,15 @@
   :group 'ebdb-mua)
 (put 'ebdb-mua-message 'custom-loads '(ebdb-message))
 
+(defcustom ebdb-message-auto-update-p ebdb-mua-sender-update-p
+  "Message-specific value of `ebdb-mua-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
 (defcustom ebdb-message-window-size ebdb-default-window-size
   "Size of the EBDB buffer when popping up in message-mode.
 Size should be specified as a float between 0 and 1.  Defaults to
@@ -150,10 +159,13 @@ Also fires when postponing a draft."
     (_ (define-key mail-mode-map "\M-\t" 'ebdb-complete-mail)))
   (ebdb-undisplay-records))
 
+(defun ebdb-message-auto-update ()
+  (ebdb-mua-auto-update ebdb-message-auto-update-p))
+
 (add-hook 'message-mode-hook 'ebdb-insinuate-message)
 (add-hook 'mail-setup-hook 'ebdb-insinuate-mail)
-(add-hook 'message-send-hook 'ebdb-mua-auto-update)
-(add-hook 'mail-send-hook 'ebdb-mua-auto-update)
+(add-hook 'message-send-hook 'ebdb-message-auto-update)
+(add-hook 'mail-send-hook 'ebdb-message-auto-update)
 
 ;; Slightly convoluted, but does it the "right way".  The
 ;; `message-header-setup-hook' creates and populates the
@@ -163,7 +175,7 @@ Also fires when postponing a draft."
 (add-hook 'ebdb-after-load-hook
          (lambda ()
            (with-eval-after-load "gnus-win"
-             (add-hook 'message-header-setup-hook 'ebdb-mua-auto-update)
+             (add-hook 'message-header-setup-hook 'ebdb-message-auto-update)
 
              (when ebdb-mua-pop-up
                (add-to-list 'gnus-window-to-buffer
diff --git a/ebdb-mhe.el b/ebdb-mhe.el
index c8ebe79..9a6146f 100644
--- a/ebdb-mhe.el
+++ b/ebdb-mhe.el
@@ -34,6 +34,15 @@
   "EBDB customizations for mhe."
   :group 'ebdb-mua)
 
+(defcustom ebdb-mhe-auto-update-p ebdb-mua-reader-update-p
+  "Mh-e-specific value of `ebdb-mua-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
 (defcustom ebdb-mhe-window-size ebdb-default-window-size
   "Size of the EBDB buffer when popping up in mh-e.
 Size should be specified as a float between 0 and 1.  Defaults to
@@ -133,7 +142,10 @@ Returns the empty string if HEADER is not in the message."
       (define-key mh-letter-mode-map "\M-;" 'ebdb-complete-mail)
       (define-key mh-letter-mode-map "\e\t" 'ebdb-complete-mail)))
 
-(add-hook 'mh-show-hook 'ebdb-mua-auto-update)
+(defun ebdb-mhe-auto-update ()
+  (ebdb-mua-auto-update ebdb-mhe-auto-update-p))
+
+(add-hook 'mh-show-hook 'ebdb-mhe-auto-update)
 
 (add-hook 'mh-folder-mode-hook 'ebdb-insinuate-mh)
 
diff --git a/ebdb-mu4e.el b/ebdb-mu4e.el
index 68e83c5..94024c5 100644
--- a/ebdb-mu4e.el
+++ b/ebdb-mu4e.el
@@ -36,6 +36,15 @@
   "Mu4e-specific EBDB customizations."
   :group 'ebdb-mua)
 
+(defcustom ebdb-mu4e-auto-update-p ebdb-mua-reader-update-p
+  "Mu4e-specific value of `ebdb-mua-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
 (defcustom ebdb-mu4e-window-size ebdb-default-window-size
   "Size of the EBDB buffer when popping up in mu4e.
 Size should be specified as a float between 0 and 1.  Defaults to
diff --git a/ebdb-mua.el b/ebdb-mua.el
index ba3603b..346e6a8 100644
--- a/ebdb-mua.el
+++ b/ebdb-mua.el
@@ -90,11 +90,40 @@ It can take one of the following values:
 
 Note that this option only controls how EBDB acts on information
 in incoming messages; the option `ebdb-mua-pop-up' controls
-whether the records in question are actually displayed or not."
+whether the records in question are actually displayed or not.
+
+Also see `ebdb-mua-reader-update-p' and
+`ebdb-mua-sender-update-p', as well as the equivalent values for
+each individual MUA package."
 
   ;; Also: Used for communication between `ebdb-update-records'
   ;; and `ebdb-query-create'.
-  :group 'ebdb-mua
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
+(defcustom ebdb-mua-reader-update-p ebdb-mua-auto-update-p
+  "Value for `ebdb-mua-auto-update-p' for reader MUAs.
+\"Reader\" MUAs are those that provide an interface for reading
+incoming messages and articles.
+
+Defaults to the value of `ebdb-mua-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
+(defcustom ebdb-mua-sender-update-p ebdb-mua-auto-update-p
+  "Value for `ebdb-mua-auto-update-p' for sender MUAs.
+\"Sender\" MUAs are those that govern mail composition.  EBDB
+currently only supports the \"message\" and \"mail\" MUAs.
+
+Defaults to the value of `ebdb-mua-auto-update-p'."
   :type '(choice (const :tag "do nothing" nil)
                  (const :tag "search for existing records" search)
                  (const :tag "update existing records" update)
@@ -1266,7 +1295,7 @@ buffer."
 ;; Functions for noninteractive use in MUA hooks
 
 ;;;###autoload
-(defun ebdb-mua-auto-update (&optional header-class update-p)
+(defun ebdb-mua-auto-update (&optional update-p header-class)
   "Update EBDB automatically based on incoming and outgoing messages.
 This looks into the headers of a message according to
 HEADER-CLASS.  Then for the mail addresses found the
@@ -1275,10 +1304,11 @@ whether only existing EBDB records are taken or whether 
also new
 records are created for these mail addresses.  Return matching
 records.
 
-HEADER-CLASS is defined in `ebdb-message-headers'.  If it is nil,
-use all classes in `ebdb-message-headers'.  UPDATE-P may take the
-same values as `ebdb-mua-auto-update-p'.  If UPDATE-P is nil, use
-`ebdb-mua-auto-update-p' (which see).
+UPDATE-P may take the same values as `ebdb-mua-auto-update-p' or
+any of the MUA-specific equivalents.  If UPDATE-P is nil, use
+`ebdb-mua-auto-update-p' (which see).  HEADER-CLASS is defined in
+`ebdb-message-headers'.  If it is nil, use all classes in
+`ebdb-message-headers'.
 
 If `ebdb-mua-pop-up' is non-nil, EBDB pops up the *EBDB* buffer
 along with the MUA window(s), displaying the matching records."
diff --git a/ebdb-rmail.el b/ebdb-rmail.el
index 87edd17..cfa42db 100644
--- a/ebdb-rmail.el
+++ b/ebdb-rmail.el
@@ -33,6 +33,15 @@
   "EBDB customization for rmail."
   :group 'ebdb-mua)
 
+(defcustom ebdb-rmail-auto-update-p ebdb-mua-reader-update-p
+  "Rmail-specific value of `ebdb-mua-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
 (defcustom ebdb-rmail-window-size ebdb-default-window-size
   "Size of the EBDB buffer when popping up in rmail.
 Size should be specified as a float between 0 and 1.  Defaults to
@@ -74,9 +83,12 @@ the value of `ebdb-default-window-size'."
   "Hook EBDB into RMAIL."
   (define-key rmail-mode-map ";" ebdb-mua-keymap))
 
+(defun ebdb-rmail-auto-update ()
+  (ebdb-mua-auto-update ebdb-rmail-auto-update-p))
+
 (add-hook 'rmail-mode-hook 'ebdb-insinuate-rmail)
 
-(add-hook 'rmail-show-message-hook 'ebdb-mua-auto-update)
+(add-hook 'rmail-show-message-hook 'ebdb-rmail-auto-update)
 
 (provide 'ebdb-rmail)
 ;;; ebdb-rmail.el ends here
diff --git a/ebdb-wl.el b/ebdb-wl.el
index b5793d0..e6e4997 100644
--- a/ebdb-wl.el
+++ b/ebdb-wl.el
@@ -42,6 +42,15 @@
   "Options for EBDB's interaction with Wanderlust."
   :group 'ebdb-mua)
 
+(defcustom ebdb-wl-auto-update-p ebdb-mua-reader-update-p
+  "Wl-specific value of `ebdb-m-auto-update-p'."
+  :type '(choice (const :tag "do nothing" nil)
+                 (const :tag "search for existing records" search)
+                 (const :tag "update existing records" update)
+                 (const :tag "query annotation of all messages" query)
+                 (const :tag "annotate all messages" create)
+                 (function :tag "User-defined function")))
+
 (defcustom ebdb-wl-window-size ebdb-default-window-size
   "Size of the EBDB buffer when popping up in Wanderlust.
 Size should be specified as a float between 0 and 1.  Defaults to
@@ -121,9 +130,12 @@ beginning) of the signature separator."
     (define-key wl-draft-mode-map (kbd "TAB") #'ebdb-complete-mail))
   (add-hook 'wl-summary-exit-hook #'ebdb-wl-quit-window))
 
+(defun ebdb-wl-auto-update ()
+  (ebdb-mua-auto-update ebdb-wl-auto-update-p))
+
 (add-hook 'wl-folder-mode-hook #'ebdb-insinuate-wl)
 
-(add-hook 'wl-message-redisplay-hook #'ebdb-mua-auto-update)
+(add-hook 'wl-message-redisplay-hook #'ebdb-wl-auto-update)
 
 (provide 'ebdb-wl)
 ;;; ebdb-wl.el ends here
diff --git a/ebdb.info b/ebdb.info
index e9da690..0650566 100644
--- a/ebdb.info
+++ b/ebdb.info
@@ -707,8 +707,25 @@ option governing this behavior is:
 
    This option only governs what EBDB does automatically, each time a
 message is displayed.  The same process can be run interactively using
-the commands below.  When updating records either automatically or
-interactively, a few more options come into play:
+the commands below.
+
+   In many cases it’s useful to have different auto-update behavior in
+different MUAs.  In particular, you might want to automatically create
+records for addresses as you send messages to them, but retain manual
+control over creating records from messages you receive.  EBDB provides
+two more-specific versions of ‘ebdb-mua-auto-update-p’:
+
+ -- User Option: ebdb-mua-sender-update-p
+     The default “update-p” value for all mail-sending MUAs.
+
+ -- User Option: ebdb-mua-reader-update-p
+     The default “update-p” value for all mail-reading MUAs.
+
+   Even finer-grained control is available using per-MUA versions of the
+option, all of them named after the pattern ‘ebdb-<MUA>-auto-update-p’.
+
+   When updating records either automatically or interactively, a few
+more options come into play:
 
  -- User Option: ebdb-add-name
      Whether to automatically change record names.  See docstring for
@@ -779,7 +796,7 @@ Some interactive commands are also provided for operating 
on the
 relevant EBDB records.  In message-reading MUAs, EBDB creates its own
 keymap, and binds it to the key “;”.  The following list assumes this
 binding, and only specifies the further binding.  Ie, press “;:” to call
-‘ebdb-mua-display-records’.
+‘ebdb-mua-update-records’.
 
 ‘:’
      If the option ‘ebdb-mua-auto-update-p’ is nil, this command
@@ -1081,10 +1098,10 @@ different record fields and displays the results.
 
    The EBDB major mode provides many keys for searching on specific
 record fields.  Most of these keys are used after one of three prefix
-keys, which change the behavior of the search: ‘/’ clears the buffer
-before displaying the results, ‘|’ searches only among the records
-already displayed, and ‘+’ appends the search results to the records
-already displayed.
+keys, which change the behavior of the search: ‘/’ clears the buffer and
+searches the whole database, ‘|’ searches only among the records already
+displayed, and ‘+’ searches the whole database and appends the results
+to the records already displayed.
 
    For instance, record name search is on the key ‘n’, meaning you can
 use ‘/ n’, ‘| n’, or ‘+ n’.  Search keys that work this way are:
@@ -1099,6 +1116,8 @@ use ‘/ n’, ‘| n’, or ‘+ n’.  Search keys that work this 
way are:
      Search addresses
 ‘m’
      Search mails
+‘t’
+     Search tags
 ‘x’
      Search user fields (prompts for which field to search on)
 ‘c’
@@ -2212,7 +2231,7 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
 [index]
 * Menu:
 
-* !:                                     Searching.           (line  49)
+* !:                                     Searching.           (line  51)
 * / /:                                   Searching.           (line   6)
 * ;:                                     The Basics of ebdb-mode.
                                                               (line  41)
@@ -2230,7 +2249,7 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
                                                               (line  42)
 * ?:                                     The Basics of ebdb-mode.
                                                               (line 115)
-* ^:                                     Searching.           (line  55)
+* ^:                                     Searching.           (line  57)
 * Article snarfing:                      Snarfing.            (line  36)
 * Article snarfing <1>:                  Article snarfing.    (line   6)
 * auto-save of Database:                 The EBDB Database.   (line  24)
@@ -2276,13 +2295,13 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  
Up: Top
 * E <1>:                                 The Basics of ebdb-mode.
                                                               (line  37)
 * ebdb-accept-header-list:               Auto-Updating Records.
-                                                              (line  40)
+                                                              (line  57)
 * ebdb-add-aka:                          Auto-Updating Records.
-                                                              (line  29)
+                                                              (line  46)
 * ebdb-add-mails:                        Auto-Updating Records.
-                                                              (line  33)
+                                                              (line  50)
 * ebdb-add-name:                         Auto-Updating Records.
-                                                              (line  25)
+                                                              (line  42)
 * ebdb-buffer-name:                      EBDB Buffers.        (line  14)
 * ebdb-case-fold-search:                 Changing Search Behavior.
                                                               (line   8)
@@ -2363,6 +2382,8 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
                                                               (line  20)
 * ebdb-format-to-tmp-buffer:             Exporting/Formatting.
                                                               (line  15)
+* ebdb-gnus-auto-update-p:               Auto-Updating Records.
+                                                              (line  36)
 * ebdb-gnus-post-style-function:         Posting Styles.      (line  13)
 * ebdb-hash-extra-predicates:            Fast Lookups.        (line  30)
 * ebdb-hashtable:                        Fast Lookups.        (line  10)
@@ -2373,7 +2394,7 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
 * ebdb-i18n-countries-pref-scripts:      Internationalization.
                                                               (line  47)
 * ebdb-ignore-header-list:               Auto-Updating Records.
-                                                              (line  44)
+                                                              (line  61)
 * ebdb-info:                             The Basics of ebdb-mode.
                                                               (line 118)
 * ebdb-init-field:                       Init and Delete Methods.
@@ -2395,11 +2416,17 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  
Up: Top
                                                               (line  61)
 * ebdb-make-buffer-name:                 Writing Integration For New MUAs.
                                                               (line  54)
+* ebdb-message-auto-update-p:            Auto-Updating Records.
+                                                              (line  36)
 * ebdb-message-clean-name-function:      Sender name display. (line  14)
 * ebdb-message-mail-as-name:             Sender name display. (line  18)
+* ebdb-mhe-auto-update-p:                Auto-Updating Records.
+                                                              (line  36)
 * ebdb-migrate-from-bbdb:                Record Migration.    (line   6)
 * ebdb-migrate-from-org-contacts:        Migration from Org Contacts.
                                                               (line   6)
+* ebdb-mu4e-auto-update-p:               Auto-Updating Records.
+                                                              (line  36)
 * ebdb-mua-article-body:                 Article snarfing.    (line  13)
 * ebdb-mua-article-signature:            Article snarfing.    (line  16)
 * ebdb-mua-auto-update:                  Writing Integration For New MUAs.
@@ -2428,6 +2455,10 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
 * ebdb-mua-pop-up:                       Pop-up Buffers.      (line  11)
 * ebdb-mua-prepare-article:              Writing Integration For New MUAs.
                                                               (line  47)
+* ebdb-mua-reader-update-p:              Auto-Updating Records.
+                                                              (line  33)
+* ebdb-mua-sender-update-p:              Auto-Updating Records.
+                                                              (line  30)
 * ebdb-mua-snarf-article:                Interactive Commands.
                                                               (line  33)
 * ebdb-mua-summary-mark:                 Summary buffer marks.
@@ -2466,14 +2497,18 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  
Up: Top
 * ebdb-record-action:                    The Basics of ebdb-mode.
                                                               (line  50)
 * ebdb-record-self:                      Creating Records.    (line  21)
+* ebdb-record-self <1>:                  Auto-Updating Records.
+                                                              (line  65)
 * ebdb-reformat-records:                 The Basics of ebdb-mode.
                                                               (line  82)
 * ebdb-rename-buffer:                    EBDB Buffers.        (line  23)
+* ebdb-rmail-auto-update-p:              Auto-Updating Records.
+                                                              (line  36)
 * ebdb-save:                             The Basics of ebdb-mode.
                                                               (line 121)
 * ebdb-save-on-exit:                     The EBDB Database.   (line  78)
-* ebdb-search-invert:                    Searching.           (line  49)
-* ebdb-search-pop:                       Searching.           (line  55)
+* ebdb-search-invert:                    Searching.           (line  51)
+* ebdb-search-pop:                       Searching.           (line  57)
 * ebdb-search-read:                      Custom Field Searching.
                                                               (line  18)
 * ebdb-search-transform-functions:       Changing Search Behavior.
@@ -2487,7 +2522,11 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
 * ebdb-try-speedups:                     The EBDB Database.   (line  84)
 * ebdb-use-diary:                        Diary Integration.   (line  13)
 * ebdb-user-name-address-re:             Auto-Updating Records.
-                                                              (line  48)
+                                                              (line  65)
+* ebdb-vm-auto-update-p:                 Auto-Updating Records.
+                                                              (line  36)
+* ebdb-wl-auto-update-p:                 Auto-Updating Records.
+                                                              (line  36)
 * Editing fields:                        Editing Existing Fields.
                                                               (line   6)
 * f:                                     Exporting/Formatting.
@@ -2511,7 +2550,7 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
                                                               (line   6)
 * Internationalization:                  Internationalization.
                                                               (line   6)
-* Inverting searches:                    Searching.           (line  46)
+* Inverting searches:                    Searching.           (line  48)
 * Loading databases:                     The EBDB Database.   (line  84)
 * m:                                     The Basics of ebdb-mode.
                                                               (line  56)
@@ -2551,7 +2590,7 @@ File: ebdb.info,  Node: Index,  Prev: Hacking EBDB,  Up: 
Top
 * s:                                     The Basics of ebdb-mode.
                                                               (line 121)
 * Saving the database:                   The EBDB Database.   (line  78)
-* Search history:                        Searching.           (line  51)
+* Search history:                        Searching.           (line  53)
 * Searching the EBDB:                    Searching.           (line   6)
 * Snarfing text:                         Snarfing.            (line   6)
 * t:                                     The Basics of ebdb-mode.
@@ -2592,44 +2631,44 @@ Node: Loading MUA Code20835
 Node: Display and Updating21548
 Node: Pop-up Buffers22314
 Node: Auto-Updating Records24234
-Node: Noticing and Automatic Rules26634
-Node: Interactive Commands27967
-Node: EBDB and MUA summary buffers30442
-Node: Sender name display30960
-Node: Summary buffer marks32187
-Node: Mail Address Completion33366
-Node: A Note on Completion35875
-Node: Specific MUAs36498
-Node: Gnus36646
-Node: Posting Styles36868
-Node: EBDB Buffers38443
-Node: Searching39654
-Node: Changing Search Behavior41316
-Node: The Basics of ebdb-mode42563
-Node: Customizing Record Display46872
-Node: Marking51192
-Node: Exporting/Formatting51619
-Node: Completion52554
-Node: Snarfing53350
-Node: Internationalization55367
-Node: Diary Integration58068
-Node: Mail Aliases58933
-Node: vCard Support59647
-Node: Org Integration60146
-Node: Citing Records62044
-Node: Hacking EBDB62802
-Node: Field Classes65393
-Node: Init and Delete Methods68529
-Node: The Labeled Field Class70036
-Node: The Singleton Field Class70890
-Node: Actions71328
-Node: Custom Field Searching72000
-Node: Fast Lookups74867
-Node: Formatting in the EBDB Buffer76677
-Node: Writing Internationalization Libraries78753
-Node: Writing Integration For New MUAs83167
-Node: Article snarfing86615
-Node: Index87333
+Node: Noticing and Automatic Rules27350
+Node: Interactive Commands28683
+Node: EBDB and MUA summary buffers31157
+Node: Sender name display31675
+Node: Summary buffer marks32902
+Node: Mail Address Completion34081
+Node: A Note on Completion36590
+Node: Specific MUAs37213
+Node: Gnus37361
+Node: Posting Styles37583
+Node: EBDB Buffers39158
+Node: Searching40369
+Node: Changing Search Behavior42083
+Node: The Basics of ebdb-mode43330
+Node: Customizing Record Display47639
+Node: Marking51959
+Node: Exporting/Formatting52386
+Node: Completion53321
+Node: Snarfing54117
+Node: Internationalization56134
+Node: Diary Integration58835
+Node: Mail Aliases59700
+Node: vCard Support60414
+Node: Org Integration60913
+Node: Citing Records62811
+Node: Hacking EBDB63569
+Node: Field Classes66160
+Node: Init and Delete Methods69296
+Node: The Labeled Field Class70803
+Node: The Singleton Field Class71657
+Node: Actions72095
+Node: Custom Field Searching72767
+Node: Fast Lookups75634
+Node: Formatting in the EBDB Buffer77444
+Node: Writing Internationalization Libraries79520
+Node: Writing Integration For New MUAs83934
+Node: Article snarfing87382
+Node: Index88100
 
 End Tag Table
 
diff --git a/ebdb.org b/ebdb.org
index e4b7438..fdfa8bf 100644
--- a/ebdb.org
+++ b/ebdb.org
@@ -517,8 +517,37 @@ function which returns one of the above symbols.
 
 This option only governs what EBDB does automatically, each time a
 message is displayed.  The same process can be run interactively using
-the commands below.  When updating records either automatically or
-interactively, a few more options come into play:
+the commands below.
+
+In many cases it's useful to have different auto-update behavior in
+different MUAs.  In particular, you might want to automatically create
+records for addresses as you send messages to them, but retain manual
+control over creating records from messages you receive.  EBDB
+provides two more-specific versions of ~ebdb-mua-auto-update-p~:
+
+#+ATTR_TEXINFO: :options ebdb-mua-sender-update-p
+#+begin_defopt
+The default "update-p" value for all mail-sending MUAs.
+#+end_defopt
+
+#+ATTR_TEXINFO: :options ebdb-mua-reader-update-p
+#+begin_defopt
+The default "update-p" value for all mail-reading MUAs.
+#+end_defopt
+
+#+VINDEX: ebdb-gnus-auto-update-p
+#+VINDEX: ebdb-message-auto-update-p
+#+VINDEX: ebdb-rmail-auto-update-p
+#+VINDEX: ebdb-mhe-auto-update-p
+#+VINDEX: ebdb-mu4e-auto-update-p
+#+VINDEX: ebdb-wl-auto-update-p
+#+VINDEX: ebdb-vm-auto-update-p
+Even finer-grained control is available using per-MUA versions of the
+option, all of them named after the pattern
+~ebdb-<MUA>-auto-update-p~.
+
+When updating records either automatically or interactively, a few
+more options come into play:
 
 #+ATTR_TEXINFO: :options ebdb-add-name
 #+begin_defopt
@@ -553,6 +582,7 @@ An alist governing which addresses in which headers will be 
ignored.
 See docstring for details.
 #+end_defopt
 
+#+VINDEX: ebdb-record-self
 #+ATTR_TEXINFO: :options ebdb-user-name-address-re
 #+begin_defopt
 A regular expression matching the user's own mail address(es).  In
@@ -567,7 +597,7 @@ the record pointed to by the option ~ebdb-record-self~.
 #+CINDEX: Automatic Rules
 In addition to updating records' name and mail fields, it's possible
 to run other arbitrary edits on records when they are referenced in a
-message.  This process is called "noticing". Two hooks are run as a
+message.  This process is called "noticing".  Two hooks are run as a
 part of noticing:
 
 #+ATTR_TEXINFO: :options ebdb-notice-record-hook
@@ -601,7 +631,7 @@ Some interactive commands are also provided for operating 
on the
 relevant EBDB records.  In message-reading MUAs, EBDB creates its own
 keymap, and binds it to the key ";".  The following list assumes this
 binding, and only specifies the further binding.  Ie, press ";:" to
-call ~ebdb-mua-display-records~.
+call ~ebdb-mua-update-records~.
 
 #+attr_texinfo: :indic @kbd
 - : ::
@@ -899,9 +929,10 @@ searches on many different record fields and displays the 
results.
 The EBDB major mode provides many keys for searching on specific
 record fields.  Most of these keys are used after one of three prefix
 keys, which change the behavior of the search: {{{kbd(/)}}} clears the
-buffer before displaying the results, {{{kbd(|)}}} searches only among
-the records already displayed, and {{{kbd(+)}}} appends the search
-results to the records already displayed.
+buffer and searches the whole database, {{{kbd(|)}}} searches only
+among the records already displayed, and {{{kbd(+)}}} searches the
+whole database and appends the results to the records already
+displayed.
 
 For instance, record name search is on the key {{{kbd(n)}}}, meaning
 you can use {{{kbd(/ n)}}}, {{{kbd(| n)}}}, or {{{kbd(+ n)}}}.
@@ -913,6 +944,7 @@ Search keys that work this way are:
 - p :: Search phones
 - a :: Search addresses
 - m :: Search mails
+- t :: Search tags
 - x :: Search user fields (prompts for which field to search on)
 - c :: Search records that have been modified since last save
 - C :: Search by record class
diff --git a/ebdb.texi b/ebdb.texi
index a2878f0..fd88560 100644
--- a/ebdb.texi
+++ b/ebdb.texi
@@ -735,8 +735,35 @@ function which returns one of the above symbols.
 
 This option only governs what EBDB does automatically, each time a
 message is displayed.  The same process can be run interactively using
-the commands below.  When updating records either automatically or
-interactively, a few more options come into play:
+the commands below.
+
+In many cases it's useful to have different auto-update behavior in
+different MUAs.  In particular, you might want to automatically create
+records for addresses as you send messages to them, but retain manual
+control over creating records from messages you receive.  EBDB
+provides two more-specific versions of @code{ebdb-mua-auto-update-p}:
+
+@defopt ebdb-mua-sender-update-p
+The default ``update-p'' value for all mail-sending MUAs.
+@end defopt
+
+@defopt ebdb-mua-reader-update-p
+The default ``update-p'' value for all mail-reading MUAs.
+@end defopt
+
+@vindex ebdb-gnus-auto-update-p
+@vindex ebdb-message-auto-update-p
+@vindex ebdb-rmail-auto-update-p
+@vindex ebdb-mhe-auto-update-p
+@vindex ebdb-mu4e-auto-update-p
+@vindex ebdb-wl-auto-update-p
+@vindex ebdb-vm-auto-update-p
+Even finer-grained control is available using per-MUA versions of the
+option, all of them named after the pattern
+@code{ebdb-<MUA>-auto-update-p}.
+
+When updating records either automatically or interactively, a few
+more options come into play:
 
 @defopt ebdb-add-name
 Whether to automatically change record names.  See docstring for
@@ -766,6 +793,7 @@ An alist governing which addresses in which headers will be 
ignored.
 See docstring for details.
 @end defopt
 
+@vindex ebdb-record-self
 @defopt ebdb-user-name-address-re
 A regular expression matching the user's own mail address(es).  In
 addition to a regexp, this can also be the symbol @code{message}, in which
@@ -780,7 +808,7 @@ the record pointed to by the option @code{ebdb-record-self}.
 @cindex Automatic Rules
 In addition to updating records' name and mail fields, it's possible
 to run other arbitrary edits on records when they are referenced in a
-message.  This process is called ``noticing''. Two hooks are run as a
+message.  This process is called ``noticing''.  Two hooks are run as a
 part of noticing:
 
 @defopt ebdb-notice-record-hook
@@ -811,7 +839,7 @@ Some interactive commands are also provided for operating 
on the
 relevant EBDB records.  In message-reading MUAs, EBDB creates its own
 keymap, and binds it to the key ``;''.  The following list assumes this
 binding, and only specifies the further binding.  Ie, press ``;:'' to
-call @code{ebdb-mua-display-records}.
+call @code{ebdb-mua-update-records}.
 
 @table @kbd
 @item :
@@ -1128,9 +1156,10 @@ searches on many different record fields and displays 
the results.
 The EBDB major mode provides many keys for searching on specific
 record fields.  Most of these keys are used after one of three prefix
 keys, which change the behavior of the search: @kbd{/} clears the
-buffer before displaying the results, @kbd{|} searches only among
-the records already displayed, and @kbd{+} appends the search
-results to the records already displayed.
+buffer and searches the whole database, @kbd{|} searches only
+among the records already displayed, and @kbd{+} searches the
+whole database and appends the results to the records already
+displayed.
 
 For instance, record name search is on the key @kbd{n}, meaning
 you can use @kbd{/ n}, @kbd{| n}, or @kbd{+ n}.
@@ -1147,6 +1176,8 @@ Search phones
 Search addresses
 @item m
 Search mails
+@item t
+Search tags
 @item x
 Search user fields (prompts for which field to search on)
 @item c



reply via email to

[Prev in Thread] Current Thread [Next in Thread]