[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vlf a3901b8 157/310: Fix deletion when moving to partia
From: |
Stefan Monnier |
Subject: |
[elpa] externals/vlf a3901b8 157/310: Fix deletion when moving to partially overlapping chunk and enable more |
Date: |
Sat, 28 Nov 2020 00:33:06 -0500 (EST) |
branch: externals/vlf
commit a3901b8f1a304a8051271f5f0291d35dbc5de0c3
Author: Andrey Kotlarski <m00naticus@gmail.com>
Commit: Andrey Kotlarski <m00naticus@gmail.com>
Fix deletion when moving to partially overlapping chunk and enable more
intelligent behaviour in cases of overlapping and modifications.
---
vlf.el | 35 ++++++++++++++++++++++-------------
1 file changed, 22 insertions(+), 13 deletions(-)
diff --git a/vlf.el b/vlf.el
index e9f559c..6084fe4 100644
--- a/vlf.el
+++ b/vlf.el
@@ -341,11 +341,8 @@ If same as current chunk is requested, do nothing."
(unless (and (= start vlf-start-pos)
(= end vlf-end-pos))
(vlf-verify-size)
- (if (buffer-modified-p)
- (if (vlf-move-to-chunk-1 start end)
- (or minimal (vlf-update-buffer-name)))
- (vlf-move-to-chunk-2 start end)
- (or minimal (vlf-update-buffer-name)))))
+ (if (vlf-move-to-chunk-1 start end)
+ (or minimal (vlf-update-buffer-name)))))
(defun vlf-move-to-chunk-1 (start end)
"Move to chunk determined by START END keeping as much edits if any.
@@ -362,6 +359,7 @@ Return t if move hasn't been canceled."
((or (<= edit-end start) (<= end vlf-start-pos))
(when (or (not modified)
(y-or-n-p "Chunk modified, are you sure? ")) ;full chunk
renewal
+ (set-buffer-modified-p nil)
(vlf-move-to-chunk-2 start end)
t))
((or (and (<= start vlf-start-pos) (<= edit-end end))
@@ -372,10 +370,15 @@ Return t if move hasn't been canceled."
(shift-end 0)
(inhibit-read-only t))
(cond ((< end edit-end)
- (vlf-with-undo-disabled
- (delete-region (byte-to-position
- (1+ (- end vlf-start-pos)))
- (point-max))))
+ (let* ((del-pos (1+ (byte-to-position
+ (- end vlf-start-pos))))
+ (del-len (length (encode-coding-region
+ del-pos (point-max)
+ buffer-file-coding-system
+ t))))
+ (setq end (- vlf-end-pos del-len))
+ (vlf-with-undo-disabled
+ (delete-region del-pos (point-max)))))
((< edit-end end)
(let ((edit-end-pos (point-max)))
(goto-char edit-end-pos)
@@ -386,9 +389,15 @@ Return t if move hasn't been canceled."
vlf-end-pos end nil t
edit-end-pos)))))))
(cond ((< vlf-start-pos start)
- (vlf-with-undo-disabled
- (delete-region (point-min) (byte-to-position
- (- start vlf-start-pos)))))
+ (let* ((del-pos (1+ (byte-to-position
+ (- start vlf-start-pos))))
+ (del-len (length (encode-coding-region
+ (point-min) del-pos
+ buffer-file-coding-system
+ t))))
+ (setq start (+ vlf-start-pos del-len))
+ (vlf-with-undo-disabled
+ (delete-region (point-min) del-pos))))
((< start vlf-start-pos)
(let ((edit-end-pos (point-max)))
(goto-char edit-end-pos)
@@ -876,7 +885,7 @@ in file: %s" total-matches line regexp file)
"Discard edit and refresh chunk from file."
(interactive)
(set-buffer-modified-p nil)
- (vlf-move-to-chunk vlf-start-pos vlf-end-pos))
+ (vlf-move-to-chunk-2 vlf-start-pos vlf-end-pos))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; saving
- [elpa] externals/vlf 737c1e9 126/310: Remove encode size bookkeeping., (continued)
- [elpa] externals/vlf 737c1e9 126/310: Remove encode size bookkeeping., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf d1b34dc 127/310: Add autoload cookie for `file-size-human-readable' not to break GNU, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 4c631bc 129/310: Rename vlfi.el to vlf.el., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 17c6612 130/310: Rename anything vlfi -> vlf., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf bc68eed 131/310: Add dummy vlfi.el that urges move to the vlf package., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 025399a 133/310: Merge branch 'master' into keep-edit, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf f34986a 142/310: Update README., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 931ca52 145/310: Stylistic refinements., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 2ac3e7d 146/310: Fix prematurely ending search/occur not to ask for modified buffer, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 0080991 154/310: Fix chunk end adjustment and save for trunk Emacs., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf a3901b8 157/310: Fix deletion when moving to partially overlapping chunk and enable more,
Stefan Monnier <=
- [elpa] externals/vlf 371c560 158/310: Bump version and remove warning - save is now reliable., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf c68c34e 160/310: Add vlf-application customization which refines control over when, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf a0cafa7 161/310: Explicitly offer vlf-prefix-map so user can easily define another prefix, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf ea46386 168/310: Don't apply VLF by default over image and pdf files., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 2470fc0 181/310: Fix vlf-shift-undo-list to reverse resulting list., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 161a4ec 184/310: Prevent inserting of too small file regions for GNU Emacs later than, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 95e6259 188/310: Add convenience macro to disable VLF application during execution of, Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 66db665 189/310: Fix follow functionality and explicitly set variable as buffer local., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 38e8f6c 199/310: Update file size when moving to end of buffer., Stefan Monnier, 2020/11/28
- [elpa] externals/vlf 47c154c 194/310: Fix detection of good chunk start., Stefan Monnier, 2020/11/28