aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Monnier2019-02-15 18:34:38 -0500
committerStefan Monnier2019-02-15 18:34:38 -0500
commitfd0ab0b9bd5991c1a2c598a7c78ec3f491a783bd (patch)
tree322ae17681cb608a95e867dbf905b832713cb774
parent3c80bc333750b62ed98d3064cf98b74b43121a5e (diff)
parenta298a1f6b2fc745163198825941dbe593dff331c (diff)
downloademacs-fd0ab0b9bd5991c1a2c598a7c78ec3f491a783bd.tar.gz
emacs-fd0ab0b9bd5991c1a2c598a7c78ec3f491a783bd.zip
Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into trunk
-rw-r--r--admin/notes/emba64
-rw-r--r--doc/lispref/syntax.texi11
-rw-r--r--lisp/erc/erc-dcc.el11
-rw-r--r--lisp/gnus/mm-decode.el2
-rw-r--r--lisp/gnus/mm-view.el10
-rw-r--r--lisp/gnus/mml.el6
-rw-r--r--lisp/progmodes/compile.el22
-rw-r--r--lisp/textmodes/ispell.el9
-rw-r--r--src/data.c10
-rw-r--r--test/lisp/textmodes/conf-mode-tests.el2
-rw-r--r--test/src/data-tests.el18
11 files changed, 135 insertions, 30 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
3Copyright (C) 2019 Free Software Foundation, Inc.
4See the end of the file for license conditions.
5
6NOTES FOR EMACS CONTINUOUS BUILD ON EMBA
7
8A continuous build for Emacs can be found at
9<https://emba.gnu.org/emacs/emacs>, a Gitlab instance. It watches the
10Emacs git repository and starts a pipeline (jobset) if there are new
11changes. This happens for all Emacs branches.
12
13* Mail notifications
14
15In addition to the web interface, emba can send notifications by email
16when a job fails. It sends notifications about test status to
17<emacs-buildstatus@gnu.org>.
18
19If you want to receive these notifications, please subscribe at
20<https://lists.gnu.org/mailman/listinfo/emacs-buildstatus>.
21
22Alternatively, these notifications can be read via gmane at
23<nntp+news.gmane.org:gmane.emacs.buildstatus>.
24
25The 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
30The 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
34Every job runs in a Debian docker container. It uses the local clone
35of the Emacs git repository to perform a bootstrap and test of Emacs.
36This could happen for several jobs with changed configuration, compile
37and test parameters.
38
39* Emba configuration
40
41The emba configuration files are hosted on
42<https://gitlab.com/emacs-ci/emba-ansible>.
43
44* Identifying emba
45
46Lisp packages, Makefiles, scripts, and other software could determine
47whether they run on emba by checking for the environment variable
48EMACS_EMBA_CI.
49
50
51This file is part of GNU Emacs.
52
53GNU Emacs is free software: you can redistribute it and/or modify
54it under the terms of the GNU General Public License as published by
55the Free Software Foundation, either version 3 of the License, or
56(at your option) any later version.
57
58GNU Emacs is distributed in the hope that it will be useful,
59but WITHOUT ANY WARRANTY; without even the implied warranty of
60MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
61GNU General Public License for more details.
62
63You should have received a copy of the GNU General Public License
64along 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
558If this is non-@code{nil}, the syntax scanning functions, like 558If 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
560Otherwise they use only the current syntax table. 560properties. 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
929If this variable is non-@code{nil}, @code{scan-sexps} treats all 929If this variable is non-@code{nil}, @code{scan-sexps} treats all
930non-@acronym{ASCII} characters as symbol constituents regardless 930non-@acronym{ASCII} characters as symbol constituents regardless of
931of what the syntax table says about them. (However, text properties 931what the syntax table says about them. (However, @code{syntax-table
932can 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
943The behavior of @code{parse-partial-sexp} is also affected by 942The 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/erc/erc-dcc.el b/lisp/erc/erc-dcc.el
index 8a40b1454b4..2849e25bf77 100644
--- a/lisp/erc/erc-dcc.el
+++ b/lisp/erc/erc-dcc.el
@@ -979,17 +979,20 @@ rather than every 1024 byte block, but nobody seems to care."
979 (let ((inhibit-read-only t) 979 (let ((inhibit-read-only t)
980 received-bytes) 980 received-bytes)
981 (goto-char (point-max)) 981 (goto-char (point-max))
982 (insert (string-make-unibyte str)) 982 (if str
983 (insert (string-make-unibyte str)))
983 984
984 (when (> (point-max) erc-dcc-receive-cache) 985 (when (> (point-max) erc-dcc-receive-cache)
985 (erc-dcc-append-contents (current-buffer) erc-dcc-file-name)) 986 (erc-dcc-append-contents (current-buffer) erc-dcc-file-name))
986 (setq received-bytes (+ (buffer-size) erc-dcc-byte-count)) 987 (setq received-bytes (buffer-size))
988 (if erc-dcc-byte-count
989 (setq received-bytes (+ received-bytes erc-dcc-byte-count)))
987 990
988 (and erc-dcc-verbose 991 (and erc-dcc-verbose
989 (erc-display-message 992 (erc-display-message
990 nil 'notice erc-server-process 993 nil 'notice erc-server-process
991 'dcc-get-bytes-received 994 'dcc-get-bytes-received
992 ?f (file-name-nondirectory buffer-file-name) 995 ?f (file-name-nondirectory (buffer-name))
993 ?b (number-to-string received-bytes))) 996 ?b (number-to-string received-bytes)))
994 (cond 997 (cond
995 ((and (> (plist-get erc-dcc-entry-data :size) 0) 998 ((and (> (plist-get erc-dcc-entry-data :size) 0)
@@ -997,7 +1000,7 @@ rather than every 1024 byte block, but nobody seems to care."
997 (erc-display-message 1000 (erc-display-message
998 nil '(notice error) 'active 1001 nil '(notice error) 'active
999 'dcc-get-file-too-long 1002 'dcc-get-file-too-long
1000 ?f (file-name-nondirectory buffer-file-name)) 1003 ?f (file-name-nondirectory (buffer-name)))
1001 (delete-process proc)) 1004 (delete-process proc))
1002 (t 1005 (t
1003 (process-send-string 1006 (process-send-string
diff --git a/lisp/gnus/mm-decode.el b/lisp/gnus/mm-decode.el
index 80a2e50c498..2a769fccf54 100644
--- a/lisp/gnus/mm-decode.el
+++ b/lisp/gnus/mm-decode.el
@@ -763,7 +763,7 @@ MIME-Version header before proceeding."
763 (mb enable-multibyte-characters) 763 (mb enable-multibyte-characters)
764 beg) 764 beg)
765 (goto-char (point-min)) 765 (goto-char (point-min))
766 (search-forward-regexp "^\n" nil t) 766 (search-forward-regexp "^\n" nil 'move) ;; There might be no body.
767 (setq beg (point)) 767 (setq beg (point))
768 (with-current-buffer 768 (with-current-buffer
769 (generate-new-buffer " *mm*") 769 (generate-new-buffer " *mm*")
diff --git a/lisp/gnus/mm-view.el b/lisp/gnus/mm-view.el
index cf41c4595cb..b0d88d89843 100644
--- a/lisp/gnus/mm-view.el
+++ b/lisp/gnus/mm-view.el
@@ -370,10 +370,12 @@
370 (enriched-decode (point-min) (point-max)))) 370 (enriched-decode (point-min) (point-max))))
371 (mm-handle-set-undisplayer 371 (mm-handle-set-undisplayer
372 handle 372 handle
373 `(lambda () 373 (if (= (point-min) (point-max))
374 (let ((inhibit-read-only t)) 374 #'ignore
375 (delete-region ,(copy-marker (point-min) t) 375 `(lambda ()
376 ,(point-max-marker)))))))) 376 (let ((inhibit-read-only t))
377 (delete-region ,(copy-marker (point-min) t)
378 ,(point-max-marker)))))))))
377 379
378(defun mm-insert-inline (handle text) 380(defun mm-insert-inline (handle text)
379 "Insert TEXT inline from HANDLE." 381 "Insert TEXT inline from HANDLE."
diff --git a/lisp/gnus/mml.el b/lisp/gnus/mml.el
index cf79ca1ded6..be626858358 100644
--- a/lisp/gnus/mml.el
+++ b/lisp/gnus/mml.el
@@ -982,8 +982,10 @@ If HANDLES is non-nil, use it instead reparsing the buffer."
982 (unless handles 982 (unless handles
983 (setq handles (mm-dissect-buffer t))) 983 (setq handles (mm-dissect-buffer t)))
984 (goto-char (point-min)) 984 (goto-char (point-min))
985 (search-forward "\n\n" nil t) 985 (if (search-forward "\n\n" nil 'move)
986 (delete-region (point) (point-max)) 986 (delete-region (point) (point-max))
987 ;; No content in the part that is the sole part of this message.
988 (insert (if (bolp) "\n" "\n\n")))
987 (if (stringp (car handles)) 989 (if (stringp (car handles))
988 (mml-insert-mime handles) 990 (mml-insert-mime handles)
989 (mml-insert-mime handles t)) 991 (mml-insert-mime handles t))
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el
index 9fbe3614fd1..c3ff57633a3 100644
--- a/lisp/progmodes/compile.el
+++ b/lisp/progmodes/compile.el
@@ -1401,17 +1401,17 @@ to `compilation-error-regexp-alist' if RULES is nil."
1401 file line end-line col end-col (or type 2) fmt)) 1401 file line end-line col end-col (or type 2) fmt))
1402 1402
1403 (when (integerp file) 1403 (when (integerp file)
1404 (setq type (if (consp type) 1404 (let ((this-type (if (consp type)
1405 (compilation-type type) 1405 (compilation-type type)
1406 (or type 2))) 1406 (or type 2))))
1407 (compilation--note-type type) 1407 (compilation--note-type type)
1408 1408
1409 (compilation--put-prop 1409 (compilation--put-prop
1410 file 'font-lock-face 1410 file 'font-lock-face
1411 (symbol-value (aref [compilation-info-face 1411 (symbol-value (aref [compilation-info-face
1412 compilation-warning-face 1412 compilation-warning-face
1413 compilation-error-face] 1413 compilation-error-face]
1414 type)))) 1414 this-type)))))
1415 1415
1416 (compilation--put-prop 1416 (compilation--put-prop
1417 line 'font-lock-face compilation-line-face) 1417 line 'font-lock-face compilation-line-face)
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/lisp/textmodes/conf-mode-tests.el b/test/lisp/textmodes/conf-mode-tests.el
index 5d79ceec967..3eefc8f84f9 100644
--- a/test/lisp/textmodes/conf-mode-tests.el
+++ b/test/lisp/textmodes/conf-mode-tests.el
@@ -33,7 +33,7 @@
33 (conf-colon-mode) 33 (conf-colon-mode)
34 (conf-align-assignments) 34 (conf-align-assignments)
35 (should (equal (buffer-string) 35 (should (equal (buffer-string)
36 "foo: bar\nbar: baz")))) 36 "foo: bar\nbar: baz"))))
37 37
38(ert-deftest conf-test-font-lock () 38(ert-deftest conf-test-font-lock ()
39 (with-temp-buffer 39 (with-temp-buffer
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