When using diff-hl-revert-hunk, an assertion failure occurs while the confirmation prompt is active:
Debugger entered--Lisp error: (cl-assertion-failed ((<= (point-min) beg end (point-max)) nil))
cl--assertion-failed((<= (point-min) beg end (point-max)))
track-changes-fetch(#s(track-changes--tracker :signal diff--track-changes-signal :state #s(track-changes--state :beg 1760 :end 2179 :before 399 :undo nil :next #s(track-changes--state :beg 2157 :end 1752 :before nil :undo t :next nil)) :nobefore t :immediate nil) diff--track-changes-function)
diff--track-changes-signal(#s(track-changes--tracker :signal diff--track-changes-signal :state #s(track-changes--state :beg 1760 :end 2179 :before 399 :undo nil :next #s(track-changes--state :beg 2157 :end 1752 :before nil :undo t :next nil)) :nobefore t :immediate nil))
track-changes--call-signal(#<buffer *diff-hl-revert*> #s(track-changes--tracker :signal diff--track-changes-signal :state #s(track-changes--state :beg 1760 :end 2179 :before 399 :undo nil :next #s(track-changes--state :beg 2157 :end 1752 :before nil :undo t :next nil)) :nobefore t :immediate nil))
apply(track-changes--call-signal (#<buffer *diff-hl-revert*> #s(track-changes--tracker :signal diff--track-changes-signal :state #s(track-changes--state :beg 1760 :end 2179 :before 399 :undo nil :next #s(track-changes--state :beg 2157 :end 1752 :before nil :undo t :next nil)) :nobefore t :immediate nil)))
timer-event-handler([t 27173 23866 166673 nil track-changes--call-signal (#<buffer *diff-hl-revert*> #s(track-changes--tracker :signal diff--track-changes-signal :state #s(track-changes--state :beg 1760 :end 2179 :before 399 :undo nil :next #s(track-changes--state :beg 2157 :end 1752 :before nil :undo t :next nil)) :nobefore t :immediate nil)) nil 46000 nil])
read-from-minibuffer(#("Revert current hunk in /home/user/tests/diff-hl/diff-hl.el? (y or n) " 65 66 (face help-key-binding font-lock-face help-key-binding) 70 71 (face help-key-binding font-lock-face help-key-binding)) nil (keymap (keymap (escape . abort-recursive-edit) (remap keymap (quit . abort-recursive-edit) (exit-prefix . abort-recursive-edit) (exit . y-or-n-p-insert-other) (scroll-other-window-down . minibuffer-scroll-other-window-down) (scroll-other-window . minibuffer-scroll-other-window) (scroll-down . minibuffer-scroll-down-command) (scroll-up . minibuffer-scroll-up-command) (recenter . minibuffer-recenter-top-bottom) (self-insert-command . y-or-n-p-insert-other) (ignore . y-or-n-p-insert-other) (delete-and-edit . y-or-n-p-insert-other) (edit-replacement . y-or-n-p-insert-other) (edit . y-or-n-p-insert-other) (undo-all . y-or-n-p-insert-other) (undo . y-or-n-p-insert-other) (backup . y-or-n-p-insert-other) (skip . y-or-n-p-insert-n) (automatic . y-or-n-p-insert-y) (act-and-exit . y-or-n-p-insert-y) (act-and-show . y-or-n-p-insert-y) (act . y-or-n-p-insert-y)) keymap (C-down . next-history-element) (C-up . previous-history-element) (normal-state keymap "Auxiliary keymap for Normal state" (13 . exit-minibuffer) (escape . abort-recursive-edit) (99 . evil-collection-change-in-minibuffer)) (menu-bar keymap (minibuf "Minibuf" keymap (previous menu-item "Previous History Item" previous-history-element :help "Put previous minibuffer history element in the minibuffer") (next menu-item "Next History Item" next-history-element :help "Put next minibuffer history element in the minibuffer") (isearch-backward menu-item "Isearch History Backward" isearch-backward :help "Incrementally search minibuffer history backward") (isearch-forward menu-item "Isearch History Forward" isearch-forward :help "Incrementally search minibuffer history forward") (return menu-item "Enter" exit-minibuffer :key-sequence "\15" :help "Terminate input and exit minibuffer") (quit menu-item "Quit" abort-recursive-edit :help "Abort input and exit minibuffer") "Minibuf")) (24 keymap (down . minibuffer-complete-defaults) (up . minibuffer-complete-history)) (13 . exit-minibuffer) (10 . exit-minibuffer) (7 . abort-minibuffers) (C-tab . file-cache-minibuffer-complete) (9 . self-insert-command) (XF86Back . previous-history-element) (up . previous-line-or-history-element) (prior . previous-history-element) (XF86Forward . next-history-element) (down . next-line-or-history-element) (next . next-history-element) (27 keymap (65 . marginalia-cycle) (60 . minibuffer-beginning-of-buffer) (114 . consult-history) (115 . consult-history) (112 . previous-history-element) (110 . next-history-element))) keymap (escape . exit-prefix) (M-prior . scroll-other-window-down) (M-next . scroll-other-window) (prior . scroll-down) (next . scroll-up) (27 keymap (33554454 . scroll-other-window-down) (22 . scroll-other-window) (118 . scroll-down)) (22 . scroll-up) (29 . quit) (7 . quit) (63 . help) (help . help) (f1 . help) (8 . help) (100 . diff) (85 . undo-all) (117 . undo) (94 . backup) (33 . automatic) (12 . recenter) (23 . delete-and-edit) (18 . edit) (46 . act-and-exit) (return . exit) (13 . exit) (113 . exit) (44 . act-and-show) (69 . edit-replacement-exact-case) (101 . edit-replacement) (78 . skip) (89 . act) (110 . skip) (121 . act) (backspace . skip) (delete . skip) (127 . skip) (32 . act)) nil t)
y-or-n-p("Revert current hunk in /home/user/tests/diff-hl/diff-hl.el? ")
yes-or-no-p("Revert current hunk in /home/user/tests/diff-hl/diff-hl.el? ")
(if (yes-or-no-p (format "Revert current hunk in %s? " file)) nil (user-error "Revert canceled"))
(if diff-hl-ask-before-revert-hunk (if (yes-or-no-p (format "Revert current hunk in %s? " file)) nil (user-error "Revert canceled")))
(let (beg-line end-line m-beg m-end) (if (eobp) (progn (save-current-buffer (set-buffer buffer) (diff-hl-remove-overlays)) (user-error "Buffer is up-to-date"))) (with-no-warnings (let (diff-auto-refine-mode) (diff-hl-diff-skip-to line))) (setq m-end (diff-hl-split-away-changes 3)) (setq m-beg (point-marker)) (funcall diff-hl-highlight-revert-hunk-function m-end) (progn (setq beg-line (line-number-at-pos m-beg)) (setq end-line (line-number-at-pos m-end))) (let ((wbh (window-body-height))) (if (>= wbh (- end-line beg-line)) (recenter (/ (+ wbh (- beg-line end-line) 2) 2)) (recenter 1))) (with-no-warnings (if diff-auto-refine-mode (progn (diff-refine-hunk)))) (if diff-hl-ask-before-revert-hunk (if (yes-or-no-p (format "Revert current hunk in %s? " file)) nil (user-error "Revert canceled"))) (widen) (let ((diff-advance-after-apply-hunk nil)) (let ((wconfig (current-window-configuration))) (unwind-protect (progn (diff-apply-hunk t)) (set-window-configuration wconfig)))) (save-current-buffer (set-buffer buffer) (save-buffer)) (message "Hunk reverted"))
#f(lambda () [(file "/home/user/tests/diff-hl/diff-hl.el") (line 745) (buffer #<buffer diff-hl.el>) (diff-buffer #<buffer *diff-hl-revert*>)] (vc-diff-finish diff-buffer nil) (let (beg-line end-line m-beg m-end) (if (eobp) (progn (save-current-buffer (set-buffer buffer) (diff-hl-remove-overlays)) (user-error "Buffer is up-to-date"))) (with-no-warnings (let (diff-auto-refine-mode) (diff-hl-diff-skip-to line))) (setq m-end (diff-hl-split-away-changes 3)) (setq m-beg (point-marker)) (funcall diff-hl-highlight-revert-hunk-function m-end) (progn (setq beg-line (line-number-at-pos m-beg)) (setq end-line (line-number-at-pos m-end))) (let ((wbh (window-body-height))) (if (>= wbh (- end-line beg-line)) (recenter (/ (+ wbh (- beg-line end-line) 2) 2)) (recenter 1))) (with-no-warnings (if diff-auto-refine-mode (progn (diff-refine-hunk)))) (if diff-hl-ask-before-revert-hunk (if (yes-or-no-p (format "Revert current hunk in %s? " file)) nil (user-error "Revert canceled"))) (widen) (let ((diff-advance-after-apply-hunk nil)) (let ((wconfig (current-window-configuration))) (unwind-protect (progn (diff-apply-hunk t)) (set-window-configuration wconfig)))) (save-current-buffer (set-buffer buffer) (save-buffer)) (message "Hunk reverted")))()
#f(compiled-function () #<bytecode -0x140d1f6a0c9d3852>)()
vc-exec-after(#f(lambda () [(file "/home/user/tests/diff-hl/diff-hl.el") (line 745) (buffer #<buffer diff-hl.el>) (diff-buffer #<buffer *diff-hl-revert*>)] (vc-diff-finish diff-buffer nil) (let (beg-line end-line m-beg m-end) (if (eobp) (progn (save-current-buffer (set-buffer buffer) (diff-hl-remove-overlays)) (user-error "Buffer is up-to-date"))) (with-no-warnings (let (diff-auto-refine-mode) (diff-hl-diff-skip-to line))) (setq m-end (diff-hl-split-away-changes 3)) (setq m-beg (point-marker)) (funcall diff-hl-highlight-revert-hunk-function m-end) (progn (setq beg-line (line-number-at-pos m-beg)) (setq end-line (line-number-at-pos m-end))) (let ((wbh (window-body-height))) (if (>= wbh (- end-line beg-line)) (recenter (/ (+ wbh ... 2) 2)) (recenter 1))) (with-no-warnings (if diff-auto-refine-mode (progn (diff-refine-hunk)))) (if diff-hl-ask-before-revert-hunk (if (yes-or-no-p (format "Revert current hunk in %s? " file)) nil (user-error "Revert canceled"))) (widen) (let ((diff-advance-after-apply-hunk nil)) (let ((wconfig (current-window-configuration))) (unwind-protect (progn (diff-apply-hunk t)) (set-window-configuration wconfig)))) (save-current-buffer (set-buffer buffer) (save-buffer)) (message "Hunk reverted"))))
(progn (vc-setup-buffer diff-buffer) (save-current-buffer (set-buffer buffer) (diff-hl-diff-against-reference file backend diff-buffer)) (diff-mode) (setq diff-vc-backend (prog1 backend (make-local-variable 'diff-vc-backend))) (setq diff-vc-revisions (prog1 (list diff-hl-reference-revision nil) (make-local-variable 'diff-vc-revisions))) (setq buffer-read-only t) (pop-to-buffer diff-buffer) (vc-exec-after #'(lambda nil (vc-diff-finish diff-buffer nil) (let (beg-line end-line m-beg m-end) (if (eobp) (progn (save-current-buffer ... ...) (user-error "Buffer is up-to-date"))) (with-no-warnings (let (diff-auto-refine-mode) (diff-hl-diff-skip-to line))) (setq m-end (diff-hl-split-away-changes 3)) (setq m-beg (point-marker)) (funcall diff-hl-highlight-revert-hunk-function m-end) (progn (setq beg-line (line-number-at-pos m-beg)) (setq end-line (line-number-at-pos m-end))) (let ((wbh ...)) (if (>= wbh ...) (recenter ...) (recenter 1))) (with-no-warnings (if diff-auto-refine-mode (progn ...))) (if diff-hl-ask-before-revert-hunk (if (yes-or-no-p ...) nil (user-error "Revert canceled"))) (widen) (let ((diff-advance-after-apply-hunk nil)) (let (...) (unwind-protect ... ...))) (save-current-buffer (set-buffer buffer) (save-buffer)) (message "Hunk reverted")))))
(unwind-protect (progn (vc-setup-buffer diff-buffer) (save-current-buffer (set-buffer buffer) (diff-hl-diff-against-reference file backend diff-buffer)) (diff-mode) (setq diff-vc-backend (prog1 backend (make-local-variable 'diff-vc-backend))) (setq diff-vc-revisions (prog1 (list diff-hl-reference-revision nil) (make-local-variable 'diff-vc-revisions))) (setq buffer-read-only t) (pop-to-buffer diff-buffer) (vc-exec-after #'(lambda nil (vc-diff-finish diff-buffer nil) (let (beg-line end-line m-beg m-end) (if (eobp) (progn ... ...)) (with-no-warnings (let ... ...)) (setq m-end (diff-hl-split-away-changes 3)) (setq m-beg (point-marker)) (funcall diff-hl-highlight-revert-hunk-function m-end) (progn (setq beg-line ...) (setq end-line ...)) (let (...) (if ... ... ...)) (with-no-warnings (if diff-auto-refine-mode ...)) (if diff-hl-ask-before-revert-hunk (if ... nil ...)) (widen) (let (...) (let ... ...)) (save-current-buffer (set-buffer buffer) (save-buffer)) (message "Hunk reverted"))))) (quit-windows-on diff-buffer t))
(let* ((diff-buffer (get-buffer-create (generate-new-buffer-name "*diff-hl-revert*"))) (buffer (current-buffer)) (diff-hl-update-async nil) (line (save-excursion (diff-hl-find-current-hunk) (line-number-at-pos))) (file (diff-hl--buffer-file-name)) (backend (vc-backend file))) (unwind-protect (progn (vc-setup-buffer diff-buffer) (save-current-buffer (set-buffer buffer) (diff-hl-diff-against-reference file backend diff-buffer)) (diff-mode) (setq diff-vc-backend (prog1 backend (make-local-variable 'diff-vc-backend))) (setq diff-vc-revisions (prog1 (list diff-hl-reference-revision nil) (make-local-variable 'diff-vc-revisions))) (setq buffer-read-only t) (pop-to-buffer diff-buffer) (vc-exec-after #'(lambda nil (vc-diff-finish diff-buffer nil) (let (beg-line end-line m-beg m-end) (if ... ...) (with-no-warnings ...) (setq m-end ...) (setq m-beg ...) (funcall diff-hl-highlight-revert-hunk-function m-end) (progn ... ...) (let ... ...) (with-no-warnings ...) (if diff-hl-ask-before-revert-hunk ...) (widen) (let ... ...) (save-current-buffer ... ...) (message "Hunk reverted"))))) (quit-windows-on diff-buffer t)))
(save-restriction (widen) (save-current-buffer (set-buffer (diff-hl--target-buffer)) (vc-buffer-sync)) (let* ((diff-buffer (get-buffer-create (generate-new-buffer-name "*diff-hl-revert*"))) (buffer (current-buffer)) (diff-hl-update-async nil) (line (save-excursion (diff-hl-find-current-hunk) (line-number-at-pos))) (file (diff-hl--buffer-file-name)) (backend (vc-backend file))) (unwind-protect (progn (vc-setup-buffer diff-buffer) (save-current-buffer (set-buffer buffer) (diff-hl-diff-against-reference file backend diff-buffer)) (diff-mode) (setq diff-vc-backend (prog1 backend (make-local-variable 'diff-vc-backend))) (setq diff-vc-revisions (prog1 (list diff-hl-reference-revision nil) (make-local-variable 'diff-vc-revisions))) (setq buffer-read-only t) (pop-to-buffer diff-buffer) (vc-exec-after #'(lambda nil (vc-diff-finish diff-buffer nil) (let ... ... ... ... ... ... ... ... ... ... ... ... ... ...)))) (quit-windows-on diff-buffer t))))
diff-hl-revert-hunk-1()
(save-current-buffer (set-buffer (current-buffer)) (diff-hl-revert-hunk-1))
diff-hl-revert-hunk()
funcall-interactively(diff-hl-revert-hunk)
command-execute(diff-hl-revert-hunk)
When using diff-hl-revert-hunk, an assertion failure occurs while the confirmation prompt is active: