emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master decabae: Fix one-clause movement in erts-mode--goto-start-of-test


From: Lars Ingebrigtsen
Subject: master decabae: Fix one-clause movement in erts-mode--goto-start-of-test
Date: Fri, 1 Oct 2021 09:38:41 -0400 (EDT)

branch: master
commit decabae2df4669da6279b0fceefb8bddffdda079
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    Fix one-clause movement in erts-mode--goto-start-of-test
    
    * lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test): Fix
    so this works in one-clause tests.
---
 lisp/progmodes/erts-mode.el | 17 +++++++++++++----
 1 file changed, 13 insertions(+), 4 deletions(-)

diff --git a/lisp/progmodes/erts-mode.el b/lisp/progmodes/erts-mode.el
index 46b6a3a..9d51c1f 100644
--- a/lisp/progmodes/erts-mode.el
+++ b/lisp/progmodes/erts-mode.el
@@ -173,7 +173,8 @@ will be prompted for one."
     (erts-mode--goto-start-of-test)
     (condition-case arg
         (ert-test--erts-test
-         (list (cons 'dummy t) (cons 'code test-function))
+         (list (cons 'dummy t)
+               (cons 'code (car (read-from-string test-function))))
          (buffer-file-name))
       (:success (message "Test successful"))
       (ert-test-failed (message "Test failure; result: \n%s"
@@ -183,9 +184,17 @@ will be prompted for one."
   (if (not (erts-mode--in-test-p (point)))
       (re-search-forward "^=-=\n" nil t)
     (re-search-backward "^=-=\n" nil t)
-    (when (save-match-data (erts-mode--in-test-p (point)))
-      (re-search-backward "^=-=\n" nil t))
-    (goto-char (match-end 0))))
+    (let ((potential-start (match-end 0)))
+      ;; See if we're in a two-clause ("before" and "after") test or not.
+      (if-let ((start (and (save-excursion (re-search-backward "^=-=\n" nil t))
+                           (match-end 0))))
+          (let ((end (save-excursion (re-search-backward "^=-=-=\n" nil t))))
+            (if (or (not end)
+                    (> start end))
+                ;; We are, so go to the real start.
+                (goto-char start)
+              (goto-char potential-start)))
+        (goto-char potential-start)))))
 
 (provide 'erts-mode)
 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]