mirror of
https://github.com/m00natic/vlfi.git
synced 2025-10-31 23:21:39 +00:00
Simplify detection of buffer size change.
This commit is contained in:
22
vlfi.el
22
vlfi.el
@@ -50,7 +50,6 @@
|
|||||||
(defvar vlfi-end-pos vlfi-batch-size
|
(defvar vlfi-end-pos vlfi-batch-size
|
||||||
"Absolute position of the visible chunk end.")
|
"Absolute position of the visible chunk end.")
|
||||||
(defvar vlfi-file-size 0 "Total size of presented file.")
|
(defvar vlfi-file-size 0 "Total size of presented file.")
|
||||||
(defvar vlfi-buffer-size 0 "Buffer size of current chunk.")
|
|
||||||
|
|
||||||
(defvar vlfi-mode-map
|
(defvar vlfi-mode-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
@@ -83,9 +82,7 @@
|
|||||||
(make-local-variable 'vlfi-end-pos)
|
(make-local-variable 'vlfi-end-pos)
|
||||||
(put 'vlfi-end-pos 'permanent-local t)
|
(put 'vlfi-end-pos 'permanent-local t)
|
||||||
(make-local-variable 'vlfi-file-size)
|
(make-local-variable 'vlfi-file-size)
|
||||||
(put 'vlfi-file-size 'permanent-local t)
|
(put 'vlfi-file-size 'permanent-local t))
|
||||||
(make-local-variable 'vlfi-buffer-size)
|
|
||||||
(put 'vlfi-buffer-size 'permanent-local t))
|
|
||||||
|
|
||||||
(defun vlfi-change-batch-size (decrease)
|
(defun vlfi-change-batch-size (decrease)
|
||||||
"Change the buffer-local value of `vlfi-batch-size'.
|
"Change the buffer-local value of `vlfi-batch-size'.
|
||||||
@@ -134,14 +131,12 @@ When prefix argument is negative
|
|||||||
(goto-char (point-max))
|
(goto-char (point-max))
|
||||||
(setq vlfi-start-pos (- end vlfi-batch-size))
|
(setq vlfi-start-pos (- end vlfi-batch-size))
|
||||||
(erase-buffer))
|
(erase-buffer))
|
||||||
(insert-file-contents buffer-file-name nil
|
(insert-file-contents buffer-file-name nil (if do-append
|
||||||
(if do-append
|
|
||||||
vlfi-end-pos
|
vlfi-end-pos
|
||||||
vlfi-start-pos)
|
vlfi-start-pos)
|
||||||
end)
|
end)
|
||||||
(goto-char pos))
|
(goto-char pos))
|
||||||
(setq vlfi-end-pos end
|
(setq vlfi-end-pos end))
|
||||||
vlfi-buffer-size (buffer-size)))
|
|
||||||
(set-visited-file-modtime)
|
(set-visited-file-modtime)
|
||||||
(set-buffer-modified-p nil)
|
(set-buffer-modified-p nil)
|
||||||
(vlfi-update-buffer-name))
|
(vlfi-update-buffer-name))
|
||||||
@@ -169,8 +164,7 @@ When prefix argument is negative
|
|||||||
vlfi-start-pos
|
vlfi-start-pos
|
||||||
vlfi-end-pos))
|
vlfi-end-pos))
|
||||||
(goto-char (- (point-max) pos))
|
(goto-char (- (point-max) pos))
|
||||||
(setq vlfi-start-pos start
|
(setq vlfi-start-pos start))
|
||||||
vlfi-buffer-size (buffer-size)))
|
|
||||||
(set-visited-file-modtime)
|
(set-visited-file-modtime)
|
||||||
(set-buffer-modified-p nil)
|
(set-buffer-modified-p nil)
|
||||||
(vlfi-update-buffer-name))
|
(vlfi-update-buffer-name))
|
||||||
@@ -191,7 +185,6 @@ Adjust according to file start/end and show `vlfi-batch-size' bytes."
|
|||||||
(insert-file-contents buffer-file-name nil
|
(insert-file-contents buffer-file-name nil
|
||||||
vlfi-start-pos vlfi-end-pos)
|
vlfi-start-pos vlfi-end-pos)
|
||||||
(goto-char pos))
|
(goto-char pos))
|
||||||
(setq vlfi-buffer-size (buffer-size))
|
|
||||||
(set-visited-file-modtime)
|
(set-visited-file-modtime)
|
||||||
(set-buffer-modified-p nil)
|
(set-buffer-modified-p nil)
|
||||||
(vlfi-update-buffer-name))
|
(vlfi-update-buffer-name))
|
||||||
@@ -209,7 +202,6 @@ Adjust according to file start/end and show `vlfi-batch-size' bytes."
|
|||||||
(insert-file-contents buffer-file-name nil
|
(insert-file-contents buffer-file-name nil
|
||||||
vlfi-start-pos vlfi-end-pos)
|
vlfi-start-pos vlfi-end-pos)
|
||||||
(goto-char pos))
|
(goto-char pos))
|
||||||
(setq vlfi-buffer-size (buffer-size))
|
|
||||||
(set-visited-file-modtime)
|
(set-visited-file-modtime)
|
||||||
(set-buffer-modified-p nil)
|
(set-buffer-modified-p nil)
|
||||||
(vlfi-update-buffer-name))
|
(vlfi-update-buffer-name))
|
||||||
@@ -437,7 +429,11 @@ If changing size of chunk, may load the remaining part of file first."
|
|||||||
(or (verify-visited-file-modtime)
|
(or (verify-visited-file-modtime)
|
||||||
(y-or-n-p "File has changed since visited or \
|
(y-or-n-p "File has changed since visited or \
|
||||||
saved. Save anyway? ")))
|
saved. Save anyway? ")))
|
||||||
(let ((size-change (- vlfi-buffer-size (buffer-size))))
|
(let ((size-change (- vlfi-end-pos vlfi-start-pos
|
||||||
|
(length
|
||||||
|
(encode-coding-region
|
||||||
|
(point-min) (point-max)
|
||||||
|
buffer-file-coding-system t)))))
|
||||||
(if (zerop size-change)
|
(if (zerop size-change)
|
||||||
(vlfi-write-1)
|
(vlfi-write-1)
|
||||||
(setq vlfi-file-size (nth 7
|
(setq vlfi-file-size (nth 7
|
||||||
|
|||||||
Reference in New Issue
Block a user