aboutsummaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
authorJoão Távora2019-01-17 18:47:00 +0000
committerJoão Távora2019-01-17 18:49:10 +0000
commitbe505726b68d407a44fdcd9c7ac1ef722398532d (patch)
tree5e9255f212aceadaa64a9bb3a431a26776cb9353 /test
parent4bdc03746915c36313b33b6998b855eef514cdd1 (diff)
downloademacs-be505726b68d407a44fdcd9c7ac1ef722398532d.tar.gz
emacs-be505726b68d407a44fdcd9c7ac1ef722398532d.zip
Fix electric-pair-tests by disabling bug#33794's fix with a variable
The variable c--disable-fix-of-bug-33794, which should be removed in the short term in favor of a permanent solution, is introduced. It is bound to nil by default. This means that breakage is still happening in actual c-mode and c++-mode usage, though the tests no longer show it. To get around this breakage, put (setq c--disable-fix-of-bug-33794 t) In your init file. Evidently, you will lose the fix for bug#33794, but that only affects a small corner case of c-toggle-auto-newline, which is not turned on by default. See https://lists.gnu.org/archive/html/emacs-devel/2019-01/msg00360.html for more information. * lisp/progmodes/cc-cmds.el (c--disable-fix-of-bug-33794): New variable. (c--with-post-self-insert-hook-maybe): New macro. (c-electric-pound, c-electric-brace, c-electric-slash) (c-electric-star, c-electric-semi&comma, c-electric-colon) (c-electric-lt-gt, c-electric-paren): Use it. (c-electric-paren, c-electric-brace): Check c--disable-fix-of-bug-33794. * test/lisp/electric-tests.el (c--disable-fix-of-bug-33794): Forward declare. (electric-pair-test-for) (electric-layout-int-main-kernel-style) (electric-modes-in-c-mode-with-self-insert-command): Use it.
Diffstat (limited to 'test')
-rw-r--r--test/lisp/electric-tests.el6
1 files changed, 6 insertions, 0 deletions
diff --git a/test/lisp/electric-tests.el b/test/lisp/electric-tests.el
index 5a4b20ed04e..b55d889f0b5 100644
--- a/test/lisp/electric-tests.el
+++ b/test/lisp/electric-tests.el
@@ -47,10 +47,14 @@
47 (declare (indent defun) (debug t)) 47 (declare (indent defun) (debug t))
48 `(call-with-saved-electric-modes #'(lambda () ,@body))) 48 `(call-with-saved-electric-modes #'(lambda () ,@body)))
49 49
50;; Defined in lisp/progmodes/cc-cmds.el
51(defvar c--disable-fix-of-bug-33794 t)
52
50(defun electric-pair-test-for (fixture where char expected-string 53(defun electric-pair-test-for (fixture where char expected-string
51 expected-point mode bindings fixture-fn) 54 expected-point mode bindings fixture-fn)
52 (with-temp-buffer 55 (with-temp-buffer
53 (funcall mode) 56 (funcall mode)
57 (setq-local c--disable-fix-of-bug-33794 t)
54 (insert fixture) 58 (insert fixture)
55 (save-electric-modes 59 (save-electric-modes
56 (let ((last-command-event char) 60 (let ((last-command-event char)
@@ -821,6 +825,7 @@ baz\"\""
821 (electric-layout-local-mode 1) 825 (electric-layout-local-mode 1)
822 (electric-pair-local-mode 1) 826 (electric-pair-local-mode 1)
823 (electric-indent-local-mode 1) 827 (electric-indent-local-mode 1)
828 (setq-local c--disable-fix-of-bug-33794 t)
824 (setq-local electric-layout-rules 829 (setq-local electric-layout-rules
825 '((?\{ . (after-stay after)))) 830 '((?\{ . (after-stay after))))
826 (insert "int main () ") 831 (insert "int main () ")
@@ -834,6 +839,7 @@ baz\"\""
834 (electric-layout-local-mode 1) 839 (electric-layout-local-mode 1)
835 (electric-pair-local-mode 1) 840 (electric-pair-local-mode 1)
836 (electric-indent-local-mode 1) 841 (electric-indent-local-mode 1)
842 (setq-local c--disable-fix-of-bug-33794 t)
837 (setq-local electric-layout-rules 843 (setq-local electric-layout-rules
838 '((?\{ . (before after-stay after)))) 844 '((?\{ . (before after-stay after))))
839 (insert "int main () ") 845 (insert "int main () ")