[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
master 47612514a9e 5/8: Fix right-sided stamps commingling with erc-prom
From: |
F. Jason Park |
Subject: |
master 47612514a9e 5/8: Fix right-sided stamps commingling with erc-prompt |
Date: |
Fri, 20 Oct 2023 18:27:11 -0400 (EDT) |
branch: master
commit 47612514a9e04d6f41568c3f0cdeae837c2eae19
Author: F. Jason Park <jp@neverwas.me>
Commit: F. Jason Park <jp@neverwas.me>
Fix right-sided stamps commingling with erc-prompt
* lisp/erc/erc-stamp.el (erc-insert-timestamp-left-and-right): Fix bug
that saw the prompt being inserted after messages but just inside the
narrowed operating portion of the buffer, which meant remaining
modification hooks would see it upon visiting. Thanks to Corwin Brust
for catching this.
* test/lisp/erc/erc-fill-tests.el (erc-fill-wrap--monospace): Use
custom `erc-prompt' function to guarantee invariants asserted by
`erc--assert-input-bounds' are preserved throughout. (Bug#60936)
---
lisp/erc/erc-stamp.el | 6 +++--
test/lisp/erc/erc-fill-tests.el | 57 ++++++++++++++++++++++-------------------
2 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/lisp/erc/erc-stamp.el b/lisp/erc/erc-stamp.el
index 57fd7f39e50..c8fd7c35392 100644
--- a/lisp/erc/erc-stamp.el
+++ b/lisp/erc/erc-stamp.el
@@ -704,10 +704,12 @@ left-sided stamps and date stamps inserted by this
function."
(unless erc-stamp--date-format-end
(add-hook 'erc-insert-pre-hook #'erc-stamp--lr-date-on-pre-modify -95 t)
(add-hook 'erc-send-pre-functions #'erc-stamp--lr-date-on-pre-modify -95 t)
- (let ((erc--insert-marker (point-min-marker)))
+ (let ((erc--insert-marker (point-min-marker))
+ (end-marker (point-max-marker)))
(set-marker-insertion-type erc--insert-marker t)
(erc-stamp--lr-date-on-pre-modify nil)
- (narrow-to-region erc--insert-marker (point-max))
+ (narrow-to-region erc--insert-marker end-marker)
+ (set-marker end-marker nil)
(set-marker erc--insert-marker nil)))
(let* ((ct (or erc-stamp--current-time (erc-stamp--current-time)))
(ts-right (with-suppressed-warnings
diff --git a/test/lisp/erc/erc-fill-tests.el b/test/lisp/erc/erc-fill-tests.el
index f6c4c268017..80f5fd22ac6 100644
--- a/test/lisp/erc/erc-fill-tests.el
+++ b/test/lisp/erc/erc-fill-tests.el
@@ -203,36 +203,39 @@
(unless (>= emacs-major-version 29)
(ert-skip "Emacs version too low, missing `buffer-text-pixel-size'"))
- (erc-fill-tests--wrap-populate
-
- (lambda ()
- (should (= erc-fill--wrap-value 27))
- (erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
- (erc-fill-tests--compare "monospace-01-start")
-
- (ert-info ("Shift right by one (plus)")
- ;; Args are all `erc-fill-wrap-nudge' +1 because interactive "p"
- (ert-with-message-capture messages
- ;; M-x erc-fill-wrap-nudge RET =
- (ert-simulate-command '(erc-fill-wrap-nudge 2))
- (should (string-match (rx "for further adjustment") messages)))
- (should (= erc-fill--wrap-value 29))
- (erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
- (erc-fill-tests--compare "monospace-02-right"))
-
- (ert-info ("Shift left by five")
- ;; "M-x erc-fill-wrap-nudge RET -----"
- (ert-simulate-command '(erc-fill-wrap-nudge -4))
- (should (= erc-fill--wrap-value 25))
- (erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
- (erc-fill-tests--compare "monospace-03-left"))
+ (let ((erc-prompt (lambda () "ABC>")))
+ (erc-fill-tests--wrap-populate
- (ert-info ("Reset")
- ;; M-x erc-fill-wrap-nudge RET 0
- (ert-simulate-command '(erc-fill-wrap-nudge 0))
+ (lambda ()
(should (= erc-fill--wrap-value 27))
(erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
- (erc-fill-tests--compare "monospace-04-reset")))))
+ (erc-fill-tests--compare "monospace-01-start")
+
+ (ert-info ("Shift right by one (plus)")
+ ;; Args are all `erc-fill-wrap-nudge' +1 because interactive "p"
+ (ert-with-message-capture messages
+ ;; M-x erc-fill-wrap-nudge RET =
+ (ert-simulate-command '(erc-fill-wrap-nudge 2))
+ (should (string-match (rx "for further adjustment") messages)))
+ (should (= erc-fill--wrap-value 29))
+ (erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
+ (erc-fill-tests--compare "monospace-02-right"))
+
+ (ert-info ("Shift left by five")
+ ;; "M-x erc-fill-wrap-nudge RET -----"
+ (ert-simulate-command '(erc-fill-wrap-nudge -4))
+ (should (= erc-fill--wrap-value 25))
+ (erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
+ (erc-fill-tests--compare "monospace-03-left"))
+
+ (ert-info ("Reset")
+ ;; M-x erc-fill-wrap-nudge RET 0
+ (ert-simulate-command '(erc-fill-wrap-nudge 0))
+ (should (= erc-fill--wrap-value 27))
+ (erc-fill-tests--wrap-check-prefixes "*** " "<alice> " "<bob> ")
+ (erc-fill-tests--compare "monospace-04-reset"))
+
+ (erc--assert-input-bounds)))))
(defun erc-fill-tests--simulate-refill ()
;; Simulate `erc-fill-wrap-refill-buffer' synchronously and without
- master updated (1a8f61a9f65 -> f109396fe36), F. Jason Park, 2023/10/20
- master 8cf66ab1e5f 7/8: Rename erc-server-buffer-p, F. Jason Park, 2023/10/20
- master bcebda5eec2 6/8: Respect user markers in erc-insert-timestamp-left, F. Jason Park, 2023/10/20
- master b86b187aa90 2/8: * lisp/erc/erc-backend.el (define-erc-response-handler) Edebug spec., F. Jason Park, 2023/10/20
- master 7ffc79690ad 4/8: Restore missing metadata props in erc-display-line, F. Jason Park, 2023/10/20
- master f109396fe36 8/8: Prefer erc-target to erc-default-target, F. Jason Park, 2023/10/20
- master 47612514a9e 5/8: Fix right-sided stamps commingling with erc-prompt,
F. Jason Park <=
- master a74b5de31f6 3/8: Warn about top-level erc-update-modules calls, F. Jason Park, 2023/10/20
- master 6daa6f5f5ce 1/8: ; Mark erc-log test as :unstable, F. Jason Park, 2023/10/20