mirror of
https://github.com/m00natic/vlfi.git
synced 2025-04-18 16:50:19 +01:00
Refactor vlf-write.
This commit is contained in:
parent
2e2bca6999
commit
65b4d7413f
46
vlf.el
46
vlf.el
@ -962,29 +962,31 @@ 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
|
(progn
|
||||||
(point-min) (point-max)
|
(write-region nil nil buffer-file-name vlf-start-pos t)
|
||||||
buffer-file-coding-system t)))
|
(setq vlf-file-size (vlf-get-file-size buffer-file-name)
|
||||||
(size-change (- vlf-end-pos vlf-start-pos region-length)))
|
vlf-end-pos vlf-file-size)
|
||||||
(if (or (zerop size-change) (zerop vlf-file-size))
|
(vlf-update-buffer-name))
|
||||||
(progn
|
(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)
|
(write-region nil nil buffer-file-name vlf-start-pos t)
|
||||||
(when (zerop vlf-file-size) ;new file
|
(let ((pos (point)))
|
||||||
(setq vlf-file-size (vlf-get-file-size buffer-file-name)
|
(if (< 0 size-change)
|
||||||
vlf-end-pos vlf-file-size)
|
(vlf-file-shift-back size-change)
|
||||||
(vlf-update-buffer-name)))
|
(vlf-file-shift-forward (- size-change)))
|
||||||
(if (< 0 size-change)
|
(setq vlf-file-size (vlf-get-file-size buffer-file-name))
|
||||||
(vlf-file-shift-back size-change)
|
(vlf-move-to-chunk-2 vlf-start-pos
|
||||||
(vlf-file-shift-forward (- size-change)))
|
(if (< (- vlf-end-pos vlf-start-pos)
|
||||||
(setq vlf-file-size (vlf-get-file-size buffer-file-name))
|
vlf-batch-size)
|
||||||
(vlf-move-to-chunk-2 vlf-start-pos
|
(+ vlf-start-pos vlf-batch-size)
|
||||||
(if (< (- vlf-end-pos vlf-start-pos)
|
vlf-end-pos))
|
||||||
vlf-batch-size)
|
(vlf-update-buffer-name)
|
||||||
(+ vlf-start-pos vlf-batch-size)
|
(goto-char pos))))))
|
||||||
vlf-end-pos))
|
|
||||||
(vlf-update-buffer-name)
|
|
||||||
(goto-char pos))))
|
|
||||||
t)
|
t)
|
||||||
|
|
||||||
(defun vlf-file-shift-back (size-change)
|
(defun vlf-file-shift-back (size-change)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user