Function: wgrep-finish-edit
wgrep-finish-edit is an interactive and natively compiled function
defined in wgrep.el.
Signature
(wgrep-finish-edit)
Documentation
Apply changes to file buffers.
These changes are not immediately saved to disk unless
wgrep-auto-save-buffer is non-nil.
Key Bindings
wgrep-mode-map C-c C-c wgrep-mode-map C-c C-e wgrep-mode-map C-x C-s
Source Code
;; Defined in /nix/store/pbj4kr4ar755h56yscbqpnmv3swf8i1k-emacs-packages-deps/share/emacs/site-lisp/elpa/wgrep-20230203.1214/wgrep.el
;;;
;;; Commands
;;;
(defun wgrep-finish-edit ()
"Apply changes to file buffers.
These changes are not immediately saved to disk unless
`wgrep-auto-save-buffer' is non-nil."
(interactive)
(let* ((tran (wgrep-compute-transaction))
(all-length (length tran))
(wgrep-auto-apply-disk nil)
(done 0))
(cond
(wgrep-auto-save-buffer
(setq wgrep-auto-apply-disk t))
((> all-length wgrep-too-many-file-length)
(when (y-or-n-p (eval-when-compile
(concat
"Edited files are too many."
" Apply the changes to disk with non-confirmation?")))
(setq wgrep-auto-apply-disk t))))
(while tran
(let* ((editor (car tran))
(committed (wgrep-commit-file editor))
(count (nth 0 committed))
(result (nth 1 committed)))
(when result
(goto-char (overlay-start result))
(forward-line 0))
(setq done (+ done count))
(setq tran (cdr tran))
(let (message-log-max)
(message "Writing %d files, %d files are left..."
all-length (length tran)))
(redisplay t)))
(wgrep-cleanup-temp-buffer)
(wgrep-to-original-mode)
(let ((msg (format "(%d changed)" done))
(ovs (wgrep-edit-field-overlays)))
(cond
((null ovs)
(if (= done 0)
(message "(No changes to be performed)")
(message "Successfully finished. %s" msg)))
((= (length ovs) 1)
(message "There is an unapplied change. %s" msg))
(t
(message "There are %d unapplied changes. %s"
(length ovs) msg))))))