aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Eggert2016-10-23 02:43:17 -0700
committerPaul Eggert2016-10-23 02:43:17 -0700
commit6129cd03e20a0aaee46ceb742a9ed1ae2904eab3 (patch)
treef432bbffba80979cec74cfc125a9f73abfd06a91
parent16d126d7559c2f58c8af6cf86c9f54b6e21cceb4 (diff)
parentb73f4668ab685dfb690eced15b20ed47f90efccb (diff)
downloademacs-6129cd03e20a0aaee46ceb742a9ed1ae2904eab3.tar.gz
emacs-6129cd03e20a0aaee46ceb742a9ed1ae2904eab3.zip
Merge from origin/emacs-25
b73f466 * lisp/cus-start.el (exec-path): Handle nil elements. (Bug#2... 55ebb70 Catch the imenu-unavailable error in sh-mode completion table 993acb5 ; Minor fix for last change in characters.el 30c4bb5 More char-width fixes 4eb4463 Fix char-width-table values for some Emoji 528997d Keep point when switching from and to *terminal* buffer 2130005 * INSTALL: Use correct Emacs release number 25. 10835b1 Avoid crashes due to objects read with the #n=object form 4de671d Improve doc string of 'completion-at-point-functions' ceb46f0 Fix crash in evaluating functions d8374c4 * src/filelock.c (current_lock_owner): Update comment.
-rw-r--r--INSTALL2
-rw-r--r--admin/notes/unicode4
-rw-r--r--lisp/cus-start.el4
-rw-r--r--lisp/international/characters.el29
-rw-r--r--lisp/minibuffer.el18
-rw-r--r--lisp/progmodes/sh-script.el5
-rw-r--r--lisp/term.el16
-rw-r--r--src/filelock.c8
-rw-r--r--src/lread.c13
9 files changed, 54 insertions, 45 deletions
diff --git a/INSTALL b/INSTALL
index 27af6d9c21f..bc859b2c13b 100644
--- a/INSTALL
+++ b/INSTALL
@@ -34,7 +34,7 @@ some of the steps manually. The more detailed description in the other
34sections of this guide will help you do that, so please refer to those 34sections of this guide will help you do that, so please refer to those
35sections if you need to. 35sections if you need to.
36 36
37 1. Unpacking the Emacs 24 release requires about 200 MB of free 37 1. Unpacking the Emacs 25 release requires about 200 MB of free
38 disk space. Building Emacs uses about another 200 MB of space. 38 disk space. Building Emacs uses about another 200 MB of space.
39 The final installed Emacs uses about 150 MB of disk space. 39 The final installed Emacs uses about 150 MB of disk space.
40 This includes the space-saving that comes from automatically 40 This includes the space-saving that comes from automatically
diff --git a/admin/notes/unicode b/admin/notes/unicode
index c8a956d620a..7f0ce10f048 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -37,6 +37,10 @@ and char-width-table. The additional scripts should cause automatic
37updates in charscript.el, but it is a good idea to look at the results 37updates in charscript.el, but it is a good idea to look at the results
38and see if any changes in admin/unidata/blocks.awk are required. 38and see if any changes in admin/unidata/blocks.awk are required.
39 39
40The setting of char-width-table around line 1200 of characters.el
41should be checked against the latest version of the Unicode file
42EastAsianWidth.txt, and any discrepancies fixed.
43
40Any new scripts added by UnicodeData.txt will also need updates to 44Any new scripts added by UnicodeData.txt will also need updates to
41script-representative-chars defined in fontset.el, and also the list 45script-representative-chars defined in fontset.el, and also the list
42of OTF script tags in otf-script-alist, whose source is on this page: 46of OTF script tags in otf-script-alist, whose source is on this page:
diff --git a/lisp/cus-start.el b/lisp/cus-start.el
index 127a574c7e3..b7cc6261a1b 100644
--- a/lisp/cus-start.el
+++ b/lisp/cus-start.el
@@ -173,7 +173,9 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
173 (directory :format "%v"))) 173 (directory :format "%v")))
174 nil 174 nil
175 :standard 175 :standard
176 (mapcar 'directory-file-name 176 (mapcar (lambda (f)
177 (if f (directory-file-name f)
178 "."))
177 (append (parse-colon-path (getenv "PATH")) 179 (append (parse-colon-path (getenv "PATH"))
178 (list exec-directory)))) 180 (list exec-directory))))
179 (exec-suffixes execute (repeat string)) 181 (exec-suffixes execute (repeat string))
diff --git a/lisp/international/characters.el b/lisp/international/characters.el
index 1757d2ba12c..2a7bc32f821 100644
--- a/lisp/international/characters.el
+++ b/lisp/international/characters.el
@@ -1239,38 +1239,23 @@ with L, LRE, or LRO Unicode bidi character type.")
1239 (#x2B50 . #x2B50) 1239 (#x2B50 . #x2B50)
1240 (#x2B55 . #x2B55) 1240 (#x2B55 . #x2B55)
1241 (#x2E80 . #x303E) 1241 (#x2E80 . #x303E)
1242 (#x3040 . #xA4CF) 1242 (#x3040 . #x4DBF)
1243 (#x4E00 . #xA4CF)
1244 (#xA960 . #xA97F)
1243 (#xAC00 . #xD7A3) 1245 (#xAC00 . #xD7A3)
1244 (#xF900 . #xFAFF) 1246 (#xF900 . #xFAFF)
1247 (#xFE10 . #xFE19)
1245 (#xFE30 . #xFE6F) 1248 (#xFE30 . #xFE6F)
1246 (#xFF01 . #xFF60) 1249 (#xFF01 . #xFF60)
1247 (#xFFE0 . #xFFE6) 1250 (#xFFE0 . #xFFE6)
1248 (#x16FE0 . #x16FE0) 1251 (#x16FE0 . #x16FE0)
1249 (#x17000 . #x187EC) 1252 (#x17000 . #x187EC)
1250 (#x18800 . #x18AF2) 1253 (#x18800 . #x18AF2)
1254 (#x1B000 . #x1B001)
1251 (#x1F18E . #x1F18E) 1255 (#x1F18E . #x1F18E)
1252 (#x1F191 . #x1F19A) 1256 (#x1F191 . #x1F19A)
1253 (#x1F200 . #x1F202) 1257 (#x1F200 . #x1F2FF)
1254 (#x1F210 . #x1F23B) 1258 (#x1F300 . #x1F5FF)
1255 (#x1F300 . #x1F320)
1256 (#x1F32D . #x1F335)
1257 (#x1F337 . #x1F37C)
1258 (#x1F37E . #x1F393)
1259 (#x1F3A0 . #x1F3CA)
1260 (#x1F3CF . #x1F3D3)
1261 (#x1F3E0 . #x1F3F0)
1262 (#x1F3F4 . #x1F3F4)
1263 (#x1F3F8 . #x1F3FA)
1264 (#x1F3FB . #x1F3FF)
1265 (#x1F440 . #x1F440)
1266 (#x1F442 . #x1F4FC)
1267 (#x1F4FF . #x1F53D)
1268 (#x1F54B . #x1F54E)
1269 (#x1F550 . #x1F567)
1270 (#x1F57A . #x1F57A)
1271 (#x1F595 . #x1F596)
1272 (#x1F5A4 . #x1F5A4)
1273 (#x1F5FB . #x1F5FF)
1274 (#x1F600 . #x1F64F) 1259 (#x1F600 . #x1F64F)
1275 (#x1F680 . #x1F6C5) 1260 (#x1F680 . #x1F6C5)
1276 (#x1F6CC . #x1F6CC) 1261 (#x1F6CC . #x1F6CC)
diff --git a/lisp/minibuffer.el b/lisp/minibuffer.el
index 3d63ca8bd5f..175189c1b48 100644
--- a/lisp/minibuffer.el
+++ b/lisp/minibuffer.el
@@ -2052,22 +2052,22 @@ Also respects the obsolete wrapper hook `completion-in-region-functions'.
2052 minor-mode-map-alist)) 2052 minor-mode-map-alist))
2053 2053
2054(defvar completion-at-point-functions '(tags-completion-at-point-function) 2054(defvar completion-at-point-functions '(tags-completion-at-point-function)
2055 "Special hook to find the completion table for the thing at point. 2055 "Special hook to find the completion table for the entity at point.
2056Each function on this hook is called in turn without any argument and should 2056Each function on this hook is called in turn without any argument and
2057return either nil to mean that it is not applicable at point, 2057should return either nil, meaning it is not applicable at point,
2058or a function of no argument to perform completion (discouraged), 2058or a function of no arguments to perform completion (discouraged),
2059or a list of the form (START END COLLECTION . PROPS) where 2059or a list of the form (START END COLLECTION . PROPS), where:
2060 START and END delimit the entity to complete and should include point, 2060 START and END delimit the entity to complete and should include point,
2061 COLLECTION is the completion table to use to complete it, and 2061 COLLECTION is the completion table to use to complete the entity, and
2062 PROPS is a property list for additional information. 2062 PROPS is a property list for additional information.
2063Currently supported properties are all the properties that can appear in 2063Currently supported properties are all the properties that can appear in
2064`completion-extra-properties' plus: 2064`completion-extra-properties' plus:
2065 `:predicate' a predicate that completion candidates need to satisfy. 2065 `:predicate' a predicate that completion candidates need to satisfy.
2066 `:exclusive' If `no', means that if the completion table fails to 2066 `:exclusive' value of `no' means that if the completion table fails to
2067 match the text at point, then instead of reporting a completion 2067 match the text at point, then instead of reporting a completion
2068 failure, the completion should try the next completion function. 2068 failure, the completion should try the next completion function.
2069As is the case with most hooks, the functions are responsible to preserve 2069As is the case with most hooks, the functions are responsible for
2070things like point and current buffer.") 2070preserving things like point and current buffer.")
2071 2071
2072(defvar completion--capf-misbehave-funs nil 2072(defvar completion--capf-misbehave-funs nil
2073 "List of functions found on `completion-at-point-functions' that misbehave. 2073 "List of functions found on `completion-at-point-functions' that misbehave.
diff --git a/lisp/progmodes/sh-script.el b/lisp/progmodes/sh-script.el
index 7a9e6c7422d..5d362e42c30 100644
--- a/lisp/progmodes/sh-script.el
+++ b/lisp/progmodes/sh-script.el
@@ -1744,7 +1744,10 @@ This adds rules for comments and assignments."
1744(defun sh--cmd-completion-table (string pred action) 1744(defun sh--cmd-completion-table (string pred action)
1745 (let ((cmds 1745 (let ((cmds
1746 (append (when (fboundp 'imenu--make-index-alist) 1746 (append (when (fboundp 'imenu--make-index-alist)
1747 (mapcar #'car (imenu--make-index-alist))) 1747 (mapcar #'car
1748 (condition-case nil
1749 (imenu--make-index-alist)
1750 (imenu-unavailable nil))))
1748 (mapcar (lambda (v) (concat v "=")) 1751 (mapcar (lambda (v) (concat v "="))
1749 (sh--vars-before-point)) 1752 (sh--vars-before-point))
1750 (locate-file-completion-table 1753 (locate-file-completion-table
diff --git a/lisp/term.el b/lisp/term.el
index 1adeae24098..5177ab4b921 100644
--- a/lisp/term.el
+++ b/lisp/term.el
@@ -1109,12 +1109,16 @@ Entry to this mode runs the hooks on `term-mode-hook'."
1109 (term-update-mode-line)) 1109 (term-update-mode-line))
1110 1110
1111(defun term-reset-size (height width) 1111(defun term-reset-size (height width)
1112 (setq term-height height) 1112 (when (or (/= height term-height)
1113 (setq term-width width) 1113 (/= width term-width))
1114 (setq term-start-line-column nil) 1114 (let ((point (point)))
1115 (setq term-current-row nil) 1115 (setq term-height height)
1116 (setq term-current-column nil) 1116 (setq term-width width)
1117 (term-set-scroll-region 0 height)) 1117 (setq term-start-line-column nil)
1118 (setq term-current-row nil)
1119 (setq term-current-column nil)
1120 (term-set-scroll-region 0 height)
1121 (goto-char point))))
1118 1122
1119;; Recursive routine used to check if any string in term-kill-echo-list 1123;; Recursive routine used to check if any string in term-kill-echo-list
1120;; matches part of the buffer before point. 1124;; matches part of the buffer before point.
diff --git a/src/filelock.c b/src/filelock.c
index d4dfc1dd007..a4b742abb5d 100644
--- a/src/filelock.c
+++ b/src/filelock.c
@@ -565,10 +565,10 @@ current_lock_owner (lock_info_type *owner, char *lfname)
565 break; 565 break;
566 566
567 case '\357': 567 case '\357':
568 /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":". 568 /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":" (Bug#24656).
569 This works around a bug in Samba, which can mistakenly 569 This works around a bug in the Linux CIFS kernel client, which can
570 transliterate ':' to U+F022 in symlink contents (Bug#24656). 570 mistakenly transliterate ':' to U+F022 in symlink contents.
571 See <https://bugzilla.redhat.com/show_bug.cgi?id=1271407#c8>. */ 571 See <https://bugzilla.redhat.com/show_bug.cgi?id=1384153>. */
572 if (! (boot[0] == '\200' && boot[1] == '\242')) 572 if (! (boot[0] == '\200' && boot[1] == '\242'))
573 return -1; 573 return -1;
574 boot += 2; 574 boot += 2;
diff --git a/src/lread.c b/src/lread.c
index 10eec3b1be0..58d518ce40b 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2917,7 +2917,18 @@ read1 (Lisp_Object readcharfun, int *pch, bool first_in_list)
2917 if (c == '=') 2917 if (c == '=')
2918 { 2918 {
2919 /* Make a placeholder for #n# to use temporarily. */ 2919 /* Make a placeholder for #n# to use temporarily. */
2920 AUTO_CONS (placeholder, Qnil, Qnil); 2920 /* Note: We used to use AUTO_CONS to allocate
2921 placeholder, but that is a bad idea, since it
2922 will place a stack-allocated cons cell into
2923 the list in read_objects, which is a
2924 staticpro'd global variable, and thus each of
2925 its elements is marked during each GC. A
2926 stack-allocated object will become garbled
2927 when its stack slot goes out of scope, and
2928 some other function reuses it for entirely
2929 different purposes, which will cause crashes
2930 in GC. */
2931 Lisp_Object placeholder = Fcons (Qnil, Qnil);
2921 Lisp_Object cell = Fcons (make_number (n), placeholder); 2932 Lisp_Object cell = Fcons (make_number (n), placeholder);
2922 read_objects = Fcons (cell, read_objects); 2933 read_objects = Fcons (cell, read_objects);
2923 2934