mirror of
https://github.com/m00natic/vlfi.git
synced 2025-04-19 01:00:19 +01:00
Fix file size determination after save and move vlf-with-undo-disabled
macro before vlf-mode declaration.
This commit is contained in:
parent
ea46386cbc
commit
2e2bca6999
25
vlf.el
25
vlf.el
@ -100,6 +100,15 @@ Possible values are: nil to never use it;
|
|||||||
map)
|
map)
|
||||||
"Prefixed keymap for `vlf-mode'.")
|
"Prefixed keymap for `vlf-mode'.")
|
||||||
|
|
||||||
|
(defmacro vlf-with-undo-disabled (&rest body)
|
||||||
|
"Execute BODY with temporarily disabled undo."
|
||||||
|
`(let ((undo-enabled (not (eq buffer-undo-list t))))
|
||||||
|
(if undo-enabled
|
||||||
|
(buffer-disable-undo))
|
||||||
|
(unwind-protect (progn ,@body)
|
||||||
|
(if undo-enabled
|
||||||
|
(buffer-enable-undo)))))
|
||||||
|
|
||||||
(define-minor-mode vlf-mode
|
(define-minor-mode vlf-mode
|
||||||
"Mode to browse large files in."
|
"Mode to browse large files in."
|
||||||
:lighter " VLF"
|
:lighter " VLF"
|
||||||
@ -334,15 +343,6 @@ Ask for confirmation if NOCONFIRM is nil."
|
|||||||
(interactive "nGoto to chunk: ")
|
(interactive "nGoto to chunk: ")
|
||||||
(vlf-move-to-batch (* (1- n) vlf-batch-size)))
|
(vlf-move-to-batch (* (1- n) vlf-batch-size)))
|
||||||
|
|
||||||
(defmacro vlf-with-undo-disabled (&rest body)
|
|
||||||
"Execute BODY with temporarily disabled undo."
|
|
||||||
`(let ((undo-enabled (not (eq buffer-undo-list t))))
|
|
||||||
(if undo-enabled
|
|
||||||
(buffer-disable-undo))
|
|
||||||
(unwind-protect (progn ,@body)
|
|
||||||
(if undo-enabled
|
|
||||||
(buffer-enable-undo)))))
|
|
||||||
|
|
||||||
(defun vlf-no-modifications ()
|
(defun vlf-no-modifications ()
|
||||||
"Ensure there are no buffer modifications."
|
"Ensure there are no buffer modifications."
|
||||||
(if (buffer-modified-p)
|
(if (buffer-modified-p)
|
||||||
@ -971,14 +971,13 @@ Save anyway? ")))
|
|||||||
(progn
|
(progn
|
||||||
(write-region nil nil buffer-file-name vlf-start-pos t)
|
(write-region nil nil buffer-file-name vlf-start-pos t)
|
||||||
(when (zerop vlf-file-size) ;new file
|
(when (zerop vlf-file-size) ;new file
|
||||||
(setq vlf-file-size region-length
|
(setq vlf-file-size (vlf-get-file-size buffer-file-name)
|
||||||
vlf-end-pos region-length
|
vlf-end-pos vlf-file-size)
|
||||||
vlf-start-pos 1)
|
|
||||||
(vlf-update-buffer-name)))
|
(vlf-update-buffer-name)))
|
||||||
(if (< 0 size-change)
|
(if (< 0 size-change)
|
||||||
(vlf-file-shift-back size-change)
|
(vlf-file-shift-back size-change)
|
||||||
(vlf-file-shift-forward (- size-change)))
|
(vlf-file-shift-forward (- size-change)))
|
||||||
(vlf-verify-size)
|
(setq vlf-file-size (vlf-get-file-size buffer-file-name))
|
||||||
(vlf-move-to-chunk-2 vlf-start-pos
|
(vlf-move-to-chunk-2 vlf-start-pos
|
||||||
(if (< (- vlf-end-pos vlf-start-pos)
|
(if (< (- vlf-end-pos vlf-start-pos)
|
||||||
vlf-batch-size)
|
vlf-batch-size)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user