Function: diff--get-revision-properties

diff--get-revision-properties is a byte-compiled function defined in diff-mode.el.gz.

Signature

(diff--get-revision-properties FILE REVISION TEXT LINE-NB)

Documentation

Get font-lock properties from FILE at REVISION for TEXT at LINE-NB.

Source Code

;; Defined in /usr/src/emacs/lisp/vc/diff-mode.el.gz
(defun diff--get-revision-properties (file revision text line-nb)
  "Get font-lock properties from FILE at REVISION for TEXT at LINE-NB."
  (let* ((file-rev (cons file revision))
         (entry (assoc file-rev diff--cached-revision-buffers))
         (buffer (cdr entry)))
    (if (buffer-live-p buffer)
        (progn
          (setq diff--cached-revision-buffers
                (cons entry
                      (delq entry diff--cached-revision-buffers))))
      ;; Cache miss: create a new entry.
      (setq buffer (get-buffer-create (format " *diff-syntax:%s.~%s~*"
                                              file revision)))
      (condition-case nil
          (vc-find-revision-no-save file revision diff-vc-backend buffer)
        (error
         (kill-buffer buffer)
         (setq buffer nil))
        (:success
         (push (cons file-rev buffer)
               diff--cached-revision-buffers))))
    (when diff--cache-clean-timer
      (cancel-timer diff--cache-clean-timer))
    (diff--cache-schedule-clean)
    (and buffer
         (with-current-buffer buffer
           ;; Major mode is set in vc-find-revision-no-save already.
           (diff-syntax-fontify-props nil text line-nb)))))