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