1
0
mirror of https://github.com/m00natic/vlfi.git synced 2025-09-20 04:02:09 +01:00

Refactor vlf-write.

This commit is contained in:
Andrey Kotlarski
2013-12-12 02:20:03 +02:00
parent 2e2bca6999
commit 65b4d7413f

20
vlf.el
View File

@@ -962,18 +962,20 @@ If changing size of chunk, shift remaining file content."
(or (verify-visited-file-modtime (current-buffer)) (or (verify-visited-file-modtime (current-buffer))
(y-or-n-p "File has changed since visited or saved. \ (y-or-n-p "File has changed since visited or saved. \
Save anyway? "))) Save anyway? ")))
(let* ((pos (point)) (if (zerop vlf-file-size) ;new file
(region-length (length (encode-coding-region
(point-min) (point-max)
buffer-file-coding-system t)))
(size-change (- vlf-end-pos vlf-start-pos region-length)))
(if (or (zerop size-change) (zerop vlf-file-size))
(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
(setq vlf-file-size (vlf-get-file-size buffer-file-name) (setq vlf-file-size (vlf-get-file-size buffer-file-name)
vlf-end-pos vlf-file-size) vlf-end-pos vlf-file-size)
(vlf-update-buffer-name))) (vlf-update-buffer-name))
(let* ((region-length (length (encode-coding-region
(point-min) (point-max)
buffer-file-coding-system t)))
(size-change (- vlf-end-pos vlf-start-pos
region-length)))
(if (zerop size-change)
(write-region nil nil buffer-file-name vlf-start-pos t)
(let ((pos (point)))
(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)))
@@ -984,7 +986,7 @@ Save anyway? ")))
(+ vlf-start-pos vlf-batch-size) (+ vlf-start-pos vlf-batch-size)
vlf-end-pos)) vlf-end-pos))
(vlf-update-buffer-name) (vlf-update-buffer-name)
(goto-char pos)))) (goto-char pos))))))
t) t)
(defun vlf-file-shift-back (size-change) (defun vlf-file-shift-back (size-change)