org-persist: Fix :last-access being set on every write

* lisp/org-persist.el (org-persist-write:generic): Do not set
:last-access on write, unless writing first time.  Otherwise,
:last-access may never trigger expiration.
This commit is contained in:
Ihor Radchenko 2023-04-26 23:39:49 +02:00
parent eaf274909f
commit 9e42842a82
No known key found for this signature in database
GPG Key ID: 6470762A7DA11D8B
1 changed files with 3 additions and 2 deletions

View File

@ -759,8 +759,9 @@ COLLECTION is the plist holding data collection."
"Write CONTAINER in COLLECTION."
`(let* ((c (org-persist--normalize-container ,container))
(write-func-symbol (intern (format "org-persist-write:%s" (car c)))))
(setf ,collection (plist-put ,collection :last-access (float-time)))
(setf ,collection (plist-put ,collection :last-access-hr (format-time-string "%FT%T%z" (float-time))))
(unless (plist-get ,collection :last-access)
(setf ,collection (plist-put ,collection :last-access (float-time)))
(setf ,collection (plist-put ,collection :last-access-hr (format-time-string "%FT%T%z" (float-time)))))
(unless (fboundp write-func-symbol)
(error "org-persist: Write function %s not defined"
write-func-symbol))