1
0
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:
Andrey Kotlarski
2013-04-13 01:29:12 +03:00
parent 8787186619
commit 8f6299c6c2

22
vlfi.el
View File

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