]> git.eshelyaron.com Git - emacs.git/commitdiff
Merge from origin/emacs-26
authorGlenn Morris <rgm@gnu.org>
Fri, 20 Apr 2018 15:07:43 +0000 (08:07 -0700)
committerGlenn Morris <rgm@gnu.org>
Fri, 20 Apr 2018 15:07:43 +0000 (08:07 -0700)
5de608f (origin/emacs-26) Update the documentation of 'perform-replace'
06245b6 * etc/NEWS: Another fix for the last change (noted by Juri Li...
8f6293c Fix use of @key in Texinfo manuals
f4c9894 Improve documentation of actual arglist
ce0e253 ; * etc/NEWS: Improve last change as proposed by Phil Sainty
b89ff0e Don't assume term-current-row cache is valid (Bug#31193)
326a296 ; * etc/NEWS: Mention 'display-buffer-in-major-side-window' c...
3bdc9a1 Fix flyspell-auto-correct-previous-word broken by recent change
a539eb5 * test/src/lread-tests.el (lread-test-bug-31186): New test.
3fa472b Fix undefined behaviour while looking for lexical-binding fil...
4341aac Minor wording improvement in "Bookmarks"

Conflicts:
test/src/lread-tests.el

14 files changed:
1  2 
doc/emacs/search.texi
doc/lispintro/emacs-lisp-intro.texi
doc/lispref/functions.texi
doc/lispref/searching.texi
doc/misc/efaq.texi
doc/misc/eshell.texi
doc/misc/gnus.texi
doc/misc/org.texi
doc/misc/tramp.texi
etc/NEWS
lisp/term.el
lisp/textmodes/flyspell.el
src/lread.c
test/src/lread-tests.el

Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
Simple merge
diff --cc etc/NEWS
index 59586446fdda1dbff2424886efd97e57151316b6,65a7210f5efed9730aadf363026e705960af9487..366eccae80b53f4cc8b06e350f08b63c8240e2d6
+++ b/etc/NEWS
@@@ -433,184 -1244,508 +433,191 @@@ them through 'format' first.  Even tha
  support, you should set 'eldoc-documentation-function' instead of
  calling 'eldoc-message' directly.
  
 -** Using '&rest' or '&optional' incorrectly is now an error.
 -For example giving '&optional' without a following variable, or
 -passing '&optional' multiple times:
 -
 -    (defun foo (&optional &rest x))
 -    (defun bar (&optional &optional x))
 -
 -Previously, Emacs would just ignore the extra keyword, or give
 -incorrect results in certain cases.
 -
 -** The pinentry.el library has been removed.
 -That package (and the corresponding change in GnuPG and pinentry)
 -was intended to provide a way to input passphrase through Emacs with
 -GnuPG 2.0.  However, the change to support that was only implemented
 -in GnuPG >= 2.1 and didn't get backported to GnuPG 2.0.  And with
 -GnuPG 2.1 and later, pinentry.el is not needed at all.  So the
 -library was useless, and we removed it.  GnuPG 2.0 is no longer
 -supported by the upstream project.
 -
 -To adapt to the change, you may need to set 'epa-pinentry-mode' to the
 -symbol 'loopback'.  Alternatively, leave 'epa-pinentry-mode' at its
 -default value of nil, and remove the 'allow-emacs-pinentry' setting
 -from your 'gpg-agent.conf' configuration file, usually found in the
 -'~/.gnupg' directory.
 -
 -Note that previously, it was said that passphrase input through
 -minibuffer would be much less secure than other graphical pinentry
 -programs.  However, these days the difference is insignificant: the
 -'read-password' function sufficiently protects input from leakage to
 -message logs.  Emacs still doesn't use secure memory to protect
 -passphrases, but it was also removed from other pinentry programs as
 -the attack is unrealistic on modern computer systems which don't
 -utilize swap memory usually.
 +** Old-style backquotes now generate an error.  They have been
 +generating warnings for a decade.  To interpret old-style backquotes
 +as new-style, bind the new variable 'force-new-style-backquotes' to t.
 +
 +** Defining a Common Lisp structure using 'cl-defstruct' or
 +'cl-struct-define' whose name clashes with a builtin type (e.g.,
 +'integer' or 'hash-table') now signals an error.
 +
 +** When formatting a floating-point number as an octal or hexadecimal
 +integer, Emacs now signals an error if the number is too large for the
 +implementation to format (Bug#30408).
 +
 ++++
 +** The Lisp reader now signals an overflow for plain decimal integers
 +that do not end in '.' and are outside Emacs range.  Formerly the Lisp
 +reader silently converted them to floating-point numbers, and signaled
 +overflow only for integers with a radix that are outside machine range.
 +To get the old behavior, set the new, experimental variable
 +read-integer-overflow-as-float to t and please email
 +30408@debbugs.gnu.org if you need that.  (Bug#30408).
 +
 +---
 +** Some functions and variables obsolete since Emacs 22 have been removed:
 +archive-mouse-extract, assoc-ignore-case, assoc-ignore-representation,
 +backward-text-line, blink-cursor, bookmark-exit-hooks,
 +comint-use-prompt-regexp-instead-of-fields, compilation-finish-function,
 +count-text-lines, cperl-vc-header-alist, custom-face-save-command,
 +cvs-display-full-path, cvs-fileinfo->full-path, delete-frame-hook,
 +derived-mode-class, describe-char-after, describe-project,
 +desktop-basefilename, desktop-buffer-handlers,
 +desktop-buffer-misc-functions, desktop-buffer-modes-to-save,
 +desktop-enable, desktop-load-default, dired-omit-files-p,
 +disabled-command-hook, dungeon-mode-map, electric-nroff-mode,
 +electric-nroff-newline, electric-perl-terminator, focus-frame,
 +forward-text-line, generic-define-mswindows-modes, generic-define-unix-modes,
 +generic-font-lock-defaults, goto-address-at-mouse,
 +highlight-changes-colours, ibuffer-elide-long-columns, ibuffer-hooks,
 +ibuffer-mode-hooks, icalendar-convert-diary-to-ical,
 +icalendar-extract-ical-from-buffer, imenu-always-use-completion-buffer-p,
 +ipconfig-program, ipconfig-program-options, isearch-lazy-highlight-cleanup,
 +isearch-lazy-highlight-cleanup, isearch-lazy-highlight-initial-delay,
 +isearch-lazy-highlight-interval, isearch-lazy-highlight-max-at-a-time,
 +iswitchb-use-fonts, latin1-char-displayable-p, mouse-wheel-click-button,
 +mouse-wheel-down-button, mouse-wheel-up-button, new-frame, pascal-outline,
 +process-kill-without-query, recentf-menu-append-commands-p,
 +rmail-pop-password, rmail-pop-password-required, savehist-load,
 +set-default-font, spam-list-of-processors,
 +speedbar-add-ignored-path-regexp, speedbar-buffers-line-path,
 +speedbar-buffers-line-path, speedbar-ignored-path-expressions,
 +speedbar-ignored-path-regexp, speedbar-line-path, speedbar-path-line,
 +timer-set-time-with-usecs, tooltip-gud-display, tooltip-gud-modes,
 +tooltip-gud-toggle-dereference, unfocus-frame, unload-hook-features-list,
 +update-autoloads-from-directories, vc-comment-ring, vc-comment-ring-index,
 +vc-comment-search-forward, vc-comment-search-reverse, vc-comment-to-change-log,
 +vc-diff-switches-list, vc-next-comment, vc-previous-comment, view-todo,
 +x-lost-selection-hooks, x-sent-selection-hooks
  
+ ** The function 'display-buffer-in-major-side-window' no longer exists.
+ It has been renamed as internal function 'window--make-major-side-window',
+ however applications should instead call 'display-buffer-in-side-window'
+ (passing the SIDE and SLOT parameters as elements of ALIST).  This approach
+ is backwards-compatible with versions of Emacs in which the old function
+ exists.  See the node "Displaying Buffers in Side Windows" in the ELisp
+ manual for more details.
  \f
 -* Lisp Changes in Emacs 26.1
 -
 -** The function 'assoc' now takes an optional third argument TESTFN.
 -This argument, when non-nil, is used for comparison instead of
 -'equal'.
 -
 -** New optional argument TESTFN in 'alist-get', 'map-elt' and 'map-put'.
 -If non-nil, the argument specifies a function to use for comparison,
 -instead of, respectively, 'assq' and 'eql'.
 -
 -** New function 'seq-set-equal-p' to check if SEQUENCE1 and SEQUENCE2
 -contain the same elements, regardless of the order.
 -
 -** The new function 'mapbacktrace' applies a function to all frames of
 -the current stack trace.
 -
 -** The new function 'file-name-case-insensitive-p' tests whether a
 -given file is on a case-insensitive filesystem.
 -
 -** Several accessors for the value returned by 'file-attributes'
 -have been added.  They are: 'file-attribute-type',
 -'file-attribute-link-number', 'file-attribute-user-id',
 -'file-attribute-group-id', 'file-attribute-access-time',
 -'file-attribute-modification-time',
 -'file-attribute-status-change-time', 'file-attribute-size',
 -'file-attribute-modes', 'file-attribute-inode-number',
 -'file-attribute-device-number' and 'file-attribute-collect'.
 -
 -** The new function 'buffer-hash' computes a fast, non-consing hash of
 -a buffer's contents.
 -
 -** 'interrupt-process' now consults the list 'interrupt-process-functions',
 -to determine which function has to be called in order to deliver the
 -SIGINT signal.  This allows Tramp to send the SIGINT signal to remote
 -asynchronous processes.  The hitherto existing implementation has been
 -moved to 'internal-default-interrupt-process'.
 -
 -** The new function 'read-multiple-choice' prompts for multiple-choice
 -questions, with a handy way to display help texts.
 -
 -** 'comment-indent-function' values may now return a cons to specify a
 -range of indentation.
 -
 -** New optional argument TEXT in 'make-temp-file'.
 -
 -** New function 'define-symbol-prop'.
 -
 -** New function 'secure-hash-algorithms' to list the algorithms that
 -'secure-hash' supports.
 -See the node "(elisp) Checksum/Hash" in the ELisp manual for details.
 -
 -** Emacs now exposes the GnuTLS cryptographic API with the functions
 -'gnutls-macs' and 'gnutls-hash-mac'; 'gnutls-digests' and
 -'gnutls-hash-digest'; 'gnutls-ciphers' and 'gnutls-symmetric-encrypt'
 -and 'gnutls-symmetric-decrypt'.
 -See the node "(elisp) GnuTLS Cryptography" in the ELisp manual for details.
 -
 -** The function 'gnutls-available-p' now returns a list of capabilities
 -supported by the GnuTLS library used by Emacs.
 -
 -** Emacs now supports records for user-defined types, via the new
 -functions 'make-record', 'record', and 'recordp'.  Records are now
 -used internally to represent cl-defstruct and defclass instances, for
 -example.
 -
 -If your program defines new record types, you should use
 -package-naming conventions for naming those types.  This is so any
 -potential conflicts with other types are avoided.
 -
 -** 'save-some-buffers' now uses 'save-some-buffers-default-predicate'
 -to decide which buffers to ask about, if the PRED argument is nil.
 -The default value of 'save-some-buffers-default-predicate' is nil,
 -which means ask about all file-visiting buffers.
 -
 -** string-(to|as|make)-(uni|multi)byte are now declared obsolete.
 -
 -** New variable 'while-no-input-ignore-events' which allow
 -setting which special events 'while-no-input' should ignore.
 -It is a list of symbols.
 -
 -** New function 'undo-amalgamate-change-group' to get rid of
 -undo-boundaries between two states.
 -
 -** New var 'definition-prefixes' is a hash table mapping prefixes to
 -the files where corresponding definitions can be found.  This can be
 -used to fetch definitions that are not yet loaded, for example for
 -'C-h f'.
 -
 -** New var 'syntax-ppss-table' to control the syntax-table used in
 -'syntax-ppss'.
 -
 -** 'define-derived-mode' can now specify an :after-hook form, which
 -gets evaluated after the new mode's hook has run.  This can be used to
 -incorporate configuration changes made in the mode hook into the
 -mode's setup.
 -
 -** Autoload files are now generated without timestamps.
 -Set 'autoload-timestamps' to a non-nil value to get timestamps in
 -autoload files.
 -
 -** 'gnutls-boot' now takes a parameter ':complete-negotiation' that
 -says that negotiation should complete even on non-blocking sockets.
 -
 -** There is now a new variable 'flyspell-sort-corrections-function'
 -that allows changing the way corrections are sorted.
 -
 -** The new command 'fortune-message' has been added, which displays
 -fortunes in the echo area.
 -
 -** New function 'func-arity' returns information about the argument list
 -of an arbitrary function.  This generalizes 'subr-arity' for functions
 -that are not built-in primitives.  We recommend using this new
 -function instead of 'subr-arity'.
 -
 -** New function 'region-bounds' can be used in the interactive spec
 -to provide region boundaries (for rectangular regions more than one)
 -to an interactively callable function as a single argument instead of
 -two separate arguments 'region-beginning' and 'region-end'.
 -
 -** 'parse-partial-sexp' state has a new element.  Element 10 is
 -non-nil when the last character scanned might be the first character
 -of a two character construct, i.e., a comment delimiter or escaped
 -character.  Its value is the syntax of that last character.
 -
 -** 'parse-partial-sexp's state, element 9, has now been confirmed as
 -permanent and documented, and may be used by Lisp programs.  Its value
 -is a list of currently open parenthesis positions, starting with the
 -outermost parenthesis.
 -
 -** 'read-color' will now display the color names using the color itself
 -as the background color.
 -
 -** The function 'redirect-debugging-output' now works on platforms
 -other than GNU/Linux.
 -
 -** The new function 'string-version-lessp' compares strings by
 -interpreting consecutive runs of numerical characters as numbers, and
 -compares their numerical values.  According to this predicate,
 -"foo2.png" is smaller than "foo12.png".
 -
 -** Numeric comparisons and 'logb' no longer return incorrect answers
 -due to internal rounding errors.  For example, '(< most-positive-fixnum
 -(+ 1.0 most-positive-fixnum))' now correctly returns t on 64-bit hosts.
 -
 -** The functions 'ffloor', 'fceiling', 'ftruncate' and 'fround' now
 -accept only floating-point arguments, as per their documentation.
 -Formerly, they quietly accepted integer arguments and sometimes
 -returned nonsensical answers, e.g., '(< N (ffloor N))' could return t.
 -
 -** On hosts like GNU/Linux x86-64 where a 'long double' fraction
 -contains at least EMACS_INT_WIDTH - 3 bits, 'format' no longer returns
 -incorrect answers due to internal rounding errors when formatting
 -Emacs integers with '%e', '%f', or '%g' conversions.  For example, on
 -these hosts '(eql N (string-to-number (format "%.0f" N)))' now returns
 -t for all Emacs integers N.
 -
 -** Calls that accept floating-point integers (for use on hosts with
 -limited integer range) now signal an error if arguments are not
 -integral.  For example '(decode-char 'ascii 0.5)' now signals an
 -error.
 -
 -** Functions 'string-trim-left', 'string-trim-right' and 'string-trim'
 -now accept optional arguments which specify the regexp of a substring
 -to trim.
 -
 -** The new function 'char-from-name' converts a Unicode name string
 -to the corresponding character code.
 -
 -** New functions 'sxhash-eq' and 'sxhash-eql' return hash codes of a
 -Lisp object suitable for use with 'eq' and 'eql' correspondingly.  If
 -two objects are 'eq' ('eql'), then the result of 'sxhash-eq'
 -('sxhash-eql') on them will be the same.
 -
 -** Function 'sxhash' has been renamed to 'sxhash-equal' for
 -consistency with the new functions.  For compatibility, 'sxhash'
 -remains as an alias to 'sxhash-equal'.
 -
 -** 'make-hash-table' now defaults to a rehash threshold of 0.8125
 -instead of 0.8, to avoid rounding glitches.
 -
 -** New function 'add-variable-watcher' can be used to call a function
 -when a symbol's value is changed.  This is used to implement the new
 -debugger command 'debug-on-variable-change'.
 +* Lisp Changes in Emacs 27.1
 +
 ++++
 +** New function assoc-delete-all.
 +
 +** 'print-quoted' now defaults to t, so if you want to see
 +(quote x) instead of 'x you will have to bind it to nil where applicable.
 +
 +** To avoid confusion caused by "smart quotes", the reader signals an
 +error when reading Lisp symbols which begin with one of the following
 +quotation characters: ‘’‛“”‟〞"'.  A symbol beginning with such a
 +character can be written by escaping the quotation character with a
 +backslash.  For example:
 +
 +    (read "‘smart") => (invalid-read-syntax "strange quote" "‘")
 +    (read "\\‘smart") == (intern "‘smart")
 +
 ++++
 +** Omitting variables after '&optional' and '&rest' is now allowed.
 +For example (defun foo (&optional)) is no longer an error.  This is
 +sometimes convenient when writing macros.  See the ChangeLog entry
 +titled "Allow `&rest' or `&optional' without following variable" for a
 +full listing of which arglists are accepted across versions.
 +
 +** Internal parsing commands now use syntax-ppss and disregard
 +open-paren-in-column-0-is-defun-start.  This affects mostly things like
 +forward-comment, scan-sexps, and forward-sexp when parsing backward.
 +The new variable 'comment-use-syntax-ppss' can be set to nil to recover the old
 +behavior if needed.
 +
 +** The `server-name' and `server-socket-dir' variables are set when a
 +socket has been pased to Emacs (Bug#24218).
 +
 +---
 +** The 'file-system-info' function is now available on all platforms.
 +instead of just Microsoft platforms.  This fixes a 'get-free-disk-space'
 +bug on OS X 10.8 and later (Bug#28639).
 +
 ++++
 +** New macro combine-change-calls arranges to call the change hooks
 +('before-change-functions' and 'after-change-functions') just once
 +each around a sequence of lisp forms, given a region.  This is
 +useful when a function makes a possibly large number of repetitive
 +changes and the change hooks are time consuming.
 +
 +---
 +** The function 'get-free-disk-space' returns now a non-nil value for
 +remote systems, which support this check.
 +
 ++++
 +** The function 'make-string' accepts an additional optional argument.
 +If the optional third argument is non-nil, 'make-string' will produce
 +a multibyte string even if its second argument is an ASCII character.
 +
 +** (format "%d" X) no longer mishandles a floating-point number X that
 +does not fit in a machine integer (Bug#30408).
 +
 +** New JSON parsing and serialization functions 'json-serialize',
 +'json-insert', 'json-parse-string', and 'json-parse-buffer'.  These
 +are implemented in C using the Jansson library.
 +
 +** Mailcap
 +
 +---
 +*** The new function `mailcap-file-name-to-mime-type' has been added.
 +It's a simple convenience function for looking up MIME types based on
 +file name extensions.
 +
 +*** The default way the list of possible external viewers for MIME
 +types is sorted and chosen has changed.  Earlier, the most specific
 +viewer was chosen, even if there was a general override in ~/.mailcap.
 +For instance, if /etc/mailcap has an entry for image/gif, that one
 +will be chosen even if you have an entry for image/* in your
 +~/.mailcap file.  But with the new method, entries from ~/.mailcap
 +overrides all system and Emacs-provided defaults.  To get the old
 +method back, set `mailcap-prefer-mailcap-viewers' to nil.
  
 -** New variable 'print-escape-control-characters' causes 'prin1' and
 -'print' to output control characters as backslash sequences.
  
 -** Time conversion functions that accept a time zone rule argument now
 -allow it to be OFFSET or a list (OFFSET ABBR), where the integer
 -OFFSET is a count of seconds east of Universal Time, and the string
 -ABBR is a time zone abbreviation.  The affected functions are
 -'current-time-string', 'current-time-zone', 'decode-time',
 -'format-time-string', and 'set-time-zone-rule'.
 -
 -** 'format-time-string' now formats '%q' to the calendar quarter.
 -
 -** New built-in function 'mapcan'.
 -It avoids unnecessary consing (and garbage collection).
 -
 -** 'car' and 'cdr' compositions 'cXXXr' and 'cXXXXr' are now part of Elisp.
 -
 -** 'gensym' is now part of Elisp.
 -
 -** Low-level list functions like 'length' and 'member' now do a better
 -job of signaling list cycles instead of looping indefinitely.
 -
 -** The new functions 'make-nearby-temp-file' and 'temporary-file-directory'
 -can be used for creation of temporary files on remote or mounted directories.
 -
 -** On GNU platforms when operating on a local file, 'file-attributes'
 -no longer suffers from a race when called while another process is
 -altering the filesystem.  On non-GNU platforms 'file-attributes'
 -attempts to detect the race, and returns nil if it does so.
 -
 -** The new function 'file-local-name' can be used to specify arguments
 -of remote processes.
 -
 -** The new functions 'file-name-quote', 'file-name-unquote' and
 -'file-name-quoted-p' can be used to quote / unquote file names with
 -the prefix "/:".
 -
 -** The new error 'file-missing', a subcategory of 'file-error', is now
 -signaled instead of 'file-error' if a file operation acts on a file
 -that does not exist.
 -
 -** The function 'delete-directory' no longer signals an error when
 -operating recursively and when some other process deletes the directory
 -or its files before 'delete-directory' gets to them.
 -
 -** New error type 'user-search-failed' like 'search-failed' but
 -avoids debugger like 'user-error'.
 -
 -** The function 'line-number-at-pos' now takes a second optional
 -argument 'absolute'.  If this parameter is nil, the default, this
 -function keeps on returning the line number taking potential narrowing
 -into account.  If this parameter is non-nil, the function ignores
 -narrowing and returns the absolute line number.
 -
 -** The function 'color-distance' now takes a second optional argument
 -'metric'.  When non-nil, it should be a function of two arguments that
 -accepts two colors and returns a number.
 -
 -** Changes in Frame and Window Handling
 -
 -*** Resizing a frame no longer runs 'window-configuration-change-hook'.
 -'window-size-change-functions' should be used instead.
 -
 -*** The new function 'frame-size-changed-p' can tell whether a frame has
 -been resized since the last time 'window-size-change-functions' has been
 -run.
 -
 -*** The function 'frame-geometry' now also returns the width of a
 -frame's outer border.
 -
 -*** New frame parameters and changed semantics for older ones:
 -
 -**** 'z-group' positions a frame above or below all others.
 -
 -**** 'min-width' and 'min-height' specify the absolute minimum size of a
 -frame.
 -
 -**** 'parent-frame' makes a frame the child frame of another Emacs
 -frame.  The section "(elisp) Child Frames" in the ELisp manual
 -describes the intrinsics of that relationship.
 -
 -**** 'delete-before' triggers deletion of one frame before that of
 -another.
 -
 -**** 'mouse-wheel-frame' specifies another frame whose windows shall be
 -scrolled instead.
 -
 -**** 'no-other-frame' has 'next-frame' and 'previous-frame' skip this
 -frame.
 -
 -**** 'skip-taskbar' removes a frame's icon from the taskbar and has
 -'Alt-<TAB>' skip this frame.
 -
 -**** 'no-focus-on-map' avoids that a frame gets input focus when mapped.
 -
 -**** 'no-accept-focus' means that a frame does not want to get input
 -focus via the mouse.
 -
 -**** 'undecorated' removes the window manager decorations from a frame.
 -
 -**** 'override-redirect' tells the window manager to disregard this
 -frame.
 -
 -**** 'width' and 'height' now allow the specification of pixel values
 -and ratios.
 -
 -**** 'left' and 'top' now allow the specification of ratios.
 -
 -**** 'keep-ratio' preserves size and position of child frames when their
 -parent frame is resized.
 -
 -**** 'no-special-glyphs' suppresses display of truncation and
 -continuation glyphs in a frame.
 -
 -**** 'auto-hide-function' and 'minibuffer-exit' handle auto hiding of
 -frames and exiting from minibuffer individually.
 -
 -**** 'fit-frame-to-buffer-margins' and 'fit-frame-to-buffer-sizes'
 -handle fitting a frame to its buffer individually.
 -
 -**** 'drag-internal-border', 'drag-with-header-line',
 -'drag-with-mode-line', 'snap-width', 'top-visible' and 'bottom-visible'
 -allow dragging and resizing frames with the mouse.
 -
 -**** 'minibuffer' is now set to the default minibuffer window when
 -initially specified as nil and is not reset to nil when initially
 -specifying a minibuffer window.
 -
 -*** The new function 'frame-list-z-order' returns a list of all frames
 -in Z (stacking) order.
 -
 -*** The function 'x-focus-frame' optionally tries to not activate its
 -frame.
 -
 -*** The variable 'focus-follows-mouse' has a third meaningful value
 -'auto-raise' to indicate that the window manager automatically raises a
 -frame when the mouse pointer enters it.
 -
 -*** The new function 'frame-restack' puts a frame above or below
 -another on the display.
 -
 -*** The new face 'internal-border' specifies the background of a frame's
 -internal border.
 -
 -*** The NORECORD argument of 'select-window' now has a meaningful value
 -'mark-for-redisplay' which is like any other non-nil value but marks
 -WINDOW for redisplay.
 -
 -*** Support for side windows is now official.  The display action
 -function 'display-buffer-in-side-window' will display its buffer in a
 -side window.  Functions for toggling all side windows on a frame,
 -changing and reversing the layout of side windows and returning the
 -main (major non-side) window of a frame are provided.  For details
 -consult the section "(elisp) Side Windows" in the ELisp manual.
 -
 -*** Support for atomic windows - rectangular compositions of windows
 -treated by 'split-window', 'delete-window' and 'delete-other-windows'
 -like a single live window - is now official.  For details consult the
 -section "(elisp) Atomic Windows" in the ELisp manual.
 -
 -*** New 'display-buffer' alist entry 'window-parameters' allows the
 -assignment of window parameters to the window used for displaying the
 -buffer.
 -
 -*** New function 'display-buffer-reuse-mode-window' is an action function
 -suitable for use in 'display-buffer-alist'.  For example, to avoid
 -creating a new window when opening man pages when there's already one,
 -use
 -
 -(add-to-list 'display-buffer-alist
 -     '("\\`\\*Man .*\\*\\'" .
 -       (display-buffer-reuse-mode-window
 -        (inhibit-same-window . nil)
 -        (mode . Man-mode))))
 -
 -*** New window parameter 'no-delete-other-windows' prevents that
 -its window gets deleted by 'delete-other-windows'.
 +** URL
  
 -*** New window parameters 'mode-line-format' and 'header-line-format'
 -allow the buffer-local formats for this window to be overridden.
 +*** The file: handler no longer looks for index.html in directories if
 +you ask it for a file:///dir URL.  Since this is a low-level library,
 +such decisions (if they are to be made at all) are left to
 +higher-level functions.
  
 -*** New command 'window-swap-states' swaps the states of two live
 -windows.
  
 -*** New functions 'window-pixel-width-before-size-change' and
 -'window-pixel-height-before-size-change' support detecting which
 -window changed size when 'window-size-change-functions' are run.
 +** image-mode
  
 -*** The new function 'window-lines-pixel-dimensions' returns the pixel
 -dimensions of a window's text lines.
 +*** image-mode started using ImageMagick by default for all images
 +some years back.  It now respects `imagemagick-types-inhibit' as a way
 +to disable that.
  
 -*** The new function 'window-largest-empty-rectangle' returns the
 -dimensions of the largest rectangular area not occupying any text in a
 -window's body.
  
 -*** The semantics of 'mouse-autoselect-window' has changed slightly.
 -For details see the section "(elisp) Mouse Window Auto-selection" in
 -the ELisp manual.
 ++++
 +** The new function 'read-answer' accepts either long or short answers
 +depending on the new customizable variable 'read-answer-short'.
  
 -*** 'select-frame-by-name' now may return a frame on another display
 -if it does not find a suitable one on the current display.
 +** The function 'load' now behaves correctly when loading modules.
 +Specifically, it puts the module name into 'load-history', prints
 +loading messages if requested, and protects against recursive loads.
  
 -** 'tcl-auto-fill-mode' is now declared obsolete.  Its functionality
 -can be replicated simply by setting 'comment-auto-fill-only-comments'.
 ++++
 +** The function 'read-variable' now uses its own history list.
 +The history of variable names read by 'read-variable' is recorded in
 +the new variable 'custom-variable-history'.
  
 -** New pcase pattern 'rx' to match against an rx-style regular expression.
 -For details, see the doc string of 'rx--pcase-macroexpander'.
 +\f
 +* Changes in Emacs 27.1 on Non-Free Operating Systems
  
 -** New functions to set region from secondary selection and vice versa.
 -The new functions 'secondary-selection-to-region' and
 -'secondary-selection-from-region' let you set the beginning and the
 -end of the region from those of the secondary selection and vice
 -versa.
 +---
 +** Battery status is now supported in all Cygwin builds.
 +Previously it was supported only in the Cygwin-w32 build.
  
 -** New function 'lgstring-remove-glyph' can be used to modify a
 -gstring returned by the underlying layout engine (e.g. m17n-flt,
 -uniscribe).
 +** Emacs now handles key combinations involving the macOS "command"
 +and "option" modifier keys more correctly.
  
 -\f
 -* Changes in Emacs 26.1 on Non-Free Operating Systems
 -
 -** Intercepting hotkeys on Windows 7 and later now works better.
 -The new keyboard hooking code properly grabs system hotkeys such as
 -'Win-*' and 'Alt-TAB', in a way that Emacs can get at them before the
 -system.  This makes the 'w32-register-hot-key' functionality work
 -again on all versions of MS-Windows starting with Windows 7.  On
 -Windows NT and later you can now register any hotkey combination.  (On
 -Windows 9X, the previous limitations, spelled out in the Emacs manual,
 -still apply.)
 -
 -** 'convert-standard-filename' no longer mirrors slashes on MS-Windows.
 -Previously, on MS-Windows this function converted slash characters in
 -file names into backslashes.  It no longer does that.  If your Lisp
 -program used 'convert-standard-filename' to prepare file names to be
 -passed to subprocesses (which is not the recommended usage of that
 -function), you will now have to mirror slashes in your application
 -code.  One possible way is this:
 -
 -         (let ((start 0))
 -           (while (string-match "/" file-name start)
 -             (aset file-name (match-beginning 0) ?\\)
 -             (setq start (match-end 0))))
 -
 -** GUI sessions on MS-Windows now treat SIGINT like Posix platforms do.
 -The effect of delivering a Ctrl-C (SIGINT) signal to a GUI Emacs on
 -MS-Windows is now the same as on Posix platforms -- Emacs saves the
 -session and exits.  In particular, this will happen if you start
 -emacs.exe from the Windows shell, then type Ctrl-C into that shell's
 -window.
 -
 -** 'signal-process' supports SIGTRAP on Windows XP and later.
 -The 'kill' emulation on Windows now maps SIGTRAP to a call to the
 -'DebugBreakProcess' API.  This causes the receiving process to break
 -execution and return control to the debugger.  If no debugger is
 -attached to the receiving process, the call is typically ignored.
 -This is in contrast to the default action on POSIX Systems, where it
 -causes the receiving process to terminate with a core dump if no
 -debugger has been attached to it.
 -
 -** 'set-mouse-position' and 'set-mouse-absolute-pixel-position' work
 -on macOS.
 -
 -** Emacs can now be run as a GUI application from the command line on
 -macOS.
 -
 -** 'ns-appearance' and 'ns-transparent-titlebar' change the appearance
 -of frame decorations on macOS 10.9+.
 -
 -** 'ns-use-thin-smoothing' enables thin font smoothing on macOS 10.8+.
 -
 -** 'process-attributes' on Darwin systems now returns more information.
 -
 -** Mousewheel and trackpad scrolling on macOS 10.7+ now behaves more
 -like the macOS default.  The new variables 'ns-mwheel-line-height',
 -'ns-use-mwheel-acceleration' and 'ns-use-mwheel-momentum' can be used
 -to customize the behavior.
 +** The special handling of `frame-title-format' on NS where setting it
 +to `t' would enable the macOS proxy icon has been replaced with a
 +separate variable, `ns-use-proxy-icon'. `frame-title-format' will now
 +work as on other platforms.
  
  \f
  ----------------------------------------------------------------------
diff --cc lisp/term.el
Simple merge
Simple merge
diff --cc src/lread.c
Simple merge
index 708701a8887d899deb232205e563d19fb778d555,eb212f3c95726c7bb1911c5ac66894c3c77fb1f9..647e886d3429a5612be4157a50cc3cb4705613dd
@@@ -194,9 -170,12 +194,17 @@@ literals (Bug#20852).
      (lread--substitute-object-in-subtree x 1 t)
      (should (eq x (cdr x)))))
  
 +(ert-deftest lread-long-hex-integer ()
 +  (should-error
 +   (read "#xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff")
 +   :type 'overflow-error))
 +
+ (ert-deftest lread-test-bug-31186 ()
+   (with-temp-buffer
+     (insert ";; -*- -:*-")
+     (should-not
+      ;; This used to crash in lisp_file_lexically_bound_p before the
+      ;; bug was fixed.
+      (eval-buffer))))
  ;;; lread-tests.el ends here