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))