From: Glenn Morris Date: Fri, 20 Apr 2018 15:07:43 +0000 (-0700) Subject: Merge from origin/emacs-26 X-Git-Tag: emacs-27.0.90~5127 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=2a8f8f75639505b0f04757a1034480843fbd8398;p=emacs.git Merge from origin/emacs-26 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 --- 2a8f8f75639505b0f04757a1034480843fbd8398 diff --cc etc/NEWS index 59586446fdd,65a7210f5ef..366eccae80b --- a/etc/NEWS +++ 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. -* 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-' 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'. + +* 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. - -* 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. ---------------------------------------------------------------------- diff --cc test/src/lread-tests.el index 708701a8887,eb212f3c957..647e886d342 --- a/test/src/lread-tests.el +++ b/test/src/lread-tests.el @@@ -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