diff options
| author | Glenn Morris | 2019-02-15 13:25:30 -0800 |
|---|---|---|
| committer | Glenn Morris | 2019-02-15 13:25:30 -0800 |
| commit | a29c70d29b349712928ef8f12cfb87834df359a4 (patch) | |
| tree | 9df0fac95982d162f647d117ea28c0f90b787c53 | |
| parent | 877eba7249d0d352ff489f1fceb8362c08814494 (diff) | |
| parent | 3f4b8e9a299f88a8ea11c0ea6a281a34852e541a (diff) | |
| download | emacs-a29c70d29b349712928ef8f12cfb87834df359a4.tar.gz emacs-a29c70d29b349712928ef8f12cfb87834df359a4.zip | |
Merge from origin/emacs-26
3f4b8e9 * src/data.c (Fmake_local_variable): Fix bug#34318
b384996 Minor fixes in ELisp manual wrt syntax-table properties
71fc6d2 * admin/notes/emba: New file.
3aaa2d2 Fix Hunspell invocation for discovering its dictionaries
# Conflicts:
# test/src/data-tests.el
| -rw-r--r-- | admin/notes/emba | 64 | ||||
| -rw-r--r-- | doc/lispref/syntax.texi | 11 | ||||
| -rw-r--r-- | lisp/textmodes/ispell.el | 9 | ||||
| -rw-r--r-- | src/data.c | 10 | ||||
| -rw-r--r-- | test/src/data-tests.el | 18 |
5 files changed, 105 insertions, 7 deletions
diff --git a/admin/notes/emba b/admin/notes/emba new file mode 100644 index 00000000000..cb0dbc48095 --- /dev/null +++ b/admin/notes/emba | |||
| @@ -0,0 +1,64 @@ | |||
| 1 | -*- mode: outline; coding: utf-8 -*- | ||
| 2 | |||
| 3 | Copyright (C) 2019 Free Software Foundation, Inc. | ||
| 4 | See the end of the file for license conditions. | ||
| 5 | |||
| 6 | NOTES FOR EMACS CONTINUOUS BUILD ON EMBA | ||
| 7 | |||
| 8 | A continuous build for Emacs can be found at | ||
| 9 | <https://emba.gnu.org/emacs/emacs>, a Gitlab instance. It watches the | ||
| 10 | Emacs git repository and starts a pipeline (jobset) if there are new | ||
| 11 | changes. This happens for all Emacs branches. | ||
| 12 | |||
| 13 | * Mail notifications | ||
| 14 | |||
| 15 | In addition to the web interface, emba can send notifications by email | ||
| 16 | when a job fails. It sends notifications about test status to | ||
| 17 | <emacs-buildstatus@gnu.org>. | ||
| 18 | |||
| 19 | If you want to receive these notifications, please subscribe at | ||
| 20 | <https://lists.gnu.org/mailman/listinfo/emacs-buildstatus>. | ||
| 21 | |||
| 22 | Alternatively, these notifications can be read via gmane at | ||
| 23 | <nntp+news.gmane.org:gmane.emacs.buildstatus>. | ||
| 24 | |||
| 25 | The messages contain a URL to the log file of the failed job, like | ||
| 26 | <https://emba.gnu.org/emacs/emacs/-/jobs/739/raw>. | ||
| 27 | |||
| 28 | * Emacs jobset | ||
| 29 | |||
| 30 | The Emacs jobset is defined in the Emacs source tree, file | ||
| 31 | '.gitlab-ci.yml'. It could be adapted for every Emacs branch, see | ||
| 32 | <https://emba.gnu.org/help/ci/yaml/README.md>. | ||
| 33 | |||
| 34 | Every job runs in a Debian docker container. It uses the local clone | ||
| 35 | of the Emacs git repository to perform a bootstrap and test of Emacs. | ||
| 36 | This could happen for several jobs with changed configuration, compile | ||
| 37 | and test parameters. | ||
| 38 | |||
| 39 | * Emba configuration | ||
| 40 | |||
| 41 | The emba configuration files are hosted on | ||
| 42 | <https://gitlab.com/emacs-ci/emba-ansible>. | ||
| 43 | |||
| 44 | * Identifying emba | ||
| 45 | |||
| 46 | Lisp packages, Makefiles, scripts, and other software could determine | ||
| 47 | whether they run on emba by checking for the environment variable | ||
| 48 | EMACS_EMBA_CI. | ||
| 49 | |||
| 50 | |||
| 51 | This file is part of GNU Emacs. | ||
| 52 | |||
| 53 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 54 | it under the terms of the GNU General Public License as published by | ||
| 55 | the Free Software Foundation, either version 3 of the License, or | ||
| 56 | (at your option) any later version. | ||
| 57 | |||
| 58 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 59 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 60 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 61 | GNU General Public License for more details. | ||
| 62 | |||
| 63 | You should have received a copy of the GNU General Public License | ||
| 64 | along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. | ||
diff --git a/doc/lispref/syntax.texi b/doc/lispref/syntax.texi index a960eeac7e8..25b9b35250f 100644 --- a/doc/lispref/syntax.texi +++ b/doc/lispref/syntax.texi | |||
| @@ -556,8 +556,8 @@ the current syntax table in the usual way. | |||
| 556 | 556 | ||
| 557 | @defvar parse-sexp-lookup-properties | 557 | @defvar parse-sexp-lookup-properties |
| 558 | If this is non-@code{nil}, the syntax scanning functions, like | 558 | If this is non-@code{nil}, the syntax scanning functions, like |
| 559 | @code{forward-sexp}, pay attention to syntax text properties. | 559 | @code{forward-sexp}, pay attention to @code{syntax-table} text |
| 560 | Otherwise they use only the current syntax table. | 560 | properties. Otherwise they use only the current syntax table. |
| 561 | @end defvar | 561 | @end defvar |
| 562 | 562 | ||
| 563 | @defvar syntax-propertize-function | 563 | @defvar syntax-propertize-function |
| @@ -927,9 +927,9 @@ nicely. | |||
| 927 | 927 | ||
| 928 | @defvar multibyte-syntax-as-symbol | 928 | @defvar multibyte-syntax-as-symbol |
| 929 | If this variable is non-@code{nil}, @code{scan-sexps} treats all | 929 | If this variable is non-@code{nil}, @code{scan-sexps} treats all |
| 930 | non-@acronym{ASCII} characters as symbol constituents regardless | 930 | non-@acronym{ASCII} characters as symbol constituents regardless of |
| 931 | of what the syntax table says about them. (However, text properties | 931 | what the syntax table says about them. (However, @code{syntax-table |
| 932 | can still override the syntax.) | 932 | }text properties can still override the syntax.) |
| 933 | @end defvar | 933 | @end defvar |
| 934 | 934 | ||
| 935 | @defopt parse-sexp-ignore-comments | 935 | @defopt parse-sexp-ignore-comments |
| @@ -939,7 +939,6 @@ whitespace by the functions in this section and by @code{forward-sexp}, | |||
| 939 | @code{scan-lists} and @code{scan-sexps}. | 939 | @code{scan-lists} and @code{scan-sexps}. |
| 940 | @end defopt | 940 | @end defopt |
| 941 | 941 | ||
| 942 | @vindex parse-sexp-lookup-properties | ||
| 943 | The behavior of @code{parse-partial-sexp} is also affected by | 942 | The behavior of @code{parse-partial-sexp} is also affected by |
| 944 | @code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}). | 943 | @code{parse-sexp-lookup-properties} (@pxref{Syntax Properties}). |
| 945 | 944 | ||
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index f3436c6c6c4..cc8ec2652f7 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el | |||
| @@ -1107,12 +1107,19 @@ dictionary from that list was found." | |||
| 1107 | null-device | 1107 | null-device |
| 1108 | t | 1108 | t |
| 1109 | nil | 1109 | nil |
| 1110 | "-D" | ||
| 1111 | ;; Use -a to prevent Hunspell from | ||
| 1112 | ;; trying to initialize its | ||
| 1113 | ;; curses/termcap UI, which causes it | ||
| 1114 | ;; to crash or fail to start in some | ||
| 1115 | ;; MS-Windows ports. | ||
| 1116 | "-a" | ||
| 1110 | ;; Hunspell 1.7.0 (and later?) won't | 1117 | ;; Hunspell 1.7.0 (and later?) won't |
| 1111 | ;; show LOADED DICTIONARY unless | 1118 | ;; show LOADED DICTIONARY unless |
| 1112 | ;; there's at least one file argument | 1119 | ;; there's at least one file argument |
| 1113 | ;; on the command line. So we feed | 1120 | ;; on the command line. So we feed |
| 1114 | ;; it with the null device. | 1121 | ;; it with the null device. |
| 1115 | "-D" null-device) | 1122 | null-device) |
| 1116 | (buffer-string)) | 1123 | (buffer-string)) |
| 1117 | "[\n\r]+" | 1124 | "[\n\r]+" |
| 1118 | t)) | 1125 | t)) |
diff --git a/src/data.c b/src/data.c index 92a1062280e..65f2b0f2f1b 100644 --- a/src/data.c +++ b/src/data.c | |||
| @@ -1958,6 +1958,16 @@ Instead, use `add-hook' and specify t for the LOCAL argument. */) | |||
| 1958 | (current_buffer, | 1958 | (current_buffer, |
| 1959 | Fcons (Fcons (variable, XCDR (blv->defcell)), | 1959 | Fcons (Fcons (variable, XCDR (blv->defcell)), |
| 1960 | BVAR (current_buffer, local_var_alist))); | 1960 | BVAR (current_buffer, local_var_alist))); |
| 1961 | |||
| 1962 | /* If the symbol forwards into a C variable, then load the binding | ||
| 1963 | for this buffer now, to preserve the invariant that forwarded | ||
| 1964 | variables must always hold the value corresponding to the | ||
| 1965 | current buffer (they are swapped eagerly). | ||
| 1966 | Otherwise, if C code modifies the variable before we load the | ||
| 1967 | binding in, then that new value would clobber the default binding | ||
| 1968 | the next time we unload it. See bug#34318. */ | ||
| 1969 | if (blv->fwd) | ||
| 1970 | swap_in_symval_forwarding (sym, blv); | ||
| 1961 | } | 1971 | } |
| 1962 | 1972 | ||
| 1963 | return variable; | 1973 | return variable; |
diff --git a/test/src/data-tests.el b/test/src/data-tests.el index bc77a7be94e..a9d48e29a8a 100644 --- a/test/src/data-tests.el +++ b/test/src/data-tests.el | |||
| @@ -669,4 +669,22 @@ comparing the subr with a much slower lisp implementation." | |||
| 669 | (should (= (lsh -1 -1) most-positive-fixnum)) | 669 | (should (= (lsh -1 -1) most-positive-fixnum)) |
| 670 | (should-error (lsh (1- most-negative-fixnum) -1))) | 670 | (should-error (lsh (1- most-negative-fixnum) -1))) |
| 671 | 671 | ||
| 672 | (ert-deftest data-tests-make-local-forwarded-var () ;bug#34318 | ||
| 673 | ;; Boy, this bug is tricky to trigger. You need to: | ||
| 674 | ;; - call make-local-variable on a forwarded var (i.e. one that | ||
| 675 | ;; has a corresponding C var linked via DEFVAR_(LISP|INT|BOOL)) | ||
| 676 | ;; - cause the C code to modify this variable from the C side of the | ||
| 677 | ;; forwarding, but this needs to happen before the var is accessed | ||
| 678 | ;; from the Lisp side and before we switch to another buffer. | ||
| 679 | ;; The trigger in bug#34318 doesn't exist any more because the C code has | ||
| 680 | ;; changes. Instead I found the trigger below. | ||
| 681 | (with-temp-buffer | ||
| 682 | (setq last-coding-system-used 'bug34318) | ||
| 683 | (make-local-variable 'last-coding-system-used) | ||
| 684 | ;; This should set last-coding-system-used to `no-conversion'. | ||
| 685 | (decode-coding-string "hello" nil) | ||
| 686 | (should (equal (list last-coding-system-used | ||
| 687 | (default-value 'last-coding-system-used)) | ||
| 688 | '(no-conversion bug34318))))) | ||
| 689 | |||
| 672 | ;;; data-tests.el ends here | 690 | ;;; data-tests.el ends here |