summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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
sections of this guide will help you do that, so please refer to those
sections if you need to.
- 1. Unpacking the Emacs 24 release requires about 200 MB of free
+ 1. Unpacking the Emacs 25 release requires about 200 MB of free
disk space. Building Emacs uses about another 200 MB of space.
The final installed Emacs uses about 150 MB of disk space.
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
updates in charscript.el, but it is a good idea to look at the results
and see if any changes in admin/unidata/blocks.awk are required.
+The setting of char-width-table around line 1200 of characters.el
+should be checked against the latest version of the Unicode file
+EastAsianWidth.txt, and any discrepancies fixed.
+
Any new scripts added by UnicodeData.txt will also need updates to
script-representative-chars defined in fontset.el, and also the list
of 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
(directory :format "%v")))
nil
:standard
- (mapcar 'directory-file-name
+ (mapcar (lambda (f)
+ (if f (directory-file-name f)
+ "."))
(append (parse-colon-path (getenv "PATH"))
(list exec-directory))))
(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.")
(#x2B50 . #x2B50)
(#x2B55 . #x2B55)
(#x2E80 . #x303E)
- (#x3040 . #xA4CF)
+ (#x3040 . #x4DBF)
+ (#x4E00 . #xA4CF)
+ (#xA960 . #xA97F)
(#xAC00 . #xD7A3)
(#xF900 . #xFAFF)
+ (#xFE10 . #xFE19)
(#xFE30 . #xFE6F)
(#xFF01 . #xFF60)
(#xFFE0 . #xFFE6)
(#x16FE0 . #x16FE0)
(#x17000 . #x187EC)
(#x18800 . #x18AF2)
+ (#x1B000 . #x1B001)
(#x1F18E . #x1F18E)
(#x1F191 . #x1F19A)
- (#x1F200 . #x1F202)
- (#x1F210 . #x1F23B)
- (#x1F300 . #x1F320)
- (#x1F32D . #x1F335)
- (#x1F337 . #x1F37C)
- (#x1F37E . #x1F393)
- (#x1F3A0 . #x1F3CA)
- (#x1F3CF . #x1F3D3)
- (#x1F3E0 . #x1F3F0)
- (#x1F3F4 . #x1F3F4)
- (#x1F3F8 . #x1F3FA)
- (#x1F3FB . #x1F3FF)
- (#x1F440 . #x1F440)
- (#x1F442 . #x1F4FC)
- (#x1F4FF . #x1F53D)
- (#x1F54B . #x1F54E)
- (#x1F550 . #x1F567)
- (#x1F57A . #x1F57A)
- (#x1F595 . #x1F596)
- (#x1F5A4 . #x1F5A4)
- (#x1F5FB . #x1F5FF)
+ (#x1F200 . #x1F2FF)
+ (#x1F300 . #x1F5FF)
(#x1F600 . #x1F64F)
(#x1F680 . #x1F6C5)
(#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'.
minor-mode-map-alist))
(defvar completion-at-point-functions '(tags-completion-at-point-function)
- "Special hook to find the completion table for the thing at point.
-Each function on this hook is called in turn without any argument and should
-return either nil to mean that it is not applicable at point,
-or a function of no argument to perform completion (discouraged),
-or a list of the form (START END COLLECTION . PROPS) where
+ "Special hook to find the completion table for the entity at point.
+Each function on this hook is called in turn without any argument and
+should return either nil, meaning it is not applicable at point,
+or a function of no arguments to perform completion (discouraged),
+or a list of the form (START END COLLECTION . PROPS), where:
START and END delimit the entity to complete and should include point,
- COLLECTION is the completion table to use to complete it, and
+ COLLECTION is the completion table to use to complete the entity, and
PROPS is a property list for additional information.
Currently supported properties are all the properties that can appear in
`completion-extra-properties' plus:
`:predicate' a predicate that completion candidates need to satisfy.
- `:exclusive' If `no', means that if the completion table fails to
+ `:exclusive' value of `no' means that if the completion table fails to
match the text at point, then instead of reporting a completion
failure, the completion should try the next completion function.
-As is the case with most hooks, the functions are responsible to preserve
-things like point and current buffer.")
+As is the case with most hooks, the functions are responsible for
+preserving things like point and current buffer.")
(defvar completion--capf-misbehave-funs nil
"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."
(defun sh--cmd-completion-table (string pred action)
(let ((cmds
(append (when (fboundp 'imenu--make-index-alist)
- (mapcar #'car (imenu--make-index-alist)))
+ (mapcar #'car
+ (condition-case nil
+ (imenu--make-index-alist)
+ (imenu-unavailable nil))))
(mapcar (lambda (v) (concat v "="))
(sh--vars-before-point))
(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'."
(term-update-mode-line))
(defun term-reset-size (height width)
- (setq term-height height)
- (setq term-width width)
- (setq term-start-line-column nil)
- (setq term-current-row nil)
- (setq term-current-column nil)
- (term-set-scroll-region 0 height))
+ (when (or (/= height term-height)
+ (/= width term-width))
+ (let ((point (point)))
+ (setq term-height height)
+ (setq term-width width)
+ (setq term-start-line-column nil)
+ (setq term-current-row nil)
+ (setq term-current-column nil)
+ (term-set-scroll-region 0 height)
+ (goto-char point))))
;; Recursive routine used to check if any string in term-kill-echo-list
;; 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)
break;
case '\357':
- /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":".
- This works around a bug in Samba, which can mistakenly
- transliterate ':' to U+F022 in symlink contents (Bug#24656).
- See <https://bugzilla.redhat.com/show_bug.cgi?id=1271407#c8>. */
+ /* Treat "\357\200\242" (U+F022 in UTF-8) as if it were ":" (Bug#24656).
+ This works around a bug in the Linux CIFS kernel client, which can
+ mistakenly transliterate ':' to U+F022 in symlink contents.
+ See <https://bugzilla.redhat.com/show_bug.cgi?id=1384153>. */
if (! (boot[0] == '\200' && boot[1] == '\242'))
return -1;
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)
if (c == '=')
{
/* Make a placeholder for #n# to use temporarily. */
- AUTO_CONS (placeholder, Qnil, Qnil);
+ /* Note: We used to use AUTO_CONS to allocate
+ placeholder, but that is a bad idea, since it
+ will place a stack-allocated cons cell into
+ the list in read_objects, which is a
+ staticpro'd global variable, and thus each of
+ its elements is marked during each GC. A
+ stack-allocated object will become garbled
+ when its stack slot goes out of scope, and
+ some other function reuses it for entirely
+ different purposes, which will cause crashes
+ in GC. */
+ Lisp_Object placeholder = Fcons (Qnil, Qnil);
Lisp_Object cell = Fcons (make_number (n), placeholder);
read_objects = Fcons (cell, read_objects);