[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ebdb 7da77f4 089/350: Expand ebdb-with-record-edits
From: |
Eric Abrahamsen |
Subject: |
[elpa] externals/ebdb 7da77f4 089/350: Expand ebdb-with-record-edits |
Date: |
Mon, 14 Aug 2017 11:46:11 -0400 (EDT) |
branch: externals/ebdb
commit 7da77f4cbf63dfe6f0dd91f2b06a92dc74dfe672
Author: Eric Abrahamsen <address@hidden>
Commit: Eric Abrahamsen <address@hidden>
Expand ebdb-with-record-edits
Fixes #13
* ebdb-com.el (ebdb-with-record-edits): Provide more feedback and
choices to the user when the databases have problems. Should
actually work correctly now.
---
ebdb-com.el | 37 ++++++++++++++++++++++++++++---------
1 file changed, 28 insertions(+), 9 deletions(-)
diff --git a/ebdb-com.el b/ebdb-com.el
index 76d3b89..061f7bc 100644
--- a/ebdb-com.el
+++ b/ebdb-com.el
@@ -1599,15 +1599,34 @@ actually-editable records."
;; "Unless the record has a bum database..."
(catch 'bad
;; Return nil unless we throw a 'bad.
- (dolist (d (slot-value (ebdb-record-cache r) 'database) nil)
- (cond ((object-assoc (slot-value d 'file) 'file ,good-dbs))
- ((object-assoc (slot-value d 'file) 'file ,bad-dbs)
- (throw 'bad t))
- (t
- (if (ebdb-db-editable d)
- (push d ,good-dbs)
- (push d ,bad-dbs)
- (throw 'bad t))))))
+ (condition-case err
+ (dolist (d (slot-value (ebdb-record-cache r) 'database) nil)
+ (cond ((object-assoc (slot-value d 'file) 'file ,good-dbs))
+ ((object-assoc (slot-value d 'file) 'file ,bad-dbs)
+ (throw 'bad t))
+ (t
+ (ebdb-db-editable d)
+ (push d ,good-dbs))))
+ (ebdb-unsynced-db
+ (let ((db (cadr err)))
+ (if (ebdb-db-dirty db)
+ (error "Database %s is out of sync and has unsaved
changes" db)
+ (if (or ebdb-auto-revert
+ (yes-or-no-p
+ (format "Database %s is out of sync, reload?"
+ (ebdb-string db))))
+ (progn
+ (ebdb-reload-database db)
+ (push db ,good-dbs))
+ (push db ,bad-dbs)
+ (message "Database %s is out of sync" db)
+ (sit-for 1)
+ (throw 'bad t)))))
+ (ebdb-readonly-db
+ (push (cadr err) ,bad-dbs)
+ (message "Database %s is read-only" (cadr err))
+ (sit-for 1)
+ (throw 'bad t))))
;; No bum database, it's okay.
(push r ,editable-records)))
(dolist (,(car spec) ,editable-records)
- [elpa] externals/ebdb c7d378b 071/350: Autoload eieio-customize-object, (continued)
- [elpa] externals/ebdb c7d378b 071/350: Autoload eieio-customize-object, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 31bf2cf 117/350: No, that's not the proper way to create a &context catchall, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb a2de313 110/350: Install ebdb-save as a kill-emacs-hook, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb ab1480b 078/350: Remove ebdb-this-buffer-name, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 1c4fadd 080/350: Make ebdb-record-name a get-or-get-and-set operation, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9aab682 088/350: Add a generic for ebdb-db-editable, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 4263d5b 090/350: Fix the reload process, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb dd4f251 098/350: Split off ebdb-record-field for field classes, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 8c20202 103/350: Update company-ebdb to work with new search style, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 5ec40d5 102/350: Add sections on searching and record marking to manual, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 7da77f4 089/350: Expand ebdb-with-record-edits,
Eric Abrahamsen <=
- [elpa] externals/ebdb 8312ea4 109/350: Allow company-ebdb to work in notmuch-message-mode as well, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb dcb7dbc 104/350: Change default keybindings in Gnus, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 9ac0f0f 111/350: Searching on empty strings should happen in field-search method, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb c43e39b 097/350: Another round of compiler-inspired fixes, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 40df5bc 114/350: Remove ebdb-new-mails-primary, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 825c4cc 112/350: Simplify the structure of ebdb-org-hashtable, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb c0979b0 135/350: Typo in ebdb-mua-check-header, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 1219b93 100/350: Rework *EBDB* buffer searching, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 80ef19d 108/350: Make ebdb-search-read and ebdb-search-field into generics, Eric Abrahamsen, 2017/08/14
- [elpa] externals/ebdb 6c85728 116/350: Manual and README additions, Eric Abrahamsen, 2017/08/14