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 table993acb5
; Minor fix for last change in characters.el30c4bb5
More char-width fixes4eb4463
Fix char-width-table values for some Emoji528997d
Keep point when switching from and to *terminal* buffer2130005
* INSTALL: Use correct Emacs release number 25.10835b1
Avoid crashes due to objects read with the #n=object form4de671d
Improve doc string of 'completion-at-point-functions'ceb46f0
Fix crash in evaluating functionsd8374c4
* src/filelock.c (current_lock_owner): Update comment.
This commit is contained in:
commit
6129cd03e2
9 changed files with 54 additions and 45 deletions
2
INSTALL
2
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
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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))
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
16
lisp/term.el
16
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.
|
||||
|
|
|
@ -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;
|
||||
|
|
13
src/lread.c
13
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);
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue