diff options
| author | João Távora | 2019-01-17 18:47:00 +0000 |
|---|---|---|
| committer | João Távora | 2019-01-17 18:49:10 +0000 |
| commit | be505726b68d407a44fdcd9c7ac1ef722398532d (patch) | |
| tree | 5e9255f212aceadaa64a9bb3a431a26776cb9353 /test | |
| parent | 4bdc03746915c36313b33b6998b855eef514cdd1 (diff) | |
| download | emacs-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.el | 6 |
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 () ") |