mirror of
				https://github.com/m00natic/vlfi.git
				synced 2025-10-31 07:03:35 +00:00 
			
		
		
		
	Disable undo in cases of partial chunk move.
This commit is contained in:
		
							
								
								
									
										17
									
								
								vlf.el
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								vlf.el
									
									
									
									
									
								
							| @@ -113,10 +113,7 @@ | |||||||
|       (remove-hook 'write-file-functions 'vlf-write t) |       (remove-hook 'write-file-functions 'vlf-write t) | ||||||
|       (let ((pos (+ vlf-start-pos (position-bytes (point))))) |       (let ((pos (+ vlf-start-pos (position-bytes (point))))) | ||||||
|         (vlf-with-undo-disabled |         (vlf-with-undo-disabled | ||||||
|          (erase-buffer) |          (insert-file-contents buffer-file-name t nil nil t)) | ||||||
|          (insert-file-contents buffer-file-name)) |  | ||||||
|         (set-visited-file-modtime) |  | ||||||
|         (set-buffer-modified-p nil) |  | ||||||
|         (goto-char (byte-to-position pos))) |         (goto-char (byte-to-position pos))) | ||||||
|       (rename-buffer (file-name-nondirectory buffer-file-name) t)))) |       (rename-buffer (file-name-nondirectory buffer-file-name) t)))) | ||||||
|  |  | ||||||
| @@ -375,24 +372,28 @@ Return t if move hasn't been canceled." | |||||||
|             (shift-end 0) |             (shift-end 0) | ||||||
|             (inhibit-read-only t)) |             (inhibit-read-only t)) | ||||||
|         (cond ((< end edit-end) |         (cond ((< end edit-end) | ||||||
|  |                (vlf-with-undo-disabled | ||||||
|                 (delete-region (byte-to-position (1+ |                 (delete-region (byte-to-position (1+ | ||||||
|                                                   (- end |                                                   (- end | ||||||
|                                                      vlf-start-pos))) |                                                      vlf-start-pos))) | ||||||
|                               (point-max))) |                                (point-max)))) | ||||||
|               ((< edit-end end) |               ((< edit-end end) | ||||||
|                (let ((edit-end-pos (point-max))) |                (let ((edit-end-pos (point-max))) | ||||||
|                  (goto-char edit-end-pos) |                  (goto-char edit-end-pos) | ||||||
|  |                  (vlf-with-undo-disabled | ||||||
|                   (insert-file-contents buffer-file-name nil |                   (insert-file-contents buffer-file-name nil | ||||||
|                                         vlf-end-pos end) |                                         vlf-end-pos end) | ||||||
|                   (setq shift-end (cdr (vlf-adjust-chunk |                   (setq shift-end (cdr (vlf-adjust-chunk | ||||||
|                                         vlf-end-pos end nil t |                                         vlf-end-pos end nil t | ||||||
|                                        edit-end-pos)))))) |                                         edit-end-pos))))))) | ||||||
|         (cond ((< vlf-start-pos start) |         (cond ((< vlf-start-pos start) | ||||||
|  |                (vlf-with-undo-disabled | ||||||
|                 (delete-region (point-min) (byte-to-position |                 (delete-region (point-min) (byte-to-position | ||||||
|                                            (- start vlf-start-pos)))) |                                             (- start vlf-start-pos))))) | ||||||
|               ((< start vlf-start-pos) |               ((< start vlf-start-pos) | ||||||
|                (let ((edit-end-pos (point-max))) |                (let ((edit-end-pos (point-max))) | ||||||
|                  (goto-char edit-end-pos) |                  (goto-char edit-end-pos) | ||||||
|  |                  (vlf-with-undo-disabled | ||||||
|                   (insert-file-contents buffer-file-name nil |                   (insert-file-contents buffer-file-name nil | ||||||
|                                         start vlf-start-pos) |                                         start vlf-start-pos) | ||||||
|                   (setq shift-start (car |                   (setq shift-start (car | ||||||
| @@ -402,7 +403,7 @@ Return t if move hasn't been canceled." | |||||||
|                                                        edit-end-pos))) |                                                        edit-end-pos))) | ||||||
|                   (goto-char (point-min)) |                   (goto-char (point-min)) | ||||||
|                   (insert (delete-and-extract-region edit-end-pos |                   (insert (delete-and-extract-region edit-end-pos | ||||||
|                                                     (point-max)))))) |                                                      (point-max))))))) | ||||||
|         (setq vlf-start-pos (- start shift-start) |         (setq vlf-start-pos (- start shift-start) | ||||||
|               vlf-end-pos (+ end shift-end)) |               vlf-end-pos (+ end shift-end)) | ||||||
|         (goto-char (or (byte-to-position (- pos vlf-start-pos)) |         (goto-char (or (byte-to-position (- pos vlf-start-pos)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user