Function: majutsu-find-file--internal

majutsu-find-file--internal is a natively compiled function defined in majutsu-file.el.

Signature

(majutsu-find-file--internal REV FILE FN)

Documentation

Visit FILE from REV using FN to display the buffer.

REV is a revset, or nil to visit the file directly from the filesystem. Preserves line/column position when jumping between revisions.

Source Code

;; Defined in /nix/store/jagqw3nms546pad0gxi5f3wsckk6pji7-emacs-packages-deps/share/emacs/site-lisp/majutsu-file.el
(defun majutsu-find-file--internal (rev file fn)
  "Visit FILE from REV using FN to display the buffer.
REV is a revset, or nil to visit the file directly from the filesystem.
Preserves line/column position when jumping between revisions."
  (let* ((root (majutsu-file--root))
         (rel-file (majutsu-file--relative-path root file))
         (visited-file (when majutsu-buffer-blob-path
                         majutsu-buffer-blob-path))
         (from-rev majutsu-buffer-blob-revision)
         line col buf)
    ;; Capture position if visiting same file
    (when (and visited-file (equal visited-file rel-file))
      (setq line (line-number-at-pos))
      (setq col (current-column))
      ;; Adjust line when jumping to different revision
      (when (and line from-rev)
        (let ((to-rev (or rev "@")))
          (unless (equal from-rev to-rev)
            (setq line (majutsu-diff-visit--offset root rel-file from-rev to-rev line))))))
    ;; Get or create buffer using majutsu-find-file-noselect
    (setq buf (majutsu-find-file-noselect rev rel-file))
    ;; Display and position
    (funcall fn buf)
    (when line
      (with-current-buffer buf
        (majutsu-file--goto-line-col line (or col 0))))
    buf))