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

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

[elpa] externals/org eca678195b 23/31: org-persist-write: Return the wri


From: ELPA Syncer
Subject: [elpa] externals/org eca678195b 23/31: org-persist-write: Return the written value on success
Date: Sat, 29 Jan 2022 04:58:12 -0500 (EST)

branch: externals/org
commit eca678195b8691a81f65996203ca90bba4a4dcce
Author: Ihor Radchenko <yantar92@gmail.com>
Commit: Ihor Radchenko <yantar92@gmail.com>

    org-persist-write: Return the written value on success
---
 lisp/org-persist.el | 31 +++++++++++++++++--------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/lisp/org-persist.el b/lisp/org-persist.el
index d4b74b52af..6ff5e7bd23 100644
--- a/lisp/org-persist.el
+++ b/lisp/org-persist.el
@@ -336,6 +336,18 @@ FORMAT and ARGS are passed to `message'."
               gc-func-symbol))
      (funcall gc-func-symbol c ,collection)))
 
+(defmacro org-persist--gc-expired-p (cnd collection)
+  "Check if expiry condition CND triggers for COLLECTION."
+  `(pcase ,cnd
+     (`nil t)
+     (`never nil)
+     ((pred numberp)
+      (when (plist-get ,collection :access-time)
+        (<= (float-time) (+ (plist-get ,collection :access-time) (* ,cnd 24 60 
60)))))
+     ((pred functionp)
+      (funcall ,cnd ,collection))
+     (_ (error "org-persist: Unsupported expiry type %S" ,cnd))))
+
 ;;;; Working with index
 
 (defmacro org-persist-collection-let (collection &rest body)
@@ -792,7 +804,9 @@ The arguments have the same meaning as in 
`org-persist-read'."
   "Save CONTAINER according to ASSOCIATED.
 ASSOCIATED can be a plist, a buffer, or a string.
 A buffer is treated as (:buffer ASSOCIATED).
-A string is treated as (:file ASSOCIATED)."
+A string is treated as (:file ASSOCIATED).
+The return value is nil when writing fails and the written value (as
+returned by `org-persist-read') on success."
   (setq associated (org-persist--normalize-associated associated))
   ;; Update hash
   (when (and (plist-get associated :file)
@@ -808,7 +822,8 @@ A string is treated as (:file ASSOCIATED)."
         (let ((file (org-file-name-concat org-persist-directory (plist-get 
collection :persist-file)))
               (data (mapcar (lambda (c) (cons c (org-persist-write:generic c 
collection)))
                             (plist-get collection :container))))
-          (org-persist--write-elisp-file file data))))))
+          (org-persist--write-elisp-file file data)
+          (org-persist-read container associated))))))
 
 (defun org-persist-write-all (&optional associated)
   "Save all the persistent data.
@@ -853,18 +868,6 @@ Do nothing in an indirect buffer."
      (when (org-directory-empty-p (file-name-directory ,persist-file))
        (delete-directory (file-name-directory ,persist-file)))))
 
-(defmacro org-persist--gc-expired-p (cnd collection)
-  "Check if expiry condition CND triggers for COLLECTION."
-  `(pcase ,cnd
-     (`nil t)
-     (`never nil)
-     ((pred numberp)
-      (when (plist-get ,collection :access-time)
-        (<= (float-time) (+ (plist-get ,collection :access-time) (* ,cnd 24 60 
60)))))
-     ((pred functionp)
-      (funcall ,cnd ,collection))
-     (_ (error "org-persist: Unsupported expiry type %S" ,cnd))))
-
 (defun org-persist-gc ()
   "Remove expired or unregisted containers.
 Also, remove containers associated with non-existing files."



reply via email to

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