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
      (if (not base) other
        (let ((new (cl-set-difference other base :key #'org-persist--find-index))
              (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))