This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU AUCTeX".

The branch, master has been updated
       via  3d813cdeb8e7e7184dcf9d58f576584312cffae6 (commit)
      from  93363d31b7ad7a6ab92eb7cd5cb741f22469ea3b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3d813cdeb8e7e7184dcf9d58f576584312cffae6
Author: Ikumi Keita <[email protected]>
Date:   Fri Apr 23 17:10:31 2021 +0900

    Add new test
    
    * tests/latex/latex-test.el (LaTeX-electric-pair-interaction): New
    test.
    * latex.el (LaTeX-insert-left-brace): Add comments.

diff --git a/latex.el b/latex.el
index 767fe21..3330037 100644
--- a/latex.el
+++ b/latex.el
@@ -2900,7 +2900,12 @@ Normally bound to keys \(, { and [."
              (> (point) (mark)))
         (exchange-point-and-mark))
     (if auto-p
+        ;; Should supply corresponding right brace with possible
+        ;; \right-like macro.
         (let ((lbrace (char-to-string last-command-event)) lmacro skip-p)
+          ;; Use `insert' rather than `self-insert-command' so that
+          ;; unexcpected side effects, e.g. `electric-pair-mode',
+          ;; won't mess up the following outcomes. (bug#47936)
           (insert last-command-event)
           (save-excursion
             (backward-char)
@@ -2931,6 +2936,8 @@ Normally bound to keys \(, { and [."
                   (goto-char (mark)))
               (LaTeX-insert-corresponding-right-macro-and-brace
                lmacro lbrace))))
+      ;; Don't supply right brace and just act as ordinary
+      ;; `self-insert-command'.
       (self-insert-command (prefix-numeric-value arg)))))
 ;; Cater for `delete-selection-mode' (bug#36385)
 ;; See the header comment of delsel.el for detail.
diff --git a/tests/latex/latex-test.el b/tests/latex/latex-test.el
index 6f70d95..81cfc52 100644
--- a/tests/latex/latex-test.el
+++ b/tests/latex/latex-test.el
@@ -536,4 +536,34 @@ ghi"))
 \\end{quote}
 ")))))
 
+(ert-deftest LaTeX-electric-pair-interaction ()
+  "Whether `LaTeX-insert-left-brace' is compatible with `electric-pair-mode'."
+  (require 'elec-pair)
+  (let ((LaTeX-electric-left-right-brace t)
+        (orig-mode electric-pair-mode))
+    (unwind-protect
+        (with-temp-buffer
+          ;; Temporally enable electric pair mode, if not enabled
+          ;; already.
+          (or orig-mode
+              (electric-pair-mode 1))
+          (latex-mode)
+
+          ;; When `LaTeX-insert-left-brace' supplies right brace,
+          ;; `electric-pair-mode' shoudn't come into play.
+          (setq last-command-event ?\()
+          (LaTeX-insert-left-brace nil)
+          (should (string= "()" (buffer-string)))
+
+          (erase-buffer)
+          ;; When there is a prefix argument, `LaTeX-insert-left-brace'
+          ;; just calls `self-insert-command' and `electric-pair-mode'
+          ;; should work.
+          (setq last-command-event ?\()
+          (LaTeX-insert-left-brace 2)
+          (should (string= "(()" (buffer-string))))
+      ;; Restore electric pair mode.
+      (or orig-mode
+          (electric-pair-mode -1)))))
+
 ;;; latex-test.el ends here

-----------------------------------------------------------------------

Summary of changes:
 latex.el                  |  7 +++++++
 tests/latex/latex-test.el | 30 ++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)


hooks/post-receive
-- 
GNU AUCTeX

_______________________________________________
auctex-diffs mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/auctex-diffs

Reply via email to