mirror of
https://github.com/m00natic/vlfi.git
synced 2025-04-18 16:50:19 +01:00
Use set-visited-file-name and abstract getting current file size and
updating visited time.
This commit is contained in:
parent
ce9441fc83
commit
34dfbd202d
30
vlfi.el
30
vlfi.el
@ -102,10 +102,9 @@ buffer. You can customize number of bytes displayed by customizing
|
|||||||
`vlfi-batch-size'."
|
`vlfi-batch-size'."
|
||||||
(interactive "fFile to open: ")
|
(interactive "fFile to open: ")
|
||||||
(with-current-buffer (generate-new-buffer "*vlfi*")
|
(with-current-buffer (generate-new-buffer "*vlfi*")
|
||||||
(setq default-directory (file-name-directory (expand-file-name file)))
|
(set-visited-file-name file)
|
||||||
(vlfi-mode)
|
(vlfi-mode)
|
||||||
(setq buffer-file-name file
|
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name))
|
||||||
vlfi-file-size (vlfi-get-file-size file))
|
|
||||||
(vlfi-insert-file)
|
(vlfi-insert-file)
|
||||||
(switch-to-buffer (current-buffer))))
|
(switch-to-buffer (current-buffer))))
|
||||||
|
|
||||||
@ -209,6 +208,12 @@ with the prefix argument DECREASE it is halved."
|
|||||||
"Get size in bytes of FILE."
|
"Get size in bytes of FILE."
|
||||||
(nth 7 (file-attributes file)))
|
(nth 7 (file-attributes file)))
|
||||||
|
|
||||||
|
(defun vlfi-verify-size ()
|
||||||
|
"Update file size information if necessary and visited file time."
|
||||||
|
(unless (verify-visited-file-modtime (current-buffer))
|
||||||
|
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name))
|
||||||
|
(set-visited-file-modtime)))
|
||||||
|
|
||||||
(defun vlfi-insert-file (&optional from-end)
|
(defun vlfi-insert-file (&optional from-end)
|
||||||
"Insert first chunk of current file contents in current buffer.
|
"Insert first chunk of current file contents in current buffer.
|
||||||
With FROM-END prefix, start from the back."
|
With FROM-END prefix, start from the back."
|
||||||
@ -252,8 +257,7 @@ When prefix argument is supplied and positive
|
|||||||
When prefix argument is negative
|
When prefix argument is negative
|
||||||
append next APPEND number of batches to the existing buffer."
|
append next APPEND number of batches to the existing buffer."
|
||||||
(interactive "p")
|
(interactive "p")
|
||||||
(or (verify-visited-file-modtime (current-buffer))
|
(vlfi-verify-size)
|
||||||
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name)))
|
|
||||||
(let ((end (min (+ vlfi-end-pos (* vlfi-batch-size
|
(let ((end (min (+ vlfi-end-pos (* vlfi-batch-size
|
||||||
(abs append)))
|
(abs append)))
|
||||||
vlfi-file-size)))
|
vlfi-file-size)))
|
||||||
@ -284,8 +288,7 @@ When prefix argument is negative
|
|||||||
(interactive "p")
|
(interactive "p")
|
||||||
(if (zerop vlfi-start-pos)
|
(if (zerop vlfi-start-pos)
|
||||||
(error "Already at BOF"))
|
(error "Already at BOF"))
|
||||||
(or (verify-visited-file-modtime (current-buffer))
|
(vlfi-verify-size)
|
||||||
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name)))
|
|
||||||
(let ((inhibit-read-only t)
|
(let ((inhibit-read-only t)
|
||||||
(start (max 0 (- vlfi-start-pos (* vlfi-batch-size
|
(start (max 0 (- vlfi-start-pos (* vlfi-batch-size
|
||||||
(abs prepend)))))
|
(abs prepend)))))
|
||||||
@ -314,8 +317,7 @@ When prefix argument is negative
|
|||||||
"Move to batch determined by START.
|
"Move to batch determined by START.
|
||||||
Adjust according to file start/end and show `vlfi-batch-size' bytes.
|
Adjust according to file start/end and show `vlfi-batch-size' bytes.
|
||||||
When given MINIMAL flag, skip non important operations."
|
When given MINIMAL flag, skip non important operations."
|
||||||
(or (verify-visited-file-modtime (current-buffer))
|
(vlfi-verify-size)
|
||||||
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name)))
|
|
||||||
(setq vlfi-start-pos (max 0 start)
|
(setq vlfi-start-pos (max 0 start)
|
||||||
vlfi-end-pos (min (+ vlfi-start-pos vlfi-batch-size)
|
vlfi-end-pos (min (+ vlfi-start-pos vlfi-batch-size)
|
||||||
vlfi-file-size))
|
vlfi-file-size))
|
||||||
@ -335,8 +337,7 @@ When given MINIMAL flag, skip non important operations."
|
|||||||
(defun vlfi-move-to-chunk (start end &optional minimal)
|
(defun vlfi-move-to-chunk (start end &optional minimal)
|
||||||
"Move to chunk determined by START END.
|
"Move to chunk determined by START END.
|
||||||
When given MINIMAL flag, skip non important operations."
|
When given MINIMAL flag, skip non important operations."
|
||||||
(or (verify-visited-file-modtime (current-buffer))
|
(vlfi-verify-size)
|
||||||
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name)))
|
|
||||||
(setq vlfi-start-pos (max 0 start)
|
(setq vlfi-start-pos (max 0 start)
|
||||||
vlfi-end-pos (min end vlfi-file-size))
|
vlfi-end-pos (min end vlfi-file-size))
|
||||||
(let ((inhibit-read-only t)
|
(let ((inhibit-read-only t)
|
||||||
@ -802,6 +803,7 @@ Save anyway? ")))
|
|||||||
(progress-reporter-update reporter read-start-pos))
|
(progress-reporter-update reporter read-start-pos))
|
||||||
;; pad end with space
|
;; pad end with space
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
|
(vlfi-verify-size)
|
||||||
(insert-char 32 size-change)
|
(insert-char 32 size-change)
|
||||||
(write-region nil nil buffer-file-name (- vlfi-file-size
|
(write-region nil nil buffer-file-name (- vlfi-file-size
|
||||||
size-change) t)
|
size-change) t)
|
||||||
@ -811,8 +813,7 @@ Save anyway? ")))
|
|||||||
"Read `vlfi-batch-size' bytes from READ-POS and write them \
|
"Read `vlfi-batch-size' bytes from READ-POS and write them \
|
||||||
back at WRITE-POS. Return nil if EOF is reached, t otherwise."
|
back at WRITE-POS. Return nil if EOF is reached, t otherwise."
|
||||||
(erase-buffer)
|
(erase-buffer)
|
||||||
(or (verify-visited-file-modtime (current-buffer))
|
(vlfi-verify-size)
|
||||||
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name)))
|
|
||||||
(let ((read-end (+ read-pos vlfi-batch-size)))
|
(let ((read-end (+ read-pos vlfi-batch-size)))
|
||||||
(insert-file-contents-literally buffer-file-name nil
|
(insert-file-contents-literally buffer-file-name nil
|
||||||
read-pos
|
read-pos
|
||||||
@ -846,8 +847,7 @@ Done by saving content up front and then writing previous batch."
|
|||||||
Then write initial buffer content to file at WRITE-POS.
|
Then write initial buffer content to file at WRITE-POS.
|
||||||
If HIDE-READ is non nil, temporarily hide literal read content.
|
If HIDE-READ is non nil, temporarily hide literal read content.
|
||||||
Return nil if EOF is reached, t otherwise."
|
Return nil if EOF is reached, t otherwise."
|
||||||
(or (verify-visited-file-modtime (current-buffer))
|
(vlfi-verify-size)
|
||||||
(setq vlfi-file-size (vlfi-get-file-size buffer-file-name)))
|
|
||||||
(let ((read-more (< read-pos vlfi-file-size))
|
(let ((read-more (< read-pos vlfi-file-size))
|
||||||
(start-write-pos (point-min))
|
(start-write-pos (point-min))
|
||||||
(end-write-pos (point-max)))
|
(end-write-pos (point-max)))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user