Function: org-persist--merge-index

org-persist--merge-index is a byte-compiled function defined in org-persist.el.gz.

Signature

(org-persist--merge-index BASE OTHER)

Documentation

Attempt to merge new index items in OTHER into BASE.

Items with different details are considered too difficult, and skipped.

Source Code

;; Defined in /usr/src/emacs/lisp/org/org-persist.el.gz
(defun org-persist--merge-index (base other)
  "Attempt to merge new index items in OTHER into BASE.
Items with different details are considered too difficult, and skipped."
  (if other
      (let ((new (cl-set-difference other base :test #'equal))
            (base-files (mapcar (lambda (s) (plist-get s :persist-file)) base))
            (combined (reverse base)))
        (dolist (item (nreverse new))
          (unless (or (memq 'index (mapcar #'car (plist-get item :container)))
                      (not (file-exists-p
                            (org-file-name-concat org-persist-directory
                                                  (plist-get item :persist-file))))
                      (member (plist-get item :persist-file) base-files))
            (push item combined)))
        (nreverse combined))
    base))