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.
This commit is contained in:
Paul Eggert 2016-10-23 02:43:17 -07:00
commit 6129cd03e2
9 changed files with 54 additions and 45 deletions

View file

@ -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

View file

@ -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:

View file

@ -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))

View file

@ -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)

View file

@ -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.

View file

@ -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

View file

@ -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.

View file

@ -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;

View file

@ -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);