Function: smerge--refine-set-overlay-props

smerge--refine-set-overlay-props is a byte-compiled function defined in smerge-mode.el.gz.

Signature

(smerge--refine-set-overlay-props OL1 OL2 PROPS-C PROPS-R PROPS-A)

Source Code

;; Defined in /usr/src/emacs/lisp/vc/smerge-mode.el.gz
(defun smerge--refine-set-overlay-props (ol1 ol2 props-c props-r props-a)
  (let ((common-props
         (let ((props '((evaporate . t) (smerge--refine-region . t)
                        (cursor-sensor-functions
                         smerge--refine-shadow-cursor))))
           (dolist (prop (or props-a props-c))
             (when (and (not (memq (car prop) '(face font-lock-face)))
                        (member prop (or props-r props-c))
                        (or (not (and props-c props-a props-r))
                            (member prop props-c)))
              ;; This PROP is shared among all those overlays.
               ;; Better keep it also for the `smerge--refine-region'
               ;; overlays, so the client package recognizes them as
               ;; being part of the refinement (e.g. it will hopefully
               ;; delete them like the others).
               (push prop props)))
           props)))
    (when smerge-refine-shadow-cursor
      (cursor-sensor-mode 1))
    (dolist (prop common-props)
      (overlay-put ol1 (car prop) (cdr prop))
      (overlay-put ol2 (car prop) (cdr prop)))))