From: Marcin Borkowski Date: Thu, 7 Dec 2017 13:24:57 +0000 (+0100) Subject: Merge branch 'master' into fix/bug-20871 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=0e3c10ce34c84d24013a84a725c6275ad87b1530;p=emacs.git Merge branch 'master' into fix/bug-20871 --- 0e3c10ce34c84d24013a84a725c6275ad87b1530 diff --cc etc/NEWS index 6bf124cfce1,cbd50f02272..abc79af0ffc --- a/etc/NEWS +++ b/etc/NEWS @@@ -22,500 -22,53 +22,58 @@@ Temporary note When you add a new item, use the appropriate mark if you are sure it applies, - * Installation Changes in Emacs 26.1 - - ** By default libgnutls is now required when building Emacs. - Use 'configure --with-gnutls=no' to build even when GnuTLS is missing. - - ** GnuTLS version 2.12.2 or later is now required, instead of merely - version 2.6.6 or later. - - ** The new option 'configure --with-mailutils' causes Emacs to rely on - GNU Mailutils 'movemail' to retrieve email. By default, the Emacs - build procedure continues to build and install a limited and insecure - 'movemail' substitute. Although --with-mailutils is recommended, it - is not yet the default due to backward-compatibility concerns. - - ** The new option 'configure --enable-gcc-warnings=warn-only' causes - GCC to issue warnings without stopping the build. This behavior is - now the default in developer builds. As before, use - '--disable-gcc-warnings' to suppress GCC's warnings, and - '--enable-gcc-warnings' to stop the build if GCC issues warnings. - - ** When GCC warnings are enabled, '--enable-check-lisp-object-type' is - now enabled by default when configuring. - - +++ - ** The Emacs server now has socket-launching support. This allows - socket based activation, where an external process like systemd can - invoke the Emacs server process upon a socket connection event and - hand the socket over to Emacs. Emacs uses this socket to service - emacsclient commands. This new functionality can be disabled with the - configure option '--disable-libsystemd'. - - +++ - ** A systemd user unit file is provided. Use it in the standard way: - systemctl --user enable emacs - (If your Emacs is installed in a non-standard location, you may - need to copy the emacs.service file to eg ~/.config/systemd/user/) - - ** New configure option '--disable-build-details' attempts to build an - Emacs that is more likely to be reproducible; that is, if you build - and install Emacs twice, the second Emacs is a copy of the first. - Deterministic builds omit the build date from the output of the - emacs-version and erc-cmd-SV functions, and the leave the following - variables nil: emacs-build-system, emacs-build-time, - erc-emacs-build-time. - - ** The configure option '--with-gameuser' now defaults to 'no', - as this appears to be the most common configuration in practice. - When it is 'no', the shared game directory and the auxiliary program - update-game-score are no longer needed and are not installed. - - ** Emacs no longer works on IRIX. We expect that Emacs users are not - affected by this, as SGI stopped supporting IRIX in December 2013. + * Installation Changes in Emacs 27.1 - * Startup Changes in Emacs 26.1 - - +++ - ** New option '--fg-daemon'. This is the same as '--daemon', except - it runs in the foreground and does not fork. This is intended for - modern init systems such as systemd, which manage many of the traditional - aspects of daemon behavior themselves. '--bg-daemon' is now an alias - for '--daemon'. - - ** New option '--module-assertions'. If the user supplies this - option, Emacs will perform expensive correctness checks when dealing - with dynamic modules. This is intended for module authors that wish - to verify that their module conforms to the module requirements. The - option makes Emacs abort if a module-related assertion triggers. - - +++ - ** Emacs now supports 24-bit colors on capable text terminals - Terminal is automatically initialized to use 24-bit colors if the - required capabilities are found in terminfo. See the FAQ node - "Colors on a TTY" for more information. + * Startup Changes in Emacs 27.1 - * Changes in Emacs 26.1 - - ** The variable 'emacs-version' no longer includes the build number. - This is now stored separately in a new variable, 'emacs-build-number'. - - +++ - ** The new function 'mapbacktrace' applies a function to all frames of - the current stack trace. - - +++ - ** Emacs now provides a limited form of concurrency with Lisp threads. - Concurrency in Emacs Lisp is "mostly cooperative", meaning that - Emacs will only switch execution between threads at well-defined - times: when Emacs waits for input, during blocking operations related - to threads (such as mutex locking), or when the current thread - explicitly yields. Global variables are shared among all threads, but - a 'let' binding is thread-local. Each thread also has its own current - buffer and its own match data. - - See the chapter "Threads" in the ELisp manual for full documentation - of these facilities. - - +++ - ** The new function 'file-name-case-insensitive-p' tests whether a - given file is on a case-insensitive filesystem. - - +++ - ** The new user variable 'electric-quote-chars' provides a list - of curved quotes for 'electric-quote-mode', allowing user to choose - the types of quotes to be used. - - +++ - ** The new user variable 'dired-omit-case-fold' allows the user to - customize the case-sensitivity of dired-omit-mode. It defaults to - the same sensitivity as that of the filesystem for the corresponding - dired buffer. - - +++ - ** Emacs now uses double buffering to reduce flicker when editing and - resizing graphical Emacs frames on the X Window System. This support - requires the DOUBLE-BUFFER extension, which major X servers have - supported for many years. If your system has this extension, but an - Emacs built with double buffering misbehaves on some displays you use, - you can disable the feature by adding - - '(inhibit-double-buffering . t) - - to default-frame-alist. Or inject this parameter into the selected - frame by evaluating this form: - - (modify-frame-parameters nil '((inhibit-double-buffering . t))) - - --- - The group 'wp', whose label was "text", is now deprecated. - Use the new group 'text', which inherits from 'wp', instead. - - +++ - ** The new function 'call-shell-region' executes a command in an - inferior shell with the buffer region as input. - - +++ - ** The new user option 'shell-command-dont-erase-buffer' controls - if the output buffer is erased between shell commands; if non-nil, - the output buffer is not erased; this variable also controls where - to set the point in the output buffer: beginning of the output, - end of the buffer or save the point. - When 'shell-command-dont-erase-buffer' is nil, the default value, - the behavior of 'shell-command', 'shell-command-on-region' and - 'async-shell-command' is as usual. - - +++ - ** The new user option 'mouse-select-region-move-to-beginning' - controls the position of point when double-clicking mouse-1 on the end - of a parenthetical grouping or string-delimiter: the default value nil - keeps point at the end of the region, setting it to non-nil moves - point to the beginning of the region. - - +++ - ** The new user option 'mouse-drag-and-drop-region' allows to drag the - entire region of text to another place or another buffer. - - +++ - ** The new user option 'confirm-kill-processes' allows the user to - skip a confirmation prompt for killing subprocesses when exiting - Emacs. When set to t (the default), Emacs will prompt for - confirmation before killing subprocesses on exit, which is the same - behavior as before. - - --- - ** 'find-library-name' will now fall back on looking at 'load-history' - to try to locate libraries that have been loaded with an explicit path - outside 'load-path'. - - +++ - ** Faces in 'minibuffer-prompt-properties' no longer overwrite properties - in the text in functions like 'read-from-minibuffer', but instead are - added to the end of the face list. This allows users to say things - like '(read-from-minibuffer (propertize "Enter something: " 'face 'bold))'. - - +++ - ** The new variable 'extended-command-suggest-shorter' has been added - to control whether to suggest shorter 'M-x' commands or not. - - --- - ** icomplete now respects 'completion-ignored-extensions'. - - +++ - ** Non-breaking hyphens are now displayed with the 'nobreak-hyphen' - face instead of the 'escape-glyph' face. - - +++ - ** Approximations to quotes are now displayed with the new 'homoglyph' - face instead of the 'escape-glyph' face. - - --- - ** 'C-x h' ('mark-whole-buffer') will now avoid marking the prompt - part of minibuffers. - - --- - ** 'find-library' now takes a prefix argument to pop to a different - window. - - --- - ** 'process-attributes' on Darwin systems now returns more information. - - +++ - ** 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. - - --- - ** 'fill-paragraph' no longer marks the buffer as changed unless it - actually changed something. - - --- - ** The locale language name 'ca' is now mapped to the language - environment 'Catalan', which has been added. + * Changes in Emacs 27.1 --- - ** 'align-regexp' has a separate history for its interactive argument. - 'align-regexp' no longer shares its history with all other - history-less functions that use 'read-string'. - - +++ - ** The networking code has been reworked so that it's more - asynchronous than it was (when specifying :nowait t in - 'make-network-process'). How asynchronous it is varies based on the - capabilities of the system, but on a typical GNU/Linux system the DNS - resolution, the connection, and (for TLS streams) the TLS negotiation - are all done without blocking the main Emacs thread. To get - asynchronous TLS, the TLS boot parameters have to be passed in (see - the manual for details). - - Certain process oriented functions (like 'process-datagram-address') - will block until socket setup has been performed. The recommended way - to deal with asynchronous sockets is to avoid interacting with them - until they have changed status to "run". This is most easily done - from a process sentinel. - - ** 'make-network-process' and 'open-network-stream' sometimes allowed - :service to be an integer string (e.g., :service "993") and sometimes - required an integer (e.g., :service 993). This difference has been - eliminated, and integer strings work everywhere. - - ** It is possible to disable attempted recovery on fatal signals. - - Two new variables support disabling attempts to recover from stack - overflow and to avoid automatic auto-save when Emacs is delivered a - fatal signal. 'attempt-stack-overflow-recovery', if set to 'nil', - will disable attempts to recover from C stack overflows; Emacs will - then crash as with any other fatal signal. - 'attempt-orderly-shutdown-on-fatal-signal', if set to 'nil', will - disable attempts to auto-save the session and shut down in an orderly - fashion when Emacs receives a fatal signal; instead, Emacs will - terminate immediately. Both variables are non-'nil' by default. - These variables are for users who would like to avoid the small - probability of data corruption due to techniques Emacs uses to recover - in these situations. + ** The new option 'tooltip-resize-echo-area' avoids truncating tooltip text + on GUI frames when tooltips are displayed in the echo area. Instead, + it resizes the echo area as needed to accommodate the full tool-tip + text. +++ - ** File local and directory local variables are now initialized each - time the major mode is set, not just when the file is first visited. - These local variables will thus not vanish on setting a major mode. + ** New function 'logcount' calculates an integer's Hamming weight. +++ - ** A second dir-local file (.dir-locals-2.el) is now accepted. - See the variable 'dir-locals-file-2' for more information. - - +++ - ** Connection-local variables can be used to specify local variables - with a value depending on the connected remote server. For details, - see the node "Connection Local Variables" in the ELisp manual. - - --- - ** International domain names (IDNA) are now encoded via the new - puny.el library, so that one can visit web sites with non-ASCII URLs. - - +++ - ** The new 'timer-list' command lists all active timers in a buffer, - where you can cancel them with the 'c' command. - - +++ - ** The new function 'read-multiple-choice' prompts for multiple-choice - questions, with a handy way to display help texts. - - +++ - ** 'switch-to-buffer-preserve-window-point' now defaults to t. - - +++ - ** The new variable 'debugger-stack-frame-as-list' allows displaying - all call stack frames in a Lisp backtrace buffer as lists. Both - debug.el and edebug.el have been updated to heed to this variable. - - +++ - ** The new variable 'x-ctrl-keysym' has been added to the existing - roster of X keysyms. It can be used in combination with another - variable of this kind to swap modifiers in Emacs. - - --- - ** New input methods: 'cyrillic-tuvan', 'polish-prefix'. - - +++ - ** File name quoting by adding the prefix "/:" is now possible for the - local part of a remote file name. Thus, if you have a directory named - "/~" on the remote host "foo", you can prevent it from being - substituted by a home directory by writing it as "/foo:/:/~/file". - - +++ - ** The new variable 'maximum-scroll-margin' allows having effective - settings of 'scroll-margin' up to half the window size, instead of - always restricting the margin to a quarter of the window. - - +++ - ** Emacs can scroll horizontally using mouse, touchpad, and trackbar. - You can enable this by customizing 'mwheel-tilt-scroll-p'. If you - want to reverse the direction of the scroll, customize - 'mwheel-flip-direction'. - - +++ - ** Emacsclient has a new option -u/--suppress-output. The option - suppresses display of return values from the server process. - - --- - ** New user option 'dig-program-options' and extended functionality - for DNS-querying functions 'nslookup-host', 'dns-lookup-host', - and 'run-dig'. Each function now accepts an optional name server - argument interactively (with a prefix argument) and non-interactively. - - +++ - ** Emacsclient has a new option -T/--tramp. - This helps with using a local Emacs session as the server for a remote - emacsclient. With appropriate setup, one can now set the EDITOR - environment variable on a remote machine to emacsclient, and - use the local Emacs to edit remote files via Tramp. See the node - "emacsclient Options" in the user manual for the details. - - +++ - ** The new variable 'eval-expression-print-maximum-character' prevents - large integers from being displayed as characters. - - ** Two new commands for finding the source code of Emacs Lisp - libraries: 'find-library-other-window' and 'find-library-other-frame'. - - +++ - ** The new variable 'display-raw-bytes-as-hex' allows to change the - display of raw bytes from octal to hex. - - ** You can now provide explicit field numbers in format specifiers. - For example, '(format "%2$s %1$s" "X" "Y")' produces "Y X". - - - * Editing Changes in Emacs 26.1 - - +++ - ** New variable 'column-number-indicator-zero-based'. - Traditionally, in Column Number mode, the displayed column number - counts from zero starting at the left margin of the window. This - behavior is now controlled by 'column-number-indicator-zero-based'. - If you would prefer for the displayed column number to count from one, - you may set this variable to nil. (Behind the scenes, there is now a - new mode line construct, '%C', which operates exactly as '%c' does - except that it counts from one.) - - +++ - ** New single-line horizontal scrolling mode. - The 'auto-hscroll-mode' variable can now have a new special value, - 'current-line', which causes only the line where the cursor is - displayed to be horizontally scrolled when lines are truncated on - display and point moves outside the left or right window margin. - - +++ - ** New mode line constructs '%o' and '%q', and user option - 'mode-line-percent-position'. '%o' displays the "degree of travel" of - the window through the buffer. Unlike the default '%p', this - percentage approaches 100% as the window approaches the end of the - buffer. '%q' displays the percentage offsets of both the start and - the end of the window, e.g. "5-17%". The new option - 'mode-line-percent-position' makes it easier to switch between '%p', - '%P', and these new constructs. - - +++ - ** Two new user options 'list-matching-lines-jump-to-current-line' and - 'list-matching-lines-current-line-face' to show highlighted the current - line in *Occur* buffer. - - +++ - ** The 'occur' command can now operate on the region. - - +++ - ** New bindings for 'query-replace-map'. - 'undo', undo the last replacement; bound to 'u'. - 'undo-all', undo all replacements; bound to 'U'. - - ** 'delete-trailing-whitespace' deletes whitespace after form feed. - In modes where form feed was treated as a whitespace character, - 'delete-trailing-whitespace' would keep lines containing it unchanged. - It now deletes whitespace after the last form feed thus behaving the - same as in modes where the character is not whitespace. - - ** No more prompt about changed file when the file's content is unchanged. - Instead of only checking the modification time, Emacs now also checks - the file's actual content before prompting the user. - - ** Various casing improvements. - - *** 'upcase', 'upcase-region' et al. convert title case characters - (such as Dz) into their upper case form (such as DZ). - - *** 'capitalize', 'upcase-initials' et al. make use of title-case forms - of initial characters (correctly producing for example Džungla instead - of incorrect DŽungla). - - *** Characters which turn into multiple ones when cased are correctly handled. - For example, fi ligature is converted to FI when upper cased. - - *** Greek small sigma is correctly handled when at the end of the word. - Strings such as ΌΣΟΣ are now correctly converted to Όσος when - capitalized instead of incorrect Όσοσ (compare lowercase sigma at the - end of the word). - - ** Emacs can now auto-save buffers to visited files in a more robust - manner via the new mode 'auto-save-visited-mode'. Unlike - 'auto-save-visited-file-name', this mode uses the normal saving - procedure and therefore obeys saving hooks. - 'auto-save-visited-file-name' is now obsolete. - - +++ - ** New behavior of 'mark-defun' implemented - Prefix argument selects that many (or that many more) defuns. - Negative prefix arg flips the direction of selection. Also, - 'mark-defun' between defuns correctly selects N following defuns (or - -N previous for negative arguments). Finally, comments preceding the - defun are selected unless they are separated from the defun by a blank - line. - - ** New command 'replace-buffer-contents'. - This command replaces the contents of the accessible portion of the - current buffer with the contents of the accessible portion of a - different buffer while keeping point, mark, markers, and text - properties as intact as possible. + ** New function 'libxml-available-p'. + This function returns non-nil if libxml support is both compiled in + and available at run time. Lisp programs should use this function to + detect built-in libxml support, instead of testing for that + indirectly, e.g., by checking that functions like + 'libxml-parse-html-region' return nil. ++++ +** New function 'fill-polish-nobreak-p', to be used in 'fill-nobreak-predicate'. +It blocks line breaking after a one-letter word, also in the case when +this word is preceded by a non-space, but non-alphanumeric character. + - * Changes in Specialized Modes and Packages in Emacs 26.1 - - *** smerge-refine-regions can refine regions in separate buffers - - *** Info menu and index completion uses substring completion by default. - This can be customized via the info-menu category in - completion-category-override. - - +++ - *** The ancestor buffer is shown by default in 3way merges. - A new option ediff-show-ancestor and a new toggle - ediff-toggle-show-ancestor. - - ** TeX: Add luatex and xetex as alternatives to pdftex - - ** Electric-Buffer-menu - - +++ - *** Key 'U' is bound to 'Buffer-menu-unmark-all' and key 'M-DEL' is - bound to 'Buffer-menu-unmark-all-buffers'. - - ** bs + * Editing Changes in Emacs 27.1 --- - *** Two new commands 'bs-unmark-all', bound to 'U', and - 'bs-unmark-previous', bound to . - - ** Buffer-menu + ** New variable 'x-wait-for-event-timeout'. + This controls how long Emacs will wait for updates to the graphical + state to take effect (making a frame visible, for example). +++ - *** Two new commands 'Buffer-menu-unmark-all', bound to 'U' and - 'Buffer-menu-unmark-all-buffers', bound to 'M-DEL'. + ** The new user option 'electric-quote-replace-double' controls + whether '"' is also replaced in 'electric-quote-mode'. If non-nil, + '"' is replaced by a double typographic quote. - ** Gnus + + * Changes in Specialized Modes and Packages in Emacs 27.1 - --- - *** The .newsrc file will now only be saved if the native select - method is an NNTP select method. + ** Dired +++ - *** A new command for sorting articles by readedness marks has been - added: 'C-c C-s C-m C-m'. + *** The new user option 'dired-create-destination-dirs' controls whether + 'dired-do-copy' and 'dired-rename-file' should create non-existent + directories in the destination. ** Ibuffer