aboutsummaryrefslogtreecommitdiff
path: root/working/org-element-cache-persist-bug/hostile-d-nopreview.el
diff options
context:
space:
mode:
Diffstat (limited to 'working/org-element-cache-persist-bug/hostile-d-nopreview.el')
-rw-r--r--working/org-element-cache-persist-bug/hostile-d-nopreview.el23
1 files changed, 23 insertions, 0 deletions
diff --git a/working/org-element-cache-persist-bug/hostile-d-nopreview.el b/working/org-element-cache-persist-bug/hostile-d-nopreview.el
new file mode 100644
index 00000000..91ae1ce7
--- /dev/null
+++ b/working/org-element-cache-persist-bug/hostile-d-nopreview.el
@@ -0,0 +1,23 @@
+(require 'cl-lib) (require 'org) (require 'org-element) (require 'org-persist)
+(setq org-element-use-cache t org-element-cache-persistent t)
+(when (getenv "SV") (setq org-element--cache-self-verify t org-element--cache-self-verify-frequency 1.0))
+(defun nilbuf (buf) (with-current-buffer buf
+ (let ((k 0)) (avl-tree-mapc (lambda (el) (unless (org-element-property :buffer el) (cl-incf k))) org-element--cache) k)))
+(let* ((file (make-temp-file "np-" nil ".org")))
+ (copy-file (expand-file-name "todo.org" default-directory) file t)
+ (let ((real (find-file-noselect file)))
+ (with-current-buffer real (org-element-cache-map (lambda (_) nil) :granularity 'element))
+ (message ">> before: nil-buffer=%d" (nilbuf real))
+ (message ">> MODE=%s" (getenv "MODE"))
+ (pcase (getenv "MODE")
+ ("writeall" (org-persist-write-all))
+ ("writebuf" (with-current-buffer real (org-persist-write-all-buffer)))
+ (_ nil))
+ (message ">> after trigger: nil-buffer=%d" (nilbuf real))
+ (with-current-buffer real
+ (goto-char (point-max))
+ (condition-case err (let ((inhibit-read-only t)) (insert "\n* Edit\n"))
+ (error (message ">> RESULT: insert SIGNALLED %S" err)))
+ (message ">> insert survived (nil-buffer=%d)" (nilbuf real))
+ (set-buffer-modified-p nil)))
+ (delete-file file))