2021-12-01 Juri Linkov * lisp/repeat.el: Use same logic for repeat-check-key and repeat-exit-timeout. * lisp/repeat.el (repeat-check-key): Use for repeat-check-key the same logic as is used for repeat-exit-timeout in repeat-post-hook (bug#51390). (repeat-post-hook): Check for repeat-exit-timeout symbol property. 2021-12-01 Juri Linkov * lisp/help.el (help--analyze-key): Prefer posn-set-point over mouse-set-point * lisp/help.el (help--analyze-key): Use posn-set-point instead of mouse-set-point that runs the hook mouse-leave-buffer-hook via mouse-minibuffer-check. Using posn-set-point also unnecessitates extra conditions added in bug#51421. * lisp/isearch.el (isearch-describe-key, isearch-describe-mode): Add precautions to not call isearch-update when the executed command exited isearch-mode (bug#51173). 2021-12-01 Stefan Kangas Bump Emacs version to 28.0.90 * README: * configure.ac: * msdos/sed2v2.inp: * nt/README.W32: Bump Emacs version to 28.0.90. 2021-12-01 Alan Mackenzie CC Mode: Recognise "struct foo {" as introducing a type declaration This fixes bug #52157. * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): If such a construct is parsed, set the flag at-type-decl which is part of the function's return value. 2021-12-01 Stefan Kangas Update authors.el for Emacs 28 * admin/authors.el (authors-aliases, authors-ignored-files) (authors-renamed-files-alist): Update for Emacs 28. 2021-11-30 Juri Linkov * lisp/repeat.el: Fix long-standing problem when a random key activates map * lisp/repeat.el (repeat-check-key): New defcustom (bug#51390). (repeat--command-property): New internal function. (repeat-check-key): New function. (repeat-post-hook): Use repeat--command-property and repeat-check-key. * test/lisp/repeat-tests.el (repeat-tests-check-key): New test. 2021-11-30 Juri Linkov * lisp/repeat.el (repeat-keep-prefix): Change default to nil. 'repeat-keep-prefix' doesn't yet have sufficient support that covers all cases in bug#51281, so it's disabled now. 2021-11-30 Juri Linkov * test/lisp/repeat-tests.el (repeat-tests-call-b): Test for commit 588caf0b27. This tests for 'repeat-map' as a variable instead of a symbol. 2021-11-30 Juri Linkov * src/callint.c (Fcall_interactively): Fix inhibit_mouse_event_check. Don't search for the next mouse event with parameters when inhibit-mouse-event-check is non-nil (bug#50067). 2021-11-30 Lars Ingebrigtsen Fix regression in gdb-frame-handler * lisp/progmodes/gdb-mi.el (gdb-frame-handler): Protect against nil fullnames (bug#52196). 2021-11-30 Yuga Ego (tiny change) Format and index concept 'predicate' in ELisp Intro * doc/lispintro/emacs-lisp-intro.texi (Wrong Type of Argument): Add index and format definition (bug#52197). 2021-11-29 Protesilaos Stavrou Remove problematic characters from modus-themes.org (bug#52126) * doc/misc/modus-themes.org (Enable and load, Font configurations for Org and others) (Note on highlight-parentheses.el, Note on god-mode.el): Update links to headings so that they no longer include the removed portions of text. (Option for color-coding success state, Option for line highlighting) (Option for line numbers, Option for parenthesis matching) (Advanced customization, Per-theme customization settings) (Case-by-case face specs using the themes' palette) (Face specs at scale using the themes' palette) (Remap face with local value, Cycle through arbitrary colors) (Override colors, Override color saturation) (Font configurations for Org and others, Configure bold and italic faces) (Custom Org user faces, Update Org block delimiter fontification) (Measure color contrast, Load theme depending on time of day) (Backdrop for pdf-tools) (A theme-agnostic hook for theme loading, Note on EWW and Elfeed fonts) (Frequently Asked Questions): Remove parentheses from headings as they can cause problems in the .texi version of the file. 2021-11-29 Andreas Schwab Avoid undefined behaviour when copying part of structure * src/dispnew.c (copy_row_except_pointers): Don't use address of subobject as starting point. (cherry picked from commit 6943786b5c1fe76ea05a3a810512bd6777883710) 2021-11-29 Stefan Kangas * Makefile.in (PREFERRED_BRANCH): Now emacs-28. 2021-11-28 Eli Zaretskii * src/coding.c (Fdecode_coding_region, Fencode_coding_region): Doc fix. 2021-11-27 Mike Kupfer Fix Subject when forwarding message with 2-line From * lisp/mh-e/mh-comp.el (mh-forwarded-letter-subject): Collapse two-line From headers into a single line (SF#266). Based on a suggestion from Lester Buck (many thanks!). 2021-11-27 Kyle Meyer Update to Org 9.5.1-11-g96d91b 2021-11-27 Eli Zaretskii * doc/lispref/commands.texi (Click Events): Fix wording (bug#52142). 2021-11-25 Robert Pluim Fix pdf generation with Texinfo 6.7 * doc/lispref/display.texi (Size of Displayed Text): Put @group inside @example (bug#52102). 2021-11-25 Eli Zaretskii Fix 'posn-at-point' near some overlays * src/xdisp.c (pos_visible_p): Fix 'posn-at-point' for positions just after a display property that draws a fringe bitmap. (Bug#52097) 2021-11-25 Narendra Joshi (tiny change) * lisp/repeat.el (repeat-post-hook): Add check symbolp rep-map. 2021-11-24 Eli Zaretskii Revert "Use @pxref when necessary" This reverts commit b4f47d2ee2203a9f22bebeb3d09e0fb3fce2f65e. Cleanups should not be done on the release branch: that's unnecessary risk. 2021-11-24 Robert Pluim Use @pxref when necessary * doc/lispref/customize.texi (Composite Types): * doc/lispref/edebug.texi (Specification List): * doc/lispref/variables.texi (Local Variables): * doc/misc/efaq.texi (Basic keys): (Informational files for Emacs): * doc/misc/flymake.texi (Locating a master file): * doc/misc/gnus.texi (Don't Panic): (Oort Gnus): * doc/misc/htmlfontify.texi (Non-interactive): * doc/misc/mh-e.texi (More About MH-E): * doc/misc/pcl-cvs.texi (Entering PCL-CVS): * doc/misc/tramp.texi (Remote processes): * doc/misc/vhdl-mode.texi (Indentation Calculation): (Custom Indentation Functions): Use @pxref when inside parens. 2021-11-24 Michael Albinus Backport Tramp fixes, don't merge * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): Use `tramp-handle-file-readable-p'. * test/lisp/net/tramp-archive-tests.el (tramp-archive-test02-file-name-dissect): Use `make-tramp-file-name'. 2021-11-23 Takesi Ayanokoji (tiny change) Fix typos in documentation * doc/lispref/anti.texi: * doc/misc/efaq.texi: Fix typos. 2021-11-22 Eli Zaretskii Fix '(space :relative-width N)' display spec w/non-ASCII chars * src/xdisp.c (produce_stretch_glyph): Use the correct face for non-ASCII characters. Support :relative-width display spec on Lisp strings, not just on buffer text. 2021-11-22 Juri Linkov * lisp/proced.el (proced-sort-header): Fix event positions (bug#1779). The logic was copied from 'tabulated-list-col-sort'. 2021-11-20 Kyle Meyer Update to Org 9.5-72-gc5d6656 2021-11-20 Eli Zaretskii Fix mouse handling with several TTY frames on MS-Windows * src/w32inevt.c (do_mouse_event): Reset the 'mouse_moved' flag of the selected frame. Without that, this flag might remain set on a TTY frame that is not displayed. 2021-11-20 Eli Zaretskii Fix temacs invocation from outside of the 'src' directory * src/emacs.c (main) [HAVE_NATIVE_COMP]: Recompute the value of native-comp-eln-load-path if about to load loadup in uninitialized Emacs. (Bug#51999) 2021-11-20 martin rudalics Fix mouse events on tab bar or tool bar when 'track-mouse' is t * lisp/mouse.el (mouse-drag-track): * lisp/mouse-drag.el (mouse-drag-drag): Set 'track-mouse' to some value neither t nor nil. * src/keyboard.c (make_lispy_position): If track_mouse is Qt, report event on tool or tab bar (Bug#51794). 2021-11-20 Po Lu Fix `browse-url-interactive-arg' for certain kinds of events * lisp/net/browse-url.el (browse-url-interactive-arg): Don't call `mouse-set-point' unless event is actually a mouse event. 2021-11-19 Michael Albinus * test/lisp/net/tramp-tests.el (tramp-get-remote-gid): Remove declaration. 2021-11-19 Michael Albinus Add upward compatibility entry in Tramp (don't merge) * lisp/net/tramp.el (tramp-file-name-for-operation): Add `abbreviate-file-name'. 2021-11-18 Juri Linkov Fix sorting of menus in `context-menu-local' (bug#50067). * lisp/menu-bar.el (menu-bar-keymap): Don't use `lookup-key' on the `keymap' arg. * lisp/mouse.el (context-menu-global): Use `lookup-key global-map' for the `keymap' arg of `menu-bar-keymap'. (context-menu-local): Use `menu-bar-keymap' to sort `keymap'. 2021-11-18 Juri Linkov Fix flyspell-correct-word selected from context menu opened with the keyboard * lisp/mouse.el (context-menu-open): Call interactively a command returned by `context-menu-map' such as `flyspell-correct-word' (bug#50067). * lisp/textmodes/flyspell.el (flyspell-correct-word): Handle the case when it's called by a key bound to `context-menu-open'. Then it should work the same way as `C-c $' typed on misspelled word where the arg `event' of `flyspell-correct-word-before-point' is nil. 2021-11-18 Robert Pluim * lisp/repeat.el (describe-repeat-maps): Print all bound keys (bug#49265). 2021-11-18 Juri Linkov * lisp/tab-bar.el: Use 'mouse-1' for history buttons like for 'add-tab' button * lisp/tab-bar.el (tab-bar-mouse-down-1, tab-bar-mouse-1): Handle clicks for 'history-back' and 'history-forward' the same way as 'add-tab' clicks. 2021-11-18 Eli Zaretskii Improve documentation of window hooks * doc/lispref/windows.texi (Window Hooks): Clarify "buffer-local functions". (Bug#51930) 2021-11-18 Eli Zaretskii Improve doc string of 'highlight-nonselected-windows' * src/xdisp.c (syms_of_xdisp) : Clarify the doc string. (Bug#51927) 2021-11-17 Stefan Kangas * admin/authors.el (authors-ignored-files): Ignore some NEWS files. 2021-11-16 Juri Linkov * lisp/tab-bar.el (tab-bar-select-tab): Add check for wc-frame (bug#51883). 2021-11-16 Juri Linkov * lisp/tab-bar.el: Doc fixes for commands bound to modifier keys. (tab-bar-select-tab-modifiers) (tab-bar-select-tab, tab-bar-switch-to-last-tab): Doc fixes. 2021-11-15 Eli Zaretskii Fix removal of fringe marks of deleted bookmarks * lisp/bookmark.el (bookmark--remove-fringe-mark): The fringe overlay is at BOL, not at POS. (Bug#51233) 2021-11-15 Juri Linkov * lisp/repeat.el (repeat-echo-message): Bind message-log-max to nil. Don't insert messages about repeatable keys in the *Messages* buffer. 2021-11-15 Robert Pluim * lisp/repeat.el (describe-repeat-maps): Use help-fns--analyze-function. Print keys bound to commands in every keymap (bug#49265) 2021-11-15 Juri Linkov * lisp/repeat.el: Detect changes in the minibuffer state (bug#47566) (repeat--prev-mb): New internal variable. (repeat-post-hook): Check the property 'repeat-map' on the symbol from 'this-command' in addition to 'real-this-command'. Don't allow repeatable maps in the activated minibuffer or in the minibuffer from another command. Set 'repeat--prev-mb' at the end. 2021-11-15 Eli Zaretskii Avoid segfaults due to freed face cache * src/xfaces.c (face_at_buffer_position): Make sure DEFAULT_FACE is usable. (Bug#51864) 2021-11-15 Stefan Kangas Doc fix; change recommended file name of custom-file * lisp/cus-edit.el (custom-file): Change file name recommendation to match Info node '(emacs) Saving Customizations'. 2021-11-14 Philip Kaludercic * lisp/net/rcirc.el (rcirc-define-command): Fix interactive-spec generation (rcirc-define-command): Wrap interactive spec in a list call. 2021-11-14 Lars Ingebrigtsen Fix `C-h k' in gnus-article-mode (don't merge) * lisp/gnus/gnus-art.el (gnus-article-describe-key): (gnus-article-describe-key-briefly): Fix `describe-key' calling convention (bug#51796). 2021-11-14 Daniel Martín Fix semantic-symref-perform-search doc string * lisp/cedet/semantic/symref/cscope.el (semantic-symref-perform-search): Fix the docstring to refer to the correct tool (bug#51846). 2021-11-14 Eli Zaretskii Add more files to be natively-compiled AOT * src/Makefile.in (elnlisp): Add emacs-lisp/gv.eln and other missing dependencies of comp.el. 2021-11-14 Lars Ingebrigtsen gnus-summary-line-format doc string clarification * lisp/gnus/gnus.el (gnus-summary-line-format): Clarify the Date part of the doc string (bug#51823). 2021-11-13 Alan Mackenzie Fix follow-scroll-down in a small buffer which starts slightly scrolled This fixes bug #51814. * lisp/follow.el (follow-scroll-down): Do away with the optimization of doing vertical-motion over only one window. Instead move over all windows, to checck for being close to point-min, and setting point accordingly. 2021-11-13 Eli Zaretskii Fix compilation on MS-Windows * src/callproc.c (emacs_spawn) : Define the label only if USABLE_POSIX_SPAWN is defined, to avoid a compiler warning. (cherry picked from commit a8fc08085110de00ebcbd67b5273a755a5cb8ea1) 2021-11-13 Philipp Stephani Use posix_spawn if possible. posix_spawn is less error-prone than vfork + execve, and can make better use of system-specific enhancements like 'clone' on Linux. Use it if we don't need to configure a pseudoterminal. Backported from commit a60053f8368e058229721f1bf1567c2b1676b239. Unlike that commit, only define USABLE_POSIX_SPAWN on macOS, because there posix_spawn is much faster than vfork. Don't merge to master. * configure.ac (HAVE_SPAWN_H, HAVE_POSIX_SPAWN) (HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR) (HAVE_POSIX_SPAWN_FILE_ACTIONS_ADDCHDIR_NP) (HAVE_POSIX_SPAWNATTR_SETFLAGS, HAVE_DECL_POSIX_SPAWN_SETSID): New configuration variables. * src/callproc.c (USABLE_POSIX_SPAWN): New configuration macro. (emacs_posix_spawn_init_actions) (emacs_posix_spawn_init_attributes, emacs_posix_spawn_init): New helper functions. (emacs_spawn): Use posix_spawn if possible. (cherry picked from commit a60053f8368e058229721f1bf1567c2b1676b239) 2021-11-13 Eli Zaretskii Improve style and comments in font-related sources * src/w32font.c (fill_in_logfont): Stylistic changes. * src/font.h (font_property_index, font_select_entity): Add/improve comments. 2021-11-12 Eli Zaretskii Improve documentation of 'decode-coding-region' * src/coding.c (Fdecode_coding_region): Doc fix. * doc/lispref/nonascii.texi (Coding System Basics) (Explicit Encoding): Explain the significance of using 'undecided' in 'decode-coding-*' functions. 2021-11-12 Lars Ingebrigtsen Fix problem with temp buffer killing in package-install-file * lisp/emacs-lisp/package.el (package-install-file): Allow killing the temporary buffer without querying (bug#51769). 2021-11-12 Lars Ingebrigtsen Fix Lisp Intro markup error * doc/lispintro/emacs-lisp-intro.texi (Insert let): Fix @code markup error (bug#51777). 2021-11-11 Eli Zaretskii Fix ACL errors with WebDAV volumes on MS-Windows * src/w32.c (acl_get_file): Handle ERROR_INVALID_FUNCTION from WebDAV. Patch from Ioannis Kappas . (Bug#51773) 2021-11-11 Aleksandr Vityazev Fix tramp-compat-file-name-concat (Bug#51754) * lisp/net/tramp-compat.el: Make `tramp-compat-file-name-concat' work like file-name-concat. (Bug#51754) 2021-11-10 Juri Linkov * lisp/vc/vc-git.el (vc-git-mergebase): More meaningful error message. Display a readable error message instead of signaling an error on nil value. 2021-11-10 Stephen Gildea time-stamp: %F is "file name" not "pathname" + other doc * lisp/time-stamp.el (time-stamp-format): doc 'file' instead of 'path'. * test/lisp/time-stamp-tests.el (formatz, format-time-offset): Clarify the difference and similarity between these two test helpers. 2021-11-09 Juri Linkov * doc/misc/eww.texi (Advanced): Fix missed variable name eww-retrieve-command. 2021-11-09 Juri Linkov * doc/emacs/windows.texi (Window Convenience): Use @code for windmove. This refers to both a command and a user option. * etc/NEWS: Add some ---. 2021-11-09 Juri Linkov * doc/emacs/maintaining.texi (Basic VC Editing): Mention Dired buffer. * doc/emacs/text.texi (Outline Mode): Replace S-TAB with with S-. * etc/NEWS: Add some missing +++/--- and move some related items closer. 2021-11-09 Juri Linkov * lisp/progmodes/prog-mode.el (prog-context-menu): Use "Go Back" (bug#38797) 2021-11-09 Stefan Kangas Revert "Fix localized display of date and time in the NS port" This reverts commit 5e05be566b0e13ce0b4e75da663fb051039f0751. This was discussed in https://debbugs.gnu.org/cgi/bugreport.cgi?bug=51321#93 2021-11-08 Juri Linkov * lisp/mouse.el (mouse-buffer-menu-mode-groups): Tighten "Version Control". Use word boundaries in the "Version Control" regexp to match mode names "Log-Edit", "Log-View", "Git-Log-View", "Change Log", "VC dir", but not "Verilog", "Prolog", "Rlogin" (bug#51337). 2021-11-08 Juri Linkov * doc/emacs/search.texi (Isearch Yank): Add isearch-forward-thing-at-point. 2021-11-07 Alan Mackenzie Amend Follow Mode to handle header lines and tab lines correctly This fixes bug #51590. list/follow.el (follow-scroll-down): Incorporate the height of the tab line into the calculation of the window height. (follow-calc-win-end): Incorporate the pixel heights of the header line and the tab line the calculation of the buffer position of the bottom screen line. 2021-11-07 Stefan Kangas * lisp/files.el (user-emacs-directory-warning): Clarify docstring. 2021-11-07 Juri Linkov * doc/emacs/frames.texi (Tab Bars): Add text about mouse and tab-bar-format Briefly describe mouse commands on the tab bar and tab-bar-format (bug#51444) 2021-11-07 Juri Linkov * doc/emacs/frames.texi (Tab Bars): Describe tab-last. 'C-9' and 'M-9' already had kindex, so describe them in the text as well (bug#51444). 2021-11-07 Jim Porter Add some unit tests for 'abbreviate-file-name' * test/lisp/files-tests.el (files-tests-abbreviate-file-name-homedir) (files-tests-abbreviate-file-name-directory-abbrev-alist): New tests. 2021-11-07 Eli Zaretskii Fix compilation MinGW warnings * src/w32.h (prepare_standard_handles, reset_standard_handles): Fix prototypes. Reported by Andy Moreton in https://lists.gnu.org/archive/html/emacs-devel/2021-11/msg00597.html. 2021-11-06 Stefan Kangas Escape '%' in filenames to fix flymake warnings * lisp/progmodes/flymake.el (flymake--log-1): Escape '%' in filenames for 'warning-type-format' so they are not interpreted as a %-sequence by 'format' later. (Bug#51549) 2021-11-06 Lars Ingebrigtsen Fix search string generation in nnimap-make-thread-query * lisp/gnus/nnimap.el (nnimap-make-thread-query): Remove text properties before constructing the search string (bug#49926). 2021-11-06 Kyle Meyer Update to Org 9.5-68-g77e2ec 2021-11-06 Michael Albinus Fix dbus-test04-register-method on CentOS (Bug#51369) * test/lisp/net/dbus-tests.el (dbus-test04-register-method): Fix problem on CentOS. (Bug#51369) 2021-11-06 Jonas Bernoulli * lisp/transient.el: Update to package version v0.3.7-11-g7f5520b3. 2021-11-06 Eli Zaretskii Clarify "text area of a window" in the documentation * src/keyboard.c (Fposn_at_x_y): Clarify that the Y coordinate includes the header-line and the tab-line. (Bug#51590) * doc/lispref/windows.texi (Window Sizes, Splitting Windows) (Textual Scrolling, Coordinates and Windows): Fix/remove improper or confusing uses of "text area" of a window. 2021-11-06 Stefan Kangas Improve docstring of kmacro-set-format * lisp/kmacro.el (kmacro-set-format): Improve docstring. (kmacro-insert-counter, kmacro-display-counter) (kmacro-set-counter, kmacro-add-counter): Add cross-references to the info manual. 2021-11-05 Stefan Kangas Revert "* lisp/wid-edit.el (widget-field): Add subtle border to face." This reverts commit 8b024a6ff10f7907445ea60c4db8355638616ed1. This lead to some alignment issues. (Bug#51550) Don't merge to master, where we will continue investigating. 2021-11-05 Stefan Kangas * etc/PROBLEMS: Mention X forwarding slowdowns. (Bug#7092) 2021-11-04 Stefan Kangas * lisp/custom.el (defgroup): Document the :prefix keyword. 2021-11-04 Thibault Polge Document ibuffer-auto-mode in ibuffer-mode doc string * lisp/ibuffer.el (ibuffer-mode): Mention ibuffer-auto-mode in the ibuffer-mode doc string (bug#51584). 2021-11-04 Juri Linkov * doc/emacs/frames.texi (Tab Bars): Reorder toggle-frame-tab-bar. 2021-11-04 Stefan Kangas Use current face foreground for SVG icons in customize It turns out these few icons were missed when the color and size information was removed from the SVG icons that replaced XPM icons for Customize buffer. * etc/images/down.svg: * etc/images/left.svg: * etc/images/right.svg: * etc/images/up.svg: Don't define foreground; this means they will use the foreground of the currently defined face instead. (Bug#51556) (cherry picked from commit 11702a6dd7cb8286f28b7cb986057d2d2c66a914) 2021-11-03 Juri Linkov * doc/emacs/building.texi (Compilation Mode): Add next-error-message-highlight The variable 'next-error-message-highlight' already has vindex, so describe it in the text as well (bug#51444). 2021-11-03 Daniel Martín Document a macOS error message when opening Emacs * etc/PROBLEMS: Document a potential error message when opening Emacs on macOS for the first time. 2021-11-03 Eli Zaretskii Fix header-line and tab-line when mode-line-compact is set * src/xdisp.c (display_mode_line): Make 'mode-line-compact' apply only to mode lines. (Bug#51558) 2021-11-03 Mattias Engdegård Add manual section about how to avoid regexp problems Help users affected by our NFA engine's stack overflows and occasional poor performance, replacing old text that was more limited in scope. * doc/lispref/elisp.texi (Top): * doc/lispref/searching.texi (Regular Expressions): Add menu entries. (Regexp Problems): New node. (Regexp Special): * etc/PROBLEMS: Remove superseded text. 2021-11-03 Phillip Lord Clarify build environment * admin/nt/dist-build/README-scripts: 2021-11-03 Phillip Lord Clarify build directory structure * admin/nt/dist-build/README-scripts: Clarify build directory structure 2021-11-02 Andrea Corallo * src/pdumper.c (dump_do_dump_relocation): Add sanity check. 2021-11-01 Juri Linkov * lisp/progmodes/prog-mode.el (prog-context-menu): Use text-mode-context-menu. 2021-11-01 Michael Albinus Fix bug#51369 * test/lisp/net/dbus-tests.el (dbus-test04-register-method): Skip on hydra. 2021-11-01 Michael Albinus Adapt arguments of `tramp-make-tramp-file-name' * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted): * lisp/url/url-tramp.el (url-tramp-convert-url-to-tramp): Use `make-tramp-file-name'. * lisp/obsolete/rcompile.el (remote-compile): Pacify byte-compiler. 2021-11-01 Lars Ingebrigtsen Fix typo in describe-map-tree doc string * lisp/help.el (describe-map-tree): Fix typo in doc string. 2021-11-01 Ken Brown Drop support for native compilation on 32-bit Cygwin * configure.ac (cygwin32-native-compilation): New option. [i686-pc-cygwin]: Don't allow native compilation unless that option is specified. (Bug#50666) 2021-10-31 Lars Ingebrigtsen Fix rendering of title-less tags in shr * lisp/net/shr.el (shr-tag-abbr): Render tags that have no title (bug#51525). 2021-10-31 Eli Zaretskii Avoid signaling errors in lookup-key * src/keymap.c (Flookup_key): Handle KEY vectors where not all components are symbols. (Bug#51527) Do not merge to master. 2021-10-31 Daniel Martín Fix localized display of date and time in the NS port * src/nsterm.m (ns_init_locale): If not already set, set LC_ALL to the current locale ID so that dates, currencies, etc. use the settings configured in the operating system. (Bug#51321) 2021-10-31 Eli Zaretskii Fix display glitches with side-by-side windows on TTY frames * src/dispnew.c (adjust_glyph_matrix, prepare_desired_row): Leave room for the border glyph only if the window does actually have the right margin. (Bug#51521) 2021-10-30 Carlos Pita Avoid replacing common prefix with ellipsis * lisp/progmodes/python.el (python-shell-completion-native-setup): Configure readline not to suppress common prefixes. (Bug#51218) 2021-10-30 Eli Zaretskii Improve documentation of string truncation APIs * doc/lispref/display.texi (Size of Displayed Text): * lisp/international/mule-util.el (truncate-string-to-width): Document caveats of using 'truncate-string-to-width' when character composition is involved. * lisp/emacs-lisp/subr-x.el (string-limit): * doc/lispref/strings.texi (Creating Strings): Improve the documentation of 'string-limit'. 2021-10-29 Imran Khan (tiny change) * lisp/textmodes/css-mode.el: Fix typo. (Bug#51488) 2021-10-29 Lars Ingebrigtsen Make message/rfc822 on buttons work again in Gnus * lisp/gnus/gnus-art.el (gnus-article-mode): Set mm-inline-message-prepare-function buffer-locally so that it works both when inlining rfc822 and hitting the MIME button (bug#51388). (gnus-mime--inline-message): Factor out into own function. (gnus-mime-display-single): From here. 2021-10-29 Glenn Morris * lisp/loadup.el: Unbreak build. 2021-10-29 Lars Ingebrigtsen Move lisp/shorthands.el to lisp/emacs-lisp/shorthands.el 2021-10-29 Michael Albinus Some Tramp changes, mainly in tramp-tests.el * doc/misc/tramp.texi (External packages): Don't use Tramp internals. * lisp/net/tramp-gvfs.el (tramp-gvfs-handler-mounted-unmounted): Protect `tramp-make-tramp-file-name' call. * lisp/net/tramp.el (tramp-make-tramp-file-name): Set advertised calling conventions. * test/lisp/net/tramp-tests.el (tramp-test18-file-attributes): Adapt test. (tramp--test-supports-processes-p): New defun. (tramp-test28-process-file, tramp-test29-start-file-process) (tramp-test30-make-process, tramp-test32-shell-command) (tramp-test32-shell-command-dont-erase-buffer) (tramp-test34-explicit-shell-file-name, tramp-test35-exec-path) (tramp-test44-asynchronous-requests): Use it. 2021-10-29 Gregory Heytings Make hieroglyphs display correctly with existing fonts * etc/HELLO: Remove hieroglyph format control characters. * lisp/language/misc-lang.el: Add a rule to compose Egyptian hieroglyphs even without Unicode format control characters. 2021-10-29 Eli Zaretskii Clarify "default face attributes" in the ELisp manual * doc/lispref/display.texi (Defining Faces): Add index entries for face symbol properties. (Attribute Functions): Clarify "default face attribute values" wrt 'face-all-attributes' and 'face-attribute'. (Bug#51465) 2021-10-28 Lars Ingebrigtsen Make `C-u RET' work again * lisp/simple.el (newline): Fix regression introduced by d1aacceae9 (bug#51459). 2021-10-28 Jan Synacek (tiny change) Fix typos in the manual and in a comment * lisp/minibuffer.el (completion-pcm--hilit-commonality): * doc/lispintro/emacs-lisp-intro.texi (Mode Line): Fix typos (bug#51434). 2021-10-28 Eli Zaretskii Avoid assertion violations in 'lookup-key' * src/keymap.c (Flookup_key): Don't call ASIZE unless KEY is a vector. This avoids assertion violations when KEY is a string. 2021-10-28 Stefan Kangas image-dired: Unreverse accidentally reversed menus * lisp/image-dired.el (image-dired-thumbnail-mode-map) (image-dired-display-image-mode-map, image-dired-minor-mode-map): In Emacs 26.1 (commits b905454680c7 and bed0373855ea), the menus were converted to use 'easy-menu-define', but they were reversed in the process. Unreverse the menus. (Bug#51446) 2021-10-28 Stefan Kangas Be more allowing when looking for menu-bar items Don't merge to master. This is a safe-for-release fix for Bug#50752. * src/keymap.c (lookup_key_1): Factor out function from Flookup_key. (Flookup_key): Be case insensitive when looking for Qmenu_bar items. (Bug#50752) * test/src/keymap-tests.el (keymap-lookup-key/mixed-case) (keymap-lookup-key/mixed-case-multibyte): New tests. 2021-10-27 Juri Linkov * lisp/textmodes/text-mode.el (text-mode-context-menu): Rename recently added. 2021-10-27 Robert Pluim Allow automatic use of color fonts for emoji on macOS * src/macfont.m (macfont_list): Don't exclude color fonts when the fontspec has an 'emoji' script specification. 2021-10-27 Eli Zaretskii Fix help commands for menu-bar menus * lisp/help.el (help--analyze-key): Fix "C-h c" and "C-h k" on menu-bar menu items. (Bug#51421) 2021-10-26 Stefan Kangas Improve function documentation with text from XDG BDS spec * lisp/xdg.el (xdg-config-home, xdg-cache-home, xdg-data-home) (xdg-runtime-dir, xdg-config-dirs, xdg-data-dirs): Copy in the text from the XDG Base Directory Specification to better explain what these functions return. 2021-10-25 Jonas Bernoulli * lisp/transient.el: Update to package version 0.3.7. 2021-10-25 Eli Zaretskii Revert "Fix a typo in emacs-lisp-intro.texi" This reverts commit 98eb6d783a482cd7ebca7ec656b0775b82c68e57. I've consulted with Richard Stallman about this, and he says that the original wording, "kinds of atom", is both correct and more elegant writing. So I'm restoring the original text. * doc/lispintro/emacs-lisp-intro.texi (Lisp Atoms): Undo the fix of a "typo" that wasn't a typo. (Bug#51271) 2021-10-25 Robert Pluim * doc/lispref/functions.texi (Mapping Functions): Use #' when mapping. 2021-10-25 Miha Rihtaršič Fix issue with interpreting ANSI codes in eshell * lisp/eshell/esh-mode.el (eshell-mode): Make window point advance on insertion. (eshell-output-filter): Don't use insert-before-markers (bug#45380). 2021-10-25 Stefan Kangas image-dired: Doc fix to better explain thumbnail generation * doc/emacs/dired.texi (Image-Dired): Improve description by explaining that the generation of thumbnails is asynchronous. 2021-10-25 Stefan Kangas Clarify two image-dired docstrings * lisp/image-dired.el (image-dired-dir): Doc fix; clarify that thumbnails will be saved in "$XDG_CACHE_HOME/thumbnails", as per the Thumbnail Managing Standard. (image-dired-thumb-size): Doc fix; clarify that this option will be ignored when using the Thumbnail Managing Standard. 2021-10-25 Lars Ingebrigtsen Fix flymake example backend conditions in the manual * doc/misc/flymake.texi (An annotated example backend): Also react to `signal' process statuses (bug#51380). 2021-10-24 Stefan Kangas * etc/PROBLEMS: Mention problems with regexp matcher. (Bug#18577) 2021-10-24 Juri Linkov * test/lisp/repeat-tests.el: New file. 2021-10-24 Juri Linkov * lisp/tab-bar.el (tab-bar-move-repeat-map): Fix alias binding of tab-move. (tab-bar-move-tab-backward): Put 'repeat-map' symbol property. 2021-10-24 Stefan Kangas Use restrictive umask when creating image-dired data * lisp/image-dired.el (image-dired-dir) (image-dired-sane-db-file): Create thumbnail directory and .image-dired_db with umask 077. This avoids creating world readable copies of private data, and is in fact mandated by the Thumbnail Managing Standard that we aim to support. 2021-10-24 Eli Zaretskii Fix compilation errors with MinGW64 GCC 11 * lib-src/ntlib.c (_GL_ATTRIBUTE_MALLOC) (_GL_ATTRIBUTE_DEALLOC_FREE): Define to avoid compilation errors with MinGW64 GCC 11. Suggested by Andy Moreton . Do not merge to master. 2021-10-24 Ihor Radchenko Doc fix for concat * src/fns.c (Fconcat): Note that composition values may not remain eq in return value of concat. (Bug#48740) 2021-10-24 Stefan Kangas * lisp/image-dired.el (image-dired-external-viewer): Support feh. 2021-10-24 Stefan Kangas Update publicsuffix.txt from upstream * etc/publicsuffix.txt: Update from https://publicsuffix.org/list/public_suffix_list.dat dated 2021-10-16 16:33:47 GMT. 2021-10-24 Stefan Kangas Refer to the info node on keymaps in map-keymap docstring * src/keymap.c (Fmap_keymap): Doc fix; add a reference to the Info node '(elisp) Keymaps'. (Bug#30958) 2021-10-23 Stefan Kangas Clarify abnormal hook documentation * doc/lispref/hooks.texi (Standard Hooks): * doc/lispref/modes.texi (Hooks): Clarify wording of "abnormal hook" documentation. (Bug#34588) 2021-10-23 Kyle Meyer Update to Org 9.5-59-g52e6f1 2021-10-23 Stefan Kangas Improve documentation of cl-reduce * doc/misc/cl.texi (Mapping over Sequences): Change the explanation of 'cl-reduce' so you don't need to have a major in mathematics to understand it. (Bug#24014) 2021-10-23 Stefan Kangas Improve documentation of apply-partially * doc/lispref/functions.texi (Calling Functions): Improve documentation of 'apply-partially' to be slightly more clear with regards to function arity. (Bug#17623) 2021-10-23 Michael Albinus Fix typos * doc/emacs/cmdargs.texi: * etc/DEBUG: * etc/NEWS: Fix typos. 2021-10-23 Michael Albinus Revert commit 225ca617b7, and apply another fix * lisp/minibuffer.el (read-file-name-default): Revert commit 225ca617b7. (Bug#50976). * lisp/shell.el (shell): Remove volume letter for remote shell file name. (Bug#49229) 2021-10-23 Stefan Kangas Fix documentation of posn-at-x-y * doc/lispref/commands.texi (Accessing Mouse): Fix documentation of 'posn-at-x-y' to match docstring. (Bug#15783) 2021-10-22 Robert Pluim Improve some NEWS entries * etc/NEWS: Improve some NEWS entries. 2021-10-22 Robert Pluim Improve documentation of syntax-ppss-context slightly * doc/lispref/syntax.texi (Parser State): Document all possible return values from 'syntax-ppss-context'. 2021-10-22 Robert Pluim Move some xwidget entries * etc/NEWS: Move xwidget entries to correct location. 2021-10-22 Stephen Gildea time-stamp-tests: improvements to test macros test/lisp/time-stamp-tests.el: Update macro declarations. (formatz-generate-tests): Don't nconc onto a constant list. Tests now run 12% faster in batch mode. 2021-10-22 Itai Y. Efrat Fix rfc6068-parse-mailto-url autoload * lisp/net/browse-url.el (rfc6068-parse-mailto-url): Fix autoload cookie (bug#51333). 2021-10-22 Lars Ingebrigtsen Regexp-quote github domains in bug-reference * lisp/progmodes/bug-reference.el (bug-reference--build-forge-setup-entry): Regexp-quote the domain (bug#51316). 2021-10-22 Lars Ingebrigtsen Ensure valid end/beginning lines in message-mark-inserted-region * lisp/gnus/message.el (message-mark-inserted-region): Ensure there's a newline before inserting the end line (bug#51324). 2021-10-22 Robert Pluim * etc/NEWS: Improve 'repeat-mode' entry. * lisp/repeat.el (repeat-keep-prefix): Expand description. * lisp/net/eww.el (eww-retrieve-command): Add :tag. 2021-10-22 Stefan Kangas Add description of cards to etc/refcards/README * etc/refcards/README: List all the generated reference cards, including their translations. (Bug#8932) 2021-10-22 Martin Rudalics Fix 'calculate-lisp-indent' when "[" starts containing sexp (Bug#51312) * lisp/emacs-lisp/lisp-mode.el (calculate-lisp-indent): Handle arbitrary paren syntax after skipping whitespace backwards within containing sexp (Bug#51312). 2021-10-22 Stefan Kangas Fix typo in doc/emacs/anti.texi * doc/emacs/anti.texi (Antinews): Fix typo. (Bug#51325) Reported by Po Lu . 2021-10-22 Stephen Gildea Update doc of Edebug specification for macros doc/lispref/edebug.texi: Update documentation of Edebug specification: - Do not document "0" as a recommended shortcut for non-instrumented arguments; nobody knows about nor uses this, so don't encourage it. - Add an example equivalent to (declare (debug (&rest sexp))). 2021-10-21 Eli Zaretskii Fix non-interactive behavior of 'kill-region' * lisp/simple.el (kill-region): Actually ignore BEG and END when REGION is non-nil. Doc fix. (Bug#51320) 2021-10-21 Juri Linkov * test/lisp/dabbrev-tests.el: Use 'kbd' for readable keys. (dabbrev-expand-test, dabbrev-completion-test) (dabbrev-completion-test-with-argument): Use 'kbd' to format keys for 'execute-kbd-macro'. (dabbrev-expand-test): Fix docstring. 2021-10-21 Juri Linkov * lisp/menu-bar.el (menu-bar-keymap): Add optional arg KEYMAP (bug#50067). * lisp/mouse.el (context-menu-global): Use 'menu-bar-keymap' with its arg KEYMAP set to 'global-map'. 2021-10-21 Lars Ingebrigtsen Fix todo-mode AOT test failures (bug#51308) Fix hi-lock AOT test failures (bug#51308) 2021-10-21 Lars Ingebrigtsen Fix socks test * test/lisp/net/socks-tests.el (socks-tests-v4-basic): Fix failure under native-comp (bug#51308). 2021-10-20 Juri Linkov * lisp/help.el (help--analyze-key): Add new arg BUFFER (bug#51173). * lisp/help.el (describe-key): Use BUFFER as arg for help--analyze-key. (describe-key-briefly): Change arg UNTRANSLATED deprecated in 27.1 to BUFFER. * lisp/gnus/gnus-art.el (gnus-article-describe-key) (gnus-article-describe-key-briefly): Call describe-key and describe-key-briefly with first arg as a cons with raw keys, and the BUFFER arg set to the current buffer. 2021-10-20 Juri Linkov Improve docstrings and NEWS item of 'repeat-mode' * lisp/repeat.el (repeat-exit-timeout, repeat-echo-function) (repeat-in-progress, repeat-map): Update docstrings. 2021-10-20 Juri Linkov * lisp/tab-bar.el (tab-bar-menu-bar): New command (bug#51247). (tab-bar-format): Rename option 'tab-bar-format-menu-global' to 'tab-bar-format-menu-bar'. (tab-bar-format-menu-bar): Rename from 'tab-bar-format-menu-global'. 2021-10-20 Po Lu Display a tab bar item as sunken when appropriate When the mouse pointer is pressed on the tab bar, moved out of the tab bar, and moved back in, it would be more appropriate to behave like other programs by displaying the item as sunken. * src/xdisp.c (note_tab_bar_highlight): Display item as sunken if the mouse pointer returns to the tab bar down. 2021-10-20 Po Lu Fix tab bar item highlight when a mouse click is dropped * src/xdisp.c (note_mouse_highlight): Clear last_tab_bar_item if the movement wasn't made on top of the tab bar. 2021-10-20 Stefan Kangas Refer to mouse-highlight from make-pointer-invisible docstring * src/frame.c (syms_of_frame) : Doc fix; add reference to 'mouse-highlight'. (Bug#42889) 2021-10-20 Robert Pluim * etc/PROBLEMS: Add hex codepoint for NO-BREAK SPACE 2021-10-20 Robert Pluim Describe how to debug fontconfig issues * etc/PROBLEMS: Add FC_DEBUG usage pointers. 2021-10-20 Michael Albinus Adapt Tramp tests * test/lisp/net/tramp-archive-tests.el (tramp-archive-test45-auto-load): Adapt code snippet. * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) (tramp-test30-make-process): Adapt tests. (tramp--test-supports-set-file-modes-p): Renamed from `tramp--test-supports-file-modes-p'. Adapt all callees. (tramp-test35-exec-path): Use it. 2021-10-20 Jim Porter Convert ANSI color definitions in themes to use faces (e.g. 'ansi-color-red') * etc/themes/dichromacy-theme.el: * etc/themes/leuven-theme.el: * etc/themes/misterioso-theme.el: * etc/themes/tango-theme.el: * etc/themes/tango-dark-theme.el: * etc/themes/wombat-theme.el: Convert ANSI color definitions to use faces. 2021-10-20 Lars Ingebrigtsen Revert "Revert back to using ESC as viper-ESC-key again" This reverts commit 5d522b430bd5ecfb8f082906cd634883dbb68f3e. The change led to M-x not working in non-gui Emacsen (bug#51253). 2021-10-19 Alan Third Fix inset rectangle corners when sides aren't drawn (bug#51251) * src/nsterm.m (ns_draw_relief): Make the inner rectangle line up with the outer rectangle's edges where the edges aren't drawn. 2021-10-19 Jan Synacek (tiny change) Don't use color escape sequences in vc-git-expanded-log-entry * lisp/vc/vc-git.el (vc-git-expanded-log-entry): Use '--no-color' flag in git invocation. (Bug#51262) 2021-10-19 Michael Albinus Code cleanup in tramp-tests.el * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) (tramp-test30-make-process): Extend tests. (tramp--test-out-of-band-p): New defun. (tramp--test-windows-nt-and-out-of-band-p) (tramp-test42-utf8-with-stat, tramp-test42-utf8-with-perl) (tramp-test42-utf8-with-ls): Use it. (tramp--test-windows-nt-or-smb-p): Use `tramp--test-windows-nt-p'. 2021-10-19 Robert Pluim * admin/notes/unicode: Refer to Unicode's emoji-style.txt 2021-10-19 Robert Pluim Handle VS-16 correctly for non-emoji codepoints * admin/unidata/blocks.awk: Remove emoji overrides for codepoints with Emoji_Presentation = No, they're no longer necessary. * lisp/composite.el: Remove #xFE0F (VS-16) from the range handled by `compose-gstring-for-variation-glyph' so it can be handled by `font_range'. * src/composite.c (syms_of_composite): New variable `auto-composition-emoji-eligible-codepoints'. * admin/unidata/emoji-zwj.awk: Generate value for `auto-composition-emoji-eligible-codepoints'. Add `composition-function-table' entries for 'codepoint + U+FE0F' for them. * src/font.c (codepoint_is_emoji_eligible): New function to check if we should try to use the emoji font for a codepoint. (font_range): Use it. 2021-10-19 Tassilo Horn Adjust bug-reference-bug-regexp default values to match only at beg of word Previously, the "bug 1" in "(debug 1)" has also been highlighted. * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp) (bug-reference--setup-from-vc-alist,bug-reference-setup-from-mail-alist) (bug-reference-setup-from-irc-alist): Adjust bug-reference-bug-regexp default values to match only at the beginning of a word. 2021-10-19 Stefan Kangas Fix a typo in emacs-lisp-intro.texi * doc/lispintro/emacs-lisp-intro.texi (Lisp Atoms): Fix typo. Reported by Mor Zahavi . (Bug#51271) 2021-10-18 Michael Albinus Fix some Tramp problems * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): Use `tramp-adb-handle-file-executable-p' and `tramp-adb-handle-file-readable-p'. (tramp-adb-handle-file-executable-p) (tramp-adb-handle-file-readable-p): New defuns. (tramp-adb-handle-file-writable-p): Simplify. (tramp-adb-handle-make-process): Handle :filter being t. (tramp-adb-find-test-command): Remove. * lisp/net/tramp-sh.el (tramp-sh-handle-file-readable-p): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-file-readable-p): * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Use `tramp-handle-file-readable-p'. (tramp-gvfs-handle-file-executable-p): Do not check whether file exists, this is done in `tramp-check-cached-permissions'. (tramp-gvfs-handle-file-readable-p): Remove. * lisp/net/tramp.el (tramp-error): Move binding of `inhibit-message' ... (tramp-signal-hook-function): ... here. (tramp-handle-access-file): Rewrite. (tramp-handle-file-readable-p): New defun. (tramp-handle-make-process): Setting :filter to t works since Emacs 29.1 only. * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory) (tramp-test18-file-attributes): Extend tests. 2021-10-18 Michael Albinus Adapt Tramp manual * doc/misc/tramp.texi: Use @uref instead of @url. (Frequently Asked Questions): Adapt ELPA references. 2021-10-18 Martin Rudalics Further fixes to Elisp manual * doc/lispref/frames.texi (Frame Layout): Index "tab bar" instead of "internal tab bar". (Implied Frame Resizing): Remove irritating hyphens. * doc/lispref/windows.texi (Windows and Frames): Remove paragraph relating 'minibuffer-window' to 'window-list'. 2021-10-18 Alan Mackenzie * lisp/progmodes/cc-engine.el (c-forward-decl-or-cast-1): check type-start Check type-start is non-nil at L659 of the function. 2021-10-18 Juri Linkov Rename tab-bar-drag-maybe to tab-bar--dragging-in-progress * lisp/tab-bar.el (tab-bar--event-to-item, tab-bar-mouse-down-1) (tab-bar-mouse-move-tab): Rename tab-bar-drag-maybe to tab-bar--dragging-in-progress. * src/xdisp.c (note_mouse_highlight): Rename tab_bar_drag_maybe to tab_bar__dragging_in_progress. 2021-10-18 Mattias Engdegård Fix xref elisp identifier namespace mistake Pressing `M-.` on ALPHA in (let ((ALPHA BETA)) ...) would incorrectly search for ALPHA as a function rather than a variable. * lisp/progmodes/elisp-mode.el (elisp--xref-infer-namespace): Fix logic. * test/lisp/progmodes/elisp-mode-tests.el (elisp-mode-infer-namespace): Add test case. 2021-10-18 Eli Zaretskii Minor fixes for recent changes in ELisp manual * doc/lispref/windows.texi (Basic Windows, Windows and Frames) (Selecting Windows): * doc/lispref/objects.texi (Window Type): * doc/lispref/frames.texi (Input Focus, Frame Layout): Fix wording, punctuation, and indexing. 2021-10-18 Lars Ingebrigtsen Fix example in calc manual * doc/misc/calc.texi (Arithmetic Tutorial): Fix sign in the example (bug#51265). 2021-10-18 Martin Rudalics Rewrites of Elisp manual including tab-bar and tab-line changes * doc/lispref/buffers.texi (Current Buffer, Buffer List): Update references to 'selected-window'. * doc/lispref/elisp.texi (Top): Move up Selecting Windows section in front of Window Sizes section. * doc/lispref/frames.texi (Creating Frames): Say window system instead of windowing system. (Frame Layout): Add Tab Bar to layout. (Layout Parameters): Add 'tab-bar-lines'. (Input Focus): Say window system window instead of window manager window. Fix reference to 'selected-window'. * doc/lispref/objects.texi (Window Type): Minor rewrite. * doc/lispref/windows.texi (Basic Windows): Rewrite. Settle on term 'window system window' for disambiguation with our windows. Move 'selected-window' description to Selecting Windows section. Move schematic of window structure here. Use 'decorations' for objects outside the window body. Say that the areas reserved for continuation and truncation glyphs, vertical dividers and line numbers are part of the window body. (Windows and Frames): Minor rewrite, adding and fixing some cross references. Move live window schematic to 'Basic Windows' section. (Selecting Windows): Move section in front of Window Sizes section. Move description of 'selected-window' here. Move up description of 'frame-selected-window' and 'set-frame-selected-window'. Update and move description of 'window-bump-use-time' here. (Window Sizes): Throughout use the term 'decorations' instead of enumerating them individually. Add 'window-tab-line-height' description. (Resizing Windows): Again use the term 'decorations' instead of enumerating them individually. (Splitting Windows): Minor fix. (Cyclic Window Ordering): Improve descriptions of 'get-lru-window' and 'get-mru-window'. Move 'window-bump-use-time' to Selecting Windows section. (Coordinates and Windows, Window Configurations): Once more use the term 'decorations' instead of enumerating them individually. * src/window.c (Fwindow_bump_use_time): Move after 'window-use-time'. Make it work for live windows only. Make WINDOW argument optional. Update doc-string. 2021-10-17 Juri Linkov * lisp/tab-bar.el: Improve docstrings (bug#51247) * lisp/tab-bar.el (tab-bar--key-to-number) (tab-bar--event-to-item, tab-bar--format-tab-group) (tab-bar--current-tab-make): Improve docstrings. (switch-to-buffer-other-tab): Obsolete the arg NORECORD. 2021-10-17 Juri Linkov * lisp/tab-bar.el (tab-bar-mouse-move-tab): Don't drag tab to itself. 2021-10-17 Martin Rudalics Add tab-bar-drag-maybe for indication of tab dragging (bug#50993) * lisp/tab-bar.el (tab-bar--event-to-item) (tab-bar-mouse-move-tab): Set tab-bar-drag-maybe to nil. (tab-bar-mouse-down-1): Set tab-bar-drag-maybe to t. * src/xdisp.c (note_mouse_highlight): Set cursor to 'hand_cursor' when tab_bar_drag_maybe is true. (syms_of_xdisp): New variable tab-bar-drag-maybe. 2021-10-17 Juri Linkov * lisp/tab-bar.el: Add a new tab on [mouse-1] instead of [down-mouse-1] * lisp/tab-bar.el (tab-bar-mouse-down-1): Rename from tab-bar-mouse-select-tab. Ignore 'add-tab'. (tab-bar-mouse-1): Rename from tab-bar-mouse-close-tab-from-button. Use binding of 'add-tab'. (tab-bar-map): Rebind [down-mouse-1] from tab-bar-mouse-select-tab to tab-bar-mouse-down-1, and [mouse-1] from tab-bar-mouse-close-tab-from-button to tab-bar-mouse-1 (bug#51246). 2021-10-17 Juri Linkov Add new and fix existing docstrings in tab-bar.el and tab-line.el (bug#51247) * lisp/tab-bar.el (tab-bar--key-to-number) (tab-bar--event-to-item, tab-bar--format-tab) (tab-bar--format-tab-group, tab-bar--tab, tab-bar--current-tab) (tab-bar--current-tab-make): Add/fix docstrings. 2021-10-17 Po Lu Add tab bar support to the nextstep port * src/nsfns.m (ns_change_tab_bar_height): New function. (ns_set_tab_bar_lines): Check tab bar height and set tab bar accordingly. * src/nsterm.m (ns_clear_under_internal_border): Clear internal border correctly when there is a tab bar. (ns_create_terminal): Add ns_change_tab_bar_height. (mouseDown): Handle tab bar mouse click events. 2021-10-17 Alan Third Fix potential buffer overflow (bug#50767) * src/image.c (svg_load_image): Check how many bytes were actually written to the buffer. Don't check xmalloc return value as xmalloc doesn't return if it fails. 2021-10-17 Eli Zaretskii Improve doc strings in tab-line.el * lisp/tab-line.el (tab-line-tab-name-function) (tab-line-tab-name-truncated-buffer, tab-line-tabs-mode-buffers) (tab-line-tabs-buffer-group-function) (tab-line-tabs-buffer-group-sort-function) (tab-line-tabs-buffer-groups, tab-line-tab-name-format-function) (tab-line-tab-name-format-default, tab-line-format-template) (tab-line-tab-face-inactive-alternating) (tab-line-tab-face-special, tab-line-tab-face-modified) (tab-line-format, tab-line-auto-hscroll, tab-line-hscroll-right) (tab-line-hscroll-left, tab-line-new-tab, tab-line-select-tab) (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab) (tab-line-close-tab-function, tab-line-close-tab) (tab-line-tab-context-menu, tab-line-context-menu) (tab-line-mode, tab-line-exclude-modes, tab-line-mode--turn-on): Add or fix doc strings. 2021-10-17 Eli Zaretskii More documentation fixes in tab-bar.el * lisp/tab-bar.el (tab-bar-detach-tab, tab-bar-move-window-to-tab) (tab-bar-new-tab-to, tab-bar-new-tab, tab-bar-close-tab-select) (tab-bar-close-last-tab-choice, tab-bar-tab-pre-close-functions) (tab-bar-close-tab, tab-bar-close-tab-by-name) (tab-bar-close-other-tabs, tab-bar-rename-tab) (tab-bar-rename-tab-by-name, tab-bar-move-tab-to-group) (tab-bar-change-tab-group, tab-bar-close-group-tabs) (tab-switcher-next-line, tab-switcher-prev-line) (tab-switcher-unmark, tab-switcher-delete, tab-switcher-select) (tab-bar-get-buffer-tab, display-buffer-in-tab) (display-buffer-in-new-tab, switch-to-buffer-other-tab) (find-file-other-tab, find-file-read-only-other-tab): Doc fixes. 2021-10-17 Eli Zaretskii Improve doc strings of tab-bar commands * lisp/tab-bar.el (tab-bar-mouse-select-tab) (tab-bar-mouse-move-tab, tab-bar-mouse-close-tab-from-button) (tab-bar-mouse-close-tab, tab-bar-mouse-context-menu) (tab-bar-switch-to-next-tab, tab-bar-switch-to-prev-tab) (tab-bar-switch-to-last-tab, tab-bar-switch-to-recent-tab) (tab-bar-move-tab-backward, tab-bar-move-tab) (tab-bar-move-tab-to-frame): Add/fix doc strings. 2021-10-17 Stefan Kangas Fix a semantic test on some macOS machines * test/lisp/cedet/semantic/bovine/gcc-tests.el (semantic-gcc-test-output-parser-this-machine): Fix test on some macOS machines where running "gcc" runs "llvm" instead. 2021-10-16 Kyle Meyer Update to Org 9.5-57-g9bc3a2 2021-10-16 Stefan Kangas Recommend against using uce.el * lisp/mail/uce.el: Recommend against its use. (Bug#46472) Do not merge to master. 2021-10-16 Eli Zaretskii Avoid aborts when a thread is signaled while "waiting for input". * src/process.c (kbd_is_ours): New function. (wait_reading_process_output): Set 'waiting_for_input' only if the current thread is monitoring the keyboard descriptor. See also https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg01180.html. (Bug#51229) 2021-10-16 Philipp Stephani Improve documentation string for 'compilation-error-regexp-alist'. * lisp/progmodes/compile.el (compilation-error-regexp-alist): Clarify behavior when TYPE is a cons cell. 2021-10-16 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix target dir. 2021-10-16 Eli Zaretskii Fix removal of fringe indication of bookmarks * lisp/bookmark.el (bookmark--remove-fringe-mark): Fix off-by-one error in looking for bookmark-related overlays. (Bug#51233) 2021-10-15 Stefan Kangas Prefer "graphical displays" to "X terminals" in documentation * doc/lispref/objects.texi (Ctl-Char Syntax): Fix incorrect remark; some text terminals can generate ASCII control characters. (Other Char Bits): * lisp/bindings.el: * lisp/gnus/gnus-undo.el (gnus-undo-mode-map): Say "graphical display" and "GUI display" instead of "X terminal"; the latter term is archaic. (Bug#51217) 2021-10-15 Michael Albinus Precise documentation of file-notify-add-watch * doc/lispref/os.texi (File Notifications): * lisp/filenotify.el (file-notify-add-watch): Precise, that watching a directory includes reports on file changes for some backends. (Bug#51146) 2021-10-15 Martin Rudalics Fixes to account for windows' tab lines * doc/lispref/display.texi (Size of Displayed Text): Fix entry on 'window-text-pixel-size'. * lisp/window.el (window--dump-window): Dump tab-line-height and scroll-bar-height too. (window--min-size-1): Take 'window-tab-line-height' into account. * src/xdisp.c (Fwindow_text_pixel_size): Fix doc-string of 'window-text-pixel-size'. Rename last argument to 'MODE-LINES'. 2021-10-15 Andrea Corallo Fix `native-compile-target-directory' effectiveness on trampolines * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix `native-compile-target-directory' effectiveness on trampoline compilation. 2021-10-15 Jan Synacek Add missing single quotes in the Emacs manual * lisp/mwheel.el (mouse-wheel-scroll-amount): Add missing single quotes. (Bug#51223) 2021-10-15 Juri Linkov * lisp/menu-bar.el (yank-menu-length): Fix docstring (bug#51138). 2021-10-14 Michael Albinus Accept process-filter t in Tramp * lisp/net/tramp.el (tramp-handle-make-process): * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Filter can be t. * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) (tramp-test30-make-process): Test filter equal t. 2021-10-14 Lars Ingebrigtsen Document the t value for set-process-filter in the manual * doc/lispref/processes.texi (Filter Functions): Mention what t means (bug#51177). 2021-10-14 Michael Albinus * doc/misc/tramp.texi (Frequently Asked Questions): Add reference to ELPA Installation node. 2021-10-14 Eli Zaretskii Fix Help functions for clicks on tool bar and tab bar * lisp/mouse.el (mouse-minibuffer-check): Don't assume posn-window returns a window. (Bug#5199) 2021-10-14 Martin Rudalics In make_lispy_position fix Bug#50993 in rudimentary fashion * src/keyboard.c (make_lispy_position): Do not set posn to tool- or tab-bar when track_mouse is enabled (Bug#50993). 2021-10-14 Dmitry Gutov Mark vc-switch-backend as obsolete * etc/NEWS: Mention the change. * lisp/vc/vc.el (vc-switch-backend): Mark as obsolete (bug#50344). (vc-transfer-file): Wrap the calls in 'with-suppressed-warnings'. 2021-10-14 Yan (tiny change) Add missing parentheses in the Emacs manual * doc/emacs/maintaining.texi (Xref Commands): Add missing parentheses (bug#51195). 2021-10-14 Stefan Kangas Improve tooltip of mode-line-position again * lisp/bindings.el (mode-line-position): Improve tooltip again. This change was discussed in https://lists.gnu.org/r/emacs-devel/2021-10/msg00952.html 2021-10-13 Philip Kaludercic Use browse-url-button-regexp for rcirc-url-regexp * lisp/net/rcirc.el (rcirc-url-regexp): Copy improved regexp from browse-url 2021-10-13 Juri Linkov * lisp/help.el (help--analyze-key): Avoid mouse-set-point for non-mouse events (bug#51173) 2021-10-13 Michael Albinus Tramp doc cleanup * doc/misc/tramp.texi (Overview, Bug Reports) (Frequently Asked Questions): Stylistic changes. (Bug Reports): Mention tramp buffers appended to bug report. 2021-10-13 Lars Ingebrigtsen Make emacs-lisp-byte-compile-and-load load the .elc file again * lisp/progmodes/elisp-mode.el (emacs-lisp-byte-compile-and-load): Load the compiled file instead of the source (bug#51180). 2021-10-13 Peter Münster Fix point movement in image-dired * lisp/image-dired.el (image-dired-thumb-file-marked-p): Don't move point in associated dired buffer. (image-dired-delete-marked): Revert "Fix deletion of associated image" because it was wrong and introduced another problem (bug#51152). 2021-10-13 Stefan Kangas Improve shortdoc for vector * lisp/emacs-lisp/shortdoc.el (vector): Improve shortdoc with titles. Add mapc. Fix typo where 'seq-reduce' is incorrectly written as 'reduce'. 2021-10-13 Paul Eggert Fix test bug when calloc returns null * test/src/emacs-module-resources/mod-test.c (Fmod_test_userptr_make): Don’t dump core if calloc returns null and signal_errno returns. 2021-10-12 Paul Eggert Pacify GCC 11 -fanalyzer on x86-64 * src/buffer.c (fix_overlays_before): Redo slightly to work around GCC bug 102692 . 2021-10-12 Gregory Heytings Improve handling of non-character events in input methods * lisp/international/quail.el (quail-add-unread-command-events): Handle non-vector event arguments. Fixes bug#51118. 2021-10-12 Martin Rudalics In Fdelete_other_windows_internal fix new total window sizes (Bug#51007) * src/window.c (Fdelete_other_windows_internal): Assign the new total sizes of windows _after_ the new window configuration is in place (Bug#51007). 2021-10-12 Stephen Gildea * lisp/mh-e/mh-show.el (mh-junk-whitelist): Custom obsolescence message. 2021-10-11 João Távora Don't apply shorthands to punctuation-only symbols (bug#51089) This includes symbols used for arithmetic functions such as -, /=, etc. Using "-" or "/=" is still possible but doing so won't shadow those functions. * doc/lispref/symbols.texi (Shorthand, Exceptions): New subsubsection. * src/lread.c (read1): Exempt punctionation-only symbols from oblookup_considering_shorthand. * test/lisp/progmodes/elisp-mode-tests.el (elisp-dont-shadow-punctuation-only-symbols): Tweak test. 2021-10-11 Stefan Kangas * lisp/progmodes/python.el: Bump package version to 0.28. 2021-10-11 Stefan Kangas Fontify "print" and "exec" as functions in python-mode This change was first made on master, but on closer consideration it is better to fix this bug already in Emacs 28.1. * lisp/progmodes/python.el (python-font-lock-keywords-level-2): Fontify "print" and "exec" as functions, which is the case in Python 3. (Bug#43298) Do not merge to master. 2021-10-11 Juri Linkov Copy parent face attributes to tab-line-tab-current instead of inheriting face * lisp/tab-line.el (tab-line-tab-current): Don't inherit face from 'tab-line-tab' to not inherit the face attribute :height from 'tab-line', because :height of mouse-face is added to the base face. Copy here most of the parent face attributes (bug#50798). 2021-10-11 Martin Rudalics Another fix for 'ibuffer-shrink-to-fit' (Bug#7218, Bug#51029) * lisp/ibuffer.el (ibuffer-shrink-to-fit): Fit window only if its buffer is in 'ibuffer-mode' (Bug#7218, Bug#51029). 2021-10-11 Michael Albinus Backport: * doc/misc/tramp.texi (Bug Reports): Describe, how to activate ELPA Tramp. (cherry picked from commit 978e5339e0d4ef98575096bcf3ec2061ad530f27) 2021-10-11 Paul Eggert Work around GCC bug 102671 This is for --enable-gcc-warnings on GCC 11.2.1. * src/window.c, src/timefns.c: Disable -Wanalyzer-null-dereference. 2021-10-11 Amin Bandali Release ERC 5.4 * lisp/erc/erc.el (Version, erc-version): Bump to 5.4. (customize-package-emacs-version-alist): Add entry for 5.4. 2021-10-11 Amin Bandali * etc/ERC-NEWS: Announce ERC's addition to GNU ELPA. * etc/ERC-NEWS: Fix outline level for the recent additions. 2021-10-11 Amin Bandali Add ERC entries for 'customize-package-emacs-version-alist' * lisp/erc/erc.el (customize-package-emacs-version-alist): Add entries for existing ERC versions. 2021-10-11 Dmitry Gutov Expand the full file name * lisp/vc/vc-git.el (vc-git--literal-pathspec): Expand the full file name, not just the local part (bug#51112). 2021-10-11 Stefan Kangas Obsolete XEmacs compat convention in 'erc-button-press-button' * lisp/erc/erc-button.el (erc-button-press-button): Advertise new calling convention without XEmacs compatibility. 2021-10-11 F. Jason Park Backport: Add ERC version to protocol log * lisp/erc/erc.el (erc-toggle-debug-irc-protocol): Include the erc version in the debug logs (bug#51107). (cherry picked from commit 13411346202f86e950bee076a5d528e98695fbb4) 2021-10-11 Eli Zaretskii Adapt the recent 'num_processors' change to MS-Windows * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_nproc): Omit nproc. * src/w32.c (num_processors): New function. * src/w32proc.c (Fw32_get_nproc): Remove. 2021-10-11 Stefan Kangas Minor fix to clarify a sentence in emacs-lisp-intro * doc/lispintro/emacs-lisp-intro.texi (Simple Extension): Add the word "that" for clarity. (Bug#43965) 2021-10-11 Lars Ingebrigtsen Make tty-run-terminal-initialization load the .elc file (if any) * lisp/faces.el (tty-run-terminal-initialization): `locate-library' may have found the .el.gz file (bug#51116). 2021-10-11 Lars Ingebrigtsen Fix ert errors when there's a test that binds `debug-on-error' * lisp/emacs-lisp/ert.el (ert--run-test-internal): Don't infloop on errors when signalling errors (bug#51131). 2021-10-10 Paul Eggert New function num-processors This addresses a FIXME comment in lisp/emacs-lisp/comp.el, relating to the number of subsidiary processes used by comp-run-async-workers in native compilation. * admin/merge-gnulib (GNULIB_MODULES): Add nproc. * doc/lispref/processes.texi (Process Information), etc/NEWS: Document num-processors. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lib/nproc.c, lib/nproc.h, m4/nproc.m4: New files, copied from Gnulib by admin/merge-gnulib. * lisp/emacs-lisp/comp.el (w32-get-nproc): Remove decl. (comp-effective-async-max-jobs): Use num-processors. * src/process.c: Include nproc.h. (Fnum_processors): New function. (syms_of_process): Define ‘all’, ‘current’, ‘num-processors’. * src/w32proc.c (Fw32_get_nproc): Add FIXME comment. * test/src/process-tests.el (process-num-processors): New test. 2021-10-10 Juri Linkov Add symbol property 'save-some-buffers-function' (bug#46374) * lisp/files.el (save-some-buffers-root): Put non-nil symbol property 'save-some-buffers-function'. (save-some-buffers): Check pred for the symbol property 'save-some-buffers-function'. (save-some-buffers-default-predicate): Mention symbol property 'save-some-buffers-function'. 2021-10-10 Juri Linkov Keep reading when typed RET in read-char-from-minibuffer and y-or-n-p * lisp/subr.el (read-char-from-minibuffer-map): Remap exit-minibuffer to read-char-from-minibuffer-insert-other. (y-or-n-p-map): Remap 'exit' to y-or-n-p-insert-other. (y-or-n-p): Don't mention RET in docstring. (Bug#51101) 2021-10-10 David M. Koppelman * lisp/userlock.el (ask-user-about-supersession-threat): Accept 'y' strictly. (Bug#51101) 2021-10-10 Eli Zaretskii Fix point positioning on mouse clicks with non-zero line-height * src/xdisp.c (move_it_to): After passing a newline, reset it->override_ascent, like 'display_line' does (in 'append_space_for_newline'). (Bug#51111) 2021-10-10 João Távora Complete shorthands to longhands for symbol-completing tables Shorthands aren't symbols, they're text forms that 'read' into symbols. As such, shorthands aren't candidates in these tables of symbols. But in some situations, if no other candidates match the pattern, we can e.g. complete "x-foo" to "xavier-foo" if the shorthand (("x-" . "xavier-")) is set up in the buffer of origin. bug#50959 * lisp/help-fns.el (help--symbol-completion-table): Report `symbol-help' category. * lisp/minibuffer.el (completion-styles-alist): New 'shorthand' style. (completion-category-defaults): Link 'symbol-help' category with 'shorthand' style. (minibuffer--original-buffer): New variable. (completing-read-default): Setup minibuffer--original-buffer. (completion-shorthand-try-completion) (completion-shorthand-all-completions): New helpers. 2021-10-10 João Távora Add new failing test for bug#51089 * test/lisp/progmodes/elisp-mode-tests.el (elisp-dont-shadow-punctuation-only-symbols): Add new failing test. 2021-10-10 Dmitry Gutov Avoid mapping file names through 'substring' * lisp/progmodes/project.el (project--files-in-directory): Avoid mapping file names through 'substring'. Reducing the amount of garbage generated. Better perf by up to 20%. Bump the package version. 2021-10-09 Kyle Meyer Update to Org 9.5-46-gb71474 2021-10-09 Stephen Gildea Expanded testing of MH-E with multiple MH variants * test/lisp/mh-e/mh-utils-tests.el: Environment variable TEST_MH_PATH controls which installed MH variant to test with. Moved the commentary about testing with different MH variants from above 'with-mh-test-env' definition to "Commentary" section at the top of the file. * test/lisp/mh-e/test-all-mh-variants.sh: New script to test all installed MH variants. 2021-10-09 Philipp Stephani Fix Seccomp filter for newer GNU/Linux systems (Bug#51073). On some systems, process startup calls prctl(PR_CAPBSET_READ) via 'cap_get_bound'. We can just return EINVAL. * lib-src/seccomp-filter.c (main): Add a rule for prctl(PR_CAPBSET_READ, ...). 2021-10-09 Michael Albinus Tramp code cleanup * lisp/net/tramp.el (tramp-remote-path): Adapt docstring. (tramp-action-login, tramp-action-password, tramp-action-yesno) (tramp-action-yn, tramp-process-actions): Move let-binding of `enable-recursive-minibuffers' up. (tramp-handle-make-process, tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region) (tramp-adb-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) (tramp-sh-handle-write-region): * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Use `string-or-null-p'. 2021-10-09 Michael Albinus Fix thinko in ls-lisp--insert-directory * lisp/ls-lisp.el (ls-lisp--insert-directory): Ensure that SWITCHES is a string. 2021-10-09 Lars Ingebrigtsen Mention that RET means "yes" in y-or-n-p * lisp/subr.el (y-or-n-p): Mention that RET also means yes (bug#51101). 2021-10-09 Eli Zaretskii Rewrite Antinews for Emacs 28 * doc/lispref/anti.texi (Antinews): * doc/emacs/anti.texi (Antinews): Rewrite for Emacs 28. * doc/lispref/elisp.texi (Top): * doc/emacs/emacs.texi (Top): Update menu accordingly. 2021-10-09 Stefan Kangas * lisp/bindings.el (mode-line-position): Improve tooltip. 2021-10-09 Dmitry Gutov * lisp/progmodes/xref.el: Bump the version. 2021-10-09 Dmitry Gutov Slight simplificaiton * lisp/progmodes/xref.el (xref--insert-xrefs): Compute log only once. Use 'dolist'. 2021-10-08 Eli Zaretskii Fix doc strings of 2 categories * lisp/international/characters.el (?R, ?L): Make the first line of the categories' doc string shorter, to fit into 15 columns. 2021-10-08 Dmitry Gutov (xref--collect-matches-1): Remove some intermediate allocations * lisp/progmodes/xref.el: (xref--collect-matches-1): Rewrite to remove some intermediate allocations. Modest performance improvement. 2021-10-08 Arash Esbati Use the correct label in the warning * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label): Add missing space in the prompt. Use the new user defined label in the warning (bug#36235). 2021-10-08 Dmitry Gutov Add Emacs 27 compatibility hack * lisp/progmodes/xref.el: Add Emacs 27 compatibility hack, for the standalone version of this package. 2021-10-07 Paul Eggert Pacify GCC 10.3 -Wmaybe-uninitialized Problem reported by Basil L. Contovounesios (Bug#51075). * src/term.c (encode_terminal_code): Add an UNINIT to pacify GCC 10 bug. 2021-10-07 Juri Linkov * lisp/tab-bar.el (tab-detach, tab-window-detach): New aliases. (tab-bar-mouse-context-menu, tab-bar-duplicate-tab): Use word "clone" in help/doc string. 2021-10-07 Eli Zaretskii Include the refcards in the release tarball * make-dist (possibly_non_vc_files): Include *.pdf files, to include the produced refcards in the tarball. This was lost when 'make-dist' was rewritten for Emacs 27. 2021-10-07 Stefan Monnier Backport: * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): Scope Fix the scoping of `tramp-archive-enabled`. (cherry picked from commit 8d53c23f90aab6e527c61137ae43274c7a36eca7) 2021-10-07 Eli Zaretskii Improve documentation and customization of 'blink-matching-paren' * lisp/simple.el (blink-matching-paren): Fix the wording of the doc string and the descriptions in the value menu. (Bug#51032) 2021-10-07 Amin Bandali * lisp/erc/erc.el: Don't error if 'erc-loaddefs' does not exist. That autoload file is created as part of the Emacs compilation process, however we would like ERC to be usable if used outside emacs.git (e.g. if installed from GNU ELPA). 2021-10-07 Amin Bandali Add 'erc-bug' command for reporting ERC bugs * etc/ERC-NEWS: Announce the new command, and mention it at the top of the file along with 'report-emacs-bug'. * lisp/erc/erc.el (erc-bug): New command for reporting ERC bugs. It prompts for a subject, and passes it on to 'report-emacs-bug' along with the current ERC version, with the ERC mailing list in Cc. 2021-10-07 Amin Bandali Add 'erc-version' and use it to display ERC version consistently * lisp/erc/erc.el (erc-version): New constant holding the current ERC version, now used in the function with the same name to produce a version string for use across ERC for consistency. Also, add another optional argument, 'bold-erc', which when non-nil, marks the "ERC" portion of the string with the control character for bold display. (erc-quit/part-reason-default): Use the 'erc-version' function for a consistent version string. (erc-cmd-SV): Mention the ERC version number from the 'erc-version' constant. (erc-ctcp-query-VERSION): Use the 'erc-version' function for a consistent version string. 2021-10-07 Amin Bandali Small tweaks and improvements to etc/ERC-NEWS * etc/ERC-NEWS: Small tweaks inspired by etc/NEWS, namely to add a descriptive blurb at the top of the file to explain what it is about and how to report ERC bugs, add a form feed before the section for every release, and set the same Local Variables that etc/NEWS does. 2021-10-07 Amin Bandali Add NEWS items for changes to ERC since 5.3 to etc/ERC-NEWS * etc/ERC-NEWS: copy ERC NEWS items from etc/NEWS, etc/NEWS.27, etc/NEWS.26, etc/NEWS.25, and etc/NEWS.24 to here. Future ERC NEWS are also to be added here. This is in motivated by preparation for addition of ERC to GNU ELPA, along with the ERC manual and NEWS. * etc/NEWS: remove ERC-related entries, and refer the reader to ERC-NEWS instead. 2021-10-06 Juri Linkov Clone the frame window configuration in 'clone-frame' * doc/emacs/frames.texi (Creating Frames): Mention the cloned window configuration for clone-frame. * lisp/frame.el (clone-frame): Change second arg to 'no-windows' and clone window configuration when it's nil. * lisp/tab-bar.el (tab-bar-mouse-context-menu) (tab-bar-detach-tab): Replace "Detach" with "Move" in help/doc strings. https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg00408.html 2021-10-06 Eli Zaretskii * lisp/tool-bar.el (tool-bar-position): Doc fix. 2021-10-06 Philip Kaludercic * NEWS: Mention rcirc connects to #emacs by default 2021-10-06 Stephen Gildea Refactor mh-utils-tests macro 'with-mh-test-env' * test/lisp/mh-e/mh-utils-tests.el (with-mh-test-env): Refactor to reduce the size of the expanded macro. (mh-test-utils-setup): New helper function. (mh-ensure-native-trampolines): Absorbed by mh-test-utils-setup. 2021-10-05 Stefan Kangas Avoid using variable before it has been initialized * lisp/ibuffer.el (ibuffer-shrink-to-fit): Don't try to use ibuffer-auto-mode variable before ibuf-ext.el has been loaded. (Bug#51029) 2021-10-05 Stefan Kangas Clarify docstring of blink-matching-paren * lisp/simple.el (blink-matching-paren): Clarify docstring. (Bug#51032) 2021-10-05 Stefan Kangas * doc/misc/gnus.texi (Loose Threads): Use regexp-opt in example. 2021-10-05 Dmitry Gutov Bump project.el version * lisp/progmodes/project.el: Bump the version. 2021-10-05 Dmitry Gutov Retain compatibility with older project.el projects * lisp/progmodes/xref.el (xref--analyze): Retain compatibility with older project.el and its compatible project definitions (for standalone Xref from ELPA). 2021-10-05 Stephen Gildea native-comp-available-p is the definitive test * doc/lispref/compile.texi (Native Compilation): Document native-comp-available-p as the way to test for native compilation. * lisp/emacs-lisp/package.el (package--native-compile-async): * test/lisp/mh-e/mh-utils-tests.el (mh-ensure-native-trampolines): Test for native compilation with native-comp-available-p. Thank you to Andrea Corallo for reviewing this patch. 2021-10-05 Eli Zaretskii Minor fix of a recently installed documentation change * doc/emacs/search.texi (Lax Search): Don't use ".." inside @samp, it looks confusing, especially in print. (Bug#51020) 2021-10-05 Paul Eggert Fix md5 issue in recent Gnulib merge When configured --with-native-compilation, Emacs needs md5_stream. Problem reported by Andy Moreton (Bug#50985#23). * admin/merge-gnulib (GNULIB_MODULES): Add crypto/md5, needed for --with-native-compilation. (AVOIDED_MODULES): Avoid crypto/af_alg, since Emacs doesn’t need to bother with kernel-supported cryptography algorithms. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate by running admin/merge-gnulib. * lib/md5-stream.c: New file, copied from Gnulib. 2021-10-05 Paul Eggert Tweak recent 'configure' fix * configure.ac (gt_TYPE_WINT_T): Omit obsolete and now-overridden definition. 2021-10-05 Stefan Kangas Document minibuffer-default-prompt-format in manual * doc/emacs/mini.texi (Basic Minibuffer): Mention minibuffer-default-prompt-format. (Bug#50935) 2021-10-05 Eli Zaretskii Backward compatibility option for 'nobreak-char-display' * src/xdisp.c (syms_of_xdisp) : New variable. (get_next_display_element): If 'nobreak-char-ascii-display' is non-nil, display non-ASCII space and hyphen characters as their ASCII equivalents. (Bug#50983) * etc/NEWS: * etc/PROBLEMS: Mention 'nobreak-char-ascii-display'. 2021-10-05 Eli Zaretskii Unbreak the build after Gnulib update * lib/gnulib.mk.in (GNULIBHEADERS_OVERRIDE_WINT_T): Rename from GNULIB_OVERRIDES_WINT_T. * configure.ac (GNULIBHEADERS_OVERRIDE_WINT_T): Define. (Bug#50985) 2021-10-05 Michael Albinus Check, whether an FUSE mount has been broken in Tramp * lisp/net/tramp-fuse.el (tramp-fuse-mount-timeout): New defconst. (tramp-fuse-mounted-p): Use it. Check for a file property instead of a connection property. (tramp-fuse-unmount): Dito. * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): Do not trust existence of a process, whether the volume is mounted. 2021-10-05 Augusto Stoffel Disable 'nobreak-char-display' in Eldoc buffers * lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Set 'nobreak-char-display' to nil in Eldoc buffers (bug#50989). 2021-10-05 Miha Rihtaršič Fix small error in comint-send-input * lisp/comint.el (comint-send-input): Run comint-output-filter-functions with comint-last-output-start set correctly (bug#51009). 2021-10-05 Daniel Martín Update documentation of search-whitespace-regexp * doc/emacs/search.texi (Lax Search): Update the documentation about the default value of search-whitespace-regexp, as it is now independent of the major mode's syntax table (bug#51020). 2021-10-05 Po Lu via Fix cc-compat.el syntax error * lisp/obsolete/cc-compat.el (offsets): Fix syntax error in BOCM style setup. 2021-10-05 Tak Kunihiro Mention `seq-uniq' in `delete-dups' documentation * doc/lispref/lists.texi (Sets And Lists): Mention `seq-uniq' (bug#50928). * lisp/subr.el (delete-dups): Link to `seq-uniq' in doc string. 2021-10-05 Paul Eggert Port recent Gnulib changes to MS-Windows * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_free-posix) (OMIT_GNULIB_MODULE_malloc-posix) (OMIT_GNULIB_MODULE_realloc-gnu) (OMIT_GNULIB_MODULE_realloc-posix): New macros, since we don’t want these modules on MS-Windows. * src/w32heap.c (heap_alloc, heap_realloc): New functions. (malloc_after_dump, realloc_after_dump, realloc_before_dump): Use them. 2021-10-05 Paul Eggert Update from Gnulib Make the following changes by hand, and run 'admin/merge-gnulib'. * .gitignore: Add lib/malloc/*.gl.h. * admin/merge-gnulib: Copy lib/af_alg.h and lib/save-cwd.h directly from Gnulib, without worrying about Gnulib modules, as these files are special cases. (AVOIDED_MODULES): Remove malloc-posix. * lib/malloc.c, lib/realloc.c, m4/malloc.m4, m4/realloc.m4: * m4/year2038.m4: New files, copied from Gnulib. * lib/malloca.c, lib/malloca.h: * m4/close-stream.m4, m4/glibc21.m4, m4/malloca.m4: Remove. These are either no longer present in Gnulib, or are no longer needed by modules that Emacs uses. * oldXMenu/AddPane.c, oldXMenu/AddSel.c: Include XmenuInt.h first; needed for new Gnulib. * src/xmenu.c: Call emacs_abort, not abort. 2021-10-04 Andrea Corallo Fix mh tests for native comp builds (bug#50975) * test/lisp/mh-e/mh-utils-tests.el (mh-ensure-native-trampolines): New function. (mh-test-utils-setup-with-mocks) (mh-test-utils-setup-with-variant): Use it. 2021-10-04 Andrea Corallo Fix `batch-native-compile' not to spawn a subprocess * lisp/emacs-lisp/comp.el (comp-running-batch-compilation): New var. (comp-final): Use it. (batch-native-compile): Bind `comp-running-batch-compilation' it. 2021-10-04 Ken Brown Fix native-compilation build from tarball on Cygwin * src/Makefile.in (../native-lisp) [CYGWIN]: Rebase the *.eln files after they are all created, to avoid fork problems later in the build. (Bug#50666) 2021-10-04 Robert Pluim Remove U+FE0F from script-representative-chars * lisp/international/fontset.el (script-representative-chars): Remove U+FE0F / VS-16 from the 'emoji' entry. It could cause us to skip fonts that don't have a glyph for it, even though we don't actually need one. 2021-10-04 Robert Pluim Fix problem with 'vertical-motion' and emoji * src/font.c (font_range): Pass correct position to font_for_char (Bug#51012). 2021-10-04 Michael Albinus * test/README: Mention :nativecomp tag. 2021-10-04 Gregory Heytings Avoid exiting when outputting error messages during loadup * src/print.c (print_error_message): Don't call 'substitute-command-keys' when it isn't fboundp. 2021-10-04 Robert Pluim Remove implemented emoji items * etc/TODO: Remove implemented emoji items. 2021-10-04 Lars Ingebrigtsen project.el NEWS tagging thing-at-mouse NEWS tagging 2021-10-04 Lars Ingebrigtsen Mention ffap-file-name-with-spaces in the ffap doc strin * lisp/ffap.el (find-file-at-point): Mention ffap-file-name-with-spaces in the doc string. 2021-10-04 Lars Ingebrigtsen Revert "Make info-look search harder for the Python info file" This reverts commit 711eb40b9b9e2aabd0e23ec264e8e8f913329d33. This leads to loading info-look being excessively slow if the info path is long. It'll be reimplemented in Emacs 29. 2021-10-04 Paul Eggert Add safety check in x_menu_show * src/xmenu.c (x_menu_show): Explicitly check whether save_wv can be null here. Looks like it can be but I am not 100% sure, so play it safe and add a FIXME comment. 2021-10-04 Paul Eggert Tweak x_connection_closed when I/O error * src/xterm.c (x_connection_closed): Don’t dereference dpyinfo in the unlikely case where it is null and ioerror is true. This pacifies gcc 11.2.1 -Wanalyzer-null-dereference. 2021-10-04 Stefan Kangas * lisp/erc/erc.el (erc-user-mode): Set "+i" by default. 2021-10-04 Paul Eggert Port unused decls to C2x * src/conf_post.h (ATTRIBUTE_UNUSED): Remove. All uses replaced by MAYBE_UNUSED, and moved to start as needed for C2x. 2021-10-04 Stefan Kangas Improve structure of TODO * etc/TODO: Various improvements to the document structure according to discussion with the maintainers. 2021-10-04 Stefan Kangas Don't use some obsolete names in documentation * admin/notes/bugtracker: Use non-obsolete name 'mail-dont-reply-to-names'. * admin/notes/multi-tty: Mention new variable name 'x-selection-value'. * doc/lispintro/emacs-lisp-intro.texi (Point and mark) (Point and mark, Design @value{COUNT-WORDS}): Avoid using obsolete name 'count-lines-region'. * doc/lispref/hooks.texi (Standard Hooks): Remove reference to obsolete abnormal hook 'completion-annotate-function'. * doc/misc/efaq.texi (SPC no longer completes file names): Remove reference to obsolete 'minibuffer-local-filename-must-match-map'; setting it has no effect. * doc/misc/gnus.texi (NNTP): Remove reference to obsolete variable 'nntp-authinfo-file'. * doc/misc/reftex.texi (Table of Contents, Creating Citations) (Options - Table of Contents, Options - Referencing Labels) (Options - Creating Citations, Options - Index Support) (Options - Index Support, Changes): Don't use obsolete names. * doc/misc/speedbar.texi (Minor Display Modes) (Major Display Modes): Make variable name suggestions more in line with existing non-obsolete variable. * lisp/textmodes/reftex-cite.el (reftex-select-bib-mode-map): * lisp/textmodes/reftex-ref.el (reftex-offer-label-menu): Don't use obsolete variable names. * lisp/progmodes/which-func.el (which-func-mode): Doc fix. 2021-10-04 Paul Eggert Tweak x_hide_tip for consistency * src/xfns.c (x_hide_tip, Fx_show_tip): Be consistent about using !NILP (tip_frame) instead of FRAMEP (tip_frame). The two expressions are logically equivalent since tip_frame is either a frame or nil, !NILP is a bit faster, and making things consistent pacifies gcc 11.2.1 -Wanalyzer-null-dereference. 2021-10-04 Paul Eggert Remove encode_terminal_code UNINITs * src/term.c (encode_terminal_code): Clarify by removing a couple of UNINITs and testing the local variable ‘cmp’ instead of retesting src->u.cmp.automatic. This pacifies gcc 11.2.1 -Wanalyzer-null-dereference. 2021-10-04 Paul Eggert Port pdumper.c maybe_unused to C2x Port pdumper.c to C2x, and pacify gcc 11.2.1 -Wattributes -Wunused. * src/pdumper.c (dump_tailq_prepend): Omit ATTRIBUTE_UNUSED, since it’s always used. (dump_tailq_append): Remove; unused. 2021-10-04 Paul Eggert Port systhreads.h to C2x * src/systhread.h: Put NODISCARD at the start of extern declarations, not at the end. This is needed by C2x. This patch also pacifies gcc 11.2.1 -Wattributes. 2021-10-04 Paul Eggert Pacify -Wanalyzer-null-argument in lisp_malloc * src/alloc.c (lisp_malloc): Document that NBYTES must be positive, and omit a needless runtime check. This pacifies a false alarm with gcc 11.2.1 -Wanalyzer-possible-null-dereference. 2021-10-04 Paul Eggert Pacify gcc 11.2.1 -Wanalyzer-null-argument * src/gtkutil.c (xg_item_label_same_p): Clarify boolean expression to pacify -Wanalyzer-null-argument with GCC 11.2.1 20210728 (Red Hat 11.2.1-1). 2021-10-04 João Távora Simplify hack-read-symbol-shorthands again (bug#50946) * lisp/loadup.el (load-source-file-function): Don't set twice. * lisp/shorthands.el (hack-read-symbol-shorthands): Simplify. (load-with-shorthands-and-code-conversion): Remove. * lisp/international/mule.el (load-with-code-conversion): Call hack-read-symbol-shorthands-function. Set up shorthands. (hack-read-symbol-shorthands-function): New variable. 2021-10-03 Eli Zaretskii Fix recipe for 'native-lisp' directory * src/Makefile.in (../native-lisp): If the directory native-lisp exists, do nothing. 2021-10-03 Paul Eggert Simplify socket symlink-attack checking This is a minor bugfix cleanup (Bug#33847#161). * lib-src/emacsclient.c: Move "#include " to inside "#ifdef SOCKETS_IN_FILE_SYSTEM", which is more accurate and simpler than having a separate "#ifndef WINDOWSNT". (O_PATH): Likewise. 2021-10-03 Alan Mackenzie Clarify (elisp) insert-file-contents with BEG or END not on character boundary * doc/lispref/files.texi (Reading from files): When the argument BEG or END to insert-file-contents are at a byte position not at a character boundary, clarify that raw bytes get inserted, and how to handle this awkwardness in Lisp. Also clarify that insert-file-contents-literally is intended to insert raw bytes into the buffer. Fix the outdated example that states it inserts 500 characters, when it actually inserts 500 bytes. 2021-10-03 Andreas Schwab * src/Makefile.in: Simplify conditionals. 2021-10-03 Juri Linkov Move context-menu selection items Defun/List/Symbol to prog-mode (bug#9054) * lisp/mouse.el (context-menu-functions): Add context-menu-middle-separator to choices. (context-menu-region): Move Defun/List/Symbol selection items to prog-context-menu. * lisp/progmodes/prog-mode.el (prog-context-menu): Move Defun/List/Symbol selection items from context-menu-region. Include text-mode select menu only in strings and comments. * lisp/textmodes/text-mode.el (text-mode-menu): New function. (text-mode): Add text-mode-menu to context-menu-functions. 2021-10-03 Juri Linkov * lisp/tab-bar.el (tab-bar-detach-tab): Handle frame selected by make-frame. (tab-bar-move-window-to-tab): New command. (tab-bar-new-tab-to): Handle the value 'window' of tab-bar-new-tab-choice. https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg02197.html 2021-10-03 Juri Linkov * lisp/tab-line.el (tab-line-format): Add face-modified to the cache key. When tab-line-tab-face-functions contains tab-line-tab-face-modified, add 'buffer-modified-p' status to the cache-key, so the cache will expire when the buffer modification status will change. https://lists.gnu.org/archive/html/emacs-devel/2021-10/msg00129.html 2021-10-03 Michael Albinus Fix unmounting in Tramp * doc/misc/tramp.texi (FUSE setup): Add tramp-fuse-unmount-on-cleanup. * lisp/net/tramp.el (tramp-file-name-unify): New defun. (tramp-file-name-equal-p): * lisp/net/tramp-cache.el (tramp-get-connection-property) (tramp-set-connection-property, tramp-flush-connection-property) (tramp-flush-connection-properties): Use it. * lisp/net/tramp-fuse.el (tramp-fuse-get-fusermount): New defun. (tramp-fuse-mount-points): New defvar. (tramp-fuse-unmount): Use it. Delete VEC from `tramp-fuse-mount-points'. Delete mount point. (tramp-fuse-unmount-on-cleanup): New user option. (tramp-fuse-cleanup, tramp-fuse-cleanup-all): New defuns. (top): Adapt `tramp-fuse-unload-hook', `tramp-cleanup-connection-hook', `tramp-cleanup-all-connections-hook' and `kill-emacs-hook'. * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): Add VEC to `tramp-fuse-mount-points'. * test/lisp/net/tramp-tests.el (tramp-fuse-unmount-on-cleanup): Declare. (tramp-test39-make-lock-file-name): Use it. 2021-10-03 Stefan Kangas * etc/themes/light-blue-theme.el: Add "Maintainer: emacs-devel". 2021-10-03 Eli Zaretskii Define HAVE_NATIVE_COMP in src/Makefile.in * src/Makefile.in (HAVE_NATIVE_COMP): Define. Reported by Ken Brown . 2021-10-03 João Távora Rename elisp-shorthands to read-symbol-shorthands The new name fits better in the family of variables that affect the Lisp reader. Suggested-by: Po Lu * doc/lispref/symbols.texi (Shorthands): Mention read-symbol-shorthands * lisp/shorthands.el (hack-read-symbol-shorthands) (hack-read-symbol-shorthands) (shorthands-font-lock-shorthands): Use read-symbol-shorthands * lisp/progmodes/elisp-mode.el (elisp--completion-local-symbols) (elisp--completion-local-symbols) (elisp-shorthands): Use read-symbol-shorthands * src/lread.c: (syms_of_lread): Define Vread_symbol_shorthands (oblookup_considering_shorthand): Use Vread_symbol_shorthands. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer): (elisp-shorthand-read-from-string): Use read-symbol-shorthands * test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el Use new symbol name read-symbol-shorthands. 2021-10-03 João Távora Font-lock shorthands in elisp-mode for quick visual recognition (bug#50959) Only the shorthanded prefix is font-locked. This allows the remainder of the font-lock logic to subsist (e.g. for macro-defining symbols). * lisp/shorthands.el (cl-lib): Require it when compiling. (elisp-shorthand-font-lock-face): New face. (shorthands--mismatch-from-end): New helper. (shorthands-font-lock-shorthands): New helper. * test/lisp/progmodes/elisp-mode-resources/simple-shorthand-test.el: Add some dummy test code. 2021-10-03 Michael Albinus Suppress superfluous error messages in Tramp * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-insert-file-contents): * lisp/net/tramp.el (tramp-handle-insert-file-contents) (tramp-handle-lock-file): Suppress superfluous error message. 2021-10-03 Eli Zaretskii Fix reading the tail of a file in shorthands.el * lisp/shorthands.el (hack-elisp-shorthands): Fix reading past 3000-character limit from EOF. (Bug#50946) 2021-10-03 Lars Ingebrigtsen Fix substitution of pretty quotes in code in easy-mmode * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Adjust. (easy-mmode--mode-docstring): Avoid making quotes into pretty quotes in code (bug#50968). 2021-10-03 Lars Ingebrigtsen Fix agent directory deletion * lisp/gnus/gnus-agent.el (gnus-agent-expire-unagentized-dirs): Delete directories in a simpler way that actually works (bug#50986). 2021-10-03 Stefan Kangas Clarify the purpose of internal--format-docstring-line * test/lisp/subr-tests.el (subr-test-internal--format-docstring-line): * lisp/subr.el (internal--format-docstring-line): Make it more clear that this function is not intended for the first line of a docstring. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Add comment explaining why we use 'internal--format-docstring-line'. Problem pointed out by Stefan Monnier . 2021-10-02 Juri Linkov * lisp/net/dictionary.el (context-menu-dictionary): Move menu item down. Place the dictionary menu item after middle-separator (bug#50552). 2021-10-02 Kyle Meyer Update to Org 9.5-30-g10dc9d The plan is to cut the Org 9.5.1 release and include it in Emacs 28.1, but in the meantime regularly sync changes from Org's bugfix branch to emacs-28. This sync includes files from Org 9.5's new etc/csl/ directory that should have been synced in bf9ec3d91a (Update to Org 9.5, 2021-09-29). 2021-10-02 Glenn Morris Remove bogus ":safe t" custom properties * lisp/org/oc.el (org-cite-global-bibliography) (org-cite-note-rules, org-cite-punctuation-marks): * lisp/org/oc-csl.el (org-cite-csl-locales-dir) (org-cite-csl-styles-dir, org-cite-csl-no-citelinks-backends): * lisp/org/oc-natbib.el (org-cite-natbib-options): * lisp/org/org-keys.el (org-mouse-1-follows-link): Remove bogus ":safe t" properties that would largely need to be replaced by custom predicates. 2021-10-02 Eli Zaretskii Fix 'apropos-compact-layout' * lisp/textmodes/fill.el (fill-region-as-paragraph): Fix filling paragraphs that end at EOB without a newline. (Bug#50974) 2021-10-02 Glenn Morris Remove bogus ":safe nil" custom properties * lisp/org/oc.el (org-cite-activate-processor) (org-cite-export-processors, org-cite-follow-processor) (org-cite-insert-processor): * lisp/org/ol.el (org-link-parameters, org-link-frame-setup) (org-link-shell-confirm-function) (org-link-shell-skip-confirm-regexp) (org-link-elisp-confirm-function) (org-link-elisp-skip-confirm-regexp): * lisp/org/org-num.el (org-num-format-function): Remove bogus ":safe nil" that do nothing but propagate a misunderstanding of the safe-local-variable property. 2021-10-02 Glenn Morris The safe-local-variable property is a function (bug#50944) * lisp/org/oc-basic.el (org-cite-basic-sorting-field) (org-cite-basic-author-year-separator) (org-cite-basic-max-key-distance) (org-cite-basic-author-column-end) (org-cite-basic-column-separator) (org-cite-basic-mouse-over-key-face): * lisp/org/oc-biblatex.el (org-cite-biblatex-options): * lisp/org/oc-csl.el (org-cite-csl-link-cites) (org-cite-csl-html-hanging-indent) (org-cite-csl-html-label-width-per-char) (org-cite-csl-latex-hanging-indent): * lisp/org/oc.el (org-cite-adjust-note-numbers): * lisp/org/org-keys.el (org-return-follows-link): * lisp/org/org.el (org-fontify-todo-headline): * lisp/org/ox-html.el (org-html-equation-reference-format) (org-html-wrap-src-lines): * lisp/org/ox-latex.el (org-latex-reference-command) (org-latex-default-quote-environment): * lisp/textmodes/tildify.el (tildify-pattern) (tildify-space-string): Fix :safe property. 2021-10-02 Stefan Kangas Revert "; * etc/TODO: Move elpa.gnu.org items to the end." This reverts commit d73f0e96a7026808c01861f7525a2909279fc00d. These items are a priority for the project and should be before other, less prioritized items, according to a private discussion with project co-maintainer Eli Zaretskii . 2021-10-02 Stefan Kangas Revert "* etc/TODO: Rearrange to start with "Simple tasks"." This reverts commit 879ef5b19ab1dd90284aef829ef306d56b4e5adb. Some of these items are a priority for the project and should be before other, less prioritized items, according to a private discussion with project co-maintainer Eli Zaretskii . 2021-10-02 Eli Zaretskii Fix selection of fonts for Arabic on Posix platforms * lisp/international/fontset.el (script-representative-chars): Add U+06C1 to representative-characters for Arabic. (Bug#50951) 2021-10-02 Lars Ingebrigtsen Fix ox-koma-letter compilation warnings * lisp/org/ox-koma-letter.el (org-koma-letter-export-block) (org-koma-letter-export-snippet): Fix warning about two unused parameter. 2021-10-02 Eli Zaretskii Preload paren.el * lisp/Makefile.in (COMPILE_FIRST): Add the dependencies of comp.el, so that they are natively-compiled in advance. * lisp/loadup.el ("paren"): Preload paren.el. (Bug#50934) 2021-10-02 Eli Zaretskii Improve documentation of 'shift-select-mode' * doc/emacs/mark.texi (Shift Selection): Document the 'permanent' value of 'shift-select-mode'. Add index entry for that variable. (Bug#50954) * etc/NEWS: Update the entry for 'shift-select-mode'. 2021-10-02 João Távora Simplify shorthand injection (bug#50946) * lisp/loadup.el: Load "shorthands" relatively late. Set load-source-file-function to load-with-shorthands-and-code-conversion * lisp/international/mule.el (hack-elisp-shorthands) (load-with-shorthands-and-code-conversion): Move to lisp/shorthands.el * lisp/shorthands.el: New file. 2021-10-01 Glenn Morris * doc/lispref/control.texi (pcase Macro): Fix cross-reference. 2021-10-01 Glenn Morris Fix some custom types * lisp/mpc.el (mpc-cover-image-re): * lisp/org/oc-csl.el (org-cite-csl-locales-dir) (org-cite-csl-styles-dir): * lisp/org/org-plot.el (org-plot/preset-plot-types): Fix :type. 2021-10-01 Stefan Kangas * etc/TODO: Add interactive mode tagging. * etc/TODO: Rearrange to start with "Simple tasks". * etc/TODO: Remove outdated item. (Bug#50904) 2021-10-01 Stefan Kangas Rename arguments of ERC's '/whois' and simplify doc string * lisp/erc/erc.el (erc-cmd-WHOIS): Rename arguments and reword the doc string to further clarify and simplify. 2021-09-30 Dmitry Gutov Migrate Xref off EIEIO To improve performance and flexibility (bug#50777). * lisp/progmodes/xref.el (xref-location): Remove. (xref-file-location): Change to cl-struct. (xref-buffer-location, xref-bogus-location): Ditto. (xref-item, xref-match-item): Same. And update all method definitions accordingly. (xref--insert-xrefs): Don't use 'oref', use 'xref-item-location'. (xref--insert-xrefs, xref-show-definitions-completing-read): Instead of 'with-slots', use 'xref-item-summary' and 'xref-item-location'. * lisp/progmodes/etags.el (xref-etags-location): Change from EIEIO class into a cl-struct. (xref-etags-apropos-location): Ditto. Update all method definitions. * test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-test-run): Avoid using 'oref'. 2021-09-30 Eli Zaretskii * admin/release-branch.txt: New file. * lisp/dired.el (dired-omit-mode): Declare, to avoid compiler warning. 2021-09-30 Eli Zaretskii Cut the emacs-28 release branch * README: * configure.ac: * nt/README.W32: * msdos/sed2v2.inp: Bump Emacs version to 28.0.60. * lisp/cus-edit.el (customize-changed-options-previous-release): Update the last released version of Emacs. 2021-09-30 Nikolay Kudryavtsev Make checkdoc's docstring substitution consistent with other docs * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): In error text, say "mapvar" instead of "keymap", and "command" instead of "function", to be consistent with the ELisp manual. (Bug#50903) 2021-09-30 Mattias Engdegård Fix regexp snags in org * lisp/org/org-element.el (org-element-citation-key-re): * lisp/org/ox-org.el (org-org-identity): Remove repeated chars in alternatives. * lisp/org/ob-java.el (org-babel-execute:java): Remove superfluous backslash. * lisp/org/ob-java.el (org-babel-java--main-re) (org-babel-java--any-method-re): Remove (0+ space) expressions subsumed by adjacent expressions. 2021-09-30 Mattias Engdegård org-element: use correct function * lisp/org/org-element.el (org-element-headline-parser): Pretty sure this one should be `skip-chars-backward`, not `skip-syntax-backward`, since \t isn't a valid syntax code. 2021-09-30 Mattias Engdegård Revert "Indent bodies of local function definitions properly in elisp-mode" This reverts commit 38037e04cb05cb1f2b604f0b1602d36b0bcf6985. 2021-09-30 Mattias Engdegård Revert "Fix regressions in cl-flet indentation" This reverts commit c42af5aee74f310bdcd63aac96b1c02ec07a1c50. 2021-09-30 Philip Kaludercic Add rcirc-omit-unless-requested option * doc/misc/rcirc.texi (Notices): Update documentation * lisp/net/rcirc.el (rcirc-pending-requests): Add local variable (rcirc-omit-unless-requested): Add user option (rcirc-print): Respect rcirc-omit-unless-requested (rcirc-define-command): Update rcirc-pending-requests 2021-09-30 Stefan Monnier * lisp/org/ob-julia.el: Use lexical-binding (ess-eval-visibly-p): Declare. (org-babel-julia-assign-elisp): Remove unused vars `header` and `row-names` and corespondingly remove now unused args `colnames-p` and `rownames-p`. (org-babel-variable-assignments:julia): Adjust call to `org-babel-julia-assign-elisp` accordingly. (org-babel-julia-initiate-session): Use `bound-and-true-p`. (org-babel-julia-evaluate-external-process) (org-babel-julia-evaluate-session, org-babel-julia-evaluate): Remove unused arg `row-names-p`. (org-babel-execute:julia): Adjust call to `org-babel-julia-evaluate` accordingly. 2021-09-30 Stefan Monnier * lisp/org/ox-koma-letter.el: Use lexical-binding And remove redundant `:group` args. 2021-09-30 Eli Zaretskii Fix a recent change of 'undo-redo' binding * lisp/bindings.el (global-map): Fix the binding of 'undo-redo'. (Bug#50911) 2021-09-30 Eli Zaretskii Merge Org 9.5 from branch 'origin/scratch/org-sync'. 2021-09-30 Lars Ingebrigtsen Fix previous `newline' patch * lisp/simple.el (newline): Signal an error earlier to avoid peculiar behaviour after getting a backtrace (bug#50900). 2021-09-30 Lars Ingebrigtsen Make `newline' check the argument earlier * lisp/simple.el (newline): Signal an error earlier to avoid peculiar behaviour after getting a backtrace (bug#50900). 2021-09-30 akater Fix regressions in cl-flet indentation * lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p): Rename (from -p-less form) and fix indentation regression introduced by 38037e04cb05cb1f2b604f0b1602d36b0bcf6985 (bug#9622). Also add cl-macrolet cl-flet* cl-symbol-macrolet. 2021-09-30 dickmao Fix bootstrap after recent undo-redo change * lisp/bindings.el (global-map): Don't use `kbd' here -- it breaks bootstrap (bug#50911). 2021-09-30 Kyle Meyer * etc/NEWS: Announce Org update. Update to Org 9.5 2021-09-30 Amin Bandali Add new '/wii' convenience ERC command * etc/NEWS: Announce the addition of the command. * lisp/erc/erc.el (erc-cmd-WII): Add '/wii' convenience command which calls the '/whois' command with the given nick as both arguments, which is useful for displaying the whois information for the nick along with idle time, even if the nick is on a different server than the one we are currently connected to. 2021-09-30 Amin Bandali Restore the previous order of ERC's '/whois' arguments * etc/NEWS: Remove unneeded entry. * lisp/erc/erc.el (erc-cmd-WHOIS): Restore the previous order of arguments sent to the server, so that there's no change in the function's behavior. Instead, rename the arguments to be more accurate, and expand upon them in the doc string. 2021-09-30 Stefan Kangas New command mpc-goto-playing-song * lisp/mpc.el (mpc-goto-playing-song): New command to go to the currently playing song. (mpc-mode-map): Bind it to "o". 2021-09-29 Stefan Kangas * lisp/linum.el: Recommend `display-line-numbers-mode'. 2021-09-29 Dmitry Gutov Add bindings for 'undo-redo' * etc/NEWS: Describe the change. * lisp/bindings.el (global-map): Add bindings for 'undo-redo'. * lisp/simple.el (undo-no-redo): Turn into a user option. 2021-09-29 Juri Linkov * lisp/tab-bar.el (tab-bar-move-tab-to-frame): Delete frame with last tab. 2021-09-29 Adam Porter * lisp/tab-bar.el: (tab-bar-detach-tab) New command (tab-bar-detach-tab): New command. (tab-bar-mouse-context-menu): Add menu entry. With thanks to Matt Beshara for his feedback. https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg02141.html 2021-09-29 Lars Ingebrigtsen Tweak previous message-newline-and-reformat change * lisp/gnus/message.el (message-newline-and-reformat): Only search for previous/next cited lines that have space, because it's the space we're trying to find. 2021-09-29 Lars Ingebrigtsen Cross reference `dired-do-revert-buffer' * lisp/dired-aux.el (dired-do-copy): (dired-do-symlink): (dired-do-hardlink): (dired-do-rename): Mention `dired-do-revert-buffer'. 2021-09-29 Lars Ingebrigtsen Do some NEWS taggin 2021-09-29 Stefan Kangas * etc/TODO: Delete ImageMagick items. (Bug#50891) 2021-09-29 Lars Ingebrigtsen Make `M-q' in message-mode work better * lisp/gnus/message.el (message-newline-and-reformat): Fix bug#43299 differently. (message-newline-and-reformat): Revert change for bug#43299. This fixes bug#50842. 2021-09-29 Stefan Kangas Force volume to an integer divisible by mpc-volume-step * lisp/mpc.el (mpc-volume-mouse-set): Force volume to an integer divisible by 'mpc-volume-step'. (mpc-volume-step): Add docstring. 2021-09-29 Lars Ingebrigtsen Signal an error in `search-forward-help-for-help' * lisp/help.el (search-forward-help-for-help): Error out instead of showing an empty buffer (bug#50881). 2021-09-29 Lars Ingebrigtsen Add a comment about bug#50877 for gnus-set-difference 2021-09-29 Lars Ingebrigtsen Revert "Obsolete local set difference functions in favor of seq-difference" This reverts commit 20f7fa691b7c2859b96550d9ccb326bf394e160d. gnus-set-difference is orders of magnitude faster than seq-difference (on these sets), and using seq-difference makes nnimap too slow. 2021-09-29 Michael Albinus * test/Makefile.in (WRITE_LOG): Add emacs-module-tests as problematic. 2021-09-29 Protesilaos Stavrou Update modus-themes to version 1.6.0 * doc/misc/modus-themes.org (Customization Options): Document new user options in code sample. (Option for inhibiting theme reload): Remove trailing space. (Option for mode line presentation): Include new possible value. (Option for Org agenda constructs): Include new symbols for the 'modus-themes-org-agenda' alist. (Control the scale of headings): Document 'modus-themes-scale-small'. (Override color saturation (DIY)): Fix markup for proper texi output. (Custom Org user faces (DIY)): Update code samples. (Full support for packages or face groups): Note names of newly supported packages or face groups. (Indirectly covered packages): Document indirectly supported packages. (Note on highlight-parentheses.el): Provide detailed instructions on how to use 'highlight-parentheses' with the Modus themes. (Note on prism.el): Refine code samples. (What is the best setup for legibility?): Minor rewording. (Sources of the themes): Mention only Emacs28 without explaining that it is the development target---in preparation of the emacs-28 branch cut. (Acknowledgements): Name new contributors to code/ideas. Stephen Gildea's patch was a couple lines long. The others have assigned copyright to the FSF. (Meta): Include another link to the development notes of the themes about 'modus-themes-org-agenda'. * etc/themes/modus-operandi-theme.el, etc/themes/modus-vivendi-theme.el: Bump file version. * etc/themes/modus-themes.el (modus-themes-operandi-colors) (modus-themes-vivendi-colors): Recalibrate some colour values and add a few new ones. (modus-themes-slanted-constructs): Remove obsolete user option. Superseded by the alias 'modus-themes-italic-constructs'. (modus-themes-org-agenda, modus-themes-mode-line): Update user option. (modus-themes-scale-headings, modus-themes-scale-4): Update doc string. (modus-themes-scale-5): Remove obsolete user option. Superseded by the alias 'modus-themes-scale-title'. (modus-themes-scale-small, modus-themes-tabs-accented): Add new user option. (modus-themes--agenda-date, modus-themes--mode-line-attrs) (modus-themes--tab): Update internal functions. (modus-themes-faces): Update variousface attributes. Detailed change log here: . 2021-09-29 Philip Kaludercic Remove rcirc-omit-responses-after-join option The implementation does not work as expected and behaves unpredictably. * lisp/net/rcirc.el (rcirc-omit-responses-after-join): Remove option (rcirc-joined): Remove variable (rcirc-reconnect): Remove rcirc-joined code (rcirc-get-buffer-create): Remove rcirc-joined code (rcirc-print): Remove rcirc-omit-responses-after-join check * doc/misc/rcirc.texi (Notices): Remove documentation * etc/NEWS: Remove mention 2021-09-29 Stefan Kangas New user option mpc-cover-image-re * lisp/mpc.el (mpc-cover-image-re): New user option. (mpc-format): Find cover image based on regexp given by above new user option. Treat "folder.png" as a valid cover image name. 2021-09-29 Martin Rudalics Fix 'window-toggle-side-windows' (Bug#50867) * lisp/window.el (window-toggle-side-windows): Bind 'window-combination-resize' to t around 'window-state-put' calls (Bug#50867). 2021-09-29 Michael Albinus Some inmprovements in emba CI files * test/infra/Dockerfile.emba: Remove superfluous "make -j4". * test/infra/gitlab-ci.yml (.test-template): Add 'allow_failure' clause. (test-all-inotify): Add 'needs' clause. 2021-09-29 Juri Linkov * lisp/net/dictionary.el (context-menu-dictionary): Add autoload cookie. (context-menu-functions): Remove context-menu-dictionary from hook (bug#50552) 2021-09-29 Lars Ingebrigtsen Tweak the whitespace before "This is a generic function" * lisp/emacs-lisp/cl-generic.el (cl--generic-describe): Make the number of blank lines before this section consistent (whether there's an indented section before it or not). 2021-09-29 Lars Ingebrigtsen Improve the max-specpdl-size doc string * src/eval.c (syms_of_eval): Mention what "specpdl" means. 2021-09-29 Amin Bandali Switch the order of ERC's '/whois' arguments sent to the server * lisp/erc/erc.el (erc-cmd-WHOIS): Switch the order of 'server' and 'user' arguments sent to the server. Per RFC 1459 and RFC 2812, the optional 'server' argument command comes before the 'user' argument, not after. While at it, update the doc string to explain why one may want to specify the 'server' argument. * etc/NEWS: Announce the change. 2021-09-29 Stefan Kangas * lisp/mpc.el (mpc-format): Fix printing after last format spec. 2021-09-29 Amin Bandali Unobsolete erc-compat.el * lisp/obsolete/erc-compat.el: Move from here... * lisp/erc/erc-compat.el: ...back to here. ERC will soon be added to GNU ELPA, and erc-compat.el will be used to provide compatibility functions and/or variables for using ERC on older Emacsen. * etc/NEWS: Remove the previously added obsoletion news item. 2021-09-29 Stefan Kangas * etc/NEWS: Announce Eshell bookmarks. 2021-09-29 Stefan Kangas Add bookmark.el support to eww * lisp/net/eww.el (eww-bookmark-name, eww-bookmark-make-record) (eww-bookmark-jump): New defuns. (eww-mode): Set up bookmark handler. 2021-09-29 Dmitry Gutov Enable show-paren-mode by default * etc/NEWS (https): Mention the change. * lisp/paren.el (show-paren-mode): Enable by default, as discussed on emacs-devel. 2021-09-29 Stefan Kangas * lisp/net/eww.el (eww-mode): Show keybindings in docstring. 2021-09-28 Juri Linkov * lisp/mouse.el (context-menu-map): Fix when menu is a command (bug#50851) * lisp/help.el (help--analyze-key): Get information at the position of mouse click such as 'C-h k' on a context menu item (bug#50067). 2021-09-28 Stefan Kangas Add shortdoc for text properties * lisp/emacs-lisp/shortdoc.el (text-properties): New shortdoc. e for your changes. Lines starting 2021-09-28 Stefan Kangas Mention describe-symbol in cl-defstruct docstring * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Mention 'describe-symbol' in docstring. 2021-09-28 Stefan Kangas Mention cl-describe-type in cl-defstruct docstring * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Mention 'cl-describe-type' in docstring. 2021-09-28 Stefan Monnier * lisp/emacs-lisp/map.el: Restore compatibility with Emacs-26 Don't use the new `eql` syntax. 2021-09-28 Michael Albinus Adapt tramp-tests.el for macOS * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) (tramp-test30-make-process): Adapt for macOS. 2021-09-28 Stefan Kangas * doc/man/emacs.1.in: Add --no-x-resources. (Bug#50855) 2021-09-28 Stefan Kangas Improve coding conventions for error messages * doc/lispref/tips.texi (Programming Tips): Clarify coding conventions for error messages to say that an error message can start with a Lisp symbol. (Bug#50658) 2021-09-28 Stefan Kangas Improve docstrings of ert-resource-{directory,file} * lisp/emacs-lisp/ert-x.el (ert-resource-directory) (ert-resource-file): Improve docstrings. 2021-09-28 Stefan Kangas Signal error on newline in internal--format-docstring-line * lisp/subr.el (internal--format-docstring-line): Signal error when trying to fill a line containing a newline. * lisp/cedet/semantic/decorate/mode.el (define-semantic-decoration-style): * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Don't pass newlines to 'internal--format-docstring-line'. 2021-09-28 Eli Zaretskii Make the build of source tarball produce *.eln files * lisp/emacs-lisp/comp.el (batch-native-compile): Accept an optional argument; if non-nil, place the .eln file as appropriate for building a source tarball. * doc/lispref/compile.texi (Native-Compilation Functions): Document the new optional argument of 'batch-native-compile'. * lisp/Makefile.in (.PHONY, $(THEFILE)n) [HAVE_NATIVE_COMP]: New targets. * src/Makefile.in (%.eln) [HAVE_NATIVE_COMP]: New recipe. (all) [HAVE_NATIVE_COMP]: Add ../native-lisp to prerequisites. (elnlisp) [HAVE_NATIVE_COMP]: New list of *.eln files. (../native-lisp) [HAVE_NATIVE_COMP]: New recipe. * src/verbose.mk.in (AM_V_ELN): New macro. 2021-09-28 Lars Ingebrigtsen Adjust ispell-look-command type * lisp/textmodes/ispell.el (ispell-look-command): Adjust :type after previous change. 2021-09-28 André A. Gomes Fix search of the look program * lisp/textmodes/ispell.el (ispell-look-command): Fix logic concerning the existence of the look program (bug#50852) -- search through the executable path. (ispell-look-p): Adjust logic. 2021-09-28 Lars Ingebrigtsen Use ert-resource-file in the shorthand tests Also move to the standard directory naming. 2021-09-28 Stefan Kangas checkdoc: Allow Lisp symbols to start a message * lisp/emacs-lisp/checkdoc.el (checkdoc-message-text-engine): Allow Lisp symbols to start a message. (checkdoc--error-bad-format-p): New helper function. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-test-error-format-is-good) (checkdoc-test-error-format-is-bad): New helper functions. (checkdoc-tests-error-message-bad-format-p) (checkdoc-tests-error-message-bad-format-p/defined-symbols) (checkdoc-tests-error-message-bad-format-p/not-capitalized): New tests. 2021-09-27 Ken Brown Make .eln files executable on Cygwin * Makefile.in (INSTALL_ELN): New variable, equal to $(INSTALL) on Cygwin and $(INSTALL_DATA) on other platforms. (install-eln): Use INSTALL_ELN instead of INSTALL_DATA. (Bug#50818) 2021-09-27 Michael Albinus Simplify `file-notify--rm-descriptor' * lisp/filenotify.el (file-notify--rm-descriptor): Use `file-notify-handle-event'. 2021-09-27 Juri Linkov * lisp/mouse.el (context-menu-region): Check for nil for char-after at eobp. 2021-09-27 Mattias Engdegård * lisp/progmodes/flymake.el (flymake-menu): Don't use obsolete name. 2021-09-27 Alan Third Fix GNUstep build failure * src/nsfns.m (Fns_hide_emacs): NSRunningApplication is only available in GNUstep 0.27 and above. 2021-09-27 Robert Pluim Document 'glyphless-char-display-control' changes * etc/NEWS: Document 'glyphless-char-display-control' changes for Variation Selectors. 2021-09-27 Robert Pluim Try to be consistent about user options in NEWS * etc/NEWS: Try to be consistent about calling 'user options' that instead of 'variables'. 2021-09-27 Alan Third Fix resizing glitches in NS port (bug#50413) * src/nsterm.m ([EmacsView resizeWithOldSuperviewSize:]): Use the superview's size instead of trusting the view's size. 2021-09-27 Alan Third Attempt to debug a graphical glitch on macOS * src/nsterm.m (ns_scroll_run): (ns_shift_glyphs_for_insert): Switch to using NSPoint for destination. ([EmacsView copyRect:to:]): Use NSPoint for the destination, always use the view's layer, and log any questionable copy requests. 2021-09-27 Alan Third Fix NS toolbar again (bug#50534) * src/nsmenu.m (free_frame_tool_bar): Remove toolbar. (update_frame_tool_bar_1): New function. (update_frame_tool_bar): Move most of the functionality to update_frame_tool_bar_1. * src/nsterm.h: Definitions of functions and methods. * src/nsterm.m (ns_update_begin): ([EmacsView windowDidEnterFullScreen]): ([EmacsView windowDidExitFullScreen]): We no longer need to reset the toolbar visibility as that's done when we create the new fullscreen window. ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Move the check for undecorated frames into createToolbar:. ([EmacsWindow createToolbar:]): Check whether a toolbar should be created, and run the toolbar update immediately. 2021-09-27 Stefan Kangas Fix automatic filling of docstring in cl-defstruct * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix bug where a paragraph was filled as if it were a single line, which led to garbled output in the docstring. (Bug#50839) * test/lisp/subr-tests.el (subr-test-internal--format-docstring-line): New test. 2021-09-27 Eli Zaretskii Minor fix in 'w32-find-non-USB-fonts' * lisp/term/w32-win.el (w32--filter-USB-scripts): Handle representative characters given as a vector, not a list. 2021-09-27 João Távora * etc/NEWS (Shorthands for Lisp symbols): Reword. 2021-09-27 Robert Pluim Enhance font_range to check for emoji composition triggers If the codepoint that triggered composition is from the emoji script, use the emoji font to check the string being composed, rather than the font of the first character of the string. This makes e.g. "emoji codepoint with Emoji_Presentation = No followed by VS-16 (FE0F)" display the emoji version of the glyph for that codepoint. * admin/unidata/blocks.awk: Add VS-1 through VS-16 to the emoji script. * src/composite.c (autocmp_chars): Accept additional argument CH for the codepoint that triggered composition, pass it to font_range. (composition_reseat_it, find_automatic_composition): Pass codepoint that triggered composition to autocmp_chars. * src/font.c (font_range): Accept additional argument CH for the triggering codepoint. If the codepoint is from the 'emoji' script, use Vscript_representative_chars to find the font to use for the composition attempt. (syms_of_font): Add Qemoji symbol. * src/font.h: Update font_range prototype for argument CH. * etc/NEWS: Announce change. 2021-09-27 Lars Ingebrigtsen Fix checkdoc-related test failure Fix two doc-related test failures 2021-09-27 Michael Albinus Optimize emba builds * test/infra/Dockerfile.emba (emacs-base): Install also libdbus-1-dev and libacl1-dev. * test/infra/gitlab-ci.yml (prep-image-base): Comment out. This stage is activated by default in Dockerfile.emba. 2021-09-27 Eli Zaretskii Minor stylistic fixes of shorthand code in C * src/lread.c (oblookup_considering_shorthand): Now static. Move prototype to where it belongs. (read1, Fintern, Fintern_soft, Funintern) (oblookup_considering_shorthand, syms_of_lread): Fix style of braces and indentation, comments, and doc strings. 2021-09-27 Eli Zaretskii Minor fixes of Lisp doc strings for shorthands feature * lisp/progmodes/elisp-mode.el (obarray-cache) (elisp--completion-local-symbols): * lisp/international/mule.el (hack-elisp-shorthands) (load-with-shorthands-and-code-conversion): Doc string fixes. 2021-09-27 Eli Zaretskii Minor fixes in documentation of shorthands * etc/NEWS: * doc/lispref/symbols.texi (Symbol Components, Creating Symbols) (Shorthands): Improve wording, fix indexing and typos. 2021-09-27 Lars Ingebrigtsen Make comint understand the ccrypt password phrases * lisp/comint.el (comint-password-prompt-regexp): Add the ccrypt confirmation phrase (bug#50837). * lisp/international/mule-conf.el (password-word-equivalents): Add the ccrypt phrases. 2021-09-27 Lars Ingebrigtsen Add "passwd" (change password) prompt to comint * lisp/comint.el (comint-password-prompt-regexp): Add "passwd" (to change the password) first promp in Debian bullseye. 2021-09-27 Lars Ingebrigtsen Note that the Packaging sub-nodes are mostly for maintainers * doc/lispref/package.texi (Packaging): Note that the information is mostly for ELPA maintainers (bug#50825). 2021-09-27 dickmao Get a `package-test-signed` to work again The test signing key succumbed to either expiration or bitrot. I hope I didn't just publish my secret key to the world. * test/lisp/emacs-lisp/package-resources/key.pub: Refresh. * test/lisp/emacs-lisp/package-resources/key.sec: Refresh. 2021-09-27 Lars Ingebrigtsen Move test-cl-flet-indentation to the right file 2021-09-27 Lars Ingebrigtsen Improve describe-char buffer extremely slightly * lisp/descr-text.el (describe-char): Add a colon to further signify that we're talking about the following line (bug#50795). 2021-09-27 João Távora Document shorthands in the Elisp manual section on Symbols * doc/lispref/symbols.texi (Symbol Components): Mention "Shorthands". (Creating Symbols): Mention shorthands. Correct references to Common Lisp. (Shorthands): New section. * etc/NEWS (Shorthands): New entry. 2021-09-27 João Távora Add #_ reader macro to escape shorthand renaming * src/lread.c (read1): Add skip_shorthand variable. Add a '#_' case. If skip_shorthand call oblookup instead of oblookup_considering_shorthand. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-escape): New test. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (#_f-test4---): New fixture function. 2021-09-27 João Távora Consider shorthands in Elisp's elisp-completion-at-point Instead of referencing obarray directly, that function has to consider a collection of completions which includes the shorthand versions of some of the symbols. That collection changes from buffer to buffer, depending on the choice of elisp-shorthands. To make this process efficient, and avoid needless recalculation of the above collection, a new obarray-specific cache was invented. The Elisp variable obarray-cache is immediately nullified if something touches the obarray. * lisp/progmodes/elisp-mode.el : New helper. (elisp-completion-at-point): Use new helpers. (elisp--completion-local-symbols) (elisp--fboundp-considering-shorthands) (elisp--bboundp-considering-shorthands): New helpers * src/lread.c (intern_driver): Nullify Qobarray_cache. (syms_of_lread): Add Qobarray_cache. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-completion-at-point): New test. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (f-test-complete-me): New fixture. 2021-09-27 João Távora Rework Elisp shorthands to only allow only prefix substitution This simplification in requirements makes for more complex C code but that code is much less wasteful in Lisp strings than the previous implementation. * src/lread.c (read1): Rework. (Fintern): Rework. (Fintern_soft): Rework. (Funintern): Rework. (oblookup_considering_shorthand): Rewrite. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer) (elisp-shorthand-read-from-string): Use new format of elisp-shorthands. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (f-test) (f-test2, f-test3): Use new form of elisp-shorthands. 2021-09-27 João Távora Move most of the shorthand implementation to C code It passes the tests designed for the previous Elisp implementation. Likely, this isn't the final form of the implementation. For one, the reader is much slower and allocates a Lisp string for every atom read, regardless if its already interned or not. This has the potential to be catastrophic in terms of GC. Also rename the main variable to elisp-shorthands, from the repetitive shorthand-shorthands. For some reason, I had to put 'hack-elisp-shorthands' and 'load-with-shorthands-and-code-conversion', the new source-file loading functions, in lisp/international/mule.el. Otherwise, lisp/loadup.el wouldn't see them, for some reason that I didn't investigate. This should probably be fixed. * lisp/shorthand.el: Remove. * test/lisp/shorthand-tests.el: Remove. * src/lread.c: (read1, Fintern, Fintern_soft, Funintern): Use oblookup_considering_shorthand. (oblookup_considering_shorthand): New helper. (syms_of_lread): Declare elisp-shorthands. * lisp/progmodes/elisp-mode.el (elisp-shorthands): Put a safe-local-variable spec. * test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer) (elisp-shorthand-read-from-string) (elisp-shorthand-byte-compile-a-file) (elisp-shorthand-load-a-file): New tests. * test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file * lisp/loadup.el (load-source-file-function): Set to load-with-shorthands-and-code-conversion. * lisp/international/mule.el (hack-elisp-shorthands): Move here. (load-with-shorthands-and-code-conversion): And here. 2021-09-27 João Távora First Elisp version of lisp/shorthand.el, failing some tests * lisp/shorthand.el: New file * test/lisp/shorthand-tests.el: New file 2021-09-26 Stefan Kangas Add 'doc-string' declaration to defcalcmodevar * lisp/calc/calc.el (defcalcmodevar): Add 'doc-string' declaration. 2021-09-26 Stefan Kangas Move two incorrectly named test files * test/lisp/emacs-lisp/tabulated-list-test.el: Move from here... * test/lisp/emacs-lisp/tabulated-list-tests.el: ...to here. * test/lisp/url/url-handlers-test.el: Move from here... * test/lisp/url/url-handlers-tests.el: ...to here. 2021-09-26 Stefan Kangas checkdoc: Don't add "Commentary" header to test files * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Don't add "Commentary:" header if it looks like a test file. 2021-09-26 Robert Pluim Add glyphless-char-display-control for Variation Selectors * lisp/international/characters.el (update-glyphless-char-display): (glyphless-char-display-control): Add control knob for U+FE00 through U+FE0F, defaulting to 'thin-space'. * doc/lispref/display.texi (Glyphless Chars): Document it. 2021-09-26 Stefan Kangas Explicitly make the rest of erc-compat.el obsolete * lisp/obsolete/erc-compat.el (erc-decode-coding-string) (erc-encode-coding-string, erc-set-write-file-functions) (erc-emacs-build-time, erc-replace-match-subexpression-in-string) (erc-member-if, erc-delete-if, erc-remove-if-not, erc-subseq): Explicitly declare obsolete. (erc-define-minor-mode): Make into obsolete function alias for 'define-minor-mode'. (erc-user-emacs-directory): Make into obsolete variable alias for 'user-emacs-directory'. 2021-09-26 Stefan Kangas Add fast-path to ert--explain-string-equal * lisp/emacs-lisp/ert.el (ert--explain-string-equal): Add fast-path to avoid doing extra work. Problem reported by Mattias Engdegård . 2021-09-26 Michael Albinus * test/infra/gitlab-ci.yml (variables): Set DOCKER_BUILDKIT. 2021-09-26 Stefan Kangas Rename "Homepage" field to "Website" in package description * lisp/emacs-lisp/package.el (describe-package-1): Rename "Homepage" field to "Website". * test/lisp/emacs-lisp/package-tests.el (package-test-describe-package) (package-test-describe-installed-multi-file-package) (package-test-describe-non-installed-package) (package-test-describe-non-installed-multi-file-package): Update tests. 2021-09-26 Stefan Kangas Prefer https for other domains than gnu.org in package URL * lisp/emacs-lisp/package.el (describe-package-1): Prefer https for some other common domains in the package URL. 2021-09-26 Stefan Kangas Add test for lm-website * lisp/emacs-lisp/lisp-mnt.el (lm-website): Use rx. * test/lisp/emacs-lisp/lisp-mnt-tests.el (lm--tests-lm-website): New test. 2021-09-26 Mattias Engdegård Rx documentation touch-ups (bug#46910) * doc/lispref/searching.texi (Rx Constructs, Rx Functions): Add clarifications and improve naming of arguments. Add examples illustrating the differences between `rx` and `rx-to-string`. 2021-09-26 Stefan Kangas Warn about overly long docstring in lambda * lisp/emacs-lisp/bytecomp.el (byte-compile-docstring-length-warn): Warn about overly long docstring in lambda. (Bug#44858) (byte-compile--wide-docstring-p): Improve comment. * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-wide-docstring-defun.el"): Update to test for the above new warning. 2021-09-26 Stefan Kangas Avoid warning about long docstring lines in defcustom * lisp/custom.el (defcustom): Avoid warning about long docstring lines. This was caused by the value of the defcustom being treated as docstring due to it being wrapped in a lambda. 2021-09-26 Stefan Kangas Fill some auto-generated docstring lines * lisp/cedet/mode-local.el (define-mode-local-override): * lisp/cedet/semantic/decorate/mode.el (define-semantic-decoration-style): * lisp/cedet/semantic/idle.el (define-semantic-idle-service): * lisp/emacs-lisp/derived.el (derived-mode-make-docstring): * lisp/emacs-lisp/eieio.el (defclass): Fill auto-generated docstring lines. 2021-09-26 Stefan Kangas Avoid false positives in bytecomp docstring width warning * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Ignore more function argument lists. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests-byte-compile--wide-docstring-p): New test. 2021-09-26 Stefan Kangas Improve filling of generated docstring lines * lisp/subr.el (internal--fill-string-single-line): Improve filling to use full width. Fix bug where line was not wrapped correctly. 2021-09-26 Stefan Kangas ert: Add basic explainer for string-equal * lisp/emacs-lisp/ert.el (ert--explain-string-equal): Add basic explainer for 'string-equal' based on 'ert--explain-equal'. 2021-09-26 Stefan Kangas Unbreak ert tests * test/lisp/emacs-lisp/tabulated-list-test.el (tabulated-list-print) (tabulated-list-sort): Update tests for recent change. 2021-09-26 Stefan Kangas Doc fix: mode name in local variables needs no suffix * doc/emacs/custom.texi (Specifying File Variables): Clarify that a mode name does not need the "-mode" suffix. (Bug#50801) 2021-09-26 Stefan Kangas checkdoc: Library footer must match package.el requirement * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Don't accept footer format unless it matches the requirement in package.el. 2021-09-26 Michael Albinus Adapt Tramp's make-process for macOS. * lisp/net/tramp-sh.el (tramp-check-remote-uname): New defun. (tramp-sh-handle-file-ownership-preserved-p) (tramp-sh-handle-make-process, tramp-find-executable) (tramp-find-shell, tramp-get-remote-stat): Use it. (Bug#50748) * test/lisp/net/tramp-tests.el (tramp-check-remote-uname): Declare. (tramp-test29-start-file-process, tramp-test30-make-process): Instrument for macOS. (tramp--test-hpux-p): Adapt function. (tramp--test-macos-p): New defun. 2021-09-26 Lars Ingebrigtsen Expand the ` doc string slightly * lisp/emacs-lisp/backquote.el (backquote): Note that ` is used for other things in some macros (bug#25462). 2021-09-26 Lars Ingebrigtsen Fix rendering non-ASCII text with links * lisp/gnus/mm-view.el (mm-text-html-renderer-alist): Add a new form for links. (mm-links-remove-leading-blank): Make obsolete. (mm-inline-wash-with-file): (mm-inline-render-with-file): Make obsolete -- they were awkwardly defined and only used with links. (mm-inline-render-with-links): New function. 2021-09-26 Lars Ingebrigtsen Add new macro with-environment-variables * doc/lispref/os.texi (System Environment): Document it. * lisp/env.el (with-environment-variables): New macro. 2021-09-25 Stefan Kangas Revert "; Fix capitalization of F1..F12 keys in docs" This reverts commit fe5b20410f68546821e6c87577d7f826167491dc. This change was not correct; these are Lisp symbols that should be in lower-case. Problem reported by Mattias Engdegård . 2021-09-25 Stefan Kangas Revert part of previous doc fix * lisp/emacs-lisp/derived.el (define-derived-mode): Revert part of previous doc fix. This change made the text confusing. (Bug#17567) 2021-09-25 Juri Linkov * lisp/tab-bar.el (tab-bar-new-tab-to): Use ignore-window-parameters. Suggested by Adam Porter in https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01758.html 2021-09-25 Adam Porter * lisp/tab-line.el: Add modified-buffer face (tab-line-tab-modified): New face. (tab-line-tab-face-modified): New function. (tab-line-tab-face-functions): Use new function. * etc/NEWS: Update. 2021-09-25 Mattias Engdegård Fix byte-compiler crash for legal dynamic-binding code This should really be taken care of by a syntax normalisation step in the frontend, but there is no such step for non-lexbind code yet. * lisp/emacs-lisp/byte-opt.el (byte-optimize-letX): Tolerate bindingsa without initialising expressions. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test cases. 2021-09-25 Mattias Engdegård Constant-propagate variables bound outside loops Previously, variables bound outside `while` loops were not substituted inside even in the absence of mutation. Add the necessary mutation checking inside loops to allow propagation of values and aliased variables. * lisp/emacs-lisp/byte-opt.el (byte-optimize--inhibit-outside-loop-constprop): New variable. (byte-optimize-form-code-walker): First traverse each loop without substitution to discover mutation, then without restrictions. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-loop): New. (bytecomp-tests--test-cases): Add test cases. 2021-09-25 Mattias Engdegård Use ambient lexical-binding value in ert-deftest body (bug#50738) * lisp/emacs-lisp/ert.el (ert-deftest): Evaluate the body of `ert-deftest` with the `lexical-binding` value of the source file (or more precisely the value in force when the definition is evaluated), which is what everyone expected, instead of always using dynamic binding which is what they got until now. * test/lisp/emacs-lisp/ert-tests.el (ert-test-deftest-lexical-binding-t): New test. 2021-09-25 Mattias Engdegård Renege on anonymous &rest (bug#50268, bug#50720) Allowing &rest without a variable name following turned out not to be very useful, and it never worked properly. Disallow it. * lisp/emacs-lisp/bytecomp.el (byte-compile-check-lambda-list): * src/eval.c (funcall_lambda): Signal error for &rest without variable name. * doc/lispref/functions.texi (Argument List): Adjust manual. * etc/NEWS (file): Announce. * test/src/eval-tests.el (eval-tests--bugs-24912-and-24913): Extend test, also checking with and without lexical binding. (eval-tests-accept-empty-optional-rest): Reduce to... (eval-tests-accept-empty-optional): ...this, again checking with and without lexical binding. 2021-09-25 Stefan Kangas Clarify define-derived-mode docstring * lisp/emacs-lisp/derived.el (define-derived-mode): Doc fixes; correctly mention that the mode name is used in the mode line, clarify argument types, and how the mode hook is named. (Bug17567) (derived-mode-hook-name, derived-mode-map-name) (derived-mode-syntax-table-name, derived-mode-abbrev-table-name): Clarify that argument is a symbol. 2021-09-25 Philip Kaludercic Add myself as rcirc maintainer * lisp/net/rcirc.el (rcirc-sentinel): Use process-status * doc/misc/rcirc.texi (Using rcirc with bouncers): Remove confusing sentence * lisp/net/rcirc.el (rcirc-reconnect): Use rcirc-reconnect-delay * lisp/net/rcirc.el (rcirc-reconnect): Set rcirc-joined 2021-09-25 Stefan Kangas * lisp/isearch.el (isearch-forward-regexp): Doc fix. (Bug22483) 2021-09-25 Stefan Kangas Minor clarification of define-minor-mode :keymap argument * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Minor doc fix; clarify by saying that ":keymap" should be an "unquoted variable name". (Bug#25505) 2021-09-25 Stefan Kangas Buttonize functions in curved quotes in ERC * lisp/erc/erc-button.el (erc-button-alist): Buttonize Emacs functions in curved quotes. (Bug#49964) 2021-09-25 Stefan Kangas Extend and improve ERT manual section on running interactively * doc/misc/ert.texi (Running Tests Interactively): Format commands in a table, improve indexing, and add several missing commands. (Bug#41829) 2021-09-25 Stephen Gildea Update mh-scan regexp to match mh-note-allowlisted lisp/mh-e/mh-scan.el (mh-scan-good-msg-regexp, mh-scan-cmd-note-width): Update to match new value ("A") of mh-note-allowlisted. 2021-09-25 Lars Ingebrigtsen Document the new paren-space indentation rule * doc/emacs/programs.texi (Lisp Indent): Mention the new paren-space indentation rule. 2021-09-25 Lars Ingebrigtsen Some NEWS tagging 2021-09-25 Lars Ingebrigtsen 'xref-search-program'-related doc string fixes * lisp/progmodes/xref.el (xref-search-program): Mention what this variable controls. (xref-matches-in-files): Mention the variables that controls it. 2021-09-25 Lars Ingebrigtsen Document the 'string' thingatpt target * doc/lispref/text.texi (Buffer Contents): Mention the 'string' target. 2021-09-25 Eli Zaretskii Fix cursor motion around some Emoji sequences * src/character.h: Add TAG_SPACE and CANCEL_TAG to known Unicode characters values. * src/composite.c (char_composable_p): Recognize TAG characters relevant to Emoji as composable regardless of their General Category. (Bug#39799) 2021-09-25 Eli Zaretskii Use explicit man-page section in references * lisp/dired-aux.el (dired-do-chmod): Use explicit man-page section in the doc string. This avoids inadvertently showing the wrong man page, when several identically-named pages are possible in different sections. E.g., there's also chmod(2). 2021-09-25 Lars Ingebrigtsen save-some-buffers-root doc string change * lisp/files.el (save-some-buffers-root): Improve doc string. 2021-09-25 Lars Ingebrigtsen Do some NEWS tagging 2021-09-25 Lars Ingebrigtsen Document redisplay-skip-fontification-on-input * doc/emacs/display.texi (Scrolling): Mention redisplay-skip-fontification-on-input. 2021-09-25 Lars Ingebrigtsen Add new user option ispell-help-timeout * lisp/textmodes/ispell.el (ispell-help-timeout): New user option. (ispell-help): Use it. 2021-09-25 Stefan Kangas Set :type of suggest-key-bindings to natnum * lisp/simple.el (suggest-key-bindings): Set :type to natnum. (Bug#15809) 2021-09-25 Stefan Kangas New :type natnum for defcustom * lisp/wid-edit.el (natnum): New widget type. (Bug#15809) * doc/lispref/customize.texi (Simple Types): Document it. 2021-09-25 Stefan Kangas * lisp/dired-aux.el (dired-do-chmod): Simplify docstring. 2021-09-25 Stefan Kangas Add support for man page hyperlinks in doc strings * lisp/help-mode.el (help-man): New button type. (help-xref-man-regexp): New const. (help-make-xrefs): Use them to allow making man page buttons. * doc/lispref/tips.texi (Documentation Tips): Document the new hyperlink type. (Bug#39215) 2021-09-25 Lars Ingebrigtsen Fix some instances in the Emacs manual with misleading prefix syntax * doc/emacs/msdos.texi (Windows Keyboard): * doc/emacs/misc.texi (Editing Binary Files): * doc/emacs/macos.texi (Mac / GNUstep Events): * doc/emacs/kmacro.texi (Basic Keyboard Macro): * doc/emacs/glossary.texi (Glossary): * doc/emacs/fixit.texi (Spelling): Fix some instances where the syntax seems to imply we're talking about a prefix key (bug#50792). 2021-09-25 Manuel Giraud Make 'C-u C-x v v' handle unregistered files. * lisp/vc/vc.el (vc-next-action): Make 'C-u C-x v v' handle unregistered files (bug#50602). 2021-09-25 Daniel Martín Mention the 'r' key in ask-user-about-supersession-help * lisp/userlock.el (ask-user-about-supersession-help): Replace "n, and then M-x revert-buffer" in the help message with "r", which does the same thing. (Bug#50780) 2021-09-25 akater Indent bodies of local function definitions properly in elisp-mode * lisp/emacs-lisp/lisp-mode.el (lisp-indent-function): Check for local defforms (`cl-flet' and `cl-labels'). (lisp--local-defform-body): New auxiliary function (bug#9622). 2021-09-25 Stefan Kangas Clarify where to find CONTRIBUTE * doc/emacs/trouble.texi (Contributing): Say that CONTRIBUTE is found in the development version of Emacs. (Bug#37414) 2021-09-25 Lars Ingebrigtsen Use gzip to uncompess .xz files on MacOS * lisp/jka-cmpr-hook.el (jka-compr-compression-info-list): Use gzip to uncompess .xz files on MacOS (bug#29235). 2021-09-25 Lars Ingebrigtsen Use `temporary-file-directory' in `with-existing-directory' * lisp/subr.el (with-existing-directory): Use `temporary-file-directory' over TMPDIR. 2021-09-25 Stefan Kangas Fix alignment on font size change in tabulated-list-mode * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col): Fix bug where the columns didn't align correctly when using 'text-scale-mode' to decrease the font size. (Bug#48639) 2021-09-25 Stefan Kangas Doc fix; cl-random is only pseudo-random * lisp/emacs-lisp/cl-extra.el (cl-random): Doc fix; say it's only pseudo-random. 2021-09-24 Stefan Kangas checkdoc: Don't ask to disambiguate mode names * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): Don't ask to disambiguate mode names. (Bug#4110) 2021-09-24 Stefan Kangas Fix recently introduced bug in checkdoc * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Fix recently introduced bug where some abbreviations weren't recognized. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests-in-abbrevation-p/basic-case): Extend test. 2021-09-24 Stefan Kangas Revert change to use seq-random-elt in Tramp test * test/lisp/net/tramp-tests.el (tramp-test44-asynchronous-requests): Revert change to use seq-random-elt, as Tramp needs to be compatible with Emacs 25, and the function was only added in 26.1. 2021-09-24 Stefan Kangas checkdoc: Improve wide line warning to decrease false positives * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): Respect 'byte-compile-docstring-max-column' if it is set. Allow the first line to be three characters longer than the others to account for indentation and the opening string character. 2021-09-24 Stefan Kangas Use command substitution instead of raw keys in more places * admin/authors.el (authors): * lisp/abbrev.el (abbrev-suggest-show-report): * lisp/calc/calc.el (calc-display-trail, calc): * lisp/completion.el (completion-locate-db-error): * lisp/dired-x.el (dired-extra-startup): * lisp/emacs-lisp/package.el (package-install-selected-packages): * lisp/emulation/viper.el (viper-mode): * lisp/facemenu.el (list-colors-display): * lisp/mail/emacsbug.el (report-emacs-bug-hook): * lisp/mail/sendmail.el (mail): * lisp/menu-bar.el (menu-bar-mode): * lisp/org/org.el (org-revert-all-org-buffers): * lisp/progmodes/antlr-mode.el (antlr-help-rules-intro) (antlr-insert-makefile-rules): * lisp/progmodes/gdb-mi.el (gdb--check-interpreter): * lisp/progmodes/xscheme.el (xscheme-process-sentinel): * lisp/ps-print.el (ps-font-info-database): * lisp/recentf.el (recentf-edit-list, recentf-open-files): * lisp/vc/ediff-util.el (ediff-suspend): * lisp/vc/pcvs.el (cvs-mode): * lisp/vc/vc-bzr.el (vc-bzr-dir-extra-headers): Use command substitution. 2021-09-24 Stefan Kangas Prefer seq-random-elt to nth+random * lisp/emacs-lisp/seq.el (seq-random-elt): Autoload. * lisp/avoid.el (mouse-avoidance-random-shape): * lisp/epa-ks.el (epa-ks--query-url): * lisp/erc/erc-networks.el (erc-server-select): * lisp/gnus/gnus-fun.el (gnus--random-face-with-type) (gnus-fun-ppm-change-string): * lisp/net/soap-inspect.el (soap-sample-value-for-xs-simple-type): * lisp/obsolete/landmark.el (landmark-random-move): * lisp/play/mpuz.el (mpuz-build-random-perm): * lisp/play/zone.el (zone-pgm-stress): * lisp/vc/add-log.el (add-change-log-entry): * test/lisp/net/tramp-tests.el (tramp-test44-asynchronous-requests): Prefer seq-random-elt to nth+random. 2021-09-24 Michael Albinus Fix auto-revert-test05-global-notify * test/lisp/autorevert-tests.el (auto-revert-test05-global-notify): Adapt test for killed buffer. 2021-09-24 Robert Pluim Generate skin tone compositions from emoji-sequences.txt Read skin tone modifier sequences from emoji-sequences.txt and add them to the per-character composition rules derived from emoji-zwj-sequences.txt, rather than adding them as lookback rules for the skin tone modifiers. This avoids an issue with the application of such lookback rules. See Bug#39799, specifically for more details. * admin/unidata/Makefile.in (zwj): Add emoji-sequences.txt as a dependency. * admin/unidata/emoji-zwj.awk: Match RGI_Emoji_ZWJ_Sequence and RGI_Emoji_Modifier_Sequence. Remove manual addition of skin tone composition rules with lookback. 2021-09-24 Robert Pluim Add a few more missing emoji overrides * admin/unidata/blocks.awk: Add some more emoji overrides. 2021-09-24 Robert Pluim Move compose-gstring-for-variation-glyph It logically belongs in composite.el, not japanese.el * lisp/language/japanese.el (compose-gstring-for-variation-glyph): Remove from here. * lisp/composite.el (compose-gstring-for-variation-glyph): And add here. 2021-09-24 Robert Pluim Update provenance comment in charscript.el * admin/unidata/blocks.awk: Update comment about sources used to generate charscript.el. 2021-09-24 Juri Linkov * lisp/gnus/mm-uu.el (mm-uu-type-alist): Add markdown-diff/-emacs-sources (Bug#50763) 2021-09-24 Juri Linkov New thing-at-point target 'string' used in context-menu-region * lisp/mouse.el (context-menu-region): Use separate "List" and "String". * lisp/thingatpt.el (string): New target 'string'. (thing-at-point-bounds-of-string-at-point): New function. (thing-at-point-bounds-of-list-at-point): Revert previous commit by removing optional args 'escape-strings' and 'no-syntax-crossing'. (list-or-string): Remove recently added target 'list-or-string'. (thing-at-point-bounds-of-list-or-string-at-point): Remove function. https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01737.html 2021-09-24 Basil L. Contovounesios Pacify recent warnings in ansi-color-tests.el * test/lisp/ansi-color-tests.el: Remove invalid package keyword 'ansi', and unused dependency on cl-lib. (yellow, bright-yellow): Replace prefix-less dynvars with corresponding local lexvars. (test-strings): Rename prefix-less dynvar... (ansi-color-tests--strings): ...to this. All users updated. (ansi-color-apply-on-region-test) (ansi-color-apply-on-region-bold-is-bright-test): Simplify. (ansi-color-apply-on-region-preserving-test): Reindent. 2021-09-23 Lars Ingebrigtsen Add `info-lookup-symbol' to the menu * lisp/menu-bar.el (menu-bar-search-documentation-menu): Add entry for `info-lookup-symbol' (bug#50759). 2021-09-23 Lars Ingebrigtsen Add s Symbol entry in the glossary * doc/emacs/glossary.texi (Glossary): Add an entry for Symbol (bug#50760). 2021-09-23 Konstantin Kharlamov Do not count git markers as "deleted lines" * lisp/vc/diff-mode.el (diff-fixup-modifs): Skip "end of patch" markers that `git-format-patch` leaves around (bug#50761). 2021-09-23 Miha Rihtaršič Fix problems with 'C-c C-n' in sh-script-mode * lisp/progmodes/sh-script.el (sh-shell-process): If a *shell* buffer doesn't exist, 'C-c C-n' creates one and displays it. This patch prevents it from being displayed in the selected window. Additionally, it ensures that the local `sh-shell-process' variable is set in the correct buffer (bug#50765). 2021-09-23 Stefan Kangas checkdoc: Add abbreviation and simplify * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Add abbreviation "a.k.a.". Simplify. 2021-09-23 Lars Ingebrigtsen Fix typo in previous man.el change * lisp/man.el (Man-ansi-color-map): Fix typo in last checkin. 2021-09-23 Jim Porter Add support for "bright" ANSI colors in term-mode * lisp/term.el (ansi-term-color-vector): Add new faces. (term-color-black, term-color-red, term-color-green, term-color-yellow) (term-color-blue, term-color-magenta, term-color-cyan, term-color-white): Inherit from 'ansi-color-COLOR'. (term-color-bright-black, term-color-bright-red, term-color-bright-green) (term-color-bright-yellow, term-color-bright-blue) (term-color-bright-magenta, term-color-bright-cyan) (term-color-bright-white): New faces. (term--maybe-brighten-color): New function. (term-handle-colors-array): Handle bright colors. * test/lisp/term-tests.el (term-colors, term-colors-bold-is-bright): New functions. 2021-09-23 Jim Porter Add support for "bright" ANSI colors in ansi-color * lisp/ansi-color.el (ansi-color-bold, ansi-color-faint, ansi-color-italic) (ansi-color-underline, ansi-color-slow-blink, ansi-color-fast-blink) (ansi-color-inverse, ansi-color-red, ansi-color-green, ansi-color-yellow) (ansi-color-blue, ansi-color-magenta, ansi-color-cyan, ansi-color-white) (ansi-color-bright-red, ansi-color-bright-green, ansi-color-bright-yellow) (ansi-color-bright-blue, ansi-color-bright-magenta, ansi-color-bright-cyan) (ansi-color-bright-white): New faces. (ansi-color-basic-faces-vector, ansi-color-normal-colors-vector) (ansi-color-bright-colors-vector): New constants. (ansi-color-faces-vector, ansi-color-names-vector): Make obsolete. (ansi-color-bold-is-bright): New defcustom. (ansi-color--find-face): Sort ANSI codes and check 'ansi-color-bold-is-bright'. (ansi-color-apply-sequence): Support bright ANSI colors. (ansi-color-make-color-map, ansi-color-map, ansi-color-map-update): Make obsolete. (ansi-color-get-face-1): Add BRIGHT parameter. * lisp/man.el (Man-ansi-color-basic-faces-vector): New variable. (Man-ansi-color-map): Make obsolete. (Man-fontify-manpage): Use 'Man-ansi-color-basic-faces-vector' here. * test/lisp/ansi-color-tests.el (ansi-color-apply-on-region-bold-is-bright-test): New function. 2021-09-23 Stefan Kangas Avoid jumping too far in checkdoc-in-abbreviation-p * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): Use 'forward-ward' instead of 'forward-sexp' to avoid jumping too far in some situations. (Bug#50731) * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests--abbrev-test): New helper function. (checkdoc-tests-in-abbrevation-p/basic-case): Rename from 'checkdoc-tests-in-abbrevation-p'. (checkdoc-tests-in-abbrevation-p/with-parens) (checkdoc-tests-in-abbrevation-p/with-escaped-parens): Use above new helper function. (checkdoc-tests-in-abbrevation-p/single-char) (checkdoc-tests-in-abbrevation-p/with-em-dash) (checkdoc-tests-in-abbrevation-p/incorrect-abbreviation): New tests. 2021-09-23 Philip Kaludercic Handle updates flags when setting flags * lisp/gnus/nnmaildir.el (nnmaildir--article-set-flags): Handle updated flags more gracefully. 2021-09-23 Dmitry Gutov A bit less overhead when converting hits * lisp/progmodes/xref.el (xref--collect-matches): Move 'remote-id' and 'syntax-needed' definitions to the caller function. Bind 'inhibit-modification-hooks' to t (bug#50733). 2021-09-23 Dmitry Gutov More per-match overhead reduction * lisp/progmodes/xref.el (xref--show-common-initialize) (xref-revert-buffer): Inhibit modification hooks (bug#50733). (xref--insert-xrefs): Cosmetics (no measurable difference here). 2021-09-23 Dmitry Gutov xref-matches-in-files: Decrease per match and per group overhead * lisp/progmodes/xref.el (xref-search-program-alist): Add '--null' argument for slightly faster parsing and probably better behavior with weirder file names. (xref--alistify): Don't accept TEST argument, use 'assoc' instead of 'cl-assoc', use a tash table during sorting (bug#50733). 2021-09-23 Philip Kaludercic Fix string-distance for two empty strings * src/fns.c (Fstring_distance): Avoid using uninitialized memory. * test/src/fns-tests.el (test-string-distance): Add test cases. 2021-09-23 Juri Linkov * lisp/mouse.el (context-menu-region): Use save-excursion for syntax-ppss. 2021-09-23 Juri Linkov New thing-at-point target 'list-or-string' used in context-menu-region * lisp/mouse.el (context-menu-region): Rearrange the order to All>Defun>List>Line>Symbol. Show title either "List" or "String" depending on syntax-ppss, then use thing 'list-or-string' (bug#9054). * lisp/thingatpt.el (thing-at-point-bounds-of-list-at-point): Add optional args 'escape-strings' and 'no-syntax-crossing' like in 'up-list'. (list-or-string): New target 'list-or-string'. (thing-at-point-bounds-of-list-or-string-at-point): New function. 2021-09-23 Juri Linkov * lisp/outline.el (outline-minor-mode-cycle-filter): New defcustom (bug#50679) (outline-minor-mode-cycle--bind): New helper function. (outline-minor-mode-cycle-map): Rename from outline-mode-cycle-map. (outline-mode-map): Revert part of 6458e16f33 to disassociate keymaps outline-mode-map and outline-minor-mode-cycle-map. (outline-font-lock-keywords, outline-minor-mode-highlight-buffer): Use outline-minor-mode-cycle-map instead of outline-mode-cycle-map. * lisp/help.el (describe-bindings): Rename outline-mode-cycle-map to outline-minor-mode-cycle-map. 2021-09-23 Michael Albinus * test/infra/Dockerfile.emba: Do not run 'make -j4 bootstrap'. 2021-09-23 Michael Albinus Fix Tramp's make-process on macOS * lisp/net/tramp-sh.el (tramp-get-remote-mknod-or-mkfifo): New defun. (tramp-sh-handle-make-process): Use it. (Bug#50748) 2021-09-23 Michael Albinus * lisp/net/tramp-cmds.el (tramp-cleanup-connection): Remove trace buffer. 2021-09-23 Philip Kaludercic Add aggregate project discovery and maintenance functions * lisp/progmodes/project.el (project-remember-project): Add optional no-write argument. (project-remember-projects-under): Add command. (project-forget-zombie-projects): Add command. (project-forget-projects-under): Add command. * etc/NEWS: Document new commands. 2021-09-23 Dmitry Gutov Fix vc-annotate-show-log-revision-at-line * lisp/vc/vc-annotate.el (vc-annotate-show-log-revision-at-line): Stop from being affected by 'vc-git-print-log-follow'. * lisp/vc/vc-git.el (vc-git-print-log-follow): Mention caveats in a comment. 2021-09-23 Wilson Snyder verilog-mode.el: Backout part of recent change showing wrong comment 2021-09-23 Stefan Kangas Clarify which-function tooltip text * lisp/progmodes/which-func.el (which-func-format): Clarify tooltip text. 2021-09-23 Robert Pluim Improve NEWS entry for 'ffap-file-name-with-spaces' * etc/NEWS: Mention default value of 'ffap-file-name-with-spaces'. 2021-09-23 Martin Rudalics ;* lisp/whitespace.el (whitespace-display-window): Add doc-string. 2021-09-23 Lars Ingebrigtsen Clarify align-regexp doc string * lisp/align.el (align-regexp): Clarify what REGEXP has to contain, and which bits are added automatically interactively (bug#33541). 2021-09-23 Stefan Kangas Add section to refcard explaining our keybinding notation * etc/refcards/refcard.tex (Starting Emacs): Delete section. (Key Binding Notation): New section. (Bug#41403) 2021-09-23 Stefan Kangas Use lexical-binding in emoji-zwj.el * admin/unidata/emoji-zwj.awk: Add lexical-binding cookie to generated fie emoji-zwj.el. 2021-09-23 Lars Ingebrigtsen Expand the `match-string' doc string * lisp/subr.el (match-string): Mention some caveats (bug#34214). 2021-09-22 Lars Ingebrigtsen Improve error messaging from byte-compiling dotted lists * lisp/emacs-lisp/cconv.el (cconv-analyze-form): Improve error messaging when byte-compiling dotted lists (bug#35186). Test case -- byte-compile the following file: ;;; -*- lexical-binding: t -*- (defun foo () (+ 1 2) (a . b)) 2021-09-22 Lars Ingebrigtsen Move 'kdb-macro-redisplay' key binding * doc/emacs/kmacro.texi (Basic Keyboard Macro): Adjust. * lisp/kmacro.el (kmacro-keymap): Move 'kdb-macro-redisplay' to `C-x C-k d' since upper-case letters are reserved for users (bug#50727). 2021-09-22 Dmitry Gutov Put './' in the project directory completions * lisp/progmodes/project.el (project--read-file-cpd-relative): Put './' in the completions set when cpd was in the original (bug#50732). 2021-09-22 Juri Linkov Many improvements for Context Menus (bug#9054) * lisp/menu-bar.el (menu-bar-showhide-menu): Add "Context Menus". * lisp/mouse.el (context-menu-undo): Add "in Region" to the titles when the region is active. (context-menu-region): Use 'mouse-yank-from-menu' in menu items created from 'yank-menu' for submenu "Paste from Kill Menu". (context-menu-region): Add submenu "Select" with things to mark. (mark-thing-at-mouse, mouse-yank-from-menu): New functions. * lisp/thingatpt.el (bounds-of-thing-at-mouse): New function. * lisp/progmodes/elisp-mode.el (elisp-context-menu): * lisp/progmodes/prog-mode.el (prog-context-menu): Use full symbol/identifier names in :help strings. Suggested by Martin Rudalics 2021-09-22 Eli Zaretskii Fix build with native compilation but without zlib * src/comp.c (comp_hash_source_file): Condition code that requires zlib with HAVE_ZLIB. * etc/NEWS: Explain that '--without-compress-install' is necessary when configuring with native compilation but without zlib. 2021-09-22 Wilson Snyder verilog-mode.el: Enable lexical binding, and merge from upstream. * lisp/progmodes/verilog-mode.el: Enable lexical binding. Templates that used the never-documented `inst' or `submod' variables may need to change to use vl-... variables. (verilog-at-constraint-p): Fix indentation on double curly brackets (#1719) (#1744). Reported by Nikolay Puzanov. 2021-09-22 Mattias Engdegård Don't rely on lexical-binding being nil in tests * test/lisp/button-tests.el (button--help-echo-form): * test/lisp/files-tests.el (files-tests-permanent-local-variables): Remove assumption that `with-temp-buffer` creates a buffer where `lexical-binding` is nil. 2021-09-22 Eli Zaretskii Doc string fixes in comp.e * src/comp.c (Fcomp_el_to_eln_filename) (Fcomp_el_to_eln_rel_filename): Doc fix. 2021-09-22 Eli Zaretskii Update comments warning about GC-resistant C programming * src/eval.c: Remove an outdated comment about protection from GC. * src/buffer.h: * src/lisp.h: Add warnings about using 'char *' pointers to text of Lisp strings and buffer text in code that could GC. Reported by Po Lu 2021-09-22 Daniel Fleischer Native compilation on macOS: libgccjit not found * etc/PROBLEMS: Describe the problem with libgccjit setup on macOS. (Bug#50411) 2021-09-22 Lars Ingebrigtsen Speed up `replace-match' slightly * src/search.c (Freplace_match): Speed up non-literal (but actually literal) common case. This makes (benchmark-run 1000000 (replace-regexp-in-string "a+" "foo" "ogihdipofdhookfdohkfdpokhpokhfdpokfdhpokfdhkdfkhgoadfphokfkhpofdkhkdpokf")) about 10% faster. 2021-09-22 Stephen Gildea Migrate MH-E functional tests from SourceForge * test/lisp/mh-e/mh-limit-tests.el: * test/lisp/mh-e/mh-utils-tests.el: * test/lisp/mh-e/mh-xface-tests.el: Import the functional tests from src/mh-unit.el. mh-unit.el is from the old SourceForge mh-e repository, last changed in 2017. To this are applied unmerged patches Mike Kupfer wrote in 2018 ("Refactor mh-unit into functional and release tests" and "Fix the functional tests"). All tests have been converted to run under Emacs's ERT framework. Some tests for mh-utils use MH programs to examine mail folders. These tests require an MH variant to be installed on the system; for these, added both a mock harness that pretends the needed files and MH programs do exist, and a wrapper that creates the necessary mail files. New function 'mh-test-utils-setup-with-variant' bears some resemblance to 'mh-test-folders-set-up' from the original tests. New function 'mh-test-utils-setup-with-mocks' is new functionality for these tests. 2021-09-22 Lars Ingebrigtsen Change how thread-first/thread-last indent the first argument * lisp/doc-view.el (doc-view--current-cache-dir): Reindent. * lisp/emacs-lisp/subr-x.el (thread-first): (thread-last): Change indentation to match examples. (internal--build-binding): Reindent. * test/lisp/emacs-lisp/subr-x-tests.el (subr-x-test-thread-first-function-names-are-threaded): (subr-x-test-thread-first-examples): (subr-x-test-thread-last-function-names-are-threaded): (subr-x-test-thread-last-examples): Reindent. 2021-09-21 Lars Ingebrigtsen Make global-auto-revert-non-file-buffers work better * lisp/autorevert.el (global-auto-revert-mode): Always switch on the non-file tracking. (auto-revert--global-possibly-adopt-current-buffer): New function to respect dynamically changing `global-auto-revert-non-file-buffers'. 2021-09-21 Stefan Monnier (etc-authors-mode--hide-local-variables): Obfuscate more efficiently 2021-09-21 Stefan Kangas Fix warning in etc-authors-mode.el * lisp/textmodes/etc-authors-mode.el (etc-authors-mode--hide-local-variables): Avoid warning. 2021-09-21 Lars Ingebrigtsen Don't quote nil and t in doc strings and comments * test/src/minibuf-tests.el (test-try-completion-ignore-case): * test/lisp/url/url-auth-tests.el (url-auth-test-digest-auth-retrieve-cache): * test/lisp/subr-tests.el (subr-tests-add-hook-depth): * test/lisp/so-long-tests/so-long-tests.el (so-long-tests-invisible-buffer-function): * test/lisp/emacs-lisp/tabulated-list-test.el (tabulated-list-sort): * src/xfaces.c: * src/process.c (Finterrupt_process): (syms_of_process): * src/minibuf.c (Fread_from_minibuffer): (Fcompleting_read): (syms_of_minibuf): * src/dispnew.c (syms_of_display): * src/data.c: * lisp/so-long.el (so-long--hack-local-variables): * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): (elisp--xref-find-definitions): * lisp/org/ox-html.el (org-html-htmlize-output-type): * lisp/org/org-agenda.el (org-agenda-do-in-region): * lisp/net/tramp.el: * lisp/minibuffer.el (set-minibuffer-message): * lisp/isearch.el (isearch-wrap-pause): (isearch-repeat-on-direction-change): * lisp/emacs-lisp/timer.el (timer): * lisp/emacs-lisp/package.el (package-read-archive-contents): * lisp/emacs-lisp/faceup.el (faceup-next-property-change): * lisp/emacs-lisp/comp.el (comp-func): * lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p): * lisp/emacs-lisp/cl-macs.el (cl-do): (cl-do*): (cl--self-tco): * lisp/emacs-lisp/bytecomp.el (byte-compile-unresolved-functions): (byte-compile-cond-jump-table): Don't quote t and nil. 2021-09-21 Lars Ingebrigtsen Document isearch-wrap-pause * doc/emacs/search.texi (Repeat Isearch): Document `isearch-wrap-pause'. 2021-09-21 Stefan Kangas New major mode with font-locking for etc/AUTHORS * lisp/textmodes/etc-authors-mode.el: New file. (Bug#50674) * etc/AUTHORS (mode): Add "mode: etc-authors" to local variables. * admin/authors.el (authors): Add "mode: etc-authors" to local variables of the generated AUTHORS file. 2021-09-21 Eli Zaretskii Improve recently added documentation * doc/lispref/lists.texi (Building Lists): * lisp/subr.el (ensure-list): Avoid passive tense in documenting 'ensure-list'. 2021-09-21 Lars Ingebrigtsen Add new function `ensure-list' * doc/lispref/lists.texi (Building Lists): Document it. * lisp/subr.el (ensure-list): New function. * lisp/emacs-lisp/shortdoc.el (list): Mention it. 2021-09-21 Michael Albinus Fix tramp-compat-temporary-file-directory implementation * lisp/net/tramp-archive.el (tramp-archive-handle-temporary-file-directory): Use `tramp-compat-temporary-file-directory-function'. * lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory): Make it a defconst. * lisp/net/tramp.el (tramp-get-debug-buffer, tramp-get-debug-file-name) (tramp-debug-message, tramp-file-name-handler, tramp-parse-file) (tramp-parse-shostkeys-sknownhosts) (tramp-handle-expand-file-name, tramp-handle-make-process) (tramp-local-host-p, tramp-call-process) (tramp-call-process-region, tramp-process-lines) (tramp-read-passwd): * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): * lisp/net/tramp-compat.el (tramp-compat-make-temp-name) (tramp-compat-make-temp-file); * lisp/net/tramp-crypt.el (tramp-crypt-file-name-for-operation) (tramp-crypt-maybe-open-connection, tramp-crypt-send-command) (tramp-crypt-do-encrypt-or-decrypt-file-name): * lisp/net/tramp-fuse.el (tramp-fuse-mount-point, tramp-fuse-mounted-p) (tramp-fuse-unmount): * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) (tramp-sh-handle-expand-file-name) (tramp-sh-handle-file-local-copy, ) (tramp-sh-handle-write-region, tramp-maybe-open-connection): * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Use it. 2021-09-21 Stefan Kangas Minor clean-up and fixes in checkdoc * lisp/emacs-lisp/checkdoc.el: Minor doc fixes. Remove unnecessary space at the end of 'y-or-n-p' prompts. Move obsolete definitions to the end of the file. (checkdoc-symbol-words, checkdoc-common-verbs-wrong-voice): Add some more common words. 2021-09-21 Stefan Kangas checkdoc: New defvars to disable some warnings * lisp/emacs-lisp/checkdoc.el (checkdoc--argument-missing-flag) (checkdoc--disambiguate-symbol-flag) (checkdoc--interactive-docstring-flag): New defvars to disable some warnings. These are intended for use with Emacs itself rather than with third-party libraries. (checkdoc-this-string-valid, checkdoc-this-string-valid-engine): Respect above new variables. 2021-09-21 Stefan Kangas Add new command 'checkdoc-dired' * lisp/emacs-lisp/checkdoc.el (checkdoc-dired): New command. (checkdoc--dired-skip-lines-re): New constant. 2021-09-21 Lars Ingebrigtsen More NEWS tagging Do some NEWS tagging 2021-09-21 Lars Ingebrigtsen Document `window-bump-use-time' * doc/lispref/windows.texi (Cyclic Window Ordering): Mention window-bump-use-time. 2021-09-21 Juri Linkov * lisp/tab-bar.el: Preserve all existing tab parameters when switching tabs. * lisp/tab-bar.el (tab-bar--tab, tab-bar--current-tab-make): Copy other possible tab parameters. https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01544.html 2021-09-21 Lars Ingebrigtsen Document completions-detailed * doc/emacs/help.texi (Name Help): Document completions-detailed. * lisp/minibuffer.el (completions-detailed): Give an example in the doc string. 2021-09-21 Michalis V Make dired-do-compress-to work in inserted subdirectories * lisp/dired-aux.el (dired-do-compress-to): Make this work in file in inserted subdirectories (bug#46913). 2021-09-21 Lars Ingebrigtsen Revert "Make dired-compress-file query for a directory to uncompress to" This reverts commit 7e395a59b025c7f4be49294ad806addf5b1a25c9. The behaviour change isn't good for the majority of tar files. 2021-09-21 Lars Ingebrigtsen Revert "Make recent dired tests check for external executables" This reverts commit 98a17f30b8314e40a1edefac3d542d3e105c7bd6. Reverting parent commit. 2021-09-21 Lars Ingebrigtsen Restore some of the previous behaviour in whitespace-display-window * lisp/whitespace.el (whitespace-display-window): Emulate previous behaviour (bug#50716). Code from martin rudalics . 2021-09-21 Lars Ingebrigtsen Don't use `format' on strings without % format directives * lisp/vc/ediff-init.el (ediff-BAD-INFO): * lisp/url/url-ldap.el (url-ldap): * lisp/url/url-http.el (url-http--user-agent-default-string): * lisp/textmodes/reftex.el (reftex-access-parse-file): * lisp/textmodes/reftex-index.el (reftex-index-phrases-info): * lisp/textmodes/ispell.el (ispell-create-debug-buffer): * lisp/term.el (serial-read-speed): * lisp/progmodes/verilog-mode.el (verilog-scan-debug): * lisp/progmodes/idlwave.el (idlwave-find-module): * lisp/progmodes/compile.el (compilation-revert-buffer): * lisp/org/org-agenda.el (org-search-view): * lisp/net/telnet.el (telnet-revert-buffer): * lisp/net/soap-inspect.el (soap-sample-value-for-xs-simple-type): * lisp/net/newst-backend.el (newsticker--cache-read): * lisp/mh-e/mh-seq.el (mh-msg-is-in-seq): * lisp/mail/smtpmail.el (smtpmail-via-smtp): * lisp/mail/emacsbug.el (report-emacs-bug): * lisp/jsonrpc.el (jsonrpc-error): * lisp/help-fns.el (describe-variable): * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): * lisp/gnus/gnus.el (gnus-group-startup-message): (gnus-group-startup-message): * lisp/gnus/gnus-group.el (gnus-group-restart): * lisp/frame.el (make-frame-on-display): * lisp/emulation/viper-ex.el (ex-help): * lisp/calendar/icalendar.el (icalendar--convert-ical-to-diary): (icalendar--add-diary-entry): * lisp/calendar/cal-tex.el (cal-tex-end-document): * lisp/calc/calcalg3.el (math-ninteg-romberg): Don't use `format' on strings that have no % format directives in them. 2021-09-21 Lars Ingebrigtsen Fix usage of `format' in mm-uu-pgp-encrypted-extract * lisp/gnus/mm-uu.el (mm-uu-pgp-encrypted-extract): Use `substring' instead of `format' to ensure a fresh string. 2021-09-21 Lars Ingebrigtsen Fix usage of `format' in `article-verify-x-pgp-sig' * lisp/gnus/gnus-art.el (article-verify-x-pgp-sig): Use `substring' instead of `format' to ensure a fresh string. 2021-09-21 Lars Ingebrigtsen Fix PGP verification buttons (which would have cached results) * lisp/gnus/mm-uu.el (mm-uu-pgp-signed-extract): `format' was used here to guarantee a new, fresh string (since it's destructively modified), but that's apparently not the case any more. Use `substring' instead, which is documented to do this. 2021-09-21 Lars Ingebrigtsen Don't inhibit redisplay in the mml* functions * lisp/gnus/mml-smime.el (inhibit-redisplay): Removed. (mml-smime-epg-encrypt): (mml-smime-epg-verify): Don't inhibit. * lisp/gnus/mml1991.el (mml1991-epg-sign): Ditto. * lisp/gnus/mml2015.el (inhibit-redisplay): Removed (mml2015-epg-decrypt): (mml2015-epg-clear-decrypt): (mml2015-epg-verify): (mml2015-epg-clear-verify): (mml2015-epg-sign): (mml2015-epg-encrypt): Don't bind `inhibit-redisplay', because it makes debugging very odd, and doesn't seem to help much with anything. 2021-09-21 Stefan Monnier * lisp/progmodes/python.el (python-syntax-stringify): Extend comment about last change. 2021-09-21 Robert Pluim Fix emoji-zwj.awk dolist * admin/unidata/emoji-zwj.awk: Fix typo, the dolist should end after the first set-char-table-range. 2021-09-21 Glenn Morris Make recent dired tests check for external executables * test/lisp/dired-aux-tests.el (dired-test-bug47058-tar) (dired-test-bug47058-zip): Add skip conditions. 2021-09-21 Dmitry Gutov Rename project-remove-known-project to project-forget-project * doc/emacs/maintaining.texi (Managing Projects): Ditto. * etc/NEWS: Update accordingly. * lisp/progmodes/project.el (project-forget-project): Rename from 'project-remove-known-project', for consistency with 'project-remember-project' (discussed in bug#50297). 2021-09-21 Basil L. Contovounesios Consistently test alist keys with equal in map.el * etc/NEWS: Announce new default behavior of map-elt and map-delete on alists. * lisp/emacs-lisp/map.el: Bump to version 3.2. (map-elt): Test alist keys with equal by default. Betray a little bit more information in the docstring on which functions are used for which map types. (Bug#47368) (map-put): Update docstring accordingly. (map--plist-delete): Consistently test plist keys with eq. (map-delete): Consistently test alist keys with equal. * test/lisp/emacs-lisp/map-tests.el (test-map-elt-testfn): Update for new map-elt behavior. (test-map-put!-alist, test-map-delete-alist): New tests. 2021-09-21 Robert Pluim Remove the emoji script overrides for U+2xxx codepoints * admin/unidata/blocks.awk: Remove the overrides for U+261D, U+26F9, U+270C..U+270D, and U+2764. They don't belong in the emoji script. 2021-09-21 Robert Pluim Fix the UK flag sequence composition regexp * admin/unidata/emoji-zwj.awk: Fix the regexp for UK flags. Thanks to Mattias Engdegård and his magic regexp checker. 2021-09-21 Robert Pluim Silence byte-compiler warning for network-stream-tests.el The api specifically requires a symbol here, so we can't just replace nowait with nil. * test/lisp/net/network-stream-tests.el (open-gnutls-stream-old-api-wait): Add explicit value for nowait to silence byte-compiler warning due to Bug#47080. 2021-09-21 Basil L. Contovounesios Avoid double argument evaluation in vc-call macro * lisp/vc/vc-hooks.el (vc-call): Ensure second argument is evaluated only once (bug#50690). * etc/NEWS (Change Logs and VC): Announce this change in behavior. 2021-09-21 João Távora Make syntax-ppss more accurate for Python triple quotes (bug#49518) By putting delimiter syntax on the last character of Python triple-quoted strings, this makes syntax-ppss be more accurate. Previously: emacs -Q something.py type two single quotes M-: (nth 3 (syntax-ppss)) notice how the return value says you're outside a string, correctly type another quote M-: (nth 3 (syntax-ppss)) notice how the return value says you're inside a string, correctly backspace the quote just entered M-: (nth 3 (syntax-ppss)) notice how the return value says you're inside a string, incorrectly With this patch the last step is corrected. This helps things like electric-pair-mode. Also, the test python-syntax-after-python-backspace now passes, again. * lisp/progmodes/python.el (python-syntax-stringify): Put delimiter syntax in "inner" of the surrounding triple quotes. * test/lisp/progmodes/python-tests.el (python-syntax-after-python-backspace): Passes again. 2021-09-21 João Távora Expand and improve electric-pair-mode and Python testing (bug#49518) In python-tests.el, the triple-quote pairing tests are passing incorrectly, i.e. the auto-pairing functionality they purport to guard isn't really working for users trying it interactively. Added a new failing test, soon to be fixed. In electric-tests.el, added tests for Python, too. * test/lisp/electric-tests.el (define-electric-pair-test): Also run main tests for python-mode. (pair-some-quotes-skip-others): Test another slightly different pairing. * test/lisp/progmodes/python-tests.el (python-triple-double-quote-pairing): Rename from python-triple-quote-pairing. (python-triple-single-quote-pairing): New test. 2021-09-21 João Távora Add docstring for 'electric-pair-p-s-i-f' and minor refactor Extract the "open newline between pairs behaviour" into its own function, electric-pair-open-newline-between-pairs-psif. * lisp/elec-pair.el (electric-pair-post-self-insert-function): Add docstring. (electric-pair-open-newline-between-pairs-psif): New function. (electric-pair-mode): Add/remove electric-pair-open-newline-between-pairs-psif 2021-09-21 João Távora Speed up test/lisp/electric-tests.el when run interactively 'blink-paren-function' and its timers could sometimes interfere with the tests and slow them down significantly. * test/lisp/electric-tests.el (call-with-saved-electric-modes): Bind blink-paren-function to nil. 2021-09-21 Lars Ingebrigtsen Fix whitespace-report window creation * lisp/whitespace.el (whitespace-display-window): Avoid creating many buffers if called many times (bug#50716). 2021-09-21 Lars Ingebrigtsen Use `special-mode' for whitespace-report * lisp/whitespace.el (whitespace-report-region): Use `special-mode' instead of `fundamental-mode' (bug#50715). 2021-09-21 Lars Ingebrigtsen Inhibit warning in mm-inline-wash-with-file from previous change * lisp/gnus/mm-view.el (mm-inline-wash-with-file): Inhibit warning about previous lexical fixup. 2021-09-21 Lars Ingebrigtsen Fix problems with non-ASCII non-encoded PGP names * lisp/epg.el (epg-signature-to-string): User IDs may be non-encoded, non-ASCII (bug#50706). 2021-09-21 Lars Ingebrigtsen Fix typo in tex--prettify-symbols-alist * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Fix varsigma typo (bug#50710). 2021-09-21 Lars Ingebrigtsen Fix lexical fallout in mm-inline-wash-with-file * lisp/gnus/mm-view.el (mm-inline-wash-with-file): This is only called from the `links' handler, and it passes in `file' expecting that to be dynamically bound. Which is a very, very confusing interface, but make that work again, anyway. 2021-09-21 Michalis V Make dired-compress-file query for a directory to uncompress to * lisp/dired-aux.el (dired-compress-file-suffixes): Specify the directory in the tar targets. (dired-uncompress-file): New function (bug#47058). This asks what directory to uncompress to. (dired-compress-file): Use it. 2021-09-21 Lars Ingebrigtsen Clear netrc cache in auth-source test * test/lisp/auth-source-tests.el (auth-source-test-netrc-create-secret): Clear the netrc cache, too. 2021-09-21 Lars Ingebrigtsen Only search netrc in the netrc tests * test/lisp/auth-source-tests.el (auth-source-test-netrc-create-secret): Only search netrc. 2021-09-21 Eric Abrahamsen Remove some last calls to Gnus group name encoding This should have been part of cb12a84f2c * lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc, gnus-inews-do-gcc): Don't encode group names. 2021-09-21 Dmitry Gutov New command: project-find-dir * doc/emacs/maintaining.texi (Project File Commands): Mention the new command and update the bindings information. * lisp/progmodes/project.el (project-find-dir): New command (bug#43153). (project-prefix-map): Use 'd' as its binding. Move 'project-dired' to 'D'. (project-switch-commands): Replace 'project-dired' with 'project-find-dir'. 2021-09-20 Robert Pluim Support for Unicode emoji sequences This covers both sequences using Zero-Width-Joiner codepoints and those without. Bug#39799, I hope. * .gitignore: Add emoji-zwj.el * admin/notes/unicode: Add emoji-zwj-sequences.txt and emoji-sequences.txt references. Describe how to test after updating to a newer Unicode version. * admin/unidata/Makefile.in (all): add emoji-zwj.el as a dependency. (emoji-zwj.el): Add target plus rules for building. (gen-clean): Add emoji-zwj.el. * admin/unidata/README: Add emoji-zwj-sequences.txt and emoji-sequences.txt references. * admin/unidata/blocks.awk: Force emoji script to be used for certain codepoints that are used by the Unicode sequences. * admin/unidata/emoji-sequences.txt: New file. * admin/unidata/emoji-zwj-sequences.txt: New file. * admin/unidata/emoji-zwj.awk: New file. Derives composition-function-table rules from emoji-zwj-sequences.txt, plus hardcodes some derived manually from emoji-sequences.txt. * etc/NEWS: Announce change. * lisp/international/characters.el: Load the generated emoji-zwj.el * src/Makefile.in (emoji-zwj): New target. (temacs): Add emoji-zwj as a dependency. 2021-09-20 Jonas Bernoulli No longer raise error when http authentication failed * lisp/url/url-http.el (url-http-handle-authentication): Return t instead of raising an error, instructing the caller to invoke the request specific error handler (bug#50511). 2021-09-20 Robert Pluim Add a note about testing out-of-tree builds * CONTRIBUTE: Ask contributors to test out-of-tree builds when making build system changes. 2021-09-20 Robert Pluim Base emoji script membership on Emoji_Presentation The Emoji property describes which codepoints can be displayed as emoji, but Emoji_Presentation governs which are displayed as emoji by default. * admin/notes/unicode: Adjust check-emoji-coverage to look in the Emoji_Presentation sections of emoji-data.txt * admin/unidata/blocks.awk: Assign emoji script using the Emoji_Presentation section. 2021-09-20 Basil L. Contovounesios Fix VC repo URL detection in bug-reference-mode * lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-vc): Pass file or directory name in question as the first argument to the backend's repository-url implementation (bug#50689). Use when-let and seq-some to flatten nested conditionals. 2021-09-20 Eli Zaretskii Fix assertion violation with zero-width :box attributes * src/xfaces.c (merge_face_ref): Don't allow :box attribute with a zero value. (Bug#50699) 2021-09-20 Michael Albinus Remove superfluous skip in auth-source-tests.el * test/lisp/auth-source-tests.el (auth-source-test-netrc-create-secret): Remove superfluous skip. 2021-09-20 Mattias Engdegård Dump with `lexical-binding` bound to nil * lisp/loadup.el (dump-mode): Temporarily bind `lexical-binding` to nil while dumping. Otherwise, it will be t in Emacs by default and that is not our intention (yet). 2021-09-20 Juri Linkov * lisp/tab-bar.el (tab-bar-new-tab): Add optional arg 'from-number'. (tab-bar-mouse-context-menu): Use tab-number as an arg for 'tab-bar-duplicate-tab'. (tab-bar-duplicate-tab): Add optional arg 'from-number'. 2021-09-20 Juri Linkov Add support for url-retrieve-synchronously to eww-retrieve-command (bug#50680) * doc/misc/eww.texi (Advanced): Mention url-retrieve-synchronously for eww-retrieve-command. * lisp/net/eww.el (eww-retrieve-command): Add choice 'sync' for url-retrieve-synchronously. (eww-retrieve): Use value 'sync' for url-retrieve-synchronously. (eww-isearch-next-buffer): Let-bind eww-retrieve-command to 'sync'. 2021-09-20 Miha Rihtaršič Improve documentation of exiting recursive editing * doc/lispref/commands.texi (Recursive Editing): Mention what happens when throwing a string or any other value to 'exit. * src/keyboard.c (Frecursive_edit): Document throwing a function to 'exit (bug#49700). 2021-09-20 Miha Rihtaršič Refactor minibuffer aborting * lisp/minibuffer.el (minibuffer-quit-recursive-edit): New optional argument to specify how many levels of recursion to quit. * src/eval.c (internal_catch): Remove special handling of 'exit tag (bug#49700). * src/minibuf.c (Fabort_minibuffers): Use minibuffer-quit-recursive-edit to quit multiple levels of minibuffer recursion. 2021-09-20 Philip Kaludercic Fix dolist-with-progress-reporter behaviour * lisp/subr.el (dolist-with-progress-reporter): Use the length of list argument as maximal value the reporter with reach. 2021-09-19 Stefan Kangas Revert "Flag checkdoc-symbol-words as a :safe variable" There was no need for this change, as this variable was already marked as :safe. This reverts commit 222a7a1a8afdf6921e5981133c605c2d695e9281. 2021-09-19 Eli Zaretskii Avoid segfaults due to 'bug-reference-mode' * src/xdisp.c (handle_fontified_prop): Set the frame's inhibit_clear_image_cache flag around calls to 'fontification-functions', to avoid Lisp triggering the clearing of image and/or face caches behind redisplay's back. (Big#50571) 2021-09-19 Eli Zaretskii Fix blocks.awk wrt to Emoji characters * admin/unidata/blocks.awk: Fix emoji-data.txt processing for older Awks. 2021-09-19 Michael Albinus Do not save empty passwords in auth-source-search * lisp/auth-source.el (auth-source-netrc-create) (auth-source-secrets-create): Set :save-function only for non empty passwords. * lisp/net/tramp.el (tramp-read-passwd): Don't save empty passwords. * test/lisp/auth-source-tests.el (auth-source-test-secrets-create-secret): Adapt test. (auth-source-test-netrc-create-secret): New test. 2021-09-19 Stefan Kangas Be explicit about missing sections in eshell manual * doc/misc/eshell.texi (Writing a module, Module testing) (Directory handling, Key rebinding, Smart scrolling) (Terminal emulation): Explicitly say that these sections remain to be written. (Bug#49306) 2021-09-19 Juri Linkov * lisp/progmodes/elisp-mode.el (elisp-context-menu): Improve menu items. 2021-09-19 Ken Brown Fix build with native compilation on Cygwin * src/Makefile.in (emacs$(EXEEXT)) [CYGWIN]: Rebase the *.eln files after they are all created, to avoid fork problems later in the build. (Bug#50666) 2021-09-19 Stefan Kangas Clarify docstring of pcase-exhaustive * lisp/emacs-lisp/pcase.el (pcase-exhaustive): Clarify docstring by contrasting with pcase. (Bug#44166) 2021-09-19 Stefan Kangas Make two unused variables obsolete * lisp/progmodes/idlw-help.el (idlwave-help-directory) (idlwave-help-use-hh): Make unused variables obsolete. 2021-09-19 Stefan Kangas * etc/NEWS: Add section on recent checkdoc changes. 2021-09-19 Mattias Engdegård Initialise unread buffer The reader has an extra 1-char unread buffer that was incorrectly initialised to 0, which means that the first character read would always be NUL. As this is often the code that looks for the lexical-binding cookie, the first loaded source module would be treated as dynamically bound. During bootstrapping this is loadup.el and so its local variables got dumped into the global environment. * src/lread.c (unread_char): Initialise to empty. (Fload): Initialise here too just in case. 2021-09-19 Stefan Kangas checkdoc: Verify format of yes-or-no-p and format-message * lisp/emacs-lisp/checkdoc.el (checkdoc-message-text-next-string): Check also for "yes-or-no-p" and "format-message". Convert regexps to use rx. 2021-09-19 Stefan Kangas Flag checkdoc-symbol-words as a :safe variable * lisp/emacs-lisp/checkdoc.el (checkdoc-symbol-words): Flag as a safe file local variable. 2021-09-19 Eli Zaretskii Teach Mail mode to request Disposition Notifications * lisp/mail/sendmail.el (mail-insert-disposition-notification-to): New function. (mail-mode-map): Add it to key bindings and menu bar. 2021-09-19 Amin Bandali Add new '/opme' and '/deopme' convenience ERC commands * lisp/erc/erc.el (erc-cmd-OPME, erc-cmd-DEOPME): Add convenience commands for setting and unsetting the operator status on the current nick in the current channel. 'erc-cmd-OPME' relies on ChanServ for obtaining the operator status (see doc string for more details). * etc/NEWS: Announce the addition of the commands. 2021-09-19 Stefan Kangas Revert previous mode-line-modes change to unbreak bootstrap * lisp/bindings.el (mode-line-modes): Revert previous change to unbreak bootstrap. 2021-09-19 Lars Ingebrigtsen Viper doc string fix * lisp/emulation/viper-keym.el (viper-want-ctl-h-help): Fold over-long first line. 2021-09-19 Lars Ingebrigtsen Fix viper-util compilation warning * lisp/emulation/viper-util.el (cl-lib): Require for cl-subseq. 2021-09-18 Stefan Kangas * etc/NEWS: Shorten entry on move to Libera.Chat. 2021-09-18 Stefan Kangas Use command substitution in checkdoc-recursive-edit * lisp/emacs-lisp/checkdoc.el (checkdoc-recursive-edit): Use command substitution. (checkdoc--help-buffer): New variable. Use it instead of hard-coded string. 2021-09-18 Stefan Kangas Use command substitution for exit-recursive-edit * lisp/bindings.el (mode-line-modes): * lisp/emacs-lisp/checkdoc.el (checkdoc-recursive-edit): Use command substitution for 'exit-recursive-edit'. 2021-09-18 Juri Linkov * lisp/subr.el (string-replace): Add dashes to arg names (bug#50644) * lisp/net/tramp-compat.el (tramp-compat-string-replace): Idem. * doc/lispref/searching.texi (Search and Replace): Idem. 2021-09-18 Arthur Miller Add new help-enable-symbol-autoload user option * lisp/help-fns.el (help-fns--analyze-function): Use it. * lisp/help-fns.el (help-enable-symbol-autoload): New user option. * doc/emacs/help.texi (Name Help): Document it. 2021-09-18 Lars Ingebrigtsen Mention xref-quit-and-pop-marker-stack in the manual * doc/emacs/maintaining.texi (Xref Commands): Mention xref-quit-and-pop-marker-stack in the manual. 2021-09-18 Lars Ingebrigtsen Do some xwidget NEWS markup (and adjust doc string) * lisp/xwidget.el (xwidget-webkit-bookmark-make-record): Mention `xwidget-webkit-bookmark-jump-new-session' in the doc string. 2021-09-18 Lars Ingebrigtsen Make argument optional in pulse-momentary-highlight-one-line * lisp/cedet/pulse.el (pulse-momentary-highlight-one-line): Make POINT optional (bug#50642) so that the function can be used more easily from some hook functions. 2021-09-18 Dan Ports (tiny change) Use the newest gcc installed by Macports * configure.ac: There may be more than one gcc version installed in Macports (bug#50649). Use the newest. 2021-09-18 Basil L. Contovounesios Fontify Libtool macros in autoconf-mode * lisp/progmodes/autoconf.el (autoconf-font-lock-keywords): Apply font-lock-keyword-face also to Libtool's LT_* macros (bug#50659). 2021-09-18 Eli Zaretskii Improve doc strings of a recent commit * lisp/emacs-lisp/generator.el (iter-defun): * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode): * lisp/emacs-lisp/autoload.el (autoload-insert-section-header): Include description of arguments in the doc string's first line. 2021-09-18 Mattias Engdegård Regexp-quote literal symbols when grepping `xref-find-references` was unable to find symbols like `backquote-list*-macro`. * lisp/cedet/semantic/symref/grep.el (semantic-symref-grep--quote-extended): New function. (semantic-symref-perform-search): Call it. 2021-09-18 Eli Zaretskii Fix performance degradation in commands that describe key bindings * src/keymap.c (syms_of_keymap) : New variable. (describe_vector): Check shadowing of consecutive keys only if 'describe-bindings-check-shadowing-in-ranges' is non-nil. Remove redundant second loop when VECTOR is a char-table. Improve comments. Patch by Stefan Kangas . (Bug#45379) * test/src/keymap-tests.el (help--describe-vector/bug-9293-one-shadowed-in-range): Adapt the test case for the new variable. 2021-09-18 Stefan Kangas * lisp/emacs-lisp/checkdoc.el: Doc fix; mention flymake. Do interactive mode tagging for checkdoc.el 2021-09-18 Stefan Kangas checkdoc: Only look for commonly used modifier keys * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine): Search for the modifier key "s-", but not the modifier key "A-". The latter is very uncommon and leads to false positives. 2021-09-18 Michael Albinus Skip "fast" tests on emba CI * test/infra/gitlab-ci.yml (stages): Comment "fast" stage out. (test-fast-inotify): Comment out. 2021-09-18 Stefan Kangas Add indent declaration to emerge-defvar-local * lisp/vc/emerge.el (emerge-defvar-local): Add indent declaration for docstring. Fix wrongly indented callers. 2021-09-18 Stefan Kangas Make doc argument of emerge-defvar-local optional * lisp/vc/emerge.el (emerge-defvar-local): Make doc argument optional. 2021-09-18 Stefan Kangas Make doc argument of ediff-defvar-local optional * lisp/vc/ediff-init.el (ediff-defvar-local): Make DOC argument optional. Update callers passing the empty string to not use it. 2021-09-18 Federico Tedin Check for null bytes in filenames in 'expand-file-name' (bug#49723) * src/fileio.c (expand-file-name): Check for null bytes for both NAME and DEFAULT-DIRECTORY arguments. Also check for null bytes in buffer-local default-directory, assuming it is used. * src/coding.c (encode_file_name): Use CHECK_STRING_NULL_BYTES. * src/lisp.h (CHECK_STRING_NULL_BYTES): Add function for checking for null bytes in Lisp strings. * test/src/fileio-tests.el (fileio-test--expand-file-name-null-bytes): Add test for new changes to expand-file-name. * etc/NEWS: Announce changes. 2021-09-18 Amin Bandali * lisp/erc/erc.el: Add Package-Requires and URL headers. 2021-09-18 Amin Bandali * etc/NEWS: Announce update of IRC-related references to point to Libera.Chat. Also remove the note about freenode subdomain change, as it's not relevant anymore. 2021-09-17 Stefan Kangas Update refcard to mention iconify before suspend * etc/refcards/refcard.tex (section{Leaving Emacs}): Put iconify Emacs ahead of suspend. 2021-09-17 Stefan Kangas checkdoc: 'y-or-n-p' no longer needs space * lisp/emacs-lisp/checkdoc.el (checkdoc-message-text-engine): Change 'y-or-n-p' check to accept prompt ending with both "? " or "?", that is, it no longer needs the space. (Bug#50621) (checkdoc--fix-y-or-n-p): New helper function. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests-fix-y-or-n-p) (checkdoc-tests-fix-y-or-n-p/no-change) (checkdoc-tests-fix-y-or-n-p/with-space): New tests. 2021-09-17 Robert Pluim Move emoji fontset addition later * lisp/international/fontset.el (setup-default-fontset): Move the fontset addition for emoji script after that for various graphic-like characters, since they overlap, and we want the emoji setting to win. 2021-09-17 Martin Joerg (tiny change) * lisp/net/tramp-sh.el (tramp-methods) : Separate "%c" marker. 2021-09-17 Robert Pluim Fix emoji-induced build breakage * admin/unidata/blocks.awk: Cater for out-of-tree builds, match the name of the file using regexp rather than exact match. 2021-09-17 Uwe Brauer Replace hex representation by its literal form in pretty tex symbols * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Correct error \Bbb{T}, replace hex representation by its literal form (bug#50645). 2021-09-17 Lars Ingebrigtsen Tweak how term-emulate-terminal selects windows * lisp/term.el (term-emulate-terminal): Don't record the selection of the window here, because we're not doing a user-level window selection, but just selecting the window for internal purposes (bug#41984). 2021-09-17 Juri Linkov * lisp/progmodes/elisp-mode.el (elisp-context-menu): Improve menu items. 2021-09-17 Juri Linkov * lisp/repeat.el (repeat-echo-message): Clear only own added part of message. (describe-repeat-maps, repeat-mode): Refer to each other in docstrings. 2021-09-17 Lars Ingebrigtsen Stop imenu indexing after a certain number of seconds * doc/emacs/programs.texi (Imenu): Document it. * lisp/imenu.el (imenu-max-index-time): New user option. (imenu-default-create-index-function, imenu--generic-function): Use it (bug#18696). 2021-09-17 Manuel Giraud Fix typo in idlwave * lisp/progmodes/idlwave.el (idlwave-keyword-abbrev): Fix typo (bug#50638). 2021-09-17 Uwe Brauer Add more symbols to tex--prettify-symbols-alist * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Add mathbb, caligraphic letters, fractur, varkappa and \|. (bug#50639). 2021-09-17 Lars Ingebrigtsen Mention that the garbage collection is convervative * doc/lispref/internals.texi (Garbage Collection): Mention that we're using a conservative gc (bug#42013). 2021-09-17 Stephen Gildea MH-E: fix check for nmh or Mailutils installation * lisp/mh-e/mh-e.el (mh-variant-gnu-mh-info, mh-variant-nmh-info): Run install-mh, not mhparam, to check whether an MH variant is installed on the system. mhparam fails if no user profile is found, so it is not a reliable check of the state of the system as a whole. Tested with: nmh 1.4, nmh 1.7.1, GNU Mailutils 2.2, GNU Mailutils 3.7, GNU Mailutils 3.13 2021-09-17 Eli Zaretskii Fix display of stretch glyphs * src/xterm.c (x_draw_stretch_glyph_string): * src/w32term.c (w32_draw_stretch_glyph_string): Fix drawing stretch glyphs when the window is hscrolled. (The original pre-Jan-2021 code was almost correct, except that it used 'window_box_left_offset' instead of 'window_box_left', and didn't restrict the background_width fixup to text-area.) (Bug#50564) 2021-09-17 Robert Pluim Split Unicode emoji into their own script * admin/notes/unicode: Describe how to update emoji for new Unicode release. * admin/unidata/Makefile.in: Pass emoji-data.txt to blocks.awk script. * admin/unidata/README: Add pointer to emoji-data.txt file. * admin/unidata/blocks.awk: Parse emoji-data.txt, add emoji codepoints to the 'emoji' script (except for the ASCII ones). * admin/unidata/emoji-data.txt: New file. * etc/NEWS: Describe new 'emoji' script. * etc/TODO: Update item about 'emoji' script. * lisp/international/fontset.el (script-representative-chars): Add 'emoji' script. (setup-default-fontset): Add 'emoji' script. Use "Noto Color Emoji" as default font for it. 2021-09-17 Dmitry Gutov xref-matches-in-files: Move sorting to Lisp For better compatibility with different systems. Performance is unaffected, except in very pathological cases (~100000 matches), and even then the overhead of 'sort' is comparable. * lisp/progmodes/xref.el (xref-search-program-alist): Drop the piping through 'sort'. (xref-matches-in-files): Sort here instead. Do that to both searchers' output as well now. 2021-09-17 Eli Zaretskii Improve the documentation of a recent change * etc/NEWS: * doc/lispref/sequences.texi (Sequence Functions): Improve documentation of 'seq-union'. 2021-09-17 Stefan Kangas Improve performance of seq-union * lisp/emacs-lisp/seq.el (seq-union): Improve performance by using nreverse instead of seq-reverse. 2021-09-17 Stefan Kangas Make viper-subseq into obsolete alias for cl-subseq * lisp/emulation/viper-util.el (viper-subseq): Make into obsolete function alias for 'cl-subseq'. Update callers. 2021-09-17 Stefan Kangas * lisp/vc/ediff-util.el (ediff-member): Make obsolete. 2021-09-17 Stefan Kangas Make ediff-set-difference into obsolete alias for seq-difference * lisp/vc/ediff-util.el (ediff-set-difference): Make into obsolete function alias for 'seq-difference'. * lisp/vc/ediff-mult.el (ediff-intersect-directories): Update single caller. 2021-09-17 Stefan Kangas Make ediff-intersection into obsolete alias for seq-intersection * lisp/vc/ediff-util.el (ediff-intersection): Make into obsolete function alias for 'seq-intersection'. * lisp/vc/ediff-mult.el (ediff-intersect-directories): Update single caller. 2021-09-17 Stefan Kangas Make ediff-union into obsolete alias for seq-union * lisp/emacs-lisp/seq.el (seq-union): Autoload. * lisp/vc/ediff-util.el (ediff-union): Make into obsolete function alias for 'seq-union'. * lisp/vc/ediff-mult.el (ediff-intersect-directories): Update single caller. 2021-09-17 Stefan Kangas Add new sequence function 'seq-union' * lisp/emacs-lisp/seq.el (seq-union): New function. * doc/lispref/sequences.texi (Sequence Functions): * lisp/emacs-lisp/shortdoc.el (sequence): Document above new function. * test/lisp/emacs-lisp/seq-tests.el (test-seq-union): New test. 2021-09-17 Stefan Kangas * lisp/allout.el (allout-old-expose-topic): Make obsolete. 2021-09-17 John Cummings (tiny change) Fix disk-free info in 'insert-directory' * lisp/files.el (insert-directory): Call 'get-free-disk-space' with the argument FILE, to make sure the reported info is for the correct volume. (Bug#50630) 2021-09-17 Michael Albinus Fix annoyance in tramp-smb.el * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Add "TERM=dumb". 2021-09-17 Olivier Certner F. Jason Park ERC: NickServ: Prompt for password last, overall simplifications (bug#46777) When 'erc-prompt-for-nickserv-password' is non-nil, don't ignore the other forms of identification. Instead, process them first, and prompt for the password last. Separate concerns (determination of the nick to use, of the password to use, and actual message sending). Note that the user can be interactively prompted for a password on reception of a NickServ request, as before (on 'erc-prompt-for-nickserv-password'). * lisp/erc/erc-services.el (erc-nickserv-identify): Make the password argument optional (and don't prompt for it interactively). Further, now take the nick to use for identification (interactively, ask for it, defaulting to the current one). Move the actual message sending into the new 'erc-nickserv-send-identify' function, and the password prompting into 'erc-nickserv-get-password'. (erc-nickserv-send-identify): New function containing the code for sending the identify message to NickServ, given the nick and password. (erc-nickserv-get-password): Try each password source in turn, in the following order: 'erc-nickserv-passwords', auth-source (if 'erc-use-auth-source-for-nickserv-password' is non-nil), and in the end prompt the user interactively (if 'erc-prompt-for-nickserv-password' is non-nil). If one source returns a string, the function returns it, or nil if the string is empty. (erc-nickserv-call-identify-function): Declare obsolete, but retain for backward compatibility. Prefer invoking 'erc-nickserv-identify' directly instead. (erc-nickserv-identify-autodetect, erc-nickserv-identify-on-connect) (erc-nickserv-identify-on-nick-change): Call 'erc-nickserv-identify' directly ('erc-nickserv-call-identify-function' has been obsoleted). For the last two functions, remove the redundant checks on the NickServ identification flags (additionally, it is doubtful they have any measurable impact on performance). * etc/NEWS: Announce the change. 2021-09-17 Amin Bandali * lisp/erc/erc-button.el (erc-emacswiki-url): Update to shorter address. 2021-09-17 Alfred M. Szmidt * lisp/vc/vc.el: API doc fixes. 2021-09-17 Manuel Giraud Reuse vc-read-backend more * lisp/vc/vc.el (vc-read-backend): New optional arguments. (vc-create-repo): Use it here. (vc-switch-backend): And here (bug#50603). 2021-09-16 Stefan Kangas Docfix: use command substitution for 'universal-argument' * lisp/autoarg.el (autoarg-mode): * lisp/bookmark.el (bookmark-set, bookmark-set-no-overwrite) (bookmark-save): * lisp/calendar/todo-mode.el (todo-insert-item) (todo-filter-top-priorities) (todo-filter-top-priorities-multifile): * lisp/dired-x.el (dired-mark-extension, dired-mark-suffix): * lisp/eshell/eshell.el (eshell): * lisp/gnus/gnus-group.el (gnus-group-find-new-groups): * lisp/gnus/gnus-start.el (gnus-find-new-newsgroups): * lisp/gnus/gnus-sum.el (gnus-summary-show-article): * lisp/gnus/gnus.el (gnus-secondary-servers): * lisp/org/org-timer.el (org-timer-set-timer): * lisp/org/ox.el (org-export-dispatch-last-position): * lisp/printing.el (pr-ps-directory-preview) (pr-ps-directory-using-ghostscript, pr-ps-directory-print) (pr-ps-directory-ps-print, pr-ps-buffer-preview) (pr-ps-buffer-using-ghostscript, pr-ps-buffer-print) (pr-ps-buffer-ps-print, pr-despool-preview) (pr-despool-using-ghostscript, pr-despool-print) (pr-despool-ps-print, pr-ps-file-up-ps-print, pr-ps-fast-fire) (pr-txt-fast-fire): * lisp/progmodes/idlwave.el (idlwave-complete): * lisp/progmodes/sh-script.el (sh-set-shell): * lisp/replace.el (occur): * lisp/ses.el (ses--advice-yank): * lisp/simple.el (set-mark-command-repeat-pop): * lisp/sort.el (delete-duplicate-lines): * lisp/strokes.el (strokes-help): * lisp/textmodes/artist.el (artist-mode): * lisp/textmodes/reftex-cite.el (reftex-citation): * lisp/textmodes/reftex-dcr.el (reftex-view-crossref): * lisp/textmodes/reftex-index.el (reftex-index-selection-or-word) (reftex-display-index): * lisp/textmodes/reftex-ref.el (reftex-reference): * lisp/textmodes/reftex-toc.el (reftex-toc): * lisp/textmodes/reftex-vars.el (reftex-cite-prompt-optional-args) (reftex-enable-partial-scans): * lisp/textmodes/texnfo-upd.el (texinfo-master-menu): * lisp/windmove.el (windmove-display-in-direction) (windmove-delete-left, windmove-delete-up) (windmove-delete-right, windmove-delete-down): * lisp/window.el (recenter-window-group, recenter-other-window): Use command substitution for 'universal-argument' instead of raw "C-u". 2021-09-16 Michael Albinus Tramp code cleanup * lisp/net/tramp-sh.el (tramp-methods) : Reintroduce "%n" marker. (tramp-maybe-open-connection): Handle it. * lisp/net/tramp.el (tramp-prefix-regexp): * lisp/net/tramp-smb.el (tramp-smb-options): Fix docstring. * lisp/net/tramp*.el: Fix typos. Remove trailing space from `yes-or-no-p' and `y-or-n-p' prompts. * test/lisp/net/tramp-tests.el (tramp--test-telnet-p): New defun. (tramp-test29-start-file-process, tramp-test30-make-process) (tramp-test35-remote-path, tramp-test44-asynchronous-requests): Adapt tests. 2021-09-16 Wilson Snyder verilog-mode.el: Merge from upstream: prepare for lexical bindings. * lisp/progmodes/verilog-mode.el (verilog-do-indent) (verilog-indent-declaration, verilog-read-always-signals-recurse) (verilog-read-decls): Prepare for lexical bindings. 2021-09-16 Eli Zaretskii Support '...' quoting in Lisp files * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2): Support quoting 'like this'. 2021-09-16 Augusto Stoffel Make 'compile' respect buffer-local process environment * lisp/progmodes/compile.el (compilation-start): Use `process-environment' from original buffer in the compilation process (bug#50607). 2021-09-16 Lars Ingebrigtsen Bind `M-o' in html-mode and enriched-mode * lisp/textmodes/enriched.el (enriched-mode-map): Actually define the `M-o' face map. * lisp/textmodes/sgml-mode.el (html-mode-map): Ditto (bug#50616). * lisp/textmodes/sgml-mode.el (html-mode): Adjust doc string. 2021-09-16 Kevin Brubeck Unhammer Allow irc network symbols in erc-autojoin-channels-alist * lisp/erc/erc-join.el (erc-autojoin-channels-alist): Explain the extension. (erc-autojoin-server-match): New function. (erc-autojoin-channels): Use it. (erc-autojoin-current-server): New function. (erc-autojoin-add): Use it. (erc-autojoin-remove): Ditto. This can be useful when connecting to an IRC proxy like Weechat that relays several networks under the same server. If we just keyed on the server name, we would end up joining a channel on all networks whenever we join one network on that server. Networks are simply stored as symbols instead of regexes, since that's how `erc-network' works. The `erc-autojoin-add' function will still auto-add servers as strings if the network doesn't have at least one entry in `erc-autojoin-channels-alist'. 2021-09-16 Stefan Kangas Prefer "website" to "homepage" These days, a "home page" is understood to be only "the main web page of a website" or "landing page", whereas a "website" is "a collection of web pages and related content" (Wikipedia). * doc/emacs/emacs.texi (Top): * doc/emacs/package.texi (Package Menu): * doc/lispintro/emacs-lisp-intro.texi (Top): * doc/lispref/elisp.texi (Top): * doc/lispref/tips.texi (Documentation Tips): * doc/misc/ede.texi (ede-project): * doc/misc/efaq-w32.texi (More information): * doc/misc/gnus-faq.texi (FAQ 5-7): * doc/misc/gnus.texi (About mairix): * doc/misc/mairix-el.texi (About): * doc/misc/reftex.texi (AUCTeX, Imprint): * lisp/cedet/ede/base.el (ede-project): * lisp/cedet/ede/system.el (ede-web-browse-home): * lisp/emacs-lisp/package.el (package-menu-mode-menu) (package-browse-url): * lisp/erc/erc-button.el (erc-emacswiki-url): * lisp/filesets.el (filesets-goto-homepage): * lisp/net/mairix.el: * lisp/net/webjump.el (webjump-sample-sites): * lisp/obsolete/vc-arch.el: * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/idlwave.el (idlwave, idlwave-mode): * lisp/textmodes/reftex-vars.el (reftex): Prefer "website" to "home page". * doc/lispref/tips.texi (Documentation Tips): Sort the "URL" header comment before "Homepage". * lisp/emacs-lisp/lisp-mnt.el (lm-website): Rename from 'lm-homepage'. (lm-homepage): Make into alias for 'lm-website'. 2021-09-16 F. Jason Park Change the erc debug logging format to be more repeatable * lisp/erc/erc.el (erc-debug-irc-protocol): Fix line-ending mismatch between incoming and outgoing logger lines without changing interface. Do this by adding carriage returns to the latter to improve machine readability. Change printed peer labels to most accurately reflect logical endpoints. (erc-debug-irc-protocol-time-format): Add new variable to support timestamps in protocol logger output. (erc-debug-irc-protocol-version): Add new variable to help tooling track logging format independent of ERC and Emacs versions. (erc-toggle-debug-irc-protocol): Add headers to protocol-log buffer to aid future bug-reproduction tools. Clean up overlong lines (bug#50009). 2021-09-16 F. Jason Park Fix erc nick trimming * lisp/erc/erc.el (erc-lurker-maybe-trim): Prevent warning from showing up in third-party code using this function by autoloading rx.el when needed. Remove trailing chars appended for uniquifying purposes when a nick is already taken. Special thanks to Mattias Engdegård for making this more respectable (Bug#50005). * test/lisp/erc/erc-tests.el: Add tests for the above and require erc-networks. 2021-09-16 F. Jason Park Fix mistake in test for erc-ring-previous-command * test/lisp/erc/erc-tests.el (erc-ring-previous-command): The variable erc-send-completed-hook was previously set to nil permanently, which would affect other tests (bug#50005). 2021-09-16 Stefan Kangas Do interactive mode tagging for play/*.el 2021-09-16 Eli Zaretskii Clarify use of early-init file * doc/emacs/custom.texi (Early Init File): Clarify that using the early-init file should be reserved to cases where it is absolutely necessary. (Bug#50491) 2021-09-16 Lars Ingebrigtsen Clarify test-completion doc string * src/minibuf.c (Ftest_completion): Clarify what it means to be a valid completion (bug#50583). 2021-09-16 Stefan Kangas Remove references to dead packages * etc/themes/manoj-dark-theme.el: Delete references to colortheme and emacs-goodies. 2021-09-16 Stefan Kangas Make a redundant idlwave variable obsolete * lisp/progmodes/idlw-help.el (idlwave-help-browse-url-available): Make obsolete. (idlwave-help-check-locations): Don't use above variable. 2021-09-16 Stefan Kangas Various minor checkdoc tweaks * lisp/emacs-lisp/checkdoc.el (checkdoc-symbol-words): Add more "good" words that are used a lot in practice, and where using them doesn't really hurt the quality of the documentation. (checkdoc-proper-noun-list): Add "dired", remove "ispell"; the latter should not always be capitalized. (checkdoc-common-verbs-wrong-voice): Add some more common words. Don't check for "matches" as it leads to too many false positives and almost no fixes in practice. (checkdoc-this-string-valid-engine): Clarify comment. (checkdoc-in-abbreviation-p): Ignore some less common or non-standard abbreviations. 2021-09-16 Stefan Kangas Doc fix for y-or-n-p; trailing space is no longer needed * doc/lispref/minibuf.texi (Yes-or-No Queries): * doc/lispref/os.texi (Suspending Emacs): * doc/lispref/tips.texi (Programming Tips): * doc/misc/gnus-faq.texi (FAQ 5-9): * lisp/subr.el (y-or-n-p): * src/fns.c (Fyes_or_no_p): Doc fix to reflect that a trailing space is no longer needed; one is added or removed automatically. 2021-09-16 Stefan Kangas * doc/misc/pgg.texi: Clarify that its obsolete in the menu entry. 2021-09-15 Stefan Kangas Remove function obsolete since 22.1 * lisp/erc/erc-networks.el (erc-current-network): Remove function obsolete since Emacs 22.1. 2021-09-15 Eli Zaretskii Documentation followup to a recent commit * doc/lispref/tips.texi (Documentation Tips): Make the wording of recommendation not to over-use \\[..] more future-proof. (Bug#50599) 2021-09-15 Basil L. Contovounesios Evaluate recent isearch-motion lambdas * lisp/isearch.el (beginning-of-buffer, end-of-buffer) (scroll-up-command, scroll-down-command): Evaluate the lambdas inside the isearch-motion properties of these commands. 2021-09-15 Stefan Kangas checkdoc: Don't warn about command substitutions by default * lisp/emacs-lisp/checkdoc.el (checkdoc-max-keyref-before-warn): Add new valid value nil meaning to never warn about too many command substitutions, and use this value as the default. This is no longer a performance problem on modern machines. (Bug#50599) (checkdoc-this-string-valid-engine): Respect above new valid value nil. 2021-09-15 Juri Linkov * lisp/tab-line.el: Add context menu bound to down-mouse-3 like on tab bar. * lisp/tab-line.el: Bind tab-line down-mouse-3 to tab-line-context-menu. (tab-line-tab-map): Rebind tab-line-select-tab from mouse-1 to down-mouse-1. Bind down-mouse-3 to tab-line-tab-context-menu. (tab-line-add-map): Rebind tab-line-new-tab from mouse-1 to down-mouse-1. (tab-line-left-map, tab-line-right-map): Rebind mouse-1 to down-mouse-1. (tab-line-tab-context-menu, tab-line-context-menu): New functions. (tab-line-hscroll-right, tab-line-hscroll-left) (tab-line-new-tab, tab-line-select-tab) (tab-line-switch-to-prev-tab, tab-line-switch-to-next-tab) (tab-line-close-tab): Rename event args to 'event'. 2021-09-15 Juri Linkov * lisp/tab-bar.el (tab-bar-format): Add new option tab-bar-format-menu-global (tab-bar-format-menu-global): New function. 2021-09-15 Juri Linkov Add docstrings to context menu functions, and add middle-separator * lisp/mouse.el (context-menu-functions): Add context-menu-middle-separator to default values. (context-menu-middle-separator): New function. * lisp/replace.el (occur-context-menu): Use middle-separator. * lisp/progmodes/elisp-mode.el (elisp-context-menu): * lisp/progmodes/prog-mode.el (prog-context-menu): Use middle-separator and reorder menu items correspondingly. 2021-09-15 Philip Kaludercic Merge branch 'feature/rcirc-update' 2021-09-15 Lars Ingebrigtsen Tweak python-hideshow-forward-sexp-function warning avoidance * lisp/progmodes/python.el (python-hideshow-forward-sexp-function): Avoid compilation warning in a more standard way. Problem reported in https://thedailywtf.com/articles/the-programmer-s-motto-and-other-comments 2021-09-15 Eli Zaretskii Avoid crashes due to clearing of a frame's face cache * src/xfaces.c (clear_face_cache): Don't clear fonts and faces of a frame that is being redisplayed, just because it's time for some routine maintenance. (Bug#50571) * src/xdisp.c (redisplay_internal): * src/frame.h (struct frame) : Update commentary of using this struct member. 2021-09-15 Michael Albinus * lisp/net/tramp-sh.el (tramp-methods): : Change template. (Bug#50594) 2021-09-15 Eli Zaretskii Avoid compiler warnings in comp.c on MS-Windows * src/comp.c (DEF_DLL_FN, init_gccjit_functions): Don't load and don't define functions/macros if libgccjit doesn't have them, to avoid compiler warnings. 2021-09-15 Mattias Engdegård Faster grep pattern for identifiers * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): Use the `-w` flag instead of wrapping the pattern in regexps that make matching much slower. This speeds up `xref-find-references` by about 3× on macOS. 2021-09-15 Eli Zaretskii Update Unicode support to Unicode version 14.0.0 * admin/unidata/copyright.html: * admin/unidata/UnicodeData.txt: * admin/unidata/Blocks.txt: * admin/unidata/BidiBrackets.txt: * admin/unidata/BidiMirroring.txt: * admin/unidata/IVD_Sequences.txt: * admin/unidata/NormalizationTest.txt: * admin/unidata/SpecialCasing.txt: * test/manual/BidiCharacterTest.txt: Updated files from Unicode 14.0. * lisp/international/fontset.el (script-representative-chars): Add new scripts. (otf-script-alist): Update from latest version. (setup-default-fontset): Add new scripts. * lisp/international/characters.el: Update syntax and category tables for new characters and scripts. (char-width-table): Update for changes in Unicode 14.0. * lisp/international/mule-cmds.el (ucs-names): Update used and unused ranges per Unicode 14.0. * test/lisp/international/ucs-normalize-tests.el (ucs-normalize-tests--failing-lines-part1) (ucs-normalize-tests--failing-lines-part2): Update per the test results. * doc/lispref/nonascii.texi (Character Properties): Update Unicode version number. * etc/NEWS: Announce support for Unicode 14.0. * admin/notes/unicode: Minor copyedits. 2021-09-15 João Távora * doc/misc/flymake.texi: Fix @include docstyle.texi 2021-09-15 Augusto Stoffel Python shell: rearrange printing of newline before output * lisp/progmodes/python.el (python-shell-output-filter-in-progress) (python-shell-output-filter-buffer): Move defvars to avoid compiler warnings. (python-shell-eval-setup-code): Don't print a newline in __PYTHON_EL_eval. (python-shell-send-string): Insert newline before output when applicable (bug#50514). 2021-09-15 Lars Ingebrigtsen Make bookmark fringe marks evaporate * lisp/bookmark.el (bookmark--set-fringe-mark): Make the bookmark evaporate when a buffer is erased (like, for instance, when doing `revert-buffer' in a vc buffer). 2021-09-15 Lars Ingebrigtsen Mention `lisp-data-mode' in `emacs-lisp-mode' doc string * lisp/progmodes/elisp-mode.el (emacs-lisp-mode): Mention `lisp-data-mode'. 2021-09-15 Juri Linkov Adjust occur-context-menu and elisp-context-menu * lisp/progmodes/elisp-mode.el (elisp-context-menu): Add separator only when there is a symbol at mouse click. * lisp/replace.el (occur-context-menu): Insert items in the middle of the menu after mark-whole-buffer. 2021-09-15 Philip Kaludercic Add occur-related context-menu operations (bug#50552) * lisp/replace.el (occur-word-at-mouse): Add new command. (occur-symbol-at-mouse): Add new command. (occur-context-menu): Add new function. 2021-09-15 Juri Linkov * lisp/window.el (display-buffer-in-previous-window): Add symbolp (bug#50576) 2021-09-15 Juri Linkov * lisp/tab-bar.el (tab-bar-close-other-tabs): Add arg ‘tab-number’. (tab-bar-mouse-context-menu): Bind menu-item "Close other tabs" to tab-bar-close-other-tabs with arg ‘tab-number’. 2021-09-15 Juri Linkov * lisp/tab-bar.el: Rename args to consistent naming convention. Use the same naming scheme for function arguments. Use the term "index" when arguments count from 0, and the term "number" when arguments count from 1. * lisp/tab-bar.el (tab-bar-select-tab): Rename ‘arg’ to ‘tab-number’. (tab-bar-move-tab-to): Rename ‘from-index’ to ‘from-number’ and ‘to-index’ to ‘to-number’. (tab-bar-move-tab-to-frame): Rename ‘from-index’ to ‘from-number’ and ‘to-index’ to ‘to-number’. (tab-bar-new-tab-to): Rename ‘to-index’ to ‘tab-number’. (tab-bar-close-tab): Rename ‘arg’ to ‘tab-number’ and ‘to-index’ to ‘to-number’. (tab-bar-rename-tab): Rename ‘arg’ to ‘tab-number’. (tab-bar-change-tab-group): Rename ‘arg’ to ‘tab-number’. 2021-09-15 Stephen Gildea * lisp/mh-e/mh-e.el: Simplify file commentary for a native package. 2021-09-15 Dmitry Gutov Localize namespace-filtering code To be able to filter results coming from elisp-xref-find-def-functions, and for general ease of understanding. * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): Undo the previous change. (xref-backend-apropos): Update accordingly. (elisp--xref-filter-definitions): New function. (xref-backend-definitions): Use it to post-filter the results coming from elisp--xref-find-definitions. * test/lisp/progmodes/elisp-mode-tests.el (find-defs-minor-defvar-c): New test. (find-defs-defun-defvar-el): Update test. 2021-09-15 Wilson Snyder verilog-mode.el: Update verilog-mode from upstream. * lisp/progmodes/verilog-mode.el: (verilog-basic-complete-re) (verilog-behavioral-block-beg-re, verilog-defun-keywords) (verilog-defun-level-generate-only-re, verilog-defun-level-re) (verilog-endcomment-reason-re, verilog-indent-re) (verilog-keywords, verilog-no-indent-begin-re) (verilog-set-auto-endcomments): Support Verilog-A `analog` blocks (#1738). Reported by Dan McMahill. (verilog-read-defines): Fix verilog-read-defines to work with SystemVerilog types (#1734). Reported by Shareef Jalloq. (verilog-indent-declaration, verilog-pretty-declarations): Fix leaving extra spaces before tabs on lining up declarations. (#1723) Reported by TAKAI Kousuke. (verilog-auto-inst, verilog-auto-inst-port) (verilog-read-auto-template-middle, verilog-read-sub-decls-line): Support AUTONOHOOKUP to not AUTOWIRE hookup AUTO_TEMPLATE signals. (#1526) Reported by firefoxtc. 2021-09-15 Glenn Morris * test/Makefile.in (XDG_CONFIG_HOME): Don't export (bug#50577). 2021-09-14 Glenn Morris * doc/misc/flymake.texi: Avoid xrefs in @copying. This isn't really what @copying is for, and doesn't work with makeinfo 4.13. 2021-09-14 Philip Kaludercic Fix interactive forms for rcirc-define-command * lisp/net/rcirc.el (rcirc-define-command): Handle string descriptors correctly. 2021-09-14 Philip Kaludercic Unset mode-line-process for all buffers on reconnecting * lisp/net/rcirc.el (rcirc-sentinel): Add loop over all managed buffers. 2021-09-14 Philip Kaludercic Restore rcirc-target if possible * lisp/net/rcirc.el (rcirc-process-message): Extract target from buffer name 2021-09-14 João Távora Unbreak make bootstrap (don't use cl-defun's &aux parameters) * lisp/progmodes/flymake.el (flymake--handle-report): Don't use &aux. 2021-09-14 Philip Kaludercic Display server buffer after connecting * lisp/net/rcirc.el (rcirc-display-server-buffer): Add new option (rcirc): Respect rcirc-display-server-buffer 2021-09-14 Philip Kaludercic Allow for multiple attempts when reconnecting * doc/misc/rcirc.texi (rcirc commands): Mention rcirc-reconnect-attempts * etc/NEWS: Document change (rcirc-connect): Ensure no other process exists (rcirc-reconnect-attempts): Add option (rcirc-failed-attempts): Add local variable (rcirc-reconnection-timer): Add local variable (rcirc-reconnect): Add function (rcirc-sentinel): Manage multiple reconnection attempts (rcirc-process-server-response): Change user for error messages (rcirc-mode): Don't set rcirc-last-connect-time (reconnect): Extract functionality to rcirc-reconnect 2021-09-14 Philip Kaludercic * doc/misc/rcirc.texi (Hacking and Tweaking): Add missing section to menu. 2021-09-14 Philip Kaludercic * lisp/net/rcirc.el (rcirc-server-alist): Add #emacs to default server list Author: 2021-09-14 Harald Jörg cperl-mode.el: Allow non-ASCII Perl identifiers Replace all "A-Z" regexp literals with unicode-aware rx constructs wherever Perl allows non-ASCII identifiers. * lisp/progmodes/cperl-mode.el (cperl-after-sub-regexp) (cperl-after-label. cperl-sniff-for-indent) (cperl-find-pods-heres, cperl-indent-exp) (cperl-fix-line-spacing, cperl-imenu--create-perl-index) (cperl-init-faces, cperl-find-tags): Replace ASCII regex literals by unicode-aware rx constructs. (cperl-init-faces): Eliminate unused lexical `font-lock-anchored'. (cperl-have-help-regexp, cperl-word-at-point-hard): Allow non-ASCII word characters. * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-fontify-special-variables): New test for $^T and $^{VARNAME}. (cperl-test-ws-rx cperl-test-ws+-rx), (cperl-test-version-regexp, cperl-test-package-regexp): Skip for perl-mode. (cperl-test-identifier-rx, cperl--test-unicode-setup) (cperl-test-unicode-labels, cperl-test-unicode-sub) (cperl-test-unicode-varname) (cperl-test-unicode-varname-list, cperl-test-unicode-arrays) (cperl-test-unicode-hashes, cperl-test-unicode-hashref) (cperl-test-unicode-proto, cperl-test-unicode-fhs) (cperl-test-unicode-hashkeys, cperl-test-word-at-point): New tests for unicode identifiers. (cperl-test-imenu-index): Add a unicode identifier to the test. * test/lisp/progmodes/cperl-mode-resources/grammar.pl: Add a function with non-ASCII name for imenu tests. 2021-09-14 Glenn Morris * lisp/emacs-lisp/checkdoc.el (checkdoc-symbol-words): Fix type. 2021-09-14 Alan Third A further fix for toolbar visibility problems on macOS (bug#50534) * src/nsterm.m (ns_update_begin): Ensure the toolbar's visibility is set correctly. 2021-09-14 Eli Zaretskii Fix recent changes in Flymake manual * doc/misc/flymake.texi: Fix typos. Downcase the first word of each index entry, for more reliable sorting. (Starting Flymake, Finding diagnostics, Troubleshooting): Fix typos. 2021-09-14 Lars Ingebrigtsen Make `find-function-source-path' into obsolete alias * lisp/finder.el (finder-commentary): Adjust usage. * lisp/emacs-lisp/find-func.el (find-function-source-path): Made into obsolete alias (bug#50508). (find-library-source-path): New name. (find-library-name, find-library, find-function-noselect) (find-variable-noselect, find-definition-noselect): Adjust usage and update doc strings. 2021-09-14 João Távora Re-organize and rewrite parts of the Flymake manual bug#50244 * doc/misc/flymake.texi (Starting Flymake): New section. (Finding diagnostics): New section, now contains info previously in "Listing diagnostics" (Mode line status): Renamed from "Mode-line syntax check status" (Troubleshooting): Renamed from "Backend exceptions". (Flymake error types): Tweak phrasing. 2021-09-14 João Távora Add support for project-wide diagnostics in Flymake (bug#50244) This is done with two new concepts: "foreign diagnostics" and "list-only diagnostics". The manual has been updated with a description of these new concepts. * doc/misc/flymake.texi (Flymake utility functions): Explain creation of foreign diagnostics. (Foreign and list-only diagnostics): New subsection. (Listing diagnostics): New subsection. * lisp/progmodes/flymake.el (Version): Bump to 1.2.1 (project): Require project. (flymake--diag): Add new slots 'orig-beg' and 'orig-end'. Rename 'buffer' slot to 'locus'. (flymake-make-diagnostic): Rework docstring. Accept stringp LOCUS arg. (flymake-diagnostic-beg, flymake-diagnostic-end) (flymake-diagnostic-buffer): Simplify definition. (flymake--equal-diagnostic-p): New helper (flymake--highlight-line): Rework. Accept FOREIGN arg. (flymake--state): Work docstring. Add new slot 'foreign-diags' (flymake--handle-report): Call flymake--update-diagnostics-listings. (flymake--handle-report): New helper. (flymake--mode): Forward declare. (flymake--handle-report): Rework for foreign diagnostics. (flymake-mode): When turning on, notice any Flymake diagnostics for current buffer. When turning off update diagnostics listings. (flymake-kill-buffer-hook): Turn off flymake explicitly before killing. (flymake--mode-line-counter): Use flymake-diagnostics to collect diagnostics. (flymake-show-diagnostic): Visit buffer of file-specific diagnostic. (flymake--tabulated-entries-1): New helper extracted from flymake--diagnostic-buffer-entries. (flymake--diagnostics-buffer-entries): Rework. (flymake--diagnostics-base-tabulated-list-format): New helper. (flymake--diagnostics-buffer-name): Adjust. (flymake-list-only-diagnostics): New variable. (flymake--project-diagnostic-list-project): New variable. (flymake--clear-list-only-diagnostics): New helper. (flymake-project-diagnostics-mode): New major mode. (flymake--project-diagnostics) (flymake--project-diagnostics-entries) (flymake--project-diagnostics-buffer): New helpers. (flymake-show-project-diagnostics): New command. (flymake--update-diagnostics-listings): New helper. (flymake-show-buffer-diagnostics): Renamed from flymake-diagnostics-buffer. * etc/NEWS: Mention change. 2021-09-14 João Távora Bump lisp/progmodes/project.el version to 0.7.1 Amont other things exposes the new project-buffers generic function to ELPA users. * lisp/progmodes/project.el (Version): Bump to 0.7.1 2021-09-14 João Távora Keep and report "foreign" diangnostics in flymake-cc Flymake backend This includes diagnostics for .h files that sprang up when checking a c file. Those diagnostics are reported to the Flymake infrastructure which does not (yet) do anything with them. This includes a change to the test fixtures, too. * lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): Rework * test/lisp/progmodes/flymake-resources/another-problematic-file.c: New file. * test/lisp/progmodes/flymake-resources/some-problems.h: Add a function declaration.. 2021-09-14 João Távora Abbreviate Flymake backend name in flymake-show-diagnostics-buffer * lisp/progmodes/flymake.el (flymake--diagnostics-buffer-entries): (flymake-diagnostics-buffer-mode): Report abbreviated backend, too. 2021-09-14 João Távora Unbreak M-x compile-defun of functions using flymake-log * lisp/progmodes/flymake.el (flymake-log): Check if compilation unit is indeed a string before treating it as a file name. 2021-09-14 João Távora Refactor some Flymake functions * lisp/progmodes/flymake.el (flymake-diagnostic-buffer): New helper. (flymake-diagnostic-beg, flymake-diagnostic-end): Tweak docstring. (flymake--handle-report): Simplify. (flymake--publish-diagnostics): Helper for flymake--handle-report. (flymake--mode-line-counter, flymake-show-diagnostic) (flymake--diagnostics-buffer-entries): Use flymake-diagnostic-buffer, flymake-diagonstic-type, flymake-diagnostic-beg. 2021-09-14 João Távora Rename flymake--backend-state to flymake--state The previous name was confusing and akward and dreadful to type and read. * lisp/progmodes/flymake.el (flymake--state): Rename from flymake--backend-state. (flymake--with-backend-state): Use flymake--state. (flymake--handle-report): Use flymake--state. (flymake--collect): Use flymake--state. (flymake-running-backends): Use flymake--state. (flymake--disable-backend): Use flymake--state. (flymake--run-backend): Use flymake--state. (flymake-start): Use flymake--state. (flymake-mode): Use flymake--state. (flymake--mode-line-title): Use flymake--state. (flymake--mode-line-exception): Use flymake--state. (flymake--mode-line-counter): Use flymake--state. 2021-09-14 Lars Ingebrigtsen Project File Commands manual clarification * doc/emacs/maintaining.texi (Project File Commands): Clarify what happens with the file name under point. 2021-09-14 Alan Third Fix incorrectly appearing toolbar on NS (bug#50534) * src/nsmenu.m (update_frame_tool_bar): Ensure both sides of the test are booleans. * src/nsterm.m ([EmacsWindow createToolbar:]): Make the toolbar non-visible initially, in case things get out of sync. Remove call to update_frame_tool_bar: the window isn't yet associated with the view, so it will return immediately. 2021-09-14 Alan Third Fix libgccjit detection on macOS * configure.ac: Combine the Homebrew and MacPorts detection so they will not create nonsense flags if both are installed. 2021-09-14 Juri Linkov * lisp/tab-bar.el: Close tab only on mouse-1, not down-mouse-1 (bug#41343) * lisp/tab-bar.el (tab-bar-mouse-select-tab): Don't close the tab when clicked on the close button. (tab-bar-mouse-close-tab-from-button): New function. (tab-bar-map): Bind [mouse-1] to 'tab-bar-mouse-close-tab-from-button'. (tab-bar-mouse-move-tab): Do nothing on non-tab events. 2021-09-14 Stefan Kangas Add user option to avoid checkdoc warning for unescaped left paren * lisp/emacs-lisp/checkdoc.el (checkdoc-column-zero-backslash-before-paren): New user option to avoid warning on unescaped left parenthesis in column zero. (checkdoc-this-string-valid-engine): Respect above new option. 2021-09-14 Stefan Kangas Minor improvements to checkdoc * lisp/emacs-lisp/checkdoc.el (checkdoc-symbol-words): Add ignored values. (checkdoc-proper-noun-list): Remove XEmacs from list of words to capitalize; there is little need to insist on consistency here. (checkdoc-in-abbreviation-p): Add abbreviation "etc." and sort entries alphabetically. 2021-09-13 Dmitry Gutov Use the term "future history" rather than "default" * lisp/progmodes/project.el (project-find-file, project-or-external-find-file): Update docstring. (project--read-file-cpd-relative, project--read-file-absolute) (project--completing-read-strict): Rename DEFAULT to MB-DEFAULT. (project-find-file-in): Rename FILENAME to SUGGESTED-FILENAME. 2021-09-13 Dmitry Gutov Make sure to return some valid project root * lisp/progmodes/project.el (project-prompt-project-dir): If the user just pressed RET on prompt, prompt again. 2021-09-13 Juri Linkov * lisp/progmodes/elisp-mode.el (elisp-context-menu): New function (bug#9054) (emacs-lisp-mode): Add elisp-context-menu to context-menu-functions. 2021-09-13 Juri Linkov * lisp/isearch.el: Improve 'isearch-allow-motion' feature (bug#50466) * lisp/isearch.el: Add recenter to 'isearch-motion' property of 'end-of-buffer' to maximize the number of search hits on the screen. In 'isearch-motion' property of 'scroll-up-command' use 'recenter 0' for the first line of the screen. (isearch-beginning-of-buffer) (isearch-end-of-buffer): Sync logic from 'isearch-allow-motion' part of isearch-pre-command-hook. Direct users to isearch-allow-motion in the docstrings. (isearch-pre-command-hook): Don't override shifted 'isearch-yank-on-move' in 'isearch-allow-motion'. 2021-09-13 Mattias Engdegård Remove duplication of `find` file pattern arguments * lisp/cedet/semantic/symref/grep.el (semantic-symref-derive-find-filepatterns): Avoid including the same pattern twice. 2021-09-13 Andrea Corallo Clean-up some unnecessary macro usage in comp.c * src/comp.c (emit_static_object) (Fcomp_native_driver_options_effective_p, add_driver_options) (Fcomp__compile_ctxt_to_file, Fcomp_libgccjit_version): Clean-up unenecessary 'defined (WINDOWSNT)' usage. 2021-09-13 Lars Ingebrigtsen Continue NEWS tag checking Fix typo in previous files.el change 2021-09-13 Lars Ingebrigtsen Mention unibyte issues in insert-file-contents-literally doc string * lisp/files.el (insert-file-contents-literally): Mention possible issues with multibyte buffers (bug#50560). 2021-09-13 Stefan Monnier * doc/lispref/variables.texi (named-let): Document TCO 2021-09-13 Dmitry Gutov Fix the tests * test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs) (xref--xref-file-name-display-is-nondirectory) (xref--xref-file-name-display-is-relative-to-project-root): Update for the latest change in xref.el. 2021-09-13 Lars Ingebrigtsen Use a fringe mark in bookmark instead of a whole background line * lisp/bookmark.el (bookmark-face): Adjust colors. (bookmark-fringe-mark): New bitmap. (bookmark--fontify): Use a fringe instead of marking the whole line. (bookmark--unfontify): Adjust to remove. (bookmark--jump-via): Ditto. (bookmark-set-fringe-mark): Renamed from bookmark-fontify. (bookmark--set-fringe-mark, bookmark--remove-fringe-mark): Renamed from --*fontify. Callers adjusted. 2021-09-13 Lars Ingebrigtsen NEWS copy edits and tagging Correct nroff-mode NEWS entry after `M-o' changes 2021-09-13 Lars Ingebrigtsen Mention how to disable auto-fill-mode in the auto-fill section * doc/lispref/text.texi (Margins): Mention how to disable auto-fill-mode. 2021-09-13 Lars Ingebrigtsen Document backtrace-on-error-noninteractive in the --batch section * doc/emacs/cmdargs.texi (Initial Options): Mention backtrace-on-error-noninteractive. 2021-09-13 Lars Ingebrigtsen Further NEWS tagging updates 2021-09-13 Lars Ingebrigtsen completions-annotations doc string clarification * lisp/minibuffer.el (completions-annotations): Mention that it's not always used. 2021-09-13 Lars Ingebrigtsen Update some more NEWS tagging 2021-09-13 Lars Ingebrigtsen Mention `benchmark-call' in the manual * doc/lispref/debugging.texi (Profiling): Mention `benchmark-call'. 2021-09-13 Lars Ingebrigtsen Update some pcase NEWS tags for already-documented functions Update NEWS tagging for string helper functions 2021-09-13 Lars Ingebrigtsen Document named-let and update some NEWS tags * doc/lispref/variables.texi (Local Variables): Document `named-let'. 2021-09-13 Lars Ingebrigtsen Clarify bookmark-fontify NEWS entry 2021-09-13 Lars Ingebrigtsen package-menu-execute doc string clarification * lisp/emacs-lisp/package.el (package-menu-execute): Say what happens to upgrade-marked packages (bug#50551). 2021-09-13 Lars Ingebrigtsen * etc/NEWS: Clarify insert-into-buffer (bug#50558). 2021-09-13 Juri Linkov Support mouse events clicked on the tab bar but outside of any tab (bug#41343) * lisp/tab-bar.el (tab-bar--key-to-number): Return non-nil non-numeric t when no tab is used. Return nil for current-tab. (tab-bar-mouse-select-tab, tab-bar-mouse-close-tab): Do nothing when tab-bar--key-to-number returns non-nil non-numeric t for click events outside of any tab. (tab-bar-mouse-context-menu): Add context menu when mouse is clicked outside of tabs. Add "Duplicate" alongside with "Close" to the menu used when mouse is clicked on a tab. (toggle-tab-bar-mode-from-frame, toggle-frame-tab-bar): Move code closer to 'tab-bar-show'. * src/xdisp.c (handle_tab_bar_click): Return Qtab_bar with empty list when mouse is clicked on the tab bar but outside of any tab. 2021-09-13 Lars Ingebrigtsen Only do multi-isearch in eww if there's next/prev links * lisp/net/eww.el (eww-handle-link): Only do multi-isearch if there's a next/prev link in the HTML (bug#50497). (eww-setup-buffer): Clear the function. (eww-mode): Don't set it here. 2021-09-13 Juri Linkov Change value of DEFAULT_TAB_BAR_BUTTON_MARGIN from 4 to 1 (bug#50424) * doc/emacs/frames.texi (Tab Bars): Improve documentation. 2021-09-13 Lars Ingebrigtsen Fix detection of char regions in print-fontset-element * lisp/international/mule-diag.el (print-fontset-element): Fix the regexp for "foo .. bar " (bug#50519). 2021-09-13 Lars Ingebrigtsen Add some search-whitespace-regexp examples * lisp/isearch.el (search-whitespace-regexp): Add some alternatives in the defcustom. 2021-09-13 Lars Ingebrigtsen Mention get-byte in shortdoc * lisp/emacs-lisp/shortdoc.el (buffer): Mention `get-byte' here. 2021-09-13 Tassilo Horn bug-reference.el: Adapt default debbugs bug regexp for IRC modes * lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist): Adapt regexp so that group 1 defines overlay region. 2021-09-13 Tassilo Horn bug-reference.el: Adapt default debbugs bug regexp for mail modes * lisp/progmodes/bug-reference.el (bug-reference-setup-from-mail-alist): Adapt regexp so that group 1 defines overlay region. 2021-09-13 Stefan Kangas Declare unused function cperl-inside-parens-p obsolete * lisp/progmodes/cperl-mode.el (cperl-inside-parens-p): Declare unused function obsolete. 2021-09-13 Stefan Kangas Improve checkdoc abbreviation handling * lisp/emacs-lisp/checkdoc.el (checkdoc-in-abbreviation-p): New helper function. (checkdoc-sentencespace-region-engine): Fix handling abbreviations after escaped parenthesis. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-tests-in-abbrevation-p) (checkdoc-tests-in-abbrevation-p/with-parens) (checkdoc-tests-in-abbrevation-p/with-escaped-parens): New tests. 2021-09-13 Stefan Kangas Remove some remaining references to XEmacs * lisp/allout.el (allout-overlay-preparations): * lisp/cedet/semantic/decorate/include.el (semantic-decoration-unknown-include-menu) (semantic-decoration-fileless-include-menu): * lisp/cedet/semantic/idle.el (semantic-idle-scheduler-setup-timers): * lisp/vc/ediff-init.el: * lisp/vc/ediff-util.el (ediff-mode): Remove some remaining references to XEmacs. 2021-09-13 Dmitry Gutov Extend xref-file-name-display to elisp and etags definitions And all other types of locations (with a looks-like-file-name check). * lisp/progmodes/xref.el (xref--group-name-for-display): Extract from xref-buffer-location's implementation of xref-location-group. (xref-file-location): Define trivial reader for the 'file' slot. (xref-location-group): Update docstring. (xref--analyze): Use the new function here, to be able to format group names coming from any location type. 2021-09-12 Amin Bandali ERC: Use 'string-replace' only on Emacs 28 and later * lisp/erc/erc-dcc.el (erc-dcc-unquote-filename): * lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy) (erc-update-mode-line-buffer, erc-message-english-PART): Use 'string-replace' only on Emacs 28 and later, otherwise use 'replace-regexp-in-string' on older Emacsen. 2021-09-12 Amin Bandali ERC: Use 'string-search' only on Emacs 28 and later * lisp/erc/erc-backend.el (erc-parse-server-response): * lisp/erc/erc-dcc.el (erc-dcc-member): * lisp/erc/erc-speedbar.el (erc-speedbar-expand-server) (erc-speedbar-expand-channel, erc-speedbar-expand-user): * lisp/erc/erc.el (erc-send-input): Use 'string-search' only on Emacs 28 and later, otherwise use 'string-match' on older Emacsen. 2021-09-12 Juri Linkov * lisp/tab-bar.el (tab-bar-get-buffer-tab): Use 'remq' instead of 'seq-remove' 2021-09-12 Juri Linkov Allow region-related context menu to be used on selected region with one click * lisp/mouse.el (mouse-drag-track): Don't deactivate the mark for the context menu invoked by down-mouse-3. https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg01577.html 2021-09-12 Juri Linkov * lisp/thingatpt.el (thing-at-mouse): New function (bug#50256). * lisp/net/dictionary.el: Add 'context-menu-dictionary' to 'context-menu-functions'. (dictionary-search-word-at-mouse): New function. (context-menu-dictionary): New function that uses 'thing-at-mouse'. (dictionary-mouse-popup-matching-words): Remove stray 'selected-window'. * lisp/textmodes/flyspell.el (flyspell-context-menu): Add '_click' arg. 2021-09-12 Juri Linkov * lisp/mouse.el (context-menu-map): Add 'click' arg to called funs (bug#50256) (context-menu-toolbar, context-menu-global, context-menu-local) (context-menu-minor, context-menu-buffers, context-menu-vc) (context-menu-undo, context-menu-region, context-menu-ffap): Add 'click' arg. * lisp/dired.el (dired-context-menu): * lisp/help-mode.el (help-mode-context-menu): * lisp/info.el (Info-context-menu): * lisp/net/eww.el (eww-context-menu): * lisp/net/goto-addr.el (goto-address-context-menu): * lisp/progmodes/prog-mode.el (prog-context-menu): Add 'click' arg. 2021-09-12 Eli Zaretskii Fix quoting style in Lisp comments * lisp/textmodes/rst.el: * lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions): * lisp/org/org.el: * lisp/org/org-list.el (org-list-to-generic): * lisp/org/org-compat.el: * lisp/hexl.el (hexl-ascii-region): * lisp/emacs-lisp/lisp-mode.el: * lisp/calendar/calendar.el: In comments, quote 'like this'. 2021-09-12 Juri Linkov * lisp/mouse.el (context-menu-map): Remove duplicate separators (bug#50067). * lisp/mouse.el (context-menu-undo, context-menu-region): * lisp/progmodes/prog-mode.el (prog-context-menu): Use 'when' instead of ':visible' that allows to remove duplicate separators created between empty submenus. 2021-09-12 Juri Linkov Use window-point in event-start and event-end (bug#50256) * lisp/subr.el (event-start, event-end): Provide window-point as an arg for posn-at-point, and for the constructed list. * lisp/help-mode.el (help-mode-context-menu): Remove a kludge that checked if window-buffer is current-buffer. 2021-09-12 Juri Linkov * lisp/tab-bar.el: Improve logic of 'ignore-current-tab'. * lisp/tab-bar.el (tab-bar-get-buffer-tab): Prefer the current tab when 'ignore-current-tab' is nil. (display-buffer-in-tab): Use alist entry 'ignore-current-tab' as the third arg of 'tab-bar-get-buffer-tab'. Improve docstring. Suggested by Feng Shu https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg00955.html 2021-09-12 Eli Zaretskii Minor copyedits in Emacs FAQ * doc/misc/efaq.texi (What was XEmacs?, Colors on a TTY): Fix wording and improve the description. 2021-09-12 Lars Ingebrigtsen Fix read-no-blanks-input doc string typo * lisp/minibuffer.el (read-no-blanks-input): Fix doc string typo. 2021-09-12 dick r. chiang Fix read-no-blanks-input history argument * lisp/minibuffer.el (read-no-blanks-input): Use the `minibuffer-history' symbol, not the value (bug#50535). 2021-09-12 Mattias Engdegård Infer identifier namespace in elisp xref backend Improve the accuracy of `xref-find-definitions` by inferring the likely namespace of the sought identifier from its context. This reduces the number of irrelevant search hits when it is clear what kind of identifier is being looked for (such as showing a variable when the user looks for a function). Co-written with Dmitry Gutov. * lisp/progmodes/elisp-mode.el (elisp--xref-list-index) (elisp--xref-infer-namespace, xref-backend-identifier-at-point): New. (xref-backend-definitions): Use the buffer position for inferring. (elisp--xref-find-definitions): Use the inferred namespace. (xref-backend-apropos): Adapt call. * test/lisp/progmodes/elisp-mode-tests.el (elisp-mode-test--with-buffer) (elisp-mode-with-buffer, elisp-mode-infer-namespace): New tests. 2021-09-12 Martin Rudalics ;* lisp/window.el (switch-to-prev-buffer): Fix typo in doc-string. 2021-09-12 Martin Rudalics Improve doc-strings of some buffer display options (Bug#50518) * lisp/window.el (pop-up-frame-alist, same-window-buffer-names) (same-window-regexps, pop-up-frames, pop-up-windows): In doc-strings say that these options are maintained for backward compatibility only (Bug#50518). 2021-09-12 Eli Zaretskii Improve documentation of tab bars in the Emacs manual * doc/emacs/frames.texi (Tab Bars): Improve wording, indexing, and cross-references. Make sure each command is mentioned by its name when it is called out by the key sequence. Index entries should precede @item lines in a @table. 2021-09-12 Eli Zaretskii Improve documentation of some tab-bar features * lisp/tab-bar.el (tab-bar-show, toggle-frame-tab-bar): Doc fixes. * etc/NEWS: Update the corresponding entries. 2021-09-12 Olivier Certner ERC: Track: Fix a perceived minor bug in mode line face selection * lisp/erc/erc-track.el (erc-track-modified-channels): Fix what is a probable bug when a new insert event happens for a buffer that was not tracked or for which no mode line face was selected: in this case, stop treating the latest buffer's face (first in list) as the previous one, which could be overridden with an older one (in FACES' rest), as if it had happened after. 2021-09-12 Olivier Certner Amin Bandali ERC: Track: Rewrite 'erc-track-find-face' as 'erc-track-select-mode-line-face' * lisp/erc/erc-track.el (erc-track-find-face): Declare obsolete and rewrite as 'erc-track-select-mode-line-face', changing the function arguments, so that it is very clear what the current algorithm is. No functional changes. Performance improvements. Clarify the documentation and remove the part on some faces being lists, which clearly does not apply. (erc-track-modified-channels): Replace calls to 'erc-track-find-face' with calls to 'erc-track-select-mode-line-face', preserving the existing behavior. (erc-modified-channels-alist): Change the reference to 'erc-track-select-mode-line-face' in the documentation following the rename. * etc/NEWS: Announce the change. 2021-09-12 Amin Bandali Merge from origin/emacs-27 d7f4cc0974 ERC: Track: Clarify documentation on tracked buffers and a... fb1f0dfec9 ERC: Track: Fix documentation of structure of 'erc-modifie... 252a769b11 ; * doc/lispref/files.texi (Changing Files): Fix xref to f... edc93a5ce6 ; Fix grammar in efaq.texi on Emacs vs XEmacs. # Conflicts: # doc/misc/efaq.texi 2021-09-12 Olivier Certner ERC: Track: Clarify documentation on tracked buffers and add references * lisp/erc/erc-track.el (erc-modified-channels-alist): Clarify what the list contains. Add references to variables and functions involved in displaying tracked buffers from this list. (erc-make-mode-line-buffer-name): Describe exactly the algorithm, and reference custom variables that influence it. 2021-09-12 Olivier Certner ERC: Track: Fix documentation of structure of 'erc-modified-channels-alist' * lisp/erc/erc-track.el (erc-modified-channels-alist): Fix the docstring: each element is a dotted list where the last cdr is sometimes a proper list, making the element only sometimes a proper list. 2021-09-12 Dmitry Gutov Re-fix bug#16897 * lisp/vc/vc-git.el (vc-git--file-list-is-rootdir): Extract from 'vc-git-command'. (vc-git--literal-pathspecs): Use it here as well. 2021-09-11 Tassilo Horn Refactor bug-reference setup for software forges * lisp/progmodes/bug-reference.el (bug-reference-gitea-instances) (bug-reference-gitlab-instances,bug-reference-sourcehut-instances): Delete defvars. Those are replaced with bug-reference-forge-alist. (bug-reference-forge-alist): New variable. (bug-reference--build-forge-setup-entry): New cl-defgeneric with methods for github, gitlab, gitea, and sourcehut instances. (bug-reference--setup-from-vc-alist): Use bug-reference-forge-alist and bug-reference--build-forge-setup-entry. * doc/emacs/maintaining.texi (Bug Reference): Mention that the first group in bug-reference-bug-regexp defines the overlay bounds. Also mention bug-reference-forge-alist in VCS setup section. 2021-09-11 Philip Kaludercic * NEWS: Remove empty entry * NEWS: Mention rcirc changes 2021-09-11 Mattias Engdegård Fix byte-compilation warnings * lisp/calc/calc-graph.el (calc-gnuplot-check-for-errors): * lisp/calendar/holidays.el (list-holidays): Dodge 'save-excursion+set-buffer' warnings that appeared after the progn flattening was introduced. 2021-09-11 Mattias Engdegård Remove obsolete variable * lisp/emacs-lisp/byte-opt.el (byte-optimize--vars-outside-condition): Remove. (byte-optimize-form-code-walker): Remove bindings. 2021-09-11 Mattias Engdegård Propagate aliased lexical variables in byte compiler Replace uses of a variable aliasing another variable with that aliased variable, to allow for variable removal when possible. This also enables opportunities for other optimisations. Example: (let ((y x)) (f y)) => (f x) The optimisation is only performed if both aliased and aliasing variables are lexically bound. Shadowing bindings are α-renamed when necessary for correctness. Example: (let* ((b a) (a EXPR)) (f a b)) => (let* ((a{new} EXPR)) (f a{new} a)) * lisp/emacs-lisp/byte-opt.el (byte-optimize--aliased-vars): New. (byte-optimize-form-code-walker): Cancel aliasing upon mutation. (byte-optimize--rename-var-body, byte-optimize--rename-var): New. (byte-optimize-let-form): Add the optimisation. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add relevant test cases. 2021-09-11 Philip Kaludercic * doc/misc/rcirc.texi: Replace defun-rcirc-command with rcirc-define-command * doc/misc/rcirc.texi: Document rcirc-track-abbrevate-flag * doc/misc/rcirc.texi: Document rcirc-nick-filter and rcirc-channel-filter * doc/misc/rcirc.texi: Document rcirc-track-ignore-server-buffer-flag * doc/misc/rcirc.texi: Document rcirc-omit-responses-after-join 2021-09-11 Philip Kaludercic Rename rcirc-omit-after-reconnect to rcirc-omit-after-connect * lisp/net/rcirc.el (rcirc-omit-after-reconnect): Remove variable (rcirc-omit-responses-after-join): Add variable (rcirc-reconncting): Remove variable (rcirc-joined): Add variable (rcirc-get-buffer-create): Set rcirc-joined (rcirc-print): Use rcirc-joined (reconnect): Remove code relating to rcirc-reconncting 2021-09-11 Augusto Stoffel Keep python.el compatible with older Emacsen * lisp/progmodes/python.el (python-shell-send-string): Don't assume comint-max-line-length is defined (bug#50503). 2021-09-11 Michael Albinus Tramp code cleanup * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-make-directory): Simplify. * lisp/net/tramp-sh.el (tramp-methods) : Don't use "%n" marker. * test/lisp/net/tramp-tests.el (tramp-test13-make-directory): Merge with `tramp-test-make-directory-helper' and `tramp-test13-make-directory-with-file-modes'. (tramp-test44-asynchronous-requests): Use always the same operation in timer. 2021-09-11 Augusto Stoffel Allow using 'python-shell-send-file' across machines * lisp/progmodes/python.el (python-shell-eval-file-setup-code): Look for a file coding cookie on the Python rather than on the Emacs side, to avoid additional file transfers. (python-shell--save-temp-file): Allow argument to be a buffer. (python-shell-send-file): Address the case where the selected file and the inferior process are on different machines (bug#50516). 2021-09-11 Augusto Stoffel Implement caching for 'python-shell-completion-at-point' * lisp/progmodes/python.el (python-shell-completion-at-point): cache results, since computing them involves talking with the inferior process and, potentially, network communications (python-shell--capf-cache): new variable, for cache (python-shell-completion-get-completions) (python-shell-completion-native-get-completions): 'import' argument is not needed anymore. (python-shell-completion-native-setup) (python-shell-completion-native-try): pass the setup code synchronously, to avoid printing a message in the shell (bug#50459). 2021-09-11 Alan Third Fix display of tab-bar buttons * src/xterm.c (x_draw_image_relief): * src/w32term.c (w32_draw_image_relief): Fix the display of tab-bar buttons when mouse pointer moves off the button. (Bug#50424) 2021-09-11 Eli Zaretskii Document tool-bar and tab-bar mouse events * doc/lispref/commands.texi (Click Events): Document the format of POSITION for tab-bar and tool-bar events. 2021-09-11 Eli Zaretskii Fix tab-bar scrolling for mice that report mouse-wheel events * src/keyboard.c (make_lispy_position): Call 'window_from_coordinates' with last 2 arguments non-zero, to have it report on tool-bar and tab-bar positions. Tweak the return value according to the expectations of 'make_lispy_event'. (make_lispy_event): No more need to inject "tab-bar" into a click event on the tab bar: it's already there. 2021-09-11 Tassilo Horn bug-reference-bug-regexp now defines a contract for the overlay region Formerly, bug-reference-fontify placed the overlay on the complete match of bug-reference-bug-regexp. That made it impossible to encode constraints like "must not match at BOL" in the regexp without messing up fontification. Therefore, now it establishes the contract that subexpression 1 defines the overlay region. Subexpression 2 must still match the part of the bug reference injected into bug-reference-url-format if that's a string. If its a function, the interpretation of subexpressions > 1 is up to the function. For backwards compatibility, bug-reference-fontify checks if the bounds of subexpression 2..10 are within the bounds of subexpression 1. If not, or subexpression 1 doesn't even exist/match, we fall back to placing the overlay from (match-beginning 0) to (match-end 0) but issue a warning. * lisp/progmodes/bug-reference.el (bug-reference-bug-regexp): Document contract that subexpression 1 defines the overlay region and adapt the default value accordingly. (bug-reference--nonconforming-regexps): New internal variable. (bug-reference--overlay-bounds): New function. (bug-reference-fontify): Place overlay on subexpression 1's bounds if bug-reference-bug-regexp conforms to the documented contract. (bug-reference--setup-from-vc-alist): Adapt regexps to new contract. * doc/emacs/maintaining.texi (Bug Reference): Adapt regexp used in example. 2021-09-11 Stefan Kangas * lisp/info.el (Info-streamline-headings): Add entry. 2021-09-11 Eli Zaretskii Improve documentation of Show Paren mode * doc/emacs/programs.texi (Matching): Improve wording and indexing. (Bug#29381) 2021-09-11 Eli Zaretskii Fix restoring from pdumper file on MS-Windows 9X * src/pdumper.c (dump_map_file_w32): Use PAGE_WRITECOPY flag when calling CreateFileMapping for DUMP_MEMORY_ACCESS_READWRITE access, as that is required by Windows 9X. (Bug#50453) 2021-09-11 Dmitry Gutov New minor mode 'show-paren-local-mode' * lisp/paren.el (show-paren--delete-overlays): New function, extracted from show-paren-mode. (show-paren-local-mode): New minor mode. (show-paren-mode): Update docstring to mention it (bug#29381). * doc/emacs/programs.texi (Matching): Update show-paren-mode section. 2021-09-11 Tassilo Horn Improve overlay placement performance * lisp/progmodes/bug-reference.el (bug-reference--overlays-in): New function. (bug-reference-unfontify): Use it. (bug-reference-fontify): Reuse and move existing overlays instead of deleting all and creating them anew. 2021-09-10 Arthur Miller Add support for GCC compiler command-line options * lisp/emacs-lisp/comp.el ('native-comp-compiler-options): New option. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Add support for new 'native-comp-compiler-options'. * src/comp.c (Fcomp_native_compiler_options_effective_p): New function. (add_compiler_options): New function. (Fcomp__compile_ctxt_to_file): Call 'add_compiler_options'. 2021-09-10 Philip Kaludercic Merge branch 'master' into feature/rcirc-update 2021-09-10 Philip Kaludercic Fix double reconnection bug * lisp/net/rcirc.el (rcirc-sentinel): Don't reconnect if reconnecting (reconnect): Use delete-process instead of kill-process 2021-09-10 Dmitry Gutov Fix test find-defs-defgeneric-el * test/lisp/progmodes/elisp-mode-tests.el (find-defs-defgeneric-el): Fix the test. Reported by dick.r.chiang@gmail.com. 2021-09-10 Lars Ingebrigtsen Revert usage of format-prompt in python.el * lisp/progmodes/python.el (python-eldoc-at-point): Revert usage of format-prompt in python.el since this is also an ELPA package (and older Emacs versions doesn't have format-prompt). 2021-09-10 Augusto Stoffel Properly encode all strings sent to Python shell * lisp/progmodes/python.el: Now depends on Emacs 28. (python-shell-package-enable, python-shell-completion-get-completions) (python-ffap-module-path, python-eldoc--get-doc-at-point): Encode Python strings using 'python-shell--encode-string' instead of triple quotes. (python-shell-completion-string-code, python-eldoc-string-code) (python-ffap-string-code): Remove defcustoms. (bug#50503). 2021-09-10 Stephen Gildea Tramp: honor default file modes in make-directory * lisp/net/tramp-sh.el: * lisp/net/tramp-adb.el: * lisp/net/tramp-sudoedit.el: * lisp/net/tramp-gvfs.el: Add support for default file modes to relevant Tramp back ends for make-directory. (Closes: Bug#50410) * test/lisp/net/tramp-tests.el (tramp-test13-make-directory-with-file-modes): New test. * etc/NEWS: Note this enhancement. Thanks to Michael Albinus for helping improve this patch. 2021-09-10 Eli Zaretskii Doc string followup to last change. * lisp/progmodes/xref.el (xref-find-apropos): Mention 'tags-apropos-additional-actions' in the doc string. * lisp/progmodes/etags.el (tags-apropos-additional-actions): Mention 'xref-find-apropos' in the doc string. 2021-09-10 Eli Zaretskii Document 'tags-apropos-additional-actions' with Xref * doc/emacs/maintaining.texi (Looking Up Identifiers): Rearrange and reword documentation of 'xref-find-apropos' and 'xref-auto-jump-to-first-definition'. Add the description of 'tags-apropos-additional-actions'. Delete the comment with not-yet implemented features that were available with 'tags-apropos'. * etc/NEWS: Augment the wording of 'xref-find-apropos' entry. 2021-09-10 Lars Ingebrigtsen Further fix for the search-whitespace-regexp change * lisp/isearch.el (search-whitespace-regexp): Fix yet another typo in this one-line change (bug#21278). 2021-09-10 Gregory Heytings New user options to move between isearch matches * lisp/isearch.el (isearch-allow-motion, isearch-motion-changes-direction): New user options. (isearch-pre-command-hook): Handle the new options. * etc/NEWS: Mention the new user options. * doc/emacs/search.texi: Document the new user options. 2021-09-10 Lars Ingebrigtsen Fix typo in previous search-whitespace-regexp change * lisp/isearch.el (search-whitespace-regexp): Fix typo in last checkin for this variable. 2021-09-10 Gregory Heytings Fix behavior of isearch-{beginning,end}-of-buffer * lisp/isearch.el (isearch-beginning-of-buffer) (isearch-end-of-buffer): Fix their behavior when isearch-repeat-on-direction-change is non-nil (bug#50466). 2021-09-10 Lars Ingebrigtsen Change the default value of search-whitespace-regexp * lisp/isearch.el (search-whitespace-regexp): Change the default to always exclude newlines from the set (bug#21278). It used to be mode-dependent whether newlines were included or not, and this was confusing as a user interface. 2021-09-10 Dmitry Gutov * lisp/progmodes/ruby-mode.el (ruby-current-indentation): Tweak obsoletion. 2021-09-10 Dmitry Gutov Support tags-apropos-additional-actions in etags Xref backend * lisp/progmodes/etags.el (xref-etags-apropos-location): New class. (xref-location-marker): New method definition. (xref-make-etags-apropos-location): New function. (etags--xref-apropos-additional): New function. (xref-backend-apropos): Use it here. 2021-09-09 Eli Zaretskii Improve documentation of tab-bar functions and variables * etc/NEWS: Improve wording of tab-bar related entries. * lisp/tab-bar.el (tab-bar-show, tab-bar-select-tab-modifiers): Improve and clarify the doc strings. 2021-09-09 Eli Zaretskii Fix a recent change wrt 'comint-max-line-length' * lisp/progmodes/python.el (python-shell-send-string): Only heed 'comint-max-line-length' for subprocesses with which we communicate via PTYs. (Bug#49822) * lisp/comint.el (comint-max-line-length): Doc fix. Add a value for MS-Windows. 2021-09-09 Stefan Monnier Change ruby-align-chained-calls indentation * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Align with the first sibling on the previous line instead of the last (bug#32496). That is, before it used to be one.two.three .four and now it is one.two.three .four 2021-09-09 Augusto Stoffel Better treatment of line length limits for the Python inferior * lisp/comint.el (comint-max-line-length): New constant reflecting a safe maximum line size that can be sent to an inferior process. * lisp/progmodes/python.el (python-shell-comint-watch-for-first-prompt-output-filter): Send setup code to the inferior process only once and at this stage. (python-shell-eval-setup-code, python-shell-eval-file-setup-code): Move, unchanged, to an earlier point to avoid byte-compiler warnings. (python-shell-send-string-no-output): Revert changes of e32c7d2a8d (python-shell-send-string): Use 'comint-max-line-length' to decide when to resort to temp files. (python-shell-send-string, python-shell-send-file): Don't send setup code each time (bug#49822). 2021-09-09 Lars Ingebrigtsen Clarify Gnus vs. font locking in the Gnus manual * doc/misc/gnus.texi (Formatting Variables): Explicitly mention that font locking doesn't work in Gnus buffers (bug#50474). 2021-09-09 Lars Ingebrigtsen Remove the "Real meaning of copyleft" node in efaq * doc/misc/efaq.texi (Real meaning of copyleft): Remove the section (bug#50446). (Common acronyms): Add a link to the GNU site's page about licenses. 2021-09-09 Juri Linkov Merge branch 'feature/tab-bar-events' 2021-09-08 Michael Albinus Document restriction of completion styles with remote file names * doc/misc/tramp.texi (File name completion): Mention restriction of completion styles. 2021-09-08 Lars Ingebrigtsen Don't ding at the user in pop-mark * lisp/simple.el (pop-mark): Don't ding at the user if there's no mark to pop (bug#44375). This function is used (in some circumstances) when the user mouse-1-clicks links (in *Help* buffer, for instance), which will then ding at the user before following the link. 2021-09-08 Lars Ingebrigtsen Further tweak describe-variable look * lisp/help-fns.el (describe-variable): Tweak how long variable values are shown. 2021-09-08 Mattias Engdegård * etc/NEWS: macOS alternative context menu mouse binding. 2021-09-08 Lars Ingebrigtsen Fix previous help-fns change * lisp/help-fns.el (help-fns--run-describe-functions): Fix the test for whether the function inserted anything. 2021-09-08 Lars Ingebrigtsen Adjust test to describe-function changes The doc now always ends with an empty line 2021-09-08 Miha Rihtaršič Allow kmacros to end with C-g in minibuffer * src/keyboard.c (cmd_error): If a command causes a minibuffer-quit condition, record its key in a keyboard macro (bug#48603). 2021-09-08 Lars Ingebrigtsen Add support for keypad `=' key in xterm.el * lisp/term/xterm.el (xterm-function-map): Add support for keypad = key (bug#16645). 2021-09-08 Lars Ingebrigtsen Don't disable ipython as a native interpreter * lisp/progmodes/python.el (python-shell-completion-native-disabled-interpreters): Remove ipython from list, because it apparently works fine these days (bug#50458). 2021-09-08 Lars Ingebrigtsen Fix mail-user-agent defcustom type * lisp/simple.el (mail-user-agent): Any symbol can be used as the value (bug#50460). 2021-09-08 Lars Ingebrigtsen Move the indented *Help* block to after the doc string * lisp/help-fns.el (describe-function-1): Move indented admin block to the end (bug#50463). (describe-variable): Ditto (bug#50463). 2021-09-08 Lars Ingebrigtsen Don't output "probably introduced" if we know the answer for sure * lisp/help-fns.el (help-fns--customize-variable-version): Factored out from `help-fns--customize-variable' to be able to see whether it outputs anything. (help-fns--run-describe-functions): New function. (help-fns--activated-functions): New internal variable. (describe-variable): Use new function. (describe-face, describe-function-1): Ditto (bug#50463). 2021-09-08 Stefan Kangas Center Emacs logo above text on the splash screen * lisp/startup.el (fancy-splash-head): Center Emacs logo above text on the splash and about screen. 2021-09-08 Dmitry Gutov Have Git backend actions accept nil filenames again * lisp/vc/vc-git.el (vc-git--literal-pathspec): Move the nil check to the beginning (bug#50422). 2021-09-07 Harald Jörg cperl-mode.el: Use rx sequences for Perl grammar Following advice by Mattias Engdegård, most uses of rx-to-string were eliminated, and rx sequences used instead to define Perl grammar components. * lisp/progmodes/cperl-mode.el: (cperl-block-declaration-p): New function, replaces regexp literals. (cperl-imenu--function-name-regexp-perl): Deleted, use rx sequences to find imenu entries instead. (cperl-indent-line): Use rx components instead of regexp literals. (cperl-sniff-for-indent): use `cperl-block-declaration-p' to increase accuracy, use rx sequence for labels to replace inaccurate regexp literals. (cperl-block-p): Replace inline comment by docstring. Use `cperl-block-declaration-p'. (cperl-after-block-p): Use `cperl-block-declaration-p'. (cperl-after-block-and-statement-beg): Replace inline comment by docstring. (cperl-imenu-package-keywords), (cperl-imenu-sub-keywords), (cperl-imenu-pod-keywords) : New variables to sort imenu entries into categories. (cperl-imenu--create-perl-index): Use rx sequences to collect imenu entries. (cperl-init-faces): Use rx components instead of regexp literals for labels. * test/lisp/progmodes/cperl-mode-tests.el: Test rx sequences instead of regexp strings 2021-09-07 Philip Kaludercic Add rcirc-track-ignore-server-buffer-flag option * lisp/net/rcirc.el (rcirc-track-ignore-server-buffer-flag): Add option (rcirc-record-activity): Use rcirc-track-ignore-server-buffer-flag 2021-09-07 Eric Abrahamsen Don't let nndiary.el alter variables when loading file * lisp/gnus/nndiary.el (nndiary-open-server): Move the manipulation of `gnus-extra-headers' and `nnmail-extra-headers' into this function: it should only happen if we're actually firing up an nndiary server. Previously, simply attempting to complete a gnus-* prefixed symbol could end up loading this file, and changing the variable values. 2021-09-07 Alan Mackenzie Increase jit-lock-chunk-size from 500 to 1500 for performance reasons * lisp/jit-lock.el (jit-lock-chunk-size): Increase to 1500. See also https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg00540.html. 2021-09-07 Lars Ingebrigtsen Encode urls more before using in browse-url * lisp/net/browse-url.el (browse-url-default-windows-browser) (browse-url-default-macosx-browser): Encode the URL before using (in case it contains spaces) (bug#50435). 2021-09-07 Lars Ingebrigtsen Fix encoding in browse-url-encode-url * lisp/net/browse-url.el (browse-url-url-encode-chars): Document what the argument really is, and simplify the implementation (bug#50435). (browse-url-encode-url): Encode spaces. 2021-09-07 Alex Bochannek Add a new Gnus command to toggle whether to use fonts in shr * doc/misc/gnus.texi (Article Washing): Document it. * lisp/gnus/gnus-art.el (gnus-article-toggle-fonts): New command and key binding (bug#50383). 2021-09-07 Lars Ingebrigtsen Improve the Info mode line further * lisp/info.el (Info-set-mode-line): Improve the Info mode line further (bug#13776). 2021-09-07 Eli Zaretskii Fix a recent documentation change * lisp/progmodes/xref.el (xref-auto-jump-to-first-definition) (xref-auto-jump-to-first-xref): * etc/NEWS: Fix wording and typos. 2021-09-07 Glenn Morris Merge from origin/emacs-27 97aa8240d2 (origin/emacs-27) * doc/misc/efaq.texi: Misc copyedits. e1050492d1 * doc/misc/efaq.texi (Reporting bugs): Refer to the Emacs ... # Conflicts: # doc/misc/efaq.texi 2021-09-07 Michael Albinus Adapt tramp-test26-file-name-completion * test/lisp/net/tramp-tests.el (tramp-test26-file-name-completion): Do not check for default method. 2021-09-07 Eli Zaretskii Improve documentation of new Xref options * lisp/progmodes/xref.el (xref-auto-jump-to-first-definition) (xref-auto-jump-to-first-xref): More accurate description in the doc strings. * doc/emacs/maintaining.texi (Looking Up Identifiers) (Identifier Search, List Identifiers, Project File Commands): Fix the documentation of 'xref-auto-jump-to-first-definition' and 'xref-auto-jump-to-first-xref' to be more accurate. * etc/NEWS: More accurate wording of the entry about 'xref-auto-jump-to-first-definition' and 'xref-auto-jump-to-first-xref'. 2021-09-07 Michael Albinus Do not expand default method, user, host in remote file name completion * lisp/net/tramp.el (tramp-completion-handle-file-name-all-completions): Do not expand default method, user, host. (Bug#50387) (tramp-get-completion-methods): `partial-method' can be nil. 2021-09-07 Eli Zaretskii Fix display of tab-bar buttons * src/xterm.c (x_draw_image_relief): * src/w32term.c (w32_draw_image_relief): Fix calculation of relief thickness for tab-bar buttons. * lisp/tab-bar.el (tab-bar--load-buttons) (tab-bar-history-mode): Fix the :margin specification for tab-bar buttons. (Bug#50424) 2021-09-07 Philip Kaludercic Use fresh symbol for argument list * lisp/net/rcirc.el (rcirc-define-command): Use make-symbol instead of gensym 2021-09-07 Philip Kaludercic Allow /reconnect while connecting * lisp/net/rcirc.el (reconnect): Kill previous process and start a new one 2021-09-07 Glenn Morris * test/lisp/vc/vc-tests.el (vc-test--version-diff): Git env tweak. 2021-09-07 Dmitry Gutov Jiacai Liu Support specifying just one command in project-switch-commands * lisp/progmodes/project.el (project-switch-commands): Describe the new possible type of value. (project--switch-project-command): New function, extract from project-switch-project. (project-switch-project): If project-switch-commands's value is a symbol, invoke that command without showing a menu. 2021-09-07 Stefan Kangas Small FAQ fixes * doc/misc/efaq.texi (Colors on a TTY): Remove reference to ancient Emacs version 22. (Finding Emacs on the Internet): Use more current terminology. 2021-09-07 Stefan Kangas Remove Emacs FAQ maintainer * doc/misc/efaq.texi: Remove maintainer Romain Francoise after private communication. 2021-09-07 Stefan Kangas * etc/NEWS: Some further re-organization. * etc/NEWS: Clarify entry about the "*Completions*" buffer. 2021-09-06 Philip Kaludercic Mention list of capabilities that should be implemented * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add comment 2021-09-06 Philip Kaludercic Implement standard-replies capability * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add standard-replies to list (rcirc-response-formats): Add response formats for WARN, FAIL and NOTE (rcirc-handler-FAIL): Add handler (rcirc-handler-WARN): Add handler (rcirc-handler-NOTE): Add handler 2021-09-06 Philip Kaludercic Connect to server asynchronously * lisp/net/rcirc.el (rcirc-connect): Add :nowait option to open-network-stream (rcirc-sentinel): Handle "open\n" events 2021-09-06 Tassilo Horn Add possibility to override the default highlighting * lisp/progmodes/bug-reference.el (bug-reference-fontify): Highlight 99th group if it exists. (bug-reference-bug-regexp): Document that regexp group 99 can be used to override the default behavior of highlighting the complete match. (bug-reference--run-auto-setup): Use run-hook-with-args-until-success instead of throw/catch. 2021-09-06 Mattias Engdegård Normalise nested `progn` forms in byte-code optimiser * lisp/emacs-lisp/byte-opt.el (byte-optimize-body): Flatten body. This simplifies the source tree and reduces the number of different cases that other optimisations need to take into account. 2021-09-06 Mattias Engdegård More robust optimisation of `ignore` Treat `ignore` as any other function during source-level optimisation, to avoid having its warning-suppression effects cancelled by repeated passes. Instead, define a custom code generation function. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't treat `ignore' specially here. (side-effect-free-fns): Don't mark `ignore` as side-effect-free or error-free (although it is), since that would allow the optimiser to elide calls. * lisp/emacs-lisp/bytecomp.el (ignore, byte-compile-ignore): Define and register a code-gen function. 2021-09-06 Mattias Engdegård Optimise `member` and `assoc` (etc) with constant empty list * lisp/emacs-lisp/byte-opt.el (byte-optimize-assq): New. (byte-optimize-member, byte-optimize-assoc, byte-optimize-memq): When the list argument is constant nil, the result is always nil. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test cases. 2021-09-06 Dmitry Gutov Fixup dired-do-find-regexp-and-replace * lisp/dired-aux.el (dired-do-find-regexp-and-replace): Disregard the customized value of xref-auto-jump-to-first-xref (it breaks the xref-query-replace-in-results invocation). * lisp/progmodes/xref.el (xref-auto-jump-to-first-xref): Mention the caveat for users or xref distributed through ELPA. 2021-09-06 Michael Albinus Revert an accidental change in etc/NEWS 2021-09-06 Lars Ingebrigtsen Make calc-grab-region work with rectangular selects * lisp/calc/calc.el (calc-grab-region): Heed `rectangle-mark-mode' (bug#50403). 2021-09-06 martin rudalics Restore the debugging window size more reliably * lisp/emacs-lisp/debug.el (debug): Restore the debugging window size more reliably (bug#12921). 2021-09-06 Lars Ingebrigtsen Add a tooltip to the comint-mode mode line format * lisp/comint.el (comint-mode): Add a tooltip to say what the :run bit means (bug#13776). 2021-09-06 Lars Ingebrigtsen Improve the info-mode mode line * lisp/info.el (Info-set-mode-line): Add a help echo to help explain what the thing in parentheses is (bug#13776). 2021-09-06 Lars Ingebrigtsen Simplify `image-dired-dired-file-marked-p' * lisp/image-dired.el (image-dired-dired-file-marked-p): Use `dired-re-mark' instead of open-coding the opposite regexp (bug#14925). 2021-09-06 Lars Ingebrigtsen Improve the gnus-group-default-list-level doc string * lisp/gnus/gnus-group.el (gnus-group-default-list-level): Improve doc string. 2021-09-06 Lars Ingebrigtsen Reset gnus-group-use-permanent-levels when Gnus restarts * lisp/gnus/gnus-start.el (gnus-clear-system): Reset `gnus-group-use-permanent-levels' upon Gnus restart (bug#50416). 2021-09-06 Allen Li Make `gnus-group-use-permanent-levels' work better * lisp/gnus/gnus-group.el (gnus-group-default-level): Removed implicit setting of gnus-group-use-permanent-levels. (gnus-group-list-groups): Set gnus-group-use-permanent-levels explicitly. (gnus-group-get-new-news): Set gnus-group-use-permanent-levels explicitly (bug#50417). (gnus-group-get-new-news): When the user has given a numeric prefix, use that as the list level. 2021-09-06 Juri Linkov * etc/NEWS: Reorder "Isearch and Replace" items 2021-09-06 Eli Zaretskii * doc/emacs/maintaining.texi (Xref Commands): Fix indexing. 2021-09-06 Stefan Kangas * etc/NEWS: Improve file organization. 2021-09-06 Stefan Kangas Improve documentation of save-place-abbreviate-file-names * lisp/saveplace.el (save-place-abbreviate-file-names): Document why you might want to enable this option. 2021-09-06 Stefan Kangas * etc/NEWS: Don't mention a fixed bug. 2021-09-06 Dmitry Gutov project--files-in-directory: Fix handling of ignores * lisp/progmodes/project.el (project--files-in-directory): Pass "." as the DIR argument to 'find' because otherwise the ignore expression can match the project root directory name, which we don't want to happen (bug#50240). Fixup the resulting file names at the end with concatenation. Originally I thought it could lead to worse performance, but the results show equal or slightly better timings. * lisp/progmodes/xref.el (xref-matches-in-directory): Apply a similar fix. (xref--find-ignores-arguments): Use file-name-as-directory, so that when passed "." replace-match still had the expected effect. * test/lisp/progmodes/project-tests.el (project-ignores-bug-50240): New test. * test/lisp/progmodes/xref-tests.el (xref-matches-in-directory-filters-with-ignores): New test. 2021-09-06 Dmitry Gutov Try to fix vc-test-git06-version-diff on Hydra * test/lisp/vc/vc-tests.el (vc-test--version-diff): Fix Git backend when running in clean environment. (vc-test-git06-version-diff): Unskip on Hydra. 2021-09-06 Glenn Morris * doc/misc/efaq.texi: Misc copyedits. Prefer mailing lists to newgroups. (History of Emacs): Rename from "Status of Emacs". Move XEmacs node here. (Emacs for other operating systems): Merge all the "non-Unix" systems into a single node. 2021-09-05 Glenn Morris * test/lisp/vc/vc-tests.el (vc-test-git06-version-diff): Skip on hydra. 2021-09-05 Dmitry Gutov * lisp/progmodes/xref.el: Bump the version again. 2021-09-05 Philip Kaludercic Implement multi-prefix capability * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add capability (rcirc-user-nick): Handle multiple prefixes 2021-09-05 Philip Kaludercic Fix rcirc-track-abbrevate-flag documentation * lisp/net/rcirc.el (rcirc-track-abbrevate-flag): Rephrase docstring 2021-09-05 Philip Kaludercic Store symbols in rcirc-acked-capabilities * lisp/net/rcirc.el (rcirc-handler-CAP): Use intern and downcase 2021-09-05 Juri Linkov Improve tab-bar event handling (bug#41343) * lisp/tab-bar.el (tab-bar--key-to-number): Rename from tab--key-to-number. (tab-bar--event-to-item): New function from tab-bar-handle-mouse. (tab-bar-mouse-select-tab, tab-bar-mouse-close-tab) (tab-bar-mouse-context-menu, tab-bar-mouse-move-tab): Use tab-bar--event-to-item. * src/menu.c (x_popup_menu_1): Handle Qtab_bar in the second list element. * src/xdisp.c (tty_get_tab_bar_item): Change arg 'end' to bool 'close_p'. (tty_get_tab_bar_item): Detect if the close button was clicked. (tty_handle_tab_bar_click): Return a list with caption that has text properties. 2021-09-05 Philip Kaludercic Print value on malformed input * lisp/net/rcirc.el (rcirc-define-command): Unquote argument 2021-09-05 Lars Ingebrigtsen Autoload cl-struct-slot-info * lisp/emacs-lisp/cl-macs.el (cl-struct-slot-info): Autoload (bug#50301). * test/lisp/emacs-lisp/memory-report-tests.el: Don't require cl-macs. 2021-09-05 Lars Ingebrigtsen Improve the documentation around the read-key/minibuffer prompting * lisp/subr.el (read-char-choice-use-read-key): Explain the difference. (read-char-choice): Mention the variables. (y-or-n-p-use-read-key): Explain the difference. (y-or-n-p): Mention the variable (bug#50390). 2021-09-05 Lars Ingebrigtsen Clarify completion-list-mode NEWS entry * etc/NEWS: Clarify completion-list-mode entry (bug#50394). 2021-09-05 Juri Linkov * lisp/progmodes/xref.el: Fix defcustoms (bug#50067) * lisp/progmodes/xref.el (xref-auto-jump-to-first-definition) (xref-auto-jump-to-first-xref, xref-search-program): Fix defcustoms. 2021-09-05 Eli Zaretskii Improve documentation of new Xref options * doc/emacs/maintaining.texi (Looking Up Identifiers): * etc/NEWS: Document the new Xref user options. Move a lost Xref-related entry to the rest of them. 2021-09-05 Augusto Stoffel Fixes for 'python-shell-send-string' and 'python-shell-send-file' * lisp/progmodes/python.el (python-shell-send-string): use a temporary file for sufficiently long strings. (python-shell-send-file, python-shell-eval-file-setup-code): Avoid showing "plumbing code" in the traceback (bug#32042). 2021-09-05 Ian W (tiny change) Fix error handling in 'ispell-init-process' * lisp/textmodes/ispell.el (ispell-init-process): When Ispell initialization reports an error, call 'ispell-accept-output' only if the Ispell process is still alive. (Bug#50370) 2021-09-05 Michael Albinus Cleanup tramp-tests.el * test/lisp/net/tramp-tests.el (tramp--test--deftest-direct-async-process): Fix macro declaration. (tramp-test29-start-file-process, tramp-test30-make-process): Do not run connection type test for direct async processes. 2021-09-05 Glenn Morris * test/lisp/vc/vc-tests.el (vc-test-sccs06-version-diff): Fix it. 2021-09-05 Dmitry Gutov Belated fix * lisp/progmodes/xref.el: (xref--show-xref-buffer): Fix support for xref-auto-jump-to-first-xref. 2021-09-05 Dmitry Gutov * lisp/progmodes/xref.el: Bump version. 2021-09-05 Dmitry Gutov Xref: automatic jumping to the first definition or reference * lisp/progmodes/xref.el (xref-auto-jump-to-first-definition) (xref-auto-jump-to-first-xref): New user options. Discussed in bug#50067. (xref--show-xrefs, xref--show-defs): Use them here. (xref--auto-jump-first): New function, handles different values. (xref-show-definitions-buffer) (xref-show-definitions-buffer-at-bottom): Use it. 2021-09-05 Dmitry Gutov Fix test on machines with Bzr not set up * test/lisp/vc/vc-tests.el (vc-test--version-diff): Add EMAIL= to the environment to avoid potential failure. 2021-09-05 Philip Kaludercic Replace with-current-buffer with buffer-local-value where applicable * lisp/net/rcirc.el (rcirc-buffer-process): Use buffer-local-value (rcirc-last-quit-line): Use buffer-local-value (rcirc-bury-buffers): Use buffer-local-value (rcirc-record-activity): Use buffer-local-value 2021-09-05 Matthias Meulien Add tests for vc-version-diff * test/lisp/vc/vc-tests.el (vc-test--version-diff): New function. (vc-test-%s06-version-diff): New family of tests. 2021-09-05 Dmitry Gutov Rename xref-select-and-{goto,show}-xref * lisp/progmodes/xref.el (xref-select-and-show-xref): Rename from xref-select-and-goto-xref (bug#35376). Update all references. 2021-09-04 Basil L. Contovounesios Avoid segfault in command-modes * src/data.c (Fcommand_modes): Check that bytecode object is interactive before accessing its interactive spec to avoid segfaulting (bug#50376). 2021-09-04 Stefan Monnier * lisp/emacs-lisp/timer.el (timer-create): Don't inline it 2021-09-04 Eli Zaretskii Improve documentation of line truncation and wrapping * doc/emacs/display.texi (Line Truncation, Visual Line Mode): * doc/lispref/display.texi (Truncation): Document that turning on line truncation disables wrapping, and vice versa. * src/buffer.c (syms_of_buffer) : * src/xdisp.c (syms_of_xdisp) : Warn against turning on when 'visual-line-mode' is in effect. * lisp/simple.el (visual-line-mode): Document that this mode disables line truncation. (Bug#29664) 2021-09-04 Lars Ingebrigtsen Allow killing the diff buffer after `C-x v u' * doc/emacs/maintaining.texi (VC Undo): Document this. * lisp/vc/vc.el (vc-revert-show-diff): Allow a `kill' value. (vc-revert): Use it (bug#16902). 2021-09-04 Lars Ingebrigtsen Improve error message in ielm on printing errors * lisp/ielm.el (ielm-eval-input): Don't claim that there's a bug on pp -- it may just be something that nests too far (bug#18012). 2021-09-04 Lars Ingebrigtsen Add a customization group link from whitespace-mode * lisp/whitespace.el (whitespace-mode): Add a link to the whitespace customization group to see the faces (bug#18296). 2021-09-04 Lars Ingebrigtsen Add support for customization group hyperlinks in doc strings * lisp/help-mode.el (help-customization-group): New button. (help-xref-customization-group-regexp): New const. (help-make-xrefs): Use them to allow making customization group buttons. 2021-09-04 Lars Ingebrigtsen Make multi-frame `M-x calendar' setup work when `pop-up-frames' * lisp/calendar/calendar.el (calendar): Make the calendar frame setup work when pop-up-frames is non-nil (bug#19256). 2021-09-04 Lars Ingebrigtsen Tweak hi-lock-mode doc string * lisp/hi-lock.el (hi-lock-mode): Tweak the doc string so that running hi-lock-mode in a *Help* buffer showing this help text won't issue an error (bug#20977). 2021-09-04 Lars Ingebrigtsen Make `M-x term' offer completion * lisp/term.el (term): Have completion in the prompt (bug#21296). 2021-09-04 Yuchen Pei Add diary-offset to diary-lib.el * doc/emacs/calendar.texi: Document the change. * lisp/calendar/diary-lib.el (diary-offset): * test/lisp/calendar/icalendar-tests.el: Add a test (bug#50195). 2021-09-04 Stefan Kangas * etc/DISTRIB: Refer to gnu.org instead of the deleted file etc/GNU. 2021-09-03 Glenn Morris * doc/misc/efaq.texi (Reporting bugs): Refer to the Emacs manual. That is better than having a separate, outdated text. 2021-09-03 Glenn Morris Merge from origin/emacs-27 0aa0410372 (origin/emacs-27, emacs-27) Fix "Finder" description for m... 2021-09-03 Augusto Stoffel Change Python eval to send directly instead of using temporary files * lisp/progmodes/python.el (python-shell-eval-setup-code): New const for setting up eval (bug#49822). (python-shell--encode-string): New function. (python-shell-send-string): Use it to send commands directly instead of writing to a temporary file. (python-shell-send-string-no-output): Adjust sending. (python-shell-send-file): Ditto. 2021-09-03 Theodor Thornhill Update to CSS Flexible Box Layout Module Level 2 * lisp/textmodes/css-mode.el (css-property-alist): Update link. 2021-09-03 Theodor Thornhill Update to CSS Containment Module Level 2 * lisp/textmodes/css-mode.el (css-property-alist): Update contain, and add content-visibility. 2021-09-03 Theodor Thornhill Update to CSS Grid Layout Module Level 2 * lisp/textmodes/css-mode.el (css-property-alist): Update to the newer spec, and add the subgrid keywords. 2021-09-03 Theodor Thornhill Clean up css-property-alist for alignment * lisp/textmodes/css-mode.el (css-property-alist) (css-value-class-alist): Provide new position related entries for use in css-property-alist. Make sure that property-alist reflect the spec: https://www.w3.org/TR/css-align-3/#property-index 2021-09-03 Lars Ingebrigtsen Fix `describe-function' for autoloaded adviced functions * lisp/emacs-lisp/nadvice.el (advice--make-single-doc): Factor out. (advice--make-docstring): From here (bug#23523). Also include advices for autoloads. 2021-09-03 Lars Ingebrigtsen Allow gud-mi to edit two executables with the same name * lisp/progmodes/gud.el (gud-common-init): Allow editing two executables with the same name (bug#22772). 2021-09-03 Lars Ingebrigtsen Make recent timer changes more backwards-compatible * lisp/emacs-lisp/timer.el (timerp, timer-event-handler): Make backwards-compatible with old .elc files that have their own versions of `timer-create'd structures. 2021-09-03 Lars Ingebrigtsen Fix message in previous toggle-truncate-lines change * lisp/simple.el (toggle-truncate-lines): Fix message in previous change. 2021-09-03 Lars Ingebrigtsen Allow not putting pasted text onto the kill ring under xterm * lisp/term/xterm.el (xterm-paste): Don't put pasted text onto the kill ring (bug#28868). (xterm-store-paste-on-kill-ring): New user option. 2021-09-03 Eli Zaretskii * etc/NEWS: Announce recent change in 'toggle-truncate-lines'. 2021-09-03 Stefan Kangas Sync latest SKK-JISYO.L * leim/SKK-DIC/SKK-JISYO.L: Sync to current upstream version. 2021-09-03 Stefan Kangas Update publicsuffix.txt from upstream * etc/publicsuffix.txt: Update from https://publicsuffix.org/list/public_suffix_list.dat dated 2021-09-02 22:13:03 UTC. 2021-09-03 Lars Ingebrigtsen Make toggle-truncate-lines disable visual-line-mode * lisp/simple.el (toggle-truncate-lines): Disable `visual-line-mode' (bug#29664). 2021-09-03 Stefan Kangas Avoid cl-lib alias for cadadr and friends * lisp/edmacro.el (edmacro-fix-menu-commands): * lisp/frameset.el (frameset-move-onscreen): * lisp/htmlfontify.el (hfy-face-at, hfy-merge-adjacent-spans) (hfy-mark-tag-names): * lisp/mail/footnote.el (footnote--make-hole) (footnote-back-to-message): * lisp/net/eudc.el (eudc-get-email, eudc-get-phone): * lisp/net/rcirc.el (rcirc-make-trees, rcirc-handler-333) (rcirc-authenticate): * lisp/play/5x5.el (5x5-draw-grid, 5x5-solver): * lisp/play/decipher.el (decipher-insert-frequency-counts): * lisp/ses.el (ses-relocate-range): * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-step-into-macro-error) (edebug-tests-error-stepping-into-subr): Avoid using cl-lib aliases for cadadr and friends that now reside in subr.el. 2021-09-03 Stefan Kangas Move cl-lib tests for caaXr to subr-tests.el * test/lisp/emacs-lisp/cl-lib-tests.el (cl-test-caaar) (cl-test-caadr): Move tests using a cl-lib alias from here... * test/lisp/subr-tests.el (subr-test-caaar, subr-test-caadr): ...to here. The functions under test are in subr.el. 2021-09-03 Theodor Thornhill Add CSS Box Alignment Module Level 3 to css-mode * lisp/textmodes/css-mode.el (css-property-alist): Consolidate `align-{contents, items, self}', as well as the corresponding values for `justify-{contents, items, self}' and `place-{contents, items, self}'. Values extracted from the flex part and into its own block (bug#50345). 2021-09-03 Theodor Thornhill Add selection to css-pseudo-element-ids * lisp/textmodes/css-mode.el (css-pseudo-element-ids): Add selection as an element id (bug#50345). 2021-09-03 Lars Ingebrigtsen Fix `revert-buffer' message in `find-file-select' * lisp/files.el (find-file-noselect): Refer to revert-buffer-quick here since we're in a file-based buffer. 2021-09-03 Lars Ingebrigtsen Fix memory-report test failure * test/lisp/emacs-lisp/memory-report-tests.el: Fix test build failure. 2021-09-03 Dmitry Gutov Fix recently broken vc-delete-file with Git * lisp/vc/vc-git.el (vc-git-delete-file): Treat FILE as string, not list (bug#50334). 2021-09-03 Glenn Morris More fixes for recently added vc-rename test * test/lisp/vc/vc-tests.el (vc-test-cvs05-rename-file): Skip. (vc-test-sccs05-rename-file): Treat like RCS. 2021-09-02 Tassilo Horn Support forges by type rather than by host Formerly, bug-reference-setup-from-vc-alist basically had one entry per host (like gitlab.com). Restructure so that it's easy to add new hosts being just an instance of some type of forge such as SourceHut, Gitea, or GitLab. While we're at it, add support for gitea.com, salsa.debian.org, and framagit.org, the latter two being GitLab instances. * lisp/progmodes/bug-reference.el (bug-reference-gitea-instances) (bug-reference-gitlab-instances,bug-reference-sourcehut-instances): New variables listing online instances of those forges. (bug-reference--setup-from-vc-alist): New function (and variable for caching) using the former three new variables to generate suitable VC auto-setup alist. (bug-reference-try-setup-from-vc): Use both bug-reference-setup-from-vc-alist and bug-reference--setup-from-vc-alist. 2021-09-02 Juri Linkov * lisp/abbrev.el: Improve docstrings of inverse commands (bug#50303) * lisp/abbrev.el (add-mode-abbrev, add-global-abbrev) (inverse-add-mode-abbrev, inverse-add-global-abbrev): Add interlinking to opposite commands in docstrings. 2021-09-02 Eli Zaretskii Fix expansion of non-ASCII $HOME * src/fileio.c (Fexpand_file_name): Make the file name multibyte if the value of $HOME is multibyte. (Bug#50266) 2021-09-02 Eli Zaretskii Fix 'clone-frame' on TTY frames * src/frame.c (Fmake_terminal_frame): Make a separate copy of the faces for the new frame before calling modify-frame-parameters, as on TTY frames that needs the faces already set up. (Bug#34715) 2021-09-02 Eli Zaretskii Improve a recent change in 'mule-cmds.el' * lisp/international/mule-cmds.el (select-safe-coding-system--format-list): Display codepoints in hex and as characters. Display the ellipsis in a better place. Enlarge the limit to 5 codepoints, as the display is now easier to grasp. (select-safe-coding-system-interactively): Don't use 'select-safe-coding-system--format-list' for "rejected" coding-systems, as those don't come with characters and positions. 2021-09-02 Lars Ingebrigtsen Make the coding system warning prettier * lisp/international/mule-cmds.el (select-safe-coding-system--format-list): New function to display the coding system information in a more readable format (bug#31062). (select-safe-coding-system-interactively): Use it. 2021-09-02 Lars Ingebrigtsen Reformat up-list and backward-up-list doc strings * lisp/emacs-lisp/lisp.el (backward-up-list): Reformat the doc string into several paragraphs (bug#31349). (up-list): Ditto and fix the "start" to be "end". 2021-09-02 Lars Ingebrigtsen isearch*-lax-whitespace doc string improvements * lisp/isearch.el (isearch-regexp-lax-whitespace): * lisp/isearch.el (isearch-lax-whitespace): Mention the key binding in the doc string (bug#31790). 2021-09-02 Lars Ingebrigtsen Fix documentation of `dired-do-touch' * doc/emacs/dired.texi (Operating on Files): Fix documentation of `dired-do-touch' (bug#50323). 2021-09-02 Yikai Zhao memory-report: support calculating size for structures * lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Add support for cl-defstruct types (bug#50301). 2021-09-02 Lars Ingebrigtsen Fix up previous ebfn2ps tweak * lisp/progmodes/ebnf2ps.el (ebnf-print-buffer): Remove NOOP decode step. 2021-09-02 Lars Ingebrigtsen Add a test for bug#50320 in sh-script 2021-09-02 Lars Ingebrigtsen Revert "Tweak sh-script-mode indentation further" This reverts commit 6392bc37ab3b7eb83465d9b2248d21173373ae73. The changes led to errors throughout (bug#50320). 2021-09-02 Stephen Gildea tramp-auto-save-directory: make private * lisp/net/tramp.el (tramp-handle-make-auto-save-file-name): chmod 0700 tramp-auto-save-directory when creating Thanks to Michael Albinus for reviewing this patch. 2021-09-01 Eli Zaretskii Fix segfault with invalid key-translation-map binding * src/keyboard.c (access_keymap_keyremap): Don't assume an invalid function is specified as a symbol. Reported by Perry E. Metzger . 2021-09-01 Lars Ingebrigtsen Filter out the `name' parameter in clone-frame * lisp/frame.el (clone-frame): Filter out the `name' parameter, because two frames shouldn't have the same name and this will lead to a warning. 2021-09-01 Lars Ingebrigtsen Don't have epg bug out on non-existent packages * lisp/epg.el (epg--start): We may be called from contexts where the directory doesn't exist, but we need to have an existing directory here for the process (bug#32004). 2021-09-01 Lars Ingebrigtsen Add new macro `with-existing-directory' * doc/lispref/files.texi (Testing Accessibility): Document it. * lisp/subr.el (with-existing-directory): New macro (bug#32004). 2021-09-01 Kien Nguyen * Add a dll loader entry for gcc_jit_context_new_cast (bug#50315) * src/comp.c: Add a dll loader entry for 'gcc_jit_context_new_cast' (bug#50315). 2021-09-01 Drew Adams Add new command `clone-frame' * doc/emacs/frames.texi (Creating Frames): Document it. * lisp/frame.el (clone-frame): New command and keystroke (bug#34715). 2021-09-01 Glenn Morris Make set-foreground-color display completions using foreground colors * lisp/faces.el (defined-colors-with-face-attributes): Also create colors for foregrounds (bug#33799). (read-color): Also allow varying the foreground color. * lisp/frame.el (set-foreground-color): Vary the foreground color. 2021-09-01 Lars Ingebrigtsen Fix (setf (map-elt map key) (my-func)) * lisp/emacs-lisp/map.el (map-elt): Ensure that the value isn't referenced more than once (bug#50290). 2021-09-01 Lars Ingebrigtsen Autoload calc-grab-sum-across and calc-grab-sum-down * lisp/calc/calc.el (calc-grab-sum-down): (calc-grab-sum-across): Autoload, since they can be used from outside Calc (bug#50311). 2021-09-01 Miha Rihtaršič In batch mode, avoid killing Emacs with C-g in the minibuffer * src/keyboard.c (Fcommand_error_default_function): Don't kill emacs when handling the minibuffer-quit condition (bug#48603). 2021-09-01 Marco Centurion (tiny change) Use "gzip -d" instead of "gunzip" * lisp/dired-aux.el (dired-compress-file-suffixes): Use "gzip -d" instead of "gunzip" since we already assume that "gzip" exists on the system (bug#10990). 2021-08-31 Philip Kaludercic Avoid failing if vc backend doesn't implement ignore-completion-table * lisp/progmodes/project.el (project-ignores): Handle vc-not-supported signals. 2021-08-31 Lars Ingebrigtsen Rename xref--mouse-2 and adjust documentation * doc/emacs/maintaining.texi (Xref Commands): `mouse-1' is bound to `xref-goto-xref', not `mouse-2' (bug#35376). (Xref Commands): Mention what `mouse-2' does. * lisp/progmodes/xref.el (xref--button-map): Adjust. (xref-select-and-goto-xref): Rename from xref--mouse-2 (bug#35376). 2021-08-31 Lars Ingebrigtsen Fix point placement after ispell-complete-word * lisp/textmodes/ispell.el (ispell-complete-word): Leave point at the end of the inserted word instead of a less than useful amount of distance from the start of the word (bug#37552). 2021-08-31 Lars Ingebrigtsen call-process doc string clarification * src/callproc.c (Fcall_process): Explicitly say that "output" means both stdout and stderr (bug#37906). 2021-08-31 Lars Ingebrigtsen Make calc plotting through gnuplot work on non-X gnuplots * lisp/calc/calc-graph.el (calc-graph-plot): Fall back on "dumb" if we don't support the terminal (bug#50237). (calc-gnuplot-command): Say whether the command errored out. 2021-08-31 Lars Ingebrigtsen Fix abnf parsing of elements * lisp/progmodes/ebnf-abn.el (ebnf-abn-lex): Make parsing work (bug#39663). 2021-08-31 Lars Ingebrigtsen Make run-at-time try harder to run at integral multiples * lisp/emacs-lisp/timer.el (timer): Add new slot integral-multiple. (timerp): Adjust. (timer-event-handler): Recompute the delay if requested (bug#39099). (run-at-time): Mark the timer as recomputable if given a t parameter. * src/keyboard.c (decode_timer): Adjust. 2021-08-31 Dmitry Gutov Move the expansion of abbreviated names to vc-git.el * lisp/vc/vc-git.el (vc-git--literal-pathspec): Perform the expansion of abbreviated file names here instead (bug#39452). * lisp/vc/vc.el (vc-root-diff, vc-print-root-log): Undo the recent change. 2021-08-30 Andreas Schwab Implement proper type conversion in native compiler * src/comp.c (enum cast_kind_of_type): Remove. (comp_t): Add cast_ptr_to_int, cast_int_to_ptr, remove cast_type_sizes, cast_type_kind, cast_type_names, cast_union_fields, cast_union_field_biggest_type. (emit_coerce): Remove check for type size. (struct cast_type): Remove bytes_size. (define_type_punning): New function. (define_cast_from_to): Implement proper type conversion. (define_cast_functions): Adjust. (bug#50230) 2021-08-30 Stefan Monnier (cperl-test-bug-14343): Make it work for perl-mode * test/lisp/progmodes/cperl-mode-tests.el (cperl--tests-heredoc-face): New const. (cperl-test-heredocs, cperl-test-bug-14343): Use it. (cperl-test-identify-no-heredoc): Remove left-over message. 2021-08-30 Stefan Monnier * test/lisp/progmodes/cperl-mode-tests.el: Adjust here-doc tests for perl-mode (cperl-test-identify-heredoc, cperl-test-identify-no-heredoc): Tweak tests so they can also be used for perl-mode. 2021-08-30 Stefan Monnier * etc/NEWS: Fix typo 2021-08-30 Eli Zaretskii Improve documentation of 'ispell-hunspell-add-multi-dic' * lisp/textmodes/ispell.el (ispell-hunspell-add-multi-dic): Explain in the doc string how to call from Lisp. (Bug#50241) 2021-08-30 Eli Zaretskii Minor improvement in 'get-locale-names' on MS-Windows * lisp/international/mule-cmds.el (get-locale-names): Delete duplicate locales from the list returned by the MS-Windows implementation. 2021-08-30 Lars Ingebrigtsen Fix typo in kill-buffer-delete-auto-save-files NEWS entry 2021-08-30 Lars Ingebrigtsen Make some non-ASCII work in ebnf2ps * lisp/progmodes/ebnf2ps.el (ebnf-print-buffer): Make non-ASCII work slightly better (bug#39663). 2021-08-30 Lars Ingebrigtsen Fix typo in previous custom.texi change * doc/emacs/custom.texi (Init Syntax): Fix typo in previous change -- it's customize-set-variable. 2021-08-30 Lars Ingebrigtsen Make epg use rfc6068 for decoding %-encoded strings * lisp/epg.el (epg--decode-percent-escape-as-utf-8): Make obsolete and adjust callers. (epg--decode-hexstring): Ditto. * lisp/mail/rfc6068.el (rfc6068-unhexify-string): Allow returning non-decoded octets (bug#39689). 2021-08-30 Lars Ingebrigtsen Make rfc2368 obsolete and add rfc6068 * lisp/obsolete/rfc2368.el: Moved here and made obsolete. * lisp/mail/rfc6068.el (rfc6068-unhexify-string): New file. 2021-08-30 Lars Ingebrigtsen Only look for the port command on MacOS * configure.ac: Only look for the port command on MacOS (bug#50259). 2021-08-29 Lars Ingebrigtsen Move vc-branch-p and vc-branch-part from vc.el to vc-rcs.el and rename * lisp/vc/vc-rcs.el (vc-rcs-branch-p): Renamed from `vc-branch-p' (old name made into obsolete alias) and moved from vc.el. (vc-rcs-branch-part): Renamed from `vc-branch-part' (old name made into obsolete alias) and moved from vc.el. 2021-08-29 Lars Ingebrigtsen Fix vc test for RCS * test/lisp/vc/vc-tests.el (vc-test--rename-file): Fix test for RCS. 2021-08-29 Lars Ingebrigtsen Mention `set-variable' in the Init Syntax Emacs manual node * doc/emacs/custom.texi (Init Syntax): Mention set-variable (bug#50248). (Init Examples): Add an example. 2021-08-29 Clément Pit-Claudel Change --with-nativecomp to --with-native-compilation in messages * configure.ac: * test/infra/Dockerfile.emba: * test/infra/gitlab-ci.yml: Fix mentions of --with-nativecomp (bug#50255). 2021-08-29 Augusto Stoffel Add support for OSC 7 in comint (current directory tracking) * lisp/comint.el (comint-osc-directory-tracker, comint-osc-handlers): Define and register a handler for OSC 7. (comint-osc-process-output): Do fewer checks on 'comint-last-output-start'. 2021-08-29 Kévin Le Gouguec Tweak sh-script-mode indentation further * lisp/progmodes/sh-script.el (sh-smie--default-backward-token): Allow more parentheses in a token (bug#44592). 2021-08-29 Philipp Stephani Improve compatibility with musl-libc (Bug#48789) * lib-src/seccomp-filter.c (export_filter): Remove use of nonstandard macro TEMP_FAILURE_RETRY. 2021-08-29 Alan Mackenzie C++ Mode: handle compound identifiers preceding brace lists correctly * lisp/progmodes/cc-engine.el (c-looking-at-or-maybe-in-bracelist): early in function, check alternatively for c-back-over-compound-identifier when doing c-backward-token-2. 2021-08-29 Alan Third Fix libexec installation on NS (bug#50250) * lib-src/Makefile.in (ns_applibexecdir): New variable. 2021-08-29 Eli Zaretskii Better document obsolescence of 'values' * doc/lispref/eval.texi (Eval): Mention that 'values' is obsolete. * etc/NEWS: Add a rationale for obsoleting 'values'. 2021-08-29 Alan Third Disable the NS app when no frames are left (bug#14619, bug#21357, bug#23586) * src/nsfns.m (Fx_create_frame): Enable the app. * src/nsterm.m (ns_delete_terminal): Disable the app. 2021-08-29 Dmitry Gutov Add tests for vc-rename-file * test/lisp/vc/vc-tests.el (vc-test--rename-file): New function. (vc-test-%s05-rename-file): New family of tests (bug#39452). 2021-08-28 Stefan Monnier * etc/NEWS: Document the recent xterm.el change for `\e[29~` 2021-08-27 Juri Linkov * lisp/progmodes/flymake.el: Bind mouse-3 to flymake-menu on mode-line. * lisp/progmodes/flymake.el (flymake--mode-line-title): Bind [mode-line down-mouse-3] to flymake-menu (bug#50067) 2021-08-27 Juri Linkov Revert part of 3572613550f5d1d0b3392dbc809b32f3989e2981 (bug#39452) * lisp/vc/vc-git.el (vc-git-rename-file): Don't use vc-git--literal-pathspecs. 2021-08-27 Dario Gjorgjevski Fix shell-script-mode indentation of continuation lines * lisp/progmodes/sh-script.el (sh-smie--default-backward-token): Fix indentation of continuation lines (bug#44592). 2021-08-27 Michalis V Fix completion of extended "..." syntax in eshell * lisp/eshell/em-cmpl.el (eshell-complete-parse-arguments): Expand "..." (bug#19626). 2021-08-27 Lars Ingebrigtsen Don't overly truncate tabulated-list headers * lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header): Don't overly truncate headers that are before a right-aligned column (bug#44594). (tabulated-list--available-space): Separated out into own function... (tabulated-list-print-col): ... from here. 2021-08-27 Lars Ingebrigtsen Fix `M-X TAB' completion for commands marked for multiple modes * lisp/simple.el (command-completion-using-modes-p): Fix completion over commands that are defined for multiple modes (bug#50228). 2021-08-27 Lars Ingebrigtsen Put advice documentation at the end of the displayed doc string * lisp/emacs-lisp/nadvice.el (advice--make-docstring): Put the advice things at the end of the documentation (bug#50222). It's important to have the first line of the original documentation remain the first line, because it's used when doing one-line summaries of the function. 2021-08-27 Thierry Volpiatto Make `eshell-command' also work when asynchronous * lisp/eshell/esh-cmd.el (eshell-eval-command): Make asynchronous `eshell-command' work (e.g. `M-x eshell-command RET sleep 10 &') (bug#50209). 2021-08-27 Christophe Troestler (tiny change) lisp/newcomment.el: Uncommenting with whitespace `comment-continue' * lisp/newcomment.el (uncomment-region-default-1): Make all-whitespace `comment-continue' work (bug#50226). 2021-08-27 Andrea Corallo Forward `comp-file-preloaded-p' to async workers * lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward `comp-file-preloaded-p' to async workers. 2021-08-27 Juri Linkov Replace flyspell-use-mouse-3-for-menu with context-menu-mode (bug#50067) * doc/emacs/fixit.texi (Spelling): Replace mentions of flyspell-use-mouse-3-for-menu with context-menu-mode. * lisp/mouse.el (context-menu-map): Use the function from the text property context-menu-function at mouse click event. * lisp/textmodes/flyspell.el (flyspell--set-use-mouse-3-for-menu): Remove function. (flyspell-use-mouse-3-for-menu): Remove defcustom added recently in 28.1. (flyspell-context-menu): New function. (flyspell-mode): Don't call flyspell--set-use-mouse-3-for-menu. (flyspell-mode-on): Replace flyspell-use-mouse-3-for-menu with context-menu-mode. (make-flyspell-overlay): When context-menu-mode is non-nil, put overlay context-menu-function with flyspell-context-menu instead of using keymap flyspell-mouse-map. 2021-08-27 Lars Ingebrigtsen python-shell-interpreter doc string clarification * lisp/progmodes/python.el (python-shell-interpreter): Note what to do when using ipython3 (bug#44732). 2021-08-27 Lars Ingebrigtsen Fix backtrace when query-about-changed-file nil and file has changed * lisp/userlock.el (userlock--check-content-unchanged): Make the assertion more robust -- we may be called here from a different contexts if `query-about-changed-file' is nil. 2021-08-27 Noah Evans (tiny change) Fix recentering issue in `follow-mode' * lisp/follow.el (follow-recenter): Make `C-c . C-l' work in windows before the middle one, too (bug#50220). 2021-08-27 Lars Ingebrigtsen Enable setting timeclock-workday after switching mode on * lisp/calendar/timeclock.el (timeclock--previous-workday): New variable. (timeclock-find-discrep): Use it to flush values when timeclock-workday changes (bug#50216). (timeclock-mode-line-display): Mention `timeclock-workday' setting in doc string. 2021-08-26 Lars Ingebrigtsen Fix problem with symlinks in compile buffers * lisp/progmodes/compile.el (compilation-find-file): Avoid `expand-file-name' when computing the file names, because that will reliably give the wrong result when there's symlinks and ".." involved (bug#8035). 2021-08-26 Philip Kaludercic timeclock.el: Update example configuration * lisp/calendar/timeclock.el: Update comments that were no longer correct (bug#50211). 2021-08-26 Lars Ingebrigtsen Make dired-chmod-program obsolete * lisp/dired.el (dired-chmod-program): Make into a defvar and make obsolete (bug#50190). * lisp/net/ange-ftp.el (ange-ftp-process-file): Remove usage of dired-chmod-program. 2021-08-26 Lars Ingebrigtsen Revert "Add support for "bright" ANSI colors in ansi-color" This reverts commit c8e3347ec01a9ed6dc8d88c2dbbb3a08497e8eb2. Jim Porter's paperwork isn't finalised yet. 2021-08-26 Lars Ingebrigtsen Revert "Add support for "bright" ANSI colors in term-mode" This reverts commit 2b2a103db0c3597c7685d3ffff4bca7f2e4d094e. Jim Porter's paperwork isn't finalized yet. 2021-08-26 Lars Ingebrigtsen Revert "Add missing :version tags to new faces" This reverts commit 9759fb596b634db2faf7edcd4fd557a11abe9903. Jim Porter's paperwork isn't finalized yet. 2021-08-26 Michael Albinus Improve robustness of shadowfile.el * lisp/shadowfile.el (shadow-site-help): New defconst. (shadow-read-site): Use it. (shadow-make-fullname, shadow-contract-file-name) (shadow-define-literal-group): Handle errors more robust. (Bug#49596) * test/lisp/shadowfile-tests.el (shadow-test06-literal-groups): Extend test. 2021-08-26 Tassilo Horn Fix docs about the meaning of the Re: in the subject * doc/misc/message.texi (Message Headers): Clarify that it comes from the Latin "res" meaning "in the matter of" rather than "in response to" as claimed previously (see RFC-2822). 2021-08-26 Eli Zaretskii Define a substitute for on MS-Windows * lisp/mouse.el (context-menu-mode-map): On w32, use in addition to (the mostly non-existent) . 2021-08-26 Dmitry Gutov Rename arguments for clarity * lisp/vc/vc-git.el (vc-git--literal-pathspecs) (vc-git--literal-pathspecs): Rename arguments for clarity (bug#39452). 2021-08-26 Dmitry Gutov Make sure to remove the remote specification before adding :(literal) * lisp/vc/vc-git.el (vc-git--literal-pathspec): Make sure to remove the remote specification from the file name (bug#50175, bug#39452). 2021-08-26 Stephen Gildea Fix "Finder" description for multi-file packages * lisp/finder.el (finder-compile-keywords): Now that 'version' is set for more files, it is no longer necessary to check that we have a version when picking the file from which to take the description. Doing so caused built-in packages (where the version is known) to have their package description taken from the last .el file that matched the file name pattern, usually the last source file in the sub-directory. This bug was introduced in July 2019 and first released in Emacs 27.1. Thanks to Michael Albinus for reviewing this patch. 2021-08-26 Stefan Monnier * lisp/term/xterm.el (xterm-function-map): Map `\e[29~` to `menu` 2021-08-25 Gabriel do Nascimento Ribeiro Handle nil messages in repeat-echo-message. * lisp/repeat.el (repeat-echo-message): Handle cases where 'current-message' is nil (bug#50176). 2021-08-25 Lars Ingebrigtsen Make thingatpt respect fields * lisp/thingatpt.el (thing-at-point): Make thingatpt respect fields (bug#9454). 2021-08-25 Lars Ingebrigtsen Make `set-locale-environment' complete over locale names * lisp/international/mule-cmds.el (get-locale-names): New function. (set-locale-environment): Use it to allow completion (bug#9655). 2021-08-25 João Távora Speed up pcm completion styles for patternless special case (Bug#48841) * lisp/minibuffer.el (completion-flex-all-completions): Skip completion-pcm--hilit-commonality if there's no pattern yet. 2021-08-25 Lars Ingebrigtsen Disable xterm selection operators in stterm * lisp/term/st.el (xterm-st-extra-capabilities): st doesn't support the xterm selection things (bug#50192). 2021-08-25 Eli Zaretskii Add missing :version tags to new faces * lisp/term.el (term-color-bright-black, term-color-bright-red) (term-color-bright-green, term-color-bright-yellow) (term-color-bright-blue, term-color-bright-magenta) (term-color-bright-cyan, term-color-bright-white): Add :version. 2021-08-25 Jim Porter Add support for "bright" ANSI colors in term-mode * lisp/term.el (ansi-term-color-vector): Add new faces. (term-color-white): Tweak colors. (term-color-bright-black, term-color-bright-red, term-color-bright-green) (term-color-bright-yellow, term-color-bright-blue) (term-color-bright-magenta, term-color-bright-cyan) (term-color-bright-white): New faces. (term--maybe-brighten-color): New function. (term-handle-colors-array): Handle bright colors. * test/lisp/term-tests.el (term-colors, term-colors-bold-is-bright): New functions. 2021-08-25 Jim Porter Add support for "bright" ANSI colors in ansi-color * lisp/ansi-color.el (ansi-bright-color-names-vector): New defcustom. (ansi-color-bold-is-bright): New defcustom. (ansi-color--find-face): Sort ANSI codes and check 'ansi-color-bold-is-bright'. (ansi-color-apply-sequence): Support bright ANSI colors. (ansi-color--fill-color-map): New function. (ansi-color-make-color-map): Add bright ANSI colors. (ansi-color-get-face-1): Add BRIGHT parameter. * test/lisp/ansi-color-tests.el (ansi-color-apply-on-region-bold-is-bright-test): New function. 2021-08-25 Shitikanth Kashyap (tiny change) tabulated-list-print delete excess lines * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Ensure that we delete remaining lines if the list has gotten shorter (bug#50194). 2021-08-25 Augusto Stoffel Add support for OSC escape codes in comint * doc/emacs/misc.texi (Shell Mode): Document it. * lisp/comint.el (comint-osc-handlers, comint-osc--marker): New variables. (comint-osc-process-output): New function. (comint-osc-hyperlink-map): New map. (comint-osc-hyperlink-handler): New function. 2021-08-25 Lars Ingebrigtsen Fix up deleting auto-save/killing buffer wrt. `auto-save-visited-mode' * src/buffer.c (Fkill_buffer): Respect `auto-save-visited-mode'. 2021-08-25 Lars Ingebrigtsen Further checks for kill-buffer-delete-auto-save-files * src/buffer.c (Fkill_buffer): Check that the auto-save file exists before asking whether to delete it. 2021-08-25 Lars Ingebrigtsen Fix up previous conf-mode/tex-mode redirection hacks * lisp/textmodes/conf-mode.el (conf-mode): * lisp/textmodes/tex-mode.el (tex--redirect-to-submode): The previous hack to these redirections would disable all local variables. Try to work around this a bit more. 2021-08-24 Michael Albinus Some precisements in Tramp's connection type handling * doc/misc/tramp.texi (Remote processes): Precise connection type handling. * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): * lisp/net/tramp.el (tramp-handle-make-process): Fix :connection-type handling. (tramp-action-show-and-confirm-message): Pacify byte compiler. * lisp/net/tramp-compat.el (tramp-compat-ignore-error): New defmacro. * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) (tramp-test30-make-process): Extend tests. 2021-08-24 Ergus * lisp/mouse.el (context-menu-mode-map): Bind [menu] to context-menu-open. https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg01004.html 2021-08-24 Juri Linkov * lisp/mouse.el (context-menu-buffers): New function (bug#50067). (context-menu-functions): Add context-menu-buffers to the choice list. 2021-08-24 Paul Eggert Doc that dired-do-chmod no longer follows symlinks * doc/emacs/dired.texi (Operating on Files): * etc/NEWS: Document this security precaution. 2021-08-24 Gabriel do Nascimento Ribeiro Fix to clear echo-area after repeat-exit-timeout. * lisp/repeat.el (repeat-echo-message): Use 'string-match-p' to handle cases where echo-area contains other messages (bug#50176). 2021-08-23 Eli Zaretskii Document 'jit-lock-bounds' * doc/lispref/modes.texi (Other Font Lock Variables): * lisp/jit-lock.el (jit-lock-functions, jit-lock-register): Document the return value of the fontification functions. 2021-08-23 Eli Zaretskii Improve documentation of 'inhibit-mouse-event-check' * etc/NEWS: * src/callint.c (syms_of_callint): Fix wording of the documentation of 'inhibit-mouse-event-check'. 2021-08-23 Mattias Engdegård Add example of advanced user-defined Rx form to manual * doc/lispref/searching.texi (Extending Rx): Add example illustrating how to define a user-defined Rx form that performs computation, from a discussion with Michael Herdeegen (bug#50136). * lisp/emacs-lisp/rx.el (rx): Clarify evaluation time for `eval`. 2021-08-23 Juri Linkov * lisp/mouse.el (context-menu-open): New command bound to [S-f10]. * doc/emacs/frames.texi (Menu Mouse Clicks): Mention S-F10 to pop up the context menu. * src/callint.c (Fcall_interactively): Use inhibit_mouse_event_check for the case 'e'. (inhibit-mouse-event-check): New variable. https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg00733.html 2021-08-23 Glenn Morris Fix recently added cperl test * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-here-doc-missing-end): Fix quote regexp. 2021-08-23 Eli Zaretskii Improve recently-changed docs * src/frame.c (Fnext_frame): * doc/lispref/frames.texi (Finding All Frames): Improve wording and style of the 'next-frame's documentation. 2021-08-23 Eli Zaretskii Fix doc strings in recent changes. * lisp/progmodes/cperl-mode.el (cperl-commentify) (cperl-here-doc-functions, cperl-is-here-doc-p) (cperl-find-pods-heres): Fix wording, style, and punctuation of doc strings. 2021-08-23 Lars Ingebrigtsen Clarify the documentation of `next-frame' * doc/lispref/frames.texi (Finding All Frames): Clarify what it means to "consider". * src/frame.c (Fnext_frame): Rewrite doc string to say what the parameters actually mean (bug#13339). 2021-08-23 Lars Ingebrigtsen Add new variable 'kill-buffer/delete-auto-save-files' * doc/emacs/files.texi (Auto Save Files): Document it. * lisp/cus-start.el (standard): Add customize form. * lisp/files.el (delete-auto-save-files): Move definition to C (since it's used in the C layer). * src/buffer.c (Fkill_buffer): Use the new variable (and remove the old code that apparently didn't trigger for kill-buffer/delete-auto-save-files. (syms_of_buffer): Add new variable kill-buffer-delete-auto-save-files and move definition of delete-auto-save-files here (bug#21612). 2021-08-23 Michael Albinus Complete implementation of `copy-directory-create-symlink' in Tramp * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory): Fix the case NEWNAME is a directory name with a trailing slash. * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory): Implement `copy-directory-create-symlink'. (Bug#10897) * test/lisp/net/tramp-tests.el (tramp--test-ignore-make-symbolic-link-error): Move up. (tramp-test15-copy-directory): Extend test. 2021-08-23 Juri Linkov * lisp/mouse.el (context-menu-toolbar): New function. (context-menu-functions): Add context-menu-toolbar to choice. (context-menu-region): Bind "Paste" to mouse-yank-at-click instead of mouse-yank-primary. https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg00735.html 2021-08-23 Lars Ingebrigtsen Clarify :stderr in the make-process doc string * src/process.c (Fmake_process): Elaborate upon what :stderr does (bug#50166). 2021-08-23 Lars Ingebrigtsen Update NEWS tagging for modules and parse-time-string 2021-08-23 Lars Ingebrigtsen Document `dlet' * doc/lispref/variables.texi (Local Variables): Document `dlet'. 2021-08-23 Lars Ingebrigtsen Improve byte-compile-warnings doc string * lisp/emacs-lisp/bytecomp.el (byte-compile-warnings): Mention 'byte-compile-docstring-max-column'. 2021-08-23 Lars Ingebrigtsen Do command mode markup in xwidget.el 2021-08-23 Lars Ingebrigtsen Make xwidget-webkit-enable-plugins a defcustom * lisp/xwidget.el (xwidget-webkit-enable-plugins): Make into defcustom. 2021-08-23 Basil L. Contovounesios Fix recent parse-partial-sexp argument validation * src/syntax.c (parse-partial-sexp): Also handle markers as arguments (bug#49944). Tweak error message to follow conventions in "(elisp) Signaling Errors". 2021-08-22 Andrea Corallo Set a unique ID for eln files on macOS (bug#45934) * src/comp.c (Fcomp__compile_ctxt_to_file): Set gcc's -install_name parameter to the real filename. 2021-08-22 Masahiro Nakamura Set label for NSToolbarItem (bug#50159) * src/nsmenu.m (update_frame_tool_bar): Get label text and pass it to ... ([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]): ... this that sets label for NSToolbarItem. * src/nsterm.h ([EmacsToolbar addDisplayItemWithImage:idx:tag:labelText:helpText:enabled:]): Add labelText argument. 2021-08-22 Michael Albinus Implement `copy-directory-create-symlink' for remote files * lisp/net/tramp-sh.el (tramp-sh-handle-copy-directory): Implement `copy-directory-create-symlink'. (Bug#10897) * test/lisp/net/tramp-tests.el (tramp-test15-copy-directory): Extend test. 2021-08-22 João Távora Double check completions-group customization variable in Icomplete bug#48545 * lisp/icomplete.el (icomplete--augment): Double check completions-group. 2021-08-22 João Távora Don't mess up grouping in completion-all-sorted-completions The default sorting order will mess up the naturally grouped order of the candidates in the table that specified the group-function. As seen in xref.el when (setq xref-show-definitions-function 'xref-show-definitions-completing-read) (setq completions-group t) M-x fido-mode Also partially seen with C-x 8 RET (M-x insert-char) with (setq read-char-by-name-sort 'code) bug#48545 * lisp/minibuffer.el (completion-all-sorted-completions): Don't use default sort if there's a group-function in the table. 2021-08-22 Lars Ingebrigtsen Revert "Fix dired switch (that contain quotes and spaces) parsing" This reverts commit 04f723dec944eaa7b5e99373840a8bf920ba5fdd. The dired switches are documented to not follow shell syntax, but instead uses a lisp-in-string-form kind of quoting. 2021-08-22 Colin Woodbury Don't echo empty string in file-name-with-extension * lisp/files.el (file-name-with-extension): Avoid echoing a filename string known to be empty (bug#50149). 2021-08-22 Omar Polo Avoid using %n in emacsclient * lib-src/emacsclient.c (local_sockname): Avoid using %n (bug#50155). 2021-08-22 Michael Albinus Some adaptions for Tramp's security key detection. * lisp/net/tramp.el (tramp-security-key-timeout-regexp): New defcustom. (tramp-action-show-and-confirm-message): Don't use timeout, check for the timeout message of the ssh command. 2021-08-22 Mattias Engdegård Make Qhide declaration non-target-specific * src/xfns.c (syms_of_xfns): Move DEFSYM from here... * src/menu.c (syms_of_menu): ... to here. This fixes the NS build after dd7d966eb40b. 2021-08-22 Ergus * lisp/mouse.el (context-menu-mode-map): New variable. (context-menu--saved-bindings, context-menu--bind-mouse) (context-menu--restore-bindings): Remove. (context-menu-mode): Don't use removed functions. 2021-08-22 Juri Linkov Don't show menu titles with the text property 'hide' (bug#50067) * lisp/mouse.el (context-menu-map): Add menu title "Context Menu" propertized with the text property 'hide'. * src/menu.c (x_popup_menu_1): Don't show the title with the non-nil text property 'hide' on GTK and NS. 2021-08-22 Eli Zaretskii Improve documentation of 'set-keyboard-coding-system' * doc/lispref/nonascii.texi (Terminal I/O Encoding): * doc/emacs/mule.texi (Terminal Coding): * lisp/international/mule.el (set-keyboard-coding-system): Document that 'set-keyboard-coding-system' has no effect on modern MS-Windows systems. (Bug#15289) 2021-08-22 Glenn Morris * test/lisp/international/ucs-normalize-tests.el: Save 30m on hydra. 2021-08-22 Stephen Gildea mh-x-image-url-sane-p: accept "https" URLs * lisp/mh-e/mh-xface.el (mh-x-image-url-sane-p): Accept https URLs. * test/lisp/mh-e/mh-xface-tests.el: New file, to test mh-x-image-url-sane-p. 2021-08-21 Glenn Morris * test/Makefile.in: Turn off hydra verbose logging for electric-tests. 2021-08-21 Glenn Morris * test/lisp/net/tramp-tests.el: Reduce hydra run time by 1 hour. It's just too slow to run these after every commit. 2021-08-21 Glenn Morris * test/lisp/electric-tests.el: Un-skip c-mode tests on hydra. 2021-08-21 Lars Ingebrigtsen Fix failures in recent files tests * test/lisp/files-tests.el (files-tests-buffer-offer-save) (files-tests-save-buffers-kill-emacs--asks-to-save-buffers): `read-event' is called with arguments. 2021-08-21 Lars Ingebrigtsen Clarify cl-defstruct doc string and manual entry somewhat * doc/misc/cl.texi (Structures): Rename the slot "name" in the examples to "first-name", since we're talking about the names of slots a lot here, and having a slot with the name "name" makes the examples somewhat confusing. * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Clarify certain things about slots (bug#14278). 2021-08-21 Lars Ingebrigtsen Fix perldb doc string * lisp/progmodes/gud.el (perldb): Fix doc string (bug#14588). 2021-08-21 Lars Ingebrigtsen Clarify dired-jump doc string * lisp/dired.el (dired-jump): Make the doc string say what happens in buffers not visiting files (bug#14733). 2021-08-21 Lars Ingebrigtsen Tweak the comment-start-skip example in the manual * doc/emacs/programs.texi (Options for Comments): Tweak the example regexp for comment-start-skip (bug#15006). 2021-08-21 Lars Ingebrigtsen Clarify how to do the `count-words-in-defun' recipe * doc/lispintro/emacs-lisp-intro.texi (count-words-in-defun): Clarify the recipe (bug#15069). 2021-08-21 Lars Ingebrigtsen Make parse-partial-sexp signal an error if TO is smaller than FROM * src/syntax.c (Fparse_partial_sexp): Signal an error if TO is smaller than FROM (bug#49944). 2021-08-21 Lars Ingebrigtsen Mention problems with synthetic fonts on macOS * etc/PROBLEMS: Mention synthetic fonts (bug#18818). 2021-08-21 Alan Third Fix display bug on macOS (bug#50112) * src/nsterm.m ([EmacsLayer initWithColorSpace:]): Use the colorspace setter. ([EmacsLayer setColorSpace:]): Sometimes we seem to get null colorspaces, so set a default in this case. ([EmacsLayer getContext]): Check whether there's been a surface or graphics context allocation failure and log it. 2021-08-21 Alan Third * configure.ac: Make homebrew check for libgccjit match macports. 2021-08-21 Mattias Engdegård Remove default "Select" title from NS popup menus (bug#50067) * src/menu.c (x_popup_menu_1): Remove default "Select" title. * src/nsmenu.m (ns_menu_show): Allow title to be absent. 2021-08-21 Mattias Engdegård Use overlay arrow to indicate current *xref* selection * lisp/progmodes/xref.el (xref--set-arrow): New function. (xref-show-location-at-point, xref-goto-xref) (xref--next-error-function): Call it. (xref--show-common-initialize): Remove arrow. 2021-08-21 Mattias Engdegård Add "Find References" to context menu (bug#50067) The new entry appears next to "Find Definition" and like it only appears when the context menu was invoked on an identifier. * lisp/progmodes/prog-mode.el (prog-context-menu): New menu entry. * lisp/progmodes/xref.el (xref-find-references-at-mouse): New function, analogous to `xref-find-definitions-at-mouse`. 2021-08-21 Mattias Engdegård Indicate progress while searching for references in xref * lisp/progmodes/xref.el (xref-backend-references): Add messages to show the user that something is happening instead of silently freezing during the frequently long synchronous searches for references. 2021-08-21 Mattias Engdegård Re-type the :location slot in `xref-match-item` to `xref-location` * lisp/progmodes/xref.el (xref-match-item): Change type for :location from `xref-file-location`, which was likely a mistake, to `xref-location`. This allows `xref-make-match` to take arguments of any subtype of `xref-location` (bug#50067). 2021-08-21 Mattias Engdegård Add xref operations to context menu unconditionally * lisp/progmodes/prog-mode.el (prog-context-menu): Add xref operations to the context menu even if xref hasn't been loaded yet; the functions involved are autoloaded (bug#50067). 2021-08-21 Alan Mackenzie CC Mode: Move a macro to before its first use in a file. * lisp/progmodes/cc-defs.el (c-benign-error): Move earlier in the file for the benefit of c-tnt-chng-cleanup. 2021-08-21 Eli Zaretskii Improve documentation of context menus * doc/lispref/modes.texi (Major Mode Conventions): Add conventions of setting menu-bar menus and context menus for a major mode. * doc/emacs/frames.texi (Menu Mouse Clicks): Fix description of context menu functionality. 2021-08-21 Eli Zaretskii Improve doc string of 'M-.' * lisp/progmodes/xref.el (xref-find-definitions): Mention 'M-,' in the doc string. 2021-08-21 Eli Zaretskii Improve documentation of 'file-preserve-symlinks-on-save' * lisp/files.el (file-precious-flag): Mention 'file-preserve-symlinks-on-save' in the doc string. * doc/lispref/files.texi (Saving Buffers): Move the description of 'file-preserve-symlinks-on-save' from here... * doc/emacs/files.texi (Customize Save): ...to here. Improve wording. * etc/NEWS: Fix wording of 'file-preserve-symlinks-on-save' entry. 2021-08-21 Eli Zaretskii Fix documentation of 'repeat-mode' changes * doc/emacs/basic.texi (Repeating): Fix indexing. Improve wording. 2021-08-21 Eli Zaretskii Fix documentation of recently-added tests for files.el * test/lisp/files-tests.el (files-tests--save-some-buffers) (files-tests-save-some-buffers) (files-tests--with-buffer-offer-save) (files-tests-buffer-offer-save): Doc fixes. 2021-08-21 Eli Zaretskii * etc/TODO: Entry about markers being non-scalable. (Bug#49127) 2021-08-21 Dmitry Gutov Speed up project--read-project-buffer in remote buffers * lisp/progmodes/project.el (project-buffers): New generic function. (project--read-project-buffer): Use it here (bug#49264). (project--buffers-to-kill): And here. (project-buffers): Specialized implementation for vc-project. 2021-08-21 Glenn Morris * lisp/bindings.el (page-navigation-repeat-map): Fix bootstrap. 2021-08-20 Alan Mackenzie Fix c-tentative-buffer-changes to be nestable in c-save-buffer-state * lisp/progmodes/cc-defs.el (c-tentative-buffer-changes) (c-tnt-chng-record-state, c-tnt-chng-cleanup): Enhance such that a buffer-undo-list of t is handled specially, so that a nil isn't consed onto it. Thus garbage collection can't later remove the (nil . t) from the end of the buffer-undo-list, causing an infinite loop. 2021-08-20 Davide Masserut (tiny change) Mark page navigation commands as repeatable * doc/emacs/basic.texi (Repeating): Document page navigation repeatability. * lisp/bindings.el (page-navigation-repeat-map): Add new map (bug#50137). * lisp/bindings.el (forward-page): (backward-page): Mark as repeatable. 2021-08-20 Lars Ingebrigtsen Document how to get rid of completion on `SPC' and `?' * doc/emacs/custom.texi (Minibuffer Maps): Mention how to get rid of completion on `SPC' and `?' (bug#16528). 2021-08-20 Lars Ingebrigtsen Fix printing of C-@ in `describe-fontset' * lisp/international/mule-diag.el (mule--kbd-at): New function (bug#17836). (print-fontset-element): Use it to get multi-key things correct. 2021-08-20 Lars Ingebrigtsen Allow preserving symlinks with file-precious-flag set * doc/lispref/files.texi (Saving Buffers): Document it. * lisp/files.el (file-preserve-symlinks-on-save): New user option (bug#18125). (basic-save-buffer-2): Use it. 2021-08-20 Lars Ingebrigtsen Fix infinite recursion in mode: tex * lisp/textmodes/tex-mode.el (tex--redirect-to-submode): Inhibit recursion when called from file-local variables (bug#50126). 2021-08-20 Lars Ingebrigtsen Fix infinite recursion of conf-mode * lisp/textmodes/conf-mode.el (conf-mode): Inhibit recursion when called from file-local variables (bug#50126). 2021-08-20 Marco Centurion (tiny change) Allow copy-directory to copy the source as a symlink * doc/emacs/files.texi (Copying and Naming): Document it. * lisp/files.el (copy-directory): Allow copying symbolic links as is (bug#10897). (copy-directory-create-symlink): New user option. 2021-08-20 Lars Ingebrigtsen Further tweaks to execute-extended-command * lisp/simple.el (execute-extended-command): Move finding the short command to the timer command, too (bug#50042). This further ensures that post-command-hook is run faster. 2021-08-20 Lars Ingebrigtsen Remove even more waiting from execute-extended-command * lisp/simple.el (execute-extended-command): Remove all the waiting from the command and do it all with timers (bug#50042). This ensures that post-command-hook is run immediately also when the command has messaged something. 2021-08-20 Mattias Engdegård Use C-mouse-1 for context menu on NS The Mac platform convention is to use control-left-click for context menus (as a synonym to right-click). * lisp/mouse.el (context-menu--old-bindings): Remove. (context-menu--saved-bindings) (context-menu--bind-mouse, context-menu--reset-bindings): New. (context-menu-mode): Use new functions, with C-mouse-1 as extra binding on NS. 2021-08-20 Mattias Engdegård Fix xref {prev,next}-error target buffer match highlighting extent * lisp/progmodes/xref.el (xref--next-error-function): Bind `xref--current-item` during the call to `xref--show-location` so that `xref-pulse-momentarily` finds the match extent. 2021-08-20 Mattias Engdegård Don't mutate string literal * lisp/obsolete/terminal.el (terminal-escape-map): Rewrite loop in a simpler and more robust way. 2021-08-20 Lars Ingebrigtsen Tweak a failing custom test * test/lisp/custom-tests.el (custom-tests-require-theme): Fix a native-comp-related test failure. In this test, we set load-path to nil, and under native-comp some of the tests want to give a warning: Warning (comp): Cannot look-up eln file as no source file was found for /tmp/custom-tests-bfdbkW/custom-tests--d.elc But we can't load warning.el after setting load-path to nil, so require it first. 2021-08-20 João Távora Make icomplete-forward-completions O(1) when icomplete-scroll is t In particular, this makes the recently added icomplete-vertical-goto-last (bug#49005) be O(n) instead of O(n^2). That used to be almost unbearably slow for large n. * lisp/icomplete.el (icomplete-forward-completions): don't call last unless needed. 2021-08-19 Lars Ingebrigtsen Remove more mentions of the removed `M-o' facemenu binding * doc/emacs/text.texi (Fill Commands, Fill Commands): Adjust `M-o' mentions. * etc/refcards/refcard.tex (section{Formatting}): * etc/refcards/pt-br-refcard.tex (section{Formatando}): * etc/refcards/fr-refcard.tex (section{Formater}): Remove mention of `M-o'. 2021-08-19 Madhu (tiny change) Correctly call completion-in-region in shell.el * lisp/shell.el (shell-dynamic-complete-command) (shell-dynamic-complete-environment-variable): Correctly call completion-in-region (bug#50125). 2021-08-19 Lars Ingebrigtsen Fix space at the start of appt mode line element * lisp/calendar/appt.el (appt-check): Add space at the end (bug#18164) -- all `global-mode-string' elements should have it there to get an even space distribution. 2021-08-19 Lars Ingebrigtsen Add ibuffer-saved-filter-groups example to the doc string * lisp/ibuf-ext.el (ibuffer-saved-filter-groups): Add an example for this complicated syntax (bug#18694). 2021-08-19 Lars Ingebrigtsen Fix dired switch (that contain quotes and spaces) parsing * lisp/files.el (insert-directory): Tokenize shell strings correctly (bug#18875). 2021-08-19 Lars Ingebrigtsen Fix st.el doc string * lisp/term/st.el (xterm-st-extra-capabilities): New user option (bug#50119). (terminal-init-st): Use it to avoid a two-second timeout. 2021-08-19 Peter Münster Add support for history of image tags and completion in the minibuffer * lisp/image-dired.el (image-dired-tag-history): New variable holding the tag history. (image-dired-tag-files, image-dired-tag-thumbnail, image-dired-delete-tag) (image-dired-tag-thumbnail-remove): Use it for the user input. 2021-08-19 Peter Münster Avoid problems when one tag/file is a substring of another * lisp/image-dired.el (image-dired-remove-tag): End of filename is bound by ";" and end of tag is bound by ";" or end of line. 2021-08-19 Peter Münster New placement of newline characters in image-dired-db-file It's more usual to have the newline at the end of the line, instead of the beginning. This change avoids missing newline at the end of the file, an empty line at the start and eventually a lot of empty lines when `require-final-newline' is not nil. * lisp/image-dired.el (image-dired-write-tags): Insert newline at the end of the line, instead of the beginning. (image-dired-remove-tag): Do not delete empty line at end of buffer. 2021-08-19 Peter Münster Fix deletion of associated image * lisp/image-dired.el (image-dired-delete-marked): Treat original images first, because point position is used when there are no marked files. 2021-08-19 Eli Zaretskii Fix inaccuracies in documentation of 'message-truncate-lines' * doc/lispref/display.texi (Echo Area Customization): * src/xdisp.c (syms_of_xdisp): Adjust the documentation of message-truncate-lines to changes that fixed bug#46718. 2021-08-19 Eli Zaretskii Minor doc fixes in icomplete.el * lisp/icomplete.el (icomplete-section): Add :version. (icomplete--augment): Doc fix. 2021-08-19 Eli Zaretskii Fix errors with hscrolling mini-windows under truncate-lines * src/xdisp.c (hscroll_window_tree): Disallow hscroll in mini-windows that display echo-area messages. (Bug#50096) 2021-08-19 Lars Ingebrigtsen stterm doesn't understand all codes that xterm does * lisp/term/st.el (xterm-st-extra-capabilities): New user option (bug#50119). (terminal-init-st): Use it to avoid a two-second timeout. 2021-08-19 João Távora Section by 'group-function' in Icomplete and Fido's vertical modes (Bug#48545) * lisp/icomplete.el (icomplete--augment): Rewrite from icomplete--affixate. (icomplete--render-vertical): Rework. (icomplete--vertical-minibuffer-setup): Separator is hardcoded "\n", no need to set. 2021-08-19 João Távora Improve fix of bug#49888 on no-pattern flex sorting This version is functionally equivalent, but doesn't duplicate any code. When nothing "flexy" is happening, it works by simply not doing any metadata adjustments, instead of attempting to synthesize a function to mimic the non-flex case. * lisp/minibuffer.el (completion--flex-adjust-metadata): Simplify. 2021-08-19 Dmitry Gutov Fix vc-root-diff broken with Git as well * lisp/vc/vc.el (vc-root-diff): Fix similar to 35023214031e1 by avoiding the abbreviated directory name in argument (bug#39452). 2021-08-18 Eli Zaretskii Improve documentation of 'assoc' * doc/lispref/lists.texi (Association Lists): * src/fns.c (Fassoc): Document how TESTFN is called. (Bug#50110) 2021-08-18 Juri Linkov Mouse wheel scrolling on the tab bar * lisp/tab-bar.el (tab-bar-map): Bind mouse-4/wheel-up/wheel-left to tab-previous and mouse-5/wheel-down/wheel-right to tab-next. Bind S-mouse-4/wheel-up/wheel-left to tab-bar-move-tab-backward and S-mouse-5/wheel-down/wheel-right to tab-bar-move-tab. (tab-bar-move-tab-backward): New command. (tab-bar-move-repeat-map): Use tab-bar-move-tab-backward instead of lambda. * src/xterm.c (handle_one_xevent): Remove restriction to allow clicking mouse-4 and mouse-5. 2021-08-18 Juri Linkov Bind [drag-mouse-1] to tab-bar-mouse-move-tab on tab-bar-map * lisp/tab-bar.el (tab-bar-mouse-move-tab): New command. (tab-bar-map): Bind [drag-mouse-1] to tab-bar-mouse-move-tab. (tab-bar-select-tab): Zero or nil arg means the current tab. * src/xdisp.c (handle_tab_bar_click): Remove restriction to allow dragging the tab to another tab. 2021-08-18 Juri Linkov Redesign tab-bar event processing (bug#41342, bug#41343) Instead of emitting menu-item keys like [tab-1], emit normal mouse events like [mouse-1] and [down-mouse-3] for all mouse clicks issued on the tab-bar. * lisp/mouse.el (mouse-posn-property): Handle 'tab-bar' posn-area. * lisp/tab-bar.el (tab--key-to-number): New internal function. (tab-bar-handle-mouse): Use tab key to select/close tab. (tab-bar-mouse-select-tab, tab-bar-mouse-close-tab) (tab-bar-mouse-context-menu): New commands. (tab-bar-map): Bind [down-mouse-1] to tab-bar-mouse-select-tab, [down-mouse-2] to tab-bar-mouse-close-tab, [down-mouse-3] to tab-bar-mouse-context-menu. (tab-bar-keymap-cache): Remove. (tab-bar-make-keymap): Don't use cache. (tab-bar--format-tab): Remove default bindings from menu items. (tab-bar-make-keymap-1): Prepend tab-bar-map. * src/keyboard.c (make_lispy_event): Append event->arg to position for Qtab_bar. * src/term.c (handle_one_term_event): Simplify to set event arg. * src/w32inevt.c (do_mouse_event): Set emacs_ev->arg to the value returned from tty_handle_tab_bar_click. * src/w32term.c (w32_handle_tab_bar_click): Return value from handle_tab_bar_click. (w32_read_socket): Set tab_bar_key to value returned from w32_handle_tab_bar_click, and set event arg from it. * src/xdisp.c (handle_tab_bar_click): Instead of emitting event, return a list with Qtab_bar and tab caption with text properties that contain Qmenu_item with key and binding. (tty_handle_tab_bar_click): Simplify to return a list of Qtab_bar, key and close_p, instead of emitting event. * src/xterm.c (handle_one_xevent): Set tab_bar_key to value returned from handle_tab_bar_click, and set event arg from it. 2021-08-18 Juri Linkov * lisp/progmodes/xref.el (xref--collect-matches): Widen temporarily. 2021-08-18 Juri Linkov * lisp/mouse.el: More fixes for context-menu. (context-menu-map): Remove menu title "Context Menu" (bug#50067). (context-menu-minor): Reverse sub-menus to display exactly in the same order as on the menu bar. 2021-08-18 Eli Zaretskii Improve documentation of last change. * etc/NEWS: Mention the string value of 'auto-composition-mode'. * src/composite.c (syms_of_composite) : Doc fix. 2021-08-18 Lars Ingebrigtsen Disable auto compositions on the Linux console only * lisp/term/linux.el (terminal-init-linux): Disable auto compositions on "linux" consoles (bug#21363). * src/composite.c (inhibit_auto_composition): New function to implement this. (composition_compute_stop_pos, composition_adjust_point) (Ffind_composition_internal): Use it. (syms_of_composite): Document it. * src/lisp.h: Export tty_type_name. * src/term.c (tty_type_name): Factored out. (Ftty_type): Use it. 2021-08-18 Lars Ingebrigtsen Add undo-in-region test case for bug#21523 2021-08-18 Eli Zaretskii Yet another place inside redisplay_window to prevent quitting * src/xdisp.c (handle_single_display_spec): Inhibit quitting around the call to lookup_image. (Bug#44448) 2021-08-18 Eli Zaretskii Fix abort when turning on Hebrew or Arabic input methods * src/xdisp.c (face_before_or_after_it_pos): Add the missing initialization of the bidi scan direction. (Bug#50107) 2021-08-18 Peter Münster Add menu bindings to new functions in image-dired.el * lisp/image-dired.el (image-dired--with-marked): New macro for cycling over marked thumbnails. (image-dired-tag-thumbnail, image-dired-tag-thumbnail-remove): Can handle now also all marked thumbnails. (image-dired-tag-marked-thumbnails): Remove it, because it's obsoleted by `image-dired-tag-thumbnail' now. (image-dired-delete-marked): Use new macro `image-dired--with-marked', and add command to menu (bug#50000). 2021-08-18 pillule Fix ediff3 layouts with window-combination-resize non-nil (Bug#49277) * lisp/vc/ediff-wind.el (ediff-setup-windows-plain-compare) (ediff-setup-windows-multiframe-compare): Fix three windows layouts produced by ediff3 when 'window-combination-resize' was customized to t and 'even-window-sizes' to nil. 2021-08-18 pillule Fix behavior when switch-to-prev-buffer-skip is a function (Bug#49275) * lisp/window.el (switch-to-prev-buffer) (switch-to-next-buffer): More correctly handle cases where 'switch-to-prev-buffer-skip' is a function. 2021-08-17 Andrea Corallo Fix `native-compile-target-directory' effectiveness for async compilation. * lisp/emacs-lisp/comp.el (comp-run-async-workers): Forward to async workers `native-compile-target-directory'. 2021-08-17 Glenn Morris * lisp/mouse.el (context-menu-filter-function): Fix type. 2021-08-17 Eli Zaretskii Another fix for quitting while displaying non-selected windows * src/xdisp.c (handle_face_prop, extend_face_to_end_of_line): Inhibit quitting around the call to face_at_pos, to prevent leaking wrong value of point when the user quits while we redisplay a non-selected window. (Bug#44448) 2021-08-17 Glenn Morris * test/lisp/electric-tests.el: Skip most c-mode tests on hydra. 2021-08-17 Eli Zaretskii Fix TTY display performance degradation due to many markers * src/coding.c (encode_coding_object): Don't assume that src_object == dst_object means src_object is the current buffer. Add the missing commentary that explains the arguments. (Bug#49127) 2021-08-17 Michalis V Improve `forward-sexp' in *Help* buffers * lisp/help-mode.el (help-mode-syntax-table): New variable (bug#39134). (help-make-xrefs): Use it to make picking out symbols in curved quotes work reliably. (help-xref-on-pp): Ditto. 2021-08-17 João Távora Bind and in icomplete-vertical-mode Suggested by Ergus * lisp/icomplete.el (icomplete-vertical-mode-minibuffer-map): Bind and 2021-08-17 João Távora Simon Lang Jump to first,last completion with M-<, M-> in icomplete-vertical-mode (Bug#49005) * lisp/icomplete.el (icomplete-backward-completions): Return non-nil iff something was stepped. Adjust docstring. (icomplete-forward-completions): Adjust docstring. (icomplete-vertical-goto-first, icomplete-vertical-goto-last): New commands. (icomplete-vertical-mode-minibuffer-map): Bind new commands to M-< and M->. 2021-08-17 Juri Linkov Merge branch 'feature/context-menu' 2021-08-17 Dmitry Gutov ruby-mode imenu: Support methods with modifiers * lisp/progmodes/ruby-mode.el (ruby-imenu-create-index-in-block): Support methods with modifiers (visibility or otherwise) (bug#50079). 2021-08-17 Dmitry Gutov vc-git-region-history: Fix to call 'diff' more correctly * lisp/vc/vc-git.el (vc-git-region-history): Fix to pass a list to the backend 'diff' command (bug#39452). 2021-08-17 João Távora Make icomplete-vertical-mode take immediate effect (bug#49075) * etc/NEWS: Mention change. * lisp/icomplete.el (icomplete-vertical-mode): (fido-vertical-mode): Tweak docstring. Turn on icomplete-mode. and fido-mdoe 2021-08-16 Glenn Morris * test/Makefile.in: Verbose logging for electric-tests on hydra. 2021-08-16 Eli Zaretskii Plug another hole for longjmp-ing from 'redisplay_window' * src/fringe.c (update_window_fringes): Inhibit quitting, so as not to longjmp out of redisplay_window. (Bug#44448) 2021-08-16 Stephen Berman Add Command Modes to Elisp manual menu and add index entries * doc/lispref/commands.texi (Command Modes): Add index entries. * doc/lispref/elisp.texi (Top): Add entry for the Command Modes node to the detailed node listing. 2021-08-16 Eli Zaretskii Fix recent documentation additions * doc/lispref/searching.texi (Search and Replace): Document the new functions by @defun. 2021-08-16 Glenn Morris Merge from origin/emacs-27 9664ee182c (origin/emacs-27) C++ Mode: Don't confuse the pointer oper... b3aec9ee48 CC Mode: Fix unstable fontification of doc strings. # Conflicts: # lisp/progmodes/cc-fonts.el 2021-08-16 Lars Ingebrigtsen Make overlays-in treat zero-length overlays at point-max consistently * doc/lispref/display.texi (Finding Overlays): Adjust documentation. * src/buffer.c (overlays_in): Treat the end of the buffer and the end of the narrowed-to buffer the same (bug#19422). (Foverlays_in): Adjust doc string. 2021-08-16 Lars Ingebrigtsen Fix cursor movement on the Linux console with certain characters * lisp/term/linux.el (terminal-init-linux): Switch off auto-compositions, because they confuse cursor movement on the Linux console (bug#21363). 2021-08-16 Lars Ingebrigtsen Minor clarification for define-minor-mode :variable * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): * doc/lispref/modes.texi (Defining Minor Modes): Clarify what the setter function should do (bug#14875). 2021-08-16 Clément Pit-Claudel Remove prettification for \par in tex-mode * lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Remove prettified version of `\par'. Many fonts don't display anything for the character it was mapped to (#x2029 PARAGRAPH SEPARATOR), so enabling prettification makes every `\par' disappear (bug#50073). 2021-08-16 Lars Ingebrigtsen Add new functions to replace strings/regexp in a region * doc/lispref/searching.texi (Search and Replace): Document them. * lisp/subr.el (replace-string-in-region) (replace-regexp-in-region): New functions. * lisp/emacs-lisp/shortdoc.el (regexp, buffer): Mention them. 2021-08-16 Lars Ingebrigtsen Don't remove `fontified' in nxml--buffer-substring-filter * lisp/nxml/nxml-mode.el (nxml--buffer-substring-filter): Removing `fontified' is probably unnecessary (bug#50061). 2021-08-16 Dmitry Gutov Fix regressions in the last change * lisp/vc/vc-git.el (vc-git-register): Use file names verbatim with 'git update-index', as it only accepts file names, not pathspecs (bug#39452). * lisp/vc/vc.el (vc-print-root-log): Expand ROOTDIR, so that vc-git-print-log doesn't receive an abbreviated name. Literal pathspecs don't work with those. 2021-08-15 Alan Mackenzie C++ Mode: Don't confuse the pointer operator -> with the type indicating -> This fixes bug #47468. * lisp/progmodes/cc-engine.el (c-looking-at-inexpr-block): While searching backwards for "->" which is a type indicating operator, disallow also commas. 2021-08-15 Alan Mackenzie CC Mode: Fix unstable fontification of doc strings. Also optimize a loop over several line doc-comments. * lisp/progmodes/cc-fonts.el (c-font-lock-doc-comments): New variable comment-mid, used as the starting point for applying c-doc-face-name in a line comments. In block comments, apply this face not from `comment-beg' but from `region-beg', no earlier than the start of the fontification region. 2021-08-15 Juri Linkov Use map-keymap in context-menu-global, context-menu-local, context-menu-minor 2021-08-15 Juri Linkov * lisp/simple.el (shift-select-mode): Add new choice 'permanent' (bug#50038). (handle-shift-selection): Handle new choice 'permanent'. 2021-08-15 Juri Linkov * lisp/tab-bar.el (tab-bar-new-button-show): Make variable obsolete. 2021-08-15 Stefan Monnier * lisp/nxml/nxml-mode.el (nxml-mode): Use add-function This avoids calling the internal function `buffer-substring--filter` from `nxml.el`. (nxml--buffer-substring-filter): Adjust accordingly. 2021-08-15 Lars Ingebrigtsen Filter out rng-state elements in nxml-mode buffers from the kill ring * lisp/nxml/nxml-mode.el (nxml--buffer-substring-filter): Filter out `rng-state' objects (bug#50061). (nxml-mode): Set `filter-buffer-substring-function'. 2021-08-15 João Távora Sort by recency in flex completion style when no flexy stuff happening (Bug#49888) * lisp/minibuffer.el (completion--flex-adjust-metadata): Fall back to usual alphanumeric, length, recency strategy if no minibuffer input. There is still a bug indicated by the nearby FIXMEs, though. 2021-08-15 Augusto Stoffel Allow evaluating Python code across machines * lisp/progmodes/python.el (python-shell-send-string): Ensure that the temporary file is created in the host running the Python process (bug#50057). 2021-08-15 Lars Ingebrigtsen Run execute-extended-command key binding suggestion from a timer * lisp/simple.el (execute-extended-command): Run the key binding suggestion from a timer instead of in the program flow -- this allows `post-command-hook' to be executed immediately (bug#50042). 2021-08-15 Lars Ingebrigtsen Make Emacs compile with musl instead of glibc * src/alloc.c: musl doesn't have malloc_info (bug#50058). 2021-08-15 Eli Zaretskii Fix unwarranted point movement after C-g When the same buffer is displayed in more than one window, redisplay temporarily moves point to the window-point when it works on non-selected windows. If we allow C-g to quit out of redisplay_window in this situation, point will appear to have moved to the window-point of that non-selected window, which is unwarranted. These changes prevent quitting in strategic places, so that we never quit out of redisplay_window. * src/xdisp.c (run_window_scroll_functions): Prevent quitting while running window-scroll-functions, so that we don't quit out of redisplay_window with temporarily moved point. (redisplay_window): While redisplaying the mode line, prevent quitting, to avoid exiting while point is temporarily moved. (decode_mode_spec): Use safe_call1 instead of call1, to trap any errors instead of letting them throw out of redisplay. (Bug#44448) 2021-08-15 Masahiro Nakamura Mark up commands in shortdoc.el for modes * lisp/emacs-lisp/shortdoc.el: Add command mode tagging (bug#50064). 2021-08-15 João Távora Fix bug#50063 when using icomplete-fido-kill with C-x p p C-x p p utilizes a completion table "category" which is 'project-file' icomplete-fido-kill only functioned for 'buffer' and 'file', and failed with a non-informative message when something else was used. * lisp/icomplete.el (icomplete-fido-kill): Support 'project-file' class. Use cl-case, instead of pcase. 2021-08-15 Wolfgang Scherer Fix vc-git-state for filenames with wildcards * lisp/vc/vc-git.el: (vc-git--literal-pathspec-inner), (vc-git--literal-pathspec), (vc-git--literal-pathspecs) new functions to add ":(literal)" pathspec magic (bug#39452). (vc-git-registered), (vc-git-state), (vc-git-dir-status-goto-stage), (vc-git-register), (vc-git-unregister), (vc-git-checkin), (vc-git-find-revision), (vc-git-checkout), (vc-git-revert), (vc-git-conflicted-files), (vc-git-print-log), (vc-git-diff), (vc-git-previous-revision), (vc-git-next-revision), (vc-git-delete-file), (vc-git-rename-file) functions vc-git--literal-pathspec, vc-git--literal-pathspecs applied. 2021-08-15 Dmitry Gutov Revert "Bind the GIT_LITERAL_PATHSPECS environment variable" This reverts commit a2d0ff26005c5c10ffe0d84bd8b458a06828be82. It was found to break a certain use case, and we decided to go with the other solution (bug#39452). 2021-08-14 Lars Ingebrigtsen Mark auto-revert-test02-auto-revert-deleted-file as unstable * test/lisp/autorevert-tests.el (auto-revert-test02-auto-revert-deleted-file): This tests fails about 30% of the time for me. 2021-08-14 Eli Zaretskii * src/w32.c (_sys_read_ahead): Pacify a silly compiler warning. 2021-08-14 Stefan Monnier * lisp/emacs-lisp/easymenu.el (easy-menu-do-define): Fix bug#50051 This corrects the quite confused conversion to closure done in commit a070bd1c8b5213ad469d41dd80d392f924644aed. 2021-08-14 Alan Mackenzie * lisp/progmodes/cc-engine.el (c-ml-string-in-end-delim): Rewrite function 2021-08-14 Eli Zaretskii Fix 'random' on MS-Windows when integers are wider than 30 bits * src/w32.c (random): Provide more random bits for MS-Windows builds with EMACS_INT that is wider than 32 bits. (Bug#32605) 2021-08-14 Lars Ingebrigtsen Add a test for netrc folding parsing (bug#25769) 2021-08-14 Lars Ingebrigtsen Filter out -L foo labels in diff-hunk-file-names * lisp/vc/diff-mode.el (diff-hunk-file-names): Filter out "-L foo" labels (bug#10160). 2021-08-14 Lars Ingebrigtsen Revert "Add macro `seq-setq`." This reverts commit a8a3fd8f8e27089ac46bf98e534529ff03f679a5. The same patch was applied twice. Remove the second instance. 2021-08-14 Lars Ingebrigtsen Make lm-crack-address less strict * lisp/emacs-lisp/lisp-mnt.el (lm-crack-address): Use mail-header-parse-address-lax (bug#50049). 2021-08-14 Lars Ingebrigtsen Add new functions for lax mail address splitting * lisp/emacs-lisp/subr-x.el (string-clean-whitespace): Autoload. * lisp/mail/mail-parse.el (mail-header-parse-addresses-lax) (mail-header-parse-address-lax): New functions. 2021-08-14 Earl Hyatt Add macro `seq-setq`. * doc/lispref/sequences.texi (seq-setq): Document this macro. * test/lisp/emacs-lisp/seq-tests.el (test-seq-setq): Test this macro (bug#50053). 2021-08-14 Earl Hyatt Add macro `seq-setq`. * doc/lispref/sequences.texi (seq-setq): Document this macro. * lisp/emacs-lisp/seq.el (seq-setq): New macro. * test/lisp/emacs-lisp/seq-tests.el (test-seq-setq): Test this macro (bug#50053). 2021-08-14 Yikai Zhao (tiny change) Fix memory-report counting of vector/hash table sizes * lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Count element values in vectors and hash tables. 2021-08-14 Basil L. Contovounesios Fix merging of ambiguous nil maps * lisp/emacs-lisp/map.el: Bump version to 3.1. (map--merge): New merging subroutine that uses a hash table in place of lists, for both efficiency and avoiding ambiguities (bug#49848). (map-merge): Rewrite in terms of map--merge. (map-merge-with): Ditto. This ensures that FUNCTION is called whenever two keys are merged, even if they are not eql (which could happen until now). It also makes map-merge-with consistent with map-merge, thus achieving greater overall predictability. * etc/NEWS: Announce this weakening of guarantees. * test/lisp/emacs-lisp/map-tests.el (test-map-merge) (test-map-merge-with): Don't depend on specific orderings. Test that nil is correctly merged into a plist. 2021-08-14 Mattias Engdegård Add font-lock-doc-markup-face (bug#50041) This face is intended for mark-up syntax and constructs inside text using font-lock-doc-face; ie, documentation comments and strings in programming modes. * lisp/font-lock.el (font-lock-doc-markup-face): New face. * lisp/cus-theme.el (custom-theme--listed-faces): Add it to the list. * doc/lispref/modes.texi (Faces for Font Lock): Document it. * etc/NEWS: Mention it. 2021-08-13 Alan Mackenzie CC Mode: Fix a bug in yesterday's patch * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings): Check the language has multi-line strings before calling c-ml-string-opener-at-or-around-point. 2021-08-13 Lars Ingebrigtsen Make `debug' reset `inhibit-read-only' while running * lisp/emacs-lisp/debug.el (debug): Bind `inhibit-read-only' to nil in case we're in a context that has bound it to t (bug#26947). 2021-08-13 Lars Ingebrigtsen Adjust previous diff-changed-unspecified change * lisp/vc/diff-mode.el (diff-changed-unspecified): Adjust the definition to Emacs 28 (bug#26969). 2021-08-13 Lars Ingebrigtsen Add new face diff-changed-unspecified * lisp/vc/diff-mode.el (diff-changed-unspecified): New face. (diff-font-lock-keywords): Use it (bug#26969). 2021-08-13 Lars Ingebrigtsen permanently-enabled-local-variables doc string clarification * lisp/files.el (permanently-enabled-local-variables): Clarify what kind of local variables this refers to. 2021-08-13 Lars Ingebrigtsen Make info-look search harder for the Python info file * lisp/info-look.el (python-mode): Try harder to find the correct info file (bug#31405). 2021-08-13 Lars Ingebrigtsen Fix problem where an error would change standard-output * src/keyboard.c (cmd_error): Don't set standard-output/standard-input (bug#30529). Instead bind them temporarily while handling the error. 2021-08-13 Lars Ingebrigtsen Unknown line endings in filepos-to-bufferpos/bufferpos-to-linepos * lisp/international/mule-util.el (filepos-to-bufferpos): Give better errors on `exact' with unknown line endings, and guess at Unix if `approximate' (bug#36573). (bufferpos-to-filepos): Ditto. 2021-08-13 Lars Ingebrigtsen Remove :group from defcustoms in image-dired.el * lisp/image-dired.el: Remove :group from the defcustoms throughout. 2021-08-13 Peter Münster Don't disable transient mark mode when changing image faces * lisp/image-dired.el (image-dired-thumb-update-marks): Keep the mark state when changing faces. (bug#49999). 2021-08-13 Juri Linkov * lisp/tab-bar.el (tab-bar-history-buttons-show): Remove defcustom. (tab-bar-format-history): Don't use this recently added variable because now it's possible to customize the option 'tab-bar-format' to remove 'tab-bar-format-history' from it that gives the same result. 2021-08-13 Juri Linkov Add save-some-buffers-root to save-some-buffers-default-predicate (bug#46374) * lisp/files.el (save-some-buffers-default-predicate): Add choice 'save-some-buffers-root'. (save-some-buffers-root): New predicate function. (save-some-buffers): Check if 'pred' returns a lexically-bound lambda, then use it as 'pred'. Thanks to Tino Calancha 2021-08-12 Alan Mackenzie CC Mode: Enhance C++ Mode raw strings to multi-line strings for any language * lisp/progmodes/cc-defs.el (cadar, caddr, cdddr): Add defsubsts for these for when they are missing from the host Emacs. (c-point): Add new `position' 'boll "beginning of logical line". (c-clear-char-properties): Return the position of the lowest removed property. * lisp/progmodes/cc-engine.el (c-full-pp-to-literal): Fix for rare case where LIMIT < START in parse-partial-sexp. (c-old-beg-rs, c-old-end-rs, c-raw-string-end-delim-disrupted) (c-raw-string-pos, c-raw-string-in-end-delim, c-depropertize-raw-string) (c-depropertize-raw-strings-in-region, c-before-change-check-raw-strings) (c-propertize-raw-string-id, c-propertize-raw-string-opener): Old functions and variables removed or renamed "raw" -> "ml" and adapted. (c-old-beg-ml, c-old-1-beg-ml, c-old-end-ml, c-beg-pos, c-end-pos) (c-ml-string-end-delim-disrupted, c-depropertize-ml-string-delims) (c-ml-string-delims-around-point,c-position-wrt-ml-delims) (c-before-change-check-ml-strings, c-after-change-unmark-ml-strings) (c-maybe-re-mark-ml-string, c-propertize-ml-string-id) (c-propertize-ml-string-opener, c-depropertize-ml-string) (c-depropertize-ml-strings-in-region): New functions and variables adapted and possibly renamed from "raw" -> "ml". (c-ml-string-make-closer-re, c-ml-string-make-opener-re) (c-c++-make-ml-string-closer-re, c-c++-make-ml-string-opener-re) (c-get-ml-closer, c-ml-string-opener-around-point) (c-ml-string-opener-intersects-region, c-ml-string-opener-at-or-around-point) (c-ml-string-back-to-neutral, c-ml-string-in-end-delim, c-neutralize-pos) (c-neutralized-prop): New functions and variables. * lisp/progmodes/cc-fonts.el (c-basic-matchers-before): Replace c-font-lock-raw-strings with c-font-lock-ml-strings. (c-font-lock-ml-strings): New function taking the place of the old c-font-lock-ml-strings. * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Move c-depropertize-CPP to the second item of the C++ entry, and replace c-before-change-check-raw-strings by c-before-change-check-ml-strings. Add a new entry for Pike Mode. (c-before-font-lock-functions): (Replace c-after-change-unmark-raw-strings by c-after-change-unmark-ml-strings in the C++ entry, and add a new entry for Pike Mode. (c-ml-string-backslash-escapes, c-ml-string-non-punc-skip-chars) (c-ml-string-opener-re, c-ml-string-max-opener-len, c-ml-string-any-closer-re) (c-ml-string-max-closer-len, c-ml-string-max-closer-len-no-leader) (c-ml-string-back-closer-re, c-make-ml-string-closer-re-function) (c-make-ml-string-opener-re-function, c-ml-string-cpp-or-opener-re) (c-cpp-or-ml-match-offset): New c-lang-defconsts and c-land-defvars. (c-multiline-string-start-char): Remove the Pike Mode setting. * lisp/progmodes/cc-mode.el (c-depropertize-CPP): Test for general ml strings rather than C++ raw strings. (c-unescaped-nls-in-string-p): Handle languages with ml strings. (c-clear-string-fences): Fix bug with wrong parenthesisation. (c-before-change-check-unbalanced-strings) (c-after-change-mark-abnormal-strings, c-after-change-escape-NL-in-string): Adapt for multi-line strings. 2021-08-12 Michael Albinus Improve connection type `pipe' for remote processes * doc/misc/tramp.texi (Remote processes): New subsection "Remote process connection type". * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): Use `tramp-process-connection-type' as default connection type. Improve check for `:connection-type'. * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Use `tramp-process-connection-type' as default connection type. Improve check for `:connection-type'. Send "stty -icrnl" when connection type is a pipe. * lisp/net/tramp.el (tramp-process-connection-type): Allow all possible values. (tramp-handle-make-process): Use `tramp-process-connection-type' as default connection type. Improve check for `:connection-type'. * test/lisp/net/tramp-tests.el (tramp-test30-make-process): Extend test. 2021-08-12 Stefan Monnier * lisp/emacs-lisp/lisp-mnt.el (lm-crack-address): Handle multi-addresses (lm-authors, lm-maintainers): Adjust accordingly. 2021-08-12 Lars Ingebrigtsen Make info-look try to use more recent Python manual * lisp/info-look.el: Use the Debian-installed python3.9 manual if it exists (bug#31405). 2021-08-12 Lars Ingebrigtsen Further tweak minibuffer-inactive-mode doc string * lisp/minibuffer.el (minibuffer-inactive-mode): Mention `minibuffer-exit-hook' (bug#13641). 2021-08-12 Lars Ingebrigtsen Improve minibuffer-inactive-mode documentation * lisp/minibuffer.el (minibuffer-inactive-mode): Clarify when it's used (bug#13641). 2021-08-12 Lars Ingebrigtsen Mention url-handler-mode in the Emacs manual * doc/emacs/misc.texi (Browse-URL): Mention url-handler-mode (bug#30389). * lisp/url/url-handlers.el (url-handler-mode): Improve doc string. 2021-08-12 Stefan Monnier * lisp/emacs-lisp/pcase.el (pcase-setq): Align its semantics with `pcase-let` * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-setq): Rename from pcase-setq and adjust accordingly. 2021-08-12 Lars Ingebrigtsen Add support for Python mode in info-lookup-symbol * lisp/info-look.el (:mode): Add support for Python mode (bug#31405). 2021-08-12 Lars Ingebrigtsen Clarify smie-indent-forward-token doc string * lisp/emacs-lisp/smie.el (smie-indent-forward-token): Doc string clarification (bug#31948). 2021-08-12 Lars Ingebrigtsen Change the `region' face in the Wombat theme * etc/themes/wombat-theme.el (class): Don't use a foreground in the `region' face because it obscures syntax highlighting (bug#32143). 2021-08-12 Omar Polo Mention `find-ignore-file' in the vc.el commentary * lisp/vc/vc.el: Update documentation in the comments about `find-ignore-file' (bug#50013). 2021-08-12 Lars Ingebrigtsen Add XLFD font parsing tests * test/src/font-tests.el (font-parse-xlfd-test): Add some tests for XLFD testing (bug#35816). 2021-08-12 Stefan Monnier * lisp/emacs-lisp/cl-macs.el (fixnum, bignum): Fix type definitions 2021-08-12 Lars Ingebrigtsen Fix bytecomp container test case * lisp/startup.el (normal-top-level): Make startup more robust -- we may not be allowed to create any directories when running under test mode (bug#48350). 2021-08-12 Stefan Monnier * lisp/obsolete/cl.el (labels): Don't quote lambda (flet): Don't need `fboundp` any more before calling `symbol-function`. 2021-08-11 Earl Hyatt Add a `pcase-setq' macro * doc/lispref/control.texi (Destructuring with pcase Patterns): Document this macro. * lisp/emacs-lisp/pcase.el (pcase-setq): New macro. This macro is the 'setq' equivalent of 'pcase-let'. * test/lisp/emacs-lisp/pcase-tests.el (pcase-setq): Test this new macro. (bug#49809). 2021-08-11 Lars Ingebrigtsen Allow using a single anonymous face in enriced-mode * lisp/format.el (format-annotate-single-property-change): Allow using a single anonymous face (bug#33682). 2021-08-11 Lars Ingebrigtsen Allow using XLFD font names with dashes in the family name * src/font.c (font_parse_xlfd_1): Rename from font_parse_xlfd to allow calling twice from a wrapper (bug#35816). (font_parse_xlfd): Wrapper function -- first try to parse in the normal way, and then try to guess that the hyphenated bits are in the family name. 2021-08-11 Lars Ingebrigtsen Allow `tex-buffer' to work on buffers not visiting files * lisp/textmodes/tex-mode.el (tex-region): Make `tex-buffer' work again on unsaved files (bug#34082). 2021-08-11 Stephen Berman Fix URL entry in ffap after previous change * lisp/ffap.el (ffap-read-file-or-url): Make URL entry actually work again (bug#50011). 2021-08-11 Peter Münster Add new image-dired commands * lisp/image-dired.el (image-dired-delete-marked): Factored out (bug#50000). (image-dired-display-thumbs): From here. (image-dired-tag-marked-thumbnails): New command. (image-dired-delete-marked): Ditto. 2021-08-11 Michael Albinus Replace some `string-match-p' calls in Tramp * lisp/net/tramp.el (tramp-debug-message, tramp-set-completion-function) (tramp-get-completion-methods, tramp-get-completion-user-host): * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) (tramp-open-connection-setup-interactive-shell) (tramp-convert-file-attributes): Use `string-prefix-p'. * lisp/net/tramp.el (tramp-dissect-file-name) (tramp-progress-reporter-update, tramp-handle-insert-directory): * lisp/net/tramp-cache.el (tramp-get-hash-table) (tramp-flush-directory-properties): * lisp/net/tramp-cmds.el (tramp-append-tramp-buffers): * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory) (tramp-call-local-coding-command, tramp-get-inline-coding): * lisp/net/tramp-smb.el (tramp-smb-handle-file-attributes) (tramp-smb-handle-file-name-all-completions) (tramp-smb-handle-file-writable-p) (tramp-smb-handle-insert-directory) (tramp-smb-handle-start-file-process, ) (tramp-smb-read-file-entry): Use `tramp-compat-string-search'. 2021-08-11 Rajeev Narang Make icalendar parse multi-line items correctly * lisp/calendar/icalendar.el (icalendar--parse-summary-and-rest): Parse multi-line items correctly (bug#37887). 2021-08-11 Lars Ingebrigtsen Fix icalendar-import-file prompt * lisp/calendar/icalendar.el (icalendar-import-file): Fix prompt. 2021-08-11 Lars Ingebrigtsen Make gnus-icalendar-event-from-ical more robust * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-ical): Don't bug out on nil UIDs. 2021-08-11 Peter Oliver Drop redundant keywords in .desktop files. The Freedesktop.org Desktop Entry spec says, “The values [of Keywords]… should not be redundant with the values of Name or GenericName”. * etc/emacs.desktop, etc/emacsclient.desktop (Keywords): Remove keywords that are duplicated from the GenericName field. 2021-08-11 Peter Oliver Hint that emacsclient.desktop should match a search for “emacsclient” This is necessary to get the Gnome desktop to show “Emacs (Client)” when the user searches for “emacsclient”. * etc/emacsclient.desktop (Keywords): * etc/emacsclient-mail.desktop (Keywords): Add “emacsclient”. 2021-08-11 Peter Oliver Valid quoting in .desktop files * etc/emacsclient.desktop, etc/emacsclient-mail.desktop (Exec): Quote according to the rules in the Freedesktop.org Desktop Entry Specification. 2021-08-11 Peter Münster Mark marked images in Image-Dired mode * lisp/image-dired.el (image-dired-thumb-update-marks): New function that makes the marks visible in the thumbnail buffer (bug#49988). (image-dired-thumb-margin, image-dired-thumb-mark-color): New user options. 2021-08-11 Peter Münster Let image-dired-mouse-toggle-mark act on active region * lisp/image-dired.el (image-dired-mouse-toggle-mark): When region is active, then toggle marks of all images within (bug#49987). (image-dired-mouse-toggle-mark-1): Separated out into function. 2021-08-11 Juri Linkov * lisp/replace.el (perform-replace): Use 'remove-function' (bug#49963). Don't let-bind the value of 'isearch-filter-predicate' to protect from changing the global value, since with a buffer-local value it still changes the global value. So after using 'add-function' on the global value of 'isearch-filter-predicate', call 'remove-function' to remove 'region-filter' from the global value in 'unwind-protect'. 2021-08-10 Lars Ingebrigtsen Use ### for outline headings in shell-script-mode * lisp/progmodes/sh-script.el (sh-mode): Use ### for outline headings. This aligns it more with emacs-lisp-mode headings. 2021-08-10 Lars Ingebrigtsen Add support for outlining in shell-script-mode * lisp/progmodes/sh-script.el (sh-mode): Set outline-regexp (bug#49346). 2021-08-10 Lars Ingebrigtsen Add new user option `gnus-topic-prepare-topic' * doc/misc/gnus.texi (Topic Variables): Document it. * lisp/gnus/gnus-topic.el (gnus-topic-prepare-topic): New user option. (gnus-topic-prepare-topic): Use it. 2021-08-10 Mattias Engdegård More robust auto-detect of grep-highlight-matches (bug#49978) * lisp/progmodes/grep.el (grep-compute-defaults): Don't require "grep --help" to finish with exit status 0 (BSD grep does not) and check the output in a slightly more robust way. 2021-08-10 Lars Ingebrigtsen Add a new command `revert-buffer-quick' * doc/emacs/files.texi (Reverting): Document it. * lisp/bindings.el (ctl-x-x-map): Bind `C-x x g' to `revert-buffer-quick' instead. * lisp/files.el (revert-buffer-quick-short-answers): New user option. (revert-buffer-quick): New command (bug#49869). 2021-08-10 Benjamin Riefenstahl Fix nnrss-get-namespace-prefix (bug#34685) * lisp/gnus/nnrss.el (nnrss-get-namespace-prefix): Use the car of parameter el to match what dom-search expects. * test/lisp/gnus/nnrss-tests.el (test-nnrss-xml): Adjust to what xml-parse-region produces (bug#34685). 2021-08-10 Mattias Engdegård Tramp string-search and string-replace compatibility functions Add a `string-search` compatibility function for use in Tramp with Emacs version prior to 28, and fix the existing `string-replace` compatibility function so that it uses the right semantics. * lisp/net/tramp-compat.el (tramp-compat-string-replace): Use case-sensitive matching and literal replacement. (tramp-compat-string-search): New function. * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-name-all-completions): * lisp/net/tramp-sh.el (tramp-sh-handle-file-name-all-completions) (tramp-do-copy-or-rename-file-out-of-band) (tramp-sh-handle-make-process, tramp-sh-handle-process-file): * lisp/net/tramp.el (tramp-handle-make-process): Use `tramp-compat-string-search` instead of `string-match-p`. 2021-08-10 Stefan Monnier * lisp/emacs-lisp/cl-generic.el: Try and fix bug#49866 (cl-generic-generalizers): Remember the specializers that match a given value. (cl--generic-eql-generalizer): Adjust accordingly. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-generic-test-01-eql): Add corresponding test. 2021-08-10 Stefan Monnier * lisp/emacs-lisp/package.el (package-buffer-info): Fix typo 2021-08-09 Stefan Monnier * lisp/emacs-lisp/package.el (package-buffer-info): Use lm-maintainers Avoid the now obsolete `lm-maintainer`. 2021-08-09 Lars Ingebrigtsen Make ffap-read-file-or-url put point at the correct place for URLs * lisp/ffap.el (ffap-read-file-or-url): Put point at the end of URLs (bug#44822). (ffap--url-file-handler): Remove hack for default dirs. 2021-08-09 dickmao Forestall "Selected deleted buffer" in url-http-generic-filter * lisp/url/url-http.el (url-http-generic-filter): Check that corresponding buffer is still live before using it (bug#49928). 2021-08-09 Lars Ingebrigtsen Make xterm-set-window-title more robust * lisp/term/xterm.el (xterm-set-window-title): Don't do anything on graphic displays (bug#49932). 2021-08-09 Lars Ingebrigtsen Fix tmm-get-keymap under native-compile * lisp/tmm.el (tmm-get-keymap): Make this work under natively-compiled Emacsen (and with lexical binding, too) (bug#49953). 2021-08-09 Lars Ingebrigtsen Further fixes for package-quickstart-refresh printing * lisp/emacs-lisp/package.el (package-quickstart-refresh): Really ensure that the structures aren't shortened (bug#49924). 2021-08-09 Michael Albinus Fix last commit of tramp.el 2021-08-09 Grégoire Jadi Fix freeze on OpenBSD when reading the SECONDARY selection * configure.ac (NSIG_MINIMUM): OpenBSD doesn't have a broken SIGIO any more (bug#29170). Backport fix from the current OpenBSD port tree. 2021-08-09 Benjamin Riefenstahl Add test for nnrss * test/lisp/gnus/nnrss-tests.el (test-nnrss-xml): New test (bug#34685). 2021-08-09 Lars Ingebrigtsen Add a new test for dom-search 2021-08-09 Mattias Engdegård Fix variable binding in calendar (bug#49945) * lisp/calendar/cal-tex.el (cal-tex-week-hours, cal-tex-daily-page): Use `let*` instead of `let`. 2021-08-09 Mattias Engdegård Use string-search instead of string-match[-p] `string-search` is easier to understand, less error-prone, much faster, does not pollute the regexp cache, and does not mutate global state. Use it where applicable and obviously safe (erring on the conservative side). * admin/authors.el (authors-canonical-file-name) (authors-scan-change-log): * lisp/apropos.el (apropos-command) (apropos-documentation-property, apropos-symbols-internal): * lisp/arc-mode.el (archive-arc-summarize) (archive-zoo-summarize): * lisp/calc/calc-aent.el (math-read-factor): * lisp/calc/calc-ext.el (math-read-big-expr) (math-format-nice-expr, math-format-number-fancy): * lisp/calc/calc-forms.el (math-read-angle-brackets): * lisp/calc/calc-graph.el (calc-graph-set-range): * lisp/calc/calc-keypd.el (calc-keypad-press): * lisp/calc/calc-lang.el (tex, latex, math-read-big-rec): * lisp/calc/calc-prog.el (calc-fix-token-name) (calc-user-define-permanent, math-define-exp): * lisp/calc/calc.el (calc-record, calcDigit-key) (calc-count-lines): * lisp/calc/calcalg2.el (calc-solve-for, calc-poly-roots) (math-do-integral): * lisp/calc/calcalg3.el (calc-find-root, calc-find-minimum) (calc-get-fit-variables): * lisp/cedet/ede/speedbar.el (ede-tag-expand): * lisp/cedet/semantic/java.el (semantic-java-expand-tag): * lisp/cedet/semantic/sb.el (semantic-sb-show-extra) (semantic-sb-expand-group): * lisp/cedet/semantic/wisent/python.el (semantic-python-instance-variable-p): * lisp/cus-edit.el (get): * lisp/descr-text.el (describe-text-sexp): * lisp/dired-aux.el (dired-compress-file): * lisp/dired-x.el (dired-make-relative-symlink): * lisp/dired.el (dired-glob-regexp): * lisp/dos-fns.el (dos-convert-standard-filename, dos-8+3-filename): * lisp/edmacro.el (edmacro-format-keys): * lisp/emacs-lisp/eieio-opt.el (eieio-sb-expand): * lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar-object-expand): * lisp/emacs-lisp/lisp-mnt.el (lm-keywords-list): * lisp/emacs-lisp/warnings.el (display-warning): * lisp/emulation/viper-ex.el (viper-ex-read-file-name) (ex-print-display-lines): * lisp/env.el (read-envvar-name, setenv): * lisp/epa-mail.el (epa-mail-encrypt): * lisp/epg.el (epg--start): * lisp/erc/erc-backend.el (erc-parse-server-response): * lisp/erc/erc-dcc.el (erc-dcc-member): * lisp/erc/erc-speedbar.el (erc-speedbar-expand-server) (erc-speedbar-expand-channel, erc-speedbar-expand-user): * lisp/erc/erc.el (erc-send-input): * lisp/eshell/em-glob.el (eshell-glob-entries): * lisp/eshell/esh-proc.el (eshell-needs-pipe-p): * lisp/eshell/esh-util.el (eshell-convert): * lisp/eshell/esh-var.el (eshell-envvar-names): * lisp/faces.el (x-resolve-font-name): * lisp/ffap.el (ffap-file-at-point): * lisp/files.el (wildcard-to-regexp, shell-quote-wildcard-pattern): * lisp/forms.el (forms--update): * lisp/frameset.el (frameset-filter-unshelve-param): * lisp/gnus/gnus-art.el (article-decode-charset): * lisp/gnus/gnus-kill.el (gnus-kill-parse-rn-kill-file): * lisp/gnus/gnus-mlspl.el (gnus-group-split-fancy): * lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc) (gnus-inews-insert-gcc): * lisp/gnus/gnus-rfc1843.el (rfc1843-decode-article-body): * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output) (gnus-search--complete-key-data): * lisp/gnus/gnus-spec.el (gnus-parse-simple-format): * lisp/gnus/gnus-sum.el (gnus-summary-refer-article): * lisp/gnus/gnus-util.el (gnus-extract-address-components) (gnus-newsgroup-directory-form): * lisp/gnus/gnus-uu.el (gnus-uu-grab-view): * lisp/gnus/gnus.el (gnus-group-native-p, gnus-short-group-name): * lisp/gnus/message.el (message-check-news-header-syntax) (message-make-message-id, message-user-mail-address) (message-make-fqdn, message-get-reply-headers, message-followup): * lisp/gnus/mm-decode.el (mm-dissect-buffer): * lisp/gnus/nnheader.el (nnheader-insert): * lisp/gnus/nnimap.el (nnimap-process-quirk) (nnimap-imap-ranges-to-gnus-ranges): * lisp/gnus/nnmaildir.el (nnmaildir--ensure-suffix): * lisp/gnus/nnmairix.el (nnmairix-determine-original-group-from-path): * lisp/gnus/nnrss.el (nnrss-match-macro): * lisp/gnus/nntp.el (nntp-find-group-and-number): * lisp/help-fns.el (help--symbol-completion-table-affixation): * lisp/help.el (help-function-arglist): * lisp/hippie-exp.el (he-concat-directory-file-name): * lisp/htmlfontify.el (hfy-relstub): * lisp/ido.el (ido-make-prompt, ido-complete, ido-copy-current-word) (ido-exhibit): * lisp/image/image-converter.el (image-convert-p): * lisp/info-xref.el (info-xref-docstrings): * lisp/info.el (Info-toc-build, Info-follow-reference) (Info-backward-node, Info-finder-find-node) (Info-speedbar-expand-node): * lisp/international/mule-diag.el (print-fontset-element): * lisp/language/korea-util.el (default-korean-keyboard): * lisp/linum.el (linum-after-change): * lisp/mail/ietf-drums.el (ietf-drums-parse-address): * lisp/mail/mail-utils.el (mail-dont-reply-to): * lisp/mail/rfc2047.el (rfc2047-encode-1, rfc2047-decode-string): * lisp/mail/rfc2231.el (rfc2231-parse-string): * lisp/mail/rmailkwd.el (rmail-set-label): * lisp/mail/rmailsum.el (rmail-header-summary): * lisp/mail/smtpmail.el (smtpmail-maybe-append-domain) (smtpmail-user-mail-address): * lisp/mail/uce.el (uce-reply-to-uce): * lisp/man.el (Man-default-man-entry): * lisp/mh-e/mh-alias.el (mh-alias-gecos-name) (mh-alias-minibuffer-confirm-address): * lisp/mh-e/mh-comp.el (mh-forwarded-letter-subject): * lisp/mh-e/mh-speed.el (mh-speed-parse-flists-output): * lisp/mh-e/mh-utils.el (mh-collect-folder-names-filter) (mh-folder-completion-function): * lisp/minibuffer.el (completion--make-envvar-table) (completion-file-name-table, completion-flex-try-completion) (completion-flex-all-completions): * lisp/mpc.el (mpc--proc-quote-string, mpc-cmd-special-tag-p) (mpc-constraints-tag-lookup): * lisp/net/ange-ftp.el (ange-ftp-send-cmd) (ange-ftp-allow-child-lookup): * lisp/net/mailcap.el (mailcap-mime-types): * lisp/net/mairix.el (mairix-search-thread-this-article): * lisp/net/pop3.el (pop3-open-server): * lisp/net/soap-client.el (soap-decode-xs-complex-type): * lisp/net/socks.el (socks-filter): * lisp/nxml/nxml-outln.el (nxml-highlighted-qname): * lisp/nxml/rng-cmpct.el (rng-c-expand-name, rng-c-expand-datatype): * lisp/nxml/rng-uri.el (rng-uri-file-name-1): * lisp/obsolete/complete.el (partial-completion-mode) (PC-do-completion): * lisp/obsolete/longlines.el (longlines-encode-string): * lisp/obsolete/nnir.el (nnir-compose-result): * lisp/obsolete/terminal.el (te-quote-arg-for-sh): * lisp/obsolete/tpu-edt.el (tpu-check-search-case): * lisp/obsolete/url-ns.el (isPlainHostName): * lisp/pcmpl-unix.el (pcomplete/scp): * lisp/play/dunnet.el (dun-listify-string2, dun-get-path) (dun-unix-parse, dun-doassign, dun-cat, dun-batch-unix-interface): * lisp/progmodes/ebnf2ps.el: (ebnf-eps-header-footer-comment): * lisp/progmodes/gdb-mi.el (gdb-var-delete) (gdb-speedbar-expand-node, gdbmi-bnf-incomplete-record-result): * lisp/progmodes/gud.el (gud-find-expr): * lisp/progmodes/idlw-help.el (idlwave-do-context-help1): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode) (idlwave-shell-filter-hidden-output, idlwave-shell-filter): * lisp/progmodes/idlwave.el (idlwave-skip-label-or-case) (idlwave-routine-info): * lisp/progmodes/octave.el (inferior-octave-completion-at-point): * lisp/progmodes/sh-script.el (sh-add-completer): * lisp/progmodes/sql.el (defun): * lisp/progmodes/xscheme.el (xscheme-process-filter): * lisp/replace.el (query-replace-compile-replacement) (map-query-replace-regexp): * lisp/shell.el (shell--command-completion-data) (shell-environment-variable-completion): * lisp/simple.el (display-message-or-buffer): * lisp/speedbar.el (speedbar-dired, speedbar-tag-file) (speedbar-tag-expand): * lisp/subr.el (split-string-and-unquote): * lisp/tar-mode.el (tar-extract): * lisp/term.el (term-command-hook, serial-read-name): * lisp/textmodes/bibtex.el (bibtex-print-help-message): * lisp/textmodes/ispell.el (ispell-lookup-words, ispell-filter) (ispell-parse-output, ispell-buffer-local-parsing): * lisp/textmodes/reftex-cite.el (reftex-do-citation): * lisp/textmodes/reftex-parse.el (reftex-notice-new): * lisp/textmodes/reftex-ref.el (reftex-show-entry): * lisp/textmodes/reftex.el (reftex-compile-variables): * lisp/textmodes/tex-mode.el (tex-send-command) (tex-start-tex, tex-append): * lisp/thingatpt.el (thing-at-point-url-at-point): * lisp/tmm.el (tmm-add-one-shortcut): * lisp/transient.el (transient-format-key): * lisp/url/url-auth.el (url-basic-auth) (url-digest-auth-directory-id-assoc): * lisp/url/url-news.el (url-news): * lisp/url/url-util.el (url-parse-query-string): * lisp/vc/vc-cvs.el (vc-cvs-parse-entry): * lisp/wid-browse.el (widget-browse-sexp): * lisp/woman.el (woman-parse-colon-path, woman-mini-help) (WoMan-getpage-in-background, woman-negative-vertical-space): * lisp/xml.el: * test/lisp/emacs-lisp/check-declare-tests.el (check-declare-tests-warn): * test/lisp/files-tests.el (files-tests-file-name-non-special-dired-compress-handler): * test/lisp/net/network-stream-tests.el (server-process-filter): * test/src/coding-tests.el (ert-test-unibyte-buffer-dos-eol-decode): Use `string-search` instead of `string-match` and `string-match-p`. 2021-08-08 Alan Third * src/nsterm.m (max_used_fringe_bitmap): Remove unused variable. 2021-08-08 Tassilo Horn Un-obsolete dired-in-this-tree-p and use it again in certain places. This reverts parts of b425966b07, and 7b50ed553f, i.e. it reverts the obsoletion of dired-in-this-tree-p and switches some new callers of file-in-directory-p back to using dired-in-this-tree-p. It turned out that using file-in-directory-p can be a major performance regression in case you have a dired buffer of a remote directory which has become (almost) inaccessible. Any attempt to open a new dired buffer is checking if a buffer for that directory already exists (in terms of dired-buffers-for-dir) which meant that file-in-directory-p was called with the directory of any existing dired buffer including the inaccessible one where the file-truename call in file-in-directory-p could block for seconds or even minutes. * lisp/dired.el (dired-in-this-tree-p): Undo obsoletion. (dired-buffers-for-dir): Use dired-in-this-tree-p as before. * lisp/dired-aux.el (dired-kill-tree,dired-tree-down): Une dired-in-this-tree-p as before. 2021-08-08 Mattias Engdegård Use string-replace instead of replace-regexp-in-string `string-replace` is easier to understand, less error-prone, much faster, and results in shorter Lisp and byte code. Use it where applicable and obviously safe (erring on the conservative side). * admin/authors.el (authors-scan-change-log): * lisp/autoinsert.el (auto-insert-alist): * lisp/calc/calc-prog.el (calc-edit-macro-combine-alg-ent) (calc-edit-macro-combine-ext-command) (calc-edit-macro-combine-var-name): * lisp/calc/calc-units.el (math-make-unit-string): * lisp/calendar/cal-html.el (cal-html-comment): * lisp/calendar/cal-tex.el (cal-tex-comment): * lisp/calendar/icalendar.el (icalendar--convert-string-for-export) (icalendar--convert-string-for-import): * lisp/calendar/iso8601.el (iso8601--concat-regexps) (iso8601--full-time-match, iso8601--combined-match): * lisp/calendar/time-date.el (format-seconds): * lisp/calendar/todo-mode.el (todo-filter-items-filename): * lisp/cedet/cedet-files.el (cedet-directory-name-to-file-name) (cedet-file-name-to-directory-name): * lisp/comint.el (comint-watch-for-password-prompt): * lisp/dired-aux.el (dired-do-chmod): * lisp/dired-x.el (dired-man): * lisp/dired.el (dired-insert-directory, dired-goto-file-1): * lisp/emacs-lisp/comp.el (comp-c-func-name): * lisp/emacs-lisp/re-builder.el (reb-copy): * lisp/erc/erc-dcc.el (erc-dcc-unquote-filename): * lisp/erc/erc.el (erc-quit-reason-zippy, erc-part-reason-zippy) (erc-update-mode-line-buffer, erc-message-english-PART): * lisp/files.el (make-backup-file-name-1, files--transform-file-name) (read-file-modes): * lisp/fringe.el (fringe-mode): * lisp/gnus/gnus-art.el (gnus-button-handle-info-url): * lisp/gnus/gnus-group.el (gnus-group-completing-read): * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-ical): * lisp/gnus/gnus-mlspl.el (gnus-group-split-fancy): * lisp/gnus/gnus-search.el (gnus-search-query-parse-date) (gnus-search-transform-expression, gnus-search-run-search): * lisp/gnus/gnus-start.el (gnus-dribble-enter): * lisp/gnus/gnus-sum.el (gnus-summary-refer-article): * lisp/gnus/gnus-util.el (gnus-mode-string-quote): * lisp/gnus/message.el (message-put-addresses-in-ecomplete) (message-parse-mailto-url, message-mailto-1): * lisp/gnus/mml-sec.el (mml-secure-epg-sign): * lisp/gnus/mml-smime.el (mml-smime-epg-verify): * lisp/gnus/mml2015.el (mml2015-epg-verify): * lisp/gnus/nnmaildir.el (nnmaildir--system-name) (nnmaildir-request-list, nnmaildir-retrieve-groups) (nnmaildir-request-group, nnmaildir-retrieve-headers): * lisp/gnus/nnrss.el (nnrss-node-text): * lisp/gnus/spam-report.el (spam-report-gmane-internal) (spam-report-user-mail-address): * lisp/ibuffer.el (name): * lisp/image-dired.el (image-dired-pngnq-thumb) (image-dired-pngcrush-thumb, image-dired-optipng-thumb) (image-dired-create-thumb-1): * lisp/info.el (Info-set-mode-line): * lisp/international/mule-cmds.el (describe-language-environment): * lisp/mail/rfc2231.el (rfc2231-parse-string): * lisp/mail/rfc2368.el (rfc2368-parse-mailto-url): * lisp/mail/rmail.el (rmail-insert-inbox-text) (rmail-simplified-subject-regexp): * lisp/mail/rmailout.el (rmail-output-body-to-file): * lisp/mail/undigest.el (rmail-digest-rfc1153): * lisp/man.el (Man-default-man-entry): * lisp/mouse.el (minor-mode-menu-from-indicator): * lisp/mpc.el (mpc--debug): * lisp/net/browse-url.el (browse-url-mail): * lisp/net/eww.el (eww-update-header-line-format): * lisp/net/newst-backend.el (newsticker-save-item): * lisp/net/rcirc.el (rcirc-sentinel): * lisp/net/soap-client.el (soap-decode-date-time): * lisp/nxml/rng-cmpct.el (rng-c-literal-2-re): * lisp/nxml/xmltok.el (let*): * lisp/obsolete/nnir.el (nnir-run-swish-e, nnir-run-hyrex) (nnir-run-find-grep): * lisp/play/dunnet.el (dun-doassign): * lisp/play/handwrite.el (handwrite): * lisp/proced.el (proced-format-args): * lisp/profiler.el (profiler-report-header-line-format): * lisp/progmodes/gdb-mi.el (gdb-mi-quote): * lisp/progmodes/make-mode.el (makefile-bsdmake-rule-action-regex) (makefile-make-font-lock-keywords): * lisp/progmodes/prolog.el (prolog-guess-fill-prefix): * lisp/progmodes/ruby-mode.el (ruby-toggle-string-quotes): * lisp/progmodes/sql.el (sql-remove-tabs-filter, sql-str-literal): * lisp/progmodes/which-func.el (which-func-current): * lisp/replace.el (query-replace-read-from) (occur-engine, replace-quote): * lisp/select.el (xselect--encode-string): * lisp/ses.el (ses-export-tab): * lisp/subr.el (shell-quote-argument): * lisp/term/pc-win.el (msdos-show-help): * lisp/term/w32-win.el (w32--set-selection): * lisp/term/xterm.el (gui-backend-set-selection): * lisp/textmodes/picture.el (picture-tab-search): * lisp/thumbs.el (thumbs-call-setroot-command): * lisp/tooltip.el (tooltip-show-help-non-mode): * lisp/transient.el (transient-format-key): * lisp/url/url-mailto.el (url-mailto): * lisp/vc/log-edit.el (log-edit-changelog-ours-p): * lisp/vc/vc-bzr.el (vc-bzr-status): * lisp/vc/vc-hg.el (vc-hg--glob-to-pcre): * lisp/vc/vc-svn.el (vc-svn-after-dir-status): * lisp/xdg.el (xdg-desktop-strings): * test/lisp/electric-tests.el (defun): * test/lisp/term-tests.el (term-simple-lines): * test/lisp/time-stamp-tests.el (formatz-mod-del-colons): * test/lisp/wdired-tests.el (wdired-test-bug32173-01) (wdired-test-unfinished-edit-01): * test/src/json-tests.el (json-parse-with-custom-null-and-false-objects): Use `string-replace` instead of `replace-regexp-in-string`. 2021-08-08 Eli Zaretskii Another fix for parse-colon-path * test/lisp/files-tests.el (files-tests-bug-21454, files-colon-path): Adapt to change in behavior of 'parse-colon-path'. * lisp/files.el (parse-colon-path): Don't expand the directory names: that changes the names in ways this function is not supposed to. (Bug#49918) 2021-08-08 Michael Albinus Doc update wrt Tramp support of SSH security keys * doc/misc/tramp.texi (Frequently Asked Questions): Speak about SSH security keys. (GVFS-based methods, Predefined connection information) (Remote shell setup): Fix typo. * etc/NEWS: Precise Tramp's support for SSH security keys. Fix typos. 2021-08-08 Dmitry Gutov project.el: Bump the version * lisp/progmodes/project.el: Bump the version. 2021-08-07 Eric Abrahamsen Further fix to filtering Gnus search group names * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Group names in the GROUPS argument may be prefixed or not, depending on which server we're searching, so always enforce prefix policy within the function. 2021-08-07 Eli Zaretskii Fix files-tests broken on MS-Windows by a recent change * test/lisp/files-tests.el (files-colon-path): Use path-separator, and account for drive letters in absolute file names on MS-Windows. (Bug#49918) 2021-08-07 Lars Ingebrigtsen Fix prin1 problem in package-quickstart-refresh * lisp/emacs-lisp/package.el (package-quickstart-refresh): Bind print-length/print-level before using prin1-to-string (bug#49924). 2021-08-07 Lars Ingebrigtsen Fix print-length issue in comp-run-async-workers * lisp/emacs-lisp/comp.el (comp-run-async-workers): Bind print-length/print-level to ensure there's no truncation (bug#49922). 2021-08-07 Lars Ingebrigtsen Make `q' in `org-agenda' work even with `debug-on-error' set * lisp/org/org-agenda.el (org-agenda-get-restriction-and-command): Using `error' here will trigger users with `debug-on-error' so use `user-error' instead (bug#49920). It would probably be preferable to rewrite this to not use the error system to do control flow. 2021-08-07 Lars Ingebrigtsen Fix problem with relative directories in CDPATH * lisp/files.el (parse-colon-path): Allow relative directories (like ".") in CDPATH (bug#49918). 2021-08-07 Tomasz Konojacki (tiny change) perl-mode: fix variable fontification * lisp/progmodes/perl-mode.el: Handle variables first to avoid conflicting with keywords. This fixes cases like "$package" (bug#49906). 2021-08-07 Lars Ingebrigtsen Allow building on MacOS with MacPorts and libgccjit * configure.ac: Check for the "port" command (MacPorts). Add the required lib/include directories for nativecomp. * src/Makefile.in (LIBGCCJIT_CFLAGS, LIBGCCJIT_LIBS): Split into two parts to allow including -L/-I for MacPorts. (LIBES): Adjust. (EMACS_CFLAGS): Ditto. 2021-08-06 Philip Kaludercic Add new option rcirc-channel-filter * lisp/net/rcirc.el (rcirc-channel-filter): Add option (rcirc-short-buffer-name): Respect rcirc-channel-filter (rcirc-handler-JOIN): Respect rcirc-channel-filter (rcirc-handler-PART): Respect rcirc-channel-filter (rcirc-handler-KICK): Respect rcirc-channel-filter (rcirc-handler-QUIT): Respect rcirc-channel-filter (rcirc-handler-INVITE): Respect rcirc-channel-filter 2021-08-06 Philip Kaludercic Add new option rcirc-track-abbrevate-flag * lisp/net/rcirc.el (rcirc-track-abbrevate-flag): Add option (rcirc-short-buffer-name): Respect rcirc-track-abbrevate-flag 2021-08-06 Glenn Morris Merge from origin/emacs-27 b77f6af24e (origin/emacs-27) ERC right stamps: also use latest buffer... # Conflicts: # lisp/erc/erc-stamp.el 2021-08-06 dickmao Improve ffap-ido-mode test * test/lisp/ffap-tests.el (ffap-ido-mode): Actually test `ido-everywhere' at run time, not compile time (bug#49895). 2021-08-06 dick r. chiang Fix problem with occasional stalls in `url-retrieve-synchronously' * lisp/url/url.el (url-retrieve-synchronously): Use `accept-process-output' on a null process. That is the safer, more conventional way of achieving non-blocking sleep-for (bug#49897). Also rewrite for greater readability. 2021-08-06 Lars Ingebrigtsen Mention NonGNU in "Package Archives" node in the manual * doc/lispref/package.texi (Package Archives): Mention NonGNU, too (bug#49899). 2021-08-06 Dmitry Gutov Add colon-space after prompt * lisp/progmodes/project.el (project--completing-read-strict): Fix last change's regression (bug#49865). 2021-08-06 Eli Zaretskii Fix automatic hscrolling when line numbers are displayed * src/xdisp.c (hscroll_window_tree): When line numbers are displayed, account for the the line-number space when calculating the desired X coordinate on the left. (Bug#49891) 2021-08-06 Eli Zaretskii Improve wording of recently changed documentation * src/minibuf.c (syms_of_minibuf): * lisp/minibuffer.el (minibuffer-restore-windows): * lisp/progmodes/etags.el (etags-xref-prefer-current-file): Improve wording of doc strings. * etc/NEWS: Improve wording and format of recently added entries. 2021-08-06 Eli Zaretskii Make sure installed *.eln files have correct permissions * Makefile.in (install-eln): Add "umask 022" to ensure the *.eln files are accessible from the user's Emacs session. Suggested by Wilhelm Kirschbaum . (Bug#49864) 2021-08-06 Olivier Certner ERC right stamps: also use latest buffer's window's width (Bug#44140) * lisp/erc/erc-stamp.el (erc-insert-timestamp-right): Use latest buffer's window's width to position the timestamp, if both `erc-timestamp-right-column' and `erc-fill-column' are not set (or `erc-fill-mode' is off). This is what the documentation says, but was not implemented. Also fix the bug of using selected window's width instead of the (or some) window showing the buffer. The latest window's width is saved in `erc-timestamp-last-window-width' and used when the buffer is no more shown. In case the buffer was never shown, which I'm not sure can happen, either use `fill-column' if set, or give up on aligning and just output the timestamp (modulo the kludge) right after message text. While here, fix the off by one calculation of point start when the reference is the window's width. 2021-08-06 Dmitry Gutov Change how project-find-file's completion works * lisp/progmodes/project.el (project--completing-read-strict): Allow to choose a non-existent file, with confirmation (bug#49204). Don't use the string at point as a "real" default, and instead only include it in "future history": meaning, it will be inserted on 'M-n' (bug#49865). 2021-08-06 Dmitry Gutov New option etags-xref-prefer-current-file * lisp/progmodes/etags.el (etags-xref-prefer-current-file): New user option (bug#2544). (xref-backend-definitions): Use it. 2021-08-06 Dmitry Gutov Provide a default for xref-find-apropos pattern * lisp/progmodes/xref.el (xref-find-apropos): Provide a default for the pattern (bug#49731). 2021-08-06 Dmitry Gutov Change the xref-goto-xref error message * lisp/progmodes/xref.el (xref-goto-xref): Change the error message (bug#49846). 2021-08-06 Juri Linkov Add function minibuffer-restore-windows (bug#45072) * lisp/minibuffer.el (minibuffer-restore-windows): New function that removes the completions buffer. Add it to minibuffer-exit-hook. * src/minibuf.c (read-minibuffer-restore-windows): Mention minibuffer-restore-windows. 2021-08-05 Konstantin Kharlamov Reset mtime of a buffer reverted "delicately" * lisp/files.el (revert-buffer-insert-file-contents-delicately): Once buffer is reverted, reset its mtime to that of the file. (Bug#49893) 2021-08-05 Eli Zaretskii Fix files-tests on non-Posix systems * test/lisp/files-tests.el (files-test-auto-save-name-default) (files-test-auto-save-name-transform) (files-test-auto-save-name-unique, files-test-lock-name-default) (files-test-lock-name-unique): Skip the drive letter in absolute file names on MS-Windows/MS-DOS when comparing file names against the expected ones. (files-tests-file-name-non-special--subprocess): Skip test on MS-Windows/MS-DOS. 2021-08-05 Mattias Engdegård Cease attempts to const-propagate through setq The current method of propagating constants through setq was unsound because it relied on each setq form only being traversed at most once during optimisation, which isn't necessarily true in general; it could be made to miscompile code in rare cases. Since it was only used in limited circumstances, disabling this optimisation doesn't cost us much. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't update the known value when traversing `setq`. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test case. 2021-08-05 Lars Ingebrigtsen Fix M-n description in refcards * etc/refcards/pl-refcard.tex (section{Szukanie przyrostowe}): Ditto (in comments). * etc/refcards/refcard.tex (section{Incremental Search}): Fix M-n description (bug#49872). 2021-08-05 Roland Winkler Add support for the oauth2.el library in nnimap and smtpmail * doc/misc/gnus.texi (Customizing the IMAP Connection): * doc/misc/smtpmail.texi (Authentication): Mention it. * lisp/gnus/nnimap.el (nnimap-login): Support oauth2. * lisp/mail/smtpmail.el (smtpmail-try-auth-method): New function for oauth2. 2021-08-05 Glenn Morris * lisp/cus-start.el (read-minibuffer-restore-windows): Fix entry. 2021-08-04 Juri Linkov * lisp/vc/smerge-mode.el (smerge-mode-menu): Add menu item for smerge-refine. 2021-08-04 dickmao Package archive location needs to be absolute filename * lisp/emacs-lisp/package.el (package--with-response-buffer-1): Actually check that URL is absolute (bug#49788). 2021-08-04 Lars Ingebrigtsen Add a new thing-at-point type: existing-filename * doc/lispref/text.texi (Buffer Contents): Mention it. * lisp/thingatpt.el (thing-at-point-file-at-point): New function. (existing-filename): Register it. 2021-08-04 Lars Ingebrigtsen Make `M-j' work reliably if `comment-auto-fill-only-comments' is set * lisp/simple.el (default-indent-new-line): Force breaking the line when called interactively (bug#49849). (Perhaps the interactive command should be rebound and call this function instead...) 2021-08-04 Lars Ingebrigtsen Improve `define-globalized-minor-mode' doc strings * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Copy the description from easy-mmode--arg-docstring (bug#49843). 2021-08-04 dickmao ffap ido accommodation Now that ffap-file-finder can be ido-find-file, the noninteractive portion of find-file-at-point cannot assume ffap-file-finder always takes an argument (ido-find-file does not). * lisp/ffap.el (find-file-at-point): Do not call ffap-file-finder. * test/lisp/ffap-tests.el (ffap-ido-mode): Test it. 2021-08-04 Miha Rihtaršič Use `abort-minibuffers' in delsel * lisp/delsel.el (minibuffer-keyboard-quit): Use `abort-minibuffers' (bug#49821). Previously, C-g was bound to abort-recursive-edit, now it is bound to abort-minibuffers. However, after requiring delsel, it gets bound to minibuffer-keyboard-quit, which still uses abort-recursive-edit. Use the new function instead. 2021-08-04 martin rudalics Add new user option 'read-minibuffer-restore-windows' * doc/lispref/minibuf.texi (Text from Minibuffer): Document it (bug#45072). * lisp/cus-start.el (standard): Add. * src/minibuf.c (syms_of_minibuf): New variable 'read-minibuffer-restore-windows'. 2021-08-04 Lars Ingebrigtsen Update outdated Gnus information * doc/misc/gnus.texi (History): Update information. 2021-08-04 Lars Ingebrigtsen Fix apparent typo in new cl-generic-tests.el test case 2021-08-04 Stefan Monnier * lisp/emacs-lisp/cl-generic.el (cl-generic-generalizers): Don't emit warning Also remove "WARNING" annotations after confirming that he code was right. 2021-08-04 akater Evaluate eql specializers * lisp/emacs-lisp/cl-generic.el (cl-generic-generalizers): Evaluate forms that are eql specializers. Provide backward compatibility with a warning. * test/lisp/emacs-lisp/cl-generic-tests.el: Add a test. * lisp/emacs-lisp/bindat.el (bindat--type): Adhere to the new rule. * lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Adhere to the new rule. * lisp/emacs-lisp/map.el (map-into): Adhere to the new rule. * lisp/emacs-lisp/radix-tree.el (map-into): Adhere to the new rule. * lisp/frame.el (cl-generic-define-context-rewriter): Adhere to the new rule. * lisp/gnus/gnus-search.el (gnus-search-transform-expression): Adhere to the new rule. * lisp/image/image-converter.el (image-converter--probe image-converter--convert): Adhere to the new rule. * lisp/mail/smtpmail.el (smtpmail-try-auth-method): Adhere to the new rule. * lisp/progmodes/elisp-mode.el (xref-backend-definitions) (xref-backend-apropos): Adhere to the new rule. * lisp/progmodes/etags.el (xref-backend-identifier-at-point) (xref-backend-identifier-completion-table) (xref-backend-identifier-completion-ignore-case) (xref-backend-definitions)(xref-backend-apropos): Adhere to the new rule. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-cl-defmethod-with-types-ok) (checkdoc-cl-defmethod-qualified-ok) (checkdoc-cl-defmethod-with-extra-qualifier-ok): Adhere to the new rule. * etc/NEWS: Describe the change. 2021-08-03 Michael Albinus Code cleanup for Tramp's yubikey integration * lisp/net/tramp-sh.el (tramp-actions-before-shell) (tramp-actions-copy-out-of-band): Use `tramp-security-key-confirm-regexp'. * lisp/net/tramp.el (tramp-security-key-confirm-regexp): Rename from `tramp-yubikey-regexp'. Adapt docstring. (tramp-security-key-confirmed-regexp): New defcustom. (tramp-action-show-and-confirm-message): Redisplay. Use `tramp-security-key-confirmed-regexp'. 2021-08-03 Lars Ingebrigtsen file-name-concat is not error free * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Declare file-name-concat as side-effect free. 2021-08-03 Lars Ingebrigtsen Declare file-name-concat as side-effect free * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Declare file-name-concat as side-effect (and error) free. 2021-08-03 Mattias Engdegård Remove ineffective expression in verilog-mode * lisp/progmodes/verilog-mode.el (verilog-set-auto-endcomments): Remove expression that now elicits a byte-compiler warning. 2021-08-03 Mattias Engdegård Declare `match-beginning` and `match-end` as side-effect-free * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add functions. 2021-08-03 Phil Sainty Merge branch 'scratch/so-long' 2021-08-03 Phil Sainty Make `global-so-long-mode' use `buffer-line-statistics' * lisp/so-long.el: (so-long-statistics-excessive-p): New predicate function using `buffer-line-statistics'. (so-long-predicate): Use `so-long-statistics-excessive-p' by default. * etc/NEWS: Describe changes. * test/lisp/so-long-tests/so-long-tests-helpers.el: * test/lisp/so-long-tests/so-long-tests.el: Update tests. Also improve the existing `so-long-tests-predicate' tests. 2021-08-03 Phil Sainty Support 'preserved' variables and minor modes in `so-long-mode' The default values support preserving the state of `view-mode' when switching to (and reverting from) `so-long-mode' (bug#45084). * lisp/so-long.el (so-long-mode-preserved-variables) (so-long-mode-preserved-minor-modes): New user options. (so-long-mode-maintain-preserved-variables) (so-long-mode-maintain-preserved-minor-modes): New functions. (so-long-remember-all, so-long-after-change-major-mode) (so-long-mode-revert): Use them. * etc/NEWS: Describe changes. * test/lisp/so-long-tests/so-long-tests-helpers.el: * test/lisp/so-long-tests/so-long-tests.el: Update tests. 2021-08-03 Phil Sainty * lisp/so-long.el (so-long-minor-modes): Additional modes to disable 2021-08-03 Phil Sainty Make `global-so-long-mode' handle unrecognised file types * lisp/so-long.el (so-long-target-modes): Add `fundamental-mode' * etc/NEWS: Describe changes. This doesn't affect buffers which are simply in `fundamental-mode' by default. It only affects buffers for which `set-auto-mode' has been called (normally via `find-file') without establishing a different major mode. 2021-08-03 Phil Sainty Increase `so-long-threshold' and `so-long-max-lines' defaults * lisp/so-long.el (so-long-threshold, so-long-max-lines): Increase default values to reduce false-positives. * etc/NEWS: Describe changes. Lines shorter than 10,000 characters shouldn't generally be causing problems, so testing this explicitly will largely eliminate false-positives. We must also increase the maximum number of lines to check, because 'minified' code may still include newlines, and so there may be many lines shorter than the new threshold before we find a line which exceeds it. Previously we used a minimum-effort heuristic, testing a very small number of lines against a maximum length which, while not remotely long enough to cause problems, would nevertheless be uncommon in any normal file of programming code (and hence indicative that the file was likely to be minified code). Testing indicates that the performance penalty for the larger values should be negligible. 2021-08-03 Jimmy Yuen Ho Wong * Fix error while disassembling native code on macOS * lisp/emacs-lisp/disass.el (disassemble-internal): Make sure the regexp that searches for a symbol takes into account of llvm-objdump's output format. 2021-08-03 Juri Linkov Improve handling of context menus for global, local, minor-mode menus * lisp/mouse.el (context-menu-global, context-menu-local, context-menu-minor): Better handling of possibly nested menu maps. 2021-08-03 Amin Bandali Merge from origin/emacs-27 75ecce4323 Unbreak ERC's Ibuffer filter (Bug#44100) 2021-08-03 Olivier Certner Unbreak ERC's Ibuffer filter (Bug#44100) * lisp/erc/erc-ibuffer.el (erc-modified): Don't use `length' on dotted lists (and not even to test if there is more than one element, for that matter). Use `cdr' instead. 2021-08-03 Juri Linkov Adjust tab-bar to the new mode-line-misc-info value (bug#49806) * lisp/tab-bar.el (tab-bar--define-keys): Adjust to the new default value for `mode-line-misc-info'. 2021-08-02 Stephen Gildea mh-junk: adjust messages for allow/block actions * lisp/mh-e/mh-junk.el: Remove messages that get overwritten quickly. Keep messages that give status for slow operations. Add information that might be useful for debugging failures. 2021-08-02 Stefan Monnier * lisp/mwheel.el: Don't use `custom-initialize-delay`. Set up the keybindings when loading the file. (mouse-wheel--installed-bindings-alist): Move to beginning. (mouse-wheel-change-button): Don't update bindings when they're not installed. (mouse-wheel--setup-bindings): New function extracted from `mouse-wheel-mode`. (): Call it when loading the file. (mouse-wheel-mode): Use the default :initializer. 2021-08-02 Stefan Monnier * lisp/progmodes/flymake.el (flymake--mode-line-title): Don't quote lambda 2021-08-01 Juri Linkov * lisp/progmodes/project.el (project-switch-project): Use 'let*' (bug#49635). This allows overriding-local-map to have effect on read-key-sequence. 2021-08-01 Juri Linkov * lisp/help-mode.el (help-mode-context-menu): New function. (help-mode): Use it. 2021-08-01 Juri Linkov * lisp/emacs-lisp/autoload.el (autoload--make-defs-autoload): Display warning. https://lists.gnu.org/archive/html/emacs-devel/2021-08/msg00007.html 2021-08-01 Mattias Engdegård Make dlet work like let, not let* Change `dlet` so that it has binding semantics like `let` because that is what a user would expect and it allows a corresponding `dlet*` to be added later should the need arise. Fortunately the change has no effect where it is currently used. * lisp/subr.el (dlet): Work like let. * lisp/calendar/cal-bahai.el (calendar-bahai-date-string): * lisp/calendar/cal-coptic.el (calendar-coptic-date-string): * lisp/calendar/cal-dst.el (calendar-time-zone-daylight-rules) (calendar-dst-starts, dst-in-effect): * lisp/calendar/cal-persia.el (calendar-persian-date-string): * lisp/calendar/calendar.el (calendar-dlet, calendar-generate-month) (calendar-update-mode-line, calendar-date-string): * lisp/calendar/diary-lib.el (diary-list-entries-2) (diary-list-entries, diary-mark-entries-1, diary-sexp-entry) (diary-remind, diary-font-lock-date-forms, diary-fancy-date-pattern): * lisp/calendar/holidays.el (holiday-sexp): * lisp/calendar/icalendar.el (icalendar--convert-float-to-ical): * lisp/calendar/solar.el (solar-time-string): * lisp/calendar/todo-mode.el (todo-date-pattern) (todo-edit-item--header, todo-convert-legacy-date-time) (todo-read-date): Rename `calendar-dlet*` to `calendar-dlet` since it uses `dlet`. 2021-08-01 Mattias Engdegård Indicate selected occur target with fringe arrow * lisp/replace.el (occur--set-arrow): New function. (occur-mode-goto-occurrence) (occur-mode-goto-occurrence-other-window) (occur-mode-display-occurrence): Call it. * etc/NEWS: Announce. 2021-08-01 Juri Linkov * lisp/filecache.el: Fix cycling (bug#49761). (file-cache-cycle): Refactor from file-cache-minibuffer-complete. (file-cache-minibuffer-complete): Use file-cache-cycle in 2 old places, and in 1 following new place. When last-command is equal to this-command, use file-cache-cycle to continue cycling the previous completion as long as the user continues typing C-TAB. Also when displaying a list of completions, don't try to move point to the common prefix. 2021-08-01 Kévin Le Gouguec Extend Gnus summary highlight faces by default * lisp/gnus/gnus.el (gnus-summary-selected): (gnus-summary-normal-ancient): (gnus-summary-normal-undownloaded): (gnus-summary-normal-unread): (gnus-summary-normal-read): Set :extend attribute. 2021-08-01 Lars Ingebrigtsen Adjust the fully qualified host name when nothing is set * doc/misc/message.texi (News Headers): Adjust index. * lisp/gnus/message.el (message-check-news-header-syntax): Adjust check. (message-make-fqdn): Be less hilarious. 2021-07-31 Lars Ingebrigtsen Fix `u' binding in Gnus Browse mode * lisp/gnus/gnus-srvr.el (gnus-browse-mode-map): Bind to `gnus-browse-toggle-subscription-at-point', which is the command. 2021-07-31 Mattias Engdegård Occur-mode multi-line match property gap filling When an occur-mode regexp matches across multiple lines, the spacing prefixes inserted between each did not have the `occur-target` property which is essential for jumping to the corresponding place in the target buffer. This prevented next-error and previous-error from working. * lisp/replace.el (occur-engine): Put the `occur-target` property on the continuation prefix to avoid the gap. 2021-07-31 Mattias Engdegård * etc/NEWS: Mention occur-mode highlight changes. 2021-07-31 Lars Ingebrigtsen C-x 5 5 manual tweak * doc/emacs/frames.texi (Creating Frames): Mention other-frame-prefix function name. 2021-07-31 Lars Ingebrigtsen Update NEWS tagging for a couple entries 2021-07-31 Lars Ingebrigtsen Add an index entry for outline-minor-mode-cycle * doc/emacs/text.texi (Outline Mode): Document outline-minor-mode-cycle. 2021-07-31 Lars Ingebrigtsen Document outline-minor-mode-cycle in the manual. * doc/emacs/text.texi (Outline Mode): Document outline-minor-mode-cycle. 2021-07-31 Lars Ingebrigtsen Make `ffap-read-file-or-url' work again (to read URLs) * lisp/ffap.el (ffap--url-file-handler): New function (bug#44822). (ffap-read-file-or-url): Use it to allow switching between URLs and files. 2021-07-31 Lars Ingebrigtsen Add new user option python-forward-sexp-function * lisp/progmodes/python.el (python-forward-sexp-function): New user option (bug#41361). (python-mode): Use it. 2021-07-31 Lars Ingebrigtsen Adjust how `replace-match' runs modification hooks * src/editfns.c (Fsubst_char_in_region) (Ftranslate_region_internal): * src/cmds.c (internal_self_insert): Update callers. * src/insdel.c (replace_range): Allow inhibiting signal_after_change/update_compositions. * src/lisp.h: Update. * src/search.c (Freplace_match): Run the modification hooks at the end instead of before adjusting point (bug#42424). 2021-07-31 Lars Ingebrigtsen Extend whitespace-empty to the end of the line * lisp/whitespace.el (whitespace-empty): Restore Emacs 26 look by extending the face (bug#42112). 2021-07-31 Lars Ingebrigtsen Revert "Fix `speedbar-directory-buttons' when using Tramp" This reverts commit 5afad3918bc8816b74e8efcff9cc441785446aa6. This patch can't possibly be correct, and it breaks the stated interface. 2021-07-31 Lars Ingebrigtsen Revert "Allow nil initializers in define-minor-mode" This reverts commit 02cbb37de73d563149389615ee44741322007108. This was mistakenly committed and doesn't really make much sense. 2021-07-31 Lars Ingebrigtsen Don't bind and RET in *Help* buffers * lisp/help-mode.el (help-mode-map): Remove key bindings for RET and (bug#49784). (help-xref-stack, help-xref-forward-stack, help-xref-stack-item) (help-make-xrefs): Fix doc strings -- these aren't used by `help-follow', but by `help-follow-symbol'. (help-follow-mouse, help-follow): Make obsolete. 2021-07-31 Lars Ingebrigtsen Allow nil initializers in define-minor-mode * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Make the meaning of :initialize nil and a missing :initialize the same. 2021-07-31 Alan Third Fix some macOS problems * src/nsmenu.m (update_frame_tool_bar): Make sure the toolbar isn't displayed when it's not supposed to be. * src/nsterm.m ([EmacsView layoutSublayersOfLayer:]): Reinstate code intended to prevent a crash when running redisplay. 2021-07-31 Alan Third Move parent frame setting code into EmacsWindow * src/nsterm.m (ns_make_frame_visible): (ns_set_parent_frame): ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Use new method. ([EmacsWindow setParentChildRelationships]): New method. 2021-07-31 Alan Third Move NS port toolbar handling to the window * src/nsmenu.m (free_frame_tool_bar): (update_frame_tool_bar): Remove wait_for_tool_bar and get the toolbar from the window. * src/nsterm.h (EmacsView): Remove toolbar and wait_for_tool_bar. * src/nsterm.m (ns_update_begin): ([EmacsView windowDidEnterFullScreen]): ([EmacsView windowDidExitFullScreen]): Get the toolbar from the window, not the view. ([EmacsView dealloc]): Remove toolbar from view. ([EmacsView createToolbar:]): Move method to EmacsWindow. ([EmacsView initFrameFromEmacs:]): Don't create toolbar here any more. ([EmacsView toolbar]): Remove method. ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): Create toolbar here. ([EmacsWindow createToolbar:]): Moved from EmacsView. ([EmacsWindow dealloc]): Make sure we clean up the toolbar after closing the window. 2021-07-31 Alan Third Fix macOS live resize drawing * src/nsterm.m ([EmacsView layout]): ([EmacsView layoutSublayersOfLayer:]): Rename layout to layoutSublayersOfLayer. 2021-07-31 Alan Third Change NS port resize detection * src/nsterm.m ([EmacsView windowDidResize:]): Remove function, it's not performing a useful function any more. ([EmacsView viewDidResize]): ([EmacsView resizeWithOldSuperviewSize:]): Replace viewDidResize with resizeWithOldSuperviewSize. ([EmacsView initFrameFromEmacs:]): Remove the view resize notification as we don't need it any more. 2021-07-31 Alan Third Tidy up NS port OS window handling * src/nsterm.h (EmacsWindow): Move above EmacsView definition and add new method definitions. (EmacsView): Remove redundant bwidth variable, and change NSWindow to EmacsWindow. (EmacsFSWindow): Delete definition. * src/nsterm.m (ns_set_undecorated): Rewrite to work in GNUstep using the new OS window creating methods. ([EmacsView initFrameFromEmacs:]): Move all NSWindow related code to new init method in EmacsWindow, and use said method. ([EmacsView toggleFullScreen:]): Use EmacsWindow instead of NSWindow. ([EmacsWindow initWithEmacsFrame:]): ([EmacsWindow initWithEmacsFrame:fullscreen:screen:]): ([EmacsWindow borderWidth]): New methods. (EmacsFSWindow): Remove implementation. 2021-07-31 Alan Third Simplify macOS drawing code Convert EmacsSurface into a CALayer subclass so we can use the built-in relationships. Also simplify the macOS versioning code. This will result in more warnings on older versions of macOS but makes reading the code easier. * configure.ac: Add QuartzCore framework. * src/nsterm.h (NS_DRAW_TO_BUFFER): Remove define and all references. (EmacsSurface, EmacsLayer): Rename EmacsSurface to EmacsLayer and modify the definition to fit the new function. * src/nsterm.m (ns_update_begin): (ns_update_end): (ns_focus): (ns_unfocus): Use the new overridden lockFocus and unlockFocus and simplify the frame management. ([EmacsView dealloc]): ([EmacsView viewDidResize:]):Don't explicitly release surfaces. ([EmacsView initFrameFromEmacs:]): Move the layer code to after the NSWindow has been created as creating the layer now relies on some of it's properties. ([EmacsView makeBackingLayer]): New function. ([EmacsView lockFocus]): ([EmacsView focusOnDrawingBuffer]): Rename to lockFocus. ([EmacsView unlockFocus]): ([EmacsView unfocusDrawingBuffer]): Rename to unlockFocus. ([EmacsView windowDidChangeBackingProperties]): Don't explicitly release surfaces but reset EmacsLayer properties. ([EmacsView layout]): ([EmacsView viewWillDraw]): Rename to layout. ([EmacsView wantsUpdateLayer]): Remove function and change all callers to [EmacsView wantsLayer]. (EmacsSurface, EmacsLayer): Rename to EmacsLayer. ([EmacsSurface getSize]): ([EmacsSurface initWithSize:ColorSpace:Scale:]): Remove methods. ([EmacsSurface initWithColorSpace:]): ([EmacsLayer checkDimensions]): ([EmacsLayer releaseSurfaces]): ([EmacsLayer display]): New functions. * src/nsterm.m ([EmacsLayer dealloc]): Use releaseSurfaces. ([EmacsSurface getContext]): Automatically detect frame property changes and clear the cache if required. Use built-in CALayer properties where available. ([EmacsLayer copyContentsTo:]): Use [CALayer contents] as source. 2021-07-31 Eli Zaretskii * src/fontset.c (check_fontset_name): A better fix for bug#49782. 2021-07-30 Adam Porter * lisp/emacs-lisp/cl-macs.el: Add cl-type pattern * lisp/emacs-lisp/cl-macs.el: ((pcase-defmacro type)): Add 'cl-type' pattern. * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-cl-type): Add test. * doc/lispref/control.texi (pcase Macro): Update manual. With thanks to Stefan Monnier and Eli Zaretskii for their guidance. 2021-07-30 Eli Zaretskii * src/fontset.c (check_fontset_name): Fix last change. 2021-07-30 Eli Zaretskii Avoid segfault when set-fontset-font is called from non-GUI frames * src/fontset.c (check_fontset_name): Avoid crashes if this is called from a non-GUI frame. (Bug#49782) 2021-07-30 Michael Albinus Change Tramp version to "2.5.2-pre" * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.5.2-pre". 2021-07-30 Dmitry Gutov Make fileloop skip missing files * lisp/fileloop.el (fileloop-next-file): If a file doesn't exist, skip to the next one (bug#44979). 2021-07-30 Maxim Nikulin (tiny change) Tweak previous mailcap-view-file change * lisp/net/mailcap.el (mailcap-view-file): Remove the :noquery t mistakenly added (bug#12972). 2021-07-30 k3tu0isui (tiny change) Fix problem when switching between different prolog versions * lisp/progmodes/prolog.el (run-prolog): Make switching between different prolog systems work more reliably (bug#45795). * lisp/progmodes/prolog.el (prolog-ensure-process): Don't start a new process if one already exists. 2021-07-30 Mattias Engdegård Simplify lexical let-optimisations Ensure in cconv that let-bindings have the normal form (VAR EXPR) where VAR is a valid variable name, so that we don't need to keep re-checking this all the time in the optimiser. * lisp/emacs-lisp/byte-opt.el (byte-optimize-enable-variable-constprop) (byte-optimize-warn-eliminated-variable): Remove; these were mainly used for debugging. * lisp/emacs-lisp/byte-opt.el (byte-optimize-let-form): Assume normalised let-bindings (with lexical-binding). Stop using the variables removed above. * lisp/emacs-lisp/cconv.el (cconv-convert): Ensure normalised let-bindings. Malformed bindings are dropped after warning. remove byte-optimize-warn-eliminated-variable 2021-07-30 Lars Ingebrigtsen Ensure that recover-file doesn't leave stale auto-save files behind * lisp/files.el (recover-file): Don't leave stale auto-save files behind after crash recovery (bug#11331). 2021-07-30 Lars Ingebrigtsen Allow shell PROMPT strings to have ANSI codes * lisp/comint.el (comint-output-filter): Don't overwrite ANSI codes from the prompt command (bug#11883). 2021-07-30 Max Nikulin (tiny change) mailcap.el: Avoid xdg-open silent failure * lisp/net/mailcap.el (mailcap-view-file): Use 'pipe :connection-type instead of 'pty to prevent killing of background process on handler exit. Avoid regression similar to Bug#44824. Problem happens only in some desktop environments where mailcap handler launches actual viewer (as defined in .desktop files and obtained from mimeapps.list) in background. E.g. xdg-open invokes "gio open" or kde-open5 for Gnome or KDE accordingly and these handlers launch e.g. eog or okular in background. As soon as main process exits, temporary terminal session created by `start-process-shell-command' is terminated. As a result background processes receive SIGHUP. Previously command were executed with no buffer as well, so the change does not affect "needsterminal" and "copiousoutput" mailcap features, they are not supported as earlier. If main process of the handler fails then show a message with exit reason. Output (including error messages) is ignored as before. Gtk applications tend to report significant amount of failed asserts hardly informative for majority of users (bug#12972). 2021-07-30 Lars Ingebrigtsen Fix case insensitivity in `read-file-name' * lisp/minibuffer.el (read-file-name-default): Make `read-file-name' actually respect `read-file-name-completion-ignore-case' (bug#14340). 2021-07-30 Lars Ingebrigtsen Fix issue with mml-preview from outside Gnus * lisp/gnus/gnus-art.el (gnus-mime-display-alternative): Be more resilient when running from outside Gnus. 2021-07-30 Lars Ingebrigtsen Work around long-standing seq.el compilation warning * lisp/emacs-lisp/seq.el (seq-contains): When using cl-defgeneric to define an obsolete function, it'll complain about it being obsolete. Suppress that warning. (Should probably be fixed in cl-defgeneric instead.) 2021-07-30 Basil L. Contovounesios Remove a redundant let-binding from Ispell Recent optimizer changes revealed a case-fold-search binding in Ispell that was made redundant in the revision of 2020-11-03 "Simplify ispell-check-version’s use of -vv flag". * lisp/textmodes/ispell.el (ispell-check-version): Remove no-op binding of case-fold-search. 2021-07-30 Michael Albinus * etc/NEWS: Tramp supports authentication via yubikey now. Fix typos. 2021-07-30 Michael Albinus Fix bug#49773 in Tramp * lisp/net/tramp.el (tramp-handle-find-backup-file-name) (tramp-handle-lock-file, tramp-handle-make-auto-save-file-name): Check security hole only if action is in progress. (Bug#49773) 2021-07-30 Mattias Engdegård Optimise let and let* whose body is constant or the last variable Simplify (let ((X1 E1) ... (Xn En)) Xn) => (progn E1 ... En) and (let* ((X1 E1) ... (Xn En)) Xn) => (let* ((X1 E1) ... (Xn-1 En-1)) En) and similarly the case where the body is a constant, extending a previous optimisation that only applied to the constant nil. This reduces the number of bound variables, shortens the code, and enables further optimisations. * lisp/emacs-lisp/byte-opt.el (byte-optimize-letX): Rewrite using `pcase` and add the aforementioned transformations. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test cases. 2021-07-30 Mattias Engdegård Move warnings about bad let-bindings from source optimiser to cconv * lisp/emacs-lisp/byte-opt.el (byte-optimize-let-form): Move warnings... * lisp/emacs-lisp/cconv.el (cconv-convert): ...here, which is an overall better place (closer to the front-end). 2021-07-30 Mattias Engdegård Optimise prog1 better Rewrite (prog1 CONST FORMS...) => (progn FORMS... CONST) where CONST is a compile-time constant, because putting the value last allows the lapcode peephole pass to do important improvements like branch elimination. Also use progn instead of prog1 for `ignore`. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): New `prog1` and `ignore` transforms. 2021-07-30 Mattias Engdegård Elide lexical variables in for-effect context in source optimiser * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Remove for-effect uses of lexical variables. We previously relied on this being done by the lapcode peephole optimiser but at source level it enables more optimisation opportunities. Keywords are elided for the same reason. 2021-07-30 Mattias Engdegård Single source optimiser entry point Make the optimiser aware of lexical arguments. Otherwise we cannot know for sure whether a variable is lexical or dynamic during traversal. * lisp/emacs-lisp/byte-opt.el (byte-optimize-one-form): New optimiser entry point, replacing the recursive byte-optimize-form. * lisp/emacs-lisp/bytecomp.el (byte-optimize-one-form): Autoload. (byte-compile-keep-pending, byte-compile-top-level): Use byte-optimize-one-form. 2021-07-30 Stephen Gildea mh-junk: replace color-based terms with descriptive words * lisp/mh-e/*.el: "whitelist" -> "allowlist" and "blacklist" -> "blocklist". * doc/misc/mh-e.texi: update manual to match. * lisp/mh-e/mh-folder.el: Change the binding of 'mh-junk-allowlist' to 'J a'. Add a compatibility binding for the old 'J w'. * lisp/mh-e/mh-scan.el (mh-note-allowlisted): Change char from 'W' to 'A'. * lisp/mh-e/mh-junk.el: Rename 'mh-blacklist-a-msg' to 'mh-junk-blocklist-a-msg', adding the missing "junk-" to the function name. 2021-07-29 Nick Gasson (tiny change) Avoid errors in rmailsum for messages without "From" * lisp/mail/rmailsum.el (rmail-header-summary): Be defensive about the presence of the "From" header. (Bug#49770) 2021-07-29 dickmao Follow-up toggle-subscription name change * doc/misc/gnus.texi (Subscription Commands): Refer to correct function. * lisp/gnus/gnus-group.el (gnus-group-unsubscribe-current-group): Make backwards-compatible. (gnus-group-unsubscribe-group): Make backwards-compatible (bug#49768). 2021-07-29 Dmitry Gutov Fix printing of multiple items in one group without line numbers * lisp/progmodes/xref.el (xref--insert-xrefs): Fix printing of multiple items in one group without line numbers (mentioned in bug#49731). 2021-07-28 dickmao Rename Gnus -unsubscribe-group commands to -toggle-subscription * doc/emacs/misc.texi (Gnus Group Buffer): Document change. * doc/misc/gnus.texi (Subscription Commands): Document change. (Browse Foreign Server): Document change. * lisp/gnus/gnus-group.el (gnus-group-mode-map): Unsubscribe is not subscribe. (gnus-group-sub-map): Unsubscribe is not subscribe. (gnus-group-make-menu-bar): Unsubscribe is not subscribe. (gnus-group-tool-bar-gnome): Unsubscribe is not subscribe. (gnus-group-mode): Unsubscribe is not subscribe. (gnus-group-unsubscribe): Refactor. (gnus-group-subscribe): Refactor. (gnus-group-unsubscribe-current-group): Define obsolete alias. (gnus-group-unsubscribe-group): Define obsolete alias. (gnus-group-toggle-subscription-at-point): Refactor. (gnus-group-set-subscription-at-point): Refactor. (gnus-group-toggle-subscription): Refactor. (gnus-group-set-subscription): Refactor. * lisp/gnus/gnus-srvr.el (gnus-browse-mode-map): Unsubscribe is not subscribe. (gnus-browse-make-menu-bar): Unsubscribe is not subscribe. (gnus-browse-mode): Document the change. (gnus-browse-unsubscribe-current-group): Define obsolete alias. (gnus-browse-unsubscribe-group): Define obsolete alias. (gnus-browse-toggle-subscription-at-point): Unsubscribe is not subscribe. (gnus-browse-toggle-subscription): Unsubscribe is not subscribe (bug#49759). 2021-07-28 Juri Linkov Improve :type of defcustom 'context-menu-functions' and add documentation. * doc/emacs/frames.texi (Menu Mouse Clicks): Describe context-menu-mode and context-menu-functions instead of suggesting global-set-key. (Menu Bars): Mention context-menu-mode and context-menu-functions. * etc/NEWS: Add context-menu-mode and context-menu-functions. * lisp/mouse.el (context-menu-functions): Use :type with repeat/function-item. (context-menu-minor, context-menu-undo, context-menu-region) (context-menu-ffap): Improve docstrings displayed for function-item in defcustom of context-menu-functions. 2021-07-28 Lars Ingebrigtsen Improve mode-line-position-column-format manual entry * doc/lispref/modes.texi (Mode Line Variables): Mention %C, and don't mention the obsolete column-number-indicator-zero-based variable. 2021-07-28 Juri Linkov * lisp/progmodes/gud.el: Add prefix 'gud-' to repeat-map variables (bug#49632) * lisp/progmodes/gud.el (gud-sdb-repeat-map, gud-dbx-repeat-map) (gud-xdb-repeat-map, gud-perldb-repeat-map, gud-pdb-repeat-map) (gud-guiler-repeat-map, gud-jdb-repeat-map): Rename with prefix 'gud-'. 2021-07-28 Lars Ingebrigtsen Make byte-recompile-directory less brittle * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Don't interpret files named "~" as $HOME (bug#49758). 2021-07-28 Lars Ingebrigtsen Improve mode-line-position-column-format doc string * lisp/bindings.el (mode-line-position-column-format): Improve doc string. (mode-line-position-line-format): Point to `mode-line-position-column-line-format'. 2021-07-28 Kévin Le Gouguec Improve file-name-concat NEWS entry 2021-07-28 Philip Kaludercic Replace cl-c[ad]+r with regular c[ad]+r * lisp/net/rcirc.el (rcirc-make-trees): Replace cl-cdadr with cdadr (rcirc-handler-333): Replace cl-cadddr with cadddr (rcirc-authenticate): Replace cl-cdddr with cdddr 2021-07-28 Michael Albinus Display yubikey message properly in Tramp * lisp/net/tramp.el (tramp-action-show-and-confirm-message): Display message properly. 2021-07-27 Brian Leung Ensure that gud commands for non-GDB debuggers are handled by repeat-mode * lisp/progmodes/gud.el (sdb-repeat-map): Define. (sdb): Set repeat-mode property to the symbol corresponding to the repeat map. (dbx-repeat-map): Define. (dbx): Set repeat-mode property to the symbol corresponding to the repeat map. (xdb-repeat-map): Define. (xdb): Set repeat-mode property to the symbol corresponding to the repeat map. (perldb-repeat-map): Define. (perldb): Set repeat-mode property to the symbol corresponding to the repeat map. (pdb-repeat-map): Define. (pdb): Set repeat-mode property to the symbol corresponding to the repeat map. (guiler-repeat-map): Define. (guiler): Set repeat-mode property to the symbol corresponding to the repeat map. (jdb-repeat-map): Define. (jdb): Set repeat-mode property to the symbol corresponding to the repeat map. (Bug#49632) 2021-07-27 Brian Leung Ensure that gud commands for M-x gdb are handled by repeat-mode * lisp/progmodes/gud.el (gud-gdb-repeat-map): Rename from gud-repeat-map, and populate at the top-level. (gud-set-repeat-map-property): Introduce this helper function for setting the repeat-map property. (gud-gdb): Use the gud-set-repeat-map-property function to assign the repeat-map property. * lisp/progmodes/gdb-mi.el (gdb): Use the gud-set-repeat-map-property function to assign the repeat-map property. Because different debugging tools may not support all of the gud-foo functions, we reassign the repeat-map property within the respective commands, as opposed to the top level of the files, to ensure that the repeat-map property is reassigned each time to a symbol corresponding to the active debugging tool. (Bug#49632) 2021-07-27 Juri Linkov * lisp/tab-bar.el (tab-bar-format-global): Use string-trim-right (bug#30056). 2021-07-27 Juri Linkov Add new context-menu options for menus "File At Point" and "Version Control". * lisp/mouse.el (context-menu-functions): Add more options. (context-menu-global, context-menu-local): Fix separators. (context-menu-minor): Rewrite to support list of submenus. (context-menu-vc, context-menu-ffap): New functions. (context-menu-undo, context-menu-region): Fix separators. * lisp/dired.el (dired-context-menu): * lisp/info.el (Info-context-menu): * lisp/net/goto-addr.el (goto-address-context-menu): * lisp/net/eww.el (eww-context-menu): * lisp/progmodes/prog-mode.el (prog-context-menu): Fix separators. 2021-07-27 Philip Kaludercic Remove removal of text properties from rcirc-buffer-alist keys * lisp/net/rcirc.el (rcirc-mode): Remove set-text-properties call 2021-07-27 Michael Albinus Mark all autorevert tests as unstable on Cygwin (bug#49665) * test/lisp/autorevert-tests.el: Mark all tests as unstable on Cygwin (bug#49665). 2021-07-27 Philip Kaludercic Fix checkdoc issues * lisp/net/rcirc.el (rcirc-finished-sasl): Add period. (rcirc-mode): Expand docstring. (rcirc-handler-900): Document sender and process 2021-07-27 Mattias Engdegård Fix mistake in switch-case generation of `null` (bug#49746) Reported by Gregor Zattler. * lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix): Be more careful in the selection of equality. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test case. 2021-07-27 Philip Kaludercic Update rcirc-buffer-alist after receiving NICK * lisp/net/rcirc.el (rcirc-handler-NICK): Remove old nick and add new nick 2021-07-27 Lars Ingebrigtsen Revert "Make revert-buffer preserve buffer-readedness" This reverts commit fcae435f598471a2911641412125c5ac4f73559f. This leads to problems when reverting from a file that's changed readedness externally. 2021-07-27 Philip Kaludercic Fix TOPIC command * lisp/net/rcirc.el (topic): Add target argument. 2021-07-27 Michael Albinus Final tweak for Tramp's yubikey detection * lisp/net/tramp.el (tramp-yubikey-regexp) (tramp-action-show-and-confirm-message): Expect also "\n". 2021-07-27 Alan Third Convert fringe bitmaps to vectors on NS port Unfortunately *step doesn't support masks for bitmap images so changing the colors of fringe bitmaps is awkward. We can work around this by converting the bitmap into an NSBezierPath and drawing it in the required color. * src/nsterm.m (ns_define_fringe_bitmap): (ns_destroy_fringe_bitmap): New functions (ns_draw_fringe_bitmap): Display the NSBezierPath. * src/nsimage.m ([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): Remove variable that's there to allow us to easily modify the XBM colors. ([EmacsImage setXBMColor:]): Remove method. 2021-07-27 Alan Third Fix NS inset rectangle corners * src/nsterm.m (ns_draw_relief): Use a path to draw the mitered corners instead of rectangles. 2021-07-27 Alan Third Simplify NS sizing and positioning code * src/nsterm.m (ns_set_offset): Unify the two branches into one, most of the code is the same. (ns_set_window_size): Use the provided tools to calculate the window size instead of doing it ourselves. 2021-07-27 Alan Third * src/nsterm.m (ns_set_frame_alpha): Enable alpha on GNUstep. 2021-07-26 Alan Third Fix image crash on macOS (bug#49688) * src/nsimage.m ([EmacsImage allocInitFromFile:]): Use isValid to check whether the image is valid instead of generating a tiff. 2021-07-26 Mattias Engdegård Adjust grep-mode end-col function return value * lisp/progmodes/grep.el (grep-regexp-alist): Adjust the return value from the END-COL function by one since it is now (after fixing bug#49624) inclusive. Found by Juri Linkov. 2021-07-26 Michael Albinus Some minor improvements for share handling in tramp-gvfs.el * lisp/net/tramp-gvfs.el (tramp-gvfs-connection-mounted-p): Set "share" connection property if the mount spec offers it. (tramp-gvfs-handle-get-remote-uid) (tramp-gvfs-handle-get-remote-gid): Use it. 2021-07-26 Michael Albinus Adapt Tramp for yubikey * lisp/net/tramp.el (tramp-yubikey-regexp): Adapt value. (tramp-trace-functions): Adapt docstring. (tramp-process-action-regexp): New defvar. (tramp-action-password, tramp-process-one-action): Use it. (tramp-action-show-and-confirm-message): Rewrite. 2021-07-26 Michael Albinus Adapt tramp-sudoedit.el for better testing * doc/misc/tramp.texi (Bug Reports): Revert last change. Mention exception for sudoedit. * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Let-bind `tramp-cache-read-persistent-data' for better password handling. 2021-07-25 Mattias Engdegård Describe changes to the occur-mode implementation in NEWS * etc/NEWS: Mention change to the `occur-target` property (bug#39121). 2021-07-25 Glenn Morris Fix recent gdb-mi change * lisp/progmodes/gdb-mi.el (gdb-registers-filter-pattern-list): Fix type. 2021-07-25 Glenn Morris Merge from origin/emacs-27 d0625dc553 (origin/emacs-27) ; One more change in back.texi. 06d0a66e57 ; Yet another last-minute change in Emacs manual for printing 2021-07-25 Michael Albinus Add instructions for Tramp bug reports * doc/misc/tramp.texi (Bug Reports): Describe how to use password cache with "emacs -Q". 2021-07-25 Mattias Engdegård Fix tex-validate-buffer * lisp/textmodes/tex-mode.el (tex-validate-buffer): Set `inhibit-read-only` around all modifications of the read-protected *Occur* buffer (bug#19326). Add the `occur-match` property, and adjust the extent of the `occur-target` property, so that next-error and previous-error work correctly (bug#39121). 2021-07-25 Mattias Engdegård Add back occur-mode-find-occurrence for compatibility (bug#39121) * lisp/replace.el (occur-mode-find-occurrence): Put back (an emulation of) the previously removed function. It is used internally in eshell and in some external code. Problem found by Basil Contovounesios. 2021-07-25 Eli Zaretskii Fix compilation of xftfont.c with old fontconfig * src/xftfont.c (FC_LCD_FILTER): Define if undefined, for older versions of fontconfig. This was mistakenly deleted 2 years ago. (Bug#49722) 2021-07-25 Michael Albinus Fix extended attributes for Tramp's sudoedit method (bug#49724) * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file): Remove compat code for `{set-}file-extended-attributes'. (tramp-sudoedit-handle-write-region): Handle extended attributes. (Bug#49724) * test/lisp/net/tramp-tests.el (tramp-test25-file-selinux): Fix test for sudoedit method. 2021-07-25 Kévin Le Gouguec * etc/NEWS: Fix renaming of directory-append. 2021-07-25 Christopher League When bookmark is overwritten, unfontify its previous position * lisp/bookmark.el (bookmark-store): When the bookmark-fontify option is non-nil, setting or jumping to bookmarks will colorize them using `bookmark-face'. With this change, overwriting a bookmark will remove the fontification at its former position (bug#49725). 2021-07-25 Michael Albinus Use `file-name-concat' in Tramp * lisp/net/tramp-compat.el (tramp-compat-file-name-concat): New defalias. * lisp/net/tramp.el (tramp-handle-expand-file-name): * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes): * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name): * lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name): Use it. 2021-07-25 Mattias Engdegård Don't squash markers in occur-edit-mode * lisp/replace.el (occur-after-change-function): Instead of replacing the whole line being edited, use shrink-wrapping to replace the smallest interval encompassing the change. That way, we avoid disturbing markers (such as occur highlighting locations) in the line; they would otherwise all be forced to the beginning. 2021-07-25 Mattias Engdegård Keep track of match extents in occur-mode (bug#39121) Use the `occur-target` text property to keep track of the extents of all matches on each line instead of just the start of the first match. Doing so allows us to highlight all matches when jumping to a matching line instead of just the first one, and it works in a more principled way. It also removes compatibility problems that were introduced with occur-highlight-regexp. For compatibility with code that populate their own occur-mode buffers, we still accept `occur-target` properties with a single marker as value. * lisp/replace.el (occur-highlight-regexp, occur-highlight-overlay): Remove. (occur-highlight-overlays): New. (occur--targets-start): New. * lisp/replace.el (occur-after-change-function): (occur-mode-find-occurrence): Replace with... (occur-mode--find-occurrences): ...this function that returns the whole `occur-target` property value. (occur-mode-goto-occurrence, occur-mode-goto-occurrence-other-window) (occur-goto-locus-delete-o, occur-mode-display-occurrence) (occur-engine): Adjust to new property format. (occur--highlight-occurrence): Replace with... (occur--highlight-occurrences): ...this function that takes the `occur-target` property value as argument. (occur-1): Don't use `occur-highlight-regexp`. * test/lisp/replace-tests.el (occur-highlight-occurrence): Adapt to new property format. 2021-07-25 Arthur Miller (tiny change) Support '--group-directories-first' in ls-lisp.el * lisp/ls-lisp.el (ls-lisp--sanitize-switches): New function. (ls-lisp--insert-directory): Support '--group-directories-first'. Call 'ls-lisp--sanitize-switches' to convert long options to short forms and remove unsupported long options. Update the doc string. 2021-07-25 Peter Feigl Add commands to move to next/previous column in tabulated-list-mode * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode-map): Add keybindings M-left and M-right. (tabulated-list-previous-column tabulated-list-next-column): Implement commands (bug#44711). 2021-07-25 Lars Ingebrigtsen Rename directory-append to file-name-concat * src/fileio.c (Ffile_name_concat): * lisp/files.el (move-file-to-trash): * lisp/emacs-lisp/shortdoc.el (file-name): * doc/lispref/files.texi (Directory Names): Rename `directory-append' to `file-name-concat'. 2021-07-25 Lars Ingebrigtsen Allow empty elements in directory-append * doc/lispref/files.texi (Directory Names): Document it. * src/fileio.c (Fdirectory_append): Allow empty elements. 2021-07-24 Mattias Engdegård Disable delay and ding in replace-tests * test/lisp/replace-tests.el (replace-tests-with-undo): When testing the "U" (undo all changes) option, the code will delay and ding which is obnoxious in an automated test. Disabling that makes the test quiet and about 150 times faster. 2021-07-24 Yuan Fu Add filter to GDB's register buffer * lisp/progmodes/gdb-mi.el (gdb-registers-enable-filter) (gdb-registers-filter-pattern-list): New custom options. (gdb-header-click-event-handler, gdb-registers-toggle-filter): New functions. (gdb-header-click-event-handler): Only add a register if it passes the filter. (gdb-registers-mode-map): New keybinding for toggling the filter. (gdb-registers-header): New buttons on the header line for the filter (bug#39179). 2021-07-24 Lars Ingebrigtsen Really convert to multibyte in Fdirectory_append * src/fileio.c (Fdirectory_append): Fix check for whether we need to convert to multibyte. (Fdirectory_append): 2021-07-24 Michael Albinus Fix last commit in tramp.el 2021-07-24 Lars Ingebrigtsen Fix Fdirectory_append check for whether strings have to be converted * src/coding.c (string_ascii_p): Make it non-static. * src/fileio.c (Fdirectory_append): Fix check for whether we need to convert to multibyte. * src/fns.c (string_ascii_p): Remove copy. * src/lisp.h: Declare string_ascii_p. 2021-07-24 Lars Ingebrigtsen Set the normal-erase-is-backspace variable from Customize * lisp/simple.el (normal-erase-is-backspace): Always set the variable so that Customize is up-to-date (bug#49593). 2021-07-24 Lars Ingebrigtsen Tweak Fdirectory_append slightly * src/fileio.c (Fdirectory_append): Make the xfree condition more robust. 2021-07-24 Lars Ingebrigtsen Improve directory-append manual entry * doc/lispref/files.texi (Directory Names): Mention zero-length restriction. 2021-07-24 Lars Ingebrigtsen Tweak Fdirectory_append for efficiency * src/fileio.c (Fdirectory_append): Make slightly more efficient. 2021-07-24 Lars Ingebrigtsen Extend directory-append to take an arbitrary number of components * doc/lispref/files.texi (Directory Names): Document it. * lisp/emacs-lisp/shortdoc.el (file-name): Add new example. * src/fileio.c (Fdirectory_append): Change the function to take an arbitrary number of components. 2021-07-24 Philip Kaludercic Ensure that rcirc-buffer-alist has no text properties * lisp/net/rcirc.el (rcirc-mode): Remove text properties from rcirc-buffer-alist keys 2021-07-24 Michael Albinus Add Tramp support for yubikey (bug#49714) * lisp/net/tramp.el (tramp-yubikey-regexp): New defcustom. (tramp-action-show-and-confirm-message): New defun. * lisp/net/tramp-sh.el (tramp-actions-before-shell) (tramp-actions-copy-out-of-band): Add `tramp-yubikey-regexp' action. 2021-07-24 Lars Ingebrigtsen Adjust tab-bar to the new mode-line-misc-info value * lisp/tab-bar.el (tab-bar--define-keys): Adjust to the new default value for `mode-line-misc-info'. 2021-07-24 Lars Ingebrigtsen Remove duplicated NEWS entries 2021-07-24 Lars Ingebrigtsen Make 's' in *Help* work for Lisp-defined variables again * lisp/help-fns.el (describe-variable): Make the `s' command work for Lisp-defined variables again (bug#39121). 2021-07-24 Lars Ingebrigtsen Fix problem when moving files called ~ to the trash * lisp/files.el (move-file-to-trash): Construct the trash file name safely (bug#49711). This makes (move-file-to-trash "/tmp/~") etc work. 2021-07-24 Lars Ingebrigtsen Add new function `directory-append' * doc/lispref/files.texi (Directory Names): Document it, and remove the concat-based file concatenation description. * lisp/emacs-lisp/shortdoc.el (file-name): Add. And add more expand-file-name examples. * src/fileio.c (Fdirectory_append): New function. 2021-07-24 Philip Kaludercic Generate no message when activating rcirc-omit-mode * lisp/net/rcirc.el (rcirc-omit-mode): Remove (message ...) expressions 2021-07-24 Lars Ingebrigtsen Make the test for auto-mode-alist from .dir-local.el stricter * lisp/files.el (set-auto-mode--dir-local-valid-p): New function. (set-auto-mode--apply-alist): Use it as a stricter test. 2021-07-23 Eli Zaretskii Improve recently added documentation * etc/NEWS: Improve wording of a recently added entry. * doc/misc/smtpmail.texi (Queued delivery): Fix typo. 2021-07-23 Alex Bochannek Fix bug#49699 * lisp/net/tramp-sh.el (tramp-scp-strict-file-name-checking): Adapt check for macOS. (Bug#49699) 2021-07-23 Lars Ingebrigtsen Fix typo in set-auto-mode--apply-alist * lisp/files.el (set-auto-mode--apply-alist): Fix typo in ad5faa424a5 (bug#49712). 2021-07-23 Lars Ingebrigtsen Allow storing SMTP variables when queueing mail * doc/misc/smtpmail.texi (Queued delivery): Document it (bug#49709). * lisp/gnus/message.el (message-multi-smtp-send-mail): Store variables. * lisp/mail/smtpmail.el (smtpmail-queue-mail): Mention it. (smtpmail-store-queue-variables): New variable. (smtpmail-send-it): Store SMTP variables if requested. (smtpmail-send-queued-mail): Restore variables. 2021-07-23 Lars Ingebrigtsen Fix do-auto-fill thinko introduced earlier today * lisp/simple.el (do-auto-fill): `current-fill-column' returns nil to signal that we should fill. 2021-07-23 Tom Tromey Add auto-mode-alist functionality to .dir-locals.el * doc/emacs/custom.texi (Directory Variables): Document auto-mode-alist in .dir-locals.el (Bug#18721) * doc/emacs/modes.texi (Choosing Modes): Update. * lisp/files.el (set-auto-mode--apply-alist): New function, from set-auto-mode. (set-auto-mode): Check directory locals for auto-mode-alist. (dir-locals-collect-variables): Add "predicate" parameter. (hack-dir-local--get-variables): New function, from hack-dir-local-variables. (hack-dir-local-variables): Call hack-dir-local--get-variables. * test/lisp/files-resources/.dir-locals.el: New file. * test/lisp/files-resources/whatever.quux: New file. * test/lisp/files-tests.el (files-tests-data-dir): New variable. (files-test-dir-locals-auto-mode-alist): New test. 2021-07-23 Jean Forget Add more support for the French Revolutionary Calendar * lisp/calendar/cal-french.el (calendar-french-feasts-array): New variable (bug#19174). (calendar-french-trim-feast): New function. (calendar-french-date-string, calendar-french-goto-date): (calendar-french-goto-date): Use them. http://datetime.mongueurs.net/Histoire/s-c/01-g.en.html https://metacpan.org/pod/DateTime::Calendar::FrenchRevolutionary#Internet 2021-07-23 Mattias Engdegård Off-by-one error in compilation rule end-column function (bug#49624) * lisp/progmodes/compile.el (compilation-error-properties): When the end-column parameter of a compilation message rule (in compilation-error-regexp-alist[-alist]) is a function, treat its return value as if it were matched by the regexp, which is how it is documented to work, and how all other parameters work. 2021-07-23 Mattias Engdegård Warn about arity errors in inlining calls (bug#12299) Wrong number of arguments in inlining function calls (to `defsubst` or explicitly using `inline`) did not result in warnings, or in very cryptic ones. * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Add calls to `byte-compile--check-arity-bytecode`. * lisp/emacs-lisp/bytecomp.el (byte-compile-emit-callargs-warn) (byte-compile--check-arity-bytecode): New functions. (byte-compile-callargs-warn): Use factored-out function. * test/lisp/emacs-lisp/bytecomp-resources/warn-callargs-defsubst.el: * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-callargs-defsubst.el"): New test case. 2021-07-23 F. Jason Park Remove text props from callback args in erc-button * lisp/erc/erc-button.el (erc-button-add-buttons-1): Remove text properties from strings stored in `erc-data' and passed to `erc-callback' (both text properties themselves) (bug#49704). This reduces memory usage in erc buffers (which are long-lived and can become very large). 2021-07-23 Lars Ingebrigtsen declare-function doc string clarification about FILE * lisp/subr.el (declare-function): Mention that FILE can be nil (bug#21466). 2021-07-23 Stefan Kangas Make nil value of fill-column obsolete * lisp/textmodes/fill.el (current-fill-column): Make nil value of 'fill-column' obsolete. (Bug#22847) (current-fill-column--has-warned): New variable to track warning. * lisp/simple.el (do-auto-fill): Remove handling of nil return value from 'current-fill-column'. * etc/NEWS: Announce obsoletion of this usage. 2021-07-23 Lars Ingebrigtsen Adjust time-tests.el to bug#30056 * test/lisp/time-tests.el (time-tests-display-time-update): Adjust test (bug#30056). 2021-07-23 Lars Ingebrigtsen Move mode-line NEWS items to a common section 2021-07-23 Lars Ingebrigtsen 'global-mode-string' elements should have a space at the end * lisp/time.el (display-time-string-forms): * lisp/battery.el (battery-mode-line-format): Add a space to the end (bug#30056). * lisp/bindings.el (mode-line-misc-info): Remove space from end. This will make the default format have one space before the line-of-dashes (instead of two) on terminals. 2021-07-23 Lars Ingebrigtsen Fix an rcirc merge problem * lisp/net/rcirc.el (rcirc-get-server-method) (rcirc-get-server-password): Remove double definition after merge. 2021-07-23 Eli Zaretskii MS-Windows followup to recent emacsclient changes * nt/gnulib-cfg.mk (OMIT_GNULIB_MODULE_file-has-acl): Set to true to avoid compiling file-has-acl.c on MS-Windows. 2021-07-23 Paul Eggert Redo emacsclient socket symlink-attack checking * admin/merge-gnulib (GNULIB_MODULES): Add file-has-acl. * lib/file-has-acl.c: New file, copied from Gnulib. * lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate. * lib-src/emacsclient.c: Include acl.h, for file_has_acl. (O_PATH): Default to O_SEARCH, which is good enough here. (union local_sockaddr): New type. (socket_status): Remove, replacing with ... (connect_socket): New function. All callers changed. This function checks for ownership and permissions issues with the parent directory of the socket file, instead of checking the owner of the socket (which does not help security). (socknamesize): Move to file scope. (local_sockname): New arg S. No need to pass socknamesize. UID arg is now uid_t. All callers changed. Get file descriptor of parent directory of socket, to foil some symlink attacks. Do not follow symlinks to that directory. (set_local_socket): Create the socket here instead of on each attempt to connect it. Fall back from XDG_RUNTIME_DIR to /tmp only if the former fails due to ENOENT. Adjust permission-failure diagnostic to match changed behavior. This addresses Bug#33847, which complained about emacsclient in a safer XDG environment not connecting to an Emacs server running in a less-safe environment outside XDG. The patch fixes a longstanding issue with emacsclient permission checking. It’s ineffective to look at the permission of the socket file itself; on some platforms, these permissions are ignored anyway. What matters are the permissions on the parent directory of the socket file, as these are what make symlink attacks possible. Change the permissions check accordingly, and also refuse to follow symlinks to that parent directory. These changes make it OK for emacsclient to fall back from XDG_RUNTIME_DIR to the traditionally less-safe /tmp/emacsNNNN directories, since /tmp is universally sticky nowadays. 2021-07-23 Philip Kaludercic Merge branch 'feature/rcirc-update' 2021-07-23 Lars Ingebrigtsen Make erc recognize `foo*' as a function Lisp symbol * lisp/erc/erc-button.el (erc-button-alist): Add some more chars to the `foo' button regexp (bug#49690). 2021-07-23 Lars Ingebrigtsen Make supersession warnings work again * src/filelock.c (lock_file): Fix thinko in lock_file in 2ad34bcea4e (bug#49701). 2021-07-22 Eli Zaretskii Fix display of line/wrap-prefix when there's a display property at BOL * src/xdisp.c (get_line_prefix_it_property): New function. (handle_line_prefix): Call 'get_line_prefix_it_property' instead of 'get_it_property', to examine also the property of the buffer text underlying the display or overlay string. (Bug#49695) 2021-07-22 Lars Ingebrigtsen Make revert-buffer preserve buffer-readedness * lisp/files.el (revert-buffer): Preserve buffer-readedness (bug#35166). 2021-07-22 Lars Ingebrigtsen `term-char-mode' doc string clarification * lisp/term.el (term-char-mode): Document behaviour (bug#49186). 2021-07-22 Dmitry Gutov Bind the GIT_LITERAL_PATHSPECS environment variable * lisp/vc/vc-git.el (vc-git-command): (vc-git--call): Ensure that git interprets file names literally (bug#39452). 2021-07-22 Sergey Organov (tiny change) Avoid failing in desktop-clear due to killed buffers * lisp/desktop.el (desktop-clear): check that buffer is not already killed before attempting to kill it. A buffer might become killed as part of regular operation as a side-effect of killing another buffer, and then attempt to kill it again causes error (bug#49692). 2021-07-22 Lars Ingebrigtsen Remove the (value) bits from cus-start Customize strings * lisp/cus-start.el (standard): Don't mention the Lisp values in the choice strings, because that's just confusing in the Customize interface (bug#49687). 2021-07-22 Eli Zaretskii Avoid byte-compilation warning * test/src/buffer-tests.el (buffer-tests-inhibit-buffer-hooks): Avoid byte-compiler warning. (Bug#49667) 2021-07-22 Lars Ingebrigtsen Move generalized variable specs from cl-lib.el to gv.el * lisp/emacs-lisp/cl-lib.el: Move all the generalized variable specifications from cl-lib.el... * lisp/emacs-lisp/gv.el: ... to gv.el. This will make things like `(setf (getenv "FOO") "BAR")' work without requiring anything, since `setf' lives in gv.el (bug#49651). 2021-07-21 Yan Gajdos (tiny change) Make vc-git-mode-line-string more robust * lisp/vc/vc-git.el (vc-git-mode-line-string): Make function more robust (bug#49683). It could previously error out under certain conditions, like moving directories in and out of the VC-controlled tree. 2021-07-21 Illia Ostapyshyn (tiny change) * lisp/cus-start.el: Add mode-line-compact to Customize * lisp/cus-start.el (standard): Make `mode-line-compact' into a user option (bug#49687). 2021-07-21 Juri Linkov Improve docstring of context-menu-functions and add eww-context-menu * lisp/mouse.el (context-menu-functions): Explain function args in docstring. * lisp/net/eww.el (eww-context-menu): New function. (eww-mode): Add it to context-menu-functions. * lisp/info.el (Info-context-menu): Move history items higher. * lisp/progmodes/prog-mode.el (prog-context-menu): Add menu items in the middle of the menu after the region menu items. 2021-07-21 Juri Linkov Change the order of context-menu-functions and add more context menus. * lisp/mouse.el (context-menu-functions): Update default list. (context-menu-overriding-function): Remove variable. (context-menu-map): Reverse the order. (context-menu-global, context-menu-local, context-menu-minor): New functions. (context-menu-undo, context-menu-region): Add separators. Use define-key-after instead of bindings--define-key. (context-menu-entry): New variable. (context-menu-mode): Use it. * lisp/dired.el (dired-context-menu): New function. (dired-mode): Add it to context-menu-functions. * lisp/info.el (Info-context-menu): Reorder. * lisp/net/goto-addr.el (goto-address-at-mouse): Rename from goto-address-at-click. (goto-address-context-menu): Use goto-address-at-mouse. * lisp/progmodes/prog-mode.el (prog-context-menu): New function. (prog-mode): Add it to context-menu-functions. 2021-07-21 Logan Perkins Make input of multi-key inputs in different emacsclients more logical * src/keyboard.c (read_key_sequence): Don't continue the input of multi-key commands in one emacsclient in another (bug#39687). 2021-07-21 Stefan Monnier * src/eval.c (signal_quit_p): Fix the usual int/Lisp_Object mixup 2021-07-21 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp-warn-and-return): Add arg `category` Use it to obey `byte-compile-warnings`. (macroexp--warn-wrap): Add arg `category`. (macroexp-macroexpand, macroexp--expand-all): Use it. * lisp/emacs-lisp/cconv.el (cconv--convert-funcbody, cconv-convert): Mark the warnings as `lexical`. * lisp/emacs-lisp/eieio-core.el (eieio-oref, eieio-oref-default) (eieio-oset-default): * lisp/emacs-lisp/eieio.el (defclass): Adjust to new calling convention. 2021-07-21 Lars Ingebrigtsen Make `C-g' after `M-x' not give a backtrace unless required * src/eval.c (signal_quit_p): New function. (maybe_call_debugger): React to all `quit' signals (bug#49675). * src/keyboard.c (cmd_error_internal, menu_item_eval_property_1): Ditto. 2021-07-21 Jashank Jeremy Speed up by storing frame faces in hash tables instead of alists * src/frame.h (struct frame): Add face_hash_table, remove face_alist. (fset_face_hash_table): New function. (fset_face_alist): Remove. * src/frame.c (make_frame): Initialize f->face_hash_table. (Fmake_terminal_frame): Update to work with hash tables instead of alists. * src/xfaces.c (lface_from_face_name_no_resolve): (Finternal_make_lisp_face): (update_face_from_frame_parameter): Update to work with hash tables instead of alists. (Fframe_face_hash_table): New function. (Fframe_face_alist): Move to faces.el as frame-face-alist. (syms_of_xfaces): Add frame_face_hash_table. * lisp/progmodes/elisp-mode.el (elisp--eval-defun-1): * lisp/frame.el (frame-set-background-mode): Update to work with hash tables instead of alists. * lisp/faces.el (face-new-frame-defaults): Mark obsolete. (face-list): Update to use face--new-frame-defaults. (frame-face-alist): Moved here from src/xfaces.c. (x-create-frame-with-faces): Update to handle subtle semantic change to how frame faces propagate, which otherwise breaks frame creation with reverse video enabled (bug#41200). Reworked from a patch by Clément Pit-Claudel . 2021-07-21 Stefan Monnier * doc/lispref/display.texi (Overlay Properties): Tweak further The "character after point" is not as important as point itself 2021-07-21 Lars Ingebrigtsen Remove some "is"es from previous json checkin * lisp/subr.el (json-available-p): * doc/lispref/text.texi (Parsing JSON): Fix typo in last check-in. 2021-07-21 Stefan Kangas Factor out char_table_ref_simple for readability * src/chartab.c (char_table_ref_simple): New function... (sub_char_table_ref_and_range, char_table_ref_and_range): ...factored out from here. (bug#45550). 2021-07-21 Lars Ingebrigtsen Fix final test for invalid base64url chars * src/fns.c (base64_decode_1): Fix test for invalid base64url (bug#45562). Noted by Andreas Schwab. 2021-07-21 Pankaj Jangid Fixed a typo in Gnus manual * doc/misc/gnus.texi (Washing Mail): Fixed typo 2021-07-21 Lars Ingebrigtsen Fix bug-reference.el compilation warning * lisp/progmodes/bug-reference.el (bug-reference-mode): Silence a compilation warning (bug#49677). 2021-07-21 Lars Ingebrigtsen Restore evaluation logic in dired-guess-default * lisp/dired-x.el (dired-guess-default): Restore the `eval' bits also removed in a previous commit (bug#48071). 2021-07-21 Lars Ingebrigtsen Fix dired-guess-default logic after previous change * lisp/dired-x.el (dired-guess-default): Restore previous logic -- require matches for all files (bug#48071). 2021-07-21 Lars Ingebrigtsen Add json-available-p * doc/lispref/text.texi (Parsing JSON): Document it. * lisp/subr.el (json-available-p): New function (bug#49660). 2021-07-21 Lars Ingebrigtsen Mention rear-advance in relation to the keymap overlay property * doc/lispref/display.texi (Overlay Properties): Mention the effect of REAR-ADVANCE (bug#459). 2021-07-21 Mattias Engdegård Fix mistake in `quote` optimiser Found by Pip Cet. * lisp/emacs-lisp/byte-opt.el (byte-optimize-quote): Fix mistake that made this optimiser ineffective at removing quoting of nil, t, and keywords. The only obvious consequence is that we no longer need... (byte-optimize-form): ...a 'nil => nil normalising step here; remove. (byte-optimize-form-code-walker): Make the compiler warn about (quote). 2021-07-20 Juri Linkov Add new mode context-menu-mode and use it in info.el and goto-addr.el * lisp/mouse.el (context-menu-functions): New defcustom. (context-menu-overriding-function): New function. (context-menu-filter-function): New defcustom. (context-menu-map): New function. (context-menu-undo, context-menu-region): New menu functions. (context-menu-mode): New mode. * lisp/info.el (Info-context-menu): New function. (Info-mode): Add Info-context-menu to context-menu-functions. * lisp/net/goto-addr.el (goto-address-context-menu): New function. (goto-address-at-click): New command. (goto-address-mode): Add goto-address-context-menu to context-menu-functions. 2021-07-20 Juri Linkov * lisp/button.el (button-map): Bind [follow-link] to 'mouse-face' (bug#49626) 2021-07-20 Mattias Engdegård Strength-reduce (eq X nil) to (not X) * lisp/emacs-lisp/byte-opt.el (byte-optimize-eq): New optimisation, which results in better test and branch code generation where it applies. 2021-07-20 Mattias Engdegård Count (not X) as a switch condition * lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix): Treat (not VAR) and (null VAR) as (eq VAR nil) when computing the extent of switch ops. 2021-07-20 Michael Albinus * lisp/shadowfile.el (shadow-homedir): Add slash. (shadow-contract-file-name): Use it. Bug#49596. 2021-07-20 Eli Zaretskii Fix documentation of a recent changeset * lisp/autorevert.el (auto-revert-mode): * lisp/files.el (revert-buffer): Doc fix. (Bug#49661) 2021-07-20 Michael Albinus Fix Bug#49636 * test/lisp/net/tramp-tests.el (tramp-test39-make-lock-file-name): Let-bind `auto-save-default'. (Bug#49636) 2021-07-20 Konstantin Kharlamov Improve auto-revert-mode and revert-buffer doc strings * lisp/autorevert.el (auto-revert-mode): * lisp/files.el (revert-buffer): Mention that there is revert-buffer-with-fine-grain that is better suited for markers preservation (bug#49661). 2021-07-20 jakanakaevangeli Make `kill-all-local-variables' also remove lambda from hooks * src/buffer.c (reset_buffer_local_variables): Also remove non-symbol elements from hook variables (bug#46407). 2021-07-20 Lars Ingebrigtsen Make dired-guess-default return all matching programs * lisp/dired-x.el (dired-guess-default): Return all matching programs (bug#48071). 2021-07-20 Ioannis Kappas Allow installing packages with DOS line endings * lisp/emacs-lisp/package.el (package-install-from-buffer): Allow installing files with different line ending conventions (Unix, DOS and Macos) (bug#48137). 2021-07-20 Lars Ingebrigtsen Signal an error in json.c function if not available * src/json.c (Fjson_serialize, Fjson_insert) (Fjson_parse_string, Fjson_parse_buffer, syms_of_json): Signal `json-unavailable' if jansson isn't available (bug#48228). 2021-07-20 Miha Rihtaršič Quit minibuffers without aborting kmacros * doc/lispref/commands.texi (Quitting): Document `minibuffer-quit' (Recursive Editing): Document throwing of function values to `exit'. * doc/lispref/errors.texi (Standard Errors): Document `minibuffer-quit' * lisp/minibuffer.el (minibuffer-quit-recursive-edit): New function. * lisp/simple.el (minibuffer-error-function): Do not abort keyboard macro execution if is minibuffer-quit is signaled (bug#48603). * src/data.c (syms_of_data): New error symbol `minibuffer-quit' * src/keyboard.c (recursive_edit_1): Implement throwing of function values to `exit`. In that case, the function will be called without arguments before returning from the command loop. (cmd_error): (Fcommand_error_default_function): Do not abort keyboard macro execution if minibuffer-quit is signaled. (command_loop_2): New argument HANDLERS. * src/macros.c (Fexecute_kbd_macro): Use command_loop_2 instead of command_loop_1. * src/minibuf.c (Fabort_minibuffers): Use it. 2021-07-20 Kenichi Handa Fix problem with certain fonts in ftfont_shape_by_flt * src/ftfont.c (ftfont_shape_by_flt): Fix problem with unusual OTF tables in fonts (bug#49066). 2021-07-20 Earl Hyatt Add commands 'kill-matching-lines' and 'copy-matching-lines' * doc/emacs/search.texi: Document these additions. * lisp/replace.el: Add the commands 'kill-matching-lines' and 'copy-matching-lines'. 'kill-matching-lines' is like 'flush-lines', but adds the lines to the kill ring as a single string, keeping line endings. 'copy-matching-lines' is like 'kill-matching-lines', but only copies those lines instead of killing them. 2021-07-20 Lars Ingebrigtsen Tweak example in Function Indirection node in the lispref manual * doc/lispref/eval.texi (Function Indirection): Make example more robust (bug#49647). Suggested by Scott Marks . 2021-07-20 Lars Ingebrigtsen Put command line file names and mouse dragging onto 'file-name-history' * lisp/dnd.el (dnd-open-local-file): Add file to history. * lisp/files.el (file-name-history--add): New function (bug#12915). * lisp/startup.el (command-line-1): Add file to history. 2021-07-20 Lars Ingebrigtsen Mention `overlays-in' in the `overlays-at' doc string * src/buffer.c (Foverlays_at): Mention `overlays-in' in the doc string (bug#459). 2021-07-19 Lars Ingebrigtsen Make wdired work better in narrowed-to buffers * lisp/wdired.el (wdired--before-change-fn): (wdired--restore-properties): Widen before doing anything so that we get all the changed bits (bug#49124). 2021-07-19 Ivan Sokolov Add function for filtering ANSI sequences when compiling * lisp/ansi-color.el (ansi-color-for-compilation-mode): New user option (bug#49609). (ansi-color-compilation-filter): New function. 2021-07-19 Eli Zaretskii Fix typos in a recent change * src/buffer.c (Fmake_indirect_buffer): Fix a typo in a recent change. * doc/lispref/buffers.texi (Indirect Buffers): Fix punctuation. 2021-07-19 Lars Ingebrigtsen Make the `s' command in *Help* work for Lisp variables defined in C * lisp/help-fns.el (describe-variable): Store the type. * lisp/help-mode.el (help-view-source): Use the type. This fixes the problem when looking for a variable defined in a C file. 2021-07-19 Lars Ingebrigtsen Add inhibit-buffer-hooks to `make-indirect-buffer' * doc/lispref/buffers.texi (Indirect Buffers): Document it (bug#49160). * src/buffer.c (Fmake_indirect_buffer): Allow controlling whether to inhibit buffer hooks. 2021-07-19 dickmao Make make-indirect-buffer inherit inhibit-buffer-hook from base buffer * src/buffer.c (Fmake_indirect_buffer): Match base buffer's inhibit-buffer-hooks. * test/src/buffer-tests.el (buffer-tests-inhibit-buffer-hooks-indirect): Add a test (bug#49160). 2021-07-19 Eli Zaretskii Document recent changes in 'comint-delete-output' (bug#1496) * doc/emacs/misc.texi (Shell Mode): Document the new optional behavior of 'C-c C-o'. * etc/NEWS: Call out the new behavior of 'C-c C-o'. 2021-07-19 Gabriel do Nascimento Ribeiro Use 'remember-buffer' in remember.el doc strings. * lisp/textmodes/remember.el (remember-initial-contents) (remember-before-remember-hook, remember-destroy): Refer to `remember-buffer'. * lisp/textmodes/remember.el (remember-buffer): Make into defcustom (bug#49373). 2021-07-19 Gabriel do Nascimento Ribeiro Use 'remember-buffer' in remember.el doc strings. * lisp/textmodes/remember.el (remember-initial-contents) (remember-before-remember-hook, remember-destroy): Refer to `remember-buffer'. * lisp/textmodes/remember.el (remember-buffer): Make into defcustom (bug#49373). 2021-07-19 Madhu (tiny change) Propagate asynchronousness correctly when using proxies in url.el * lisp/url/url.el (url-retrieve-internal): Propagate asynchronousness correctly when using a proxy (bug#49570). 2021-07-19 Lars Ingebrigtsen Fix infloop in woman-file-name * lisp/woman.el (woman-file-name): Fix infloop for non-existent manual page (bug#414). 2021-07-19 Lars Ingebrigtsen Allow comint-delete-output to save the output on the kill ring * lisp/comint.el (comint-delete-output): Allow saving the output to the kill ring (bug#1496). 2021-07-19 Lars Ingebrigtsen Fix documentation of mouse-leave-buffer-hook * doc/lispref/hooks.texi (Standard Hooks): Ditto. * src/callint.c (syms_of_callint): Document the actual usage of `mouse-leave-buffer-hook' (bug#2932). 2021-07-19 Lars Ingebrigtsen Use make-separator-line in shortdoc * lisp/simple.el (separator-line): Tweak definition to not be so overwhelming. * lisp/emacs-lisp/shortdoc.el (shortdoc-separator): Removed. (shortdoc-display-group): Use make-separator-line. 2021-07-19 Lars Ingebrigtsen Add a new function for separator lines * lisp/help-fns.el (describe-symbol): Use it. * lisp/help.el (describe-key): Use it. * lisp/simple.el (separator-line): New face. (make-separator-line): New function (bug#49630). 2021-07-18 Eli Zaretskii Fix documentation of a recent changeset (bug#5003) * lisp/files.el (safe-local-variable-values) (ignored-local-variable-values): Doc fix. (ignored-local-variable-values): Add :version tag. * doc/emacs/custom.texi (Safe File Variables): Mention 'ignored-local-variable-values'. * doc/lispref/variables.texi (File Local Variables): Fix wording. * etc/NEWS: Improve wording of the 'ignored-local-variable-values' entry. 2021-07-18 Mattias Engdegård Count compile errors when FILE is a function * lisp/progmodes/compile.el (compilation-parse-errors): Don't omit messages from the error count when FILE is a function rather than a regexp match number. 2021-07-18 Lars Ingebrigtsen Clarify event-convert-list doc string * src/keyboard.c (Fevent_convert_list): Clarify that the base type returned isn't always the same (bug#7631). 2021-07-18 Stephen Gildea Add doc string to time-stamp-tests that didn't have one * test/lisp/time-stamp-tests.el (formatz-generate-tests, formatz-%z-spotcheck): Add doc strings to tests. 2021-07-18 Lars Ingebrigtsen Allow ignoring local variable values permanently * doc/lispref/variables.texi (File Local Variables): Document it. * lisp/files.el (ignored-local-variable-values): New user option (bug#5003). (hack-local-variables-confirm): Allow ignoring permanently. (hack-local-variables-filter): Ignore the permanently ignored variables. 2021-07-18 Michael Albinus Make remote file locks more robust * lisp/net/tramp.el (tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Make file locks more robust. * test/lisp/net/tramp-tests.el (tramp-test39-make-lock-file-name): Rename and extend. 2021-07-18 Naofumi Yasufuku (tiny change) Make remote file locks more robust. (Bug#49621) * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Make file locks more robust. (Bug#49621) 2021-07-18 Lars Ingebrigtsen Maintain a list of terminal buffers in the menu * lisp/term.el (term--update-term-menu): New function (bug#5641). (term-mode): Use it to list terminal buffers. 2021-07-18 Eli Zaretskii Fix display of mode-line with bidi formatting controls * src/xdisp.c (face_before_or_after_it_pos): Reimplement the bidi iteration to find the character after the current in visual order. (Bug#49562) 2021-07-18 Michael Albinus Fix problem in `shadow-define-literal-group' (Bug#49596) * lisp/shadowfile.el (shadow-make-fullname): HOST can also be a remote file name. Bug#49596. * test/lisp/shadowfile-tests.el (auth-source-save-behavior) (tramp-cache-read-persistent-data, tramp-persistency-file-name): Set them globally. (shadow-test06-literal-groups): Extend test. 2021-07-18 Lars Ingebrigtsen Make indent-tabs-mode into a regular mode instead of just a variable * lisp/simple.el (indent-tabs-mode): Make into a minor mode (bug#6276). 2021-07-18 Lars Ingebrigtsen Don't shorten comment padding if the padding isn't spaces * lisp/newcomment.el (comment-padright): Don't shorten non-space padding (bug#6822). (comment-padleft): Ditto. 2021-07-18 Lars Ingebrigtsen Fix an unlikely `copyright-find-copyright' problem * lisp/emacs-lisp/copyright.el (copyright-find-copyright): Make the copyright matcher more robust (bug#7179). 2021-07-17 Lars Ingebrigtsen Fix previous grep-file-at-point change * lisp/progmodes/grep.el (grep-file-at-point): Fix previous change. 2021-07-17 Lennart Borgman Add new function 'grep-file-at-point' * lisp/progmodes/grep.el (grep-file-at-point): New function to return the file name at point (bug#8252). 2021-07-17 Karthik Chikmagalur (tiny change) Enhance pcomplete support for xargs * lisp/pcmpl-unix.el (pcomplete/xargs): Add support for completing xargs options, including the ability to distinguish them from the command xargs runs (bug#49603). 2021-07-17 Lars Ingebrigtsen Make 'n'/'p' work again in shortdoc after previous changes * lisp/emacs-lisp/shortdoc.el (shortdoc--goto-section): Adjust to changes in how the text properties are inserted in 22a5482ab6 (bug#49605). Also make into a regular function. 2021-07-16 akater EIEIO: Prevent excessive evaluation of :initform * lisp/emacs-lisp/eieio.el (initialize-instance): Do not evaluate initform of a slot when initarg for the slot is provided, according to the following sections of CLHS: - Object Creation and Initialization - Initialization Arguments - Defaulting of Initialization Arguments - Rules for Initialization Arguments * test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: Add corresponding tests Fix a typo 2021-07-16 Mattias Engdegård Define revert-buffer-function for *Memory Report* * lisp/emacs-lisp/memory-report.el (memory-report): Allow the memory report buffer to be updated by pressing 'g'. 2021-07-16 Michael Albinus Add lock-file-mode * doc/emacs/files.texi (Interlocking): * doc/lispref/files.texi (File Locks): * etc/NEWS: Add lock-file-mode. * lisp/files.el (lock-file-name-transforms) (remote-file-name-inhibit-locks): Move down. (lock-file-mode): New minor mode. 2021-07-16 Glenn Morris Merge from origin/emacs-27 7ac411ae2c (origin/emacs-27) ; * src/data.c (Fcar, Fcdr): Doc fix. 0d9e1826f7 One more minor update of the Emacs manual for 19th printing 92616d30e0 ; Fix let-alist Texinfo markup c13acf8e34 ; * doc/emacs/mule.texi (International Chars): Mention 'de... 2021-07-16 Lars Ingebrigtsen Clarify emacsclient Options node in the Emacs manual * doc/emacs/misc.texi (emacsclient Options): Don't claim that emacsclient searches for a socket name (bug#13319). 2021-07-16 Lars Ingebrigtsen Add new user option 'query-about-changed-file' * doc/emacs/files.texi (Visiting): Document it. * lisp/files.el (query-about-changed-file): New user option (bug#10775). (find-file-noselect): Use it. 2021-07-16 Lars Ingebrigtsen Fix lock-file-name-transforms build problem * lisp/files.el (lock-file-name-transforms): Remove custom-initialize-delay to fix build problem (bug#49507). 2021-07-16 Eli Zaretskii Fix wording in a recent ELisp manual change * doc/lispref/tips.texi (Coding Conventions): Fix wording in a recent change. (Bug#21440) 2021-07-16 Lars Ingebrigtsen Allow hiding variables in Customize * lisp/cus-edit.el (custom-toggle-hide-variable): Allow closing an option even if there are unsaved changes (bug#11655). 2021-07-16 Remington Furman (tiny change) Make `number-at-point' work for more hex numbers * lisp/thingatpt.el (number-at-point): Rewrite to actually catch the hex numbers (bug#49588). 2021-07-16 Lars Ingebrigtsen Clarify -unload-feature in Coding Conventions * doc/lispref/tips.texi (Coding Conventions): Clarify when an unload function is useful (bug#21440). 2021-07-16 Lars Ingebrigtsen Add a couple more shell-tests-split-string tests 2021-07-15 Glenn Morris Improve recent jka-compr-compression-info-list change * lisp/jka-cmpr-hook.el (jka-compr-compression-info-list): Document previous change, and fix :type. 2021-07-15 Tassilo Horn Add bug-reference support for Codeberg projects * lisp/progmodes/bug-reference.el (bug-reference-setup-from-vc-alist): Add support for codeberg.org bug and pull request references. * doc/emacs/maintaining.texi (Bug Reference): Mention that bug and pull request references for codeberg projects are supported. 2021-07-15 Tassilo Horn Add support for sourcehut to bug-reference.el * lisp/progmodes/bug-reference.el (bug-reference-setup-from-vc-alist): Add support for bug references like #17 and ~user/project#19 for sourcehut (sr.ht). * doc/emacs/maintaining.texi (Bug Reference): Document sourcehut support. 2021-07-15 Lars Ingebrigtsen Add more car/cdr examples to shortdoc * lisp/emacs-lisp/shortdoc.el (list): Add more car/cdr examples. 2021-07-15 Lars Ingebrigtsen Improve the shortdoc link action in *Help* buffers * lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Allow taking an optional parameter to place point on a specific function. (shortdoc--display-function): Go to the function in question in the shortdoc buffer. 2021-07-15 Lars Ingebrigtsen Add new user option to abbreviate file names in save-place * lisp/saveplace.el (save-place-abbreviate-file-names): New user option (bug#13286). (save-place-to-alist): Use it. 2021-07-15 Lars Ingebrigtsen Allow restoring the original order in 'tabulated-list-mode' * lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort): Allow restoring the original order (bug#13411). (tabulated-list--sort-by-column-name): Store the original order. (tabulated-list--original-order): New buffer-local variable. 2021-07-15 Protesilaos Stavrou Update modus-themes to version 1.5.0 * doc/misc/modus-themes.org (Enable and load): Include internal link. (Sample configuration for use-package): Update code sample. (Customization Options): Update references to customization options. (Option for more italic constructs): Document new variable, as an alias of the deprecated 'modus-themes-slanted-constructs'. (Option for syntax highlighting, Option for links) (Option for command prompt styles, Option for mode line presentation) (Option for language checkers) (Option for line highlighting (hl-line-mode)) (Option for parenthesis matching (show-paren-mode)) (Option for active region, Option for the headings' overall style): Update documentation to describe new possible values, expressed as a list of symbols. (Option for Org agenda constructs): Document new user option. (Control the scale of headings): Update symbol of variable. (Remap face with local value (DIY), Backdrop for pdf-tools (DIY)): Tweak text of internal reference. (Font configurations for Org and others (DIY)): Add internal link and document how to configure the 'bold' and 'italic' faces. (Custom Org user faces (DIY)): Minor corrections or changes to single words. (Full support for packages or face groups): Include new items. (Notes on individual packages): Add notes on Avy hints, the colour of days in 'M-x calendar', and underlines in 'compilation-mode' buffers. (What is the best setup for legibility?): Remove single word. (Acknowledgements): Update list of contributors. * etc/themes/modus-themes.el (modus-themes-faces) (modus-themes-operandi-colors, modus-themes-vivendi-colors) (modus-themes-subtle-red, modus-themes-subtle-green) (modus-themes-subtle-yellow, modus-themes-subtle-blue) (modus-themes-subtle-magenta, modus-themes-subtle-cyan) (modus-themes-subtle-neutral, modus-themes-intense-red) (modus-themes-intense-green, modus-themes-intense-yellow) (modus-themes-intense-blue, modus-themes-intense-magenta) (modus-themes-intense-cyan, modus-themes-intense-neutral) (modus-themes-refine-red, modus-themes-refine-green) (modus-themes-refine-yellow, modus-themes-refine-blue) (modus-themes-refine-magenta, modus-themes-refine-cyan) (modus-themes-active-red, modus-themes-active-green) (modus-themes-active-yellow, modus-themes-active-blue) (modus-themes-active-magenta, modus-themes-active-cyan) (modus-themes-fringe-red, modus-themes-fringe-green) (modus-themes-fringe-yellow, modus-themes-fringe-blue) (modus-themes-fringe-magenta, modus-themes-fringe-cyan) (modus-themes-nuanced-red, modus-themes-nuanced-green) (modus-themes-nuanced-yellow, modus-themes-nuanced-blue) (modus-themes-nuanced-magenta, modus-themes-nuanced-cyan) (modus-themes-special-cold, modus-themes-special-mild) (modus-themes-special-warm, modus-themes-special-calm) (modus-themes-diff-added, modus-themes-diff-changed) (modus-themes-diff-removed, modus-themes-diff-refine-added) (modus-themes-diff-refine-changed, modus-themes-diff-refine-removed) (modus-themes-diff-focus-added, modus-themes-diff-focus-changed) (modus-themes-diff-focus-removed, modus-themes-diff-heading) (modus-themes-pseudo-header, modus-themes-mark-alt) (modus-themes-mark-del, modus-themes-mark-sel, modus-themes-mark-symbol) (modus-themes-heading-1, modus-themes-heading-2, modus-themes-heading-3) (modus-themes-heading-4, modus-themes-heading-5, modus-themes-heading-6) (modus-themes-heading-7, modus-themes-heading-8, modus-themes-hl-line) (modus-themes-bold, modus-themes-slant, modus-themes-variable-pitch) (modus-themes-graph-red-0, modus-themes-graph-red-1) (modus-themes-graph-green-0, modus-themes-graph-green-1) (modus-themes-graph-yellow-0, modus-themes-graph-yellow-1) (modus-themes-graph-blue-0, modus-themes-graph-blue-1) (modus-themes-graph-magenta-0, modus-themes-graph-magenta-1) (modus-themes-graph-cyan-0, modus-themes-graph-cyan-1) (modus-themes-lang-note, modus-themes-lang-warning) (modus-themes-lang-error, modus-themes-reset-soft) (modus-themes-reset-hard, modus-themes-key-binding) (modus-themes-search-success, modus-themes-search-success-modeline) (modus-themes-search-success-lazy): Add new ':group' specification for custom faces. (modus-themes-operandi-color-overrides) (modus-themes-vivendi-color-overrides, modus-themes-bold-constructs) (modus-themes-variable-pitch-headings, modus-themes-variable-pitch-ui) (modus-themes-no-mixed-fonts, modus-themes-fringes) (modus-themes-scale-headings, modus-themes-scale-1, modus-themes-scale-2) (modus-themes-scale-3, modus-themes-scale-4, modus-themes-scale-title) (modus-themes-org-blocks, modus-themes-completions) (modus-themes-success-deuteranopia, modus-themes-mail-citations) (modus-themes-subtle-line-numbers, modus-themes-intense-hl-line): Add custom setter. (modus-themes-scale-5, modus-themes-scale-title): Deprecate variable and replace it with alias 'modus-themes-scale-title'. (modus-themes-slanted-constructs, modus-themes-italic-constructs): Deprecate variable and replace it with alias 'modus-themes-italic-constructs'. (modus-themes-org-habit, modus-themes-org-agenda): Deprecate variable and make its functionality a part of 'modus-themes-org-agenda'. (modus-themes-headings, modus-themes-mode-line, modus-themes-diffs) (modus-themes-prompts, modus-themes-paren-match, modus-themes-syntax) (modus-themes-links, modus-themes-region, modus-themes-lang-checkers) (modus-themes-org-blocks): Make user options accept a value as a list of properties. (modus-themes--mixed-fonts, modus-themes--slant) (modus-themes--fixed-pitch, modus-themes--lang-check) (modus-themes--prompt, modus-themes--paren) (modus-themes--syntax-foreground, modus-themes--syntax-extra) (modus-themes--syntax-string, modus-themes--syntax-docstring) (modus-themes--syntax-comment, modus-themes--heading-p) (modus-themes--heading, modus-themes--org-habit) (modus-themes--mode-line-attrs, modus-themes--link-color) (modus-themes--link, modus-themes--region, modus-themes--hl-line): Update internal functions to parse new values for user options. * etc/themes/modus-operandi-theme.el, etc/themes/modus-vivendi-theme.el: Bump version number. A detailed change log is provided here (no javascript required): . 2021-07-15 Lars Ingebrigtsen Autoload `split-string-shell-command' * lisp/shell.el (split-string-shell-command): Autoload. 2021-07-15 Eli Zaretskii Fix 'shell-tests-split-string' on MS-Windows * test/lisp/shell-tests.el (shell-tests-split-string): Skip test that always fails on MS-Windows/MS-DOS. 2021-07-15 Lars Ingebrigtsen Improve the `window-end' doc string * src/window.c (Fwindow_end): Be more explicit about what the position is (bug#13429). 2021-07-15 Lars Ingebrigtsen Mention more split-string-* functions in shortdoc * lisp/emacs-lisp/shortdoc.el (string): Mention split-string-and-unquote and split-string-shell-command. 2021-07-15 Lars Ingebrigtsen Allow using spaces in `inferior-lisp' command names * lisp/progmodes/inf-lisp.el (inferior-lisp): Allow using spaces in the command names (by splitting using shell syntax) (bug#16005). 2021-07-15 Lars Ingebrigtsen Rename shell-split-string to split-string-shell-command * lisp/shell.el (split-string-shell-command): * doc/lispref/processes.texi (Shell Arguments): Rename from shell-split-string. 2021-07-15 Lars Ingebrigtsen Add a new function 'shell-split-string' * doc/lispref/processes.texi (Shell Arguments): Document it. * lisp/shell.el (shell-split-string): New function. 2021-07-15 Lars Ingebrigtsen Clarify overriding-local-map doc string * src/keyboard.c (syms_of_keyboard): Clarify `overriding-local-map' vs. text properties/overlays (bug#16312). 2021-07-15 Paul Eggert Pacify gcc -Woverflow more clearly * src/alloc.c (mark_maybe_pointer): Make it clearer that ANDing with UINTPTR_MAX is intended. Omit a now-unnecessary cast. 2021-07-14 Michael Albinus Preserve backward compatibility in Tramp * lisp/net/tramp-crypt.el (tramp-crypt-handle-lock-file) (tramp-crypt-handle-unlock-file): Preserve backward compatibility. * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Do not create lock file twice. * lisp/net/tramp.el (tramp-handle-make-lock-file-name): Move lock file security check ... (tramp-handle-lock-file): ... here. (tramp-handle-unlock-file): Preserve backward compatibility. * test/lisp/net/tramp-tests.el (lock-file-name-transforms) (remote-file-name-inhibit-locks): Declare. (tramp-allow-unsafe-temporary-files): Set to t. (tramp-test37-make-auto-save-file-name) (tramp-test38-find-backup-file-name): Move binding of `tramp-allow-unsafe-temporary-files' up. (tramp-test39-lock-file): Bind `tramp-allow-unsafe-temporary-files'. Preserve backward compatibility. Extend test. 2021-07-14 Lars Ingebrigtsen Fontify the signature separator in Message mode * lisp/gnus/message.el (message-signature-separator): New face (bug#17757). (message-font-lock-keywords): Add it to the signature, and ensure that the trailing space isn't removed when hitting RET. (message--match-signature): New helper function. 2021-07-14 Lars Ingebrigtsen Clarify backward-delete-char-untabify doc string * lisp/simple.el (backward-delete-char-untabify): Mention the effect of Transient Mark mode (bug#17263). 2021-07-14 Lars Ingebrigtsen * etc/NEWS: Add back a missing apostrophe. 2021-07-14 Lars Ingebrigtsen switch-to-buffer-other-frame doc string improvement * lisp/window.el (switch-to-buffer-other-frame): Document that we don't always display the buffer in a different frame (bug#17719). 2021-07-14 Lars Ingebrigtsen Fix hilit-chg highlighting of characters where text has been removed * lisp/hilit-chg.el (hilit-chg-set-face-on-change): Remove highlighting from characters that are just highlighted because of something that has been previously deleted (bug#17784). 2021-07-14 Eli Zaretskii Fix deprecation warnings from libtiff * src/image.c (UINT32) [TIFFLIB_VERSION >= 20210416]: Define to use stdint.h type for recent libtiff versions. Reported by Andy Moreton . 2021-07-14 Michael Albinus * etc/NEWS (insert-into-buffer'): Fix thinko. 2021-07-14 Lars Ingebrigtsen Make `apropos-library' also work for libraries without symbols * lisp/apropos.el (apropos--preamble): Factor out (bug#17832)... (apropos-print-doc): ... from here. (apropos-library): Use it to display the apropos buffer even if it has no symbols of its own. 2021-07-14 Juri Linkov Revert e0619995594d1686afd0493391417d6f900d632c that added save-match-data. * lisp/isearch.el (isearch-filter-predicate): Mention precautions against clobbering the match data in docstring (bug#49534). 2021-07-14 Juri Linkov * lisp/isearch.el: Add save-match-data for funcall isearch-filter-predicate. * lisp/isearch.el (isearch-search): Add save-match-data before funcall isearch-filter-predicate. (isearch-lazy-highlight-search): Add save-match-data before funcall isearch-filter-predicate. (Bug#49534) 2021-07-14 Lars Ingebrigtsen Add a better interactive spec to `facemenu-add-face' * lisp/facemenu.el (facemenu-add-face): Use `read-face-name' (bug#18369) by copying over the interactive spec from facemenu-set-face. 2021-07-13 Lars Ingebrigtsen Make jka-compr-insert-file-contents slightly more efficient * lisp/jka-compr.el (jka-compr-insert-file-contents): Make more efficient by using `insert-into-buffer'. 2021-07-13 Lars Ingebrigtsen Add new function 'insert-into-buffer' * doc/lispref/text.texi (Insertion): Document it. * lisp/subr.el (insert-into-buffer): New function. 2021-07-13 Lars Ingebrigtsen Fall back on zlib-decompress-region if gzip doesn't exist * lisp/jka-cmpr-hook.el (jka-compr-info-uncompress-function): New function (bug#18823). (jka-compr-compression-info-list): Expand info with decompression function. * lisp/jka-compr.el (jka-compr-insert-file-contents): Fall back on internal decompression function if external doesn't exist. 2021-07-13 Daniel Martín Fix dired-number-of-marked-files when there are no marked files * lisp/dired.el (dired-number-of-marked-files): Fix if expression so that the else part is evaluated correctly. 2021-07-13 Stefan Monnier * doc/lispref/modes.texi (Multiline Font Lock): Tweak last change 2021-07-13 Lars Ingebrigtsen Allow not updating Customize settings in set-frame-font * lisp/frame.el (set-frame-font): Allow not updating the Customization settings (bug#19298). 2021-07-13 Lars Ingebrigtsen Document the syntax-multilne text property * doc/lispref/modes.texi (Multiline Font Lock): Document the syntax-multiline text property (bug#20436). 2021-07-13 Juri Linkov Support Isearch filter predicates with empty search hits (bug#49534) * lisp/isearch.el (isearch-search): Move (= (match-beginning 0) (match-end 0)) and (bobp)/(eobp) outside the call to isearch-filter-predicate. Use forward-char 1/-1 on empty matches only when going to retry search. (isearch-lazy-highlight-search): Remove (= (point) bound), but leave (= (match-beginning 0) (match-end 0)) since empty matches make no sense in lazy-highlighting. 2021-07-13 Lars Ingebrigtsen Make 'tex-validate-buffer' work again * lisp/textmodes/tex-mode.el (tex-validate-buffer): The *Occur* buffer is read-only, so inhibit that before inserting things into it (bug#19326). 2021-07-13 Michael Albinus Add remote-file-name-inhibit-locks * doc/emacs/files.texi (Interlocking): * doc/lispref/files.texi (File Locks): * doc/misc/tramp.texi (Auto-save File Lock and Backup): Add remote-file-name-inhibit-locks. * etc/NEWS: New user option 'remote-file-name-inhibit-locks'. * lisp/files.el (remote-file-name-inhibit-locks): New defcustom. * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): Use `tramp-handle-make-lock-file-name'. * lisp/net/tramp.el (tramp-allow-unsafe-temporary-files): Fix docstring. (tramp-handle-make-lock-file-name): New defun. * test/lisp/net/tramp-tests.el (tramp-test39-lock-file): Extend test. 2021-07-13 Lars Ingebrigtsen Add new user option to avoid piling on Dired buffers * doc/emacs/dired.texi (Dired Visiting): Document it. * lisp/dired.el (dired-kill-when-opening-new-dired-buffer): New user option (bug#20598). (dired-up-directory, dired-find-file): Use it. (dired--find-possibly-alternative-file): New convenience command to respect the user option. 2021-07-13 Mattias Engdegård Block TLS handshake until TCP connection established If a TLS handshake is attempted before the completion of an asynchronous TCP connection has been ascertained, our local state will not be set up correctly for further progress and the sentinel "open" event will never be sent. This can occur if sufficient time passes after the initiation of an async TCP connection so that by the time `wait_reading_process_output` is called, the connection has already been established on the TCP level. This somewhat timing-sensitive bug has plagued HTTPS connections on some platforms, notably macOS, for a long time (bug#49449). * src/process.c (wait_reading_process_output): Gate the TLS handshake by the NON_BLOCKING_CONNECT_FD flag. The flag will be cleared as soon as the TCP socket is found to be writable. * test/src/process-tests.el (process-async-https-with-delay): New test. 2021-07-13 Ken Brown Fix portability issue with make-serial-process * src/sysdep.c (struct speed_struct): New struct. (speeds): New static array of struct speed_struct. (convert_speed): New static function to convert a numerical baud rate (e.g., 9600) to a Bnnn constant defined in termios.h (e.g., B9600). (serial_configure): Use convert_speed to make the call to cfsetspeed compliant with its advertised API. (Bug#49524) 2021-07-13 Eli Zaretskii One more minor update of the Emacs manual for 19th printing * doc/emacs/back.texi: * doc/emacs/book-spine.texi: * doc/emacs/emacs.texi: Last round of minor copyedits for 19th ed. 2021-07-12 Michael Albinus Fix a problem with tramp-*-process-file * lisp/net/tramp-adb.el (tramp-adb-handle-process-file): * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): * lisp/net/tramp-smb.el (tramp-smb-handle-process-file): * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Use `(expand-file-name default-directory)'. 2021-07-12 Paul Eggert Port test module to glibc 2.33 * test/Makefile.in (REPLACE_FREE, FREE_SOURCE_0, FREE_SOURCE_1): New macros. ($(test_module)): Improve accuracy of test as to whether free.c should be compiled; glibc 2.33 does not need it compiled and the compilation breaks if you try, if you build with --enable-gcc-warnings. 2021-07-12 Paul Eggert Pacify gcc 11.1.1 -Wclobbered * src/eval.c (Fprogn, internal_lisp_condition_case): Add CACHEABLE to work around more instances of -Wclobbered bug. 2021-07-12 Paul Eggert Pacify gcc 11.1.1 -Wanalyzer-possible-null-dereference * oldXMenu/Create.c (XMenuCreate): * oldXMenu/Internal.c (_XMRecomputePane, _XMRecomputeSelection): * oldXMenu/XMakeAssoc.c (XMakeAssoc): * test/src/emacs-module-resources/mod-test.c (Fmod_test_userptr_make): Don’t assume that malloc and calloc succeed. 2021-07-12 Paul Eggert Pacify gcc 11.1.1 -Wanalyzer-null-argument * lib-src/etags.c (regexp): Omit member force_explicit_name, since it’s always true. All uses removed. This lets us remove calls to strlen (name) where GCC isn’t smart enough to deduce that name must be nonnull. * lib-src/movemail.c (main): Fix bug that could cause link (tempname, NULL) to be called. * src/emacs.c (argmatch): Break check into two ‘if’s, since GCC doesn’t seem to be smart enough to check the single ‘if’. * src/gtkutil.c (xg_update_menu_item): Fix bug where strcmp could be given a NULL arg. * src/xfont.c (xfont_list_family): Use nonnull value for dummy initial value. 2021-07-12 Paul Eggert Pacify gcc -Woverflow more nicely * src/alloc.c (mark_maybe_pointer): Simplify pacification of gcc -Woverflow (unknown GCC version). 2021-07-12 Juri Linkov * lisp/textmodes/enriched.el: Require 'facemenu' (bug#49466) 2021-07-11 Eric Abrahamsen Further tweaks to gnus-search-query-expand-key * lisp/gnus/gnus-search.el (gnus-search-query-expand-key): It's possible that KEY could be partially completed (ie no longer string= to COMP), but not all the way. Use a more accurate test. Add docstring. 2021-07-11 Michael Albinus Use `auto-save-file-name-p' in tramp-*-write-region * lisp/net/tramp.el (tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Use `auto-save-file-name-p'. 2021-07-11 Eli Zaretskii Fix compilation of the --with-wide-int configuration * src/alloc.c (mark_maybe_pointer): Fix a recent change for WIDE_EMACS_INT builds. (Bug#49261) 2021-07-11 Paul Eggert Pacify GCC 11.1.1 20210531 (Red Hat 11.1.1-3) * src/image.c (xpm_load_image): * src/xfns.c (x_icon): Rework to pacify gcc -Wmaybe-uninitialized. 2021-07-11 Paul Eggert Make pdumper-marking pickier Prevent some false-positives in conservative GC marking. This doesn’t fix any correctness bugs; it’s merely to reclaim some memory instead of keeping it unnecessarily. * src/alloc.c (mark_maybe_pointer): New arg SYMBOL_ONLY. All callers changed. Check that the pointer’s tag, if any, matches the pdumper-reported type. 2021-07-11 Paul Eggert Fix pdumper-related GC bug * src/alloc.c (mark_maybe_pointer): Also mark pointers to pdumper objects, even when the pointers are tagged. Add a FIXME saying why this isn’t enough. 2021-07-11 Eric Abrahamsen Rewrite gnus-search-query-expand-key * lisp/gnus/gnus-search.el (gnus-search-query-expand-key): There was a misunderstanding about how completion-all-completion works (if the test string can't be completed, the whole table is returned). Simplify to use try-completion. * test/lisp/gnus/gnus-search-tests.el (gnus-s-expand-keyword): Ensure that an unknown/uncompletable keyword is returned unmolested. 2021-07-11 Eric Abrahamsen Rework gnus-search-indexed-parse-output * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Be more careful about matching filesystem paths to Gnus group names; make absolutely sure that we only return valid article numbers. 2021-07-11 Matthew White * src/buffer.c (kill-buffer): Fix a typo. * src/buffer.c (Fkill_buffer): Fix typo in comment. 2021-07-10 Filipp Gunbin doc/lispref/text.texi (Substitution): Add subst-char-in-string * doc/lispref/text.texi (Substitution): Document subst-char-in-string (bug#49420). 2021-07-10 Lars Ingebrigtsen Make package-menu-filter-by-status work as documented * lisp/emacs-lisp/package.el (package-menu-filter-by-status): Work as documented (bug#49474). 2021-07-09 Ken Brown Skip a process test on Cygwin to avoid hang * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-network-process): Skip test on Cygwin to avoid hang due to connect/accept handshake. (Bug#49496) 2021-07-09 Stefan Monnier * lisp/facemenu.el: Preload the C-mouse-2 menu binding 2021-07-09 Michael Albinus Further cleanup for file locks * doc/misc/tramp.texi (Top, Configuration): Adapt node name for file locks. (Auto-save File Lock and Backup): Rename node name and section title. Add file-lock to @cindex. Describe file locks. * lisp/dired.el (dired-trivial-filenames): Add lock files. (dired-font-lock-keywords): Move files suffixed with `completion-ignored-extensions' up. Add lock files to these checks. * lisp/net/tramp.el (tramp-get-lock-file, tramp-handle-unlock-file): Use `when-let' (tramp-lock-file-info-regexp): Rename from `tramp-lock-file-contents-regexp'. (tramp-handle-file-locked-p, tramp-handle-lock-file): Adapt callees. (tramp-handle-lock-file): Set file modes of lockname. * src/buffer.c (Frestore_buffer_modified_p): * src/fileio.c (write_region): * src/insdel.c (prepare_to_modify_buffer_1): Call Flock_file. * src/filelock.c (Qmake_lock_file_name): Declare symbol. (make_lock_file_name): Use it. Don't check Fboundp, it doesn't work for interned symbols. (lock_file): Return a Lisp_Object. Don't check create_lockfiles. Remove MSDOS version of the function. (Flock_file): Check create_lockfiles. (Flock_buffer): Call Flock_file. * src/lisp.h (lock_file): Remove. * test/lisp/shadowfile-tests.el (shadow-test08-shadow-todo) (shadow-test09-shadow-copy-files): Let-bind `create-lockfiles'. * test/lisp/net/tramp-tests.el (create-lockfiles): Don't set it globally. (tramp-test39-lock-file): Check also for `set-visited-file-name'. 2021-07-09 Eli Zaretskii Partially restore the lost C-mouse-2 drop-down menu This allows to pop up the Text Properties menu once facemenu is loaded. It still doesn't allow C-mouse-2 clicks without manually loading facemenu; FIXME. * lisp/facemenu.el (global-map) : Add back the removed binding. (Bug#49466) 2021-07-09 Stefan Monnier * lisp/outline.el (outline-mode-cycle-map): Don't bind `tab`. Since it would take precedence over bindings for TAB in higher precedence maps. 2021-07-08 Michael Albinus * doc/lispref/files.texi (Magic File Names): Add make-lock-file-name. 2021-07-08 Michael Albinus Code cleanup wrt file locks * lisp/files.el (make-lock-file-name): Fix docstring. * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): Add `make-lock-file-name'. * lisp/net/tramp.el (tramp-file-name-for-operation): Add `make-lock-file-name'. (tramp-handle-unlock-file): Call `userlock--handle-unlock-error' in case of error. * src/buffer.c (Frestore_buffer_modified_p): * src/editfns.c (Freplace_buffer_contents): * src/fileio.c (Finsert_file_contents, write_region): Call Funlock_file. * src/filelock.c (unlock_file): Rename from unlock_file_body. Remove the other declarations of unlock_file. Move file name handler check to ... (Funlock_file): ... here. Adapt argument numbers. Call unlock_file wrapped by internal_condition_case. (Flock_file): Adapt argument numbers. (unlock_all_files, Funlock_buffer, unlock_buffer): Call Funlock_file. * src/lisp.h (unlock_file): Remove. 2021-07-08 Juri Linkov Don't turn mouse-1 into mouse-2 when clicking on the tab-line (bug#49247) * lisp/tab-line.el (tab-line-tab-name-format-default): For 'tab-line-tab-map' add the property 'follow-link' with the value 'ignore'. 2021-07-08 pillule Use display-buffer with re-builder (bug#49069) * lisp/emacs-lisp/re-builder.el (re-builder): Uses 'display-buffer' with 'display-buffer-in-direction' to display the reb-buffer. This allow user-customizations and using it on not splitables windows. Add a dedication to its window so killing this buffer quit the window. 2021-07-08 Lars Ingebrigtsen Make desktop-kill more robust * lisp/desktop.el (desktop-kill): Allow exiting Emacs even if we can't delete the desktop file (bug#20762). 2021-07-08 Lars Ingebrigtsen Allow inhibiting inserting #! in sh-set-shell * lisp/progmodes/sh-script.el (sh-set-shell): Allow inhibiting inserting the #! line (bug#20959). 2021-07-08 Lars Ingebrigtsen Avoid making backup files in ediff when `make-backup-files' is nil * lisp/vc/ediff-util.el (ediff-arrange-autosave-in-merge-jobs): Don't make backup files when `make-backup-files' is nil (bug#21599). 2021-07-08 Lars Ingebrigtsen Make ido-mode override ffap-file-finder * lisp/ffap.el: Autoload so that we can override in ido (bug#21980). * lisp/ido.el (ido-everywhere): Override ffap-file-finder. 2021-07-08 Michael Albinus Some further adaptions wrt Tramp file name locks * lisp/files.el (files--transform-file-name): Rename from `auto-save--transform-file-name'. Wrap with `save-match-data'. (make-auto-save-file-name): Use it. (make-lock-file-name): Use it. Call file name handler. * lisp/net/tramp.el (tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): Suppress file lock for temporary file. * lisp/net/tramp-compat.el (tramp-compat-make-lock-file-name): New defalias. * lisp/net/tramp.el (tramp-get-lock-file) (tramp-handle-lock-file, tramp-handle-unlock-file): Use it. (tramp-make-lock-name): Remove. * test/lisp/filenotify-tests.el (file-notify-test03-events-remote): Tag it :unstable temporarily. 2021-07-08 Lars Ingebrigtsen Exclude term-mode from hi-lock global modes * lisp/hi-lock.el (hi-lock-exclude-modes): Exclude term-mode so that `C-x' works in terminal buffers (bug#22620). 2021-07-08 Lars Ingebrigtsen Fix font-lock of Makefile variables at the start of lines * lisp/progmodes/make-mode.el (makefile-var-use-regex): Match variables at the beginning of lines correctly (bug#23266). Change suggested by Anders Lindgren . 2021-07-08 N. Jackson Mention what happens with timers when the computer is asleep * doc/lispref/os.texi (Timers): Explain what happens if the computer is a asleep when the timer is scheduled (bug#23929). 2021-07-07 Lars Ingebrigtsen Make make_lock_file_name more robust * src/filelock.c (make_lock_file_name): Protect against the make-lock-file-name not being defined. (lock_file, unlock_file_body, Ffile_locked_p): Return early if not defined. 2021-07-07 Eli Zaretskii * lisp/faces.el: Fix a typo. 2021-07-07 Eli Zaretskii Fix last change * lisp/faces.el (tty-menu-enabled-face, tty-menu-disabled-face): Define for monochrome displays. 2021-07-07 Lars Ingebrigtsen Add new user option lock-file-name-transforms * doc/emacs/files.texi (Interlocking): Mention lock-file-name-transforms. * doc/lispref/files.texi (File Locks): Document lock-file-name-transforms. * doc/misc/efaq.texi (Not writing files to the current directory): Mention all the three variables needed to not having Emacs writing files to the current directory in one place. * lisp/files.el (lock-file-name-transforms): New user option (bug#49261). (make-auto-save-file-name): Factor out the main logic... (auto-save--transform-file-name): ... to this new function. (make-lock-file-name): New function that also calls the factored-out function. * src/filelock.c: Remove MAKE_LOCK_NAME and fill_in_lock_file_name. (make_lock_file_name): New utility function that calls out to Lisp to heed `lock-file-name-transforms'. (lock_file): Use it. Also remove likely buggy call to dostounix_filename. (unlock_file_body, Ffile_locked_p): Also use make_lock_file_name. 2021-07-07 Eli Zaretskii Fix tty menus on monochrome displays * lisp/faces.el (tty-menu-selected-face): Make sure the selected menu item stands out even without colors. 2021-07-07 Michael Albinus Implement file locks for remote files (Bug#49261) * doc/lispref/files.texi (Magic File Names): Add file-locked-p, lock-file and unlock-file. * etc/NEWS: Tramp supports file locks now. * lisp/net/tramp-adb.el (tramp-adb-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-adb-handle-write-region): Handle LOCKNAME. * lisp/net/tramp-archive.el (tramp-archive-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-crypt-handle-file-locked-p, tramp-crypt-handle-lock-file) (tramp-crypt-handle-unlock-file): New defun. * lisp/net/tramp-fuse.el (tramp-fuse-mounted-p): Simplify. (tramp-fuse-unmount): New defun. * lisp/net/tramp-gvfs.el (tramp-gvfs-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-gvfs-maybe-open-connection): Set "lock-pid" connection property. * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-rclone-maybe-open-connection): Set "lock-pid" connection property. * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-sh-handle-write-region): Handle LOCKNAME. * lisp/net/tramp-smb.el (tramp-smb-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-smb-handle-copy-directory): Use `sleep-for'. (tramp-smb-handle-write-region): Handle LOCKNAME. * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-sshfs-handle-write-region): Handle LOCKNAME. (tramp-sshfs-maybe-open-connection): Set "lock-pid" connection property. * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-sudoedit-maybe-open-connection): Set "lock-pid" connection property. * lisp/net/tramp.el (tramp-file-name-for-operation): Add `file-locked-p', `lock-file' and `unlock-file'. (tramp-make-lock-name, tramp-get-lock-file, tramp-get-lock-pid) (tramp-handle-file-locked-p, tramp-handle-lock-file) (tramp-handle-unlock-file): New defuns. (tramp-lock-file-contents-regexp): New regexp. (tramp-handle-write-region): Handle LOCKNAME. * src/filelock.c (lock_file, unlock_file_body, Ffile_locked_p): Call handler if exists. (Flock_file, Funlock_file): New defuns. (Qlock_file, Qunlock_file, Qfile_locked_p): Declare symbols. (Slock_file, Sunlock_file): Declare subroutines. * test/lisp/net/tramp-archive-tests.el (tramp-archive-test40-make-nearby-temp-file) (tramp-archive-test43-file-system-info): Rename. * test/lisp/net/tramp-tests.el (top): Set `create-lockfiles' to nil. (tramp--test-fuse-p): New defun. (tramp-test14-delete-directory): Use it. (tramp-test39-lock-file): New test. (tramp-test40-make-nearby-temp-file) (tramp-test41-special-characters) (tramp-test41-special-characters-with-stat) (tramp-test41-special-characters-with-perl) (tramp-test41-special-characters-with-ls, tramp-test42-utf8) (tramp-test42-utf8-with-stat, tramp-test42-utf8-with-perl) (tramp-test42-utf8-with-ls, tramp-test43-file-system-info) (tramp-test44-asynchronous-requests, tramp-test45-auto-load) (tramp-test45-delay-load, tramp-test45-recursive-load) (tramp-test45-remote-load-path, tramp-test46-unload): Rename. (tramp--test-special-characters, tramp--test-utf8) (tramp--test-asynchronous-requests-timeout): Modify docstring. 2021-07-07 Glenn Morris Merge from origin/emacs-27 fbf1cb2bf2 (origin/emacs-27) Fix overfull hbox in Emacs manual fda60094a2 Minor copyedits of Emacs manual # Conflicts: # doc/emacs/display.texi 2021-07-06 Lars Ingebrigtsen Make previous empty-body warning disabling more robust * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): `byte-compile-warning-enabled-p' may not be defined here. 2021-07-06 Basil L. Contovounesios Avoid invalid regexp in wide docstring check * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Avoid constructing an invalid regexp during byte-compilation by limiting the number of columns to the current RE_DUP_MAX of 65535. This protects against pathological values of fill-column, for example (bug#49426). 2021-07-06 Juri Linkov * lisp/repeat.el (describe-repeat-maps): Rename from `describe-repeat'. Fix text strings (bug#49265). 2021-07-06 Lars Ingebrigtsen Make `M-x clipboard-yank' work reliably * lisp/menu-bar.el (clipboard-yank): Make the command work consistently (bug#27442). * lisp/select.el (gui-selection-value): Try to explain why the logic is the way it is. 2021-07-06 Lars Ingebrigtsen Explain what ( . c) means to the Emacs Lisp reader * doc/lispref/objects.texi (Dotted Pair Notation): Explain what ( . c) means to the Lisp reader (bug#24875). 2021-07-06 Eli Zaretskii Fix right-margin display on TTY frames * src/dispnew.c (prepare_desired_row, adjust_glyph_matrix): Adjust the glyph pointer of the right-margin area for all windows but the rightmost ones on TTY frames, to account for the border glyph. (Bug#48257) 2021-07-06 Lars Ingebrigtsen Warn when wrapping index matches with `,' after `i' in Info * lisp/info.el (Info--current-index-alternative): New internal variable. (Info-warn-on-index-alternatives-wrap): New user option (bug#24282). (Info-index-next): Use the new user option. 2021-07-06 Protesilaos Stavrou Add faces for shr heading elements (bug#49433) * etc/NEWS: Document new faces. * lisp/net/shr.el (shr-h1, shr-h2, shr-h3, shr-h4, shr-h5, shr-h6): Define new faces. (shr-tag-h1): Remove inclusion of 'variable-pitch' face. Fix bug#49433 by applying a new face directly. (shr-tag-h2, shr-tag-h3, shr-tag-h4, shr-tag-h5, shr-tag-h6): Apply new faces. 2021-07-06 Lars Ingebrigtsen Make gnus-gcc-externalize-attachments work again * lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Allow externalizing parts again by defeating the cache (bug#49436). 2021-07-06 Lars Ingebrigtsen Allow inhibiting warnings about unused variables and empty bodies * lisp/emacs-lisp/cconv.el (cconv--warn-unused-msg): Allow inhibiting warnings about unbound variables (bug#26486). * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Allow inhibiting warnings about empty bodies. 2021-07-06 Lars Ingebrigtsen Allow using `mm-inline-message' from other mail clients than Gnus * lisp/gnus/mm-view.el (mm-inline-message-prepare-function): New variable (bug#49380). (mm-inline-message): Use it to separate out the Gnus-specific code. * lisp/gnus/gnus-art.el (gnus-mime-display-single): ... which has been moved here. 2021-07-06 Eli Zaretskii Fix overfull hbox in Emacs manual * doc/emacs/display.texi (Displaying Boundaries): Fix overfull hbox. 2021-07-06 Eli Zaretskii Minor copyedits of Emacs manual * doc/emacs/book-spine.texi: Fix the author attribution. (Bug#49405) * doc/emacs/back.texi: Update text. 2021-07-06 Philip Kaludercic Add query command removed in 4ff1f66b12 * lisp/net/rcirc.el (query): Readd accidentally removed command 2021-07-06 Philip Kaludercic Fix issues with argument parsing in rcirc-define-command * lisp/net/rcirc.el (rcirc-define-command): Fix issues 2021-07-06 Dmitry Gutov (xref--insert-xrefs): Fix printing of line numbers * lisp/progmodes/xref.el (xref--insert-xrefs): Fix printing of line numbers when we have multiple files with (e.g.) single match on the same line. 2021-07-05 Stephen Leake * lisp/progmodes/bug-reference.el: Refer to info manual node 2021-07-05 Lars Ingebrigtsen Support reverting in Customize buffers * lisp/cus-edit.el (custom--revert-buffer): New function (bug#26871). (Custom-mode): Set up reversion. (custom--invocation-options): New variable. (custom-buffer-create-internal): Set it. 2021-07-05 Lars Ingebrigtsen Count zero-length matches in `count-matches' correctly * lisp/replace.el (how-many): Count zero-length matches correctly (bug#27359). 2021-07-05 Lars Ingebrigtsen Propagate :safe properties when autoloading defcustoms * lisp/emacs-lisp/autoload.el (make-autoload): Propagate the :safe property to the loaddefs file (bug#28104). 2021-07-05 Lars Ingebrigtsen Make `bookmark--unfontify' more robust * lisp/bookmark.el (bookmark--unfontify): Don't bug out if there's no fontification recorded (bug#49341). 2021-07-05 Lars Ingebrigtsen `image-save' doc string clarification * lisp/image.el (image-save): Clarify what's being saved (bug#49347). 2021-07-05 Michael Albinus Don't use LOCKNAME for temp files in Tramp (Bug#49406) * lisp/net/tramp.el (tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-write-region): Don't use LOCKNAME for temp file. (Bug#49406) * test/lisp/shadowfile-tests.el (password-cache-expiry): Set `shadow-debug' also on emba. 2021-07-05 Martin Rudalics Show hand cursor when dragging frame (Bug#49247) * src/xdisp.c (note_mode_line_or_margin_highlight): Show hand cursor when dragging frame with mode, tab or header line. (syms_of_xdisp): Define Qdrag_with_mode_line, Qdrag_with_header_line and Qdrag_with_tab_line. 2021-07-05 Michael Albinus Fix newly introduced error in tramp-tests.el (Bug#49406) * test/lisp/net/tramp-tests.el (tramp--test-check-files): Filter out empty strings. (Bug#49406) 2021-07-04 Lars Ingebrigtsen Ignore .dir-locals-2.el files more * lisp/emacs-lisp/shadow.el (load-path-shadows-find): * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Ignore .dir-locals-2.el, too (bug#23257). 2021-07-04 Jim Porter Ensure 'call-process' interprets INFILE as a local path * src/callproc.c (get_current_directory): Rename from 'encode_current_directory' and add boolean ENCODE flag. (Fcall_process): Interpret INFILE relative to the working directory from which PROGRAM is run, not 'default-directory'. (call_process): Use 'get_current_directory'. * src/process.c (Fmake_process): Use 'get_current_directory'. * src/process.h (get_current_directory): Rename decl from 'encode_current_directory'. * src/sysdep.c (sys_subshell): Use 'get_current_directory' (bug#49283). 2021-07-04 Lars Ingebrigtsen Adjust eshell and ps-print to not use emacs-kill-hook * lisp/ps-print.el (ps-kill-emacs-check): * lisp/eshell/em-dirs.el (eshell-dirs-initialize) (eshell-save-some-last-dir): Don't use `emacs-kill-hook' (bug#28943). * lisp/eshell/em-hist.el (eshell-hist-initialize) (eshell-save-some-history): 2021-07-04 Eli Zaretskii * lisp/url/url-util.el (url-unhex-string): Doc fix. 2021-07-04 Eli Zaretskii Avoid deprecation warnings with Texinfo 6.8 * doc/lispref/functions.texi (Function Safety): * doc/misc/srecode.texi (Parts of SRecode): * doc/misc/wisent.texi (Wisent Semantic, Wisent Lex): * doc/misc/pcl-cvs.texi (Editing files): * doc/misc/bovine.texi (top, Starting Rules) (Bovine Grammar Rules, How Lexical Tokens Match) (Optional Lambda Expression): * doc/emacs/msdos.texi (Windows Keyboard): * doc/emacs/buffers.texi (Several Buffers): * doc/emacs/text.texi (Text): Avoid using @inforef, which is deprecated. 2021-07-04 Alan Third Fix crash in GNUstep font coverage check * src/nsfont.m (ns_charset_covers): Check coverage more accurately and don't automatically assume the buffer is 8192 bytes long. 2021-07-04 Alan Third Remove unused variables * src/nsterm.m ([EmacsView keyDown:]): Remove ns_fake_keydown as there's no code that ever sets it to YES. 2021-07-04 Alan Third Fix thread memory management under NS * src/thread.c (run_thread): Allocate an autorelease pool so that any autoreleased Objective C objects are correctly released. 2021-07-04 Amin Bandali Update a few more IRC-related references to point to Libera.Chat 2021-07-04 Amin Bandali Merge from origin/emacs-27 348b2aed0c Update IRC-related references to point to Libera.Chat b0e725e2fe Fix typo in c-macro-expand docstring # Conflicts: # doc/misc/erc.texi # doc/misc/gnus-faq.texi # doc/misc/rcirc.texi # etc/NEWS # lisp/erc/erc-services.el # lisp/erc/erc.el # lisp/ldefs-boot.el # lisp/net/rcirc.el 2021-07-04 Amin Bandali Merge from origin/emacs-27 d898d3c73a ; * doc/emacs/back.texi: Fix a typo. de52dbd4ad Update doc/emacs/ for a new printing of the Emacs Manual book 2021-07-04 Amin Bandali Update IRC-related references to point to Libera.Chat Per GNU and FSF's announcements [0, 1] of moving official IRC channels to the Libera.Chat IRC network, as well as several Emacs-related channels following suit [2], update IRC-related references to reflect the migration. [0]: https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00005.html [1]: https://lists.gnu.org/archive/html/info-gnu/2021-06/msg00007.html [2]: https://lists.gnu.org/archive/html/info-gnu-emacs/2021-06/msg00000.html 2021-07-04 Dmitry Gutov Speed up fido-mode * lisp/icomplete.el (icomplete-completions): Speed up fido-mode (bug#48841). 2021-07-03 Daniel Martín Fix typo in c-macro-expand docstring * lisp/progmodes/cmacexp.el (c-macro-expand): Fix typo. (Bug#49356) 2021-07-03 Christopher League Retain documentation string when customizing theme * lisp/cus-theme.el (customize-create-theme): When editing an existing theme, load its doc string into the description widget, instead of replacing it with a date stamp (Bug#49274). 2021-07-02 Philip Kaludercic * lisp/net/rcirc.el (rcirc-define-command): Mention name of malformed command Author: 2021-07-02 Lars Ingebrigtsen Don't have desktop-save-mode query on `M-x kill-emacs' * lisp/desktop.el (noninteractive): Prompting functions should not be added to `kill-emacs-hook' (bug#28943). (desktop-kill): Return t so that it can be used from `kill-emacs-query-functions'. 2021-07-02 Michael Albinus Implement another fix for bug#49229 * lisp/minibuffer.el (read-file-name-default): Respect remote files. (Bug#49229) * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name): Handle special file names on MS Windows. * lisp/net/tramp.el (tramp-file-name-handler): Revert patch. (Bug#49229) 2021-07-02 Peter Oliver Hide emacs-mail.desktop, emacsclient-mail.desktop from menus These are intended for use as mailto: URL handlers, not for launching directly, so we can reduce clutter by hiding them from a desktop environment’s menus. * etc/emacs-mail.desktop, etc/emacsclient-mail.desktop: NoDisplay=true 2021-07-02 Peter Oliver Install emacs-mail.desktop and emacsclient-mail.desktop * Makefile.in (install-etc): Install emacs-mail.desktop and emacsclient-mail.desktop 2021-07-02 Peter Oliver Provide an emacsclient-mail.desktop We provide both an emacs.desktop and an emacsclient.desktop, so for consistency let’s do the same with mail. * etc/emacs-mail.desktop: Extract suggestions for using emacsclient from comments to create emacsclient-mail.desktop. * etc/emacsclient-mail.desktop: Send mail using an existing Emacs rather than starting a new one. 2021-07-02 Tino Calancha lisp/auth-source-pass.el: Keep legitimate spaces inside data Users should be able to store a field as follows: message: remember: Destroy the image and you will break the enemy and later, recover the message untouched, i.e.: "remember: Destroy the image and you will break the enemy" * lisp/auth-source-pass.el (auth-source-pass--parse-data): Preserve inner spaces at data. * test/lisp/auth-source-pass-tests.el (auth-source-pass-parse-with-colons-in-data): Add test. 2021-07-02 Iku Iwasa lisp/auth-source-pass.el: Support multiple hosts in search spec * lisp/auth-source-pass.el (auth-source-pass-search): Accept a list of strings for argument HOST. (auth-source-pass--build-result): Rename argument HOST to HOSTS. Also return value "host" from entry if it exists. (auth-source-pass--find-match): Rename argument HOST to HOSTS. Iterate over each host in HOSTS. * test/lisp/auth-source-pass-tests.el: Add corresponding tests 2021-07-02 Jim Porter Don't pass 'null-device' to 'call-process' in ispell * lisp/textmodes/ispell.el (ispell-find-hunspell-dictionaries): Replace 'null-device' with nil (bug#49283). This allows running a local ispell process when editing a buffer editing a file via Tramp. 2021-07-02 Martin Rudalics New frame parameter 'drag-with-tab-line' (Bug#49247) The new frame parameter 'drag-with-tab-line' allows to move frames by dragging their topmost windows' tab line with the mouse thus achieving a behavior similar to that provided by the 'drag-with-header-line' parameter. * lisp/mouse.el (mouse-drag-tab-line): New function. (mouse-drag-frame-resize, mouse-drag-frame-move) ([tab-line down-mouse-1]): Handle tab line dragging in various keymaps. * doc/lispref/frames.texi (Mouse Dragging Parameters): Describe new parameter 'drag-with-tab-line'. * etc/NEWS: Add entry for 'drag-with-tab-line'. 2021-07-02 Michael Albinus Fix a problem of cus-start.el for remote default directories * lisp/cus-start.el: Bind `default-directory' to "/" when calling `shell-command-to-string' for a local value on DARWIN. 2021-07-01 Alan Third Fix NS self contained eln location (bug#49271) * Makefile.in: * configure.ac: Change eln file install location to Contents/Frameworks. * src/comp.c (hash_native_abi): Replace dots with underscores in the eln install location as the macOS code-signing tool won't sign the files if the parent directories have dots. 2021-07-01 Alan Third Fix NS native comp search path (bug#49270) * configure.ac (NS_SELF_CONTAINED): We need to make lispdirrel the same as lispdir when building a self contained app bundle as they're both relative paths. 2021-07-01 Jonas Bernoulli * lisp/transient.el: Update to package version 0.3.6. 2021-07-01 Mattias Engdegård Update describe-prefix-binding manual text * doc/emacs/help.texi (Misc Help): `ESC ?` isn't unbound any more. 2021-07-01 Michael Albinus Handle test environment variables * lisp/emacs-lisp/ert.el (ert-summarize-tests-batch-and-exit): Check also for EMACS_EMBA_CI. * test/README (SELECTOR): Mention EMACS_TEST_VERBOSE. * test/infra/gitlab-ci.yml (variables): Set EMACS_TEST_VERBOSE. 2021-07-01 Peter Oliver Fix copy/paste error in emacsclient.desktop * etc/emacsclient.desktop: new-instance should read new-window. 2021-07-01 Eli Zaretskii Update doc/emacs/ for a new printing of the Emacs Manual book * doc/emacs/book-spine.texi: New file: the printed book spine. * doc/emacs/back.texi: New file: the backcover text for the printed book. * doc/emacs/emacs.texi: Update ISBN. 2021-07-01 Michael Albinus Doc cleanup * doc/lispref/files.texi (File Locks, Changing Files) (File Name Components, File Name Expansion, Magic File Names): * lisp/files.el (locate-dominating-stop-dir-regexp) (auto-mode-alist, set-auto-mode, file-name-with-extension) (backup-directory-alist, wildcard-to-regexp) (save-buffers-kill-terminal): Doc fixes. * etc/NEWS: Fix typos. 2021-06-30 Jonas Bernoulli In files that use allout use it for all headings * lisp/allout.el: Don't prefix regular comments with three semicolons. * lisp/icomplete.el: Use allout syntax for all headings. * lisp/net/eudc.el: Use allout syntax for all headings. 2021-06-30 Jonas Bernoulli * lisp/comint.el: Prefix headings with enough semicolons. Outline headings must begin with three or more semicolons. 2021-06-30 Jonas Bernoulli Improve consistency of outline headings in dired libraries * lisp/dired-aux.el: Improve consistency of outline headings. * lisp/dired-x.el: Improve consistency of outline headings. * lisp/dired.el: Improve consistency of outline headings. - Use three semicolons at beginning of headings because that already is the dominant number of semicolons for headings in these files. - Prefix each heading with a ^L instead of randomly omitting it in front of some. - Always prefix the line with the ^L with a completely empty line. - Begin headings with a capital letter. - Do not update complete headings. - Do not end headings with a period. - Remove a handful of section end markers. - Address further inconsistencies. 2021-06-30 Jonas Bernoulli Cleanup whitespace and comments in dired libraries * lisp/dired-aux.el: Cleanup whitespace and comments. * lisp/dired-x.el: Cleanup whitespace and comments. * lisp/dired.el: Cleanup whitespace and comments. 2021-06-30 Jonas Bernoulli Add new function lm-maintainers (bug#48592) * doc/lispref/tips.texi (Library Headers): Improve wording. * lisp/emacs-lisp/lisp-mnt.el (lm-maintainers): New function. (lm-maintainer): Make obsolete in favor of lm-maintainer. (lm-verify): Use lm-maintainers. (lm-report-bug): Use lm-maintainers. 2021-06-30 Jonas Bernoulli * lisp/emacs-lisp/lisp-mnt.el (lm-crack-address): Right-trim name. The addresses might be aligned in which case we have to trim the extra whitespace at the end of the names. 2021-06-30 João Távora Adjust docstring of lisp-mode (bug#49278) * lisp/emacs-lisp/lisp-mode.el (lisp-mode): Mention that this mode is primarily for Common Lisp. 2021-06-30 Lars Ingebrigtsen Add new user option to transform kill ring contents * doc/emacs/killing.texi (Kill Options): Document it. * lisp/simple.el (kill-new): Use it. (kill-transform-function): New user option (bug#29013). 2021-06-30 Lars Ingebrigtsen Make the minor mode doc strings say that they're minor modes * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Mention that this is a minor mode (bug#20462). 2021-06-30 Peter Oliver From .desktop files, reuse a frame or start a new Emacs as required * doc/emacs/misc.texi: (Using Emacs as a Server) Explain emacsclient.desktop. * etc/NEWS: (Emacs Server): Explain emacsclient.desktop. * etc/emacs-mail.desktop: * etc/emacsclient.desktop: Automatically try to reuse an existing frame, open a new frame, or start a new Emacs daemon. Add actions for specific behaviours (bug#49195). 2021-06-30 Peter Oliver Revert more of a partially reverted emacsclient.desktop patch * etc/emacsclient.desktop: Undo setting of StartupWMClass=Emacsd, since this relies on a change to etc/emacs.service which was also undone. See bug#37847 for more explanation (bug#49259). 2021-06-30 Lars Ingebrigtsen Fix problem when creating an .authinfo entry with an existing machine name * lisp/auth-source.el (auth-source-netrc-create): Don't return the incorrect data if there's a matching host entry but the wrong user name (bug#49289). 2021-06-30 Colin Woodbury Add new function file-name-with-extension * doc/lispref/files.texi (File Name Components): Document it. * lisp/emacs-lisp/shortdoc.el (file-name): Ditto. * lisp/files.el (file-name-with-extension): New function. 2021-06-29 Alan Third Fix NS port built with gcc * src/nsterm.m (ns_relocate): The NSArray shorthand notation doesn't work in GCC. 2021-06-29 Juri Linkov * lisp/repeat.el (describe-repeat): New command (bug#49265). 2021-06-29 Michael Albinus Sync with Tramp 2.5.1 * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.5.1". * lisp/net/tramp.el (tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): Call local `write-region' directly. * test/lisp/net/tramp-tests.el (tramp--test-utf8): Adapt test for MS Windows. 2021-06-29 Alex McGrath Fix SASL joining channels after auth Send CAP END after authentication has been successful 2021-06-29 Martin Rudalics In read_minibuf_unwind don't try to select dead window (Bug#49248) * src/minibuf.c (read_minibuf_unwind): Don't try to select dead window (Bug#49248). 2021-06-28 Alex McGrath Fix SASL on rcirc-update 2021-06-28 Glenn Morris Merge from origin/emacs-27 ef5f3d5ee7 (origin/emacs-27) C++ Mode: Handle new keywords static_cas... 2021-06-28 Reuben Thomas * lisp/textmodes/ispell.el: Fix finding dictionaries for Enchant. (ispell-find-enchant-dictionaries): I originally copied this code from the equivalent code for Aspell. Unfortunately it was wrong for the case of Enchant: it should find only dictionaries that Enchant knows about, and not merge in `ispell-dictionary-base-alist' or add a default element, as these are dealt with in `ispell-set-spellchecker-params'. This caused a bug where the correct `-d' argument would not be added to the invocation of enchant, leading to the process not being correctly started. 2021-06-28 Reuben Thomas * lisp/textmodes/ispell.el: Check process is live before interacting. Check that `ispell-process' is live before trying to read from or write to it. This avoids a hang if the process has died. 2021-06-28 Michael Albinus Fix bug#49229 in shell.el * lisp/shell.el (shell): Ensure, that a remote shell is remote. (Bug#49229) 2021-06-28 Stefan Monnier * lisp/files.el (hack-one-local-variable): Allow `add-function` in `eval:` (Bug#49163) 2021-06-27 Stefan Monnier * lisp/textmodes/flyspell.el: Fix bug#49104 (flyspell--prev-meta-tab-binding): Delete var. (flyspell-prog-mode): Don't set it. (flyspell-auto-correct-word): Lookup the "next" command dynamically. 2021-06-27 Alan Mackenzie C++ Mode: Handle new keywords static_cast, etc., wrt angle brackets * lisp/progmodes/cc-langs.el (c-<>-arglist-kwds): Add const_cast, dynamic_cast, reinterpret_cast and static_cast into this lang const. * lisp/progmodes/cc-engine.el (c-clear-<-pair-props, c-clear->-pair-props) (c-clear-<-pair-props-if-match-after, c-clear->-pair-props-if-match-before) (c-forward-<>-arglist-recur): Invalidate caches with c-trunctate-lit-pos-cache. (c-forward-<>-arglist-recur): If in a matching <...> expression, the < has a syntax-table property, but the > not, remove that property. 2021-06-26 Stefan Monnier * lisp/minibuffer.el (completion-in-region--single-word): Simplify Remove redundant args `collection` and `predicate` which were always equal to `minibuffer-completion-table` and `minibuffer-completion-predicate` anyway. (minibuffer-complete-word): * lisp/emacs-lisp/crm.el (crm-complete-word): Simplify accordingly. 2021-06-26 Stefan Monnier * lisp/minibuffer.el (minibuffer--completion-prompt-end): Rename 2021-06-26 Stefan Monnier * lisp/emacs-lisp/cl-macs.el: Fix test regression (cl--alist-to-plist): New function. (cl-struct-slot-info): Use it. 2021-06-26 Michael Albinus Fix Tramp bug#49229 * lisp/net/tramp.el (tramp-file-name-handler): Drop possible volume letter when `expand-file-name' is called with a local absolute file name as first argument. (Bug#49229) 2021-06-26 Stefan Monnier * lisp/minibuffer.el (completion--prompt-end): New function (bug#30668) (minibuffer-complete, minibuffer-force-complete-and-exit) (minibuffer-force-complete, minibuffer-complete-and-exit) (minibuffer-complete-word, minibuffer-completion-help): Use it. 2021-06-26 Alan Third Fix NS self-contained build configuration * configure.ac: When rebuilding epaths.h for NS check that we're actually doing an NS build first. 2021-06-26 Alan Third Fix NS native compilation builds * Makefile.in (ns_applibexecdir): (ns_applibdir): (ns_appdir): New variables. (.PHONY): Include new rule. (epaths-force-ns-self-contained): Remove the app bundle directory from all paths. * configure.ac (NS_SELF_CONTAINED): Set the default site-lisp directory instead of hard-coding it in the ObjC code, and use the new epaths generating make rule. * src/callproc.c (init_callproc_1): (init_callproc): Remove all the NS specific code as the special cases are now handled by decode_env_path. * src/emacs.c (load_pdump): (decode_env_path): Use ns_relocate to find the correct directory after relocation. * src/lread.c (load_path_default): Remove all the NS specific code as the special cases are now handled by decode_env_path. * src/nsterm.h: Update function definitions. * src/nsterm.m (ns_etc_directory): (ns_exec_path): (ns_load_path): Remove functions that are no longer needed. (ns_relocate): New function to calculate paths within the NS app bundle. * nextstep/Makefile.in (ns_applibexecdir): New variable, and update anything relying on the libexec location. 2021-06-26 Eric Abrahamsen Small improvements to handling of IMAP mark search * lisp/gnus/gnus-search.el (gnus-search-imap-handle-flag): Use a KEYWORD search for any mark starting with a "$", so "mark:$hasattachment" goes through as "KEYWORD $hasattachment". 2021-06-25 Mattias Engdegård Print newlines as \n instead of \12 in ERT results This makes test errors unquestionably more readable. The change also makes FF print as \f; other controls still use octal escapes. * lisp/emacs-lisp/ert.el (ert--pp-with-indentation-and-newline): Run `pp` with `pp-escape-newlines` set to `t`. 2021-06-25 Lars Ingebrigtsen Make (find-face-definition 'default) work more reliably * lisp/emacs-lisp/find-func.el (find-function--defface): New function (bug#30230). (find-function-regexp-alist): Use it to skip past definitions inside comments and strings. 2021-06-25 Lars Ingebrigtsen Fix the name of the sorted minor mode map after previous change * lisp/bindings.el (mode-line-major-mode-keymap): Change the name of the minor mode menu items. 2021-06-25 Eli Zaretskii Fix race conditions between Lisp threads in GTK builds * src/xgselect.c (release_select_lock, acquire_select_lock) [GCC >= 4.7.0]: Use '__atomic' builtins to prevent races between threads in accessing 'threads_holding_glib_lock'. Reported by . (Bug#36609) 2021-06-25 Michael Albinus Fix Tramp bug#49178 * lisp/net/tramp.el (tramp-handle-find-backup-file-name) (tramp-handle-make-auto-save-file-name): Adapt checks. (Bug#49178) 2021-06-25 Juri Linkov * lisp/tab-bar.el (tab-bar--define-keys): Fix global-mode-string (bug#49215) 2021-06-25 Stephen Berman Prevent Org mode from mistakenly changing Calendar keymap * lisp/org/org-compat.el (org--setup-calendar-bindings): Fix logic in test of 'org-agenda-diary-file' (bug#48199). 2021-06-25 Eli Zaretskii Fix syntax-category of some punctuation characters * lisp/textmodes/text-mode.el (text-mode-syntax-table): Don't modify the global syntax-table just because we load text-mode.el. This happens at loadup time, and then affects the default syntax in all modes, not just in text-mode and its derivatives. (Bug#49214) 2021-06-24 Stefan Monnier * lisp/bindings.el (bindings--sort-menu-keymap): Add "menu" in its name (bindings--menu-item-string): Use `pcase`. 2021-06-24 Stefan Monnier * lisp/emacs-lisp/cl-preloaded.el: Fix the format of props in slot-descs (cl--plist-remove): Remove. (cl--plist-to-alist): New function. (cl-struct-define): Use it to convert slots's properties to the format expected by `cl-slot-descriptor`. * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Revert last changes, not needed any more. 2021-06-24 Alex McGrath Add SASL authentication to rcirc * lisp/net/rcirc.el (rcirc-handler-AUTHENTICATE): New function (bug#48601). (rcirc-authenticate): (rcirc-connect): Support sasl. (rcirc-get-server-password, rcirc-get-server-method): New functions. (rcirc-authinfo): Document it. 2021-06-24 Mattias Engdegård Don't call ERT explainer on error * lisp/emacs-lisp/ert.el (ert--expand-should-1): If the predicate form signals an error, don't call an explainer because the arguments passed (the error and error argument, respectively) do not make any sense to the explainer at all. 2021-06-24 Lars Ingebrigtsen Attempt to make defclass documentation more legible * lisp/emacs-lisp/cl-extra.el (cl--print-table): Attempt to make defclass documentation more readable (bug#30998). (cl--describe-class-slots): Ditto. 2021-06-24 Lars Ingebrigtsen Fix printing of defclass documentation slots again * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Fix printing defclass slots, and retain printing of defstruct slots (bug#30998 and bug#46662). 2021-06-24 Lars Ingebrigtsen Allow `C-u M-x dig' to ask for a query type * lisp/net/dig.el (dig): Allow prompting for a query type (bug#31810). 2021-06-24 Alex McGrath Add SASL authentication to rcirc * lisp/net/rcirc.el (rcirc-handler-AUTHENTICATE): New function (bug#48601). (rcirc-authenticate): (rcirc-connect): Support sasl. (rcirc-get-server-password, rcirc-get-server-method): New functions. (rcirc-authinfo): Document it. 2021-06-24 E. Choroba Fix highlighting in cperl-mode for "for /regex/" * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Fix highlighting of regexp in "print for /./;" (bug#49192). 2021-06-24 Jim Porter Ignore file-missing errors during diff-refined font-locking * lisp/vc/diff-mode.el (diff--font-lock-refined): Ignore file-missing errors (bug#49197). 2021-06-24 Lars Ingebrigtsen Clarify the help in the package buffers * lisp/emacs-lisp/package.el (package--quick-help-keys): Clarify marking help (bug#40457). 2021-06-24 Jim Porter Sort the items in 'mode-line-mode-menu' before displaying the menu * lisp/bindings.el (bindings--menu-item-string, bindings--sort-keymap): New functions. (mode-line-major-mode-keymap, mode-line-minor-mode-keymap): Sort 'mode-line-mode-menu'. 2021-06-23 Saroj Thirumalai (tiny change) * lisp/printing.el (pr-global-menubar): Fix duplicate menu problem. In Emacs 27.1 Print menu items were moved to a submenu of the File menu. The Printing package (lisp/printing.el) replaces the Print menu (via the function: pr-global-menubar). The latter needs to be updated to reflect the changes; otherwise, a second Print (sub)menu is created at the end of the File menu. 2021-06-23 Mauro Aranda Fix defvar->defcustom conversion in ethio-util.el * lisp/language/ethio-util.el (ethio-primary-language) (ethio-secondary-language): Don't quote the const. (ethio-use-three-dot-question, ethio-quote-vowel-always) (ethio-W-sixth-always, ethio-numeric-reduction) (ethio-java-save-lowercase): Really make them defcustom. 2021-06-23 Lars Ingebrigtsen Make ethio-* variables into user options * lisp/language/ethio-util.el (ethiopic): New group. (ethio-primary-language, ethio-secondary-language) (ethio-use-colon-for-colon, ethio-use-three-dot-question) (ethio-quote-vowel-always, ethio-W-sixth-always) (ethio-numeric-reduction, ethio-java-save-lowercase): Make into user options (bug#33024). 2021-06-23 Lars Ingebrigtsen Revert "Sort the items in 'mode-line-mode-menu' before displaying the menu" This reverts commit d4d6d8f335165e2bda8942b4acd45e5bab613b70. This approach doesn't work on certain types of keymaps, so it should be implemented in a different way. 2021-06-23 Jim Porter Sort the items in 'mode-line-mode-menu' before displaying the menu * lisp/bindings.el (bindings--menu-item-string, bindings--sort-keymap): New functions. (mode-line-major-mode-keymap, mode-line-minor-mode-keymap): Sort 'mode-line-mode-menu'. 2021-06-23 dickmao Clean up code in `message-replace-header' * lisp/gnus/message.el (message-replace-header): Elide redundancy (bug#49180). 2021-06-23 dickmao Fix message-replace-header after recent change * lisp/gnus/message.el (message-replace-header): Restore else branch removed by mistake in 989de3b824 (bug#49179). 2021-06-22 Lars Ingebrigtsen Give feedback to the user in dired-do-find-regexp * lisp/dired-aux.el (dired-do-find-regexp): Give some feedback to the user (bug#35352). 2021-06-22 Lars Ingebrigtsen Make minor mode docstrings say what the mode "variable" is * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Add the mode variable (bug#36500). (easy-mmode--mode-docstring): (define-minor-mode): Pass in the getter. 2021-06-22 Protesilaos Stavrou Use named face for apropos-button * etc/NEWS: Document new face. * lisp/apropos.el (apropos-button): Define new face. (apropos-face): Specify face instead of hardcoding attributes (bug#49162). 2021-06-22 Peter Oliver If the daemon’s TTY is our only frame, create a new frame * lisp/server.el (server-process-filter): If there won't be a current frame to use, fall back to trying to create a new one (bug#11033). 2021-06-22 Peter Oliver Advertise support for Startup Notification when built with GTK * etc/emacsclient.desktop, etc/emacsclient.desktop: Specify StartupNotify=true. * configure.ac (USE_STARTUP_NOTIFICATION): New variable, yes iff HAVE_GTK. * Makefile.in (install-etc): Remove StartupNotify=true from etc/*.desktop unless USE_STARTUP_NOTIFICATION (bug#48783). 2021-06-22 Utkarsh Singh Make tex-compile-commands heed tex-start-options * lisp/textmodes/tex-mode.el (tex-compile-commands): Respect `tex-start-options' (bug#49018). 2021-06-22 Eli Zaretskii Fix "make -j install" * Makefile.in (install-eln): Depend on 'lisp', so that people could say "make -j install" without a separate "make" step. (Bug#49099) 2021-06-22 Stephen Gildea time-stamp: add principled, expressive %z * lisp/time-stamp.el (time-stamp-formatz-from-parsed-options): New function for time zone offset formatting ("%z" variants). * test/lisp/time-stamp-tests.el (formatz*): New unit tests to cover the new implementation of %5z. 2021-06-21 Basil L. Contovounesios Fix shortdoc-add-function section creation * lisp/emacs-lisp/shortdoc.el (shortdoc-add-function): Use nconc to actually append a new section to the list of groups while avoiding a previous OBOE. Push a new group to the front of shortdoc--groups without copying it, just like define-short-documentation-group does. (buffer): Fix copypasta in unlock-buffer example. * test/lisp/emacs-lisp/shortdoc-tests.el (shortdoc-examples): Also check that :no-value forms demonstrate the right function. * doc/lispref/help.texi (Documentation Groups): Clarify that @dots in the define-short-documentation-group arglist refer to whole key-value pairs. Fix typo in :eg-result-string description. 2021-06-21 Lars Ingebrigtsen NEWS for tool bar "X" in *Help* buffers change (bug#49139) 2021-06-21 Lars Ingebrigtsen Fix prompting for large files when loading literally * lisp/files.el (find-file-noselect): Don't include "literally" in the "large file" prompt if we're gonna load literally anyway (bug#49144). 2021-06-21 Lars Ingebrigtsen Make find-file-literally ignore local variables again * lisp/files.el (find-file-noselect-1): Re-inhibit local variables when loading a file literally (bug#49143). This was broken by 5bedbe6b1d. 2021-06-21 Alex Bochannek Refactor gnus-article-sort-by-* * lisp/gnus/gnus-sum.el (gnus-article-sort-extract-extra): New function (bug#49081). (gnus-article-sort-by-recipient): Use it. (gnus-article-sort-by-newsgroups): Ditto. 2021-06-21 Lars Ingebrigtsen Further fixes for bound-and-true-p doc string * lisp/bindings.el (bound-and-true-p): Improve doc string. 2021-06-21 Andrea Corallo Do not attempt to write .elc files when not necessary (bug#49118) * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Do not attempt to write .elc files when not necessary. 2021-06-21 Philip Kaludercic Query encryption using yes-or-no-p * lisp/net/rcirc.el (rcirc-prompt-for-encryption): Replace completing-read prompt with yes-or-no-p 2021-06-20 Alan Third Fix GNUstep menu update crashes * src/nsmenu.m (ns_update_menubar): close the submenus before modifying them. ([EmacsMenu close]): Make sure to close all submenus. 2021-06-20 Alan Third Fix GNUstep build warnings * src/nsterm.h ([EmacsWindow orderedIndex]): * src/nsterm.m ([EmacsWindow orderedIndex]): Implement orderedIndex for use under GNUstep. * src/nsmenu.m (free_frame_menubar): (ns_update_menubar): ([EmacsMenu addSubmenuWithTitle:]): ([EmacsMenu addItemWithWidgetValue:attributes:]): Cast return values to correct types. ([EmacsMenu fillWithWidgetValue:]): Move variable definition inside relevant #ifdef block. ([EmacsMenu menuWillOpen:]): ([EmacsMenu menuDidClose:]): ([EmacsMenu confinementRectForMenu:onScreen:]): ([EmacsMenu menu:willHighlightItem:]): New functions to silence build warnings. * src/nsfont.m (nsfont_open): Remove pointless fabs call. 2021-06-20 Michael Albinus Adapt tests in tramp-archive-tests.el * test/lisp/net/tramp-archive-tests.el (tramp-archive-test05-expand-file-name) (tramp-archive-test06-directory-file-name): Adapt tests. 2021-06-20 Grant Shangreaux Add input methods for Lakota The White Hat and Suggested Lakota Orthography are represented here by three different input modes: A prefix and postfix mode for the SLO, and a postfix mode for the White Hat orthography. * lisp/leim/quail/latin-post.el (lakota-slo-postfix) (lakota-white-hat-postfix): * lisp/leim/quail/latin-pre.el (lakota-slo-prefix): New input methods. * etc/HELLO: Call out the additions. 2021-06-20 Juri Linkov Add new convenience command for *Help* * doc/emacs/help.texi (Help Mode): Document it (bug#36767). * lisp/help-mode.el (help-mode-map): Add 'c'. (help-mode-menu): Add help-customize. (help-customize): New command. 2021-06-19 Michael Albinus Fix error in tramp-archive.el * lisp/net/tramp-archive.el (tramp-archive-file-name-handler): Archive must exist. (Bug#49030, Bug#49043) * test/lisp/net/tramp-archive-tests.el (tramp-archive-test06-directory-file-name): Tag it :unstable temporarily. 2021-06-19 Glenn Morris Merge from origin/emacs-27 7722b510aa (origin/emacs-27) Another improvement in documentation of ... 8d5c70d73a Improve documentation of profiler 0ffef0b46b Document 'ispell-program-name' 7be610f911 Fix documentation of 'face-extend-p' # Conflicts: # doc/lispref/debugging.texi 2021-06-19 Lars Ingebrigtsen Use file-truename on files loaded with "emacs -l" * lisp/startup.el (command-line-1): When loading a file, use the truename so that eval-after-load works more reliably (bug#49009). Change suggested by ctarbide@tuta.io. 2021-06-19 Lars Ingebrigtsen Improve bound-and-true-p doc string * lisp/bindings.el (bound-and-true-p): Improve doc string (bug#49116). 2021-06-19 dickmao De-obfuscate gnutls_handshake loop * src/gnutls.c (gnutls_try_handshake): Rewrite the handshake loop for greater clarity (bug#49055). 2021-06-19 Alex Bochannek New Gnus Summary buffer sort options for extra headers * lisp/gnus/gnus-sum.el (gnus-article-sort-functions) (gnus-thread-sort-functions, gnus-subthread-sort-functions) (gnus-summary-mode-map, gnus-summary-make-menu-bar) (gnus-article-sort-by-newsgroups) (gnus-summary-sort-by-newsgroups, gnus-summary-sort-by-extra): Sort by Newsgroups extra header. Prompt for header name for other extra headers. * doc/misc/gnus.texi (Summary Sorting): Document new sort functions * etc/NEWS: New Gnus Summary buffer sort feature (bug#49081). 2021-06-19 Eli Zaretskii Another improvement in documentation of "memory" profiler * lisp/profiler.el (profiler-start): Fix the doc string to better explain what is "memory" profiler. 2021-06-19 Łukasz Stelmach Allow `message-replace-header' to take a list of AFTERs * lisp/gnus/message.el (message-replace-header): Facilitate capability of message-position-on-field to accept multiple headers as AFTERS argument and make possible to mimic behavioir of message-goto-* functions with message-replace-header in case the header does not exist (bug#49070). 2021-06-19 Alex Bochannek Add support for displaying total number of groups in subgroups in Gnus * lisp/gnus/gnus-topic.el (gnus-topic-line-format) (gnus-topic-line-format-alist, gnus-topic-prepare-topic) (gnus-topic-insert-topic-line, ) (gnus-topic-display-missing-topic, ) (gnus-topic-update-topic-line): Provide number of groups in subtopics for topic line display and add 'G' element to be used for 'gnus-topic-line-format' variable * doc/misc/gnus.texi (Topic Variables): Document 'G' element for 'gnus-topic-line-format' variable (bug#49068). 2021-06-19 Eli Zaretskii Improve documentation of profiler * doc/lispref/debugging.texi (Profiling): Stop misleading users about what "memory" profiling really is. 2021-06-19 Jim Porter Improve to selsel doc strings * lisp/delsel.el (delete-active-region): Document interactive behavior. * lisp/delsel.el (delete-selection-repeat-replace-region): Use "\\[universal-argument]" instead of literal "C-u" in docstring. 2021-06-19 Michael Albinus Revert "Add `file-name-set-extension'" This reverts commit 4f1a5e456e35930e8d0713b990bd7b14923cfe97. 2021-06-19 Michael Albinus Add `file-name-set-extension' * lisp/files.el (file-name-with-extension): New defun. * test/lisp/files-tests.el (files-tests-file-name-with-extension-good) (files-tests-file-name-with-extension-bad): New tests. 2021-06-19 Philip Kaludercic Use add-to-list instead of manually modifying minor-mode-alist 2021-06-19 Michael Albinus Handle case remote uid is 0 in some Tramp related tests * test/lisp/filenotify-tests.el: * test/lisp/shadowfile-tests.el: Set `tramp-allow-unsafe-temporary-files' to t. 2021-06-18 Mattias Engdegård Fix Morse for non-ASCII letters * lisp/play/morse.el (morse-code): Downcase letters in the table because they must match downcased input. 2021-06-18 Eli Zaretskii Improve and update the 'etags' test suite * lib-src/etags.c (mercury_pr): Remove redundant comment. * test/manual/etags/merc-src/accumulator.m: Add more complex declarations. * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/CTAGS.good: Adapt to latest changes in 'etags' and the test suite. (Bug#47408) 2021-06-18 Fabrice Nicol Fix Mercury support, notably qualified procedures. Correct the previous fix (did not correctly handle qualified types). Also fix the following issues: - remove module name (+ dot) from tags, as prefixing module name is often inconsistent in code and may cause tags to be too specific. - now tag 0-arity predicates and functions (':- func foo_14.') - now tag one-word declarations (':- interface.') * lib-src/etags.c (mercury_pr): Pass the correct NAME and NAMELEN arguments to 'make_tag'. (mercury_decl): Return more information about the declaration or definition it finds. This allows mercury_pr to be smarter. (Bug#47408) 2021-06-18 Philipp Stephani Update SCSS test file syntax. According to https://sass-lang.com/documentation/breaking-changes/slash-div, the slash operator should be replaced by 'math.div'. Fixed using the migration tool mentioned at https://sass-lang.com/documentation/breaking-changes/slash-div#automatic-migration. * test/manual/indent/scss-mode.scss: Remove slash operator. 2021-06-18 Arash Esbati Use \footref when referencing a footnote label * lisp/textmodes/reftex-vars.el (reftex-label-alist-builtin): Use \footref as `reference-format' for \footnote macro. 2021-06-18 Arash Esbati Support new LaTeX kernel macro \footref * lisp/textmodes/reftex-vars.el (reftex-ref-style-alist): Add entry for \footref macro which is part of LaTeX kernel 2021-06-01. 2021-06-17 Juri Linkov * lisp/help-fns.el (help--symbol-class): Concat chars for all namespaces. Since Emacs Lisp is more than Lisp-2, separately output letters for each namespace: functions, variables, faces, classes. Use non-letter characters for additional properties such as advice, obsolete, local. (help--symbol-completion-table-affixation): Use format "%-4s". https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00524.html 2021-06-17 Juri Linkov Fix display-buffer-override-next-command for no-select case (bug#49057) * lisp/window.el (display-buffer-override-next-command): Separate 'postfun' from 'clearfun', so 'clearfun' resets 'display-buffer-overriding-action', whereas 'postfun' calls 'post-function' that can select the right window in 'post-command-hook'. * lisp/windmove.el (windmove-display-no-select): Add new choice 'ignore'. Improve docstring. (windmove-display-in-direction): Use new value 'ignore' of 'windmove-display-no-select'. Improve docstring. (windmove-display-left, windmove-display-up) (windmove-display-right, windmove-display-down): Mention 'windmove-display-no-select' in docstrings. 2021-06-16 Stefan Monnier * lisp/emacs-lisp/cl-generic.el: Fix bug#49053 and bug#47454 (cl-generic-define-method): Shorten the time window where the symbol is defined to `dummy`. 2021-06-16 Mattias Engdegård Eliminate some GCC warnings * src/doprnt.c (exprintf, evxprintf): * src/lisp.h (exprintf, evxprintf): Don't use a pointer-to-const type for the `nonheapbuf` argument: although it is never dereferenced, GCC will warn when passing a pointer to uninitialised memory otherwise. * src/fns.c (sort_vector_copy, realize_face, realize_gui_face) (realize_tty_face): Use the same signatures in the prototypes as in the actual function definitions. 2021-06-16 Glenn Morris * lisp/simple.el (save-interprogram-paste-before-kill): Fix type. 2021-06-16 Mattias Engdegård * src/xdisp.c (gui_draw_bottom_divider): Fix misleading indentation. 2021-06-16 Mattias Engdegård Remove outdated advise from manual * doc/lispref/modes.texi (Search-based Fontification): Remove paragraph that has been unnecessary and confusing ever since regexp-opt stopped using capturing brackets more than 21 years ago. 2021-06-16 Pip Cet Prepare pdumper dump file in memory, write it in one go (Bug#46881) * src/pdumper.c (struct dump_context): Add buf, buf_size, max_offset fields. (dump_grow_buffer): New function. (dump_write): Use memcpy, not an actual emacs_write. (dump_seek): Keep track of maximum seen offset. Don't actually seek. (Fdump_emacs_portable): Write out the file contents when done. 2021-06-16 Philip Kaludercic Force mode line update after modifying activity string * lisp/net/rcirc.el (rcirc-update-activity-string): Call force-mode-line-update 2021-06-16 pillule User option to choose a function triggered by windmove-create (bug#48917) * lisp/windmove.el (windmove-create-window): Add a defcustom choice. (windmove-do-window-select): Trigger custom functions, update the docstring. 2021-06-16 pillule User option to select 'no-other-window' with windmove (bug#48916) * lisp/windmove.el (windmove-wrap-around): Remove superfluous :group tag. (windmove-create-window): Remove superfluous :group tag. (windmove-window-distance-delta): Remove superfluous :group tag. (windmove-allow-all-windows): Add new user option to allow the commands of windmove to target windows with the 'no-other-window parameter. (windmove-find-other-window): Use windmove-allow-all-windows. (windmove-display-no-select): Remove superfluous :group tag. (windmove-display-in-direction): Use windmove-allow-all-windows. (windmove-delete-in-direction): Use windmove-allow-all-windows. (windmove-swap-states-in-direction): Use windmove-allow-all-windows. (windmove-default-keybindings): Remove superfluous :group tag. (windmove-display-default-keybindings): Remove superfluous :group tag. (windmove-delete-default-keybindings): Remove superfluous :group tag. (windmove-swap-states-default-keybindings): Remove superfluous :group tag. 2021-06-15 Philip Kaludercic Fix edge case with single argument for rcirc-define-command * lisp/net/rcirc.el (rcirc-define-command): Update regular expression generator 2021-06-15 Philip Kaludercic Fix argument parser for rcirc-define-command with string input * lisp/net/rcirc.el (rcirc-define-command): Require at least one space between arguments 2021-06-15 Lars Ingebrigtsen Make help-view-source more robust * lisp/help-mode.el (help-view-source): Check the right thing to see if we can jump to the source file. 2021-06-15 Lars Ingebrigtsen Add new convenience commands for *Help* * doc/emacs/help.texi (Help Mode): Document it (bug#36767). * lisp/help-fns.el (help-fns-function-description-header) (describe-variable, describe-face, describe-keymap) (describe-mode): Add the required data. * lisp/help-mode.el (help-mode-map): Add 'i' and 's'. (help-mode--current-data): New variable. (help-mode): Make it local. (help-view-source, help-goto-info): New commands. 2021-06-15 Lars Ingebrigtsen Clarify (interactive "K") in the manual * doc/lispref/commands.texi (Interactive Codes): Clarify (interactive "K") (bug#37146). 2021-06-15 Philip Kaludercic Check if server buffer is live * lisp/net/rcirc.el (with-rcirc-server-buffer): Use live-buffer-p (rcirc-buffer-nick): Use with-rcirc-server-buffer (rcirc-switch-to-server-buffer): Use with-rcirc-server-buffer 2021-06-15 Eli Zaretskii Document 'ispell-program-name' * doc/emacs/fixit.texi (Spelling): Document 'ispell-program-name'. (Bug#49039) 2021-06-15 Julian Scheid Allow ERT tests to output the failure reasons, too * lisp/emacs-lisp/ert.el (ert-reason-for-test-result): New function. (ert-run-tests-batch): Output failure or skip reason (bug#47071). 2021-06-15 Lars Ingebrigtsen Add a new function syntax-class-to-char * doc/lispref/syntax.texi (Syntax Table Internals): Document it. * src/syntax.c (Fsyntax_class_to_char): New function (bug#37452). 2021-06-15 Jared Finder Fix dragging dividers in terminal Emacs when there's margins * lisp/mouse.el (mouse-drag-line): Do the right thing in the presence of margins (bug#41156). (mouse-drag-line): Bind left-margin/right-margin in the map, too. 2021-06-15 Lars Ingebrigtsen Document `completions-format' * doc/emacs/mini.texi (Completion Options): Document `completions-format'. * lisp/simple.el (completion-list-mode): Mention in (bug#49003). 2021-06-15 Lars Ingebrigtsen Fix false positives in docstring width warning with (fn...) constructs. * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): Don't consider the function signature when determining whether the doc string is too wide (bug#49007). (The signature is folded later when displaying help.) 2021-06-15 Philip Kaludercic Improve message markup * lisp/net/rcirc.el (rcirc-markup-text-functions): Add rcirc-color-attributes, rcirc-remove-markup-codes (rcirc-markup-attributes): Recognize strike-through and monospace, don't remove control codes (rcirc-color-attributes): Recognize mIRC color codes (rcirc-remove-markup-codes): Add function (rcirc-monospace-text): Add face 2021-06-15 Stephen Gildea mh-junk need not support SpamAssassin 2.20 from 2003 * lisp/mh-e/mh-junk.el (mh-spamassassin-*list): Remove support for SpamAssassin 2.20. (SpamAssassin 3.0 was released in 2004.) This change updates both the flags for sa-learn and the comments about how the current version works. This change reverts part of a change made in 2003 that added support for what was even then an "old version of spamassassin." 2021-06-14 Philip Kaludercic Fix construction of interactive specification in rcirc-define-command * lisp/net/rcirc.el (rcirc-define-command): Ensure that only one argument is passed. 2021-06-14 Lars Ingebrigtsen Remove unused variable from sgml-mode test * test/lisp/textmodes/sgml-mode-tests.el (sgml-test-brackets): Remove unused variable. 2021-06-14 Lars Ingebrigtsen Get fractional seconds in iso8601 parsing right * lisp/calendar/iso8601.el (iso8601-parse-time): Get fractional times (with leading zeroes in the fraction part) right (bug#49017). Fix based on a patch by "J.P." . 2021-06-14 Andrea Corallo Do not produce .elc temporary file when unnecessary (bug#48978) * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Produce .elc temporary files only when non native compiling or when native compiling but `byte+native-compile' is non nil. 2021-06-14 Stephen Berman Fix problem in HTML with bracketed characters * lisp/textmodes/sgml-mode.el (sgml-tag-syntax-table): Use bracket syntax for all Unicode bracket characters (bug#43941). 2021-06-14 Andrea Corallo ;* lisp/emacs-lisp/bytecomp.el (byte-native-compiling): Typo fix. * lisp/emacs-lisp/bytecomp.el (byte+native-compile): Update docstring. 2021-06-14 Philip Kaludercic Rename set-rcirc-{encode,decode}-coding-system * lisp/net/rcirc.el (set-rcirc-decode-coding-system): Deprecate command (rcirc-set-decode-coding-system): New command (set-rcirc-encode-coding-system): Deprecate command (rcirc-set-encode-coding-system): New command 2021-06-14 Philip Kaludercic Preserve order of completion during cycling * lisp/net/rcirc.el (rcirc-completion-at-point): Specify cycle-sort-function 2021-06-14 Michael Albinus Handle sensitive auto-save or backup remote files (Bug#45245) * doc/misc/tramp.texi (Auto-save and Backup): Describe tramp-allow-unsafe-temporary-files. (Ad-hoc multi-hops): Use proper format. * etc/NEWS: Mention confirmation for writing sensitive auto-save or backup remote files to the local temporary directory.. * lisp/net/tramp-cache.el (tramp-dump-connection-properties): Strengthen test. * lisp/net/tramp.el (tramp-allow-unsafe-temporary-files): New defcustom. (tramp-handle-find-backup-file-name) (tramp-handle-make-auto-save-file-name): Don't expose sensible auto-save or backup files on local temporary directory. (Bug#45245) * test/lisp/net/tramp-tests.el (tramp--test-always): New defalias. (tramp-test10-write-region, tramp-test21-file-links) (tramp--test--deftest-direct-async-process): Use it. (tramp-test37-make-auto-save-file-name) (tramp-test38-find-backup-file-name): Extend tests. 2021-06-14 pillule Improve handling of dedicated flag for side windows (Bug#48493) * doc/lispref/windows.texi (Buffers and Windows): Mention the special handling of side windows and add a reference. (Buffer Display Action Alists): Say explicitly that `display-buffer-in-side-window' is dedicating to side by default. (Dedicated Windows): Add case (4) and explain its meaning, add a reference. (Displaying Buffers in Side Windows): Move the paragraph about `switch-to-(prev|next)-buffer' into a new item to emphasize the special meaning of dedication for side windows. * lisp/window.el (set-window-buffer-start-and-point): Restore side dedication. (switch-to-prev-buffer, switch-to-next-buffer): Correct return value that should be nil instead of the same buffer in case of no change. (delete-windows-on): Restore side dedication. (replace-buffer-in-windows): Update the docstring, restore side dedication. (quit-restore-window): Rearrange the logic so that strongly dedicated windows are eventually deleted first. Restore the side dedication. In the final case try to `switch-to-prev-buffer' before deleting a window (Bug#48367). 2021-06-14 Philip Kaludercic Add mouse properties to activity string * lisp/net/rcirc.el (rcirc-activity-string): Allow clicking on string 2021-06-13 Philip Kaludercic Update activity string after switching to next active buffer * lisp/net/rcirc.el (rcirc-next-active-buffer): Call rcirc-update-activity-string 2021-06-13 Eli Zaretskii Fix documentation of 'face-extend-p' * doc/lispref/display.texi (Attribute Functions): Fix description of 'face-extend-p'. (Bug#48936) 2021-06-13 Lars Ingebrigtsen Fix previous pulse.el fix * lisp/cedet/pulse.el (pulse-reset-face): Fix up previous pulse-reset-face change -- reset back to the start face (bug#48936). 2021-06-13 dickmao Avoid an infinite loop in mml-expand-html-into-multipart-related * lisp/gnus/mml.el (mml-expand-html-into-multipart-related): Skip images with empty filename parts (bug#49001). 2021-06-13 Lars Ingebrigtsen Reset the pulse face more fully in pulse-reset-face * lisp/cedet/pulse.el (pulse-reset-face): Reset the :extend to nil if there's no face given (bug#48936). 2021-06-13 Eli Zaretskii Fix wording of recently added documentation * etc/NEWS: * lisp/simple.el (save-interprogram-paste-before-kill): Fix wording of a recently added documentation. (Bug#41168) 2021-06-13 Lars Ingebrigtsen Fsubstitute_in_file_name doc string clarification * src/fileio.c (Fsubstitute_in_file_name): Mention that undefined variables aren't replaced (as opposed to what happens in a shell substitution) (bug#40949). 2021-06-13 Lars Ingebrigtsen Allow save-interprogram-paste-before-kill to be a number * doc/emacs/killing.texi (Clipboard): Document it. * lisp/simple.el (save-interprogram-paste-before-kill): Extend range (bug#41168). (kill-new): Implement it (bug#41168). 2021-06-13 Juri Linkov * doc/emacs/windows.texi (Change Window): Add pxref to (elisp)Deleting Windows (Bug#47300) 2021-06-12 Stefan Monnier EIEIO: Promote the CLOS behavior over the EIEIO-specific behavior Change docs to advertize `slot-value` rather than `oref`. Change the implementation of `:initform` to better match the CLOS semantics, while preserving the EIEIO semantics, but warn when encountering cases where the two diverge. Demote the mostly unused special semantics of `oref-default` on non-class allocated slots. * doc/misc/eieio.texi (Quick Start): Use `slot-value`. (Accessing Slots): Move `slot-value` before `oref`. Fix paren-typo in example (reported by pillule ). (Introspection): Remove mention of `class-slot-initarg`. * lisp/transient.el (transient--parse-group, transient--parse-suffix): Don't use `oref-default` to get the default value. (transient-lisp-variable): Init forms are evaluated. * lisp/emacs-lisp/eieio.el (defclass): Warn about inapplicable `:initarg` and about uses of init forms that are ambiguous. (oref): Don't advertize the deprecated use of initargs as slot names. (oref-default): Don't advertize the deprecated case where it returns the initform's value. (initialize-instance): Use `macroexp-const-p`. * lisp/emacs-lisp/eieio-core.el (eieio--unbound): Rename from `eieio-unbound`. (eieio--unbound-form): New var. (eieio--slot-override): Use it. (eieio-defclass-internal): Use it. Change `init` so it should always be evaluated. (eieio--known-class-slot-names): New var. (eieio--eval-default-p): Rename from `eieio-eval-default-p`. (eieio--perform-slot-validation-for-default): Use `macroexp-const-p` to decide whether to skip the test. (eieio--add-new-slot): Register slot in `eieio--known-class-slot-names` when applicable. (eieio-oref-default, eieio-oset-default): Add warning for unknown slots and slots not known to be allocated to the class. (eieio-default-eval-maybe): Delete function. Use just `eval` instead. (eieio-declare-slots): Allow slots to specify their allocation class. * lisp/cedet/srecode/insert.el (point): Declare the slot instead of moving the class definition before the slot's first use. (srecode-template-inserter-point, srecode-insert-fcn): Use nil instead of unbound for the `point` slot. * lisp/cedet/srecode/compile.el (srecode-template-inserter): Declare the `key` slot that all children should have. * lisp/emacs-lisp/eieio-speedbar.el (eieio-speedbar) (eieio-speedbar-directory-button, eieio-speedbar-file-button): * lisp/emacs-lisp/eieio-custom.el (eieio-widget-test-class): * lisp/emacs-lisp/chart.el (chart-bar): * lisp/cedet/semantic/ede-grammar.el (semantic-ede-proj-target-grammar): * lisp/cedet/semantic/db.el (semanticdb-project-database): * lisp/cedet/semantic/db-javascript.el (semanticdb-table-javascript) (semanticdb-project-database-javascript): * lisp/cedet/semantic/db-el.el (semanticdb-table-emacs-lisp) (semanticdb-project-database-emacs-lisp): * lisp/cedet/semantic/db-ebrowse.el (semanticdb-table-ebrowse) (semanticdb-project-database-ebrowse): * lisp/cedet/ede/proj.el (ede-proj-project): * lisp/cedet/ede/proj-obj.el (ede-proj-target-makefile-objectcode): * lisp/cedet/ede/generic.el (ede-generic-project): * lisp/cedet/ede/config.el (ede-project-with-config): * lisp/cedet/ede/base.el (ede-target, ede-project): * lisp/auth-source.el (auth-source-backend): Init forms are evaluated, so quote them accordingly. 2021-06-12 Robert Pluim Make `window-system-for-display' work for ipv6, too * lisp/term/x-win.el (display-format-alist): Also work for ipv6 (bug#42045). 2021-06-12 Lars Ingebrigtsen Clarify some browse-url doc strings * lisp/net/browse-url.el (browse-url-of-file) (browse-url-of-buffer, browse-url-of-region, browse-url) (browse-url-at-point, browse-url-at-mouse): Clarify doc strings (bug#42432). 2021-06-12 Tassilo Horn Use file-in-directory-p instead of obsolete dired-in-this-tree-p * lisp/dired-aux.el (dired-rename-subdir,dired-rename-subdir-1) (dired-insert-subdir,dired-insert-subdir-validate) (dired-kill-tree,dired-tree-down): Use file-in-directory-p instead of obsolete dired-in-this-tree-p. 2021-06-12 Lars Ingebrigtsen Fix double (recursive) load of fortran.el * lisp/progmodes/fortran.el (fortran-menu): Move menu creation to the end to avoid a recursive load (bug#43116). 2021-06-12 Alex Bochannek Mention nov-is-evil/nnvirtual combination in the Gnus manual * doc/misc/gnus.texi (To From Newsgroups): Mention using separate select methods for different values (bug#48801). 2021-06-12 Matt Beshara Add ability to bring only the selected frame to the front (bug#48865) Causes ‘ns-hide-emacs’ to layer the selected frame in front of every other application’s windows, and give that frame keyboard focus, when called with 'activate-front. * src/nsfns.m (Fns_hide_emacs): Allow activating only selected frame. 2021-06-11 Stefan Monnier * lisp/emacs-lisp/benchmark.el (benchmark-elapse): Tweak 2021-06-11 Martin Rudalics Rename/rewrite recently added option and function in window.el * lisp/window.el (window-at-x-y): Rename from `window-at-pos'. Fix doc-string. (delete-window-choose-selected): Rename from `delete-window-set-selected'. Fix doc-string. (delete-window): Adjust to above renaming. * doc/emacs/windows.texi (Change Window): Mention new option `delete-window-choose-selected'. * etc/NEWS: * doc/lispref/windows.texi (Deleting Windows): Follow up on above renamings. 2021-06-11 Dmitry Gutov Simplify vc-git-log-switches's usage; change default value to nil * lisp/vc/vc-git.el (vc-git-log-switches): Do not mention or allow the value 't' anymore (https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00452.html). (vc-git-print-log): Use 'vc-git-log-switches' directly. 2021-06-10 Philip Kaludercic Preserve incoming order of messages with same timestamp * lisp/net/rcirc.el (rcirc-print): Emulate time-less-or-equal-p 2021-06-10 Philip Kaludercic Allow hiding certain message types after reconnecting * lisp/net/rcirc.el (rcirc-omit-after-reconnect): Add new user option (rcirc-reconncting): Add new variable (rcirc-print): Check if message should be omitted (reconnect): Mark buffers as freshly reconnected 2021-06-10 Philip Kaludercic Use defvar-local instead of setq-local where applicable 2021-06-10 Philip Kaludercic Allow for optional arguments using rcirc-define-command * lisp/net/rcirc.el (rcirc-define-command): Handle &optional arguments 2021-06-10 Philip Kaludercic Fix prompt doubling when reconnecting * lisp/net/rcirc.el (rcirc-connect): Check if rcirc-mode is already active (rcirc-get-buffer-create): Check if rcirc-mode is already active 2021-06-10 Philip Kaludercic Allow filtering how nicks are presented * lisp/net/rcirc.el (rcirc-nick-filter): Add new option (rcirc-completion-at-point): Use rcirc-nick-filter (rcirc-format-response-string): Use rcirc-nick-filter (rcirc-sort-nicknames-join): Use rcirc-nick-filter 2021-06-10 Philip Kaludercic Implement invite-notify capability * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add invite-notify (rcirc-handler-INVITE): Handle invite notifications 2021-06-10 Philip Kaludercic Add TAGMSG handler * lisp/net/rcirc.el (rcirc-handler-TAGMSG): Add new message handler 2021-06-10 Philip Kaludercic Implement message-ids extension * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add to list of implemented extensions (rcirc-print): Insert property denoting message ID 2021-06-10 Philip Kaludercic Implement batch extension * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add batch extension (rcirc-supported-batch-types): Add new variable (rcirc-batch-attributes): Add new variable (rcirc-batched-messages): Add new variable (rcirc-process-server-response-1): Handle messages with batch tag (rcirc-handler-BATCH): Add batch dispatcher 2021-06-10 Philip Kaludercic Implement server-time extension * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add new capability (rcirc-print): Insert messages in the right position (rcirc-log): Use right time value (rcirc-markup-timestamp): Use right time value 2021-06-10 Philip Kaludercic Create framework for IRCv3 support * lisp/net/rcirc.el (rcirc-implemented-capabilities): Add new variable (rcirc-requested-capabilities): Add new variable (rcirc-acked-capabilities): Add new variable (rcirc-connect): Request capabilities from rcirc-implemented-capabilities (rcirc-process-regexp): Extend rcirc-process-regexp with tag support (rcirc-tag-regexp): Add new tokenizer for tags (rcirc-message-tags): Add new variable (rcirc-get-tag): Add new function (rcirc-process-server-response-1): Parse message-tags (rcirc-handler-CAP): Add new handler for capability requests 2021-06-10 Philip Kaludercic Replace defun-rcirc-command with rcirc-define-command * lisp/net/rcirc.el (defun-rcirc-command): Remove old macro (rcirc-define-command): Create new macro 2021-06-10 Eli Zaretskii Support mercury in 'ctags' as well The previous lack of support was due to incorrect calls to 'make_tag' in 'mercury_pr', which caused 'pfnote' to refrain from adding Mercury tags to the list of recorded tags. * lib-src/etags.c (mercury_pr): Pass the correct NAME and NAMELEN arguments to 'make_tag'. * test/manual/etags/CTAGS.good: Adjust to the above change. 2021-06-10 Eli Zaretskii Improve documentation of 'M-y' * doc/emacs/killing.texi (Yanking): Mention that TTY frames can also support yanking from the clipboard. (Earlier Kills): Finalize the documentation of the new behavior of the lone 'M-y'. (Bug#48478) 2021-06-10 Martin Rudalics Provide new option `delete-window-set-selected' (Bug#47300) When `delete-window' deletes its frame's selected window, this new option allows to choose another window as replacement. * lisp/window.el (get-lru-window, get-mru-window) (get-largest-window): New optional argument NO-OTHER. (window-at-pos): New function. (delete-window-set-selected): New option. (delete-window): Handle `delete-window-set-selected'. * src/window.c (Fdelete_window_internal): Set the selected window of WINDOW's frame to the first window on that frame and let `delete-window' choose a more suitable window instead. * doc/lispref/windows.texi (Deleting Windows): Describe new option `delete-window-set-selected'. (Cyclic Window Ordering): Describe new NO-OTHER argument for `get-lru-window', `get-mru-window' and `get-largest-window'. * etc/NEWS: Mention `delete-window-set-selected' and the NO-OTHER argument. 2021-06-09 Alan Third Remove pause on fullscreening in NS (bug#48406) * src/nsterm.m (ns_make_frame_visible): (ns_set_parent_frame): ([EmacsView windowWillEnterFullScreen:]): ([EmacsView windowDidEnterFullScreen:]): ([EmacsView windowWillExitFullScreen:]): ([EmacsView initFrameFromEmacs:]): Remove references to in_fullscreen_transition. ([EmacsView toggleFullScreen:]): Remove calls to removed methods. ([EmacsView inFullScreenTransition]): ([EmacsView waitFullScreenTransition]): Remove Methods. * src/nsterm.h (EmacsView): Remove definitions of removed methods, and the in_fullscreen_transition variable. 2021-06-09 Glenn Morris * lib/Makefile.in (Makefile): Fix typo. 2021-06-09 Philip Kaludercic Remove custom rcirc-completion implementation * lisp/net/rcirc.el (rcirc-completion-at-point): Improve completion suggestions (rcirc-completions): Remove variable (rcirc-completion-start): Remove variable (rcirc-complete): Remove function (rcirc-mode-map): Bind TAB to completion-at-point (rcirc-mode): Use cycling for completion 2021-06-09 Philip Kaludercic Recognize quoted commands in rcirc-process-input-line * lisp/net/rcirc.el (rcirc-process-input-line): Check for quoted commands (rcirc-process-command): Don't check for quoted commands 2021-06-09 Philip Kaludercic Integrate formatting into rcirc-send-string * lisp/net/rcirc.el (rcirc-connect): Use new syntax (rcirc-send-string): Allow for more arguments (rcirc-send-privmsg): Use new syntax (rcirc-send-ctcp): Use new syntax (rcirc-send-message): Use new syntax (rcirc-clean-up-buffer): Use new syntax (join): Use new syntax (invite): Use new syntax (part): Use new syntax (quit): Use new syntax (nick): Use new syntax (names): Use new syntax (topic): Use new syntax (whois): Use new syntax (mode): Use new syntax (list): Use new syntax (oper): Use new syntax (kick): Use new syntax (rcirc-handler-PING): Use new syntax (rcirc-handler-ctcp-VERSION): Use new syntax (rcirc-handler-ctcp-ACTION): Use new syntax (rcirc-handler-ctcp-TIME): Use new syntax 2021-06-09 Philip Kaludercic Fix checkdoc complaints and related issues 2021-06-09 Philip Kaludercic Use auth-source for user-passwords * (rcirc): Use auth-source is no password was specified 2021-06-09 Philip Kaludercic Default to libera instead of freenode * lisp/net/rcirc.el (rcirc-server-alist): Update default value 2021-06-09 Alan Third Fix image filename encoding issues (bug#48902) * src/image.c (image_find_image_fd): Don't return an encoded filename string. * src/nsfns.m: ([NSString stringWithLispString:]): Clarify usage comment. * src/nsimage.m ([EmacsImage allocInitFromFile:]): No need to encode the filename when converting to NSString. 2021-06-09 Michael Albinus * etc/NEWS: New user option 'shell-has-auto-cd'. 2021-06-09 Jason Kim (tiny change) Handle auto-cd in shell-mode * lisp/shell.el (shell-has-auto-cd): New defcustom. (shell-directory-tracker): Handle implicit "cd". 2021-06-09 Utkarsh Singh (tiny change) New user option for Git log switches * lisp/vc/vc-git.el (vc-git-diff-switches): New defcustom. (vc-git-print-log): Use it. * etc/NEWS: Announce the new option. 2021-06-08 Juri Linkov * lisp/simple.el (yank-from-kill-ring): Add edited string to the kill-ring. (Bug#48478) 2021-06-08 Juri Linkov Sync overlay code in minibuffer-message and set-minibuffer-message (bug#48669) * lisp/minibuffer.el (minibuffer-message): Copy more overlay positioning code from set-minibuffer-message. (minibuffer--message-overlay-pos): Mention both minibuffer-message and set-minibuffer-message in the docstring. (set-minibuffer-message): Use 'cursor t' instead of 1. 2021-06-08 Glenn Morris Merge from origin/emacs-27 37f4457994 (origin/emacs-27) ; Fix typo in dynamic module functions d... f7d4bbceee ; * src/composite.h: Improve comments for LGSTRING and LGL... 2021-06-08 Alex Bochannek Change the Gnus default to use `#' to toggle the process mark * doc/misc/gnus.texi (Marking Groups, Topic Commands): (Setting Process Marks, Pick and Read): Document the new default. * lisp/gnus/gnus-group.el (gnus-group-make-menu-bar): Update menu. * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Update menu. * lisp/gnus/gnus-topic.el (gnus-topic-make-menu-bar): Update menu. * lisp/gnus/gnus.el (gnus-process-mark-toggle): Change default. 2021-06-08 Stephen Gildea MH-E: do not look for MH variants in relative directories * lisp/mh-e/mh-e.el (mh-variants): Do not examine relative directories in exec-path (e.g., "."); these won't have MH installed. Also, file-chase-links is not robust with relative names: you cannot pass it a relative name that is a symlink. 2021-06-08 Stefan Kangas Fix an example in ERC docs * doc/misc/erc.texi (Connecting): * lisp/erc/erc.el (erc, erc-tls): Fix example to use J. Random Hacker instead of Harry S. Truman. 2021-06-08 Stefan Kangas * doc/man/emacs.1.in: Minor fixes. 2021-06-08 Alan Third Revert "src/nsterm.m: fix window tabbing on macOS" This reverts commit 2207f9adccc0411b7ad73a3703f16250d7f8e139. 2021-06-07 Michael Albinus Improve support of remote files in browse-url.el * etc/NEWS: Mention support of remote file browsing. * lisp/net/browse-url.el (browse-url-of-buffer): Revert last change. (browse-url-of-file): Use temporary file in case of remote file. (Bug#48397) 2021-06-07 Dmitry Gutov Fix rgrep abbreviation * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Update for the last change in grep-find-template (bug#48471). 2021-06-07 Eli Zaretskii * src/xdisp.c (Fwindow_text_pixel_size): Plug memory leak. (Bug#48884) 2021-06-07 Michael Albinus Support remote file names in `browse-url-of-buffer' * lisp/net/browse-url.el (browse-url-of-buffer): Use temporary file in case of remote `file-name'. (Bug#48397) 2021-06-07 Dmitry Gutov Support old BSD find and "root dir symlink" better * lisp/progmodes/grep.el (grep-compute-defaults): Add '-H' to grep-find-template (bug#48471). * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): Pass the root directory name without the trailing slash. * lisp/progmodes/xref.el (xref-matches-in-directory): Ditto. * test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs) (xref--xref-file-name-display-is-relative-to-project-root): Make tests more strict again. 2021-06-06 Dmitry Gutov completion-pcm--hilit-commonality: Reuse the match-data cons cells * lisp/minibuffer.el (completion-pcm--hilit-commonality): Reuse the match-data cons cells for better performance (bug#48841). 2021-06-06 Eli Zaretskii Fix a problem with restarting 'tags-search' * lisp/progmodes/etags.el (tags-search, tags-query-replace): Link to 'fileloop-continue' instead of 'tags-loop-continue', for continuing TAGS-based search/replace commands. * lisp/fileloop.el (fileloop-continue): Reset 'switch-to-buffer-preserve-window-point' to nil when switching to another buffer, so as to make sure a new search always restarts from point-min in each buffer it searches. (Bug#48628) 2021-06-06 Lars Ingebrigtsen Clarify boolean widget prompt * lisp/wid-edit.el (widget-boolean-prompt-value): Clarify prompt (bug#43593). 2021-06-06 Lars Ingebrigtsen Clarify file reversion prompt * lisp/files.el (revert-buffer--default): Clarify prompt when the buffer is modified (bug#43884). 2021-06-06 Lars Ingebrigtsen Make `so-long' restore `view-mode' * lisp/so-long.el (so-long): Make the `v' command in Dired work more reliably (bug#45084). 2021-06-06 Sebastian Urban (tiny change) Minor copyedits in the Emacs user manual * doc/emacs/fixit.texi (Spelling): Move TeX hyphenation directives from here... * doc/emacs/docstyle.texi: ...to here. * doc/emacs/display.texi (Displaying Boundaries, Text Display): Minor stylistic changes. (Bug#48654) 2021-06-06 Eli Zaretskii Minor fixes for last change * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: Adapt to added Mercury support. * lib-src/etags.c (find_entries, test_objc_is_mercury): * etc/NEWS: Fix punctuation and typos in last change. 2021-06-06 Fabrice Nicol Add support for Mercury (https://mercurylang.org) in 'etags' Tag declarations starting lines with ':-'. By default, all declarations are tagged. Optionally, first predicate or functions in clauses can be tagged as in Prolog support using '--declarations'. (Bug#47408). * lib-src/etags.c (test_objc_is_mercury, Mercury_functions) (mercury_skip_comment, mercury_decl, mercury_pr): Implement Mercury support. As Mercury and Objective-C have the same file extension .m, a heuristic test tries to detect the language. * doc/man/etags.1: Document the change. Add Mercury-specific behavior for '--declarations'. This option tags first predicates or functions in clauses in addition to declarations. 2021-06-06 Paul W. Rankin src/nsterm.m: fix window tabbing on macOS * src/nsterm.m: remove NSWindowTabbingModeDisallowed to respect system-wide preferences * etc/NEWS: add mention of native tab support in macOS and where to specify system-wide setting 2021-06-06 Michael Albinus * lisp/net/tramp.el (tramp-error): Make it a defun. 2021-06-05 João Távora Consider environment vars in Fido's directory-aware RET binding (Bug#48782) * lisp/icomplete.el (icomplete-fido-ret): Consider environment variables in dir expansion. 2021-06-05 Alex Bochannek Fix Gnus summary exclusion when everything matches * lisp/gnus/gnus-sum.el (gnus-summary-limit-to-recipient): * lisp/gnus/gnus-sum.el (gnus-summary-limit-to-subject): (gnus-summary-limit-to-address, gnus-summary-limit-to-extra): Don't claim that there aren't any matches when everything matches an exclusion (bug#48834). 2021-06-05 Stefan Monnier * src/keyboard.c (read_decoded_event_from_main_queue): Fix paren typo * lisp/mpc.el (mpc-intersection): Fix commit 1760029b0927242 2021-06-05 Eli Zaretskii Document the last change * doc/lispref/os.texi (Input Modes): Document the changes in the values of the META flag. * etc/NEWS: Call out the change in input-meta-mode. 2021-06-05 Max Mikhanosha Support terminal emulators that encode the Meta modifier as 8th bit See discussion starting at https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00034.html for the details. * src/keyboard.c (read_decoded_event_from_main_queue): For raw-text encoed input, if Meta bit is encoded, apply the Meta modifier to single-byte characters that have the 0x80 bit set. For input encoded otherwise, if the Meta bit is encoded, remove the 0x80 bit after decoding the characters. (tty_read_avail_input): Reset the 0x80 bit only if Meta bit is not encoded. (Fset_input_meta_mode): Support 'encoded' as the value of META. (Fset_input_mode): Document 'encoded' for META. (Fcurrent_input_mode): Support and document 'encoded' as the value of META. (syms_of_keyboard): DEFSYM 'encoded'. 2021-06-05 Eli Zaretskii Fix slow operation of 'string-width' * src/composite.c (find_automatic_composition): Accept one additional argument BACKLIM; don't look back in buffer or string farther than that. Add an assertion for BACKLIM. (composition_adjust_point, Ffind_composition_internal): Callers adjusted. * src/composite.h (find_automatic_composition): Adjust prototype. * src/character.c (lisp_string_width): Call 'find_automatic_composition' with the value of BACKLIM equal to POS, to avoid costly and unnecessary search back in the string, since those previous characters were already checked for automatic compositions. (Bug#48734) (Bug#48839) 2021-06-05 Eli Zaretskii Some additions to the TeX input method * lisp/leim/quail/latin-ltx.el (latin-ltx--define-rules): Add some rules from Unicode Technical Note 28 "UnicodeMath" v3.1. 2021-06-05 Dmitry Gutov Make icomplete less blinky and more responsive * lisp/icomplete.el (icomplete-pre-command-hook, icomplete-tidy): Remove, update the callers (https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00111.html). (icomplete-compute-delay): Change the default to 150ms. (icomplete-max-delay-chars): Change the default to 2. 2021-06-04 Tassilo Horn Ask if dir and subdir dired buffers be killed when deleting dir Previously, when you've had dired buffers ~/foo/ ~/foo/bar/ ~/foo/bar/baz/ and then deleted ~/foo/, dired (with dired-clean-up-buffers-too set to non-nil) would only ask to delete the dired buffer of ~/foo/. Now it will offer to delete all three buffers. * lisp/dired.el (dired-buffers-for-dir): Add optional argument SUBDIRS which makes the function return also dired buffers showing a subdir of DIR. (dired-in-this-tree-p): Make obsolete in favor of file-in-directory-p which actually does what the name suggest whereas dired-in-this-tree-p is just string-matching on filenames which will fail with symlinks filenames including ./ or ../. 2021-06-04 Eli Zaretskii Fix documentation of a recent change. * etc/NEWS: * doc/emacs/misc.texi (Invoking emacsclient): Fix a recent change. (Bug#11358) 2021-06-04 Stephen Berman Fix placement of point in Dired deletion operations * lisp/dired.el (dired-do-flagged-delete, dired-do-delete): Use point-marker instead of point to record each file name position. Clean up the markers before returning. (dired-internal-do-deletions): Move to the file name marker, and then move point to the file name to visually emphasize which file is being operated on (bug#48805). 2021-06-04 Harald Hanche-Olsen (tiny change) Add a new `server-edit-abort' command * doc/emacs/misc.texi (Invoking emacsclient): Document it (bug#11358). * lisp/server.el (server-edit): Mention it in the doc string. (server-edit-abort): New command. 2021-06-04 Lars Ingebrigtsen Revert "Make the `i' command in Info-mode remove duplicate matches" This reverts commit 089e0c4c55dcf72f9cf2f6f04b8a52fc7355499c. There were no duplicate entries -- there were two entries for different things that referred to the same line. 2021-06-04 Eli Zaretskii Fix documentation of recent 'windmove' changes * lisp/windmove.el (windmove-default-keybindings) (windmove-display-default-keybindings) (windmove-delete-default-keybindings) (windmove-swap-states-default-keybindings): Improve doc strings. (Bug#41438) * etc/NEWS: Fix a typo in the 'windmove' entry. 2021-06-03 Juri Linkov * lisp/simple.el (read-from-kill-ring): Fix the case of 'M-y M-p' (bug#48478) Don't use offsets for read-from-kill-ring-history when kill-ring-yank-pointer points to the last element of kill-ring. 2021-06-03 Juri Linkov * lisp/help-fns.el (help--symbol-class): New function. Refactored from help--symbol-completion-table-affixation. https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00066.html 2021-06-03 Juri Linkov * etc/NEWS: Add windmove keybindings (bug#41438) 2021-06-03 Philip Kaludercic Add user options for default windmove commands (bug#41438) * lisp/windmove.el (windmove--default-keybindings-type): Add type. (windmove-default-keybindings): Add user option. (windmove-display-default-keybindings): Add user option. (windmove-delete-default-keybindings): Add user option. (windmove-swap-states-default-keybindings): Add user option. 2021-06-03 Philip Kaludercic Improve windmove-*-default-keybindings functions (bug#41438) * lisp/windmove.el (windmove-mode-map): Add special map for windmove commands. (windmove-mode): Add minor mode for activating windmove-mode-map. (windmove-install-defaults): Add general function for manipulating windmove-mode-map. (windmove-default-keybindings): Use windmove-install-defaults. (windmove-display-default-keybindings): Use windmove-install-defaults. (windmove-delete-default-keybindings): Use windmove-install-defaults. (windmove-swap-states-default-keybindings): Use windmove-install-defaults. 2021-06-03 Mattias Engdegård Constant-propagate (function SYMBOL) * lisp/emacs-lisp/byte-opt.el (byte-optimize--substitutable-p): Consider #'SYMBOL a constant for compile-time propagation purposes. 2021-06-03 Mattias Engdegård Optimise (cons X nil) to (list X) * lisp/emacs-lisp/byte-opt.el (byte-optimize-cons): New function. 2021-06-03 Eli Zaretskii Fix fill-column-indicator on TTY frames * src/xdisp.c (extend_face_to_end_of_line): Fix calculation of fill-column-indicator on TTY frames. Suggested by Jimmy Aguilar Mena . 2021-06-03 Eli Zaretskii More accurate highlighting of mis-spellings in Flyspell * lisp/textmodes/flyspell.el (flyspell-word): Highlight only the misspelled word, not any extra characters after it. (Bug#5575) 2021-06-03 Lars Ingebrigtsen Make the `i' command in Info-mode remove duplicate matches * lisp/info.el (Info-index): Weed out duplicate matched (bug#3692). 2021-06-03 Lars Ingebrigtsen Fix up previous hideif change to avoid a compilation warning * lisp/progmodes/hideif.el (hide-ifdef-expand-reinclusion-protection): Move to avoid a compilation warning. 2021-06-03 Lars Ingebrigtsen fringe-mode doc clarifications * lisp/fringe.el (fringe-mode): (fringe-mode): Note that this variable and command have nothing to do with modes (bug#6931). 2021-06-03 Luke Lee * lisp/progmodes/hideif.el: Fix initial version for new variables (hide-ifdef-verbose, hide-ifdef-evalulate-enter-hook) (hide-ifdef-evalulate-leave-hook): Fix initial version to 28.1. (hide-ifdef-expand-reinclusion-protection): Obsolete since 28.1, rename to `hide-ifdef-expand-reinclusion-guard' instead. 2021-06-03 Lars Ingebrigtsen Fix problem with empty command histories in eshell and `erase' * lisp/eshell/em-hist.el (eshell-add-input-to-history): Protect against an empty ring (bug#48770). 2021-06-03 Eli Zaretskii * configure.ac: Clarify "smoke test" error message. (Bug#48804) 2021-06-03 Lars Ingebrigtsen Cross-reference the message/error control variables * src/keyboard.c (syms_of_keyboard): Mention set-message-function in the command-error-function doc string... * src/xdisp.c (syms_of_xdisp): ... and vice versa (bug#13752). 2021-06-03 Eli Zaretskii * configure.ac: Improve error messages about libgccjit. 2021-06-02 Tassilo Horn Allow opening buttonized URL with secondary browser in rcirc * lisp/net/browse-url.el (browse-url-button-open-url): Add autoload cookie. * lisp/net/rcirc.el (rcirc-markup-urls): Use `browse-url-button-open-url' instead of just `browse-url' in order to be able to use the secondary browser by giving a prefix arg. 2021-06-02 Eli Zaretskii Fix a typo in 'produce_glyphless_glyph' * src/xdisp.c (produce_glyphless_glyph): Initialize lower_xoff. Remove workaround for lack of its initialization. (Bug#8215) 2021-06-02 Luke Lee * lisp/progmodes/hideif.el: update for new C++ standards and extensions Matching gcc/clang behavior on stringification including keeping the same number of white spaces. C++11, C++14, C++17 and GCC literals extension are supported. Preprocessing time floating point operation supported but limited to Emacs internal representation which is C data type "double". Also support some frequently used keywords like __LINE__, __TIME__, __DATE__ and so on. (hif-clear-all-ifdef-defined, hif-show-all, hif-after-revert-function) (hide-ifdef-define, hide-ifdefs, show-ifdefs): interactive behavior changes, mainly to allow operation within the marked region. (hif-eval, hif-__LINE__, hif-__FILE__, hif-__COUNTER__, hif-__cplusplus) (hif-__DATE__, hif-__TIME__, hif-__STDC__, hif-__STDC_VERSION__) (hif-__STDC_HOST__, hif-__FILE__, hif-full-match, hif-is-number, hif-is-float) (hif-delete-char-in-string, hif-string-to-decfloat, hif-string-to-hexfloat) (hif-strtok, hif-is-white, hif-backward-comment, hif-split-signed-token) (hif-keep-single, hif-display-macro): new functions. (hide-ifdef-verbose, hide-ifdef-evalulate-enter-hook) (hide-ifdef-evalulate-leave-hook, hide-ifdef-evaluator, hif-predefine-alist) (hif-numtype-suffix-regexp, hif-bin-regexp, hif-hex-regexp, hif-oct-regexp) (hif-dec-regexp, hif-decfloat-regexp, hif-hexfloat-regexp) (hif-unicode-prefix-regexp, hif-verbose-define-count): new constants or variables. (hif-macroref-regexp, hif-token-alist, hif-token-regexp) (hif-string-literal-regexp): modified constants for faster regexp processing. (hide-ifdef-expand-reinclusion-guard): renamed from `hide-ifdef-expand-reinclusion-protection' to match commonly used term. (hif-lookup, hif-defined, hif-string-to-number, hif-tokenize, hif-nextoken) (hif-if-valid-identifier-p, hif-define-operator, hif-expand-token-list) (hif-parse-exp, hif-math, hif-factor, hif-get-argument-list, hif-stringify) (hif-token-concat, hif-mathify, hif-comma, hif-token-stringification) (hif-token-concatenation, hif-macro-supply-arguments, hif-evaluate-macro) (hif-find-define, hif-add-new-defines, hide-ifdef-guts, hif-undefine-symbol) (hide-ifdef-set-define-alist, hide-ifdef-use-define-alist): modified functions for new internal data representation, mainly for stringification and white space preservation. Also better error handling to report source line number and more informative error messages. 2021-06-02 Lars Ingebrigtsen Fix ibuffer auto-shrinking windows * lisp/ibuffer.el (ibuffer-shrink-to-fit): Don't shrink all windows, just the ibuffer one (bug#7218). 2021-06-02 Lars Ingebrigtsen Move point in dired buffers when handling a list of files * lisp/dired-aux.el (dired-create-files): Advance point to the current file (bug#8015). 2021-06-02 Alex Bochannek Add new user option to Gnus to allow `#' to toggle * doc/misc/gnus.texi (Marking Groups, Setting Process Marks): Mention the new variable. * lisp/gnus/gnus-group.el (gnus-group-make-menu-bar): Update menu. (gnus-group-mark-group): Support the variable. (gnus-group-mark-update): New command. (gnus-group-unmark-group, gnus-group-mark-region): Pass in new parameter. * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Update menu. (gnus-summary-mark-as-processable): Use the variable. * lisp/gnus/gnus-topic.el (gnus-topic-mark-topic): (bug#48683). * lisp/gnus/gnus-topic.el (gnus-topic-mark-topic): Use the variable. * lisp/gnus/gnus.el (gnus-process-mark-toggle): New user option. 2021-06-01 Alan Third Improve performance of NS port's display on macOS * src/nsterm.h: Update EmacsSurface definition. * src/nsterm.m ([EmacsView focusOnDrawingBuffer]): Don't change the CGContext's settings directly. ([EmacsView unfocusDrawingBuffer]): Don't release the context here. (CACHE_MAX_SIZE): Add maximum cache size. ([EmacsView updateLayer]): Send a request for getContext, which will copy the buffer and create the context if it doesn't already exist, to the NS run loop. ([EmacsSurface initWithSize:ColorSpace:Scale:]): Add the scale factor and if there's already a CGContext available, reuse it. ([EmacsSurface dealloc]): No longer need to release lastSurface separately. ([EmacsSurface getContext]): Don't create more surfaces than we have spaces for in the cache. ([EmacsSurface releaseContext]): If there's no context don't try to release it and put currentSurface back on the cache instead of lastSurface. ([EmacsSurface copyContentsTo:]): Don't try to copy if the source and destination are actually the same surface. 2021-06-01 Andrea Corallo Add `native-compile-target-directory' (bug#48743) * lisp/emacs-lisp/comp.el (native-compile-target-directory): New variable. (comp-spill-lap-function): Make use of. 2021-06-01 Andrea Corallo Rename batch-byte-native-compile-for-bootstrap (bug#48743) * lisp/Makefile.in : Rename `batch-byte-native-compile-for-bootstrap' -> `batch-byte+native-compile. * lisp/emacs-lisp/bytecomp.el (byte+native-compile) (byte-compile-file): Rename `batch-byte-native-compile-for-bootstrap' -> `batch-byte+native-compile + `byte-native-for-bootstrap' -> `byte+native-compile'. * lisp/emacs-lisp/comp.el (comp-spill-lap-function, comp-final) (batch-native-compile, batch-byte+native-compile): Likewise. * lisp/emacs-lisp/bytecomp.el (byte+native-compile) (byte-compile-file): Likewise. * test/src/comp-tests.el (comp-tests-bootstrap): Rename `byte-native-for-bootstrap' -> `byte+native-compile'. 2021-06-01 Glenn Morris Remove unnecessary function declaration in isearch * lisp/isearch.el (multi-isearch-switch-buffer): Remove unnecessary declaration (after ldefs-boot update). 2021-06-01 Andreas Schwab Avoid hang in nnimap-keepalive * lisp/gnus/nnimap.el (nnimap-keepalive): Make interruptible. 2021-06-01 Stefan Monnier * lisp/gnus/gnus-art.el: Don't sneak dynbound code via quoting Make sure we don't accidentally quote lambdas by embedding them within quoted data. (gnus-visible-headers, gnus-emphasis-alist) (gnus-mime-display-alternative, gnus-article-describe-bindings): Unquote lambdas. 2021-06-01 João Távora Add annotation capability to icomplete-vertical-mode Co-authored-by Daniel Mendler * lisp/icomplete.el (icomplete--affixate): New helper. (icomplete--render-vertical): Use it. Rework. (icomplete-completions): Pass md to icomplete--render-vertical. 2021-06-01 João Távora Improve icomplete-vertical-mode and fido-vertical-mode This mode is intended to be used with Icomplete ('M-x icomplete-mode') or Fido ('M-x fido-mode'), to display the list of completions candidates vertically instead of horizontally. When used with Icomplete, completions are rotated and selection kept at the top. When used with Fido, completions scroll like a typical dropdown widget. If the dropdown behaviour is desired for Icomplete (instead of rotation), icomplete-scroll can be adjusted separately by the user. * etc/NEWS (icomplete-vertical-mode): Reword. * lisp/icomplete.el (simple): Require it. (icomplete-selected-match): New face. (icomplete-scroll): New user-visible var. (icomplete-forward-completions): Rework. (icomplete-backward-completions): Rework. (icomplete--fido-mode-setup): Prefer icomplete-scroll according to icomplete-vertical mode. (icomplete-minibuffer-setup): Initialize icomplete--scrolled-completions. (fido-vertical-mode): An alias for icomplete-vertical-mode. (icomplete-exhibit): Init icomplete--scrolled-past. Adjust overlay. (icomplete--render-vertical): New helper. (icomplete--sorted-completions): If cache is stale, also invalidate icomplete--scrolled-past. (icomplete-completions): Rework. Mostly reformat. * lisp/simple.el (max-mini-window-lines): New helper. (display-message-or-buffer): Use it. 2021-06-01 Lars Ingebrigtsen Allow packages to change the hl-line overlay priority * lisp/hl-line.el (hl-line-overlay-priority): New variable (bug#11509). (hl-line-make-overlay): Use it. 2021-06-01 Lars Ingebrigtsen Fix problem with `format-alist' marking all the text in the buffer * lisp/format.el (format-decode-run-method): Use it to avoid marking the entire buffer (bug#11691). * lisp/simple.el (shell-command-on-region): Allow replacing text without activating the mark. 2021-06-01 Lars Ingebrigtsen Document `with-selected-frame' * doc/lispref/windows.texi (Selecting Windows): Document `with-selected-frame' (bug#12075). 2021-06-01 Lars Ingebrigtsen Obsolete `global-whitespace-newline-mode' * lisp/whitespace.el (global-whitespace-newline-mode): Make obsolete since it doesn't work correctly, and seems superfluous (bug#12496). 2021-06-01 Lars Ingebrigtsen Add a new command `mailcap-view-file' * doc/misc/emacs-mime.texi (mailcap): Document it (bug#12972). * lisp/net/mailcap.el (mailcap-view-file): New command. 2021-06-01 Lars Ingebrigtsen Fix documentation of literal `face' syntax in font-lock section * doc/lispref/modes.texi (Search-based Fontification): Fix the literal `(0 (face ...))' syntax documentation (bug#13917). 2021-06-01 Philip Kaludercic Improve random selection of keyservers * lisp/epa-ks.el (epa-keyserver): Interpret a list as a pool. (epa-ks--query-url): Add new auxiliary function. (epa-ks--fetch-key): Use epa-ks--query-url. (epa-search-keys): Use epa-ks--query-url. 2021-05-31 Juri Linkov * lisp/isearch.el (lazy-highlight-buffer-max-at-a-time): Change from 20 to 200 Suggested by Augusto Stoffel in bug#48581 2021-05-31 Andrea Corallo Make *Async-native-compile-log* buffer read-only (bug#48763) * lisp/emacs-lisp/comp.el (comp-run-async-workers): Make "*Async-native-compile-log*" read-only. 2021-05-31 Alan Mackenzie Make frames record when their selected window was the mini-window When a frame in this state is selected again by Fselect_frame (but not by Fselect_window), the mini-window rather than the frame's currently selected window, is chosen for selection, should there still be an active minibuffer in it. This fixes bug #48674. * src/frame.h (struct frame): Add new boolean field select_mini_window_flag. * src/frame.c (make_frame): Initialize select_mini_window_flag to false. (do_switch_frame): Set the new flag appropriately for the old frame, and process the new frame's setting of this flag, before setting it to false. * src/window.c (select_window): Set f->select_mini_window_flag to false. (Fset_frame_selected_window, Fdelete_other_windows_internal) (Fdelete_window_internal): Add comments clarifying that there is no clearing of f->select_mini_window_flag in these functions. 2021-05-31 Glenn Morris * src/keyboard.c (make_lispy_event): Fix previous. 2021-05-31 Glenn Morris Merge from origin/emacs-27 5dfa5e26dd (origin/emacs-27) Improve documentation of regexp ranges 2021-05-31 Alan Mackenzie Correct mouse handling when window origin changes between down and up events Do this by using frame relative positions rather than window relative ones, which gave rise to spurious drag events when the origin of the window changed between the mouse down and up events. This fixes bug #48409. * src/keyboard.c (frame_relative_event_pos): New static variable. (make_lispy_event): Record frame relative position of down event. When the up event is in the same position, "move" this event into the window of the down event when this window (typically a mini-window) is no longer under the mouse. Call make_lispy_position a second time to generate this changed event. (syms_of_keyboard): Declare Qwindow_edges. static_pro frame_relative_event_pos. 2021-05-31 Colin Woodbury (tiny change) Remove spurious @example from the elisp manual * doc/lispref/macros.texi (Defining Macros): Remove spurious extra pair of @example/@end example. 2021-05-31 Lars Ingebrigtsen Remove messaging in ediff-make-diff2-buffer * lisp/vc/ediff-diff.el (ediff-make-diff2-buffer): Remove message that's often misleading when diffing buffers (that may be unsaved) (bug#13091). 2021-05-31 Lars Ingebrigtsen Put ELP results in a special-mode buffer * lisp/emacs-lisp/elp.el (elp-results): Make `q' work in ELP results buffer (bug#14104). (elp-results-mode): Define as an empty special mode derivation. 2021-05-31 Lars Ingebrigtsen Make `menu-bar-select-buffer' obsolete * lisp/menu-bar.el (menu-bar-select-buffer): Make obsolete (bug#15651). * lisp/msb.el (msb--select-buffer): Move function here and rename. (msb--make-keymap-menu): Use it. 2021-05-31 Lars Ingebrigtsen Revert "Move menu-bar-select-buffer to msb.el" This reverts commit 253e52478c355dc29052c0d21013b8d06b473880. This is to be fixed in a different way in the next patch. 2021-05-31 Lars Ingebrigtsen Use buffer-local-boundp in describe-variable * lisp/help-fns.el (describe-variable): Use `buffer-local-boundp'. 2021-05-31 Lars Ingebrigtsen Add new convenience function `buffer-local-boundp' * doc/lispref/variables.texi (Creating Buffer-Local): Document it. * lisp/subr.el (buffer-local-boundp): New function. * src/data.c (Flocal_variable_p): Mention it. 2021-05-31 Daniel Mendler Speed up `describe-variable' completion predicate * lisp/help-fns.el (describe-variable): Do not switch to the original buffer in the predicate (bug#48738). 2021-05-31 Lars Ingebrigtsen Fix error in xdg-mime-apps-files when XDG_CURRENT_DESKTOP is defined * lisp/xdg.el (xdg-mime-apps-files): Don't bug out when XDG_CURRENT_DESKTOP is bound (bug#48748). 2021-05-30 Philipp Stephani Document that the 'syntax-propertize-function' may move point. The functions generated by 'syntax-propertize-rules' don't use 'save-excursion', but 'syntax-propertize' does, so we might as well document that the 'syntax-propertize-function' may move point. * doc/lispref/syntax.texi (Syntax Properties): Document that the 'syntax-propertize-function' may move point. 2021-05-30 Philipp Stephani Give 'syntax-propertize-wholelines' a docstring. This function is generally useful. * lisp/emacs-lisp/syntax.el (syntax-propertize-wholelines): Add docstring. 2021-05-30 Stephen Gildea time-stamp: fix minor bug when parsing option combos * lisp/time-stamp.el (time-stamp-string-preprocess): Handle digit options correctly to avoid overcounting colon options. * test/lisp/time-stamp-tests.el (time-stamp-format-time-zone-offset): Add a new test case that would have caught the option-parsing error. 2021-05-30 Stephen Gildea time-stamp: refactor time-stamp-string-preprocess * lisp/time-stamp.el (time-stamp-string-preprocess): Reduce lifetime of some loop-local variables to be less error-prone. 2021-05-30 Mauro Aranda Do not reset settings when disabling a theme * lisp/custom.el (disable-theme): Don't call custom-push-theme, since that resets the theme settings and it isn't useful: we only need to remove the theme setting from the themed variable or face. This fixes a regression when "toggling" themes, introduced while fixing Bug#34027. (Bug#48736) 2021-05-30 Eli Zaretskii Improve documentation of regexp ranges * doc/lispref/searching.texi (Regexp Special): Document the effect of using octal escapes in regexp ranges. (Bug#17758) 2021-05-30 Eli Zaretskii Don't account for character compositions in 'format' and friends 'lisp_string_width' is called from 'format' and 'format-message', which can be called both very early into Emacs initialization and in other contexts where using the font backend is impossible or undesirable. So this commit changes 'lisp_string_width' to try accounting for automatic compositions only when explicitly requested, and only 'string-width' does that; 'format' and 'format-message' don't. * src/character.c (lisp_string_width): Accept an additional argument AUTO_COMP; attempt accounting for auto-compositions only if that argument is non-zero. (Bug#48732) * src/editfns.c (styled_format): * src/character.c (Fstring_width): Callers of 'lisp_string_width' adjusted. 2021-05-30 Lars Ingebrigtsen Clarify that `symbol-file' only works for symbols in Lisp files * lisp/subr.el (symbol-file): Mention help-C-file-name in the doc string (bug#14932). 2021-05-30 Lars Ingebrigtsen Allow help-C-file-name to work on symbols designating subrs * lisp/help-fns.el (help-C-file-name): Allow working on symbols designating subrs (bug#14932). 2021-05-30 Lars Ingebrigtsen Fix kmacro-view-ring-2nd doc string * lisp/kmacro.el (kmacro-view-ring-2nd): Fix doc string (bug#15020). 2021-05-30 Lars Ingebrigtsen Move menu-bar-select-buffer to msb.el * lisp/menu-bar.el (menu-bar-select-buffer): Move from here... (bug#15651). * lisp/msb.el (menu-bar-select-buffer): ... to here (which is the only usage in-tree in Emacs). 2021-05-30 Stephen Gildea time-stamp: improve unit-test coverage * test/lisp/time-stamp-tests.el (time-stamp-format-year-4digit, time-stamp-format-ignored-modifiers): Improve coverage with more cases. (time-stamp-format-multiple-conversions): New test. 2021-05-30 Lars Ingebrigtsen `minibuffer-exit-hook' doc string clarification * src/minibuf.c (syms_of_minibuf): `minibuffer-exit-hook' is run in the minubuffer usually, so don't claim that it's run after (bug#16524). 2021-05-30 Daniel Martín Add a new documentation group for overlays * lisp/emacs-lisp/shortdoc.el (overlay): Add documentation group for buffer overlays(bug#48730). 2021-05-30 Daniel Martín Improve the documentation of documentation groups * doc/lispref/help.texi (Documentation Groups): Fix typos and add an example. * lisp/emacs-lisp/shortdoc.el (define-short-documentation-group): Add :no-eval* and :result-string keywords to the docstring. (Bug#48730) 2021-05-30 Lars Ingebrigtsen Tweak octave continuation indentation * lisp/progmodes/octave.el (octave-smie-rules): Further tweak continuation indentation (bug#17955). 2021-05-30 Eli Zaretskii Clarify indent-line-function doc string * lisp/indent.el (indent-line-function): Clarify by avoiding specifics (bug#20846). 2021-05-29 Stefan Monnier * lisp/mpc.el (mpc-format): Fix inf-loop in constructed predicate 2021-05-29 Andreas Schwab * lisp/wdired.el (wdired-normalize-filename): Sync with dired-get-filename. (Bug#48659) 2021-05-29 Stefan Monnier * lisp/electric.el: Do auto-indent inside strings and comments by default This fixes bug#20846 where it transpired that there is no good reason to shy away from auto-indenting inside comments and strings. (electric-indent-post-self-insert-function): Don't check syntax-ppss. 2021-05-29 Keith David Bershatsky Improve tex fontification of quoted strings * lisp/textmodes/tex-mode.el (tex-font-lock-keywords-2): Fontify ``text like this'' that has an apostrophe correctly (bug#16881). 2021-05-29 Eli Zaretskii Fix last change * lisp/international/quail.el (quail-add-unread-command-events): Fix wording of the doc string. Move the rationale for the function out of the doc string and into a comment. 2021-05-29 Gregory Heytings Fix key recording bug when an input method is activated * lisp/international/quail.el (quail-add-unread-command-events): New function. (quail-start-translation, quail-start-conversion) (quail-update-translation, quail-next-translation) (quail-prev-translation, quail-next-translation-block) (quail-prev-translation-block, quail-minibuffer-message): Use 'quail-add-unread-command-events' (and partly revert commit 03e3440dbb). (Bug#48042) * lisp/subr.el (inhibit--record-char): Now obsolete. * lisp/term/xterm.el (xterm--init): New function, with most of the code of former 'terminal-init-xterm'. (terminal-init-xterm): Clear the lossage after terminal initialization (see Bug#44908). (xterm--read-event-for-query): Do not use 'inhibit--record-char' anymore (revert commit 3e6525d69f). * src/keyboard.c (syms_of_keyboard): Remove 'inhibit--record-char' (partly revert 03e3440dbb). (record_char, syms_of_keyboard_for_pdumper): Do not use 'inhibit_record_char anymore'. 2021-05-29 Mattias Engdegård Fix shortdoc examples Make sure that each example in shortdoc actually contains the function it illustrates, and add a test for it. * lisp/emacs-lisp/shortdoc.el (string, list, buffer, number): Use the right functions in examples for string-version-lessp, lax-plist-put, point-min and ffloor. * test/lisp/emacs-lisp/shortdoc-tests.el: New test file. 2021-05-29 Lars Ingebrigtsen Add lambda to the pretty Ruby symbols list * lisp/progmodes/ruby-mode.el (ruby--prettify-symbols-alist): Add lambda (bug#48681). 2021-05-29 William Denton Add pretty symbols to ruby-mode * lisp/progmodes/ruby-mode.el (ruby--prettify-symbols-alist): Add pretty symbols (bug#48681). (ruby-mode): Use them. 2021-05-29 Lars Ingebrigtsen Mention the recent floating point reader changes in NEWS * etc/NEWS: Mention the floating point reader changes (bug#48678). 2021-05-29 Lars Ingebrigtsen Improve the dired-guess-shell-alist-user doc string * lisp/dired-x.el (dired-guess-shell-alist-user): Document how REGEXP is used (bug#17251). 2021-05-29 Lars Ingebrigtsen Fix folding of non-ASCII lines when printing to Postscript * lisp/ps-mule.el (ps-mule-plot-string): Fix folding of non-ASCII Latin-1 lines (bug#17758). 2021-05-29 Lars Ingebrigtsen Improve Octave indentation after continuation lines * lisp/progmodes/octave.el (octave-smie-rules): Indent continuation lines better (bug#17955). 2021-05-29 Lars Ingebrigtsen Improve the file-accessible-directory-p doc strin * src/fileio.c (Ffile_accessible_directory_p): Don't use the phrase "directory name spec", which isn't defined (bug#18201). 2021-05-29 Lars Ingebrigtsen Fix point movement in morse-region and nato-region * lisp/play/morse.el (morse-region): (nato-region): Leave point after the translated region (bug#18717). 2021-05-29 Peter Oliver (tiny change) Rename emacs.appdata.xml to emacs.metainfo.xml and add more data * Makefile.in: Replace "appdata" with "metainfo". This is the name currently recommended by the spec at . * etc/emacs.metainfo.xml: Populate more fields, based on those available in https://www.freedesktop.org/software/appstream/docs/chap-Metadata.html (bug#48662). 2021-05-29 Lars Ingebrigtsen Revert "Continue checking the same line when hitting SPC in ispell" This reverts commit 390044f854fa103020ffca00eb1fe0e16805ad72. This breaks the `a' command, so it should be fixed in a different way. 2021-05-28 Juri Linkov * lisp/outline.el (outline-font-lock-keywords): Fix highlight case (bug#48707) 2021-05-28 Utkarsh Singh (tiny change) * lisp/outline.el (outline-minor-mode-highlight): Fix safe-local-variable. 2021-05-28 Eli Zaretskii Another stability fix in 'lisp_string_width' * src/character.c (lisp_string_width): Compute C pointer to data of STRING immediately before using it, since STRING could be relocated by GC triggered by processing compositions. (Bug#48711) 2021-05-28 Eli Zaretskii Attempt to fix segfaults caused by changes in 'lisp_string_width' * src/character.c (lisp_string_width): Validate the value of TO argument before passing it to 'composition_gstring_width'. (Bug#48711) 2021-05-28 Lars Ingebrigtsen Improve previous frames.texi change * doc/emacs/frames.texi (Fonts): Use conf names instead of path names (bug#19568). 2021-05-28 Lars Ingebrigtsen Specify which Gsetting font names are used in the manual * doc/emacs/frames.texi (Fonts): Explicitly say what Gsettings names are used (bug#19568). 2021-05-28 Lars Ingebrigtsen Fix previous admin/emake change 2021-05-28 Lars Ingebrigtsen Adjust admin/emake filters Recent changes have made etc/doc always be regenerated, so it's no longer interesting. And all "git pull"s will make INFO Scraping files for cal-loaddefs.el... INFO Scraping files for cal-loaddefs.el...done etc be output, so filter them, too. 2021-05-28 Lars Ingebrigtsen Continue checking the same line when hitting SPC in ispell * lisp/textmodes/ispell.el (ispell-process-line): Continue checking the same line when hitting SPC (bug#20543). 2021-05-28 Daniel Martín Fix looking-at-p example in shortdoc.el * lisp/emacs-lisp/shortdoc.el (regexp): Use `looking-at-p' instead of `looking-at' (bug#48709). 2021-05-28 Alex Bochannek Mention the -e switch in an ange-ftp doc string * lisp/net/ange-ftp.el (ange-ftp-ftp-program-args): Mention the -e switch (bug#48494). 2021-05-28 Alex Bochannek Fix nnimap lexical conversion problem * lisp/gnus/nnimap.el (nnimap-process-expiry-targets): Fix problem introduced when converting to lexical binding -- `set' alters the dynamic value (bug#48577). 2021-05-27 Stefan Monnier * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Silence warnings (byte-optimize--lexvars): Move before first use instead of using `dlet` on that first use. 2021-05-27 Ingo Lohmar * lisp/progmodes/sql.el: Turn `sql-*-statement-starters' to defvars. These variables hold information on the SQL standard and product-specific additions and should not be user-customizable. 2021-05-27 Eli Zaretskii * src/character.c (lisp_string_width): Fix a typo in recent change. 2021-05-27 Eli Zaretskii Fix resolution of symlinks during dumping * src/comp.c (Fcomp_el_to_eln_rel_filename): Don't use 'file-truename', as it is only available once files.el is loaded, which doesn't work during dumping, until loadup loads files.el. Instead, use 'realpath'. (Bug#48578) * src/w32.c (realpath): New function. * src/w32.h (realpath): Add prototype. * nt/mingw-cfg.site (ac_cv_func_realpath) (gl_cv_func_realpath_works): Define to "yes", as this function is now implemented in w32.c. 2021-05-27 Eli Zaretskii * src/character.c (lisp_string_width): Fix last change. 2021-05-27 Mattias Engdegård Fix lexing of numbers with trailing decimal point and exponent Numbers with a trailing dot and an exponent were incorrectly read as integers (with the exponent ignored) instead of the floats they should be. For example, 1.e6 was read as the integer 1, not 1000000.0 as every sane person would agree was meant. (Bug#48678) Numbers with a trailing dot but no exponent are still read as integers. * src/lread.c (string_to_number): Fix float lexing. * test/src/lread-tests.el (lread-float): Add test. * doc/lispref/numbers.texi (Float Basics): Clarify syntax. 2021-05-27 Mattias Engdegård Don't propagate lexical variables into inlined functions Functions compiled when inlined (thus from inside the optimiser) mustn't retain the lexical environment of the caller or there will be tears. See discussion at https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg01227.html . Bug found by Stefan Monnier. * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Bind byte-optimize--lexvars to nil when re-entering the compiler recursively. * test/lisp/emacs-lisp/bytecomp-resources/bc-test-alpha.el: * test/lisp/emacs-lisp/bytecomp-resources/bc-test-beta.el: New files. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-defsubst): New test. 2021-05-27 Philipp Stephani * src/character.c (lisp_string_width): Add missing type checks. 2021-05-27 Eli Zaretskii A better fix for 'string-width' * src/character.c (lisp_string_width): Compute the width when automatic compositions can happen more accurately, by using the pixel widths of the grapheme clusters, divided by the default face's font width. Disregard the current state of 'auto-composition-mode', for consistency with 'current-column' . 2021-05-27 Deneb Meketa (tiny change) Fix filling of overlong first lines in Python doc strings * lisp/progmodes/python.el (python-fill-string): Fill overlong first lines correctly (bug#20860). 2021-05-27 Lars Ingebrigtsen Improve the prompting in read-directory-name * lisp/dired-x.el (dired-virtual): Improve doc string and use `read-directory-name' (bug#20993). 2021-05-27 Lars Ingebrigtsen Fix ediff message parsing in non-English locales * lisp/vc/ediff-diff.el (ediff-exec-process): Run diff in the C locale to enable parsing the messages (bug#21387). 2021-05-27 Juri Linkov * lisp/vc/diff-mode.el (diff-hunk-text): Test-driven fix for newlines. * lisp/vc/diff-mode.el (diff-hunk-text): Fix handling of newlines to cover all test cases according to new test. * test/lisp/vc/diff-mode-tests.el (diff-mode-test-hunk-text-no-newline): New test to cover cases with no newline at end of file. 2021-05-26 Alex Bochannek Remove the base64 Face header repadding in Gnus * lisp/gnus/gnus-fun.el (gnus-convert-face-to-png): Remove call. * lisp/gnus/gnus-util.el (gnus-base64-repad): Remove. 2021-05-26 Karl Fogel Improve some doc strings in bookmark.el * lisp/bookmark.el (bookmark-bmenu-load): Describe prefix argument behavior. Refer to related functions for more information. (bookmark-bmenu-save): Likewise refer to related functions. As discussed in this thread: https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00389.html From: Karl Fogel To: Eli Zaretskii Cc: Matthias Meulien, Drew Adams, Lars Ingebrigtsen, Stefan Monnier, Emacs Devel Subject: Re: [External] : Re: [PATCH] When deleting in bookmark menu, prompt for confirmation. Date: Sun, 09 May 2021 13:37:52 -0500 Message-ID: <87h7jboirj.fsf@red-bean.com> 2021-05-26 Eli Zaretskii Make 'string-width' auto-composition aware * src/composite.c (find_automatic_composition): Now extern. (char_composable_p): Don't assume 'unicode-category-table' is always available. * src/composite.h (find_automatic_composition): Add prototype. * src/character.c (lisp_string_width): Support automatic compositions; call 'find_automatic_composition' when 'auto-composition-mode' is ON. 2021-05-26 Filipp Gunbin * src/sysdep.c (system_process_attributes): Fix misspelled Qttname for FreeBSD 2021-05-26 Filipp Gunbin Improve system_process_attributes on macOS (Bug#48548) * src/sysdep.c (system_process_attributes): Fix misprint in 'tty' attr - should be 'ttname' instead. Change 'utime', 'stime', 'time', 'majflt' attrs to obtain them from proc_pid_rusage, as sysctl call used before doesn't give correct values; remove 'minflt' because it's not available. Obtain 'vsize' / 'rss' / 'thcount' from proc_pidinfo. Use sysctl with KERN_PROCARGS2 to obtain args: value contains both argc and argv, so argv can be reliably cut out. 2021-05-26 Protesilaos Stavrou Remove modus-themes.org build date (bug#48661) * doc/misc/modus-themes.org: Delete Org macro of the current export date. This makes the manual reproducible between Emacs builds. 2021-05-25 Juri Linkov * lisp/international/mule-cmds.el (mule--ucs-names-group): Better char check. 2021-05-25 Tassilo Horn Make the Alacritty terminal an alias of xterm-256color * lisp/faces.el (term-file-aliases): Make the Alacritty terminal an alias of xterm-256color (bug#48439). 2021-05-25 Lars Ingebrigtsen Make hs-set-up-overlay into user option * lisp/progmodes/hideshow.el (hs-set-up-overlay): Make into defcustom (bug#48513). 2021-05-25 Stephen Leake Restore `ff-find-other-file' buffer selection logic * lisp/find-file.el (ff-find-other-file): Restore selection of buffer changed by previous change (bug#48535). 2021-05-25 Lars Ingebrigtsen Fix font and indentation of call-with-port in scheme-mode * lisp/progmodes/scheme.el (scheme-font-lock-keywords-2): Add call-with-port (bug#48544). (call-with-port): Indent correctly. 2021-05-25 Lars Ingebrigtsen Handle syntactically invalid .dir-locals.el files better * lisp/files.el (dir-locals-read-from-dir): Handle syntactically invalid .dir-locals.el files more gently (bug#48568). Give a message instead of bugging out later. 2021-05-25 Protesilaos Stavrou Update modus-themes to version 1.4.0 * doc/misc/modus-themes.org: (Overview): Document good support for cases with red-green color deficiency (deuteranopia). (Customization Options): Add code block with sample configuration. (Option for mode line presentation): Document new values. (Option for completion framework aesthetics): Reword statements. (Option for mail citations): Include new customization. (Option for line highlighting (hl-line-mode)): Change description of possible value. (Option for diff buffer looks): Update the meaning of 'fg-only', which now is an alias for 'fg-only-deuteranopia'. (Option for org-mode block styles): Rename possible values. (Cycle through arbitrary colors (DIY)): Include code samples for demo case. (Override colors (DIY)): Use correct symbol. (Override color saturation (DIY)): Show how to combine manual and automatic color overrides. (Update Org block delimiter fontification (DIY)): Provide example. (Load theme depending on time of day): Include missing "DIY" label. (Full support for packages or face groups): Update list with additions, removals. (Indirectly covered packages): Update list. (Notes for individual packages) (Note on dimmer.el) (Note on display-fill-column-indicator-mode) (Note on mmm-mode.el background colors) (Note on prism.el) (Note on ERC escaped color sequences) (Note on powerline or spaceline) (Note on Helm grep) (Note on EWW and Elfeed fonts (SHR fonts)): Stylistic change to the heading. (Note on inline Latex in Org buffers) (Note on god-mode.el): Add note. (Frequently Asked Questions (FAQ)): Include new section. (Acknowledgements): Update list of contributors (bug#48647). * etc/themes/modus-operandi-theme.el: Bump version number. * etc/themes/modus-themes.el: Add new defcustom forms and update existing ones, edit doc strings, remove old obsolete aliases, tweak internal functions, refine face specifications. * etc/themes/modus-vivendi-theme.el: Bump version number. 2021-05-25 Gregory Heytings Do not switch to other window when minibuffer is selected * lisp/window.el (handle-select-window): Do not silently switch to other window when minibuffer is selected and mouse-autoselect-window is t (Bug#47969). 2021-05-25 Lars Ingebrigtsen Restore `dired-do-create-files' return value * lisp/dired-aux.el (dired-do-create-files): Preserve the return value from `dired-create-files', which is apparently an undocumented feature used by dired-aux-tests.el (dired-test-bug30624). 2021-05-25 Eli Zaretskii Fix documentation of a recent change * src/process.c (syms_of_process) : Doc fix. * etc/NEWS: Reword the entry for 'process-prioritize-lower-fds'. 2021-05-25 Lars Ingebrigtsen Update help-tests.el after minibuffer map change 2021-05-25 Miha Rihtaršič Try to not prioritise reading from lower file descriptors * src/process.c (wait_reading_process_output): When looping through fds, continue from where we left off. (syms_of_process): Vprocess_prioritize_lower_fds: New variable (bug#48118). 2021-05-25 Glenn Morris * doc/misc/cc-mode.texi: Remove hand-written node pointers (bug#48402). 2021-05-25 Stefan Monnier * lisp/emacs-lisp/byte-opt.el: Make the build more reproducible (byte-compile-inline-expand): When inlining code from another file, always inline the byte-code version of the function. (byte-optimize--pcase): Simplify edebug spec. 2021-05-25 Philipp Stephani Allow years in a copyright range to be separated by en dashes. * lisp/emacs-lisp/copyright.el (copyright-regexp) (copyright-years-regexp, copyright-update-year) (copyright-fix-years): Also include en dash. * test/lisp/emacs-lisp/copyright-tests.el (copyright-tests--data): New test cases. 2021-05-25 Jonas Bernoulli * lisp/transient.el: Update to package version 0.3.4. 2021-05-25 Gregory Heytings Further improvements to completion-list-mode-map * doc/emacs/mini.texi (Completion Commands): Mention the change, and mention the 'n' and 'p' keys bound to 'next-completion' and 'previous-completion'. (bug#47699). * lisp/minibuffer.el (minibuffer-local-completion-map): Change the M-g key to M-g M-c. * lisp/simple.el (completion-list-mode-map): Change the M-g key to M-g M-c. (read-expression-map): Bind M-g M-c to read-expression-switch-to-completions. (read-expression-switch-to-completions): New function. 2021-05-25 Gregory Heytings Improve completion-list-mode-map * doc/emacs/mini.texi (Completion Commands): Mention it. * lisp/minibuffer.el (minibuffer-local-completion-map): Add the M-g key for switch-to-completion (bug#47699). * lisp/simple.el (completion-list-mode-map): Make special-mode-map its parent, unbind the 'g' revert key, add the 'n' and 'p' keys for next-completion and previous-completion, and the M-g key for switch-to-minibuffer. (switch-to-minibuffer): New function. 2021-05-25 Gregory Heytings Use correct face when pulsing in CEDET * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Use pulse-highlight-face, not pulse-highlight-start-face (bug#47810). 2021-05-25 Gregory Heytings Consider all user-defined bitmaps in gui_init_fringe() * src/fringe.c (gui_init_fringe): Consider user-defined bitmaps that override default ones (bug#47832). 2021-05-25 Gregory Heytings Fix infloop in Modula-2 mode * lisp/progmodes/modula2.el (m2-smie-refine-colon): Stop looping when point does not move with forward-sexp (Bug#48011). 2021-05-25 Amin Bandali * lisp/erc/erc-services.el: Fix newly-added Libera.Chat entry (bug#48529). 2021-05-25 Gregory Heytings Fix bug when moving directories to trash * lisp/files.el (move-file-to-trash): Pass the correct dir-flag to make-temp-file so that a directory is created when a directory is being trashed (Bug#47960). 2021-05-24 Corwin Brust (tiny change) Add Libera.chat to `erc-nickserv-alist' * lisp/erc/erc-services.el (erc-nickserv-alist): Add support for the Libera chat. 2021-05-24 Glenn Morris Tweak c-mode bug reporting address * lisp/progmodes/cc-mode.el (c-mode-help-address): Switch to bug-gnu-emacs. This is an alias for the previous submit@debbugs address, except that if no Package header can be found, as often seems to happen for cc-mode reports, debbugs will assign the report to the "emacs" package rather than to "debbugs.gnu.org". 2021-05-23 Philipp Stephani Fix find invocation for macOS (Bug#48471). * lisp/progmodes/project.el (project--files-in-directory): Instead of appending a slash (which doesn't work well with macOS find), remove trailing slash and pass -H instead. 2021-05-23 Michael Albinus Adapt tramp-archive-autoload-file-name-handler * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): Bind `default-directory' to safe value. 2021-05-22 Juri Linkov * src/editfns.c (Finsert_char): Add docstring reference to read-char-by-name. 2021-05-22 Tassilo Horn Document bug-reference setup for 3rd-party packages * doc/emacs/maintaining.texi (Bug Reference): Add section explaining adding support for third-party packages. * lisp/progmodes/bug-reference.el (bug-reference-maybe-setup-from-vc) (bug-reference-maybe-setup-from-mail) (bug-reference-maybe-setup-from-irc): Rename from bug-reference--maybe-setup-from-*, i.e., un-privatize them because they are advertised in the docs now. 2021-05-22 Glenn Morris Merge from origin/emacs-27 30e5d93ee1 (origin/emacs-27) Improve documentation of display tables 8804ac857b * src/buffer.c (syms_of_buffer) : Doc fix. (Bu... 2021-05-22 Glenn Morris * doc/emacs/maintaining.texi (Bug Reference): Fix cross refs. "First argument to cross-reference may not be empty." (makeinfo 4). 2021-05-22 Michael Albinus Fix bug#48476 * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-handler): Add implementation. * lisp/net/tramp-integration.el (tramp-rename-files) (tramp-rename-these-files): Declare them. * lisp/net/tramp.el (tramp-autoload-file-name-handler): Load tramp-archive.el if needed. (Bug#48476) * test/lisp/net/tramp-archive-tests.el (tramp-archive-test45-auto-load): Extend test. Use #' syntax for function symbols. 2021-05-22 Stefan Monnier * lisp/emacs-lisp/subr-x.el (if-let*, if-let): Use looser Edebug spec This makes the same spec work both for `if-let` and `when-let`. (when-let*, and-let*, when-let): Simplify accordingly. 2021-05-22 Basil L. Contovounesios Fix native-comp-async-report-warnings-errors :type * doc/lispref/compile.texi (Native-Compilation Variables): Document 'silent' alternative of native-comp-async-report-warnings-errors. * lisp/emacs-lisp/comp.el (native-comp-async-report-warnings-errors): Fix quoting in :type expression (bug#48586). 2021-05-22 Philipp Stephani Give 'when-let' and 'when-let*' their own Edebug specification. The Edebug specification of 'if-let' and 'if-let*' doesn't work if the body is empty. While that's a pathological case, it's not wrong per se, and could arguably happen due to macro expansion. * lisp/emacs-lisp/subr-x.el (when-let*, when-let): Don't reuse Edebug specification from 'if-let*' and 'if-let'. 2021-05-22 Philipp Stephani * lisp/emacs-lisp/cl-macs.el (cl-loop): Add missing 'when' to spec 2021-05-21 Tassilo Horn Add documentation about bug-reference auto-setup. * doc/emacs/maintaining.texi (Bug Reference): Add documentation about the automatic setup. * lisp/progmodes/bug-reference.el (bug-reference-setup-from-irc-alist): Remove doubling in docstring. 2021-05-21 Eric Abrahamsen Robustify parsing of gnus-search search results * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Look for a "process finished" tag, and don't choke on mis-parsed lines. 2021-05-21 Juri Linkov * lisp/dired-aux.el (dired-do-revert-buffer): New defcustom (bug#48456). (dired-do-create-files): Use it. 2021-05-21 Juri Linkov * lisp/simple.el (yank-from-kill-ring): Fix kill-ring-yank-pointer (bug#48478) 2021-05-21 Michael Albinus Adapt native-comp entries in gitlab-ci.yml * test/infra/gitlab-ci.yml (stages): New stages native-comp-images and native-comp. (build-native-bootstrap-speed0): Simplify. (build-native-bootstrap-speed1, build-native-bootstrap-speed2): Deactivate temporarily. * test/infra/gitlab-ci.yml (.build-template): Add 'needs:' clause. (.native-comp-template): New template. (build-native-bootstrap-speed0): Use it. 2021-05-21 Eli Zaretskii Avoid byte-compiler warning during bootstrap * lisp/isearch.el (multi-isearch-switch-buffer): Avoid byte-compiler warning. 2021-05-21 Michael Albinus Rearrange nativecomp tests for EMBA * test/infra/Dockerfile.emba (emacs-native-comp-speed0): Add recipe. * test/infra/gitlab-ci.yml (stages): New stages native-comp-images and native-comp. (build-native-bootstrap-speed0): Simplify. (build-native-bootstrap-speed1, build-native-bootstrap-speed2): Deactivate temporarily. 2021-05-21 Eli Zaretskii Improve documentation of display tables * doc/lispref/display.texi (Display Tables): Add a cross-reference to the next section. 2021-05-21 Andrea Corallo Fix ahead-of-time native compilation for out-of-tree builds (bug#48497) * src/comp.c (Fcomp_el_to_eln_rel_filename): Expand 'PATH_DUMPLOADSEARCH' while computing 'loadsearch_re_list'. 2021-05-21 Eli Zaretskii * src/buffer.c (syms_of_buffer) : Doc fix. (Bug#48539) 2021-05-20 Juri Linkov * lisp/help.el (describe-bindings-outline): New defcustom (bug#45147). (describe-bindings): Use describe-bindings-outline. (describe-bindings-internal): Remove function obsolete since 24.4. 2021-05-20 Juri Linkov * lisp/vc/diff-mode.el (diff-hunk-text): Handle better "\ No newline at end". 2021-05-20 Juri Linkov Fix off-by-one inconsistency of 'M-y C-y' (bug#48478). * lisp/simple.el (read-from-kill-ring): Increment kill-ring-yank-pointer by 1. (yank-from-kill-ring): Don't increment kill-ring-yank-pointer by 1. 2021-05-20 Juri Linkov * lisp/international/mule-cmds.el: Use group-function in read-char-by-name. (mule--ucs-names-group): Simplify for using by group-function. (read-char-by-name-group): Remove defcustom obsoleted by completions-group. (read-char-by-name): Mention completions-group and completions-group-sort in docstring. Use group-function when completions-group is non-nil. https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00791.html 2021-05-20 Daniel Mendler (minibuffer-completion-help): Add group sorting Sort the groups as returned by the `group-function` of the completion table depending on the value of the customizable variable `completions-group-sort`. By default `completions-group-sort` is set to nil. The variable can be set to the symbol `alphabetical` in order to configure alphabetical sorting. Furthermore, a custom sorting function can be used as value of `completions-group-sort`. * lisp/minibuffer.el (completions-group-sort): New variable. (minibuffer--group-by): Add SORT-FUN argument. (minibuffer-completion-help): Pass `completions-group-sort` to `minibuffer--group-by`. 2021-05-20 Daniel Mendler (completion--insert-vertical): Separate groups completely Insert the candidates vertically within the groups, but keep the groups separate using the full width group separators. * lisp/minibuffer.el (completion--insert-vertical): Adjust grouping. 2021-05-20 Daniel Mendler (minibuffer-completion-help): Do not check `completions-group` centrally The guard variable `completions-group` should be checked in each completion table individually. The guard variable `completions-detailed` variable is used in the same way. * lisp/minibuffer.el (minibuffer-completion-help): Remove check of `completions-group`. 2021-05-20 Daniel Mendler (completion--insert-strings): Split function; Full group title support Split `completion--insert-strings` into a function per completions format in order to increase readability and extensibility. This change eases the addition of more formats. Add support for group titles to the vertical and horizontal formatting functions. * lisp/minibuffer.el (completion--insert): Add new function. (completion--insert-vertical, completion--insert-horizontal, completion--insert-one-column): Extract function from `completion--insert-strings`. Use new function `completion--insert`. (completion--insert-strings): Use new insertion functions. 2021-05-20 Daniel Mendler (completing-read): Add `group-function` to the completion metadata A completion table can specify a `group-function` in its metadata. The group function takes two arguments, a completion candidate and a transform argument. The group function is used to group the candidates after sorting and to enhance the completion UI with group titles. If the transform argument is nil, the function must return the title of the group to which the completion candidate belongs. The function may also return nil if the candidate does not belong to a group. If the transform argument is non-nil, the function must return the transformed candidate. For example, the transformation allows to remove a redundant part of the candidate, which is then displayed in the title. The grouping functionality is guarded by the customizable variable `completions-group` and turned off by default for the *Completions* buffer. The specific form of the `group-function` has been chosen in order to allow allocation-free grouping. This is important for completion UIs, which continuously update the displayed set of candidates (Icomplete, Vertico, Ivy, etc.). Only when the transform argument is non-nil the candidate transformation is performed, which may involve a string allocation as done in the function `xref--completing-read-group`. The function `xref-show-definitions-completing-read` makes use of the `group-function`, by moving the file name prefix to the title. If grouping is enabled, the *Completions* are displayed as "linenum:summary" instead of "file:linenum:summary". This way the *Completions* buffer resembles the *Occur* buffer. * doc/lispref/minibuf.texi: Add documentation. * lisp/minibuffer.el (completion-metadata): Describe the `group-function` in the docstring. (completions-group): Add guard variable, off by default. (completions-group-format): Add variable defining the format string for the group titles. (completions-group-title): Add face used by `completions-group-format` for the group titles. (completions-group-separator): Add face used by `completions-group-format` for the group separator lines. (minibuffer--group-by): New grouping function. (minibuffer-completion-help): Use it. (display-completion-list): Add optional GROUP-FUN argument. (completion--insert-strings): Add optional GROUP-FUN argument. Insert group titles if `completions-format` is `one-column`. Transform each candidate with the GROUP-FUN. Attach the untransformed candidate to the property `completion--string`. * lisp/simple.el (choose-completion): Retrieve the untransformed completion candidate from the property `completion--string`. * lisp/progmodes/xref.el: (xref--completing-read-group): New grouping function. (xref-show-definitions-completing-read): Use it. 2021-05-20 Michael Albinus * doc/emacs/maintaining.texi (Bug Reference): Add debbugs-browse-mode. 2021-05-20 Eli Zaretskii Improve documentation of 'etags' tests * test/manual/etags/README: New file. (Bug#46055) * test/README: Mention separate README files for tests in the 'manual' subdirectory 2021-05-20 Eli Zaretskii Fix arg-out-of-range errors in 'line-number-at-pos' * src/fns.c (Fline_number_at_pos): Pass character position to args_out_of_range. Suggested by Andreas Schwab . Call args_out_of_range_3 to show both ends of the accessible portion. 2021-05-20 Eli Zaretskii Make sure gmalloc's hybrid_free preserves errno * src/gmalloc.c (hybrid_free_1): New function, with the body of the previous 'hybrid_free'. (hybrid_free): Call 'hybrid_free_1' while preserving the value of 'errno'. Suggested by Paul Eggert . 2021-05-20 Eli Zaretskii Clean up the fix for unexec build on GNU/Linux * src/conf_post.h [HYBRID_MALLOC || DARWIN_OS && HAVE_UNEXEC]: Include here, before redirecting 'malloc' and friends to their hybrid_* and unexec_* equivalents. #undef malloc and friends before redefining. Provide prototypes for the replacements. Suggested by Paul Eggert . * src/gmalloc.c [HYBRID_MALLOC]: Remove declarations of 'malloc' and friends, as they are now redundant: we include in conf_post.h before redefining 'malloc' etc., and that provides prototypes from system headers. * configure.ac (HYBRID_MALLOC): Remove kludge to avoid replacement of 'free' by Gnulib. (Bug#36649) 2021-05-19 Tassilo Horn Add a section about bug-reference-mode. * doc/emacs/maintaining.texi (Maintaining): Add a section about bug-reference-mode. * doc/emacs/emacs.texi (Top): Link to the new section about bug-reference-mode. 2021-05-19 Juri Linkov * lisp/simple.el (yank-from-kill-ring-rotate): New defcustom (bug#48478). (read-from-kill-ring, yank-from-kill-ring): Use it. 2021-05-19 Eli Zaretskii Fix rare failures in 'window-default-font-height' * lisp/window.el (window-default-font-height): Avoid signaling an error when a client TTY frame happens to have an X-style 'display' parameter. (Bug#48408) 2021-05-19 Eli Zaretskii * lisp/startup.el (command-line-1): Avoid byte-compiler warning. 2021-05-19 Glenn Morris Fix custom type of recent dired-aux additions * lisp/dired-aux.el (dired-compress-file-default-suffix) (dired-compress-directory-default-suffix): Fix :type. 2021-05-19 Stefan Monnier * lisp/kmacro.el (kmacro-lambda-form): Fix bug#48523 Re-add `counter` and `format` arguments, since they are used in `insert-kbd-macro`. 2021-05-19 Eli Zaretskii Fix the unexec build on GNU/Linux The unexec build on GNU/Linux must use HYBRID_MALLOC (gmalloc.c) and sheap.c. This was inadvertently disabled because a configure-time test for 'sbrk' was moved as side effect of an unrelated change. * configure.ac: Test for 'sbrk' before using the result in the decision about SYSTEM_MALLOC and HYBRID_MALLOC. (HYBRID_MALLOC): Prevent Gnulib from redirecting 'free' to its replacement 'rpl_free'. * lib/Makefile.in (not_emacs_OBJECTS): Add mallooc/%.o and free.o. 2021-05-19 Ingo Lohmar * lisp/progmodes/sql.el: `sql-postgres-statement-starters' defcustom Recognize common table expression as statement start in Postgres. 2021-05-19 Mauro Aranda Lift restriction for finding theme summary line * lisp/cus-theme.el (custom-theme-summary): Don't limit the file to having the deftheme form as the very first form, rather look for the deftheme form explicitly. 2021-05-19 Martin Rudalics Fix recently introduced misbehavior of `quit-restore-window' (Bug#48493) * lisp/window.el (quit-restore-window): Unconditionally call `switch-to-prev-buffer' (Bug#48493). 2021-05-19 Stefan Monnier * lisp/progmodes/js.el (js--make-framework-matcher): Use a closure 2021-05-19 Stefan Monnier * lisp/progmodes/gud.el (gud-tooltip-tips): Use proper closures Also prefer #' to quote function names. (jdb): Fix $ => \'. 2021-05-19 Stefan Monnier * lisp/org/org-timer.el (org-timer--run-countdown-timer): Use closures 2021-05-19 Stefan Monnier * lisp/org/org-mouse.el: Make use of lexical scoping (org-mouse-todo-menu): Simplify by eta-reduction. (org-mouse-popup-global-menu): Remove redundant `eval`. (org-mouse-keyword-menu, org-mouse-keyword-replace-menu) (org-mouse-tag-menu, org-mouse-match-closure): Use proper closures. 2021-05-19 Stefan Monnier * lisp/org/org-colview.el (org-columns-map): Use proper closures Also prefer #' to quote function names. (org-columns-map): Use derived-mode-p. 2021-05-19 Stefan Monnier * lisp/org/org-clock.el (org-clock-get-table-data): Use proper closures Also, prefer #' to quote function names 2021-05-19 Stefan Monnier * lisp/net/sieve-manage.el (sieve-sasl-auth): Use proper closures * lisp/net/shr.el (shr-image-displayer): Use proper closures 2021-05-19 Stefan Monnier * lisp/net/imap.el (imap-mailbox-close): Use proper closures Also, remove redundant `:group` args, and prefer #' to quote function names 2021-05-19 Stefan Monnier * lisp/net/eudc.el (eudc-menu): Use proper closures 2021-05-19 Stefan Monnier * lisp/net/browse-url.el: Avoid `(lambda ..) (browse-url-netscape, browse-url-mozilla, browse-url-galeon) (browse-url-epiphany, browse-url-elinks): Use proper closures. 2021-05-19 Stefan Monnier * lisp/misearch.el (multi-isearch-push-state): Use proper closures 2021-05-19 Stefan Monnier * lisp/menu-bar.el: Avoid `(lambda (menu-bar-buffer-vector, menu-bar-update-buffers): Use proper closures. 2021-05-19 Stefan Monnier * lisp/info.el (Info-isearch-push-state): Use proper closures * lisp/imenu.el (imenu--create-keymap): Use proper closures * lisp/find-dired.el (find-dired): Use a proper closure * lisp/facemenu.el (facemenu-add-new-face): Use `:documentation` 2021-05-18 Stefan Monnier * lisp/eshell/em-pred.el: Take advantage of lexical scoping Also remove redundant `:group` arguments. (eshell-parse-modifiers): Make sure we pass a function value. (eshell-parse-arg-modifier, eshell-parse-modifiers) (eshell-add-pred-func, eshell-pred-user-or-group) (eshell-pred-file-time, eshell-pred-file-type, eshell-pred-file-mode) (eshell-pred-file-links, eshell-pred-file-size) (eshell-pred-substitute, eshell-include-members, eshell-join-members) (eshell-split-members): Use proper closures. 2021-05-18 Juri Linkov * doc/emacs/basic.texi (Repeating): Document repeat-exit-timeout (bug#48472). 2021-05-18 Stefan Monnier * lisp/emacs-lisp/eieio-core.el (eieio-defclass-internal): Use a closure 2021-05-18 Juri Linkov * lisp/repeat.el (repeat-exit-timeout): New defcustom (bug#48472). (repeat-exit-timer): New variable. (repeat-post-hook): Run idle timer with an "exit function" returned from set-transient-map. Suggested by Gustavo Barros . (repeat-echo-message): Remove own previous message when input arg is nil. * lisp/window.el (display-buffer-override-next-command): Return exitfun. 2021-05-18 Stefan Monnier * lisp/calendar/cal-menu.el (cal-menu-holidays-menu): Use a proper closure 2021-05-18 Juri Linkov * lisp/emacs-lisp/lisp-mode.el (lisp-outline-level): Fix imprecise numbers. (lisp-outline-level): Return right levels starting from 1 instead of 5. Suggested by Howard Melman in bug#46878. 2021-05-18 Juri Linkov * lisp/simple.el (read-from-kill-ring): Add new arg PROMPT (bug#48478). * lisp/simple.el (yank-pop, yank-from-kill-ring): * lisp/isearch.el (isearch-yank-from-kill-ring): Use arg PROMPT in the call read-from-kill-ring. 2021-05-18 Philipp Stephani Recreate symptom of Bug#42701. The fix to Bug#48489 (commit 9676d41b8301b84e07717e633059a3f2b5c4c9d8) has masked the symptom of Bug#42701 for 'if-let'. Create a helper macro that still exemplifies the bug. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests--duplicate-symbol-backtrack): New helper macro. (edebug-tests-duplicate-symbol-backtrack): Use it instead of 'if-let'. 2021-05-18 Lars Ingebrigtsen Fix some regressions introduced by the previous dired-aux change * lisp/dired-aux.el (dired-compress-file): Check that the file we're compressing exists. Also work outside the current directory. 2021-05-18 Basil L. Contovounesios Look for ElDoc buffer in all visible frames * lisp/emacs-lisp/eldoc.el (eldoc--echo-area-prefer-doc-buffer-p): Look for a window displaying the ElDoc documentation buffer in all visible frames, as promised by the user option eldoc-echo-area-prefer-doc-buffer (bug#48278). 2021-05-18 Miha Rihtaršič Fix problem with focusing in `C-o' in ibuffer in some circumstances * lisp/ibuffer.el (ibuffer-visit-buffer-other-window-noselect): Use display-buffer instead of pop-to-buffer and selecting the old window. `pop-to-buffer' focuses the new frame, but `select-window' usually fails to focus the original frame. This simple patch fixes that (bug#48218). 2021-05-18 Gong Qijian (tiny change) Fix `custom-delayed-init-variables' problem when re-dumping emacs * lisp/startup.el (command-line): Don't bug out on redumping Emacs (bug#48492). 2021-05-18 Stefan Monnier * lisp/kmacro.el: Fix test cases broken by last change (kmacro-lambda-form): Remove unused args `counter` and `format`. Arrange to be able to extract `mac` from the function. (kmacro-extract-lambda): Use this new extraction instead of digging into the guts of a function's code. 2021-05-18 Alexandr Vityazev (tiny change) Fix the length= shortdoc example * lisp/emacs-lisp/shortdoc.el (list): Fix the length= example (bug#48495). 2021-05-18 Eli Zaretskii Revert "* lisp/bookmark.el: make bookmark-fontify nil default value" This reverts commit ed8c3303f945fbd2c16ece0e87d041c75ae05ff9. 2021-05-18 Mattias Engdegård Fix pcase 'rx' patterns with a single named submatch (bug#48477) pcase 'rx' patterns with a single named submatch, like (rx (let x "a")) would always succeed because of an over-optimistic transformation. Patterns with 0 or more than 1 named submatches were not affected. Reported by Philipp Stephani. * lisp/emacs-lisp/rx.el (rx--pcase-macroexpander): Special case for a single named submatch. * test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add tests. 2021-05-18 Paul W. Rankin * lisp/bookmark.el: make bookmark-fontify nil default value 2021-05-18 Philipp Stephani * lisp/emacs-lisp/subr-x.el (if-let): Swap &or branches (Bug#48489) 2021-05-18 Stefan Monnier * lisp/kmacro.el: Avoid the dynbound dialect of ELisp (kmacro-call-macro, kmacro-lambda-form): Use proper closures. (kmacro-keymap): Prefer #' top quote function names. 2021-05-18 Dmitry Gutov Visually truncate excessively long lines in Xref * lisp/progmodes/xref.el (xref-truncation-width): New option. (xref--apply-truncation): New function. (xref--insert-xrefs): Use it (bug#46859). 2021-05-17 Eli Zaretskii Fix the etags test suite * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/CTAGS.good: Adjust to addition test.rs. 2021-05-17 Lars Ingebrigtsen Add an etags test for Rust (bug#46055) 2021-05-17 Eli Zaretskii Update the etags/ctags test files * test/manual/etags/ETAGS.good_1: * test/manual/etags/ETAGS.good_2: * test/manual/etags/ETAGS.good_3: * test/manual/etags/ETAGS.good_4: * test/manual/etags/ETAGS.good_5: * test/manual/etags/ETAGS.good_6: * test/manual/etags/CTAGS.good: Adjust to current codebase. 2021-05-17 Sun Lin Allow specifying the default archive types to compress to in Dired * lisp/dired-aux.el (dired-compress-file-default-suffix): (dired-compress-directory-default-suffix): New user options (bug#47119). (dired-compress-file-alist): New variable. * lisp/dired-aux.el (dired-compress-file): Use them. (dired-compress-file-suffixes): Remove the directory item. 2021-05-17 Pierre-Antoine Rouby Add support for Rust in etags * lib-src/etags.c (Rust_functions): New function to make tags for rust files. (Rust_help, Rust_suffixes): New constant. * doc/emacs/maintaining.texi (Tag Syntax): Add Rust item. * doc/man/etags.1: Add Rust (bug#46055). 2021-05-17 Eli Zaretskii Avoid crashes in condition-case * src/eval.c (internal_lisp_condition_case): Don't take XCAR without making sure the value is a cons cell. (Bug#48479) 2021-05-17 Lars Ingebrigtsen Mention *-nov-is-evil in the Extra Headers Gnus manual section * doc/misc/gnus.texi (To From Newsgroups): Mention nov-is-evil. 2021-05-17 Eli Zaretskii Improve documentation of new behavior of 'M-y' * lisp/minibuffer.el (minibuffer-local-map): Switch the order of '\r' and '\n' bindings. * lisp/simple.el (yank-pop, read-from-kill-ring) (yank-from-kill-ring): Doc fixes. * doc/emacs/search.texi (Isearch Yank): * doc/emacs/killing.texi (Yanking): Improve the description of the new functionality of 'M-y'. * doc/lispref/text.texi (Yank Commands): Remove inaccurate description of 'M-y' in Isearch. * etc/NEWS: Improve the wording of 'M-y' entry. 2021-05-17 Philipp Stephani Add a unit test to reproduce Bug#48471. * test/lisp/progmodes/project-tests.el (project-tests--trivial) (project-root, project-ignores): New test project type. (project-ignores): New unit test. 2021-05-17 Philipp Stephani Fix a few Edebug specifications where code is wrapped in lambdas. As the Info node `(elisp) Specification List' explains, it is not correct to use `body' or t for a piece of code that the macro wraps in a `lambda' form. These should use `def-body' instead. * lisp/info-xref.el (info-xref-with-file): * lisp/subr.el (subr--with-wrapper-hook-no-warnings, track-mouse) (combine-change-calls, with-eval-after-load): * lisp/emacs-lisp/bytecomp.el (displaying-byte-compile-warnings): * lisp/emacs-lisp/cl-macs.el (cl-do-symbols, cl-progv): * lisp/emacs-lisp/ert-x.el (ert-with-test-buffer): * lisp/emacs-lisp/gv.el (gv-letplace): * lisp/emacs-lisp/nadvice.el (define-advice): * lisp/emacs-lisp/thunk.el (thunk-delay): * lisp/vc/vc-dispatcher.el (vc-run-delayed): Use 'def-body' instead of t or 'body' where applicable. * lisp/emacs-lisp/package.el (package--with-response-buffer): Remove evaluation of the body altogether. I have no idea how to write it correctly in this case. 2021-05-16 Eric Abrahamsen Add a 'silent option for native-comp-async-report-warnings-errors * lisp/emacs-lisp/comp.el (native-comp-async-report-warnings-errors): Set to 'silent to log warnings, but not pop up the *Warnings* buffer. * lisp/emacs-lisp/comp.el (comp-accept-and-process-async-output): Check value. 2021-05-16 Eric Abrahamsen Use condition-case-unless-debug in nnselect-run * lisp/gnus/nnselect.el (nnselect-run): This is confusing for users, make it more yielding to common debugging strategies. 2021-05-16 Eric Abrahamsen Fix function signature for gnus-search-indexed-parse-output * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Generic function arg list didn't match the method arglist, which made for confusing function help. 2021-05-16 Lars Ingebrigtsen mouse-wheel-progressive-speed doc string clarification * lisp/mwheel.el (mouse-wheel-progressive-speed): Doc string improvement (bug#45322). 2021-05-16 Ingo Lohmar prepend newline in sqli buffer (sql-remove-continuation-prompt, sql-send-string): Move newline insertion. Previously, the preoutput filter `sql-remove-continuation-prompt' inserted a leading newline in the interactive SQL buffer if it decided that is has to remove continuation prompts and that it had found all it was looking for. 1) This filter function was a doubtful place to do that (arguably, its name does not suggest any action like this). 2) The behavior worked inconsistently, eg, when sending a single-line "SELECT" statement, because it only ran when the filter function needed to remove any prompts (for example, not when sending a region without newlines). This can lead to misaligned table headers, which explains why emacswiki and stackoverflow both present several fixes to this behavior. 2021-05-16 Tassilo Horn Add bug-reference-mode-force-auto-setup * lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-rmail): Match the Rmail mbox filename against GROUP-REGEXP in bug-reference-setup-from-mail-alist. (bug-reference-mode-force-auto-setup): New function which forces auto-setup even if bug-reference-bug-regexp and bug-reference-url-format are already set. 2021-05-16 Dario Gjorgjevski Add more completion tests * test/lisp/minibuffer-tests.el (completion--pcm-score) (completion--pcm-first-difference-pos): New helpers. (completion-pcm-test-1, completion-pcm-test-2) (completion-pcm-test-3, completion-pcm-test-4) (completion-pcm-test-5, completion-pcm-test-6) (completion-substring-test-1, completion-substring-test-2) (completion-substring-test-3, completion-substring-test-4) (completion-flex-test-1, completion-flex-test-2) (completion-flex-test-3): New tests (bug#42149) 2021-05-16 Sebastian Urban (tiny change) Improve some quotation quoting in the Emacs manual * doc/emacs/text.texi (Quotation Marks, Quotation Marks): * doc/emacs/display.texi (Text Display): Fix some issues when quoting quote marks and the like (bug#35885). * doc/emacs/emacs.texi: Switch on double-sided printing headings. 2021-05-16 Noam Postavsky Remove unreliable test for match data clobbering * src/search.c (Freplace_match): Don't test for change in search_regs start and end, this is unreliable if change hooks modify text earlier in the buffer (bug#35264). 2021-05-16 Philipp Stephani Optimize calls to 'eql', 'memql' and similar for fixnums. It's good practice to compare integers using 'eql' because two bignum objects representing the same integer might not be 'eq'. However, 'eql' is slower and doesn't have its own byte code. Therefore, replace it with 'eq' if one argument is guaranteed to be a fixnum on all platforms. * lisp/emacs-lisp/byte-opt.el (byte-optimize--fixnump): New helper function. (byte-optimize-equal, byte-optimize-member, byte-optimize-assoc): Use it to optimize 'eql' etc. to 'eq' if it will always compare fixnums. 2021-05-16 Michael Albinus Fix handling of stderr buffer in Tramp's make-process (Bug#47861) * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Reimplement stderr buffer handling. (Bug#47861) (tramp-maybe-open-connection): Improve traces. * test/lisp/net/tramp-tests.el (tramp-test30-make-process): Rework for stderr buffer. 2021-05-16 Tassilo Horn Bug reference auto-setup for Rmail * lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-rmail): New function setting up `bug-reference-mode' from the current Rmail message. 2021-05-15 Dmitry Gutov Update CSS completion tests * test/lisp/textmodes/css-mode-tests.el (css-test-complete-pseudo-class) (css-test-complete-pseudo-element): Update the tests for recent changes. 2021-05-15 Tassilo Horn Refactor bug-reference setup functions into a defvar * lisp/progmodes/bug-reference.el (bug-reference-auto-setup-functions): New defvar so that other packages can add their own auto-setup functions to it. * lisp/progmodes/bug-reference.el (bug-reference--run-auto-setup): Use the new variable instead of hard-coding the 4 functions we've had already. 2021-05-15 Eli Zaretskii Fix segfaults when byte-compiling with native-compilation * src/emacs.c (main): Call 'set_initial_minibuffer_mode' before entering recursive-exit. * src/minibuf.c (init_minibuf_once_for_pdumper): Don't call 'set_minibuffer_mode' here... (set_initial_minibuffer_mode): ... set it in this new function. (Bug#48446) * src/lisp.h: Add prototype for 'set_initial_minibuffer_mode'. 2021-05-15 Alan Mackenzie Miscellaneous corrections to src/minibuf.c for bug #48337 * src/minibuf.c (read_minibuf): Call get_minibuffer before incrementing minibuf_level, in case a hook function calls Factive_minibuffer_window. (init_minibuf_once_for_pdumper): Create *Minibuf-0* here (moved from init_minibuf_once), and set its mode, so that clicking in the mini-window immediately after start up works (thanks, Eli Z.). 2021-05-15 Eli Zaretskii Fix launching net-utils on MS-Windows * lisp/net/net-utils.el (net-utils-run-simple): Bind coding-system-for-read around the code which starts the process. (Bug#48375) 2021-05-15 pillule (tiny change) Fix `quit-restore-window' when all previous buffers got killed (Bug#48367) * lisp/window.el (quit-restore-window): Simplify calculation of WINDOW's previous buffer. Avoid that killing WINDOW's previous buffers results in a state where `quit-window' has no more effect, by simply deleting WINDOW in that case (Bug#48367). 2021-05-15 Daniel Semyonov (tiny change) Mairix: use 'mairix-search-options' as documented * lisp/net/mairix.el (mairix-call-mairix): Append 'mairix-search-options' to the arguments passed to mairix. 2021-05-15 Daniel Semyonov (tiny change) Mairix: autoload main interactive functions * lisp/net/mairix.el (mairix-search, mairix-use-saved-search) (mairix-edit-saved-searches-customize, mairix-search-from-this-article) (mairix-search-thread-this-article, mairix-widget-search-based-on-article) (mairix-edit-saved-searches, mairix-widget-search, mairix-update-database): Add magic autoload comment. 2021-05-15 Eli Zaretskii Improve doc string of 'log-edit-generate-changelog-from-diff' * lisp/vc/log-edit.el (log-edit-generate-changelog-from-diff): Improve the doc string. (Bug#48269) 2021-05-15 Martin Rudalics Have X builds handle VisibilityNotify events (Bug#48268, Bug#48413) * src/xterm.c (handle_one_xevent): Handle VisibilityNotify events (Bug#48268, Bug#48413). 2021-05-15 Dmitry Gutov Add :company-kind support to nxml-mode completion * lisp/nxml/rng-nxml.el (rng-complete-tag) (rng-complete-attribute-name, rng-complete-attribute-value): Support :company-kind. 2021-05-15 Dmitry Gutov Add :company-kind support to sh-mode completion * lisp/progmodes/sh-script.el (sh--completion-keywords): New variable. (sh--cmd-completion-table): Extracted from here. (sh-completion-at-point-function): Add :company-kind. 2021-05-15 Dmitry Gutov Include colons in the completion strings * lisp/textmodes/css-mode.el (css--complete-pseudo-element-or-class): Include colons in the completion strings. That's simply the nicer behavior (e.g. someone typing : will see pseudo-elements in completions as well), and by the standards, the colons are part of their names anyway (of pseudo-elements and classes). 2021-05-15 Dmitry Gutov Add :company-kind support to css-mode completion * lisp/textmodes/css-mode.el (css--complete-pseudo-element-or-class) (css--complete-property-value, css-completion-at-point) (css--complete-at-rule): Add :company-kind properties, to annotate completions with kinds returned in each case. 2021-05-14 Lars Ingebrigtsen Make the M-x obsoletion check more robust * lisp/simple.el (read-extended-command): Make the obsoletion check more robust. 2021-05-14 Alan Mackenzie Various detailed fixes to minibuf.c, etc., to fix bug #48337 Also fix some unsafe coding. * lisp/window.el (push-window-buffer-onto-prev): New function, extracted from (record-window-buffer): Refactor by extracting the above, and removing the now redundant parameter DO-MINIBUF. * src/minibuf.c (zip_minibuffer_stacks, read_minibuf): Replace calls to get_minibuffer (0) by nth_minibuffer (0). Replace calls to Qrecord_window_buffer by calls to Qpush_window_buffer_onto_prev. (Factive_minibuffer_window, read_minibuf_unwind): Call abort_emacs should an "impossible" null value be returned by nth_minibuffer. (read_minibuf): Move the get_minibuffer_call to just after the incrementation of minibuf_level as a precaution against a missing buffer in Vminibuffer_list. (nth_minibuffer): Replace XCAR by Fcar, to allow (car nil) to work. (init_minibuf_once): Create the inactive buffer *Minibuf-0*. (syms_of_minibuf): New DEFSYM, Qpush_window_buffer_onto_prev. * src/window.c (restore_window_configuration): Replace some XCARs and XCDRs by Fcar_safe and Fcdr_safe. 2021-05-13 Glenn Morris * doc/misc/calc.texi: Remove most hand-written node pointers. The complex, conditional node layout makes this one of the very few cases that can't be done entirely automatically. 2021-05-13 Glenn Morris Remove more hand-written node pointers in doc/misc * doc/misc/ede.texi, doc/misc/mh-e.texi, doc/misc/reftex.texi: * doc/misc/todo-mode.texi: Remove hand-written node pointers. 2021-05-13 Glenn Morris * doc/misc/epa.texi: Remove hand-written node pointers. 2021-05-13 Glenn Morris Merge from origin/emacs-27 bcd92b5708 (origin/emacs-27) Improve documentation of Hexl mode c233f4eccd ; * etc/NEWS: Fix decoded-time-set-defaults typo. 4c3abb3dd1 Fix compilation errors with latest w32 API headers 127f1f330b Improve doc strings in log-edit.el e36183ff46 ; * etc/TODO (etc/DOC): Update the todo entries. # Conflicts: # etc/NEWS 2021-05-13 Glenn Morris * doc/misc/epa.texi: Fix @nodes in previous change. 2021-05-13 Michael Albinus Improve Tramp traces * lisp/net/tramp-cmds.el (tramp-list-tramp-buffers): List also trace buffers. * lisp/net/tramp.el (tramp-buffer-name): Add `tramp-suppress-trace' property. (tramp-get-debug-file-name): Fix docstring. (tramp-trace-buffer-name): New defun. (tramp-trace-functions): New defvar. (tramp-debug-message): Obey also `tramp-trace-functions'. * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case): Handle trace buffer accordingly. 2021-05-13 dickmao Process sentinels need to work under X and commandline * src/process.c (add_non_keyboard_read_fd): Make this a public function. (add_process_read_fd): Fold old, static add_non_keyboard_read_fd guts into here. * src/xsmfns.c (ice_conn_watch_CB): Call add_non_keyboard_read_fd (bug#43834). 2021-05-13 Eli Zaretskii Fix vertical cursor motion across tall text or small images 'line-move-partial' should in general leave it to the display engine to scroll or recenter the window due to vertical motion of the cursor. The only purpose of this function is to produce vscroll suitable for scrolling across large (relatively to the window's height) images, where moving by display lines is not appropriate. * src/xdisp.c (Fdisplay__line_is_continued_p): New primitive. * lisp/simple.el (line-move-partial): Call 'display--line-is-continued-p' to decide whether to leave it to redisplay to scroll the window as appropriate. (Bug#48170) 2021-05-13 Michael Albinus Fix bug#48349 in file-name-non-special * lisp/files.el (file-name-non-special): Use Tramp file name handler only in case of `copy-file', 'rename-file' and `copy-directory'. (Bug#48349) 2021-05-13 Stefan Kangas Document `package-quickstart' in the user manual * doc/emacs/package.texi (Package Installation): Document `package-quickstart' (bug#44748). 2021-05-13 Nicolás Bértolo Make searching for files faster under Windows * src/lread.c (openp): Use faccessat to check that a file exists before opening it on Windows (bug#41646). This speeds up searching for files. 2021-05-13 Stefan Kangas Don't consider obsolete commands for completion in some cases * lisp/simple.el (read-extended-command): Exclude obsolete commands that are either lacking a 'current-name' or were obsoleted in a previous major version (bug#43300). (There's been some back and forth here. Obsolete commands used to be treated normally for completion, and then they were removed. Then they were put back again, but annotated with what they were obsoleting. There was some pushback on this change, so this latest changes is a compromise between the last two states.) 2021-05-13 Radon Rosborough Use an explicit line width of 1 on hollow cursors under X * src/xterm.c (x_draw_hollow_cursor): Specify a line width of 1 explicitly to avoid problems on some X implementations (bug#42452). 2021-05-13 Eli Zaretskii * src/image.c (xpm_image_p): Avoid another compiler warning. * src/image.c: Avoid compiler warnings in Cairo builds without XPM. 2021-05-12 Tom Gillespie Fix evaluation order for hack-local-variables * lisp/files.el (hack-local-variables): Fix the ordering which local variables are evaluated by `hack-local-variables' so that prop-line local variables are evaluated first. There is a hidden nreverse lurking in `hack-local-variables-apply' which means that the prop line variables must come second in order to be evaluated before the end of file variables. 2021-05-12 Philip K Don't mark interactive commands as internal functions * lisp/epa-ks.el (epa-ks-search-mode-map): Rename commands from "--" to "-" throughout. 2021-05-12 Eli Zaretskii Improve doc strings and prompt in epa-ks.el * lisp/epa-ks.el (epa-ks--mark-key-to-fetch, epa-ks--fetch-key) (epa-search-keys): Doc fixes. (epa-ks-do-key-to-fetch): Better wording for the fetch prompt. 2021-05-12 Lars Ingebrigtsen Even further `text-property-search-forward' clarifications * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): Further doc string clarifications. 2021-05-12 Lars Ingebrigtsen Update email address in epa-ks.el 2021-05-12 Philip K All a GPG key server client * lisp/epa-ks.el (epa-keyserver): New file (bug#39886). * doc/misc/epa.texi (Quick start): Mention it. (Querying a key server): Document it. 2021-05-12 Lars Ingebrigtsen Fix `uniquify-managed' unbounded growth * lisp/uniquify.el (uniquify-rationalize-file-buffer-names): Protect against exponential `uniquify-managed' growth when reverting several (more than two) buffers that have the same file name (bug#36877). 2021-05-12 Lars Ingebrigtsen Further corrections for the text-property-search doc strings * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): Correct doc string. (text-property-search-backward): Ditto. 2021-05-12 Lars Ingebrigtsen Tweak indentation of #foo in js-mode * lisp/progmodes/js.el (js--proper-indentation): Indent #define (etc) to column 0, but otherwise indent #foo normally (bug#47488). 2021-05-12 Lars Ingebrigtsen Remove unused variable in rmail.el * lisp/mail/rmail.el (rmail-reply): Remove unused lexical variable introduced in previous patch. 2021-05-12 Eli Zaretskii Fix the tests for 'string-limit' * test/lisp/emacs-lisp/subr-x-tests.el (subr-string-limit-coding): Fix the expected results of string-limit when encoding with UTF-16. Add tests for UTF-8 with BOM. (Bug#48324) * lisp/emacs-lisp/subr-x.el (string-limit): Add FIXME comment about the current implementation, which is faulty by design. 2021-05-12 Jim Porter Abbreviate rgrep command on MS Windows (bug#48302) * lisp/progmodes/grep.el (grep-mode-font-lock-keywords): Adapt regexp to match MS Windows-style shell-quoting. * test/lisp/progmodes/grep-tests.el: New file. 2021-05-12 Martin Rudalics Handle Bug#24526 without breaking Emacs on tiling WMs (Bug#48268) Since tiling window managers may react allergically to resize requests immediately following MapNotify events on X, make sure that such requests are issued only when a new frame should not become visible and a size has been explicitly requested for it. * lisp/faces.el (x-create-frame-with-faces): Mark frame as 'was-invisible' if it should be initially invisible or iconified and has its size specified explicitly. * src/frame.c (make_frame): Initialize new frame's was_invisible flag. (Fframe__set_was_invisible): New internal function. * src/frame.h (struct frame): Specify size of new_size_p slot. New flag was_invisible. * src/w32fns.c (Fx_create_frame) * src/nsfns.m (Fx_create_frame) * src/xfns.c (Fx_create_frame): Set new frame's was_invisible flag. * src/xterm.c (handle_one_xevent): Call xg_frame_set_char_size after a PropertyNotify or MapNotify event only if F's was_invisible flag was set. 2021-05-12 Richard Stallman Avoid querying in a noninteractive Emacs. * lisp/mail/sendmail.el (mail-send): In noninteractive Emacs, don't ask about combining header fields. 2021-05-12 Richard Stallman Handle empty string as mail-header-separator * lisp/mail/sendmail.el (mail-mode): (mail-sendmail-undelimit-header): Handle mail-header-separator empty. (mail-send): Search for mail-header-separator as entire contents of line. 2021-05-12 Richard Stallman Handle multi-line FROM. * lisp/mail/rmailsum.el (rmail-header-summary): Handle multi-line FROM. 2021-05-12 Richard Stallman Little improvements in rmail.el. Recognize encryped override headers. * lisp/mail/rmail.el (rmail-simplified-subject): Delete `[External] :'. (rmail-reply): In encrypted message, search for other header fields inside the encrypted part, and use them instead of the real header. (rmail-epa-decrypt): Don't set MIME unless it's Rmail mode. 2021-05-12 Richard Stallman Use rfc822-goto-eoh rather that mail-header-separator. * lisp/epa-mail.el (epa-mail-sign) (epa-mail-default-recipients, epa-mail-encrypt): Use rfc822-goto-eoh, not mail-header-separator. (epa-mail-default-recipients): Assume epa-mail-aliases elements are lower case, search case-independently. 2021-05-11 Eli Zaretskii Move the Text Properties menu back to Edit * lisp/textmodes/enriched.el (enriched-mode): Don't add "Text Properties" sub-menu to Text mode menu. * lisp/facemenu.el (menu-bar-edit-menu): Add "Text Properties" sub-menu back to the Edit menu. 2021-05-11 Lars Ingebrigtsen Remove purecopy throughout facemenu.el (since it's not preloaded) 2021-05-11 Lars Ingebrigtsen Move facemenu to enriched mode * lisp/menu-bar.el (menu-bar-edit-menu): Move from here... * lisp/textmodes/enriched.el (enriched-mode): ... to here. 2021-05-11 Tassilo Horn Fix dired confirm message asking to kill buffers of deleted dir (bug#48301) * lisp/dired.el (dired-clean-up-after-deletion): Fix dired confirmation message asking to kill buffers of deleted dir in the case where `dired-listing-switches' contain -p (bug#48301). 2021-05-11 Stefan Monnier * lisp/font-lock.el: Fix `font-lock-comment-end-skip` fallback (bug#34088) (font-lock-fontify-syntactically-region): Use `comment-end-skip` as fallback for `font-lock-comment-end-skip`, as is done for `font-lock-comment-start-skip` (and as the name suggests). * lisp/progmodes/opascal.el (opascal-mode): Revert last change, made unnecessary. 2021-05-11 Eli Zaretskii Improve documentation of Hexl mode * doc/emacs/misc.texi (Editing Binary Files): Explain that Hexl can also be used for editing text, including non-ASCII text. 2021-05-11 Andrea Corallo Rename comp-deferred-compilation * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load): Rename comp-deferred-compilation -> native-comp-deferred-compilation. * src/comp.c (maybe_defer_native_compilation, syms_of_comp): Likewise. 2021-05-11 Andrea Corallo Rename comp-deferred-compilation-deny-list * lisp/emacs-lisp/comp.el (native-comp-deferred-compilation-deny-list) (native-compile-async-skip-p): Rename comp-deferred-compilation-deny-list -> native-comp-deferred-compilation-deny-list. 2021-05-11 Eli Zaretskii Mention native compilation in the user manual * doc/emacs/building.texi (Lisp Libraries): Mention native compilation. 2021-05-11 Stefan Kangas Fix exiting Emacs when savehist-file not writable * lisp/savehist.el (savehist-save): Show warning when 'savehist-file' is not writable. (Bug#34093) (savehist--has-given-file-warning): New variable. 2021-05-11 Lars Ingebrigtsen Fix comment end delimiter fontification in OPascal mode * lisp/progmodes/opascal.el (opascal-mode): Fontify the ending brace with `font-lock-comment-delimiter-face' correctly (bug#34088). 2021-05-11 Eli Zaretskii Fix assertions in nth_minibuffer * src/minibuf.c (nth_minibuffer): Avoid assertion violation when DEPTHth minibuffer doesn't exist. (Bug#48337) 2021-05-11 Lars Ingebrigtsen `text-property-search-forward' doc string improvement * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): Correct and clarify the doc string (bug#48317). 2021-05-11 Eli Zaretskii Fix Hexl handling of coding-systems with BOM * lisp/international/mule-cmds.el (encode-coding-char): If CODING-SYSTEM produces BOM, remove the BOM bytes from the produced byte sequence. (Bug#48324) * lisp/hexl.el (hexl-mode): Use bufferpos-to-filepos to convert point to offset into the original file. (hexl-mode-exit, hexl-maybe-dehexlify-buffer): Use filepos-to-bufferpos to restore point in the original buffer. (hexl-mode, hexl-insert-multibyte-char) (hexl-self-insert-command, hexl-insert-hex-char) (hexl-insert-decimal-char, hexl-insert-octal-char) (hexl-find-file): Enhance the doc strings, mainly explaining the complications of inserting multibyte characters. (hexl-insert-multibyte-char): Don't treat CH as unibyte if the coding-system isn't ASCII-compatible. Don't treat null bytes as multibyte. 2021-05-11 Glenn Morris * doc/misc/erc.texi (Connecting): Fix cross reference. 2021-05-11 Amin Bandali Tweak documentation relating to 'erc-tls' * doc/misc/erc.texi (Connecting): Add a reference to the auth manual. * etc/NEWS: Remove the verbose, detailed example of client certificate specification and refer to the ERC manual instead. * lisp/erc/erc.el (erc-tls): Fix leftover path example in docstring. 2021-05-10 Glenn Morris * lib/Makefile.in (maintainer-clean): Fully ignore rmdir errors. 2021-05-10 Glenn Morris * Makefile.in: Simplify maintainer-clean. (maintainer_clean_dirs): Remove. (maintainer-clean): Don't duplicate clean by running bootstrap-clean, which can lead to issues with parallel clean. 2021-05-10 Glenn Morris * test/src/emacs-module-tests.el (mod-test-file): Unbreak out-of-tree. * test/Makefile.in (clean): Remove generated mml-sec file. 2021-05-10 Glenn Morris Always include the test/ directory in tarfiles In hindsight, it's hard to see why not including it was ever an option. * make-dist: Always include the test/ directory. (with_tests): Remove. (--tests, --no-tests): Make these options no-ops. * Makefile.in (mostlyclean_dirs, maintainer_clean_dirs): Add "test". (mostlyclean, clean, distclean, maintainer-clean): Remove special-casing for "test". ($(CHECK_TARGETS)): Simplify. 2021-05-10 Michael Albinus Extend meaning of UNIQUIFY `auto-save-file-name-transforms'. (Bug#47493) * doc/lispref/backups.texi (Auto-Saving): Explain UNIQUIFY being a secure hash in auto-save-file-name-transforms. * etc/NEWS: Mention change in `auto-save-file-name-transforms'. * lisp/files.el (auto-save-file-name-transforms): Adapt docstring. (make-auto-save-file-name): Care, if UNIQ is a secure hash symbol. 2021-05-10 Mauro Aranda Avoid saving session customizations in the custom-file * lisp/custom.el (custom-theme-recalc-variable): Only stash theme settings for void variables. (custom-declare-variable): After initializing a variable, unstash a theme setting, if present. (disable-theme): When disabling a theme, maybe unstash a theme setting. * test/lisp/custom-resources/custom--test-theme.el: Add two settings for testing the fix. 2021-05-10 Lars Ingebrigtsen Always heed the `lexical-binding' local variable * doc/lispref/variables.texi (File Local Variables): Document `permanently-enabled-local-variables'. * lisp/files.el (enable-local-variables): Mention the new variable. (set-auto-mode): Always call `hack-local-variables'. (hack-local-variables): Factor out the variable gathering into its own function, and respect the new variable (bug#47843). (hack-local-variables--find-variables): Factored out from `hack-local-variables'. (permanently-enabled-local-variables): New variable. 2021-05-10 Glenn Morris * lib-src/Makefile.in (clean): Tidy up seccomp-filter files. * test/Makefile.in (SUBDIRS, subdir_template): Fix out-of-tree. 2021-05-10 Glenn Morris Small fixes for out-of-tree clean rules. * Makefile.in (top_maintainer_clean, extraclean): Fix out-of-tree. 2021-05-10 Glenn Morris Small fixes for Makefile clean rules * Makefile.in (maintainer-clean): Move some items from extraclean. (extraclean): doc/emacs already deletes emacsver.texi. 2021-05-10 Glenn Morris Base the "extraclean" Make rule on "maintainer-clean" * Makefile.in (FIND_DELETE): New, set by configure. (extraclean_dirs): Remove. (extraclean): Make it just a small variation on maintainer-clean. * admin/charsets/Makefile.in (extraclean): * admin/grammars/Makefile.in (extraclean): * admin/unidata/Makefile.in (extraclean): * leim/Makefile.in (extraclean): * lib-src/Makefile.in (extraclean): * lisp/Makefile.in (extraclean): * lwlib/Makefile.in (extraclean): * nt/Makefile.in (extraclean): * src/Makefile.in (extraclean): Remove target. * lib/Makefile.in (extraclean): Merge into maintainer-clean. 2021-05-09 Juri Linkov * lisp/misearch.el (multi-isearch-switch-buffer): New function. * lisp/isearch.el (isearch-search-string): * lisp/misearch.el (multi-isearch-wrap, multi-isearch-pop-state): Use it. https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00309.html 2021-05-09 Michael Albinus Cleanups for Tramp out-of-band methods on MS Windows * doc/misc/tramp.texi (Frequently Asked Questions): tramp-use-ssh-controlmaster-options is nil on MS Windows. * lisp/net/tramp.el (tramp-unquote-shell-quote-argument): Revert previous change, it worked (not as expected but) properly. * test/lisp/net/tramp-tests.el (tramp-test17-dired-with-wildcards): Don't skip on MS Windows. (tramp--test-windows-nt-and-scp-p): Remove. (tramp--test-special-characters): Skip for out-of-band methods on MS Windows, sometimes. 2021-05-09 Andreas Schwab Make autoloads-force work in build directory * lisp/Makefile.in (autoloads-force): Remove $(lisp)/loaddefs.el, not loaddefs.el. 2021-05-09 Basil L. Contovounesios Default to 1970 in decoded-time-set-defaults * lisp/calendar/time-date.el (decoded-time-set-defaults): Set an unspecified year field to 1970, as promised in the docstring, and to ensure it's representable on all systems (bug#48298). 2021-05-09 Lars Ingebrigtsen Reintroduce autoloads for edebug-all-defs/edebug-all-forms * lisp/emacs-lisp/edebug.el (edebug-all-defs, edebug-all-forms): Reintroduce ;;;###autoload of these user options that were removed in bae2cfe63c, because this leads to errors in a common (and recommended) use case (bug#47516). 2021-05-09 Lars Ingebrigtsen Fix indentation of lines starting with # in js-mode * lisp/progmodes/js.el (js--proper-indentation): # is not like in C -- it doesn't have to appear on the beginning of the line (bug#47488). 2021-05-09 Eli Zaretskii Fix compilation errors with latest w32 API headers * src/w32common.h: Rename OS_* to OS_SUBTYPE__*, as w32 API headers started defining OS_NT, which breaks the use of the enumeration. All users changed. (Bug#48303) 2021-05-08 Basil L. Contovounesios Tiny fixes to recent native compilation docs For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-05/msg00347.html * doc/lispref/compile.texi (Native Compilation): Fix grammar in @ref online label. (Native-Compilation Functions): Consistently unhyphenate 'sub-process'. Fix grammar. (Native-Compilation Variables): Fix @cindex entry. 2021-05-08 Eli Zaretskii Document native-compilation * doc/lispref/loading.texi (How Programs Do Loading) (Library Search): Update for native-compilation features. * doc/lispref/compile.texi (Native Compilation) (Native-Compilation Functions, Native-Compilation Variables): New chapter and sections. * doc/lispref/elisp.texi (Top): Update the top-level menus. * etc/NEWS: Add a reference to the ELisp manual. 2021-05-08 Lars Ingebrigtsen Don't delete socket on server exit if it was passed in * lisp/server.el (server-sentinel): Don't delete the socket if it was passed in to Emacs (bug#47511). 2021-05-08 Lars Ingebrigtsen Remove dead URL in isearchb.el comments * lisp/isearchb.el: Remove dead URL in comments (bug#47514). 2021-05-08 Alan Mackenzie Prevent the selected window being a dead mini-window when switching frames This fixes bug #48249 and also a situation where, with recursive minibuffers enabled and minibuffer-follows-selected-frame t, switching frames when a minibuffer was open would leave the mini-window selected on the old frame. * lisp/window.el (record-window-buffer): Add extra parameter DO-MINIBUF, and amend the code such that minibuffers only get processed when that parameter is non-nil. * src/minibuf.c (zip_minibuffer_stacks, read_minibuf): Call Qrecord_window_buffer with the new argument set to Qt. (move_minibuffers_onto_frame): Set the selected window on the old frame when this would otherwise remain the mini-window. 2021-05-08 dalanicolai (tiny change) Mention that Emacs is usually case-insensitive in a couple of places * doc/lispref/searching.texi (Regular Expressions): Mention `case-fold-search'. * lisp/emacs-lisp/re-builder.el (re-builder): Mention case sensitivity toggles (bug#47534). 2021-05-08 Lars Ingebrigtsen Revert "Fix moving directories with the same name to trash" This reverts commit f618cc5bc83d3822759c5bb85d15320651ca2431. This patch doesn't cover some corner cases, I think. 2021-05-08 Codruț Constantin Gușoi (tiny change) Fix moving directories with the same name to trash * lisp/files.el (move-file-to-trash): Allow moving several directories with the same name to Trash (bug#48280). 2021-05-08 Stefan Monnier * lisp/gnus/nnoo.el (defvoo, deffoo): Add `doc-string` property 2021-05-08 Jim Porter Ensure ` ' handles rectangular regions * lisp/delsel.el (delete-active-region): Autoload it and make it interactive. * lisp/menu-bar.el (menu-bar-edit-menu): Bind "Clear" to `delete-active-region'. 2021-05-07 Philipp Stephani Don't use symbolic links in the test resource directory. This doesn't work on Windows. Instead, use the EMACS_TEST_DIRECTORY environment variable to find the BPF files. * test/src/emacs-tests.el (emacs-tests--lib-src): New constant. (emacs-tests/seccomp/allows-stdout) (emacs-tests/seccomp/forbids-subprocess) (emacs-tests/bwrap/allows-stdout): Use it. 2021-05-07 Michael Albinus Tramp: Fix file name quoting on MS Windows * lisp/net/tramp-sh.el (tramp-make-copy-program-file-name): Use `tramp-unquote-shell-quote-argument'. * lisp/net/tramp.el (tramp-unquote-shell-quote-argument): Adapt for MS Windows. * test/lisp/net/tramp-tests.el (tramp--test-special-characters): Adapt for MS Windows. 2021-05-07 Eli Zaretskii Fix a recent change in rmc.el * lisp/emacs-lisp/rmc.el (read-multiple-choice): Doc fix. Improve the message when entering recursive-edit. 2021-05-07 Michael Albinus Fix some annoyances wrt file-name-non-special * lisp/files.el (file-name-non-special): Do not expand `file-truename'. * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use local `default-directory' for `start-process'. 2021-05-07 Lars Ingebrigtsen `mail-envelope-from' doc clarification * lisp/mail/sendmail.el (mail-envelope-from): Note that the buffer should be narrowed before calling (bug#47616). 2021-05-07 Michael Albinus Tune Tramp traces * doc/misc/tramp.texi (Traces and Profiles): Describe call traces. * lisp/net/tramp-compat.el: Add `tramp-suppress-trace' property for all functions. * lisp/net/tramp.el (tramp-verbose): Adapt docstring. (tramp-file-name-method, tramp-file-name-user) (tramp-file-name-domain, tramp-file-name-host) (tramp-file-name-port, tramp-file-name-localname) (tramp-file-name-hop, tramp-file-name-user-domain) (tramp-file-name-host-port, tramp-file-name-port-or-default) (tramp-tramp-file-p, tramp-find-method, tramp-find-user) (tramp-find-host, tramp-dissect-file-name) (tramp-dissect-hop-name, tramp-debug-buffer-name) (tramp-debug-outline-level, tramp-get-debug-buffer) (tramp-get-debug-file-name, tramp-read-passwd) (tramp-clear-passwd): Add `tramp-suppress-trace' property. (tramp-debug-message): Activate call traces. * test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case): Simplify. 2021-05-07 Eli Zaretskii Improve doc strings in log-edit.el * lisp/vc/log-edit.el (log-edit-new-comment-index) (log-edit-maximum-comment-ring-size, log-edit-previous-comment) (log-edit-next-comment, log-edit-comment-search-backward) (log-edit-comment-search-forward) (log-edit-comment-to-change-log) (log-edit-header-contents-regexp, log-edit-font-lock-gnu-style) (log-edit, log-edit-mode, log-edit-fill-entry, log-edit-done) (log-edit-kill-buffer, log-edit-insert-message-template) (log-edit-insert-cvs-template, log-edit-insert-cvs-rcstemplate) (log-edit-rewrite-fixes, log-edit-add-to-changelog) (log-edit-generate-changelog-from-diff) (log-edit-insert-changelog, log-edit-narrow-changelog) (log-edit-changelog-entry, log-edit-changelog-insert-entries) (log-edit-extract-headers): Enhance and reword doc strings. 2021-05-06 Jim Porter Shell-quote the directory when finding a project's files * lisp/progmodes/project.el (project--files-in-directory): Shell-quote the directory (bug48247). 2021-05-06 Dmitry Gutov project--buffer-list: Tighten the check * lisp/progmodes/project.el (project--buffer-list): Tighten the check to speed up in the presence of multiple Tramp sessions, too. (https://lists.gnu.org/archive/html/emacs-devel/2021-05/msg00152.html) 2021-05-06 Andrea Corallo Rename comp-eln-load-path → native-comp-eln-load-path * src/comp.c (Fcomp_el_to_eln_filename): Rename comp-eln-load-path → native-comp-eln-load-path. * src/lread.c (maybe_swap_for_eln): Likewise. * lisp/startup.el (native-comp-eln-load-path) (normal-top-level): Likewise. * lisp/emacs-lisp/comp.el (comp-spill-lap-function, comp-final) (comp-eln-load-path-eff, comp-trampoline-compile) (comp-clean-up-stale-eln, comp-run-async-workers) (comp-lookup-eln, batch-byte-native-compile-for-bootstrap): Likewise. 2021-05-06 Andrea Corallo Rename comp-warning-on-missing-source * src/lread.c (maybe_swap_for_eln): Rename comp-warning-on-missing-source → native-comp-warning-on-missing-source. * src/comp.c (syms_of_comp): Likewise. * lisp/emacs-lisp/comp.el (native-comp-warning-on-missing-source): Likewise. 2021-05-06 Andrea Corallo Rename comp-native-driver-options → native-comp-driver-options * src/comp.c (add_driver_options, syms_of_comp): Rename comp-native-driver-options → native-comp-driver-options. * lisp/emacs-lisp/comp.el (native-comp-driver-options) (comp-ctxt, comp-spill-lap-function, comp-final) (comp-run-async-workers): Likewise. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise. 2021-05-06 Andrea Corallo Rename comp-async-query-on-exit → native-comp-async-query-on-exit * lisp/emacs-lisp/comp.el (native-comp-async-query-on-exit) (comp-run-async-workers): Rename comp-async-query-on-exit → native-comp-async-query-on-exit. 2021-05-06 Andrea Corallo Rename comp-async-report-warnings-errors * lisp/emacs-lisp/comp.el (native-comp-async-report-warnings-errors) (comp-accept-and-process-async-output): Rename comp-async-report-warnings-errors → native-comp-async-report-warnings-errors. 2021-05-06 Andrea Corallo Rename comp-async-env-modifier-form → native-comp-async-env-modifier-form * lisp/emacs-lisp/comp.el (native-comp-async-env-modifier-form) (comp-final, comp-run-async-workers): Rename comp-async-env-modifier-form → native-comp-async-env-modifier-form. 2021-05-06 Andrea Corallo Rename comp-async-all-done-hook → native-comp-async-all-done-hook * lisp/emacs-lisp/comp.el (native-comp-async-all-done-hook) (comp-run-async-workers): Rename comp-async-all-done-hook → native-comp-async-all-done-hook. 2021-05-06 Andrea Corallo Rename comp-async-cu-done-functions → native-comp-async-cu-done-functions * lisp/emacs-lisp/comp.el (native-comp-async-cu-done-functions) (comp-run-async-workers): Rename comp-async-cu-done-functions → native-comp-async-cu-done-functions. 2021-05-06 Andrea Corallo Rename comp-async-jobs-number → native-comp-async-jobs-number * lisp/emacs-lisp/comp.el (native-comp-async-jobs-number) (comp-effective-async-max-jobs, native--compile-async) (native-compile-async): Rename comp-async-jobs-number → native-comp-async-jobs-number. 2021-05-06 Andrea Corallo Rename comp-never-optimize-functions → native-comp-never-optimize-functions * lisp/emacs-lisp/nadvice.el (advice--add-function): Rename comp-never-optimize-functions → native-comp-never-optimize-functions. * lisp/emacs-lisp/comp.el (native-comp-never-optimize-functions) (comp-subr-trampoline-install, comp-call-optim-form-call): Likewise. 2021-05-06 Andrea Corallo Rename comp-bootstrap-deny-list → native-comp-bootstrap-deny-list * lisp/emacs-lisp/comp.el (native-comp-bootstrap-deny-list) (batch-native-compile): Rename comp-bootstrap-deny-list → native-comp-bootstrap-deny-list. 2021-05-06 Andrea Corallo Rename comp-always-compile → native-comp-always-compile * lisp/emacs-lisp/comp.el (native-comp-always-compile) (comp-run-async-workers): comp-always-compile → native-comp-always-compile. 2021-05-06 Andrea Corallo Rename comp-verbose -> native-comp-verbose * lisp/emacs-lisp/comp.el (native-comp-verbose, comp-log) (comp-log-func, comp-final, comp-run-async-workers): Rename comp-verbose -> native-comp-verbose. 2021-05-06 Andrea Corallo Rename comp-debug -> native-comp-debug * src/comp.c (emit_ctxt_code, syms_of_comp): Rename comp-debug -> native-comp-debug. * lisp/emacs-lisp/comp.el (native-comp-debug, comp-ctxt) (comp-spill-lap-function, comp-run-async-workers): Likewise. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Likewise. * test/src/comp-tests.el (comp-tests-bootstrap): Likewise. 2021-05-06 Andrea Corallo Rename comp-speed -> native-comp-speed * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Rename comp-speed -> native-comp-speed. * lisp/emacs-lisp/comp.el (native-comp-speed, comp-ctxt, comp-func, comp-spill-lap-function, comp-trampoline-compile, comp-run-async-workers): Likewise. * src/comp.c (emit_ctxt_code, load_comp_unit, syms_of_comp): Likewise. * test/src/comp-tests.el (comp-tests-tco, comp-tests-fw-prop-1) (comp-tests-check-ret-type-spec, comp-tests-pure): Likewise. 2021-05-06 Andrea Corallo Rename comp-limple-mode -> native-comp-limple-mode * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Doc update. (native-comp-limple-mode, comp-log-to-buffer): Rename comp-limple-mode -> native-comp-limple-mode. 2021-05-06 Michael Albinus In Tramp, use scp "-T" argument if available * lisp/net/tramp-sh.el (tramp-scp-strict-file-name-checking): New defvar. (tramp-scp-strict-file-name-checking): New defun. (tramp-do-copy-or-rename-file-out-of-band): Use it. (tramp-methods) : Use "%x". (tramp-make-copy-program-file-name): Use local quoting. (tramp-sh-handle-make-process): Don't call `tramp-maybe-open-connection', this happens implicitly by `tramp-send-command'. * lisp/net/tramp.el (tramp-methods): Adapt docstring. * test/lisp/net/tramp-tests.el (tramp-test40-special-characters) (tramp-test40-special-characters-with-stat) (tramp-test40-special-characters-with-perl) (tramp-test40-special-characters-with-ls): Don't skip for `tramp--test-windows-nt-and-scp-p'. 2021-05-06 Stefan Kangas Improve formatting in text-quoting-style docstring * src/doc.c (syms_of_doc) : Doc fix; improve formatting for readability. 2021-05-06 Stefan Kangas Remove another variable alias obsolete since Emacs 23 * lisp/menu-bar.el (menu-bar-files-menu): Delete variable alias for `menu-bar-file-menu'. * etc/NEWS: Announce its deletion. 2021-05-06 Mattias Engdegård Don't fail image-tests if JPEG format isn't compiled in * test/lisp/image-tests.el (image-type/from-filename): Make jpeg test conditional. Test pbm (always present). 2021-05-06 Mattias Engdegård Tidy file-matching regexps and remove some ineffective backslashes * lisp/emacs-lisp/package.el (package--delete-directory): * lisp/net/tramp-cmds.el (tramp-recompile-elpa): Escape dot; replace $ with \'. * lisp/help.el (help-for-help): * lisp/transient.el (transient-font-lock-keywords): Remove useless backslashes. 2021-05-06 Lars Ingebrigtsen Make (setf (map-elt ...)) return the value in the alist/plist cases * lisp/emacs-lisp/map.el (map-elt): Return the value in the list case (which can signal a `map-not-inplace' error. (map-elt): Return the value in the list case, too (bug#47572). 2021-05-06 Matt Armstrong Add tests for `map-elt' * test/lisp/emacs-lisp/map-tests.el: Add (failing) tests for `map-elt' (bug#47572). 2021-05-06 Michael Albinus Fix bug#47625 in dired * lisp/dired-aux.el (dired-create-files): Check, that `dired-do-symlink' does not create symlinks on different hosts. (Bug#47625) 2021-05-06 Alan Mackenzie Fix wrong handling of minibuffers when frames get iconified/made invisible This should fix bug #47766. * lisp/window.el (window-deletable-p): Add a quote where it was missing from minibuffer-follows-selected-frame. * src/frame.c (check_minibuf_window): Delete the function. (delete_frame): In place of calling check_minibuf_window, call move_minibuffers_onto_frame, possibly to move minibuffers onto the new current frame. (Fmake_frame_invisible, Ficonify_frame): Remove calls to check_minibuf_window. * src/minibuf.c (Factive_minibuffer_window): Search the frames for the active minibuffer rather than just assuming minibuf_window has been correctly updated. 2021-05-06 Harald Jörg cperl-mode: Eliminate bad interpretation of ?foo? * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Delete ?? from the allowed bare regexp delimiters. (cperl-short-docs): Delete ?...? from the documentation. * test/lisp/progmodes/cperl-mode-tests.el (cperl-bug-47598): Add tests for good, bad, and ambiguous use of ? as regex delimiter (bug#47598). 2021-05-06 Lars Ingebrigtsen Only look at the headers when computing the envelope from address * lisp/mail/smtpmail.el (smtpmail-send-it) (smtpmail-send-queued-mail, smtpmail-via-smtp): * lisp/mail/sendmail.el (sendmail-send-it): Only look at the headers when computing the envelope from (bug#47616). 2021-05-06 Dmitrii Kuragin (tiny change) Fix ispell program comparison * lisp/textmodes/ispell.el (ispell-set-spellchecker-params): Compare strings with `equal', not `eq' (since the identity of the string may change) (bug#48246). 2021-05-06 Lars Ingebrigtsen Make Info completion more robust * lisp/info.el (Info-build-node-completions): Don't signal an error if there are no nodes in the file we're computing completions over (bug#47771). 2021-05-06 Daniel Martín Add a help option to the open large files prompt * lisp/files.el (files--ask-user-about-large-file-help-text): New function that returns information about opening large files in Emacs. (Bug#45412) (files--ask-user-about-large-file): Use read-multiple-choice to display the available actions. * etc/NEWS: Advertise the new feature. 2021-05-06 Daniel Martín Extend read-multiple-choice to support free-form help descriptions * lisp/emacs-lisp/rmc.el (read-multiple-choice): Add a new argument to override the default help description in `read-multiple-choice'. Use the `help-char' variable instead of ?\C-h. Also support the `edit' action from `query-replace-map', so that help links can be visited by entering a recursive edit. 2021-05-05 Karl Fogel New option to confirm deletion in bookmark menu * lisp/bookmark.el (bookmark-menu-confirm-deletion): New defcustom. (bookmark-delete-all): Add comment explaining why we don't use the new confirmation formula here. (bookmark-bmenu-execute-deletions): Conditionally confirm deletion. Note that the bulk of the code diff here is just reindentation of an otherwise unchanged `let' expression. * etc/NEWS: Announce the new option. Thanks to Lars Ingebrigtsen and Eli Zaretskii for review, and thanks to Oliver Taylor for suggesting the option in the first place: https://lists.gnu.org/archive/html/emacs-humanities/2021-02/msg00022.html From: Oliver Taylor Subject: Re: [emacs-humanities] Extending Emacs Bookmarks to Work with EWW To: Karl Fogel Cc: Stefan Kangas, Emacs-humanities mailing list Date: Wed, 3 Feb 2021 20:21:59 -0800 Message-Id: <936D47EA-4D11-452B-8303-971B6386877B@me.com> 2021-05-05 Andrea Corallo Rename feature `nativecomp' into `native-compile' * test/src/comp-tests.el : Rename feature `nativecomp' into `native-compile'. * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Likewise. * src/comp.c (syms_of_comp): Likewise. * lisp/startup.el (normal-top-level): Likewise. * lisp/loadup.el: Likewise. * lisp/help.el (help-function-arglist): Likewise. * lisp/emacs-lisp/package.el (package--native-compile-async) (package--delete-directory): Likewise. * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Likewise. * lisp/emacs-lisp/advice.el (ad-add-advice): Likewise. 2021-05-05 Martin Rudalics Fix setting of 'width' and 'height' frame parameters * src/frame.c (Fframe_parameters): Fix bogus setting of 'height' and 'width' parameters. 2021-05-05 Andrea Corallo * test/lisp/help-fns-tests.el (help-fns-test-lisp-defsubst): Fix (bug#48221). 2021-05-05 Kazuhiro Ito Tweak how some Japanese punctuation chars are translated to ASCII * lisp/language/japan-util.el (japanese-symbol-table): Tweak Japanese punctuation character translation (bug#47767). 2021-05-05 Andrea Corallo Better identify native compiler presence in two tests. * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) (help-fns-test-lisp-defsubst): Better identify native-comp presence. 2021-05-05 Daniel Mendler Don't bug out in `Info-goto-node' completion * lisp/info.el (Info-read-node-name-1): Don't bug out in the middle of completion, but return nil instead (and issue a message) (bug#47771). 2021-05-05 Boruch Baum Fix error in ses.el when setting the current row * lisp/ses.el (ses-jump, ses-list-local-printers) (ses-list-named-cells): Use `user-error' for user errors. (ses-set-header-row): Function `ses-set-header-row' was determining the current row based upon variable `ses--curcell', but that variable is NIL until one begins an operation on a cell (eg. keybindings '=', '"'), so navigating to a row was insufficient to select that row, and further generated an ERROR because the code was not expecting a NIL value for variable `ses--curcell' (bug#47784). 2021-05-05 Lars Ingebrigtsen Allow `C-x C-k l' to work even if `C-h l' is unbound * lisp/kmacro.el (kmacro-edit-lossage): `view-lossage' may be bound to a different key than `C-h l' (bug#47785). 2021-05-05 Matt Beshara Remove unnecessary call to message in js.el * lisp/progmodes/js.el (js--end-of-defun-nested): Remove debugging message left over (bug#48234). 2021-05-05 Lars Ingebrigtsen Use @defmac on eval-{and,when}-compile * doc/lispref/compile.texi (Eval During Compile): Use @defmac instead of @defspec on two macros (bug#47862). 2021-05-05 Martin Rudalics Fix two GTK3 event handling issues * src/xterm.c (handle_one_xevent): For GTK3 PropertyNotify and MapNotify events explicitly request the stored frame sizes when the frame changes from iconified to a non-hidden state (Bug#24526). For Expose events do not change the frame's visibility or iconified state. For FocusIn events on GTK3 do not apply the fix for Bug#42655. The latter two changes are to avoid that plain invisible frames get reported as iconified. 2021-05-05 Lars Ingebrigtsen Make the ELC+ELN lines line up with the other lines 2021-05-05 Eric Abrahamsen Add new defvoo nnimap-keepalive-intervals to Gnus nnimap servers * lisp/gnus/nnimap.el (nnimap-keepalive-intervals): New per-server config for customizing when keepalive commands are sent. (nnimap-keepalive, nnimap-open-connection-1): Consult in these places. Additionally, use nnimap-streaming -> t when sending the keepalive NOOP, so we don't wait for the response. * doc/misc/gnus.texi (Customizing the IMAP Connection): Document. 2021-05-04 Basil L. Contovounesios Remove unused lexical variables in cc-defs.el * lisp/progmodes/cc-defs.el (c-sc-scan-lists-no-category+1+1) (c-sc-scan-lists-no-category+1-1, c-sc-scan-lists-no-category-1+1) (c-sc-scan-lists-no-category-1-1): Remove unused lexical variable 'here' to pacify byte-compilation warnings in cc-engine.el. 2021-05-04 Andrea Corallo Do not try to load unexistent eln file if async compilation was skipped * lisp/emacs-lisp/comp.el (comp-run-async-workers): Don't try to load if the eln file was not produced. 2021-05-04 Eli Zaretskii Fix infloop in lsp-mode * src/indent.c (line_number_display_width): Make sure the selected window's buffer is current before using display code on it: redisplay assumes that the window's buffer is current at all times. Reported by Evgeny Kurnevsky via lsp-mode's issue 1621, https://github.com/emacs-lsp/lsp-mode/issues/1621. 2021-05-04 Glenn Morris Merge from origin/emacs-27 40228fffd7 (origin/emacs-27) Fix code for newline-and-indent in skele... 56c4c8ef32 * lisp/jka-compr.el (jka-compr-uninstall): Fix function re... 2021-05-04 Glenn Morris Merge from origin/emacs-27 101a049f55 Improve doc string of 'tab-width'. 43c154404e * lisp/emacs-lisp/elp.el: Doc fixes. 1984213f62 * lisp/emacs-lisp/pp.el: Doc fixes. 6486c9dc73 * admin/make-tarball.txt: Note to update more files on web... 2021-05-04 Basil L. Contovounesios Remove as of recently unused GDK macro Its only use was removed in the recent change of 2021-04-27 "Major rewrite of adjust_frame_size", announced in the following thread: https://lists.gnu.org/r/emacs-devel/2021-04/msg01162.html * src/gtkutil.c [USE_GTK && !HAVE_GTK3] (gdk_window_get_geometry): Remove unused macro to pacify -Wunused-macros build warning. 2021-05-04 Lars Ingebrigtsen Fix inconsistent behaviour in find-file-noselect when using nowarn * lisp/files.el (after-find-file): Behave the same in when warning/not warning (bug#47850). This fixes this test case: (switch-to-buffer (find-file-noselect "non-existing-dir/test.el" t)) which would leave the buffer read-only. 2021-05-04 Lars Ingebrigtsen Allow TAB to go to a key in EPA key buffers * lisp/epa.el (epa--insert-keys): Allow TAB to go to the keys (bug#47876). 2021-05-04 Lars Ingebrigtsen Fix doc marker for previous bookmark NEWS change 2021-05-04 Boruch Baum Fontify lines when setting a bookmark * lisp/bookmark.el (bookmark-fontify): New user option (bug#48179). (bookmark-face): New face. (bookmark--fontify, bookmark--unfontify): New functions. (bookmark-set-internal, bookmark--jump-via, bookmark-delete): Use them. 2021-05-04 Lars Ingebrigtsen Ensure updating the animated image in all windows * lisp/image.el (image-show-frame): Simplify the window update -- pass in the buffer, which is a noop if the buffer isn't displayed. 2021-05-04 Martin Rudalics Fix a problem with x_set_tab_bar_lines (Bug#46827) * src/xfns.c (x_set_tab_bar_lines): Call x_change_tab_bar_height only if the number of tab bar lines changed from or to zero (Bug#46827). * src/xterm.c (x_make_frame_visible): Make frame_size_history update less noisy by doing it only if the frame wasn't visible before. 2021-05-03 Philip K project--buffer-list: Avoid Tramp buffers when possible * lisp/progmodes/project.el (project--buffer-list): Add file-remote-p check. 2021-05-03 Michael Albinus Fix unquoting of file names in subprocesses (Bug#48177) * lisp/files.el (file-name-non-special): Improve handling of inhibit-file-name-handlers. * src/callproc.c (Fcall_process, call_process): Unquote infile, error_file and output_file. (Bug#48177) * test/lisp/files-tests.el (files-tests-file-name-non-special--subprocess) (files-tests-file-name-non-special-file-name-all-completions) (files-tests-file-name-non-special-file-name-completion): Adapt tests. 2021-05-03 Alan Third martin rudalics Fix incorrect resizing behaviour on macOS (bug#48157, bug#48162) * src/nsterm.m ([EmacsView viewDidResize:]): The drawing buffer can be resized independently of Emacs's idea of the frame size. 2021-05-03 Lars Ingebrigtsen ediff shouldn't alter the kill ring when copying a diff * lisp/vc/ediff-util.el (ediff-copy-diff, ediff-pop-diff): Don't alter the kill ring (bug#47881). 2021-05-03 Lars Ingebrigtsen Speed up animation of non-displayed buffers * lisp/image.el (image-show-frame): Don't force an update if the buffer with the animation isn't in a window (bug#47895). Also just update the window in question. 2021-05-03 Lars Ingebrigtsen Speed up animation of non-displayed images * lisp/image.el (image-animate): Only compute the animation data once -- this avoids recomputing the image on every iteration when the image is not displayed (bug#47895). 2021-05-03 Lars Ingebrigtsen Note that function symbols are preferred in `add-hook' * lisp/subr.el (add-hook): Note that FUNCTION should preferably be a symbol (bug#47992). 2021-05-03 Steve Purcell ruby-mode.el: puts and printf do not require args * lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): puts and printf can be called without arguments, so the font locking of "bare" calls to either is incorrect. The fix is to font-lock them as for other kernel methods which accepts zero or more arguments (bug#48180). 2021-05-03 Lele Gaifax Align TUTORIAL.it to the English version * etc/tutorials/TUTORIAL.it: Reference 'describe-command' to replicate recent change. Add also a space before '' in several places, mimicking the usage of in the English version (bug#48183). 2021-05-02 Philipp Stephani Fix code for newline-and-indent in skeleton language. The code for this is the symbol 'n', which is usually spelled as '\n' here, not the character ?\n. * doc/misc/autotype.texi (Skeleton Language): Fix item for newline-and-indent. 2021-05-02 Martin Rudalics Add two changes announced but not included in previous commit * src/frame.c (adjust_frame_size): Remove extra inhibit_horizontal/_vertical checks. Improve the implied resize check when INHIBIT equals 2. 2021-05-02 Stefan Kangas * etc/tutorials/TUTORIAL.sv: Adjust to latest change in TUTORIAL. * etc/tutorials/TUTORIAL.es: Adjust to latest change in TUTORIAL. 2021-05-02 Alan Mackenzie * lisp/progmodes/cc-defs.el (c-save-buffer-state): Amend debug spec, t to let*. This should solve part of bug #48100. 2021-05-02 Eli Zaretskii * etc/tutorials/TUTORIAL.he: Adjust to latest change in TUTORIAL. 2021-05-02 Stefan Kangas Add new help command 'describe-command' * lisp/help-fns.el (describe-command): New command. (help-fns--describe-function-or-command-prompt): New helper function to prompt for a function or function. (Bug#46627) (describe-function): Use above new helper function. * lisp/help.el (help-map): Bind above new command to `C-h x'. (help-for-help): Add this new command to the help summary. * lisp/menu-bar.el (menu-bar-describe-menu): Add the new command to the help menu. * doc/emacs/help.texi (Help Summary, Name Help): Document 'describe-command', and update documentation on 'describe-function'. * etc/tutorials/TUTORIAL: Change reference from 'describe-function' to 'describe-command'. 2021-05-02 Stefan Monnier * lisp/apropos.el (apropos-value, apropos-local-value): Tweak for lexbind Don't skip symbols for the nowadays lexically scoped local vars. 2021-05-02 Alan Third Fix crash when resizing GNUstep builds The toolkit can send far too many resize notifications, so be more careful when we take action after receiving one. * src/nsfns.m (ns_set_tool_bar_lines): Remove unneeded NSTRACE. * src/nsterm.m ([EmacsView viewDidResize:]): Don't report resizes to Emacs when the same change has already been reported and delayed. 2021-05-02 Stefan Kangas * lisp/help-macro.el: Doc fix. 2021-05-02 Stefan Kangas Bind S-SPC to scroll-down in help-for-help * lisp/help-macro.el (make-help-screen): Bind S-SPC to scroll-down. Thanks to Dmitry Gutov . 2021-05-02 Stefan Kangas Minor doc fixes in simple.el * lisp/simple.el (next-error-move-function) (next-error-found-function, next-error-found) (previous-error-no-select, eval-expression-get-print-arguments) (undo-adjust-elt, undo-adjust-beg-end): Minor doc fixes. 2021-05-02 Nikolay Kudryavtsev Don't use pdumper-stats with unexec * lisp/emacs-lisp/bytecomp.el (byte-compile-refresh-preloaded): Check if pdumper-stats is bound before using it. 2021-05-02 Lars Ingebrigtsen Inhibit lines in doc-view-mode * lisp/doc-view.el (doc-view-mode): Inhibit line number modes (bug#47974). Change suggested by Gregory Heytings. 2021-05-02 Eric Skoglund Add newline and tab matching documentation to query-replace-regexp * lisp/replace.el: Add \n and \t matching information to query-replace-regexp docstring (bug#47981). 2021-05-02 Lars Ingebrigtsen Tweak filtering some more This should get the ./temacs continuation lines right. 2021-05-02 Martin Rudalics Make adjust_frame_size set up frame's new_width/_height too (Bug#17120) The purpose of this change is to have implied frame size changes pick up sizes requested by previous explicit size changes not only after they have been confirmed by the WM but already when they are initially passed to adjust_frame_size (Bug#17120). * src/dispextern.h (delayed_size_change): Remove extern. * src/dispnew.c (delayed_size_change): Make static again. (do_pending_window_change): Call change_frame_size only if F's new_size_p flag is set. (change_frame_size_1): Set/reset F's new_size_p flag * src/frame.c (adjust_frame_size): Remove extra inhibit_horizontal/_vertical checks. Improve the implied resizes check with INHIBIT equals 2. Set F's new_width and new_height and reset F's new_size_p flag when we run set_window_size_hook with INHIBIT 0 or 1. * src/frame.h (struct frame): New bit slot new_size_p. * src/gtkutil.c (xg_frame_resized): Use F's new_size_p flag instead of delayed_size_change to decide whether to call change_frame_size. (xg_frame_set_char_size): Call frame_size_history_extra before waiting for the ConfigureNotify event. * src/xterm.c (handle_one_xevent): Use F's new_size_p flag instead of delayed_size_change to decide whether to call change_frame_size. 2021-05-02 Boruch Baum Suppress false positives in apropos-value * lisp/apropos.el (apropos-value): Skip more apropos-internal variables (bug#48063). (apropos-value-internal): Skip the first value in the history values, which always contains the match. 2021-05-02 Philipp Stephani * lisp/jka-compr.el (jka-compr-uninstall): Fix function reference. 2021-05-01 Stefan Monnier * lisp/simple.el (newline): Make the hook function remove itself (copy-region-as-kill, kill-ring-save): Simplify interactive spec. 2021-05-01 Stefan Monnier * lisp/minibuffer.el (completing-read-default): Fix bug#45474 Set `minibuffer-completion-*` variables buffer-locally instead of using a global let-binding. This should also help make completion work correctly when multiple minibuffers are simultaneously active. 2021-05-01 Alan Third Fix infinite loop on GNUstep when toolbar updated * src/nsterm.m ([EmacsView viewDidResize:]): Use Emacs's existing knowledge of the frame size to decide whether to resize or not. 2021-05-01 Alan Third Fix NS build warnings * src/nsfns.m (Fx_create_frame): Remove unused variables. 2021-05-01 Jim Porter Fix GUD overlay arrows in gdb-mi when debugging over Tramp * lisp/progmodes/gdb-mi.el (gdb-frame-handler): Use local part of file name when setting `gud-last-frame'. 2021-04-30 Stefan Kangas Advertise PgUp/PgDn instead of SPC/DEL in help-for-help * lisp/help-macro.el (make-help-screen): * lisp/help.el (help-for-help): Advertise PgUp/PgDn instead of SPC/DEL. 2021-04-30 Mattias Engdegård Don't signal scan-error in interactive sexp-based commands This takes care of unfinished business from df0f32f04850 (bug#43489). * lisp/emacs-lisp/lisp.el (end-of-defun, mark-defun): * lisp/reposition.el (reposition-window): * lisp/simple.el (transpose-sexps): Convert nasty-looking scan-error into a human-readable message. 2021-04-30 Eli Zaretskii Fix the unexec build on MS-Windows * src/buffer.c (init_buffer) [USE_MMAP_FOR_BUFFERS]: If dumped with unexec, be sure to map new memory also for the " prin1" buffer. For the reasons and discussion, see https://lists.gnu.org/archive/html/emacs-devel/2021-04/msg01401.html. 2021-04-30 Eli Zaretskii Improve doc string of 'tab-width'. * src/buffer.c (syms_of_buffer) : Clarify doc string. (Bug#48058) 2021-04-30 Lars Ingebrigtsen Alter `gnus-article-show-images' to re-display with images installed * lisp/gnus/gnus-art.el (gnus-article-show-images): Reselect to display HTML images. 2021-04-30 Eli Zaretskii Improve support for 'display-line-numbers-width-start' * lisp/display-line-numbers.el (display-line-numbers-width-start): Allow the value to be a number. (Bug#48095) (display-line-numbers-mode): Handle 'display-line-numbers-width-start' whose value is a number. 2021-04-30 Stefan Monnier * src/doc.c (Fsnarf_documentation): Fix bug#48019 Don't presume that `custom-delayed-init-variables` holds a list. 2021-04-30 Stefan Monnier * lisp/mail/supercite.el (sc-select-attribution): Fix lexical conversion Mark `citation` and `attribution` as dynamically scoped around `sc-attribs-postselect-hook`, as documented in the function's docstring. 2021-04-29 Andrea Corallo Improve `comp-normalize-valset' reproducibility (bug#48021) * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Make it more reproducible. 2021-04-29 Glenn Morris Automatically generate texinfo.el internal autoloads * lisp/textmodes/texinfo.el: Replace manual autoloads. * lisp/textmodes/makeinfo.el (makeinfo-region, makeinfo-buffer) (makeinfo-recenter-compilation-buffer): * lisp/textmodes/texnfo-upd.el (texinfo-make-menu) (texinfo-all-menus-update, texinfo-start-menu-description) (texinfo-indent-menu-description, texinfo-master-menu) (texinfo-update-node, texinfo-every-node-update) (texinfo-sequential-node-update, texinfo-insert-node-lines) (texinfo-multiple-files-update): Add autoload cookies, and set generated-autoload-file. 2021-04-29 Stefan Kangas * lisp/emacs-lisp/elp.el: Doc fixes. 2021-04-29 Michael Albinus Some Tramp corrections, Bug#48067 * doc/misc/tramp.texi (Frequently Asked Questions): Rephrase GNU ELPA warnings. * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): Improve handling of gio warning. (Bug#48067) 2021-04-29 Stefan Kangas * lisp/emacs-lisp/pp.el: Doc fixes. * lisp/emacs-lisp/shortdoc.el: Doc fixes. 2021-04-29 Dmitry Gutov * lisp/progmodes/project.el: Also bump version. * lisp/progmodes/xref.el: Bump version. 2021-04-28 Juri Linkov * lisp/window.el (window--state-put-2): Set next/prev-buffers even to nil. When next-buffers or prev-buffers are nil, still use set-window-next-buffers or set-window-prev-buffers to set next/prev-buffers to nil. (Bug#46904) 2021-04-28 Andrea Corallo Add a note related to native compilation and Dynamic Binding * doc/lispref/variables.texi (Dynamic Binding): Add a note related to native compilation. 2021-04-28 Michael Albinus Tramp code cleanup * lisp/net/tramp-archive.el (tramp-archive-handle-insert-file-contents): Code cleanup. * lisp/net/tramp.el: Reload `tramp-compat' when we reload `tramp-autoloads'. (with-tramp-file-property, with-tramp-connection-property): Use `tramp-cache-undefined'. (tramp-autoload-file-name-handler): Do not load tramp-compat.el. (tramp-handle-insert-file-contents): Code cleanup. 2021-04-28 Michael Albinus Fix gio warning in Tramp * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): Improve handling of gio warning. (Bug#48067) 2021-04-28 Eli Zaretskii Doc fixes in avl-tree.el * lisp/emacs-lisp/avl-tree.el (avl-tree--root) (avl-tree--dir-to-sign, avl-tree--sign-to-dir) (avl-tree--del-balance, avl-tree--enter-balance) (avl-tree--do-copy, avl-tree--stack-repopulate, avl-tree-empty) (avl-tree-delete, avl-tree-member, avl-tree-member-p) (avl-tree-map, avl-tree-mapc, avl-tree-mapf, avl-tree-mapcar) (avl-tree-copy, avl-tree-clear, avl-tree-stack) (avl-tree-stack-first): Fix doc strings to be less verbose and to have the first line a complete sentence. 2021-04-28 Stefan Kangas * lisp/emacs-lisp/avl-tree.el: Minor doc fixes. * admin/make-tarball.txt: Note to update more files on web page. 2021-04-28 Michael Albinus Improve add-log-current-defun-header-regexp * lisp/vc/add-log.el (add-log-current-defun-header-regexp): Allow digits. Require at least one letter. (Bug#48037) 2021-04-28 Peter Oliver Add tests * test/lisp/progmodes/ruby-mode-tests.el (ruby-with-temp-file): New helper. (ruby--set-encoding-when-ascii, ruby--set-encoding-when-utf8) (ruby--set-encoding-when-latin-15): Tests for the previous commit (bug#48043). 2021-04-28 Dmitry Gutov Don't add magic comment to Ruby files for utf-8 encoding * lisp/progmodes/ruby-mode.el (ruby-encoding-map): Add entry for utf-8 (bug#48043). (ruby--detect-encoding): Don't convert to string too early, so that returning nil is meaningful. (ruby-mode-set-encoding): Convert to string here. 2021-04-27 Andrea Corallo Clean-up temporary eln test-suite directory when exiting (bug#48060) * lisp/startup.el (normal-top-level): Remove eln test-suite temp dir when exiting. 2021-04-27 Andrea Corallo Have `comp-cstr-intersection-no-mem' intersect pos neg value sets * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem): intersect pos and neg value sets * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add two tests and fix some test number. 2021-04-27 Stefan Kangas Avoid missing whitespace in help-for-help * lisp/help.el (help--for-help-make-commands): Avoid missing whitespace before description of command. Problem reported by Dmitry Gutov . 2021-04-27 Michael Albinus Fix loading problem in Tramp * lisp/net/tramp.el (tramp-autoload-file-name-handler): Load also tramp-compat.el. 2021-04-27 Daniel Mendler (affixation-function): Allow only three-element list elements Restrict the definition of the `affixation-function`. The function must return a list of three element lists. Since the `affixation-function` is part of the widely used `completing-read` API a simplification is helpful for both authors of completion UIs and authors of completion tables. * doc/lispref/minibuf.texi: Update documentation. * lisp/minibuffer.el: Update documentation. * lisp/simple.el (read-extended-command--affixation): Return three-element lists. https://lists.gnu.org/archive/html/emacs-devel/2021-04/msg01193.html 2021-04-27 Mattias Engdegård Calc: control digits after decimal point (bug#47302) Calc normally displays a trailing decimal point for floats with no fractional part, like '12.'. Some uses require at least one digit after the point; add the governing variable calc-digit-after-point. * lisp/calc/calc.el (calc-digit-after-point): New variable. (math-format-number): Use it. * test/lisp/calc/calc-tests.el (calc-display-digit-after-point): New test. 2021-04-27 Martin Rudalics Major rewrite of adjust_frame_size Have adjust_frame_size pass native frame sizes to backends instead of text sizes. Expand frame size history management. Drop PIXELWISE argument from change_frame_size and convert native to text sizes only when calling adjust_frame_size. Use convention in arguments that -1 instead of 0 means that no size change is required. When adjusting frame sizes pick up delayed size changes (Bug#46827). * lisp/frame.el (frame-notice-user-settings, make-frame): Don't set frame size history. (frame--size-history): Rewrite doc-string. Handle new formats of `frame-size-history' entries. * src/dispextern.h (delayed_size_change): Extern it. (change_frame_size): Drop last argument from extern. * src/dispnew.c (delayed_size_change): Make it global. (handle_window_change_signal): Reformat. Drop last argument from change_frame_size call. (do_pending_window_change, init_display_interactive): Drop last argument from change_frame_size call. (change_frame_size_1): NEW_WIDTH and NEW_HEIGHT now specify native sizes. Drop last argument PIXELWISE. Queue a change when it either differs from F's current pixel sizes or F's previously queued sizes. Inject frame_size_history_extra call when queuing. Adopt convention that for queued sizes -1 means that no size change is required. Convert from native to text sizes when calling adjust_frame_size. (change_frame_size): Drop last argument PIXELWISE and drop it also in change_frame_size_1 calls. * src/frame.c (frame_size_history_add): Remove. (frame_inhibit_resize): Remove call to frame_size_history_add. (set_menu_bar_lines, set_tab_bar_lines): Simplify. Drop last argument from change_frame_size call. (frame_windows_min_size): No more static. (keep_ratio): Minor rewrite using macros. (frame_size_history_adjust, frame_size_history_plain) (frame_size_history_extra): New functions. (adjust_frame_size): Major rewrite. Adopt new convention that negative values for new sizes mean no change. Pick up delayed size changes from F's new_width and new_height slots (Bug#46827). Call set_window_size_hook with native instead of text sizes. Do not sanitize window sizes any more. Call frame_size_history_adjust instead of frame_size_history_add. Always set F's resized_p slot to true. (make_frame): Initialize new_width and new_height slots to -1. Simplify setup of initial sizes and an adjust_frame_size call. (Fframe_parameters): Drop processing F's new_pixelwise slot. (check_frame_pixels): Reorder to make declarations appear first. (Fset_frame_height, Fset_frame_width, Fset_frame_size): Pass explicit width and height values to adjust_frame_size instead of -1. (gui_set_frame_parameters): Minor rewrite making sure that explicit sizes and the corresponding parameter are passed to adjust_frame_size. Remove frame_size_history_add call. (gui_figure_window_size): Drop last two arguments. Simplify assignment of initial size. Set new_height and new_width slots to -1. Use adjust_frame_size to set sizes instead of returning them to caller. (syms_of_frame): Drop symbols used by frame size history; these are now built on-the-fly. Also drop some menu bar related symbols in favor of Qmenu_bar_lines. * src/frame.h (struct frame): Remove new_pixelwise. (SET_FRAME_COLS, SET_FRAME_LINES, SET_FRAME_WIDTH) (SET_FRAME_HEIGHT): Remove macros. (frame_size_history_add): Remove externs. (frame_windows_min_size, frame_size_history_plain) (frame_size_history_extra): Add externs. (FRAME_WINDOWS_WIDTH, FRAME_WINDOWS_HEIGHT): Rename to FRAME_INNER_WIDTH and FRAME_INNER_HEIGHT. (gui_figure_window_size): Drop last two arguments from extern. * src/gtkutil.c (xg_frame_resized): Rename arguments to WIDTH and HEIGHT. Consult delayed_size_change to handle case where WIDTH and HEIGHT do not match F's new_width and new_height values. Call change_frame_size with native sizes and without PIXELWISE argument. Instead of frame_size_history_add call frame_size_history_extra. (xg_frame_set_char_size): WIDTH and HEIGHT are native sizes now; fix adjust_frame_size call accordingly. Instead of frame_size_history_add call frame_size_history_extra. (style_changed_cb): Call xg_frame_set_char_size with native instead of text sizes. (tb_size_cb): Remove frame_size_history_add call. Call adjust_frame_size with INHIBIT 5. (free_frame_tool_bar, xg_change_toolbar_position): Remove frame_size_history_add call. (update_frame_tool_bar): Call adjust_frame_size with INHIBIT 2 and let it handle frame_inhibit_implied_resize and fullheight/-width. Remove frame_size_history_add call. * src/keyboard.c (Fsuspend_emacs): Call change_frame_size with native sizes. * src/nsfns.m (ns_set_tool_bar_lines): Call adjust_frame_size with INHIBIT 2 and let it handle frame_inhibit_implied_resize and fullheight/-width. Remove frame_size_history_add call. (Fx_create_frame): Drop two last arguments in gui_figure_window_size call. Do not SET_FRAME_WIDTH and SET_FRAME_HEIGHT, the adjust_frame_size in gui_figure_window_size did that already. * src/nsterm.m (ns_set_window_size): Drop PIXELWISE argument and its processing; WIDTH and HEIGHT represent native pixel sizes now. Call change_frame_size with native sizes. Remove call to frame_size_history_add. ([EmacsView viewDidResize:]): Call change_frame_size with native sizes. * src/term.c (Fresume_tty): Call change_frame_size with native sizes. * src/termhooks.h (*set_window_size_hook): Drop last argument PIXELWISE. * src/w32fns.c (w32_change_tab_bar_height) (w32_change_tool_bar_height): Fix handling of these in the initial phase before they have been resized at least once. (Fx_create_frame, w32_create_tip_frame): Drop two last arguments in gui_figure_window_size call. Do not SET_FRAME_WIDTH and SET_FRAME_HEIGHT (or SET_FRAME_COLS and SET_FRAME_LINES), the adjust_frame_size in gui_figure_window_size did that already. * src/w32inevt.c (resize_event, maybe_generate_resize_event): Pass native sizes to change_frame_size. * src/w32term.c (w32_read_socket): When WM_WINDOWPOSCHANGED pass native sizes to change_frame_size. (w32_new_font): Recalculate FRAME_TAB_BAR_HEIGHT. Simplify code. (w32fullscreen_hook): Call change_frame_size with native sizes. (w32_set_window_size): Drop argument PIXELWISE and its processing; WIDTH and HEIGHT are native sizes now. Remove frame_size_history_add calls. Pass native sizes to change_frame_size. * src/widget.c (set_frame_size): Set width and height of widget directly. Call frame_size_history_plain instead of frame_size_history_add. (update_from_various_frame_slots): Call frame_size_history_extra. (EmacsFrameRealize): Call frame_size_history_plain. (EmacsFrameResize): Call change_frame_size with native sizes. Call frame_size_history_extra instead of frame_size_history_add. (EmacsFrameSetCharSize): Call frame_size_history_extra. Drop PIXELWISE argument in x_set_window_size call and specify pixels. (pixel_to_text_size): Remove function. * src/xdisp.c (resize_mini_window): Replace FRAME_WINDOWS_HEIGHT with FRAME_INNER_HEIGHT. (redisplay_tab_bar): Don't set tab_bar_redisplayed when we did not redisplay it. (redisplay_tool_bar): Don't call it for external tool bar. Don't set tool_bar_redisplayed when we did not redisplay it. (redisplay_window): When the tool bar is external call update_frame_tool_bar directly. * src/xfns.c (x_set_menu_bar_lines): Call adjust_frame_size only if number of menu bar lines changed and fix 6th argument. (x_change_tab_bar_height, x_change_tool_bar_height): Fix handling of these in the initial phase before they have been resized at least once. (Fx_create_frame, x_create_tip_frame): Drop two last arguments in gui_figure_window_size call. Do not SET_FRAME_WIDTH and SET_FRAME_HEIGHT (or SET_FRAME_COLS and SET_FRAME_LINES), the adjust_frame_size in gui_figure_window_size did that already. * src/xmenu.c (update_frame_menubar): Fix 6th arg of adjust_frame_size call. (free_frame_menubar): For Motif frames fix fullscreen and `frame-inhibit-implied-resize' handling. Fix 6th arg of adjust_frame_size calls. * src/xterm.c (x_net_wm_state): Remove call to frame_size_history_add. (handle_one_xevent): For PropertyNotify and UnmapNotify events add frame_size_history_plain calls. For MapNotify and ConfigureNotify events add a frame_size_history_extra call. For ConfigureNotify events also handle delayed size changes and call change_frame_size with native sizes. (x_new_font): Recalculate FRAME_TAB_BAR_HEIGHT. Simplify code. (x_handle_net_wm_state): Remove frame_size_history_add call. (x_check_fullscreen): Remove frame_size_history_add call. Call change_frame_size with native height. (x_set_window_size_1): WIDTH and HEIGHT are now native. Remove some frame_size_history_add calls and add frame_size_history_extra calls instead. If the frame is not visible call adjust_frame_size directly instead of calling change_frame_size. (x_set_window_size): Drop PIXELWISE argument. WIDTH and HEIGHT represent native sizes now. (x_make_frame_visible, x_make_frame_invisible): Call frame_size_history_plain. * src/xterm.h (x_set_window_size): Drop last argument from extern declaration. 2021-04-27 Glenn Morris Doc fixes for comp.el * lisp/emacs-lisp/comp.el (comp-deferred-compilation-deny-list) (comp-bootstrap-deny-list, comp-pred-to-cstr, make-comp-mvar) (comp-mvar-used-p, comp-async-compilation): Doc fixes. 2021-04-27 Glenn Morris Fix some custom types in comp.el * lisp/emacs-lisp/comp.el (comp-deferred-compilation-deny-list) (comp-bootstrap-deny-list, comp-never-optimize-functions) (comp-async-env-modifier-form, comp-native-driver-options): Fix :type (`list' on its own isn't even a valid type). 2021-04-27 Amin Bandali * lisp/erc/erc.el: Add past maintainer Michael Olson to Contributors. 2021-04-27 Lars Ingebrigtsen Fix compilation warnings in non-toolkit builds * src/xterm.c (x_create_toolkit_scroll_bar) (x_create_horizontal_toolkit_scroll_bar): String constants for XtSetArg are defined as const strings (in /usr/include/X11/Xaw3d/ThreeD.h, for instance), but the argument in XtSetArg is defined as either a const char* or a regular char* in /usr/include/X11/Intrinsic.h. Cast the argument to String (which should be correct on all platforms, hopefully) to avoid a compilation warning (bug#47452). 2021-04-27 Stefan Kangas Rename abnormal hook to comp-async-cu-done-functions * lisp/emacs-lisp/comp.el (comp-async-cu-done-functions): Rename from 'comp-async-cu-done-hook' to reflect that it is an abnormal hook. Doc fix and update single caller. 2021-04-27 Lars Ingebrigtsen Fix failing subr test * test/lisp/subr-tests.el (subr-tests-bug22027): Fix mocked signature of `read-string' (bug#48022). 2021-04-27 Lars Ingebrigtsen Fix failing auth-source test * test/lisp/auth-source-tests.el (auth-source-test-secrets-create-secret): Fix test failing because the mocked `read-string' had the wrong interface. 2021-04-27 Adam Sjøgren Ensure that we get an X-Draft-From headers * lisp/gnus/gnus-msg.el (gnus-setup-message): Ensure that we get an X-Draft-From headers (bug#48049). 2021-04-27 Stefan Monnier * lisp/emacs-lisp/package.el: Fix use of `find-library-name` That function caused a warning for a good reason. Don't just declare it and hope it will be available. (package--list-of-conflicts): Require `find-func` explicitly before declaring the function. Also don't ignore all errors but only the `file-error`s which will be emitted by `find-library-name` in normal circumstances. * lisp/emacs-lisp/find-func.el (find-library-name): Signal a `file-error` Instead of a generic `error`. 2021-04-26 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-ctxt): Initialize it. 2021-04-26 Andrea Corallo Rework where `comp-ctxt' is defined. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Remove `comp-ctxt' definition. * lisp/emacs-lisp/comp.el (comp-ctxt): Likewise. * lisp/emacs-lisp/comp-cstr.el (comp-ctxt): Define it here. 2021-04-26 Andrea Corallo * lisp/emacs-lisp/comp.el: Make it loadable in vanilla builds (bug#48021). * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix string-search. 2021-04-26 Eric Abrahamsen Small tweaks to gnus-registry reindexing messaging * lisp/gnus/gnus-registry.el (gnus-registry-fixup-registry): Use `seq-set-equal-p' so we don't care about list element ordering. Don't show messages within `registry-reindex' if we aren't at gnus-verbose level 9. 2021-04-26 Lars Ingebrigtsen Fix previous emake adjustment 2021-04-26 Andrea Corallo Make use of `ert-resource-file' `ert-resource-directory' in comp-tests * test/src/comp-resources/comp-test-pure.el: Rename. * test/src/comp-resources/comp-test-funcs.el: Likewise. * test/src/comp-resources/comp-test-funcs-dyn.el: Likewise. * test/src/comp-resources/comp-test-45603.el: Likewise. * test/src/comp-tests.el (comp-test-src, comp-test-dyn-src): Use `ert-resource-file'. (comp-tests-bootstrap): Use ert-resource-directory. (comp-tests-45603-1, comp-tests-pure): Use `ert-resource-file'. 2021-04-26 Andrea Corallo Use `expand-file-name' in place of `concat' in comp-tests.el * test/src/comp-tests.el (comp-test-src, comp-test-dyn-src) (comp-tests-bootstrap, comp-tests-pure, comp-test-src): Use `expand-file-name' in place of `concat'. 2021-04-26 Andrea Corallo Move native compiler test data into proper directory (bug#48031) * test/src/comp-tests-resources/comp-test-45603.el: Rename. * test/src/comp-tests-resources/comp-test-funcs-dyn.el: Likewise. * test/src/comp-tests-resources/comp-test-funcs.el: Likewise. * test/src/comp-tests-resources/comp-test-pure.el: Likewise. * test/src/comp-tests.el (comp-test-directory): Update. 2021-04-26 Andrea Corallo * test/src/comp-tests.el: Fix it for non native compiled build (bug#48031). 2021-04-26 Andrea Corallo Fix comp-cstr tests for vanilla build (bug#48021) * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Fix tests for vanilla build (bug#48021) 2021-04-26 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-accept-and-process-async-output): Fix regexp. 2021-04-26 Michael Albinus Some rearrangement in gitlab-ci.yml * test/infra/gitlab-ci.yml (test-filenotify-gio, test-gnustep): Add 'needs:' clause. (build-native-bootstrap-speed0, build-native-bootstrap-speed1) (build-native-bootstrap-speed2): Rename from 'test-*'. Do not use '--without-makeinfo'. 2021-04-26 Dario Gjorgjevski Fix typo in tramp-get-remote-gid * lisp/net/tramp.el (tramp-get-remote-gid): Pass the correct operation to find-file-name-handler. (Bug#48026) 2021-04-26 Stefan Kangas * src/editfns.c (Fpropertize): Doc fix; reference Info manual. 2021-04-25 Stefan Monnier * lisp/url/url-proxy.el (url-find-proxy-for-url): Minor simplification 2021-04-25 Andrea Corallo * lisp/startup.el (comp-eln-load-path): Silence a warning. 2021-04-25 Lars Ingebrigtsen Hack around problems in Turkish environments in url-proxy * lisp/url/url-proxy.el (url-find-proxy-for-url): Work around a problem in Turkish language environments (where a downcased I is ?ı (bug#44604). 2021-04-25 Stefan Kangas * lisp/emacs-lisp/comp.el (no-native-compile): Minor doc fixes. * lisp/help-macro.el: Remove stale Change Log. 2021-04-25 Lars Ingebrigtsen Adjust regexp to extra native-comp lines 2021-04-25 Andrea Corallo Merge branch 'feature/native-comp' into into trunk 2021-04-25 Lars Ingebrigtsen Revert window/winner changes (Revert 0454bfd3313) See bug#23621 for an explanation. 2021-04-25 Alan Mackenzie CC Mode: Get proper search limits in c-font-lock-cut-off-declarators * lisp/progmodes/cc-fonts.el (c-font-lock-cut-off-declarators): Instead of using a crude 2,000 characters back limit for backward searching, which is erroneous when that point is in a literal, use the already calculated c-determine-limit result. 2021-04-25 Glenn Morris Merge from origin/emacs-27 7d5b973959 (origin/emacs-27) * doc/misc/cl.texi (For Clauses): Minor ... 4570781f8d ; * doc/lispref/files.texi (Directory Names): Add missing ... 1b52fd538d Minor update for make-tarball.txt 8efb8491b2 * doc/misc/cl.texi (Iteration Clauses): fix `never' clause... 0873134682 ; Fix Texinfo in last change to minibuf.texi. cad8913c89 Improve filling-related documentation 2b7eed23eb ; * doc/lispref/keymaps.texi (Easy Menu): Fix typo. 47fc92cefc Fix reference to "yanking" in the main Emacs manual 1789dcdb35 Improve documentation of 'map-y-or-n-p' 2021-04-25 Stefan Kangas Add more scroll key bindings to make-help-screen * lisp/help-macro.el (make-help-screen): Add bindings to scroll on , , , . 2021-04-25 Gregory Heytings (tiny change) Fix the handling of the Delete key in help screens. * lisp/help-macro.el (make-help-screen): Handle the Delete key in help screens as in Emacs 23 and earlier. 2021-04-25 Stefan Kangas * lisp/ses.el: Doc fixes. 2021-04-25 Stefan Kangas Don't hard-code face of "Install" button * lisp/emacs-lisp/package.el (package-make-button): Use the 'custom-button' face for the "Install" button. (Bug#47944) 2021-04-25 Stefan Kangas Remove redundant #' before lambda in printing.el * lisp/printing.el (pr-menu-create, pr-eval-setting-alist) (pr-complete-alist, pr-file-list, pr-ps-file-list) (pr-insert-section-1, pr-insert-section-2) (pr-insert-section-4, pr-insert-section-5, pr-choice-alist) Remove redundant #' before lambda. 2021-04-25 Stefan Kangas * src/keyboard.c (Flossage_size): Improve prompt. 2021-04-25 Stefan Kangas Show correct lossage size in help-for-help * lisp/help.el (help-for-help): Show correct lossage size. Add trailing newline. Suggested by Gregory Heytings . 2021-04-25 Štěpán Němec * doc/lispref/macros.texi (Eval During Expansion): Copy edit. 2021-04-25 Daniel Mendler (completion-all-sorted-completions): Fix history use with boundaries Preprocess the history (and the default) through the new function `minibuffer--sort-preprocess-history` to filter out the completion base for completion tables with boundaries (in particular the file completion table). * lisp/minibuffer.el (minibuffer--sort-preprocess-history_: New function. (completion-all-sorted-completions): Use it. * test/lisp/minibuffer-tests.el (completion-all-sorted-completions): Add tests for various combinations of with/without history/base/default. 2021-04-24 Juri Linkov * lisp/progmodes/project.el: Use project-prefixed-buffer-name in more places. (project-shell, project-eshell): Use project-prefixed-buffer-name (bug#47975). (project-compilation-buffer-name-function): Add :version tag. 2021-04-24 Philipp Stephani * doc/misc/cl.texi (For Clauses): Minor copyedits. 2021-04-24 Stefan Monnier * lisp/mpc.el: Avoid (implicit) `eval`; prefer #' to quote function names (mpc-format): Compose functions instead of constructing source-code expressions at run time. Rename `mpc-pred` property to `mpc--uptodate-p`. (mpc-status-buffer-refresh): Adjust to the new property name. 2021-04-24 Stefan Monnier * lisp/svg.el: Fix typo in sample code; add minor optimization (svg--elliptical-arc-command, svg--moveto-command) (svg--lineto-command): Use `mapcan`. 2021-04-24 Stefan Monnier * doc/lispref/macros.texi (Eval During Expansion): Fix fixme 2021-04-24 Glenn Morris Simlify top-level Makefile since admin is always included * Makefile.in (clean_dirs, distclean_dirs, maintainer_clean_dirs): Add admin directories. (clean, distclean, bootstrap-clean, maintainer-clean): Simplify. (maybeclean_dirs): Remove - this dates to when admin/ was not included in tar files. 2021-04-24 Stefan Kangas * lisp/help.el (help--for-help-make-sections): Fix typo. 2021-04-24 Stefan Kangas Redesign and improve the help-for-help (C-h C-h) command * lisp/help.el (help-for-help): Redesign help screen; add sections, rearrange and reword. (help-for-help-header): New face. (help--for-help-make-commands, help--for-help-make-sections): New functions. (help-for-help-buffer-name): New variable. * lisp/help-macro.el (make-help-screen): New optional argument BUFFER-NAME. Fontify keys. This change was discussed in: https://lists.gnu.org/r/emacs-devel/2021-02/msg01695.html https://lists.gnu.org/r/emacs-devel/2021-03/msg00670.html https://lists.gnu.org/r/emacs-devel/2021-04/msg00292.html 2021-04-24 Eli Zaretskii Improve detection of pdumper file and *.eln files * src/emacs.c (load_pdump_find_executable): Resolve symlinks even if argv[0] includes leading directories. (Bug#46790) 2021-04-24 Eli Zaretskii Minor update for make-tarball.txt * admin/make-tarball.txt (UPDATING THE EMACS WEB PAGES AFTER A RELEASE): Update and enhance the section to make it easier to find the banner and verify the updated pages are in place. 2021-04-24 Jorge P. de Morais Neto (tiny change) * doc/misc/cl.texi (Iteration Clauses): fix `never' clause typo This fixes bug#47962. 2021-04-24 Eli Zaretskii Obsolete the TAB binding in *xref* buffers * doc/emacs/maintaining.texi (Xref Commands): Remove the description of the TAB binding. Enhance the description of the RET binding. (Bug#44611) * etc/NEWS: Announce the obsolescence of TAB binding in XREF. * lisp/progmodes/xref.el (xref-goto-xref): Improve doc string. 2021-04-24 Stefan Kangas * lisp/rot13.el: Improve documentation. (Bug#47970) 2021-04-24 Eli Zaretskii Improve diagnostics of loading *.eln files * src/pdumper.c (dump_do_dump_relocation): Improve diagnostics when loading preloaded *.eln files fails. (Bug#46790) 2021-04-24 Stefan Monnier * lisp/subr.el (remove-hook): Improve last change Don't put a `hook--depth-alist` property if there isn't one already. 2021-04-24 Amin Bandali Fix thinko introduced in the last ERC patch (bug#47788) * lisp/erc/erc-backend.el (erc-open-network-stream): Need to use apply to call open-network-stream with the supplied arguments because of the plist p of arguments. Thanks to neverwas for pointing it out. 2021-04-23 Stefan Monnier * lisp/files.el (minibuffer-with-setup-hook): Fix bug#46326 2021-04-23 Stefan Monnier * lisp/subr.el (add-hook): Try and fix bug#46326 Use `eq` indexing on `hook--depth-alist`. (remove-hook): Remove old entries from `hook--depth-alist`. 2021-04-23 Michael Albinus * lisp/net/tramp-cmds.el (tramp-recompile-elpa-command-completion-p): Check, whether Tramp has a package description. 2021-04-23 Juri Linkov * lisp/wdired.el (wdired--before-change-fn): Wrap body in save-match-data. Suggested by Michael Heerdegen (bug#14013) 2021-04-23 Eli Zaretskii Fix a recent change in minibuf.texi * doc/lispref/minibuf.texi (Basic Completion) (Programmed Completion): Improve wording, punctuation, and markup of a recently-added text. 2021-04-23 Stefan Kangas * etc/NEWS: 'world-clock-mode' is no longer interactive. 2021-04-23 Philipp Stephani Expand documentation on nontrivial completion boundaries. The interplay between nontrivial completion boundaries and the other completion functions is somewhat subtle, so it deserves a bit more explanation. * doc/lispref/minibuf.texi (Basic Completion) (Programmed Completion): Add a few more remarks about nontrivial completion boundaries. 2021-04-23 Philipp Stephani Fix small bug in 'completion-table-subvert'. Even for a trivial underlying completion table (where the 'boundaries' action returns nil), we need to provide nontrivial boundaries so that they match the behavior of 'all-completions'. * lisp/minibuffer.el (completion-table-subvert): Return boundaries even for trivial underlying completion table. * test/lisp/minibuffer-tests.el (completion-table-subvert-test): Amend unit test to also test boundaries. While there, also test the other completion functions. 2021-04-23 Eli Zaretskii Revert "Remove the binding for xref-quit-and-goto-xref" This reverts commit 522c34f0e80f60969861b0dc34bc7105249f9994. Making changes to which there was an explicit disagreement and a long discussion is unacceptable. (Bug#44611) 2021-04-23 Dmitry Gutov Misc changes * lisp/progmodes/project.el (project-shell, project-eshell): Simplify. (project-switch-commands, project-switch-use-entire-map): Add :group keywords (to fix misattribution to project-vc). 2021-04-23 Amin Bandali Add support for using a TLS client certificate with 'erc-tls' (bug#47788) * lisp/erc/erc-backend.el (erc-session-client-certificate): New buffer-local variable storing the TLS client certificate used for the current connection. (erc-open-network-stream): Use open-network-stream instead of make-network-process, and pass any additional arguments to it. (erc-server-connect): Add an optional client-certificate argument that if present is passed with the :client-certificate keyword as part of the arguments to erc-server-connect-function. * lisp/erc/erc.el (erc-open): Add new optional client-certificate argument, set it as erc-session-client-certificate, and pass it along to erc-server-connect. (erc): Clarify documentation string with respect to the full-name argument. (erc-tls): Add new client-certificate keyword argument and pass it in the direct call to erc-open (instead of going through erc). (erc-open-tls-stream): Pass any additional arguments (such as :client-certificate) to open-network-stream. Also allow overriding :nowait if desired. * doc/misc/erc.texi: Add documentation for erc-tls, including the new :client-certificate argument. * etc/NEWS: Announce the change. 2021-04-23 Ivan Sokolov (tiny change) Introduce project-compilation-buffer-name-function * lisp/progmodes/project.el (project-compilation-buffer-name-function): New option. (project-compile): Use it. (project-prefixed-buffer-name): New function. 2021-04-22 Dmitry Gutov * lisp/progmodes/xref.el: Remove the "still experimental" note. 2021-04-22 Dmitry Gutov Remove the binding for xref-quit-and-goto-xref * lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Remove the binding for xref-quit-and-goto-xref (bug#44611). * doc/emacs/maintaining.texi (Xref Commands): Update. 2021-04-22 Stefan Kangas * lisp/time.el (world-clock-mode): Make non-interactive. 2021-04-22 Stefan Kangas Minor improvements to world-clock * lisp/time.el (world-clock-mode-map): New variable. Bind 'n' and 'p' to 'next-line' and 'previous-line'. (world-clock-update): Preserve point. 2021-04-22 Eli Zaretskii Fix MS-Windows link switches for unexec * configure.ac (LD_SWITCH_SYSTEM_TEMACS) [mingw32]: Disable ASLR when linking for unexec. Reported by Nikolay Kudryavtsev . 2021-04-22 Stefan Kangas * lisp/progmodes/which-func.el: Doc fixes. 2021-04-22 Dmitry Gutov Move part of the fix from project to xref * lisp/progmodes/project.el (project--find-regexp-in-files): Don't unquote file names here. * lisp/progmodes/xref.el (xref-matches-in-files): Do it here. And only if the first element in the list is quoted (bug#47799). 2021-04-22 Philipp Stephani Ensure that argument to 'verify' is a constant expression. Casting NULL is not a constant expression (Bug#47951). * lib-src/seccomp-filter.c (main): Turn check for null pointer representation into a runtime assertion. 2021-04-22 Utkarsh Singh (tiny change) * lisp/window.el (display-buffer): Doc fix. (Bug#47950) 2021-04-22 Stefan Monnier Fix unload+reload of files using `custom-initialize-delay` (bug#47072) * lisp/custom.el (custom-initialize-delay): Don't delay if `custom-delayed-init-variables` has already been processed. * lisp/startup.el (command-line): Mark `custom-delayed-init-variables` as processed. 2021-04-22 Alan Mackenzie Fix unclean "can't happen" error handling in read_minibuf_unwind Also fix a bug where, with minibuffer-follows-selected-frame neither nil nor t, a minibuffer could appear in two frames at the same time. * src/window.c (Fset_window_configuration): Add a new &optional parameter DONT-SET-MINIWINDOW, which inhibits the minibuffer from being restored from the supplied window configuration. (restore_window_configuration): Enhance to match the above. * src/minibuf.c (read_minibuf): Enhance the argument list to the restore_window_configuration calls to match the above. In the main case, restoring the minibuffer is inhibited. (read_minibuf_unwind): Should the frame with the expired minibuffer not be found ("can't happen"), unwind the stacked data nevertheless, rather than just exiting. * src/keyboard.c (read_char_help_form_unwind): Amend a call of Fset_window_configuration. * doc/lispref/windows.texi (Window Configurations): Document the new form of set-window-configuration. * etc/NEWS (Lisp Changes in Emacs 28.1): Amend the entry for set-window-configuration. 2021-04-22 Eli Zaretskii Fix Isearch hscrolling in a corner case * lisp/isearch.el (isearch-update): When we start hscrolled, consider also the case that point ends up being to the left of the hscrolled window's edge. (Bug#46316) 2021-04-22 Eli Zaretskii Fix 'window-text-pixel-size' when there's after-string at EOB * src/xdisp.c (move_it_to): Fix logic of reaching TO_CHARPOS when there's a display or overlay string(s) at EOB. (Bug#47860) 2021-04-22 Andrea Corallo Improve a native compiler test * test/src/comp-tests.el (comp-test-47868-1): Improve testcase. * test/src/comp-resources/comp-test-funcs.el (comp-test-47868-3-f) (comp-test-47868-4-f): New functions. 2021-04-22 Stefan Kangas Avoid lowering gc-cons-threshold * lisp/cedet/semantic/wisent/comp.el (wisent--compile-grammar): * lisp/international/mule-cmds.el (ucs-names): * lisp/progmodes/ebrowse.el (ebrowse-read): * test/src/coding-tests.el (benchmark-decoder): Avoid lowering gc-cons-treshold. 2021-04-22 Stefan Kangas * lisp/strokes.el: Doc fix; update URL. 2021-04-22 Dmitry Gutov Use khaki1 as 'match' background * lisp/replace.el (match): Use khaki1 as the background color for light backgrounds (bug#47574). 2021-04-21 Stefan Kangas * lisp/emacs-lisp/package.el (package-archives): Bump :version. * lisp/emacs-lisp/package.el: Doc fix. 2021-04-21 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-imm-equal-test): Style fix. 2021-04-21 Philip K Make outline commands repeatable (bug#47878) * lisp/outline.el (outline-navigation-repeat-map): Add new map. (outline-editing-repeat-map): Add new map. 2021-04-21 Mattias Engdegård Don't erroneously declare `mark` as error-free * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns) (side-effect-and-error-free-fns): `mark` is side-effect-free but not error-free. 2021-04-21 Juri Linkov * lisp/isearch.el (isearch-forward-thing-at-point): New command (bug#39512). (search-map): Bind "M-s M-." to isearch-forward-thing-at-point. (isearch-forward-thing-at-point): New defcustom. 2021-04-21 Juri Linkov * lisp/thingatpt.el (region): Put property bounds-of-thing-at-point, bug#39512 2021-04-21 Philipp Stephani Remove a self-reference from the Emacs Lisp manual. * doc/lispref/minibuf.texi (Programmed Completion): Remove self-reference. 2021-04-21 Stefan Kangas Improve error message for missing Info manual * lisp/info.el (Info-find-file): Improve error message for missing Info manual. (Bug#46236) Fix suggested by Eli Zaretskii . 2021-04-21 Andrea Corallo * lisp/emacs-lisp/comp.el (batch-byte-native-compile-for-bootstrap): Fix typo. 2021-04-21 Andrea Corallo Fix native compiler string hash consing strategy (bug#47868) * test/src/comp-tests.el (comp-test-47868-1): Add new test. * test/src/comp-resources/comp-test-funcs.el (comp-test-47868-1-f) (comp-test-47868-2-f): New functions. * lisp/emacs-lisp/comp.el (comp-imm-equal-test): Define new hash tanble test. (comp-data-container): Use it. (comp-final, comp-run-async-workers): have comp required before reading dumped hashes so that `comp-imm-equal-test' is defined. 2021-04-21 Andrea Corallo Introduce `sxhash-equal-including-properties'. * src/fns.c (collect_interval): Move it upwards. (Fsxhash_equal_including_properties): New function. (syms_of_fns): Register `sxhash-equal-including-properties'. * etc/NEWS: Add 'sxhash-equal-including-properties'. 2021-04-21 Philip K sgml-mode: Only set sgml-xml-mode if guessed to be an XML file * lisp/textmodes/sgml-mode.el (sgml-mode): Don't override sgml-xml-mode if the result of the guess is used as the buffer local value. (Bug#47877) 2021-04-21 Stefan Monnier * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix bug#47925 In order to correctly detect the case of the "new style" with an empty body, remove the old optional arguments `init-value`, `lighter`, and `keymap`, so we can distinguish the "nil arg" from the "absent arg" cases. 2021-04-20 Harald Jörg cperl-mode: Avoid abbrev expansion in variable names * lisp/progmodes/cperl-mode.el (cperl-electric-else): Don't expand scalar variables like '$continue' as keywords. (Bug#47902) * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-hyperactive-electric-else): Verify that keywords are expanded but variable names aren't. 2021-04-20 Juri Linkov * lisp/wdired.el (wdired--self-insert): Put symbol property delete-selection. * lisp/isearch.el (isearch-post-command-hook): Revert ff796823e5 (bug#47894). 2021-04-20 Jonas Bernoulli Add new library transient.el * lisp/transient.el: New file. 2021-04-20 Eli Zaretskii Fix Rmail-MIME size estimations The quoted-printable estimation was obviously wrong: the size becomes smaller when decoded, not larger... * lisp/mail/rmailmm.el (rmail-mime-set-bulk-data): Fix estimations of decoded MIME attachment. 2021-04-20 Stefan Monnier * src/minibuf.c (Fread_no_blanks_input): Move to `minibuffer.el` * src/keymap.c (syms_of_keymap): * lisp/minibuffer.el (minibuffer-local-ns-map): Move declaration to initialization. (read-no-blanks-input): Move from `minibuf.c`. 2021-04-20 Stefan Monnier * lisp/minibuffer.el (minibuffer-mode-map): Make it an alias Avoid creating this "dummy" keymap by making it an alias of the parent keymap of all minibuffer keymaps. 2021-04-20 Stefan Monnier * src/minibuf.c (read_minibuf): Change multibyte more safely We used to `bset_enable_multibyte_characters` while the buffer is not empty, putting the buffer temporarily in an inconsistent state. Further simplifications along the way: Prefer re-using local var `histvar` and let `insert` do the unibyte<->multibyte conversion if needed. 2021-04-20 Eli Zaretskii Improve filling-related documentation * doc/emacs/text.texi (Auto Fill, Fill Commands): Mention special line-breaking rules for CJK characters and the kinsoku rules. (Bug#47856) * lisp/textmodes/fill.el (fill-separate-heterogeneous-words-with-space): Doc fix. 2021-04-20 Michael Albinus Fix localization problem in Tramp * lisp/net/tramp-sh.el (tramp-get-remote-stat): Use localized quotation characters for check. 2021-04-20 Alan Mackenzie Fix bug #47781: (window-list-1 nil t) wrongly returned nil. * src/window.c (candidate_window_p): In the WINDOW_P (all_frames) branch of the conditional, insert "EQ (minibuf, Qt)" in the requisite place. 2021-04-20 Alan Mackenzie Introduce and use minibuffer-mode. This fixes bug #47150 * lisp/minibuffer.el (minibuffer-mode): New derived mode. * src/minibuf.c (syms_of_minibuf): New DEFSYMs Qminibuffer_mode, Qminibuffer_inactive_mode, Qminibuffer_completing_file_name, Qselect_frame_set_input_focus, Qadd_to_history. (read_minibuf, set_minibuffer_mode, read_minibuf_unwind): Use the new DEFSYMs in place of continual interning. (set_minibuffer_mode): Put an active minibuffer into minibuffer-mode rather than fundamental-mode. * doc/emacs/mini.texi (Minibuffer Edit): Mention minibuffer-mode. * doc/lispref/minibuf.texi (Intro to Minibuffers): Add a paragraph about minibuffer-mode. * etc/NEWS (Incompatible Lisp Changes in Emacs 28.1): Add an entry. 2021-04-20 Daniel Mendler (completion-all-sorted-completions): Additional alphabetical sorting Even in the cases where it does not make much visible difference, it brings the benefit of making the result deterministic. * lisp/minibuffer.el (minibuffer--sort-by-length-alpha): New function. (minibuffer--sort-by-position): New function extracted from `completion-all-sorted-completions`. (completion-all-sorted-completions): Use use them. 2021-04-19 Daniel Mendler minibuffer.el: Use completion--message instead of minibuffer-message * lisp/minibuffer.el: Use completion--message consistently for the messages "Incomplete", "Sole completion" and "No completions". 2021-04-19 Philipp Stephani Seccomp filter: deal with arch_prctl(ARCH_CET_STATUS, ...). The dynamic loader of GNU libc 2.28 uses this system call to initialize CPU information, see https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/x86/cpu-features.c;hb=glibc-2.28#l28. Simulating an older kernel by returning EINVAL should be the most harmless rule here. The ARCH_CET_STATUS symbol isn't yet exposed by the kernel headers; see the FIXME at the top of https://sourceware.org/git/?p=glibc.git;a=blob;f=sysdeps/unix/sysv/linux/x86/include/asm/prctl.h;hb=glibc-2.28. * lib-src/seccomp-filter.c (ARCH_CET_STATUS): Define if not already present. Inline the value because there doesn't seem to be a header file exporting this constant yet. (main): Make ARCH_CET_STATUS subfunction of arch_prctl return EINVAL. 2021-04-19 Stefan Monnier * lisp/minibuffer.el (completion-all-sorted-completions): Fix last change 2021-04-19 Stefan Monnier * lisp/minibuffer.el (minibuffer--sort-by-key): New function (completion-all-sorted-completions): Use it. 2021-04-19 Daniel Mendler completion-all-sorted-completions: Fix sorting performance bug * lisp/minibuffer.el (completion-all-sorted-completions): Use hash table for sorting by history position, O(m+n*log(n)) instead of O(m*n*log(n)) with history length `m` and candidate length `n`. 2021-04-19 Daniel Mendler completing-read: If HIST is the symbol `t', history is not recorded. * lisp/minibuffer.el (completion-all-sorted-completions): Check if `minibuffer-history-variable` is `t` * src/minibuf.c (completing-read): Update docstring * doc/lispref/minibuf.texi: Update documentation of `read-from-minibuffer` and `completing-read` 2021-04-19 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-19 Michael Albinus Add Tramp recompilation * doc/misc/tramp.texi (Frequently Asked Questions): Refer to GNU ELPA Tramp README. * lisp/net/tramp-cmds.el (tramp-recompile-elpa-command-completion-p) (tramp-recompile-elpa): New defuns. Add property `completion-predicate'. 2021-04-19 Stefan Kangas Don't hard-code "~/.emacs.d/" in two more places * lisp/gnus/gnus-group.el (gnus-read-ephemeral-bug-group): * lisp/progmodes/js.el (js-js-tmpdir): Don't hard-code "~/.emacs.d/". 2021-04-19 Philip K Don't hard-code "~/.emacs.d/" in rcirc.el * lisp/net/rcirc.el (rcirc-log-directory): Use locate-user-emacs-file. (Bug#47880) 2021-04-18 Philipp Stephani Factor out a helper macro to create a temporary directory. This is a useful abstraction, and saves a few levels of indentation in the test body. * test/lisp/progmodes/project-tests.el (project-tests--with-temporary-directory): New helper macro. (project/quoted-directory): Use it. 2021-04-18 Philipp Stephani Add quoted filename support to 'project-find-regexp' (Bug#47799). This is only a band-aid; it would be better to fix xref.el to work with quoted filenames as well. * lisp/progmodes/project.el (project--find-regexp-in-files): Unquote filenames before passing them to 'xref-matches-in-files'. * test/lisp/progmodes/project-tests.el (project/quoted-directory): Also test 'project-find-regexp'. 2021-04-18 Philipp Stephani Extend project test so that 'project-current' works. * test/lisp/progmodes/project-tests.el (project/quoted-directory): Verify that 'project-current' returns the right project. 2021-04-18 Philipp Stephani Skip a unit test that requires an external program if necessary. * test/lisp/progmodes/project-tests.el (project/quoted-directory): Skip if the 'find' program isn't available. The 'project-files' function uses 'find' to obtain the list of project files. 2021-04-18 Eli Zaretskii * src/emacs.c (main): Add back the call to init_callproc_1. (bug#47872) 2021-04-18 Protesilaos Stavrou Update modus-themes to version 1.3.2 * doc/misc/modus-themes.org (COPYING): Reword to match the phrasing of other manuals that are distributed with Emacs. (Install from the archives) (Sample configuration for use-package) (Option for more bold constructs) (Option for more slanted constructs) (Option for syntax highlighting) (Option for no font mixing) (Option for links) (Option for command prompt styles) (Option for completion framework aesthetics) (Option for fringe visibility) (Option for language checkers) (Option for org-habit graph styles) (Option for line numbers (display-line-numbers-mode)) (Option for parenthesis matching (show-paren-mode)) (Option for diff buffer looks) (Option for scaled headings) (Option for variable-pitch font in UI elements) (Option for variable-pitch font in headings) (Case-by-case face specs using the themes' palette (DIY)) (Face specs at scale using the themes' palette (DIY)) (Font configurations for Org and others (DIY)) (Load theme depending on time of day): Minor markup changes for better texi output. (Option for mode line presentation): Document new possible values for 'modus-themes-mode-line'. (Option for line highlighting (hl-line-mode)): Document new 'modus-themes-hl-line' variable, which supersedes 'modus-themes-intense-hl-line'. (Option for active region): Document new possible values for 'modus-themes-region'. (Option for org-mode block styles): Cite variables that affect fontification. (Option for the headings' overall style): Include the option of a per-level nil value. (Remap face with local value (DIY)) (Override colors (DIY)): Add sections. (Full support for packages or face groups): Document newly supported packages (Note for dimmer.el) (Note for EWW and Elfeed fonts (SHR fonts)): Add notes. (Acknowledgements): Add names of new contributors. (GNU Free Documentation License): Add tags for html export. * etc/themes/modus-operandi-theme.el (File) * etc/themes/modus-vivendi-theme.el (File): Update to version 1.3.1 * etc/themes/modus-themes.el (modus-themes-operandi-colors) (modus-themes-vivendi-colors) (modus-theme-subtle-red) (modus-themes-subtle-red) (modus-theme-subtle-green) (modus-themes-subtle-green) (modus-theme-subtle-yellow) (modus-themes-subtle-yellow) (modus-theme-subtle-blue) (modus-themes-subtle-blue) (modus-theme-subtle-magenta) (modus-themes-subtle-magenta) (modus-theme-subtle-cyan) (modus-themes-subtle-cyan) (modus-theme-subtle-neutral) (modus-themes-subtle-neutral) (modus-theme-intense-red) (modus-themes-intense-red) (modus-theme-intense-green) (modus-themes-intense-green) (modus-theme-intense-yellow) (modus-themes-intense-yellow) (modus-theme-intense-blue) (modus-themes-intense-blue) (modus-theme-intense-magenta) (modus-themes-intense-magenta) (modus-theme-intense-cyan) (modus-themes-intense-cyan) (modus-theme-intense-neutral) (modus-themes-intense-neutral) (modus-theme-refine-red) (modus-themes-refine-red) (modus-theme-refine-green) (modus-themes-refine-green) (modus-theme-refine-yellow) (modus-themes-refine-yellow) (modus-theme-refine-blue) (modus-themes-refine-blue) (modus-theme-refine-magenta) (modus-themes-refine-magenta) (modus-theme-refine-cyan) (modus-themes-refine-cyan) (modus-theme-active-red) (modus-themes-active-red) (modus-theme-active-green) (modus-themes-active-green) (modus-theme-active-yellow) (modus-themes-active-yellow) (modus-theme-active-blue) (modus-themes-active-blue) (modus-theme-active-magenta) (modus-themes-active-magenta) (modus-theme-active-cyan) (modus-themes-active-cyan) (modus-theme-fringe-red) (modus-themes-fringe-red) (modus-theme-fringe-green) (modus-themes-fringe-green) (modus-theme-fringe-yellow) (modus-themes-fringe-yellow) (modus-theme-fringe-blue) (modus-themes-fringe-blue) (modus-theme-fringe-magenta) (modus-themes-fringe-magenta) (modus-theme-fringe-cyan) (modus-themes-fringe-cyan) (modus-theme-nuanced-red) (modus-theme-nuanced-green) (modus-theme-nuanced-yellow) (modus-theme-nuanced-blue) (modus-theme-nuanced-magenta) (modus-theme-nuanced-cyan) (modus-theme-special-cold) (modus-theme-special-mild) (modus-theme-special-warm) (modus-theme-special-calm) (modus-theme-diff-added) (modus-theme-diff-changed) (modus-theme-diff-removed) (modus-theme-diff-refine-added) (modus-theme-diff-refine-changed) (modus-theme-diff-refine-removed) (modus-theme-diff-focus-added) (modus-theme-diff-focus-changed) (modus-theme-diff-focus-removed) (modus-theme-diff-heading) (modus-theme-pseudo-header) (modus-theme-mark-alt) (modus-theme-mark-del) (modus-theme-mark-sel) (modus-theme-mark-symbol) (modus-theme-heading-1) (modus-theme-heading-2) (modus-theme-heading-3) (modus-theme-heading-4) (modus-theme-heading-5) (modus-theme-heading-6) (modus-theme-heading-7) (modus-theme-heading-8) (modus-theme-hl-line) (modus-theme-bold) (modus-theme-slant) (modus-theme-variable-pitch) (modus-theme-graph-red-0) (modus-theme-graph-red-1) (modus-theme-graph-green-0) (modus-theme-graph-green-1) (modus-theme-graph-yellow-0) (modus-theme-graph-yellow-1) (modus-theme-graph-blue-0) (modus-theme-graph-blue-1) (modus-theme-graph-magenta-0) (modus-theme-graph-magenta-1) (modus-theme-graph-cyan-0) (modus-theme-graph-cyan-1) (modus-theme-lang-note) (modus-theme-lang-warning) (modus-theme-lang-error): Rename all internal faces. (modus-themes-headings) (modus-themes-fringes) (modus-themes-lang-checkers) (modus-themes-org-blocks) (modus-themes-org-habit) (modus-themes-mode-line) (modus-themes-diffs) (modus-themes-completions) (modus-themes-prompts) (modus-themes-intense-hl-line) (modus-themes-hl-line) (modus-themes-paren-match) (modus-themes-syntax) (modus-themes-links) (modus-themes-region): Update defcustom. (modus-themes--fringe): (modus-themes--headings-choice): (modus-themes--prompt): (modus-themes--org-block-delim): (modus-themes--mode-line-attrs): (modus-themes--link): (modus-themes--region): (modus-themes--hl-line): Adjustments to internal functions. (modus-themes-faces): Update faces. (modus-themes-custom-variables): Update custom variables. 2021-04-18 Eli Zaretskii * src/comp.c (fixup_eln_load_path): Simplify code. 2021-04-18 Eli Zaretskii Fix last change * src/emacs.c (load_pdump_find_executable): Fix the value of CANDIDATE_SIZE when the final candidate is a symlink. 2021-04-18 Philipp Stephani Fix Seccomp filter on CentOS 8.3 (Bug#47828). * lib-src/seccomp-filter.c (main): mmap: Also allow MAP_SHARED. 2021-04-18 Stefan Kangas * lisp/misearch.el (multi-isearch-pop-state): Doc fix. 2021-04-18 Martin Rudalics Avoid selecting tooltip windows and frames (Bug#47207) * src/frame.c (do_switch_frame): Don't switch to a tooltip frame. (Fselect_frame): Do not select a tooltip frame. * src/w32fns.c (Fx_show_tip): * src/xfns.c (Fx_show_tip): Set the tooltip window's `no-other-window' parameter so `other-window' will skip it. * src/window.c (select_window): Do not select a tooltip window. (candidate_window_p): Make sure MINIBUF is live. (decode_next_window_args): Make sure that W's frame's minibuffer window is live before including it. (Qno_other_window): New symbol. 2021-04-18 Stefan Monnier * lisp/emacs-lisp/debug.el (debug): Fix (bug#47588) Don't bind `load-read-function` to nil but to its actual default value. Actually, I'm not sure it's worth the trouble rebinding this var, but if we do, then we should bind it to a valid value rather than to nil. * lisp/emacs-lisp/edebug.el (edebug--eval-defun): Re-install our advice if needed. 2021-04-17 Philipp Stephani Attempt to print some debugging information on Seccomp failures. Try to search the audit log as well as recent core dumps. * test/src/emacs-tests.el (emacs-tests--seccomp-debug): New helper function. (emacs-tests/seccomp/allows-stdout) (emacs-tests/seccomp/forbids-subprocess) (emacs-tests/bwrap/allows-stdout): Use it. 2021-04-17 Eli Zaretskii * src/emacs.c (load_pdump): Fix unconditional references to strip_suffix. 2021-04-17 Michael Albinus Make stderr in Tramp's make-process more robust * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Wrap about error in inserting stderr file. * lisp/net/tramp.el (tramp-handle-make-process): Fix docstring. 2021-04-17 Eli Zaretskii * src/emacs.c (load_pdump): Fix compilation on picky-complier platforms. 2021-04-17 Daniel Martín Fix reference to "yanking" in the main Emacs manual * doc/emacs/emacs.texi (Top): Yanking is alternatively known as pasting, not copying. (Bug#47839). 2021-04-17 Stefan Monnier * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Tweak further Suggested by Lars Ingebrigtsen . 2021-04-17 Eli Zaretskii Fix loading *.eln files when Emacs is installed via symlinks * src/emacs.c (real_filename, set_invocation_vars) (init_vars_for_load): Functions deleted; callers adjusted. (init_cmdargs): Put back all the code which was extracted into set_invocation_vars. (load_pdump_find_executable): Make sure the return value has any symlinks in it expanded. (load_pdump): Accept only 2 arguments, not 3. Determine both the file name of the Emacs executable and of the dump file in synchronized manner, so that if we decided to look for the dump file in its hardcoded installation directory, the directory of the Emacs executable will also be where we expect it to be installed. Pass only 2 arguments to pdumper_load. (Bug#47800) (Bug#44128) * src/pdumper.c (dump_do_dump_relocation): Use emacs_execdir instead of Vinvocation_directory to produce absolute file names of *.eln files that are recorded in the pdumper file. Pass the full .eln file name to fixup_eln_load_path. (pdumper_set_emacs_execdir) [HAVE_NATIVE_COMP]: New function. (pdumper_load) [HAVE_NATIVE_COMP]: Call pdumper_set_emacs_execdir. * src/comp.c (fixup_eln_load_path): Use Fsubstring_no_properties instead of Fsubstring. No need to cons a file name, as the caller already did that. Use explicit const string to avoid "magic" values. * lisp/startup.el (normal-top-level): Use expand-file-name instead of concat. Decode comp-eln-load-path and expand-file-name its members. 2021-04-17 Alan Third Fix :scale's affect on :width and :height (bug#47819) * src/image.c (compute_image_size): Multiply width and height values by scale. 2021-04-17 Eli Zaretskii Improve documentation of 'map-y-or-n-p' * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p): Doc fix. (Bug#47833) * doc/lispref/minibuf.texi (Multiple Queries): Fix the wording in the description of 'map-y-or-n-p'. 2021-04-17 Martin Rudalics Don't allow quitting while rebuilding Vwindow_list (Bug#47244) * src/window.c (window_list, next_window, window_list_1): Don't allow quitting in Fnconc and Fmemq (Bug#47244). 2021-04-17 Stefan Monnier * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Improve `C-h f` output Suggested by Michael Heerdegen . 2021-04-17 Stefan Kangas Cleanup in em-extra.el * lisp/eshell/em-xtra.el (cl-lib): Require. (pcomplete, compile): Remove unnecessary requires. (eshell/substitute, eshell/count, eshell/mismatch, eshell/union) (eshell/intersection, eshell/set-difference) (eshell/set-exclusive-or): Use cl-lib. Doc fixes. (eshell/ff, eshell/gf, eshell/expr): Quote function symbols as such. (eshell/expr): Assume 'calc-eval' is always available. 2021-04-16 Alan Mackenzie Check minibuffer windows are live windows, rather than assuming it This partly fixes bug #47207. * src/minibuf.c (choose_minibuf_frame, move_minibuffers_onto_frame) (read_minibuf (twice), read_minibuf_unwind): Before using a frame's ->minibuffer_window field, check it is valid with WINDOW_LIVE_P. (choose_minibuf_frame): Remove the emacs_abort for a null minibuffer. 2021-04-16 Glenn Morris Merge from origin/emacs-27 eedad01b4b (origin/emacs-27) Fix typos in manuals 24d214652e Fix description of momentary message display 2021-04-16 Ashish SHUKLA * lisp/emacs-lisp/comp.el (comp-effective-async-max-jobs): Handle BSD. 2021-04-16 Robert Pluim Improve docstring of 'frame-scale-factor' * src/frame.c (Fframe_scale_factor): Explain what happens when the FRAME argument is nil. 2021-04-16 Dmitry Gutov Improve quoting of directory names in project/xref * lisp/progmodes/project.el (project--files-in-directory): Quote LOCALDIR a bit earlier, to affect xref--find-ignores-arguments as well (bug#47799). * lisp/progmodes/xref.el (xref-matches-in-directory): Quote the dir passed to xref--rgrep-command. 2021-04-16 Dmitry Gutov project--files-in-directory: Handle errors reported by 'find' * lisp/progmodes/project.el (project--files-in-directory): Handle errors reported by 'find' (bug#47799). 2021-04-15 Eli Zaretskii Fix 'garbage-collect-maybe' * src/alloc.c (Fgarbage_collect_maybe): No longer interactive. (Bug#47805) 2021-04-15 Alan Third Allow use of em in image spec sizes * src/image.c (image_get_dimension): New function. (compute_image_size): Use image_get_dimension to set the sizes, and pass in the image struct instead of just the spec. (image_set_transform): (imagemagick_load_image): (svg_load_image): Use the image instead of the spec in compute_image_size. (syms_of_image): Add 'em' as a symbol. 2021-04-15 Philipp Stephani Improve project support for quoted directory names (Bug#47799) * lisp/progmodes/project.el (project--files-in-directory): Unquote directory name before passing it to 'find'. (project--remote-file-names): Requote local filenames if the original directory is quoted. * test/lisp/progmodes/project-tests.el (project/quoted-directory): New unit test. 2021-04-15 Stefan Monnier * lisp/emacs-lisp/bindat.el: Allow non-fixed size of `strz` (bindat--unpack-strz): Allow `len` to be nil. (bindat--pack-strz): New function. (bindat--type) : Make `len` arg optional. (bindat-type): Adjust debug spec and docstring accordingly. * doc/lispref/processes.texi (Bindat Types): Adjust accordingly. 2021-04-15 Mattias Engdegård Add condition-case success handler (bug#47677) Allow a condition-case handler on the form (:success BODY) to be specified as the success continuation of the protected form, with the specified variable bound to its result. * src/eval.c (Fcondition_case): Update the doc string. (internal_lisp_condition_case): Implement in interpreter. (syms_of_eval): Defsym :success. * lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case): Implement in byte-compiler. * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Allow self-TCO from success handler. * doc/lispref/control.texi (Handling Errors): Update manual. * etc/NEWS: Announce. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases) (bytecomp-condition-case-success): * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test cases. 2021-04-15 Alan Mackenzie CC Mode: Put debug specs inside declare forms. Add missing debug specs. * lisp/progmodes/cc-bytecomp.el, lisp/progmodes/cc-cmds.el, lisp/progmodes/cc-defs.el, lisp/progmodes/cc-engine.el, lisp/progmodes/cc-fonts.el, lisp/progmodes/cc-langs.el, lisp/progmodes/cc-mode.el: Change the explicit def-edebug-spec for many macros into a (declare (debug ...) ..) form. Add such forms to macros which were previously lacking def-edebug-spec forms. 2021-04-14 Andrea Corallo * configure.ac: Revert prev commit and fix native-comp NetBSD build. 2021-04-14 Juri Linkov repeat-echo-mode-line-string doesn't need risky-local-variable to keep props (bug#47566) 2021-04-14 Filipp Gunbin Java Mode: Change the syntax of character @ to prefix syntax lisp/progmodes/cc-langs.el (c-make-mode-syntax-table): Change the syntax of @ as indicated. 2021-04-14 Juri Linkov * lisp/isearch.el (isearch-mouse-2): Let-bind isearch-mode to nil (bug#47755) 2021-04-14 Juri Linkov Don't error out when selection data is unavailable (bug#47642) * src/xselect.c (x_get_window_property_as_lisp_data): Display a message and return nil when data is not available. 2021-04-14 Juri Linkov * lisp/progmodes/gud.el (gud-repeat-map): New variable (bug#47688). (gud-gdb): Populate gud-repeat-map with repeating keys. 2021-04-14 Juri Linkov * lisp/repeat.el: Add option to indicate repeat-mode in mode-line (bug#47566) * lisp/repeat.el (repeat-echo-function): Rename from repeat-mode-echo. Add choice repeat-echo-mode-line. (repeat-in-progress): New variable. (repeat-post-hook): Call repeat-echo-function with nil arg at the end of repeating sequence. (repeat-echo-message-string): New function with body from repeat-post-hook. (repeat-echo-message): Rename from repeat-mode-message. (repeat-echo-mode-line-string): New variable. (repeat-echo-mode-line): New function. 2021-04-14 Andrea Corallo * configure.ac: Fix native-comp FreeBSD build. 2021-04-14 Eli Zaretskii Fix MS-Windows build following last change * src/emacs.c (real_filename) [WINDOWSNT]: Fix off-by-one error when allocating storage for a file name. 2021-04-14 Andrea Corallo Fix native-comp startup for symliked binary (bug#44128) * src/emacs.c (real_filename): New function. (set_invocation_vars, load_pdump): Make use of. 2021-04-14 Michael Albinus Rearrange argument handling in Tramp scp calls. * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Use `start-process' instead of `start-process-shell-command'. (tramp-make-copy-program-file-name): Do not quote `localname'. * test/lisp/net/tramp-tests.el (tramp-method-out-of-band-p): Declare. (tramp--test-windows-nt-and-batch-p) (tramp--test-windows-nt-and-pscp-psftp-p): Remove, and also all callees. (tramp--test-windows-nt-and-out-of-band-p) (tramp--test-windows-nt-and-scp-p): New defuns. (tramp-test17-dired-with-wildcards) (tramp-test40-special-characters) (tramp-test40-special-characters-with-stat) (tramp-test40-special-characters-with-perl) (tramp-test40-special-characters-with-ls, tramp-test41-utf8) (tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl) (tramp-test41-utf8-with-ls): Use them. 2021-04-14 Eli Zaretskii Add two optional arguments to 'string-width' * src/character.c (Fstring_width, lisp_string_width): Accept two optional arguments FROM and TO, to indicate the substring to be considered. (Fstring_width): Add caveats in the doc string about display features ignored by the function. (Bug#47712) * src/character.h (lisp_string_width): Update prototype. * src/editfns.c (styled_format): Adjust call of lisp_string_width to its changed signature. * test/src/character-tests.el (character-test-string-width): New file with tests for 'string-width'. * doc/lispref/display.texi (Size of Displayed Text): Document caveats of using 'string-width'. * etc/NEWS: Announce the change. 2021-04-14 Stefan Monnier * src/xdisp.c (wset_update_mode_line): Move from `src/window.c` Move that function next to its siblings. Also simplify it, since after careful analysis it is now clear that the frame's title's update is already handled elsewhere (in `prepare_menu_bars` and `redisplay_window`) so we just need to make sure the `redisplay` bit is set. * src/window.c (wset_update_mode_line): Move to `src/xdisp.c`. * src/window.h (wset_update_mode_line): Declare. 2021-04-14 Stefan Monnier * lisp/nxml/xmltok.el (xmltok-defregexp): Don't quote lambda * lisp/emacs-lisp/eieio-core.el (list-of): Don't quote lambda 2021-04-13 Filipp Gunbin * doc/lispref/keymaps.texi (Translation Keymaps): Fix small misprint * doc/lispref/processes.texi: Fix small misprint 2021-04-13 Eric Abrahamsen Improvements to message-syntax-checks docs and options * doc/misc/message.texi: Move the manual entry from the "News Headers" section to the "Message Headers" section, as it is generally applicable, not just to News. * lisp/gnus/message.el (message-syntax-checks): Add an explicit alist type specifying the valid options; point to the manual for more information. 2021-04-13 Stefan Monnier * lisp/textmodes/two-column.el: Address FIXME (2C-associate-buffer): Move minibuffer interactive to the `interactive` spec. 2021-04-13 Stefan Monnier * lisp/textmodes/paragraphs.el (multiple-lines): Remove mistaken declaration (forward-paragraph): Remove unused var `multiple-lines`. 2021-04-13 Eli Zaretskii Resurrect mouse-highlight of close buttons on tab-bar * src/w32term.c (w32_draw_image_relief): Support tab-bar drawing with relief as xterm.c does. * src/xdisp.c (handle_tab_bar_click): Access the mouse-highlight info. Call show_mouse_face to show the button in the pressed or the released state, according to value of DOWN_P. (note_tab_bar_highlight): Function added back. (note_mouse_highlight): Call note_tab_bar_highlight when the mouse pointer is in the tab-bar window. (show_mouse_face): Return immediately if mouse_face_window is not set up in HLINFO. This avoids rare assertion violations. 2021-04-13 Eli Zaretskii Fix typos in manuals * doc/misc/eshell.texi (Completion): * doc/lispref/objects.texi (Mutability): Fix typos. (Bug#47738) 2021-04-13 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-13 Andrea Corallo Fix two comp-cstr tests * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Fix test 53 70. 2021-04-13 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): (not null) => t. * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset): Remove duplicates. 2021-04-13 Stefan Monnier * lisp/comint.el: Add `font-lock-face` to `rear-nonsticky` (comint--prompt-rear-nonsticky): New const. (comint-send-input, comint-output-filter): Use it. 2021-04-13 Stefan Monnier Don't version-control generated file `grammat-wy.el` This file is needed for CEDET's bootstrap, tho, so we now keep a copy of it under version control in `gram-wy-boot.el`, very much like we do with the `ldefs-boot.el` copy of `loaddefs.el`. * lisp/cedet/semantic/grm-wy-boot.el: Rename from `lisp/cedet/semantic/grammar-wy.el`. * lisp/cedet/semantic/grammar.el: Load `grm-wy-boot.el` if `grammar-wy.el` hasn't been generated yet. * admin/update_autogen: Also refresh `grm-wy-boot.el`. * admin/grammars/Makefile.in (WISENT): Add `grammar-wy.el` to the generated files. * .gitignore: Add `grammar-wy.el`. 2021-04-13 Stefan Monnier * lisp/minibuffer.el (completion-table-with-quoting): Fix bug#47678 2021-04-12 Wilson Snyder * lisp/progmodes/verilog-mode.el (vl-memory): Add missing defvar. 2021-04-12 Stefan Monnier * lisp/emacs-lisp/smie.el: Fix URL. Remove redundant `:group` args (smie-indent-forward-token): Improve error message. (smie--funcall): New function. (smie-indent-calculate): Use it. 2021-04-12 Stefan Monnier * lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Simplify * lisp/emacs-lisp/float-sup.el (pi): Actually mark it as obsolete * lisp/emacs-lisp/edebug.el (edebug--frame): Move docstring where it belongs 2021-04-12 Stefan Monnier * lisp/vt-control.el: Avoid `called-interactively-p` (vt-keypad-on, vt-keypad-off): Use the `tell` arg instead. (vt-numlock): Add `tell` arg. 2021-04-12 Stefan Monnier * lisp/files.el (file-modes-number-to-symbolic): Add `filetype` arg. * lisp/tar-mode.el (tar-header-block-summarize): Use it. (tar-grind-file-mode): Declare obsolete. 2021-04-12 Stefan Monnier * lisp/frame.el (delete-other-frames): Add universal prefix `iconify` arg (frame--current-backround-mode): New function, extracted from `frame-set-background-mode`. Use `color-dark-p`. (frame-set-background-mode): Use it. 2021-04-12 Juri Linkov * lisp/repeat.el (repeat-mode-echo): New defcustom. (repeat-post-hook): Use it. (repeat-mode-message): New function (bug#47566). (repeat-post-hook): Use real-this-command instead of this-command to handle e.g. rectangle-exchange-point-and-mark remapped to exchange-point-and-mark (bug#47688). 2021-04-12 Stefan Monnier * lisp/dynamic-setting.el: Add missing footer * lisp/comint.el (comint-strip-ctrl-m): Avoid `called-interactively-p` 2021-04-12 Glenn Morris * lisp/strokes.el (strokes-mode): Fix typo in previous. 2021-04-12 Stefan Monnier (define-minor-mode): Warn about use of pre-Emacs-21 style args * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Use `advertised-calling-convention` to avoid promoting the old style arguments. Emit a wanring when old-style arguments are used. Massage the docstring accordingly. * doc/lispref/modes.texi (Defining Minor Modes): Document the keyword arguments rather than the old-style positional arguments. 2021-04-12 Stefan Monnier * lisp/progmodes/vhdl-mode.el: Add note about XEmacs compatibility 2021-04-12 Lars Ingebrigtsen Adjust verilog-mode to changes in the completion framework * lisp/progmodes/verilog-mode.el (verilog-func-completion): Don't bug out on `C-M-i' (which expects no point movement) (bug#47652). (verilog-declaration-end): There may be no semicolons; don't bug out. 2021-04-12 Shitikanth Kashyap (tiny change) Fix python-shell-switch-to-shell redisplay bug * lisp/progmodes/python.el (python-shell-switch-to-shell): Redisplay the switched-to window faster (bug#47679). 2021-04-12 Ralph Schleicher Add command in eww to toggle images * lisp/net/eww.el (eww-toggle-images): New function. (eww-mode-map): Add key binding and menu entry. * lisp/net/shr.el (shr-inhibit-images): Make it customizable. * doc/misc/eww.texi (Basics): Document eww-toggle-images. Fix index entries for shr-use-fonts and shr-use-colors. (Advanced): Document shr-inhibit-images (bug#47705). 2021-04-12 Junya Takahashi (tiny change) Fix args-out-of-range error in epa-file-insert-file-contents * lisp/epa-file.el (epa-file-insert-file-contents): Don't bug out on a region that's longer than the file (bug#47718). 2021-04-12 Philipp Stephani * lib-src/seccomp-filter.c: Add missing headers. 2021-04-12 Philipp Stephani Generate Seccomp filters only if we have the necessary constants. If we're missing SECCOMP_SET_MODE_FILTER, the seccomp-filter build fails. Reuse the existing HAVE_SECCOMP configuration variable, which checks for these macros. * configure.ac (HAVE_SECCOMP): Substitute in Makefile.in. * lib-src/Makefile.in (HAVE_SECCOMP): New variable. (SECCOMP_FILTER): Define only if HAVE_SECCOMP. 2021-04-12 Stefan Monnier * lisp/**/*.el: Avoid positional args to `define-minor-mode` Back in Emacs-21.1, `define-minor-mode` grew keywords arguments to replace its old positional arguments. Let's make sure we don't use the old-style any more. * lisp/org/ox-beamer.el (org-beamer-mode-map): Move initialization into declaration. (org-beamer-mode): * lisp/textmodes/tildify.el (tildify-mode): * lisp/textmodes/sgml-mode.el (html-autoview-mode): * lisp/textmodes/rst.el (rst-minor-mode): * lisp/textmodes/remember.el (remember-notes-mode): * lisp/textmodes/ispell.el (ispell-minor-mode): * lisp/tar-mode.el (tar-subfile-mode): * lisp/strokes.el (strokes-mode): * lisp/so-long.el (so-long-minor-mode): * lisp/shell.el (shell-dirtrack-mode): * lisp/scroll-all.el (scroll-all-mode): * lisp/ruler-mode.el (ruler-mode): * lisp/rect.el (rectangle-mark-mode): * lisp/progmodes/sh-script.el (sh-electric-here-document-mode): * lisp/outline.el (outline-minor-mode): * lisp/org/org.el (org-cdlatex-mode): * lisp/org/org-table.el (org-table-header-line-mode) (org-table-follow-field-mode, orgtbl-mode): * lisp/org/org-src.el (org-src-mode): * lisp/org/org-list.el (org-list-checkbox-radio-mode): * lisp/org/org-indent.el (org-indent-mode): * lisp/org/org-capture.el (org-capture-mode): * lisp/obsolete/pc-select.el (pc-selection-mode): * lisp/obsolete/iswitchb.el (iswitchb-mode): * lisp/net/rcirc.el (rcirc-omit-mode, rcirc-multiline-minor-mode) (rcirc-track-minor-mode): * lisp/net/goto-addr.el (goto-address-mode, goto-address-prog-mode): * lisp/image-mode.el (image-minor-mode): * lisp/ibuf-ext.el (ibuffer-auto-mode): * lisp/gnus/gnus-cite.el (gnus-message-citation-mode): * lisp/font-core.el (font-lock-mode): * lisp/erc/erc.el (define-erc-module): * lisp/erc/erc-track.el (erc-track-minor-mode): * lisp/erc/erc-fill.el (erc-fill-mode): * lisp/epa-mail.el (epa-mail-mode): * lisp/emacs-lisp/checkdoc.el (checkdoc-minor-mode): * lisp/dirtrack.el (dirtrack-mode, dirtrack-debug-mode): * lisp/dired-aux.el (dired-isearch-filenames-mode): * lisp/cedet/semantic/idle.el (semantic-idle-scheduler-mode): * lisp/cedet/semantic/decorate/mode.el (semantic-decoration-mode): * lisp/autoarg.el (autoarg-mode, autoarg-kp-mode): * lisp/vc/pcvs.el (cvs-minor-mode): Avoid old-style positional args to `define-minor-mode`. 2021-04-12 Stefan Monnier * lisp/gnus/message.el: Give non-nil defaults for function vars Also prefer #' to quote functions. (message-send-rename-function, message-reply-to-function) (message-wide-reply-to-function, message-followup-to-function): Use a non-nil default value so it can be used with `add-function`. (message-do-send-housekeeping): Tweak accordingly. (message-get-reply-headers): Simplify by η-reduction. 2021-04-12 Stefan Monnier * lisp/eshell/esh-util.el: Require `seq` Also remove redundant `:group` args and tweak comment 2021-04-12 Stefan Monnier * lisp/eshell/esh-proc.el (eshell-kill-process-function): Use `remove-hook` Also remove redundant `:group` args 2021-04-12 Stefan Monnier * lisp/mail/rmailmm.el (rmail-mime): Simplify interactive spec * lisp/progmodes/sql.el (sql-mode-ansi-font-lock-keywords): Fix declaration 2021-04-12 Stefan Monnier * lisp/vc/log-edit.el (log-edit-diff-function): Give non-nil default (log-edit-show-diff): Simplify accordingly. 2021-04-12 Stefan Monnier * lisp/progmodes/bug-reference.el: Avoid old-style `define-minor-mode` (bug-reference-mode, bug-reference-prog-mode): Remove redundant args. 2021-04-11 Philipp Stephani * src/emacs.c (load_seccomp): Consistently check for nonzero result 2021-04-11 Philipp Stephani Add a variant of the Seccomp filter file that allows 'execve'. This is useful when starting Emacs with a Seccomp filter enabled, e.g. using 'bwrap'. * lib-src/seccomp-filter.c (main): Generate new Seccomp files. * lib-src/Makefile.in (all) (seccomp-filter.bpf seccomp-filter.pfc seccomp-filter-exec.bpf seccomp-filter-exec.pfc): Generate new Seccomp files. * .gitignore: Ignore new Seccomp files. * test/src/emacs-tests.el (emacs-tests/bwrap/allows-stdout): New unit test. 2021-04-11 Philipp Stephani * lib-src/seccomp-filter.c (main): Also allow O_NOFOLLOW. 2021-04-11 Philipp Stephani Don't attempt to generate Seccomp filter file in Linux < 4.14. Only Linux 4.14 and later contain the required support for SECCOMP_RET_KILL_PROCESS. * lib-src/Makefile.in (SECCOMP_FILTER): Define only if we run at least Linux 4.14. 2021-04-11 Philipp Stephani Seccomp filter: allow reading the current time (Bug#47708). * lib-src/seccomp-filter.c (main): Allow reading the current time. 2021-04-11 Andreas Schwab Fix check for timer_getoverrun * configure.ac (timer_getoverrun): Move check after gnulib checks and use $LIB_TIMER_TIME during check. 2021-04-11 Philipp Stephani Use pkg-config to check for libseccomp. We need at list version 2.4.0 of libseccomp for seccomp-filter.c to build cleanly. * configure.ac: Use pkg-config to check for libseccomp. * lib-src/Makefile.in (HAVE_LIBSECCOMP, LIBSECCOMP_LIBS) (LIBSECCOMP_CFLAGS): New variables. (SECCOMP_FILTER, seccomp-filter$(EXEEXT)): Use them. 2021-04-11 Philipp Stephani Remove SCMP_FLTATR_CTL_LOG attribute from Seccomp filter. Whether or not we log failing syscalls isn't security-critical, and we shouldn't care. * lib-src/seccomp-filter.c (main): Remove log attribute. 2021-04-11 Philipp Stephani Only attempt to generate seccomp filter files on x86-64 systems. The seccomp filters are always architecture-specific, and seccomp-filter.c right now only supports x86-64. * lib-src/Makefile.in (SECCOMP_FILTER): New variable. (DONT_INSTALL, all, seccomp-filter$(EXEEXT)): Use it. 2021-04-11 Philipp Stephani * lib-src/seccomp-filter.c: Print trailing newline. 2021-04-11 Stefan Kangas * doc/lispref/elisp.texi (Top): Add missing entry. 2021-04-11 Eli Barzilay Fix calculator-string-to-number yet again (bug#47694) * lisp/calculator.el (calculator-string-to-number): The last bugfix changed the code to just blindly replace ".e". This has some minor problems like making "-." parse as 0.0 instead of -0.0, and ".1.e1" is parsed as 1 instead of 0.1. Instead, replace the first "." that is followed by a non-digit with ".0". Since this has had several problems over the years, add some tests too. (Also, restore the original if-indentation style.) 2021-04-11 Mattias Engdegård Fix typo in cconv * lisp/emacs-lisp/cconv.el (cconv-convert): Typo. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): Add test case. 2021-04-11 Philipp Stephani Add another check for the required header . * configure.ac: Also check for . * src/emacs.c (SECCOMP_USABLE): Also check for . 2021-04-11 Philipp Stephani Also check for needed seccomp macros. It looks like these are not available on some versions of GNU/Linux, breaking the build. * configure.ac: Also check for needed seccomp macros. * src/emacs.c (SECCOMP_USABLE): New macro. (usage_message, main, standard_args): Use it. 2021-04-11 Eli Zaretskii Fix handling of mouse clicks on tab-bar buttons * src/xdisp.c (note_mouse_highlight): Don't attempt to highlight tab-bar buttons. (note_tab_bar_highlight): Function deleted: it had no effect on display of tab-bar buttons. (tab_bar_item_info): Mention all arguments in the commentary. (get_tab_bar_item): Don't pay attention to mouse-highlight information; instead, compare the button's index with the one recorded in f->last_tab_bar_item. (handle_tab_bar_click): Don't attempt to show tab-bar buttons in pressed or released state: that isn't supported. Determine whether to generate a tab-bar button click based on DOWN_P argument, not on mouse-highlight, which has no effect on tab-bar display. (Bug#47581) 2021-04-11 Stefan Monnier * lisp/net/shr.el (shr-insert-document): Explain why bidi-display-reordering 2021-04-11 Gregory Heytings João Távora Add new icomplete-vertical-mode * lisp/icomplete.el (icomplete-completions): Consider icomplete-vertical-mode. (icomplete-vertical-mode-minibuffer-map): New map. (icomplete--vertical-minibuffer-setup): New helper. (icomplete-vertical-mode): New minor mode. * doc/emacs/buffers.texi (Icomplete): Mention icomplete-vertical-mode. * etc/NEWS: Mention icomplete-vertical-mode 2021-04-11 Stefan Monnier * lisp/misearch.el (multi-isearch-read-buffers): Fix last change These are not buffers but buffer names. 2021-04-10 Philipp Stephani * src/emacs.c (read_full): Add a few assertions. 2021-04-10 Stefan Monnier * lisp/cus-dep.el: Use lexical-binding 2021-04-10 Stefan Monnier * lisp/misearch.el: Use lexical-binding (multi-isearch-read-buffers, multi-isearch-read-files): Replace `add-to-list` with `cl-pushnew` for use on a local variable. 2021-04-10 Philipp Stephani * src/emacs.c (load_seccomp): Add a useful assertion. * src/emacs.c (load_seccomp): Fix condition. 2021-04-10 Stefan Monnier * lisp/ps-bdf.el: Use lexical-binding * lisp/informat.el: Use lexical-binding * lisp/loadup.el: Use lexical-binding 2021-04-10 Stefan Monnier * lisp/jka-compr.el: Use lexical-binding Prefer #' to quote function names. 2021-04-10 Philipp Stephani * etc/NEWS: Extend paragraph about &define form and backtracking 2021-04-10 Alan Mackenzie Convert CC Mode to lexical binding in Emacs lisp/progmodes/cc-align.el, lisp/progmodes/cc-awk.el, lisp/progmodes/cc-bytecomp.el, lisp/progmodes/cc-cmds.el, lisp/progmodes/cc-defs.el, lisp/progmodes/cc-engine.el, lisp/progmodes/cc-fonts.el, lisp/progmodes/cc-guess.el, lisp/progmodes/cc-langs.el, lisp/progmodes/cc-menus.el, lisp/progmodes/cc-mode.el, lisp/progmodes/cc-styles.el, lisp/progmodes/cc-subword.el, lisp/progmodes/cc-vars.el: Mark these files with a `lexical-binding' setting in line 1. lisp/progmodes/cc-align.el, lisp/progmodes/cc-engine.el, lisp/progmodes/cc-vars.el (c-syntactic-context, c-syntactic-element): Declare these as special variables. lisp/progmodes/cc-bytecomp.el (cc-bytecomp-debug-msg): prefix the parameter ARGS with a _, and remove an `ignore' call. lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Remove `kluge-start', an unused variable. (c-while-widening-to-decl-block): Add an extra parameter, which suppresses the generation of a setting of variable `where'. (c-defun-name-and-limits): Remove variable `where' from the function and use the new argument to the previous macro. lisp/progmodes/cc-engine.el (c-cache-to-parse-ps-state): Remove two unneeded variables, `last' and `intermediate'. lisp/progmodes/cc-fonts.el (c-font-lock-c++-using): Remove unused variable. lisp/progmodes/cc-langs.el (c-vsemi-status-unknown-p-fn): Replace the doc string with the more precise one from stand-alone CC Mode. lisp/progmodes/cc-styles.el (c-set-offset): Give the `ignored' parameter a leading _. 2021-04-10 Philipp Stephani Add a helper binary to create a basic Secure Computing filter. The binary uses the 'seccomp' helper library. The library isn't needed to load the generated Secure Computing filter. * configure.ac: Check for 'seccomp' header and library. * lib-src/seccomp-filter.c: New helper binary to generate a generic Secure Computing filter for GNU/Linux. * lib-src/Makefile.in (DONT_INSTALL): Add 'seccomp-filter' helper binary if possible. (all): Add Secure Computing filter file if possible. (seccomp-filter$(EXEEXT)): Compile helper binary. (seccomp-filter.bpf seccomp-filter.pfc): Generate filter files. * test/src/emacs-tests.el (emacs-tests/seccomp/allows-stdout) (emacs-tests/seccomp/forbids-subprocess): New unit tests. * test/Makefile.in (src/emacs-tests.log): Add dependency on the helper binary. 2021-04-10 Philipp Stephani * src/emacs.c (load_seccomp): Fix condition. 2021-04-10 Philipp Stephani Read file in a loop if necessary. This allows for short reads from 'emacs_read'. * src/emacs.c (read_full): New helper function. (load_seccomp): Use it. 2021-04-10 Philipp Stephani Add support for --seccomp command-line option. When passing this option on GNU/Linux, Emacs installs a Secure Computing kernel system call filter. See Bug#45198. * configure.ac: Check for seccomp header. * src/emacs.c (usage_message): Document --seccomp option. (emacs_seccomp): New wrapper for 'seccomp' syscall. (load_seccomp, maybe_load_seccomp): New helper functions. (main): Potentially load seccomp filters during startup. (standard_args): Add --seccomp option. * lisp/startup.el (command-line): Detect and ignore --seccomp option. * test/src/emacs-tests.el (emacs-tests/seccomp/absent-file) (emacs-tests/seccomp/empty-file) (emacs-tests/seccomp/file-too-large) (emacs-tests/seccomp/invalid-file-size): New unit tests. (emacs-tests--with-temp-file): New helper macro. * etc/NEWS: Document new --seccomp option. 2021-04-10 Philipp Stephani Edebug: Disable backtracking when hitting a &define keyword. Edebug doesn't deal well with backtracking out of definitions, see Bug#41988. Rather than trying to support this rare situation (e.g. by implementing a multipass parser), prevent it by adding an implicit gate. * lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Disable backtracking when hitting a &define keyword. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-duplicate-&define): New unit test. (edebug-tests--duplicate-&define): New helper macro. * doc/lispref/edebug.texi (Backtracking): Mention &define in the list of constructs that disable backtracking. * etc/NEWS: Document new behavior. 2021-04-10 Stefan Monnier * lisp/gnus/nnagent.el: Fix spurious empty line at BOB 2021-04-10 Stefan Monnier * lisp/edmacro.el: Use lexical-binding (edmacro-finish-edit, edmacro-parse-keys): Use `match-string`. 2021-04-10 Stefan Monnier * lisp/files-x.el: Use lexical-binding 2021-04-10 Stefan Monnier * lisp/ps-mule.el: Use lexical-binding (ps-mule-encode-header-string, ps-mule-begin-job): Use `pcase`. 2021-04-10 Gregory Heytings Autoload list-colors-display. * lisp/facemenu.el (list-colors-display): Autoload, it is mentioned in (info "(emacs)Colors for Faces"), and to be generally available. 2021-04-10 Michael Albinus Tramp: fix location of files on W32 * lisp/net/tramp.el: * lisp/net/tramp-sh.el: Use (eq system-type 'windows-nt) where appropriate. (tramp-completion-function-alist-ssh): Fix location of files on W32. 2021-04-10 Jim Porter (tiny change) Further fix of hostname completion on MS Windows * lisp/net/tramp.el (tramp-completion-file-name-regexp-simplified) (tramp-completion-file-name-regexp-separate): Fix W32 hostname/method completion for simplified and separate syntaxes (same as the previous change to default syntax). 2021-04-10 Eli Zaretskii Fix description of momentary message display * doc/emacs/mini.texi (Basic Minibuffer): Update the description of momentary message display while minibuffer is active. (Bug#47689) 2021-04-10 João Távora Fail earlier if stale Flymake report functions called If a Flymake backend calls a "stale" report function, flymake--handle-report might be called for a backend function that is no longer in the flymake--backend-state hash table. This patch makes that erroneous situation slightly more explicit. * lisp/progmodes/flymake.el (flymake--handle-report): Improve error reporting. 2021-04-10 Dmitry Gutov Don't stop when before space or closing paren * lisp/progmodes/elisp-mode.el (elisp-completion-at-point): Don't stop when before space or closing paren (bug#47665). 2021-04-09 Alan Mackenzie CC Mode: fix c-where-wrt-brace-construct to cope with class declarations Make the function correctly recognize a brace block preceded by an introductory line without a parameter list. * lisp/progmodes/cc-cmds.el (c-where-wrt-brace-contruct): Reintroduce the use of c-beginning-of-decl-1, which was removed some weeks ago, in place of a c-syntactic-skip-backward. Reformulate the code generally. 2021-04-09 Mattias Engdegård Fix condition-case optimiser bug * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't perform incorrect optimisations when a condition-case variable shadows another lexical variable. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases): New test case. 2021-04-09 Mattias Engdegård Better compiler warning tests These changes allow all bytecomp-tests to be run interactively. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--with-warning-test) (bytecomp--define-warning-file-test): Interpret any space in the pattern as arbitrary whitespace to tolerate line breaks. Don't abuse the expected-failure mechanism when checking for the expected absence of a warning. (bytecomp/*.el): Rewrite patterns to work with line breaks in the middle. 2021-04-09 Mattias Engdegård Clean up bytecomp-tests.el Now all test cases are run with both lexical and dynamic binding where applicable, comparing interpreted against compiled results. Previously, almost all tests were only run with dynamic binding which was definitely not intended. * test/lisp/emacs-lisp/bytecomp-tests.el (byte-opt-testsuite-arith-data): Rename to bytecomp-tests--test-cases. (bytecomp-check-1, bytecomp-explain-1, bytecomp-tests) (bytecomp-lexbind-tests, bytecomp-lexbind-check-1) (bytecomp-lexbind-explain-1): Remove. (bytecomp-tests--eval-interpreted, bytecomp-tests--eval-compiled) (bytecomp-tests-lexbind, bytecomp-tests-dynbind) (bytecomp-tests--test-cases-lexbind-only): New. 2021-04-09 Stefan Kangas Make refer-every into obsolete alias for seq-every-p * lisp/textmodes/refer.el (refer-every): Make into obsolete function alias for seq-every-p. Update single caller. 2021-04-09 Stefan Kangas Remove redundant #' before lambda in ibuf-*.el * lisp/ibuf-ext.el (ibuffer-included-in-filters-p) (ibuffer-included-in-filter-p-1, ibuffer-do-kill-lines) (ibuffer-jump-to-buffer, ibuffer-mark-on-buffer) (ibuffer-mark-by-name-regexp, ibuffer-mark-by-mode-regexp) (ibuffer-mark-by-content-regexp, ibuffer-mark-by-mode) (ibuffer-mark-modified-buffers, ibuffer-mark-unsaved-buffers) (ibuffer-mark-dissociated-buffers, ibuffer-mark-help-buffers) (ibuffer-mark-compressed-file-buffers, ibuffer-mark-old-buffers) (ibuffer-mark-special-buffers, ibuffer-mark-read-only-buffers) (ibuffer-mark-dired-buffers, ibuffer-do-occur): * lisp/ibuf-macs.el (ibuffer-save-marks, define-ibuffer-sorter) (define-ibuffer-op): Remove redundant #' before lambda. 2021-04-09 Stefan Kangas Don't preserve window-line in tabulated-list-print * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Don't try to preserve window-line. (Bug#42747) 2021-04-09 Stefan Kangas Use lexical-binding in winner.el * lisp/winner.el: Use lexical-binding. Remove redundant :group args. (winner-set, winner-mode-map): Quote function symbols as such. 2021-04-09 Stefan Monnier Merge branch 'vhdl-mode-lexbind' into trunk 2021-04-09 Stefan Kangas Use lexical-binding in cmuscheme.el * lisp/cmuscheme.el: Use lexical-binding. Doc fixes. Remove redundant :group args. Quote function symbols as such. 2021-04-09 Stefan Kangas * lisp/progmodes/cmacexp.el: Use lexical-binding. 2021-04-09 Stefan Kangas Use lexical-binding in foldout.el * lisp/foldout.el: Use lexical-binding. Doc and formatting fixes. Quote function symbols as such. 2021-04-09 Stefan Kangas Use lexical-binding in loadhist.el and add tests * lisp/loadhist.el: Use lexical-binding. * test/lisp/loadhist-tests.el: New file. 2021-04-09 Mattias Engdegård Self-TCO in `condition-case` error handlers * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Recognise `condition-case` handlers as being in the tail position. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Extend test. 2021-04-09 Jim Porter (tiny change) Fix hostname completion on MS Windows * lisp/net/tramp.el (tramp-completion-file-name-regexp-default): Handle volume letter being added to paths for file name completion on W32 systems. This fixes hostname (and method) autocomplete on W32. 2021-04-09 Stefan Monnier * test/lisp/shadowfile-tests.el: Fix recent test failures (shadow--tests-cleanup): `shadow-hashtable` is now a hash table (duh!). 2021-04-09 Stefan Monnier * lisp/progmodes/vhdl-mode.el: Use lexical-binding Use #' to quote function names to get better compiler diagnostics. Wrap some lines to avoid arguments "hidden" in positions that are easy to misread. Prefix unused arguments with a semi-colon to silence compiler warnings. Fix a few comments that used ;;; even though they were not headings. (vhdl-emacs-21): Delete variable. Replace all uses with (not (featurep 'xemacs)) instead since `vhdl-mode` has been incompatible with Emacs<21 for more than 10 years already. (vhdl-prepare-search-1): Add Edebug declaration. (vhdl-prepare-search-2): Add Edebug declaration and use `with-syntax-table`. (vhdl-visit-file): Add Edebug and indentation declaration. Move the bulk of the code to a function for easier debugging. (vhdl--visit-file): New function extracted from `vhdl-visit-file`. Be careful not to modify syntax tables in unrelated buffers. (vhdl-speedbar-refresh): Remove unused var `pos`. (vhdl-backward-sexp): Remove unused var `last-forward`. (vhdl-electric-tab, vhdl-minibuffer-tab, vhdl-line-expand): Rename arg to avoid conflict with the `prefix-arg` global variable. (vhdl-align-region-1): Remove unused var `indent`. (vhdl-character-to-event): Actually give a body to that poor function. (vhdl-template-context): Remove unused vars `entity-exists` and `string`. (vhdl-template-group): Remove unused var `start`. (vhdl-template-argument-list): Remove unused var `start`. (vhdl-port-paste-context-clause): Remove unused var `margin`. (vhdl-port-paste-testbench): Remove unused var `source-buffer`. (vhdl-hs-minor-mode): Declare function `hs-hide-all`. (vhdl-get-hierarchy): Rename arguments `ent-alist`, `conf-alist`, and `conf-key` and bind those dynamically scoped var via `let` instead since arguments can't be dynamically scoped. (vhdl-speedbar-insert-hierarchy, vhdl-compose-configuration-architecture): Same thing with arguments `ent-alist` and `conf-alist`. (vhdl-cache-version): Declare variable. (speedbar-expand-line, speedbar-edit-line): Declare functions. (vhdl-speedbar-update-current-unit): Declare before first use. (vhdl-compose-new-component): Remove unused var `project`. (lazy-lock-minimum-size): Declare variable. (vhdl-submit-bug-report): Declare variable `reporter-prompt-for-summary-p`. 2021-04-09 Stefan Kangas Revert "Load all generic-x.el modes unconditionally" This reverts commit 0161c9df6edc02db6bd8871b00df522dd0699157. 2021-04-09 Stefan Monnier * lisp/shadowfile.el: Use lexical-binding Delete redundant `:group` args. (shadow-hashtable): Make it an actual hash-table. (shadow-shadows-of, shadow-invalidate-hashtable): Adjust accordingly. (shadow-insert-var): Strength-reduce `eval` to `symbol-value`. (shadow--save-buffers-kill-emacs): New function extracted from `shadow-save-buffers-kill-emacs`. (shadow-save-buffers-kill-emacs): Use it and use `save-buffers-kill-emacs`. (shadow-initialize, shadowfile-unload-function): Use `advice-add/remove` rather than override `save-buffers-kill-emacs` with `defalias`. 2021-04-09 Stefan Kangas Remove redundant #' before lambda in {calendar,erc,mh-e}/*.el * lisp/calendar/icalendar.el (icalendar--get-most-recent-observance): * lisp/calendar/parse-time.el (parse-time-rules): * lisp/erc/erc-dcc.el (pcomplete/erc-mode/DCC): * lisp/erc/erc-track.el (erc-modified-channels-display): * lisp/erc/erc.el (erc-toggle-debug-irc-protocol) (erc-cmd-IGNORE, erc-cmd-JOIN, erc-default-server-handler) (erc-banlist-update): * lisp/mh-e/mh-search.el (mh-search, mh-mairix-convert-to-sop*) (mh-index-create-sequences): * lisp/mh-e/mh-thread.el (mh-toggle-threads, mh-thread-generate) (mh-thread-prune-containers, mh-thread-sort-containers): * lisp/mh-e/mh-utils.el (mh-sub-folders): Remove redundant #' before lambda. 2021-04-08 Gregory Heytings Terminate isearch when point has moved to another buffer * lisp/isearch.el (isearch-post-command-hook): Terminate isearch when the command just executed has moved point to another buffer. https://lists.gnu.org/archive/html/emacs-devel/2021-04/msg00309.html 2021-04-08 Gregory Heytings User option to move to another match when changing direction in isearch. * lisp/isearch.el (isearch-direction-change-changes-match): New user option (bug#47599). (isearch-repeat): Use the new option. (isearch-repeat-forward, isearch-repeat-backward): Adapt to the new option. * etc/NEWS: Mention the new user option. * doc/emacs/search.texi: Document the new user option. 2021-04-08 Juri Linkov * lisp/repeat.el (repeat-post-hook): Check for prefix-arg. This is instead of checking for a list of argument-related commands that set prefix-arg anyway. 2021-04-08 Juri Linkov * lisp/repeat.el (repeat-post-hook): Skip repeating in minibuffer (bug#47566). (repeat-map): Add docstring. 2021-04-08 Stefan Monnier * lisp/progmodes/vhdl-mode.el: Use progress-reporter This was actually prompted by a backward compatibility problem (because of the use of Emacs-27's `time-convert`). The new code seems to work fine in Emacs-25. It also fixes a minor bug that made the echo area messages of `vhdl-indent-region` compete with those of `indent-region`. (vhdl-progress-info): Delete variable. (vhdl--progress-reporter): New var to replace it. (vhdl-update-progress-info): Delete function. (vhdl-indent-line): Call progress-reporter-update instead. (vhdl-indent-region): Make it an obsolete alias of `indent-region`. Change all users. (vhdl-align-region-groups, vhdl-align-region, vhdl-fix-case-region-1): Use `make-progress-reporter` and `progress-reporter-update`. 2021-04-08 Stefan Monnier * lisp/array.el: Use lexical-binding 2021-04-08 Michael Albinus * doc/misc/tramp.texi (Frequently Asked Questions): New item about recentf. 2021-04-08 Michael Albinus Revert use of powershell in Tramp, there are collateral damages * lisp/net/tramp-sh.el (tramp-methods) : Fix quoting for MS Windows. (tramp-connection-properties): Don't set "encoding-shell". (tramp-actions-before-shell): Remove `tramp-no-job-control-regexp'. (tramp-maybe-open-connection): Revert changes for "encoding-shell". * lisp/net/tramp.el (tramp-no-job-control-regexp): Remove. 2021-04-07 Alan Third Remove hardcoded gcc version * configure.ac: Use 'find' to find the brew installed libgccjit libs instead of a hardcoded path. 2021-04-07 Juri Linkov Don't set isearch-success in isearch-wrap functions * lisp/comint.el (comint-history-isearch-wrap): * lisp/simple.el (minibuffer-history-isearch-wrap): Don't set isearch-success to t, so isearch-repeat won't skip the beginning of the wrapped match with (forward-char (if isearch-forward 1 -1)). 2021-04-07 Eli Zaretskii Fix crash on MS-Windows caused by recent changes * src/pdumper.c (dump_do_dump_relocation): Don't use expand-file-name, as this crashes on MS-Windows. Use file_access_p instead of emacs_fopen. 2021-04-07 Andrea Corallo Improve some docstring in comp.el * lisp/emacs-lisp/comp.el (comp--native-compile) (batch-native-compile, batch-byte-native-compile-for-bootstrap): Improve docstring. 2021-04-07 Glenn Morris Merge from origin/emacs-27 2f5f30671a (origin/emacs-27) Fix broken links in autorevert.el 673c02f6d0 * lisp/international/ja-dic-cnv.el (skkdic-convert): Doc fix. 2021-04-07 Glenn Morris Merge from origin/emacs-27 3ec93bb7c2 Improve doc strings in replace.el 2021-04-07 Stefan Kangas Clarify obsoletion messages for easy-menu-{add,remove} * lisp/emacs-lisp/easymenu.el (easy-menu-remove, easy-menu-add): Clarify obsoletion messages. 2021-04-07 Stefan Kangas Update whois-server-tld * lisp/net/net-utils.el (whois-server-tld): Update and add some missing entries. 2021-04-07 Andrea Corallo Move gitlab-ci native-comp tests into '/test/infra/gitlab-ci.yml' * .gitlab-ci.yml: Fix incorrect b8d3ae78c5 merge. * test/infra/gitlab-ci.yml (test-native-bootstrap-speed0) (test-native-bootstrap-speed1, test-native-bootstrap-speed2): Move from .gitlab-ci.yml. 2021-04-07 Mattias Engdegård Fix mistakes in bytecomp-tests * test/lisp/emacs-lisp/bytecomp-tests.el (byte-opt-testsuite-arith-data): Fix typos and avoid errors that made the tests less powerful than intended. 2021-04-07 Alan Third Fix install with NS app bundle * configure.ac: Set up CFLAGS and LDFLAGS to find a Homebrew installation of libgccjit. * Makefile.in (ELN_DESTDIR): Set to the app bundle resource dir when required. (install-eln): macOS install doesn't support the -D flag, so make the directories separately. 2021-04-07 Andrea Corallo Makefile.in (BIN_DESTDIR, src): Fix 'BIN_DESTDIR' on MacOS. 2021-04-07 Dmitry Gutov Add explicit support for C-g or ESC ESC ESC after keymap prompt * lisp/progmodes/project.el (project-switch-project): Add explicit support for C-g or ESC ESC ESC after keymap prompt (bug#47620). 2021-04-07 Dario Gjorgjevski Allow complex key bindings in project-switch-project * lisp/progmodes/project.el (project-switch-project): Replace read-event with an overriding local map and read-key-sequence to allow for complex key bindings to be read (bug#47620). 2021-04-06 Stefan Monnier * lisp/find-file.el: Make the commands oblivious to mouse/non-mouse (ff-find-other-file): Add `event` argument. (ff-find-other-file-other-window): Rename from `ff-mouse-find-other-file-other-window` and use this new argument. (ff-mouse-find-other-file, ff-mouse-find-other-file-other-window): Make them obsolete aliases. (ff-upcase-p): Remove unused `start` and `end` arguments and simplify accordingly. 2021-04-06 Stefan Monnier * lisp/find-file.el: Use lexical-binding Remove unused `:group` args. Prefer #' to quote function. (ff-special-constructs, ff-find-the-other-file, ff-get-file-name) (ff-list-replace-env-vars, ff-cc-hh-converter): Use `match-string`. (modula2-other-file-alist): Tighten regexps. (ff-get-other-file, ff-find-other-file): Use dynamic scoping. (ff-find-the-other-file): Minor simplification. (ff-other-file-name): Delete unused function. (ff-string-match): Don't let-bind `case-fold-search` if not needed. (ff-basename): Make it an obsolete alias for `file-name-nondirectory`. (ff-switch-file): Minor simplification. (ff-list-replace-env-vars): Use [:alnum:]. (ff-upcase-p): Use [:upper:] (ff-cc-hh-converter): Use [:upper:] and [:lower:]. 2021-04-06 Andrea Corallo * .gitlab-ci.yml: Move native-comp tests into 'slow' stage. 2021-04-06 Juri Linkov * lisp/isearch.el (isearch-wrap-pause): New defcustom (bug#47599). (isearch-repeat): Use it. (isearch-search): Don't ding when isearch-wrap-pause is no-ding. 2021-04-06 Andrea Corallo * src/pdumper.c (dump_do_dump_relocation): Use `expand-file-name'. 2021-04-06 Stefan Monnier * lisp/progmodes/ps-mode.el: Use lexical-binding And prefer #' to quote function names. 2021-04-06 Damien Cassou Fix broken links in autorevert.el * lisp/autorevert.el (global-auto-revert-non-file-buffers): Fix broken links. (Bug#47621) 2021-04-06 Michael Albinus Fix Bug#47601 in Tramp * lisp/net/tramp-sh.el (tramp-sh-file-name-handler-alist): Use `tramp-handle-file-newer-than-file-p'. (Bug#47601) (tramp-sh-handle-file-newer-than-file-p, tramp-run-test2): Remove. 2021-04-06 Stefan Monnier * lisp/msb.el: Use lexical-binding Remove redundant `:group` args. (msb--add-to-menu): Strength-reduce `eval` to `symbol-value` and use `push`. (msb--create-sort-item): Strength-reduce `eval` to `symbol-value`. (msb-menu-bar-update-buffers): Replace `(lambda...) with a proper closure. 2021-04-06 Stefan Monnier * lisp/hippie-exp.el: Use lexical-binding Remove redundant `:group` args. (make-hippie-expand-function): Turn it into a function returning a closure. (try-expand-all-abbrevs): Strength-reduce `eval` to `symbol-value` and use `abbrev-table-p` rather than `vectorp`. 2021-04-05 Stefan Monnier * lisp/comint.el: Fix understickiness of non-comint properties When a third party package adds properties to the prompt they don't necessarily want to be `read-nonsticky` (e.g. for the `cursor-intangible` property), so replace the catchall `rear-nonsticky t` with an actual list of the properties that we want to be `rear-nonsticky`. (comint-send-input, comint-output-filter): Don't mark all properties as non-sticky. 2021-04-05 Juri Linkov * lisp/tab-bar.el: Add repeat-map keymaps. * lisp/tab-bar.el (tab-bar-switch-repeat-map): New keymap used for 'tab-next' and 'tab-previous'. (tab-bar-move-repeat-map): New keymap used for 'tab-move'. https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg01103.html 2021-04-05 Juri Linkov * lisp/repeat.el (repeat-keep-prefix): New defcustom. * lisp/repeat.el (repeat-map): New autoloaded global variable. (repeat-post-hook): Use 'repeat-map' when non-nil and reset it to nil afterwards. (repeat-post-hook): Keep the current prefix when 'repeat-keep-prefix' is non-nil. * lisp/window.el (other-window-repeat-map): Add "O" that sets 'repeat-map' to 'other-window-repeat-map' before calling '(other-window -1)'. https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg01387.html 2021-04-05 Juri Linkov * lisp/repeat.el (repeat-post-hook): Fix key lookup. * lisp/repeat.el (repeat-post-hook): Rename let-bound repeat-map to rep-map. Define let-bound prefix-command-p. Use lookup-key with this-single-command-keys instead of last-command-event. Don't show message when typing prefix keys. https://lists.gnu.org/archive/html/emacs-devel/2021-04/msg00083.html 2021-04-05 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-05 Andrea Corallo Introduce `comp-file-preloaded-p' * src/comp.c (syms_of_comp): Define `comp-file-preloaded-p'. (Fcomp_el_to_eln_filename): Account for `comp-file-preloaded-p'. 2021-04-05 Michael Albinus Use powershell for Tramp on MS Windows * lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options): Nil on MS Windows. (tramp-connection-properties): Add "encoding-shell". (tramp-maybe-open-connection): Use it. Change exit handling. (tramp-actions-before-shell): Add `tramp-no-job-control-regexp'. * lisp/net/tramp.el (tramp-methods): Adapt docstring. (tramp-no-job-control-regexp): New defcustom. (tramp-get-debug-buffer): Set coding system. 2021-04-05 Dario Gjorgjevski Do not search the global keymap in project--keymap-prompt * lisp/progmodes/project.el: (project--keymap-prompt) Pass project--keymap-prompt as a list to where-is-internal so that the global keymap is not searched at all (bug#47501). 2021-04-05 Lin Sun Don't call `image-toggle-display-text' when toggling *lisp/image-mode.el (image-mode-to-text): Do not call the image-toggle-display-text twice when toggle image display (bug#47521). 2021-04-05 Utkarsh Singh (tiny change) Fix cd to directories called "eshell" in eshell * lisp/eshell/em-script.el (eshell-script-initialize): Allow changing directory to directories called "eshell" (bug#47547). 2021-04-05 Glenn Morris * lisp/international/ja-dic-cnv.el (skkdic-convert): Doc fix. 2021-04-05 Stefan Kangas Remove redundant #' before lambda in calc/*.el * lisp/calc/calc-alg.el (math-defsimplify): * lisp/calc/calc-ext.el (math-defintegral, math-defintegral-2): * lisp/calc/calc-prog.el (math-do-arg-check): Remove redundant #' before lambda. 2021-04-05 Stefan Kangas * lisp/shadowfile.el (cl-lib): Revert removing require. * lisp/pcomplete.el: Remove aliases commented out for 20 years. 2021-04-05 Stefan Kangas Remove local uniquify functions in favour of seq-uniq * lisp/emacs-lisp/seq.el (seq-uniq): Add autoload cookie. * lisp/pcomplete.el: (pcomplete-uniquify-list): Use seq-uniq. * lisp/eshell/esh-util.el (eshell-uniqify-list) (eshell-uniquify-list): * lisp/nxml/rng-util.el (rng-uniquify-equal): * lisp/progmodes/idlwave.el (idlwave-uniquify): * lisp/textmodes/artist.el (artist-uniq): Make into obsolete function aliases for seq-uniq. Update callers. * lisp/nxml/rng-util.el (rng-uniquify-eq): Make obsolete in favor of seq-uniq. Update callers. 2021-04-05 Stefan Kangas Obsolete local set difference functions in favor of seq-difference * lisp/emacs-lisp/seq.el (seq-difference): Add autoload cookie. * lisp/gnus/gnus-range.el (gnus-set-difference): * lisp/gnus/spam.el (spam-set-difference): Make obsolete in favor of seq-difference. Update callers. 2021-04-05 Stefan Kangas Obsolete local list functions in shadowfile.el * lisp/shadowfile.el (shadow-union): Make obsolete in favour of cl-union. Update callers. (shadow-find): Make into obsolete function alias for seq-find. Update callers. (cl-lib): Remove unnecessary require. 2021-04-05 Michael Albinus * test/infra/Dockerfile.emba (emacs-gnustep): Do not run parallel make. 2021-04-05 Stefan Kangas Remove code commented out since 1995 from ediff-util.el * lisp/vc/ediff-util.el (ediff-load-hook): Remove code commented out since the file was added in 1995. 2021-04-05 Stefan Kangas Replace local intersection functions with seq-intersection * lisp/doc-view.el (doc-view-intersection): * lisp/gnus/gnus-range.el (gnus-intersection): * lisp/htmlfontify.el (hfy-interq): * lisp/loadhist.el (file-set-intersect): * lisp/mail/smtpmail.el (smtpmail-intersection): Make obsolete in favor of seq-intersection. Update all callers. * lisp/url/url-dav.el (url-intersection): Redefine as obsolete function alias for seq-intersection. Update callers. * lisp/mpc.el (mpc-intersection, mpc-cmd-list, mpc-reorder): Use seq-intersection. 2021-04-05 Stefan Kangas Make ediff-copy-list alias obsolete * lisp/vc/ediff-mult.el (ediff-intersect-directories) (ediff-get-directory-files-under-revision): Don't use above obsolete alias. * lisp/vc/ediff-util.el (ediff-copy-list): Make alias obsolete. 2021-04-05 Stefan Kangas * lisp/htmlfontify.el (hfy-triplet-regex): Use rx. * etc/NEWS: Add entry for new SVG icons in customize. 2021-04-05 Glenn Morris * doc/misc/Makefile.in (echo-sources): Make it not the first target. 2021-04-05 Glenn Morris Regenerate texi-from-org if ox-texinfo.el changes * doc/misc/Makefile.in (top_srcdir): New, set by configure. (emacs): Set load-prefer-newer. (org_template): Make output depend on ox-texinfo.el. 2021-04-05 Glenn Morris Regenerate semantic grammars if the generating code changes * admin/grammars/Makefile.in (emacs): Set load-prefer-newer. (grammar_bovine, grammar_wisent): New variables. (${bovinedir}/%-by.el, ${bovinedir}/scm-by.el) (${cedetdir}/semantic/%-wy.el, ${wisentdir}/%-wy.el) (${wisentdir}/javat-wy.el, ${cedetdir}/srecode/srt-wy.el): Depend on the source file for the generating function. * lisp/cedet/semantic/bovine/grammar.el (bovine--make-parser-1): * lisp/cedet/semantic/wisent/grammar.el (wisent--make-parser-1): Force generation of the output file. The previous "is the output newer than the input" failed to account for changes in the generation code itself. Force so we can let make figure it out. 2021-04-04 Andrea Corallo * src/comp.c (fixup_eln_load_path): Fix parameter name. * src/comp.c (Fcomp_el_to_eln_filename): Fix doc. * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Clean-up all .eln dirs. 2021-04-04 Andrea Corallo Output native compiled preloaded files into the 'preloaded' subfolder * src/comp.c (fixup_eln_load_path): Account the fact that the file can be dumped in the 'preloaded' subfolder. * lisp/loadup.el: Likewise. * src/lread.c (maybe_swap_for_eln1): New function. (maybe_swap_for_eln): Handle 'preloaded' subfolder. * src/Makefile.in (LISP_PRELOADED): Export preloaded files. 2021-04-04 Harald Jörg cperl-mode: Don't reposition the window when writing messages * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Avoid printing messages while point is off-screen (Bug#47549). 2021-04-04 Lars Ingebrigtsen Clarify the doc string of insert-image * lisp/image.el (insert-image): Mention the effect of a whitespace image (bug#47240). 2021-04-04 Lars Ingebrigtsen Work around issue with (setq Man-notify-method 'aggressive) * lisp/man.el (Man-bgproc-sentinel): Check that the window still exists before trying to select it (bug#38164). 2021-04-04 Glenn Morris Make maintainer-clean delete generated files, as per standards These are generated files that were once kept in the repository. When they were removed from the repository, as a half-way measure they were only deleted by "extraclean", but this was never necessary and was not a proper use of that rule. * admin/charsets/Makefile.in (gen-clean): New phony target. (maintainer-clean): Delete generated files. * admin/grammars/Makefile.in (gen-clean): New phony target. (maintainer-clean): Delete generated files. * admin/unidata/Makefile.in (gen-clean): New phony target. (maintainer-clean): Delete generated files. * leim/Makefile.in (gen-clean): New phony target. (maintainer-clean): Delete generated files. * GNUmakefile: Doc fix. 2021-04-04 Alan Third Work around librsvg bug (bug#47074) Librsvg <= 2.40 has restrictions on how certain numbers can be run together in path elements which do not match the SVG spec. * etc/images/checkbox-mixed.svg: * etc/images/checked.svg: * etc/images/radio-checked.svg: * etc/images/unchecked.svg: Separate problem numbers. * etc/images/radio-mixed.svg: Separate problem numbers and color and font-weight data. 2021-04-04 Michael Albinus * test/lisp/filenotify-tests.el (file-notify--test-timeout): Change timing on emba. 2021-04-04 Eli Zaretskii Fix MS-Windows build * src/image.c: (init_svg_functions) [WINDOWSNT]: Define and load rsvg_handle_set_stylesheet from the DLL for librsvg > 2.48. (lookup_image): Use xmalloc. 2021-04-04 Stefan Kangas Use lexical-binding in hilit-chg.el * lisp/hilit-chg.el: Use lexical-binding. Remove redundant :group args. Doc and formatting fixes. (highlight-changes-mode, highlight-changes-visible-mode): Use keyword arguments. (hilit-chg-display-changes, highlight-changes-rotate-faces): Quote function symbols as such. (hilit-x, hilit-y, hilit-e): Define variables on top-level to silence the byte-compiler. (highlight-markup-buffers): Improve message format. 2021-04-04 Stefan Kangas Remove redundant #' before lambda in tests * test/lisp/electric-tests.el (save-electric-modes) (inhibit-in-mismatched-string-inside-ruby-comments) (inhibit-in-mismatched-string-inside-c-comments, js-mode-braces) (js-mode-braces-with-layout) (js-mode-braces-with-layout-and-indent, autowrapping-1) (autowrapping-2, autowrapping-3, autowrapping-4, autowrapping-5) (autowrapping-6, autowrapping-7): * test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-relative-to-project-root): * test/src/thread-tests.el (threads-signal-early) (threads-signal-main-thread): Remove redundant #' before lambda. 2021-04-04 Alan Third Fix warnings in image.c * src/image.c (svg_load_image): Fix types and move declaration of 'css' to the top of the function. 2021-04-04 Eli Zaretskii Fix unexec compilation * src/pdumper.c (thaw_hash_tables): Now conditioned by HAVE_PDUMPER. (init_pdumper_once): No-op unless HAVE_PDUMPER. Reported by Nikolay Kudryavtsev . 2021-04-04 Eli Zaretskii Fix recent changes regarding frame-scale-factor * src/frame.c (Fframe_scale_factor): Make more robust and avoid compiler warning while at that. Doc fix. 2021-04-04 İ. Göktuğ Kayaalp Fix build error in frame.h on non-NS * src/frame.h (FRAME_SCALE_FACTOR): Fix syntax of macro in previous change. 2021-04-04 Alan Third Make new SVG widgets match character height (bug#47074) * etc/images/checkbox-mixed.svg: * etc/images/checked.svg: * etc/images/radio-checked.svg: * etc/images/radio-mixed.svg: * etc/images/radio.svg: * etc/images/unchecked.svg: Use viewBox and set height to 1em. 2021-04-04 Alan Third Set CSS for SVG files * src/dispextern.h (struct image): Add font details required for the CSS. * src/image.c (free_image): Free the font family string. (search_image_cache): (uncache_image): Make image caching understand the font details. (lookup_image): Handle the font details when generating the image and looking up the cache. (svg_css_length_to_pixels): Handle 'em' when we know the font size. (svg_load_image): Generate the CSS and apply it to the SVG. (enum svg_keyword_index): (svg_format): (syms_of_image): Add ':css' attribute. * doc/lispref/display.texi (SVG Images): Add details of new svg image attributes. 2021-04-04 Alan Third Fix NSTRACE failure * src/nsterm.m ([EmacsSurface getContext]): Remove unneeded '@' symbol. 2021-04-04 Alan Third Implement frame-scale-factor * src/frame.c (Fframe_scale_factor): New function. (syms_of_frame): Add frame-scale-factor. * src/frame.h: Add FRAME_SCALE_FACTOR. * src/image.c: Move FRAME_SCALE_FACTOR to frame.h. 2021-04-03 Stefan Kangas Add SVG icons for customize buffers * etc/images/checkbox-mixed.svg: * etc/images/checked.svg: * etc/images/down.svg: * etc/images/left.svg: * etc/images/radio-checked.svg: * etc/images/radio-mixed.svg: * etc/images/radio.svg: * etc/images/right.svg: * etc/images/unchecked.svg: * etc/images/up.svg: New files from the Adwaita Icon Theme (made by the GNOME project). The background color was changed from gray to none to use the same colors as the current face instead. (Bug#47074) * etc/images/README: Add license information for the above new files. * lisp/wid-edit.el (widget-image-conversion): Prefer SVG if it exists. (radio-button): Rename radio buttons to "radio-checked" and "radio". These files did not exist before. 2021-04-03 Stefan Monnier * lisp/vcursor.el: Use lexical-binding Remove redundant `:group` args. (vcursor): Remove unused var declaration. 2021-04-03 Michael Albinus * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Fix code finding //DIRED//. 2021-04-03 Michael Albinus * test/lisp/filenotify-tests.el (file-notify--test-timeout): Change timing. 2021-04-03 Eli Zaretskii Improve doc strings in replace.el * lisp/replace.el (occur, list-matching-lines-prefix-face) (list-matching-lines-jump-to-current-line): Doc fixes. 2021-04-03 Stefan Kangas * lisp/pixel-scroll.el: Use lexical-binding. 2021-04-03 Stefan Kangas Replace two functions with seq-subseq * lisp/emacs-lisp/seq.el (seq-subseq): Add autoload cookie. * lisp/eshell/esh-util.el (eshell-sublist): Redefine using seq-subseq and make obsolete. Update callers. * lisp/wid-edit.el (widget-sublist): Redefine as obsolete function alias for seq-subseq. Update callers. 2021-04-03 Stefan Kangas Remove redundant #' before lambda in eshell/*.el * lisp/eshell/em-dirs.el (eshell-dirs-initialize): * lisp/eshell/em-pred.el (eshell-predicate-alist) (eshell-modifier-alist): * lisp/eshell/em-script.el (eshell-script-initialize): * lisp/eshell/eshell.el (eshell-command): Remove redundant #' before lambda. 2021-04-03 Stefan Monnier * lisp/progmodes/simula.el: Use lexical-binding (simula-tab-always-indent): Mark as obsolete. (simula-mode-map): Don't bind TAB. (simula-indent-command): Mark as obsolete. (hilit-set-mode-patterns): Remove obsolete support for hilit19. (simula-mode-syntax-table): Move initialization code into the declaration. 2021-04-03 Stefan Kangas Use lexical-binding in recentf.el * lisp/recentf.el: Use lexical-binding. Doc fix. (recentf-save-file): Strength reduce 'eval' to 'symbol-value'. (recentf-trunc-list): Make into obsolete function alias for 'seq-take'. Update callers. (recentf-show-file-shortcuts-flag): Doc fix. (recentf-menu-elements, recentf-make-menu-items) (recentf-make-menu-item, recentf-dialog-mode-map) (recentf-dialog, recentf-open-files-item) (recentf-open-files-items, recentf-open-files) (recentf-load-list): Quote function symbols as such. (recentf-relative-filter, recentf-file-name-nondir): Remove redundant #' before lambda. 2021-04-03 Stefan Kangas Remove references to very old versions of Emacs from eintr * doc/lispintro/emacs-lisp-intro.texi (Making Errors) (Void Function, Void Variable, Wrong Type of Argument, debug) (debug-on-entry): Remove commented out references to Emacs 20 or earlier. * doc/lispintro/emacs-lisp-intro.texi (what-line) (print-elements-of-list, debug, X Axis Tic Marks): Don't call version 22 or earlier a "recent" version of Emacs. 2021-04-02 Stefan Kangas * doc/misc/woman.texi (Introduction): Remove reference to old Emacs. 2021-04-02 Stefan Kangas Remove redundant #' before lambda in textmodes/*.el * lisp/textmodes/fill.el: * lisp/textmodes/ispell.el (ispell-find-enchant-dictionaries): * lisp/textmodes/rst.el (rst-re, rst-Ado-position) (rst-Hdr-member-ado, rst-mode-abbrev-table) (rst-preferred-adornments, rst-new-preferred-hdr) (rst-classify-adornment, rst-ttl-at-point, rst-hdr-hierarchy) (rst-all-ttls-with-level, rst-get-previous-hdr) (rst-adjust-region, rst-preferred-bullets, rst-find-begs) (rst-straighten-bullets-region, rst-stn-containing-point) (rst-toc-update, rst-forward-section, rst-shift-region) (rst-enumerate-region, rst-bullet-list-region) (rst-line-block-region, rst-forward-indented-block): Remove redundant #' before lambda. 2021-04-02 Stefan Monnier * doc/misc/reftex.texi: Remove outdated instructions (Building and Installing, Installation with make) (Installation by Hand, Loading @RefTeX{}): Delete sections. (Entering @RefTeX{} Mode): Merge into its parent. (AUCTeX): Point to GNU ELPA for installation. (Problems and Work-Arounds): Remove XEmacs-specific item. 2021-04-02 Arash Esbati Delete XEmacs-only definition * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Remove XEmacs compat code. 2021-04-02 Juri Linkov * lisp/progmodes/xref.el: Change xref-file-name-display and xref-match face. * lisp/progmodes/xref.el (xref-file-name-display): Change the default value to 'project-relative' (bug#47012). (xref-match): Inherit from 'match'. 2021-04-02 Dmitry Gutov Fix C-u project-find-regexp's default dir * lisp/progmodes/project.el (project-find-regexp): Default read-directory-name to the current default-directory when called with C-u (bug#47012). 2021-04-02 Stefan Monnier * lisp/progmodes/cfengine.el: Use lexical-binding 2021-04-01 Stefan Monnier * lisp/progmodes/dcl-mode.el: Clarify what is meant by DCL 2021-04-01 Andrea Corallo * src/comp.h (unload_comp_unit): Define for vanilla build (warning removal). 2021-04-01 Stefan Kangas Remove redundant #' before lambda in {mail,net,url}/*.el * lisp/mail/mail-extr.el: * lisp/mail/rmail.el (rmail-start-mail): * lisp/net/gnutls.el (gnutls-boot-parameters): * lisp/net/imap.el (imap-starttls-open): * lisp/net/pop3.el (pop3-list): * lisp/url/url-cookie.el (url-cookie-save-interval): * lisp/url/url-history.el (url-history-save-interval) (url-history-track): * lisp/url/url-mailto.el (url-mailto): Remove redundant #' before lambda. 2021-04-01 Andrea Corallo Issue a warning when eln look-up fails due to missing .el source file. * lisp/emacs-lisp/comp.el (comp-warning-on-missing-source): New customize. * src/lread.c (maybe_swap_for_eln): Issue a warning when eln look-up fails due to missing .el source file. * src/comp.c (syms_of_comp): Define 'Qcomp_warning_on_missing_source'. 2021-04-01 Stefan Kangas Use lexical-binding in executable.el and add tests * lisp/progmodes/executable.el: Use lexical-binding. * test/lisp/progmodes/executable-tests.el: New file. 2021-04-01 Stefan Kangas Remove redundant #' before lambda in progmodes/*.el * lisp/progmodes/cc-styles.el (c-set-offset): * lisp/progmodes/ebnf-yac.el (ebnf-yac-token-table): * lisp/progmodes/ebnf2ps.el (ebnf-format-float, ebnf-map-name): * lisp/progmodes/grep.el (lgrep, rgrep-default-command): * lisp/progmodes/inf-lisp.el: * lisp/progmodes/octave.el (octave-lookfor): * lisp/progmodes/python.el (python-pdbtrack-tracking-finish): Remove redundant #' before lambda. 2021-04-01 Stefan Kangas Remove redundant #' before lambda in international/*.el * lisp/international/characters.el: (use-cjk-char-width-table, update-glyphless-char-display): * lisp/international/fontset.el (build-default-fontset-data) (generate-fontset-menu): * lisp/international/latin1-disp.el (latin1-display-reset): * lisp/international/mule-cmds.el (select-safe-coding-system-interactively): * lisp/international/mule-diag.el (sort-listed-character-sets) (font-show-log): * lisp/international/mule.el (char-displayable-p): * lisp/international/quail.el (quail-keyboard-layout-type) (quail-update-translation, quail-find-key): * lisp/international/titdic-cnv.el (tsang-quick-converter) (ziranma-converter): Remove redundant #' before lambda. 2021-04-01 Eli Zaretskii GNUmakefile: Fix last change. 2021-04-01 Eli Zaretskii Fix 'extraclean' targets * GNUmakefile: Add description of 'extraclean'. * Makefile.in (extraclean_dirs): Add lwlib. * lwlib/Makefile.in (clean mostlyclean extraclean): Add 'extraclean' target. * lisp/Makefile.in (extraclean): Remove ${loaddefs}, not just ${LOADDEFS}. Delete all backup and autosave files. 2021-04-01 Stefan Kangas Use lexical-binding in epg-config.el and add tests * lisp/epg-config.el: Use lexical-binding. (epg-find-configuration): Improve error message. * test/lisp/epg-config-tests.el: New file. 2021-04-01 Stefan Kangas Use lexical-binding in isearchb.el * lisp/isearchb.el: Use lexical-binding. Remove redundant :group args. 2021-04-01 Stefan Kangas Remove redundant #' before lambda in Gnus * lisp/gnus/gnus-group.el (gnus-group-list-cached) (gnus-group-list-dormant, gnus-group-list-ticked): * lisp/gnus/gnus-registry.el (gnus-registry-remove-extra-data): * lisp/gnus/gnus-score.el (gnus-score-edit-file-at-point): * lisp/gnus/gnus-sum.el (gnus-fetch-headers): * lisp/gnus/mm-partial.el (mm-inline-partial): * lisp/gnus/nnselect.el (nnselect-uncompress-artlist) (numbers-by-group, nnselect-request-expire-articles) (nnselect-request-update-info, nnselect-request-thread): * lisp/gnus/nnvirtual.el (nnvirtual-request-expire-articles): * lisp/gnus/spam-stat.el (spam-stat-score-buffer): Remove redundant #' before lambda. 2021-04-01 Stefan Kangas Use lexical-binding in avoid.el * lisp/avoid.el: Use lexical-binding. Remove redundant :group args. (mouse-avoidance-fancy): Quote function symbol as such. 2021-04-01 Stefan Kangas Use emacs-version instead of obsolete version variables * lisp/calendar/icalendar.el (icalendar-version): * lisp/dframe.el (dframe-version): * lisp/emacs-lisp/checkdoc.el (checkdoc-version): * lisp/emulation/edt.el (edt-version): * lisp/international/mule.el (mule-version): * lisp/linum.el (linum-version): * lisp/play/bubbles.el (bubbles-version): * lisp/textmodes/remember.el (remember-version): * lisp/url/url-vars.el (url-version): * lisp/woman.el (woman-version): Use emacs-version instead of obsolete version variables. 2021-04-01 Stefan Monnier * lisp/strokes.el: Use lexical-binding. Remove redundant `:group` args (strokes-char-table): Move initialization into declaration. 2021-04-01 Stefan Monnier * lisp/forms.el: Use lexical-binding. Remove redundant `:group` args (forms--process-format-list, forms--debug): Strength-reduce `eval` to `symbol-value`. 2021-04-01 Stefan Monnier * lisp/progmodes/dcl-mode.el: Use lexical-binding (dcl-guess-option-value, dcl-save-local-variable) (dcl-save-nondefault-options): Strength-reduce `eval` to `symbol-value`. 2021-03-31 Eli Zaretskii * src/comp.c (Fcomp__compile_ctxt_to_file): Fix debug level 1. 2021-03-31 Michael Albinus * lisp/net/tramp-sh.el (tramp-sh-gio-monitor-process-filter): Make assumption for emba. 2021-03-31 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-final): Clean-up temporary file. 2021-03-31 Andrea Corallo Rework native compilation `comp-debug' (bug#46495) * lisp/emacs-lisp/comp.el (comp-debug): Update docstring and move default on Windows systems from 0 to 1. * src/comp.c (Fcomp__compile_ctxt_to_file): Tweak debug levels. 2021-03-31 Andrea Corallo Do not defer compilation when bytecode is explicitly requested (bug#46617) * src/comp.c (maybe_defer_native_compilation): Check if the file is registered in 'V_comp_no_native_file_h'. (syms_of_comp): 'V_comp_no_native_file_h' new global. * src/lread.c (maybe_swap_for_eln): Register files in 'V_comp_no_native_file_h'. * lisp/faces.el (tty-run-terminal-initialization): Do not explicitly load .elc file to not exclude .eln being loaded in place. 2021-03-31 Stefan Kangas Use lexical-binding in progmodes/inf-lisp.el * lisp/progmodes/inf-lisp.el: Use lexical-binding. Doc fixes. (inferior-lisp-mode-map, lisp-mode-map) (inferior-lisp-install-letter-bindings): Quote function symbols as such. (inferior-lisp-menu, lisp-compile-string, lisp-eval-string) (lisp-show-variable-documentation): Doc fixes. 2021-03-31 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp * lisp/emacs-lisp/comp.el (comp-debug): Fix docstring. 2021-03-31 Stefan Kangas Use lexical-binding in scroll-all.el * lisp/scroll-all.el: Use lexical-binding. (scroll-all-scroll-down-all, scroll-all-scroll-up-all) (scroll-all-page-down-all, scroll-all-page-up-all) (scroll-all-beginning-of-buffer-all) (scroll-all-end-of-buffer-all): Doc fixes. 2021-03-31 Stefan Kangas * lisp/dynamic-setting.el: Use lexical-binding. 2021-03-31 Luke Lee Fix incorrect regular expression for more general text replacements. * lisp/progmodes/hideif.el (hif-evaluate-macro): fix regexp to trim off leading/trailing spaces, but not within. 2021-03-31 Stefan Kangas Use lexical-binding in chistory.el * lisp/chistory.el: Use lexical-binding. Remove redundant :group args. (command-history-mode-map): Quote function symbols as such. 2021-03-31 Stefan Kangas * lisp/ebuff-menu.el: Use lexical-binding. 2021-03-31 Stefan Kangas Use lexical-binding in double.el * lisp/double.el: Use lexical-binding. Remove redundant :group args. 2021-03-31 Stefan Kangas Use lexical-binding in dirtrack.el * lisp/dirtrack.el: Use lexical-binding. Remove redundant group args. 2021-03-31 Stefan Kangas * lisp/progmodes/cwarn.el: Use lexical-binding. 2021-03-30 Stefan Kangas Remove redundant #' before lambda in cedet * lisp/cedet/mode-local.el (mode-local-map-mode-buffers) (mode-local--activate-bindings, mode-local--deactivate-bindings) (setq-mode-local, describe-mode-local-bindings-in-mode): * lisp/cedet/semantic.el (semantic-repeat-parse-whole-stream): * lisp/cedet/semantic/bovine/c.el (semantic-c-describe-environment): * lisp/cedet/semantic/db-ebrowse.el (semanticdb-ebrowse-get-ebrowse-structure): * lisp/cedet/semantic/db-global.el (semanticdb-enable-gnu-global-databases): * lisp/cedet/semantic/edit.el (semantic-changes-in-region): * lisp/cedet/semantic/fw.el (semantic-install-function-overrides): * lisp/cedet/semantic/grammar.el (semantic-grammar-ASSOC) (semantic-grammar-tag-symbols, semantic-grammar-keywords) (semantic--grammar-macros-regexp-1) (semantic-format-tag-summarize): * lisp/cedet/semantic/idle.el (semantic-idle-core-handler) (semantic-idle-work-core-handler): * lisp/cedet/semantic/imenu.el (semantic-imenu-semanticdb-hook): * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map) (semantic-java-doc-setup): * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-save-table) (semantic-lex-spp-macros): * lisp/cedet/semantic/lex.el (semantic-lex-map-symbols) (semantic-lex-keywords, semantic-lex-types): * lisp/cedet/semantic/util-modes.el (semantic-toggle-minor-mode-globally): * lisp/cedet/semantic/wisent/comp.el (wisent-defcontext) (wisent-automaton-lisp-form): * lisp/cedet/semantic/wisent/grammar.el (wisent-grammar-assocs) (wisent-grammar-terminals): Remove redundant #' before lambda. 2021-03-30 Stefan Kangas Delete Emacs 19 compat code in foldout.el * lisp/foldout.el (foldout-hide-flag): (foldout-show-flag): Delete Emacs 19 compat code and make obsolete. (foldout-exit-fold): Don't use above obsolete variable. 2021-03-30 Stefan Kangas Use lexical-binding in lpr.el and add rudimentary tests * lisp/lpr.el: Use lexical-binding. Remove redundant :group args. (print-region-function): Declare MS-Windows specific function. * test/lisp/lpr-tests.el: New file. 2021-03-30 Stefan Kangas Use lexical-binding in echistory.el * lisp/echistory.el: Use lexical-binding. (electric-history-map): Quote function symbols as such. (Electric-history-undefined): Use command substitutions. 2021-03-30 Stefan Kangas Delete empty "History" sections * lisp/bs.el: * lisp/calendar/timeclock.el: * lisp/cedet/semantic/bovine/grammar.el: * lisp/cedet/semantic/grammar.el: * lisp/cedet/semantic/wisent.el: * lisp/cedet/semantic/wisent/comp.el: * lisp/cedet/semantic/wisent/java-tags.el: * lisp/cedet/semantic/wisent/wisent.el: * lisp/erc/erc.el: * lisp/net/newst-treeview.el: * lisp/recentf.el: * lisp/ruler-mode.el: * lisp/textmodes/remember.el: * lisp/thumbs.el: * lisp/tree-widget.el: * lisp/vc/vc-hg.el: Delete empty "History" sections. * lisp/cedet/semantic/grammar.el (semantic-grammar-header-template): Don't add "History" section to generated file. 2021-03-30 Stefan Kangas Use lexical-binding in follow.el * lisp/follow.el: Use lexical-binding. (follow-mode-map, follow-debug-message): Quote function symbols as such. (follow-pos-visible-in-window-p): Remove unused variable 'last'. (follow-move-to-window-line): Remove unused variable 'middle-window'. 2021-03-30 Mattias Engdegard lisp/progmodes/verilog-mode.el internal code cleanup. * lisp/progmodes/verilog-mode.el (verilog-at-close-struct-p): Internal code cleanup. 2021-03-30 Arash Esbati * lisp/textmodes/reftex-auc.el: Improve the external function declarations (LaTeX-add-bibitems): Move declaration closer to the others. Fix those declarations to refer to the right file. 2021-03-30 Dmitry Gutov Provide information to show icons with Elisp completions * lisp/progmodes/elisp-mode.el (elisp--company-kind): New function. (elisp-completion-at-point): Use it. And a couple of anonymous :company-kind functions too. 2021-03-30 Stefan Monnier lisp/progmodes/verilog-mode.el: Prepare for lexical-binding. * lisp/progmodes/verilog-mode.el: Activate lexical-binding. Insert newlines to avoid some situations where arguments were easy to misunderstand. (verilog-set-compile-command): Strength-reduce `eval` to `symbol-value`. (verilog-error-regexp-add-emacs): Replace `mapcar` => `mapc` since the result is not used. (verilog-surelint-off): Remove always-nil var `dir`. (verilog-do-indent): Minor simplification of the code. (verilog-pred): Delete var. It was always nil. (verilog-flag): Delete var; pass the corresponding data via explicit arguments instead. (verilog-keyword-completion): Use `dolist`. (verilog-completion-response): Rename to `verilog--complete-with-action`. Change calling convention to match that of `complete-with-action`. Use `complete-with-action` instead when available. Adjust all callers. (verilog-completion, verilog-comp-defun): Change arg names so they don't collide with dynamically scoped vars, and let-bind `verilog-str` explicitly instead. Use `with-current-buffer`. (verilog-batch-execute-func): Use `with-current-buffer`. (verilog-complete-word): Don't convert the completion list into a completion alist, since lists work just as well. (verilog-showscopes): Use `with-current-buffer`. (verilog-symbol-detick, verilog-symbol-detick-text) (verilog-signals-matching-enum): Strength-reduce `eval` to `symbol-value`. (verilog--insert-indent): Rename from `verilog--insert-indent`. Add `indent-pt` argument. (verilog-insert-indent): New macro wrapper to provide the old calling convention. (verilog-auto-assign-modport, verilog-auto-inout-modport): Remove always-nil var `direction-re`. (verilog--auto-inst-first): Rename from `verilog-auto-inst-first`. Add `indent-pt` argument. (verilog-auto-inst-port): Adjust call accordingly. 2021-03-30 Stefan Monnier * lisp/progmodes/verilog-mode.el: Use #' where appropriate. 2021-03-30 Wilson Snyder lisp/progmodes/verilog-mode.el: Fix indentation of enum. * lisp/progmodes/verilog-mode.el (verilog-at-close-struct-p): Fix indentation of enum with multiple objects. Reported by punzik. (#1716). 2021-03-29 Stefan Monnier * lisp/completion.el: Activate lexical-binding Remove redundant `:group` arguments. (list-all-completions-1): Merge into `list-all-completions` and then delete. (list-all-completions-by-hash-bucket-1): Use `push`. Merge into `list-all-completions-by-hash-bucket` and then delete. (completions-list-return-value): Delete variable, not used any more. 2021-03-29 Stefan Monnier * lisp/woman.el: Activate lexical-binding. Require `cl-lib` (woman-mode, woman2-roff-buffer): Use `cl-letf`. (woman-request): Move declaration before first use. (woman0-macro): Rename arg to not shadow the dynamically scoped var. (woman-set-arg): Strength-reduce `eval` to `symbol-value`. 2021-03-29 Juri Linkov * lisp/progmodes/project.el (project-regexp-history-variable): New variable. (project--read-regexp): Use it as HISTORY arg of 'read-regexp' with 'grep-regexp-history' default (bug#47012). 2021-03-29 Stefan Monnier * lisp/allout*.el: Use lexical-binding * lisp/allout.el: Activate lexical-binding. (allout-setup-menubar): Delete "complex no-op" function. (allout-mode): Delete call to it. (allout-hotspot-key-handler): Delete XEmacs-only code. (allout-copy-exposed-to-buffer): Remove always-nil var `start-list`. * lisp/allout-widgets.el: Activate lexical-binding. (allout-item-icon-keymap): Use `ignore`. (allout-widgets-exposure-change-processor): Use `cl-callf` instead of relying on dynamic binding to apply some code to two different variables. 2021-03-29 Alan Mackenzie Fix an infinite loop in C++ Mode redisplay. This was bug #47191. * lisp/progmodes/cc-defs.el (c-forward-syntactic-ws, c-backward-syntactic-ws): When point is on the wrong side of a supplied search limit, leave point unmoved rather than setting it to that limit. * lisp/progmodes/cc-engine.el (c-forward-name): After scanning a template argument list (which is not itself subject to a search limit) recalculate the search limit starting from the end point, since these argument lists can legitimately be long. At each of the scanning loops, check point hasn't gone past the limit. 2021-03-29 Glenn Morris Merge from origin/emacs-27 8a92030f6a (origin/emacs-27) Fix hang in autorevert-tests.el # Conflicts: # test/lisp/autorevert-tests.el 2021-03-29 Glenn Morris Merge from origin/emacs-27 bcc4cc3362 Doc fixes for 'face-foreground' and 'face-background'. bf6442fafd ; * admin/make-tarball.txt: Minor addition to the Web page... 38b127d32e * admin/admin.el (set-version): Handle malformed NEWS markup. 0d7e2a993e admin.el fix for bug#47394 fdec444758 ; * etc/NEWS: Fix typo. 1e6ca2765f ; * admin/make-tarball.txt: Another minor addition. # Conflicts: # etc/NEWS 2021-03-29 Michael Albinus Some Tramp doc clarifications * doc/misc/tramp.texi (Remote shell setup): Explain meaning of `tramp-sh-extra-args' for bash. (Frequently Asked Questions): New item about unloading / reloading Tramp. 2021-03-29 Eli Zaretskii Protect add-variable-watcher from incorrect usage * src/data.c (Fadd_variable_watcher): Avoid crashes if SYMBOL isn't. (Bug#47462) 2021-03-29 Michael Albinus Optimize test jobs for emba * test/infra/gitlab-ci.yml (.test-template): Do not run fast and normal test jobs when scheduled. 2021-03-29 Stefan Kangas Doc fixes in follow.el * lisp/follow.el: (follow-pos-visible-in-window-p, follow-adjust-window) (follow-prev-buffer, follow-internal-force-redisplay): Minor doc fixes. 2021-03-29 Michael Albinus * test/infra/gitlab-ci.yml (test-filenotify-gio): Use *.log for make_params. 2021-03-28 Michael Albinus Fix hang in autorevert-tests.el * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert): Apply more robust check, whether file notification is used. 2021-03-28 Lars Ingebrigtsen Fix a dbus.el byte compilation warning * lisp/net/dbus.el (dbus-register-monitor): Silence a byte-compilation warning on systems without dbus. 2021-03-28 Lars Ingebrigtsen Use a 64KB page size for pdump * src/pdumper.c (dump_get_page_size): Use a 64KB page size on all architectures, as this many vary between systems (bug#47125). 2021-03-28 Michael Albinus * admin/notes/emba: Explain job types and artifacts. 2021-03-28 Lars Ingebrigtsen Revert "Clarify dired-do-shell-command doc string" This reverts commit cf607c262e15c873961fdfcced254e6f8e82f8d7. The doc string already explains this. (cherry picked from commit 01cf0eb75786834b7a0ee5be34be53f6e8e14c11) 2021-03-28 Lars Ingebrigtsen Revert "Clarify dired-do-shell-command doc string" This reverts commit cf607c262e15c873961fdfcced254e6f8e82f8d7. The doc string already explains this. 2021-03-28 Lars Ingebrigtsen Clarify dired-do-shell-command doc string * lisp/dired-aux.el (dired-do-shell-command): Mention what happens to FILE-LIST (bug#47432). (cherry picked from commit cf607c262e15c873961fdfcced254e6f8e82f8d7) 2021-03-28 Lars Ingebrigtsen Clarify dired-do-shell-command doc string * lisp/dired-aux.el (dired-do-shell-command): Mention what happens to FILE-LIST (bug#47432). 2021-03-28 Eli Zaretskii Doc fixes for 'face-foreground' and 'face-background'. * lisp/faces.el (face-foreground, face-background): Clarify how a face specified in INHERIT arg is used. (Bug#47437) 2021-03-28 pillule (tiny change) compilation-goto-locus does not handle right display-buffer * lisp/progmodes/compile.el (compilation-goto-locus): Pop to the source buffer if the match buffer is the selected window (bug#47414). 2021-03-28 Lars Ingebrigtsen Clarify the doc string of plist-memeber and plist-put * src/fns.c (Fplist_member): (Fplist_put): Clarify what comparison function is used for PROP (bug#47426) and don't claim that PROP has to be a symbol. 2021-03-28 Eli Zaretskii Avoid errors in pulse.el for some face customizations * lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Make sure 'face-background' always returns a color name. Suggested by Ingo Lohmar in bug#47437. 2021-03-28 Michael Albinus Make artifacts working on emba (hopefully) * test/infra/gitlab-ci.yml (.job-template): Use proper docker name. (.test-template): Adapt artifacts path. 2021-03-27 Basil L. Contovounesios Demote read-extended-command-predicate errors For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-03/msg00682.html * lisp/simple.el (read-extended-command): Demote errors when calling read-extended-command-predicate so M-x completion doesn't break. 2021-03-27 Stefan Monnier * lisp/wdired.el (wdired--self-insert): Fix thinko 2021-03-27 Stefan Monnier * lisp/wdired.el: Fix minor regressions and simplify a bit Use `wdired--current-column` more consistently to avoid mayhem when it doesn't return the same result as `current-column`. (wdired-get-filename): Fix the unprocessed case. (wdired-finish-edit): Don't force processing all the lines. (wdired--col-perm): Remove, redundant with `wdired--perm-beg`. (wdired-change-to-wdired-mode): Don't error in empty directory. (wdired--set-permission-bounds): Set `wdired--perm-beg` when we can't find permissions. Move `wdired--perm-beg` 1 char further (like `wdired--col-perm`). Use `wdired--current-column`. (wdired--point-at-perms-p): Fix when `wdired--perm-beg` is nil. (wdired--self-insert): Lookup the keymap to know command to call. (wdired--before-change-fn): Just use `point` instead of `beg`. Use `with-silent-modifications` here rather than in each of the `wdired--preprocess-*` functions. (wdired--preprocess-files): Presume we're at BOL and within `with-silent-modifications`. Fix application of `read-only`. (wdired-abort-changes): Don't use `with-silent-modifications` since we're really modifying the buffer. (wdired--preprocess-symlinks): Presume we're at BOL and within `with-silent-modifications`. (wdired--preprocess-perms): Presume we're at BOL and within `with-silent-modifications`. (wdired-set-bit): Add `char` argument. Use `wdired--current-column`. Copy previous text properties rather than duplicating the code of `wdired--preprocess-perms`. (wdired-toggle-bit): Delegate to `wdired-set-bit`. 2021-03-27 Arthur Miller * lisp/wdired.el: Apply text properties lazily Entering wdired was taking time proportional to the size of the directory, making it inconvenient to quickly enter wdired just to rename one or two files in a large directory. (wdired-mode-map): Rebind `self-insert-command`. (wdired--perm-beg, wdired--perm-end): New vars. (wdired--col-perm, wdired--old-content, wdired--old-point) (wdired--old-marks): Rename vars, using "--" rather than "-". All users updated. (wdired--before-change-fn): New function. (wdired-change-to-wdired-mode): Use it `before-change-functions` instead of eagerly putting the various text properties here. (wdired--set-permission-bounds, wdired--current-column) (wdired--point-at-perms-p, wdired--line-preprocessed-p): New auxiliary functions. (wdired--self-insert): New command. (wdired--preprocess-files, wdired--preprocess-symlinks) (wdired--preprocess-perms): Add "--" to the name. Make it operate only on the current line. Use `with-silent-modifications`. (wdired-abort-changes): Use `with-silent-modifications`. 2021-03-27 Michael Albinus Keep *.log files on emba * test/infra/gitlab-ci.yml (.test-template): New template. (test-fast-inotify, test-lisp-inotify, test-lisp-net-inotify) (test-filenotify-gio, test-gnustep, test-all-inotify): Use it. 2021-03-27 Eli Zaretskii Fix lisp/files-tests on MS-Windows * test/lisp/files-tests.el (files-colon-path) (files-tests-bug-21454): Adapt to MS-DOS/Windows, where parse-colon-path needs and absolute file name with a drive letter. (files-tests-file-name-non-special-get-file-buffer): Forcefully delete the file's buffer if it happens to exist. 2021-03-27 Matt Armstrong File unlock errors now issue warnings (Bug#46397) The primary idea is to allow `kill-buffer' and `kill-emacs' to complete even if Emacs has trouble unlocking the buffer's file. * lisp/userlock.el (userlock--handle-unlock-error): New function, call `display-error'. * src/filelock.c (unlock_file_body): New function, do what 'unlock_file' used to. (unlock_file_handle_error): New function, call `userlock--handle-unlock-error' with the captured error. (unlock_file): Handle `file-error' conditions by calling the handler defined above. * test/src/filelock-tests.el (filelock-tests-kill-buffer-spoiled): (filelock-tests-unlock-spoiled): Modify to test new behavior. 2021-03-27 Matt Armstrong Add test coverage for src/filelock.c (Bug#46397) * test/src/filelock-tests.el: New file. 2021-03-27 Kenichi Handa Fix encoding by ISO-2022-JP * src/coding.c (encode_coding): Reset the CODING_MODE_LAST_BLOCK flag for all iterations but the last one. (Bug#46933) 2021-03-26 Michael Albinus Improve remote file notifications * lisp/net/tramp-sh.el (tramp-get-remote-gio-file-monitor): Remove it. (tramp-sh-handle-file-notify-add-watch): Do not call it. (tramp-sh-gio-monitor-process-filter): Read monitor name. * test/lisp/filenotify-tests.el (file-notify--test-read-event) (file-notify--test-timeout): Change timings. (file-notify--test-monitor): Read remote monitor name more reliably. (file-notify-test02-rm-watch): Retrieve remote monitor name in time. (file-notify--test-event-actions): New defun. (file-notify--test-with-actions-explainer): Use it. (file-notify--test-with-actions-check): Use it. Dump traces in case of debug. (file-notify--test-with-actions): Don't stop while debugging. (file-notify-test03-events, file-notify-test04-autorevert) (file-notify-test05-file-validity) (file-notify-test07-many-events, file-notify-test08-backup) (file-notify-test09-watched-file-in-watched-dir): Adapt tests. 2021-03-26 Basil L. Contovounesios Address some --without-x byte-compilation warnings These came to light in the contexts of bug#29713 and bug#47234. * lisp/emulation/edt-mapper.el (edt-xserver): * lisp/emulation/edt.el (edt-xserver): * lisp/gnus/gnus-util.el (gnus-rescale-image): * lisp/gnus/nnimap.el (nnimap-map-port): * lisp/term/w32-win.el: * lisp/image.el (image--get-imagemagick-and-warn): * lisp/frame.el (frame-notice-user-settings): Declare functions that are known to be present at runtime in GUI builds. (make-frame-on-display): Signal more informative error when called interactively in a non-GUI build (bug#29713). * lisp/international/mule-diag.el (describe-font): * lisp/org/org-macs.el (org--string-from-props): Pacify warnings about unknown functions in non-GUI bilds. * lisp/mh-e/mh-mime.el (mh-small-image-p): Avoid eliminating fboundp check in non-GUI builds, to pacify unused lexical variable warning. * lisp/net/newst-plainview.el (newsticker--plainview-tool-bar-map): * lisp/net/newst-treeview.el (newsticker-treeview-tool-bar-map): Declare tool-bar-map as a special variable in non-GUI builds. 2021-03-26 Stefan Monnier * lisp/obsolete/tpu-extras.el: Avoid defadvice (tpu--respect-bottom-scroll-margin): New function, extracted from `newline`s defadvice. (newline, newline-and-indent, do-auto-fill): Delete defadvice. (tpu-set-scroll-margins): Use advice-add instead of `ad-enable-advice`+`ad-activate`. Use an explicit arg instead of `called-interactively-p`. 2021-03-26 Stefan Monnier * lisp/mh-e/: Take advice-remove of the newly enabled lexical-binding * lisp/mh-e/mh-mime.el (mh-mm-inline-message): * lisp/mh-e/mh-inc.el (mh-inc-spool-generator): Replace `(lambda...) with a proper closure. 2021-03-26 Andrea Corallo Prevent stale eln loading checking file timestamp before load (bug#46617) * src/lread.c (maybe_swap_for_eln): Add file timestamp check. (openp): Update 'maybe_swap_for_eln' call sites. 2021-03-25 Glenn Morris * admin/admin.el (set-version): Handle malformed NEWS markup. 2021-03-25 Glenn Morris admin.el fix for bug#47394 * admin/admin.el (manual-html-fix-index-2): Handle Texinfo 6.7. 2021-03-25 Spencer Baugh Assert not local-variable-p after setq in let_default binding Breaking this is a likely way to break this test, so this saves a bit of time in debugging. * test/src/data-tests.el (data-tests--let-buffer-local): Add assertion to test. 2021-03-25 Spencer Baugh Add a test for let-binding unwinding Bindings in other buffers are not un-set when we unwind a let-binding which set the default value. There doesn't seem to be an existing test which covers this, so here's one. * test/src/data-tests.el (data-tests--let-buffer-local-no-unwind-other-buffers): Add test for let-binding unwinding behavior 2021-03-25 Stefan Monnier * lisp/htmlfontify.el: Fix misuses of `nconc` (hfy-face-to-style-i): `this` is not known to be fresh. (hfy--size-to-int): Rename from `hfy--size-to-int` and return just the integer without wrapping it in a list. (hfy-flatten-style): Avoid O(n²) problems. Use `float`. 2021-03-25 Bill Wohler Remove XEmacs support in lexical-binding * lisp/mh-e/mh-alias.el (mh-alias-insert-file): Remove reference to remove-specifier. 2021-03-25 Mark A. Hershberger Update rnc to use Open Document's Relax-NG schema to version 1.3 * etc/schema/OpenDocument-schema-v1.3+libreoffice.rnc: * etc/schema/OpenDocument-schema-v1.3.rnc: New files. * etc/schema/schemas.xml: Use the LibreOffice Relax-NG files since they include a hack to support 1.2. rng source: https://raw.githubusercontent.com/freedesktop/libreoffice-core/master/ schema/libreoffice/OpenDocument-schema-v1.3%2Blibreoffice.rng translation to rnc with trang: trang -I rng -O rnc OpenDocument-schema-v1.3+libreoffice.rng \ OpenDocument-schema-v1.3+libreoffice.rnc 2021-03-25 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-25 Paul Eggert Merge from origin/emacs-27 291a421c2e * admin/make-tarball.txt: Improve and expand the instructi... 0e4795fc98 Fix preeditarea reporting wrong spot. 2021-03-25 Paul Eggert Merge from origin/emacs-27 deef5efafb ; * ChangeLog.3: Update with the log of the last change. bd991e3c9b Fix frame-inner-height in non-GUI builds 2021-03-25 Eli Zaretskii * admin/make-tarball.txt: Improve and expand the instructions. 2021-03-25 Amos Bird Fix preeditarea reporting wrong spot. This patch adjust the x position of preeditarea with both left fringe and left margin, which prevents IME preedit box (such as fcitx) from placing at the wrong position in GUI emacs. * src/xfns.c (xic_set_preeditarea): Adjust X for left margin width. (Bug#47377) 2021-03-25 Michael Albinus Adapt Tramp file notification support * lisp/net/tramp-integration.el (tramp-use-ssh-controlmaster-options): Declare it. * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch): Remove "gvfs-monitor-dir". (tramp-sh-gvfs-monitor-dir-process-filter) (tramp-get-remote-gvfs-monitor-dir): Remove. (tramp-get-remote-gio-file-monitor): Support also cygwin, and GFamDirectoryMonitor, GPollFileMonitor. 2021-03-25 Glenn Morris * doc/emacs/maintaining.texi (Managing Projects): Fixes and copyedits. 2021-03-25 Dmitry Gutov Fix typo * lisp/progmodes/project.el (project-remove-known-project): Fix typo (bug#47287). 2021-03-25 Theodor Thornhill Add command project-remove-known-project * etc/NEWS: Mention the new command. * lisp/progmodes/project.el (project--remove-from-project-list): Add new argument, report-message, used to signal various messages when removal has happened. * lisp/progmodes/project.el (project-remove-known-project): New command that removes the selected directory from the project-list-file. * lisp/progmodes/project.el (project-current): Add the report message. * doc/emacs/maintaining.texi: Add information about the new command to the manual. 2021-03-24 Stefan Monnier * list/progmodes/idl*.el: Use lexical-binding * lisp/progmodes/idlw-complete-structtag.el: Use lexical-binding. * lisp/progmodes/idlw-help.el: Use lexical-binding. Delete redundant `:group` arguments. (idlwave-query-class, idlwave-force-class-query, idlw-help-name) (idlw-help-kwd, idlw-help-link): Declare vars. (idlwave-highlight-linked-completions): Remove unused var `class`. (idlwave-help-find-in-doc-header): Remove unused var `header-re`. * lisp/progmodes/idlw-shell.el (idlwave-shell-input-mode-magic): Remove XEmacs-only code. (idlwave-shell-filter, idlwave-shell-scan-for-state): Use `functionp` since a function can also satisfy `listp`. (idlwave-shell--mouse-examine): Rename from `idlwave-shell-mouse-examine`. Make it a function, and simplify for Emacs≥22. Simplify calling convention since all callers always immediately `funcall`d the result. Update all callers. (idlwave-default-mouse-track-event-is-with-button): Use `always`. (idlwave-shell-filter-bp): Simplify a tiny bit. * lisp/progmodes/idlw-toolbar.el: Use lexical-binding. (idlwave-toolbar-add, idlwave-toolbar-remove) (idlwave-toolbar-add-everywhere, idlwave-toolbar-remove-everywhere) (idlwave-toolbar-toggle): Remove XEmacs-only code. * lisp/progmodes/idlwave.el: Use lexical-binding. (idlwave--dlet): New macro. (): Use it. (idlwave-keyword-abbrev): Turn it into a function. (idlwave-code-abbrev): Delete macro. (idlwave-mode-abbrev-table): Use `:enable-function` instead. (idlwave-with-special-syntax): Delete macro; use `with-syntax-table` instead in all callers. (idlwave-action-and-binding): Use `alist-get` and replace `(lambda...) with a proper closure. Change all callers to prefer passing a function in the `cmd` argument. (idlwave-fill-function): Delete constant var. Replace its uses with its value (the symbol `auto-fill-function`). (idlwave-mode): Set `normal-auto-fill-function` instead of the cumbersome use of `idlwave-fill-function`. Tighten a regexp. Don't set `imenu-create-index-function` to the value it should already have. (idlwave-auto-fill-mode): Make it an obsolete alias for `auto-fill-mode`. (idlwave-modify-abbrev): Rename from `idlwave-check-abbrev`. Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave--command-function): Rename from `idlwave-command-hook` and make it hold a function rather than an expression. (idlwave-command-hook, idlwave-modify-abbrev): Adjust accordingly. (idlwave-show-begin-check): Don't check `idlwave-quoted` since `:enable-function` did it for us already. (idlwave-do-action): Use `functionp` since a function can also satisfy `listp` (idlwave-new-sintern-type): Make it a macro, so we don't need to `declare-function` for the functions it defines. (idlwave--class-selector, idlwave--type-selector) (idlwave--method-selector, idlwave--super-classes): Rename those vars by adding the `idlwave--` prefix. Adjust all uses. (idlwave-complete-functions): Rename from `idlwave-complete-special`. (idlwave-call-special): Declare obsolete. Change all callers to use `run-hook-with-args-until-success` instead. (idlwave-complete-filename): Use `dlet`. (idlwave-rinfo-assq-any-class): Remove unused var `class`. (idlwave-determine-class-functions): Rename from `idlwave-determine-class-special`; fix docstring since the functions are called with only one argument. (idlwave--complete-after-success-function): Rename from `idlwave-complete-after-success-form` and make it hold a function. Adjust all users. (idlwave--complete-after-success-force-function): Rename from `idlwave-complete-after-success-form-force` and make it hold a function. Adjust all users. (idlwave-attach-classes): Remove always-t variable `do-dots`. (idlwave-local-value): Use `local-variable-p` and `buffer-local-value` to avoid `with-current-buffer`. (idlwave-default-choose-completion): Comment out (unused and calls a function that doesn't exist). (idlwave-shell-filter-sysvars): Remove unused vars `type`, `name`, and `class` (idlwave-fix-module-if-obj_new): Remove unused var `name`. (idlwave-fix-keywords): Bind `idlwave--super-classes` via `let` than via the function's argument. (idlwave-twin-class, idlwave-twin-name): Move before first use. (idlwave-study-twins): Remove stealth/redundant `type` variable. (idlwave-routine-entry-compare-twins): Remove unused var `type`. (idlwave-path-alist-add-flag): Avoid `add-to-list` on a local var. (idlwave-list-abbrevs): Simplify a tiny bit. 2021-03-24 Juri Linkov * lisp/tab-bar.el (tab-bar-tab-post-change-group-functions): New hook. (tab-bar-change-tab-group): Run it. (tab-bar-move-tab-to-group): New command for new hook. 2021-03-24 Alan Mackenzie Improve failure reporting in test/lisp/electric-tests.el In particular, on a failure, output the test's doc string to electric-tests.log, along with all the other failure information. Fixes bug #47320. * test/lisp/electric-tests.el (electric-pair-test-for) New parameter doc-string. On a test failure, output the doc-string parameter with message. (electric-pair-define-test-form): Set the new variable doc-string to the generated doc string, and pass this as argument to both ert-deftest and electric-pair-test-for. 2021-03-24 Stefan Monnier * lisp/auth-source-pass.el (auth-source): Silence spurious warning 2021-03-24 Lars Ingebrigtsen Fix previous format-prompt change: The default can be a symbol * lisp/minibuffer.el (format-prompt): The default can also be a symbol. 2021-03-24 Harald Jörg perl-mode: Fix regexps for fontification * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-fontify-declarations): New test to ensure consistency between perl-mode.el and cperl-mode.el (bug#47345). * lisp/progmodes/perl-mode.el (perl-font-lock-keywords-1): pick correct capture groups for "use Pack::Age;" Fontify all components of "Pack::Age", not just "Pack" (perl-font-lock-keywords-2): Use keyword-face for declarators 2021-03-24 Andrea Corallo Improve two native compiler related docstrings. * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): Improve docstring. * src/comp.c (comp-eln-load-path): Likewise. 2021-03-24 Lars Ingebrigtsen Revert "Remove font-lock toggle from font-lock-update" This reverts commit 23995414fec483287e7fb9c9a279483319f9fc54. The subject is under discussion. 2021-03-24 Paul W. Rankin Remove font-lock toggle from font-lock-update * lisp/font-lock.el (font-lock-update): Remove call to font-lock-unfontify-region and font-lock-mode toggle with ARG; this did not perform what original author intended 2021-03-24 Andrea Corallo * src/lread.c (maybe_swap_for_eln): Fix eln filename (bug#bug#47337). 2021-03-24 Dmitry Gutov xref.el: Keep Emacs 26 compatibility * lisp/progmodes/xref.el (xref--read-identifier) (xref-find-definitions, xref-find-definitions-other-window) (xref-find-definitions-other-frame, xref-find-references): Undo the latest change for Emacs 26 compatibility (bug#47286). 2021-03-24 Gabriel do Nascimento Ribeiro Add optional FORMAT argument to 'emacs-init-time' * lisp/time.el (emacs-init-time): Add optional FORMAT argument (bug#47306). 2021-03-24 Gabriel do Nascimento Ribeiro Replace "(default %s)" with 'format-prompt' * lisp/cmuscheme.el (scheme-load-file, scheme-compile-file): * lisp/comint.el (comint-get-source): * lisp/emulation/viper-cmd.el (viper-quote-region, viper-kill-buffer) (viper-query-replace, viper-read-string-with-history): * lisp/eshell/esh-mode.el (eshell-find-tag): * lisp/gnus/gnus-sum.el (gnus-articles-to-read) (gnus-summary-search-article-forward) (gnus-summary-search-article-backward): * lisp/international/mule-cmds.el (set-input-method, toggle-input-method) (describe-input-method, set-language-environment) (describe-language-environment): * lisp/mh-e/mh-gnus.el (mh-mml-minibuffer-read-disposition): * lisp/mh-e/mh-letter.el (mh-insert-letter): * lisp/mh-e/mh-mime.el (mh-display-with-external-viewer) (mh-mime-save-parts, mh-mh-forward-message) (mh-mml-query-cryptographic-method, mh-minibuffer-read-type): * lisp/mh-e/mh-seq.el (mh-read-seq, mh-read-range): * lisp/mh-e/mh-utils.el (mh-prompt-for-folder): * lisp/progmodes/etags.el (find-tag-tag): (find-tag-noselect, find-tag, find-tag-other-window) (find-tag-other-frame, find-tag-regexp): * lisp/progmodes/idlwave.el (idlwave-find-module): * lisp/progmodes/inf-lisp.el (lisp-load-file, lisp-compile-file): * lisp/progmodes/tcl.el (tcl-load-file, tcl-restart-with-file): * lisp/progmodes/xref.el (xref--read-identifier): (xref-find-definitions, xref-find-definitions-other-window) (xref-find-definitions-other-frame, xref-find-references): * lisp/ses.el (ses-read-printer): (ses-read-cell-printer, ses-read-column-printer) (ses-read-default-printer, ses-define-local-printer): * lisp/subr.el (read-number): * lisp/term.el (term-get-source): * src/minibuf.c (read-buffer): Remove prompt suffix and use 'format-prompt'. * lisp/minibuffer.el (format-prompt): Ignore DEFAULT empty strings (bug#47286). 2021-03-24 Lars Ingebrigtsen Fix problem with filling with a computed fill prefix * lisp/textmodes/fill.el (fill-region-as-paragraph): Fix problem when filling text with a computed fill prefix (bug#47338). 2021-03-24 Stefan Kangas Convert many more links to use HTTPS 2021-03-24 Lars Ingebrigtsen Move string-trim functions to subr.el * doc/lispref/strings.texi (Creating Strings): Document them. * lisp/faces.el: Don't require subr-x, because that leads to build errors. * lisp/subr.el (string-trim, string-trim-right) (string-trim-left): Move here from subr-x.el. * lisp/emacs-lisp/shortdoc.el (string): Adjust. 2021-03-24 Stefan Kangas Use lexical-binding in iimage.el * lisp/iimage.el: Use lexical-binding. Remove redundant :group args. 2021-03-24 Stefan Kangas * lisp/talk.el: Use lexical-binding. 2021-03-24 Stefan Kangas Use lexical-binding in two trivial org-mode files This change has already been made on org-mode's master branch. * lisp/org/org-install.el: * lisp/org/org-version.el: Use lexical-binding. 2021-03-24 Stefan Kangas * lisp/help-at-pt.el: Use lexical-binding. * lisp/progmodes/simula.el (hilit-set-mode-patterns): Use regexp-opt. * lisp/progmodes/modula2.el: Use lexical-binding. 2021-03-24 Stefan Kangas Use lexical-binding in view.el * lisp/view.el: Use lexical-binding. Remove redundant :group args. 2021-03-24 Stefan Kangas Delete some commented out defgroups * lisp/eshell/esh-opt.el: * lisp/international/ccl.el: * lisp/pcmpl-linux.el: * lisp/shell.el: * lisp/url/url-news.el: Delete some commented out defgroups. 2021-03-24 Stefan Kangas Doc fixes in view.el * lisp/view.el: (view-try-extend-at-buffer-end, kill-buffer-if-not-modified) (view-buffer, view-buffer-other-window, view-buffer-other-frame) (view-page-size-default, view-set-half-page-size-default) (view-really-at-end, view-end-message) (view-search-no-match-lines): Doc fixes. 2021-03-24 Stefan Kangas * lisp/master.el: Use lexical-binding. 2021-03-24 Stefan Kangas Use lexical-binding in ruler-mode.el * lisp/ruler-mode.el: Use lexical-binding. Remove redundant :group args. 2021-03-24 Stefan Monnier * lisp/progmodes/ebnf-*.el: Use lexical-binding * lisp/progmodes/ebnf-abn.el: * lisp/progmodes/ebnf-bnf.el: * lisp/progmodes/ebnf-dtd.el: * lisp/progmodes/ebnf-ebx.el: * lisp/progmodes/ebnf-iso.el: * lisp/progmodes/ebnf-otz.el: * lisp/progmodes/ebnf-yac.el: Enable lexical-binding. * lisp/progmodes/ebnf2ps.el (ebnf-apply-style1) (ebnf-insert-ebnf-prologue): Use lexical-binding. 2021-03-23 Stefan Monnier * lisp/mh-e: Enable lexical-binding in all the files * lisp/mh-e/mh-alias.el: Use lexical-binding. (mh-alias-insert-file): Completion tables can be mere lists of strings. * lisp/mh-e/mh-mime.el: Use lexical-binding. (mh-mm-inline-message): Remove always-nil var `visible-headers`. * lisp/mh-e/mh-search.el: Use lexical-binding. (mh-search-folder): Remove unused var `pick-folder`. * lisp/mh-e/mh-show.el: Use lexical-binding. (mh-display-msg): Remove always-nil var `visible-headers`. * lisp/mh-e/mh-utils.el: Use lexical-binding. (completion-root-regexp): Always declare var. * lisp/mh-e/mh-buffers.el: Use lexical-binding. * lisp/mh-e/mh-comp.el: Use lexical-binding. * lisp/mh-e/mh-folder.el: Use lexical-binding. * lisp/mh-e/mh-funcs.el: Use lexical-binding. * lisp/mh-e/mh-gnus.el: Use lexical-binding. * lisp/mh-e/mh-identity.el: Use lexical-binding. * lisp/mh-e/mh-inc.el: Use lexical-binding. * lisp/mh-e/mh-junk.el: Use lexical-binding. * lisp/mh-e/mh-letter.el: Use lexical-binding. * lisp/mh-e/mh-limit.el: Use lexical-binding. * lisp/mh-e/mh-print.el: Use lexical-binding. * lisp/mh-e/mh-scan.el: Use lexical-binding. * lisp/mh-e/mh-seq.el: Use lexical-binding. * lisp/mh-e/mh-speed.el: Use lexical-binding. * lisp/mh-e/mh-thread.el: Use lexical-binding. * lisp/mh-e/mh-tool-bar.el: Use lexical-binding. * lisp/mh-e/mh-xface.el: Use lexical-binding. 2021-03-23 Stefan Monnier * lisp/wdired.el: Fix typo in last change. Reported by Michael Heerdegen . (wdired-change-to-wdired-mode, wdired-change-to-dired-mode): The `(local FOO)` form takes an expression, so the var needs to be quoted. 2021-03-22 Lars Ingebrigtsen Mention `C-o' in the `RET' doc string * lisp/simple.el (newline-and-indent): Mention `C-o' in the doc string. 2021-03-22 Lars Ingebrigtsen Fix previous face.el change * lisp/faces.el (require): Fix compilation warning from previous face.el change. 2021-03-22 Juri Linkov * lisp/tab-bar.el (tab-bar-new-tab-group): Set default to t. (tab-bar-tabs, tab-bar-select-tab, tab-bar-new-tab-to): Use tab-bar--current-tab-make instead of tab-bar--current-tab. (tab-bar--tab): Add arg 'frame' to tab-bar--current-tab-find. (tab-bar--current-tab, tab-bar--current-tab-make): Move most of body from the former to the latter, thus reverting tab-bar--current-tab to its previous behavior. https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00959.html 2021-03-22 Lars Ingebrigtsen Use read-color in read-face-attribute for color attributes * lisp/faces.el (read-face-attribute): Use read-color when prompting for a color (bug#47316). 2021-03-22 Michael Albinus * lisp/files-x.el (connection-local-criteria-for-default-directory): Add optional argument APPLICATION. 2021-03-22 Stefan Kangas Remove unnecessary requires of rx * lisp/cedet/semantic/wisent/python.el (rx): * test/src/process-tests.el (rx): Remove unnecessary requires. 2021-03-22 Stefan Kangas Use lexical-binding in notifications.el * lisp/notifications.el: Use lexical-binding. (notifications-notify): Prefer 'push' to 'add-to-list'. 2021-03-21 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-lookup-eln): Add autoload cookie. * lisp/emacs-lisp/comp.el (comp-lookup-eln): Add new function. 2021-03-21 Andrea Corallo Prevent unnecessary multiple .el hashing in 'maybe_swap_for_eln' * src/comp.c (Fcomp_el_to_eln_rel_filename): New function. (Fcomp_el_to_eln_filename): Make use of. (syms_of_comp): Register 'Scomp_el_to_eln_rel_filename'. * src/lread.c (maybe_swap_for_eln): Make use of 'Fcomp_el_to_eln_rel_filename' to hash prevent unnecessary multiple hashing. 2021-03-21 Alan Mackenzie Prevent open minibuffers getting lost when their frame gets deleted This happened with minibuffer-follows-selected-frame set to t. * doc/emacs/mini.texi (Basic Minibuffer): State where a command's action takes place when a minibuffer's frame has been deleted. * lisp/window.el (window--before-delete-windows, record-window-buffer): Take into account that minibuffers are now recorded on w->prev_buffers field. * src/fns.c (merge_c): New version of `merge' taking a C function, rather than a Lisp function as the comparison function. * src/frame.c (do_switch_frame): Pass arguments sf and for_deletion to move_minibuffers_onnto_frame. * src/lisp.h (top level): Declare merge_c and move_minibuffers_onto_selected_frame. * src/minibuf.c (MB_frame): New Lisp_Object recording the minibuffer's frame. (choose_minibuf_frame): Remove all code except that which sets minibuf_window to the current frame's minibuffer. (minibuffer_ent_greater): New comparison function, passed to merge_c. (zip_minibuffer_stacks): New function. (move_minibuffers_onto_frame): Renamed from `move_minibuffer_onto_frame' given two arguments, the old frame and for_deletion, and simplified. Minibuffers are now stacked in the mini-window's ->prev_buffers field. (read_minibuf): Several detailed amendments. (exp_MB_frame): New Lisp_Object, the expired minibuffer's frame. (read_minibuf_unwind): Search for the expired minibuffer's frame, rather than taking it from (unreliable) variables. Switch temporarily to this frame for tidying up operations. (minibuffer_unwind): New function which pops a stacked minibuffer. (syms_of_minibuf): Call staticpro for the two new Lisp variables. * src/window.c (Fset_window_configuration): Don't record minibuffers with record-window-buffer. * src/xdisp.c (gui_consider_frame_title): Remove redundant Fselect_window, which caused an unwanted frame switch. Amend the arguments to format_mode_line_unwind_data to match. 2021-03-21 Andrea Corallo Add a tmp dir to `comp-eln-load-path' when running the testsuite. * lisp/startup.el (normal-top-level): Tweak `comp-eln-load-path' adding a temp directory when running the testsuite. 2021-03-21 Glenn Morris * lisp/thumbs.el (thumbs-conversion-program): Simplify. /usr/bin is (normally) always in PATH, and this need not be absolute, so the executable-find is unnecessary. 2021-03-21 Stefan Kangas Actually use lexical-binding in wid-browse.el * lisp/wid-browse.el: Use lexical-binding. I apparently forgot to commit the lexical-binding cookie in my previous attempt. 2021-03-21 Andrea Corallo Revert "* lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Clean-up all..." This reverts commit be22cda7be9e77e67f224f6f07cca9dd44aaa078. Older binaries might still need those .eln if they where preloaded. 2021-03-21 Theodor Thornhill Use pop-to-buffer-same-window for shell * lisp/progmodes/project.el (project-shell): Behave the same way as 'M-x project-eshell'. * lisp/shell.el (shell): Behave the same way as 'M-x eshell'. * etc/NEWS: Add news entry describing the change. * lisp/tutorial.el: Use lexical-binding. 2021-03-21 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Clean-up all .eln dirs. 2021-03-21 Zhiwei Chen (tiny change) Allow hide-ifdef-guts to work in buffers not visiting files * lisp/progmodes/hideif.el (hide-ifdef-guts): Allow working in buffers not visiting files (bug#47279). 2021-03-21 Stefan Kangas * lisp/tutorial.el: Use lexical-binding. 2021-03-21 Stefan Monnier * lisp/cedet/semantic/ia.el (semantic-ia-complete-symbol): Simplify Cut the `semantic-ia-get-completions-deprecated` middle man. 2021-03-20 Stefan Kangas Remove support for Syndic8.com, defunct since 2013 * lisp/gnus/nnrss.el (nnrss-discover-feed) (nnrss-find-rss-via-syndic8): Remove support for Syndic8.com, as the site was shut down in 2013. 2021-03-20 Toby Cubitt Fix cl-progv binding order * lisp/emacs-lisp/cl-macs.el (cl-progv): Bind variables in the correct order (bug#47272). 2021-03-20 Gregory Heytings * etc/NEWS: Small corrections for the new command 'font-lock-update' 2021-03-20 Stefan Kangas Remove Gnus specific .dir-locals.el * lisp/gnus/.dir-locals.el: Delete file. The only variable it set was 'show-trailing-whitespace', but this should be up to the individual developer. (Bug#47278) 2021-03-20 Stefan Kangas Prefer https and fix broken links in ERC * lisp/erc/erc-button.el (erc-button-rfc-url) (erc-button-search-url): Prefer https. * lisp/erc/erc-capab.el: * lisp/erc/erc.el (erc-cmd-MODE): Fix broken links. 2021-03-20 Stefan Kangas * lisp/thumbs.el (thumbs-show-from-dir): Improve prompt. 2021-03-20 Eli Zaretskii Fix args-out-of-range error in format.el * lisp/format.el (format-deannotate-region): Ignore todo items with FROM > TO. (Bug#47277) 2021-03-20 Paul Eggert Don’t convert pointer to bool Without this patch, Oracle Studio 12.6 complains about converting pointer to bool. * src/editfns.c (styled_format): Use !!. 2021-03-20 Stefan Kangas Assume something more recent than X11R6 * lisp/bindings.el: * lisp/menu-bar.el: * lisp/printing.el: * lisp/thumbs.el (thumbs-conversion-program): Assume we have something more recent than X11R6. 2021-03-20 Stefan Kangas Use lexical-binding in thumbs.el * lisp/thumbs.el: Use lexical-binding. Remove redundant :group args. * test/lisp/thumbs-tests.el: New file. 2021-03-20 Stefan Kangas * lisp/novice.el: Use lexical-binding. 2021-03-20 Stefan Monnier * lisp/wdired.el: Use lexical-binding Remove redundant `:group` args. (wdired-change-to-wdired-mode): Use `add-function` to modify `revert-buffer-function`. (wdired-change-to-dired-mode): Adjust accordingly. (wdired-do-renames): Make sure to bind `dired-backup-overwrite` dynamically. 2021-03-20 Stefan Kangas Don't tag mouse command as mode exclusive * lisp/finder.el (finder-mouse-select): Don't tag for finder-mode. 2021-03-19 Stefan Monnier * lisp/emacs-lisp/bytecomp.el: Remember location of unresolved calls I've gotten tired of seeing the "function foo not known to be defined" warning without any line number information. So this patch adds as line number the position of the first use of that function in the file (well, approximately, as usual). (byte-compile-unresolved-functions): Add POSITIONs in the alist. (byte-compile-function-warn): Store the current position in `byte-compile-unresolved-functions`. (byte-compile-arglist-warn): Adjust accordingly. (byte-compile-print-syms): Delete unused function. (byte-compile-warn-about-unresolved-functions): Use the stored position to give more precise warnings. 2021-03-19 Stefan Monnier * lisp/emacs-lisp/pcase.el (pcase-compile-patterns): New function (bug#47261) Extracted from `pcase--expand`. (pcase--expand): Use it. 2021-03-19 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-19 Eli Zaretskii Improve the docs of a recent change in mb-depth.el * lisp/mb-depth.el (minibuffer-depth-indicator-function): Improve the wording of the doc string and of the label used for the default value. (Bug#47252) 2021-03-19 Andrea Corallo Do not load native code when `load' is explicitly called on a .elc file * src/lread.c (Fload): Do not load native code when `load' is explicitly called on a .elc file. (Flocate_file_internal): Update 'openp' call sites. (maybe_swap_for_eln): Add new 'no_native' parameter. (openp): Likewise + update 'maybe_swap_for_eln' and 'openp' call sites. * src/lisp.h: Update 'openp' signature. * src/w32proc.c (sys_spawnve): Update 'openp' call sites. * src/w32.c (check_windows_init_file): Likewise. * src/sound.c (Fplay_sound_internal): Likewise. * src/process.c (Fmake_process): Likewise. * src/image.c (image_create_bitmap_from_file) (image_find_image_fd): Likewise. * src/emacs.c (set_invocation_vars): Likewise. * src/charset.c (load_charset_map_from_file): Likewise. * src/callproc.c (call_process): Likewise. 2021-03-19 Mauro Aranda Fix :type of recently introduced defcustom * lisp/mb-depth.el (minibuffer-depth-indicator-function): The option can be nil, so add nil as a choice. (Bug#47252) 2021-03-19 Gabriel do Nascimento Ribeiro Make minibuffer-depth-indicator-function a defcustom * lisp/mb-depth.el (minibuffer-depth-indicator-function): Make into a user option (bug#47252). 2021-03-19 Lars Ingebrigtsen Warn the user if we can't find pkg-config * configure.ac (WITH_IFAVAILABLE): Warn the user if we can't find a usable pkg-config (bug#47159). 2021-03-19 Lars Ingebrigtsen Add a note to NEWS as to how to restore the facemenu 2021-03-19 Stefan Monnier Fix copyright lines mistakenly treated as outline headers * lisp/emacs-lisp/generator.el: * test/lisp/cedet/semantic-utest.el: * test/lisp/cedet/semantic/format-tests.el: * test/lisp/cedet/semantic/fw-tests.el: * test/lisp/cedet/semantic/bovine/gcc-tests.el: * test/lisp/cedet/semantic/format-resources/test-fmt.el: * test/manual/cedet/semantic-tests.el: * lisp/obsolete/inversion.el: Use only 2 semi-colons before "Copyright". 2021-03-19 Stefan Monnier lisp/erc: Use lexical-binding Also remove various redundant `:group` arguments. * lisp/erc/erc-backend.el (define-erc-response-handler): Move `declare` after the docstring. * lisp/erc/erc-capab.el: Use lexical-binding. (erc-capab-identify-activate): Simplify with `member`. * lisp/erc/erc-dcc.el (erc-dcc): Move before erc-dcc-mode definition, which refers to it. (erc-dcc-chat-accept): Remove unused vars `nick` and `buffer`. * lisp/erc/erc-imenu.el: Use lexical-binding. (erc-create-imenu-index): Remove unused var `prev-pos`. * lisp/erc/erc-match.el: Use lexical-binding. (erc-match-message): Remove unused var `old-pt`. (erc-match-message): Strength-reduce `eval` to `symbol-value`. * lisp/erc/erc-page.el: Use lexical-binding. (erc-page): Move Custom group before `erg-page-mode` which refers to it. * lisp/erc/erc-replace.el: Use lexical-binding. (erc-replace-insert): Use `functionp`. * lisp/erc/erc-status-sidebar.el: Use lexical-binding. (erc-status-sidebar-open): Remove unused var `sidebar-window`. * lisp/erc/erc.el: Fix header to use the customary 3 semi-colons. (erc-fill-column): Declare variable. * lisp/erc/erc-autoaway.el: Use lexical-binding. * lisp/erc/erc-ezbounce.el: Use lexical-binding. * lisp/erc/erc-fill.el: Use lexical-binding. * lisp/erc/erc-goodies.el: Use lexical-binding. * lisp/erc/erc-ibuffer.el: Use lexical-binding. * lisp/erc/erc-identd.el: Use lexical-binding. * lisp/erc/erc-join.el: Use lexical-binding. * lisp/erc/erc-lang.el: Use lexical-binding. * lisp/erc/erc-log.el: Use lexical-binding. * lisp/erc/erc-menu.el: Use lexical-binding. * lisp/erc/erc-netsplit.el: Use lexical-binding. * lisp/erc/erc-networks.el: Use lexical-binding. * lisp/erc/erc-pcomplete.el: Use lexical-binding. * lisp/erc/erc-ring.el: Use lexical-binding. * lisp/erc/erc-speedbar.el: Use lexical-binding. * lisp/erc/erc-spelling.el: Use lexical-binding. * lisp/erc/erc-truncate.el: Use lexical-binding. * lisp/erc/erc-xdcc.el: Use lexical-binding. 2021-03-19 Stefan Kangas Do interactive mode tagging for finder.el 2021-03-19 Stefan Kangas Use lexical-binding in finder.el * lisp/finder.el: Use lexical-binding. (finder-mode-map, finder-compile-keywords): Remove unused lexical variables. 2021-03-19 Stefan Kangas Fix a warning due to not preloading facemenu.el * test/src/undo-tests.el (facemenu): Require. 2021-03-18 Stefan Kangas * lisp/faces.el (help-key-binding): Tweak background. 2021-03-18 Basil L. Contovounesios Fix frame-inner-height in non-GUI builds Include tab bar in frame's inner height in non-GUI builds that don't define tab-bar-height. This is consistent with the inclusion of the menu bar in the calculated height. It is also consistent with TTY frames of GUI builds, for which tab-bar-height is always zero anyway (bug#47234). Fix suggested by Eli Zaretskii . * lisp/frame.el (frame-inner-height): Don't assume tab-bar-height is defined in builds --without-x. 2021-03-18 Stefan Monnier * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Optimize the "return nil" case 2021-03-18 Stefan Monnier * test/lisp/progmodes/cperl-mode-tests.el: Silence warnings (cperl-test-bug-47112): Actually obey the major-mode for the test. 2021-03-18 Juri Linkov * lisp/newcomment.el: Allow 'comment-continue' with whitespace (bug#47167) * lisp/newcomment.el (comment-region-default-1): Still use 'comment-continue' as a string with whitespace even when 'comment-padright' returns nil. 2021-03-18 Juri Linkov * lisp/simple.el (next-error-quit-window): New function (bug#44611). (next-error-found-function): Add it as a choice. 2021-03-18 Glenn Morris * admin/make-tarball.txt: Be kind to people merging branches. 2021-03-18 Glenn Morris Merge from origin/emacs-27 d5b160d7cc (tag: emacs-27.2-rc1, origin/emacs-27) Prepare the Emacs 2... 216bd67a4f ; * admin/make-tarball.txt: Advise to remove stale subdire... # Conflicts: # ChangeLog.3 # README # configure.ac # etc/AUTHORS # etc/NEWS # lisp/ldefs-boot.el # msdos/sed2v2.inp # nt/README.W32 2021-03-18 Glenn Morris Merge from origin/emacs-27 a7f95d5244 Remove duplicate @table item from ELisp manual be1b3512f7 Fix reference to 'diff-font-lock-syntax' in diff-mode docu... 2021-03-18 Glenn Morris Merge from origin/emacs-27 f60eb988f6 Fix typos and omissions for (elisp)Button Buffer Commands 876b95bf90 Teach Rmail about NBSP in "Re:" # Conflicts: # lisp/mail/rmail.el 2021-03-18 Eli Zaretskii Prepare the Emacs 27.2 release. * etc/HISTORY: Update for Emacs 27.2. * README: * configure.ac: * nt/README.W32: * msdos/sed2v2.inp: Set version to 27.2 2021-03-18 Mattias Engdegård Optimise tail calls in `and` and `or` forms in `cl-labels` functions * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Handle `and` and `or`. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add test cases. 2021-03-18 Michael Albinus Extend handled events in 'while-no-input-ignore-events' (Bug#47205) * etc/NEWS: Mention changes to 'while-no-input-ignore-events'. * src/keyboard.c (kbd_buffer_store_buffered_event): Handle also Qfile_notify and Qdbus_event as ignore_event. (Bug#47205) 2021-03-18 Stefan Kangas Add comint-password-prompt-regexp test for "zip -e ..." * test/lisp/comint-tests.el (comint-testsuite-password-strings): Add test for "zip -e ...". (Bug#47209) 2021-03-18 Lars Ingebrigtsen Compute chart-face-list dynamically * lisp/emacs-lisp/chart.el (chart-face-list): Allow a function as the value (bug#47133) so that we can compute the faces dynamically on different displays. (chart--face-list): New function. (chart-draw-data): Use it. 2021-03-18 Lars Ingebrigtsen Document that `buffer-string' retains text properties * doc/lispref/text.texi (Buffer Contents): Mention text properties in the `buffer-string' documentation. * src/editfns.c (Fbuffer_string): Mention text properties in the doc string (bug#47220). (cherry picked from commit 60af754170f22f5d25510af069ed0ebfec95f992) 2021-03-18 Lars Ingebrigtsen Fix breaking undo-test 2021-03-18 Lars Ingebrigtsen Make "not found" message in dictionary less misleading * lisp/net/dictionary.el (dictionary-do-search): Don't say there are more words when there aren't (bug#47056). 2021-03-18 Lars Ingebrigtsen Make memory-report work with buffer-local unbound vars * lisp/emacs-lisp/memory-report.el (memory-report--buffer-data): Protect against buffer-local unbound variables (bug#47057). 2021-03-18 Lars Ingebrigtsen Fix sorting in speedbar sub-groups * lisp/speedbar.el (speedbar-prefix-group-tag-hierarchy): Sort entries in sub-groups (bug#47073). 2021-03-18 Gabriel do Nascimento Ribeiro lisp/cedet/pulse.el: Use color.el * lisp/cedet/pulse.el: (pulse-int-to-hex): Remove function. (pulse-color-values-to-hex): Remove function. (pulse-lighten-highlight): Remove function. (pulse-momentary-iteration): Add variable. (pulse-momentary-highlight-overlay): Use color-gradient from color.el. (pulse-tick): Receive colors and update overlay background (bug#47083). 2021-03-18 Harald Jörg cperl-mode: Don't interpret y_ as start of y// function. * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Avoid treating underscores as word-terminators. * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-47112): Test case for that bug (bug#47112). 2021-03-18 Gabriel do Nascimento Ribeiro Fix uniquify-trailing-separator-p + uniquify-strip-common-suffix (uniquify-item): New slot 'original-dirname'. (uniquify-rationalize-file-buffer-names): Use new slot. (uniquify-rationalize): Use new slot. (uniquify-get-proposed-name): New optional argument 'original-dirname' to properly add a trailing separator when the corresponding user option is set and the dirname is an existing directory (bug#47132). 2021-03-18 Lars Ingebrigtsen Fix problem of trashing files to an inconsistent trash directory * lisp/files.el (move-file-to-trash): Allow moving files to trash even if there's a file in trash with the same name (but no entry in info) (bug#47135). 2021-03-18 Lars Ingebrigtsen Autoload 'mouse-wheel-mode' * lisp/mwheel.el (mouse-wheel-mode): Autoload, since the mode can be used (but isn't preloaded) when there isn't any window system (bug#47162). 2021-03-18 Lars Ingebrigtsen Recognise "Verify password" as a password prompt * lisp/comint.el (comint-password-prompt-regexp): Also react to "Verify password" (output by "zip -e") (bug#47209). 2021-03-18 Lars Ingebrigtsen Document that `buffer-string' retains text properties * doc/lispref/text.texi (Buffer Contents): Mention text properties in the `buffer-string' documentation. * src/editfns.c (Fbuffer_string): Mention text properties in the doc string (bug#47220). 2021-03-18 Lars Ingebrigtsen Don't pre-load facemenu * lisp/facemenu.el (facemenu-add-face-function): Move to avoid a compilation warning. (facemenu-color-alist): Made obsolete. * lisp/faces.el (read-color): Don't use it. * lisp/loadup.el ("emacs-lisp/syntax"): Don't load facemenu. * lisp/wid-edit.el (color): Don't use facemenu-color-alist. (widget-color--choose-action): Require facemenu. (widget-color-action): Ditto. * lisp/progmodes/cperl-mode.el (facemenu): Require. * lisp/textmodes/sgml-mode.el (facemenu): Require. 2021-03-18 Lars Ingebrigtsen Unbind `M-o' and add new `C-x x f' binding * doc/lispref/modes.texi (Other Font Lock Variables): `font-lock-fontify-block' is no longer bound. * lisp/bindings.el (ctl-x-x-map): Bind `font-lock-update'. * lisp/font-lock.el (font-lock-update): New command written by Gregory Heytings . * lisp/loadup.el: Remove transitional experimental code. 2021-03-18 Stefan Monnier * lisp/textmodes: Use lexical-binding * lisp/textmodes/enriched.el: Use lexical-binding. (enriched-mode): Use `delete-dups` to avoid `add-to-list` on a local variable. * lisp/textmodes/makeinfo.el: Use lexical-binding. (makeinfo-region): Remove unused var `filename-or-header`. * lisp/textmodes/refbib.el: Use lexical-binding. (r2b-put-field): Remove unused var `multi-line`. (r2b-barf-output): Remove unused var `match`. * lisp/textmodes/refer.el: Use lexical-binding. (refer-find-entry-internal): Remove unused vars `old-buffer` and `found`. * lisp/textmodes/reftex-auc.el: Use lexical-binding. (LaTeX-add-bibitems): Declare function. (reftex-plug-into-AUCTeX): Use `add-function` and `advice-add` so we can properly unplug. * lisp/textmodes/reftex-cite.el: Use lexical-binding. (reftex-create-bibtex-file): Remove unused var `file`. (reftex--found-list): Declare var. (reftex-offer-bib-menu): Rename local var to `reftex--found-list`. * lisp/textmodes/reftex-dcr.el: Use lexical-binding. (reftex-use-itimer-in-xemacs): Delete XEmacs-only var. (reftex-toggle-auto-view-crossref): Delete XEmacs-only code. (reftex-start-itimer-once): Delete XEmacs-only function. * lisp/textmodes/reftex-global.el: Use lexical-binding. (reftex-isearch-push-state-function): Use a closure instead of `(lambda). * lisp/textmodes/reftex-index.el: Use lexical-binding. (mark-active, transient-mark-mode): Delete var declarations. (reftex-index-mode-map): Remove XEmacs-only code. Use `mapc` so we can use closures instead of hand-built lambdas. (reftex-index-next, reftex-index-previous): Tweak interactive spec to remove unused prefix arg and mark it as a motion command. (reftex-index-phrases-font-lock-keywords) (reftex-index-phrases-font-lock-keywords): Move initialization into declaration. (reftex-index-initialize-phrases-buffer, reftex-index-phrases-mode) reftex-index-phrases-apply-to-region: Remove XEmacs-only code. (TeX-master): Remove redundant declaration. (reftex--chars-first): Rename dynvar from `chars-first`. Adjust all uses. * lisp/textmodes/reftex-parse.el: Use lexical-binding. * lisp/textmodes/reftex-ref.el: Use lexical-binding. (reftex-label): Remove always-nil var `text`. (reftex-refstyle): Declare before first use. (): Use closures rather than `eval` when building commands from `reftex-ref-style-alist`. * lisp/textmodes/reftex-sel.el: Use lexical-binding. (reftex-select-label-mode-map, reftex-select-bib-mode-map): Use `mapc` so we can use closures instead of hand-built lambdas. (reftex-select-label-mode, reftex-select-bib-mode): Remove XEmacs-only code. (reftex-select-data, reftex-select-prompt, reftex-refstyle): Move declaration before first use. (reftex--found-list, reftex--cb-flag, reftex--last-data) (reftex--call-back, reftex--help-string): Move declaration before use, and rename by adding `reftext--` prefix. Adjust all uses in this file. For `reftex--found-list` adjust corresponding uses in `reftex-cite.el`. (reftex-select-item): Explicitly let-bind them. Remove XEmacs-only code. * lisp/textmodes/reftex-toc.el: Use lexical-binding. (reftex-toc-mode-map, reftex-toc-mode, reftex-toc-restore-region) (reftex-toc-next, reftex-toc-previous, reftex-toc-next-heading) (reftex-toc-previous-heading, reftex-toggle-auto-toc-recenter (reftex-make-separate-toc-frame): Remove XEmacs-only code. * lisp/textmodes/reftex-vars.el: Use lexical-binding. * lisp/textmodes/reftex.el: Use lexical-binding. (reftex-mode-map, reftex-mode, reftex-fontify-select-label-buffer) (reftex-verified-face): Remove XEmacs-only code. (reftex-region-active-p, reftex-overlay-put, reftex-move-overlay) (reftex-make-overlay, reftex-get-buffer-visiting, reftex-delete-overlay): Redefine as obsolete aliases. Replace all callers. (current-message): Remove XEmacs-only definition. * lisp/textmodes/remember.el: Use lexical-binding. * lisp/textmodes/table.el (): Use closures rather than `(lambda) to build commands. * lisp/textmodes/texinfmt.el: Use lexical-binding. (texinfo-example-start): Declare var. (texinfo-format-region, texinfo-format-buffer-1): Remove unused var `last-input-buffer`. (texinfo-format-scan): Use `dlet` to bind `whitespace-silent`. (texinfo-optional-braces-discard, texinfo-format-parse-line-args) (texinfo-format-parse-args): Remove unused var `start`. (texinfo-multitable-widths): Remove unused var `start-of-templates`. (texinfo-multitable-item): Strength-reduce `eval` to `symbol-value`. (texinfo-alias): Remove unused vars `start` and `args`. (texinfo-defun-type symbol-property): Change the car to help the type symbol rather than an expression returning it. (texinfo-format-deffn): Remove corresponding `eval`. (texinfo-clear): Remove unused var `value`. (texinfo-format-ifeq): Remove unused var `end`. * lisp/textmodes/texinfo.el: Use lexical-binding. (tex-show-print-queue): Declare function. * lisp/textmodes/texnfo-upd.el: Use lexical-binding. (texinfo-start-menu-description): Remove unused var `end`. (texinfo-insert-node-lines): Remove unused var `beginning-marker`. (texinfo-multiple-files-update): Remove unused vars `next-node-name` and `previous-node-name`. * lisp/textmodes/two-column.el: Use lexical-binding. 2021-03-18 Dmitry Gutov Leave signaling the exact error to cl-generic's internals * lisp/progmodes/project.el (project-root): Extract default definition to a new method, predicated on a context (https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00771.html). 2021-03-18 Stefan Monnier * lisp/emacs-lisp/benchmark.el (benchmark-call): New function (benchmark-run, benchmark-run-compiled, benchmark): Use it. (benchmark--adaptive): New internal function. 2021-03-17 Juri Linkov * lisp/tab-line.el: Face cleanup. 2021-03-17 Juri Linkov * lisp/tab-bar.el: New faces and face options. * lisp/tab-bar.el (tab-bar-tab-group-current) (tab-bar-tab-group-inactive, tab-bar-tab-ungrouped): New deffaces. (tab-bar-tab-face-function): New defcustom. (tab-bar-tab-face-default): New function. (tab-bar-tab-name-format-default): Use it. (tab-bar-tab-group-format-default): Use tab-bar-tab-group-inactive face. (tab-bar-tab-group-face-function): New defcustom. (tab-bar-tab-group-face-default): New function. (tab-bar--format-tab-group): Add new arg 'current-p'. (tab-bar-format-tabs-groups): Prepend current group name before first tab. Override tab-bar-tab-face-function with tab-bar-tab-group-face-function. 2021-03-17 Dmitry Gutov Stop project-root from going into infinite recursion * lisp/progmodes/project.el (project--within-roots-fallback): New variable. (project-root, project-roots): Use it (bug#47168). 2021-03-17 Fabrice Bauzac Remove duplicate @table item from ELisp manual * doc/lispref/objects.texi (Special Read Syntax): Remove duplicate item "#@N" from the table of Special Read Syntax. (Bug#47200) 2021-03-16 Juri Linkov New commands xref-next-line-no-show and xref-prev-line-no-show (bug#44611) * lisp/progmodes/xref.el (xref-next-line-no-show) (xref-prev-line-no-show): New commands. (xref-next-line, xref-prev-line): Use them. 2021-03-16 Juri Linkov Minor fixes * lisp/frame.el (set-frame-property--interactive): Remove '(point)' that makes no sense as the default value. (Bug#9970) * lisp/simple.el (next-error-found-function): Move defcustom closer to function 'next-error-found' where it's used. 2021-03-16 Andrea Corallo Fix `no-byte-compile' native compilation interaction (bug#47169) * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Throw no-native-compile when `byte-native-qualities' are null. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): No need to consider `no-byte-compile'. 2021-03-16 Juri Linkov * lisp/tab-bar.el (tab-bar-select-tab): Support negative arg. 2021-03-16 Juri Linkov * lisp/tab-bar.el: Simplify internal functions. * lisp/tab-bar.el (tab-bar-tabs-set): New function. (tab-bar-tabs): Use tab-bar--current-tab-find and tab-bar-tabs-set. (tab-bar--tab): Use tab-bar--current-tab-find. (tab-bar--current-tab): Remove unused line (assq 'current-tab ...) because there is no current-tab when it's called. Remove unused arg 'frame'. (tab-bar--current-tab-find): Simplify. (tab-bar-move-tab-to, tab-bar-move-tab-to-frame) (tab-bar-new-tab-to, tab-bar-close-tab) (tab-bar-close-other-tabs, tab-bar-undo-close-tab) (tab-switcher-delete-from-list): Use tab-bar-tabs-set instead of set-frame-parameter. (tab-bar-close-group-tabs): Simplify using tab-bar--current-tab-find without arg. 2021-03-16 Michael Albinus Fix problem of image-tests.el on emba * test/README: Mention $EMACS_TEST_DIRECTORY. * test/lisp/image-tests.el (image-tests--emacs-images-directory): Use `data-directory', for runs w/o of make. (image-type/from-filename): Check for `image-load-path'. 2021-03-16 Michael Albinus Fix problem in Tramp running two async processes in parallel * lisp/net/tramp-integration.el (tramp-compile-disable-ssh-controlmaster-options): New defun. Add it to `compilation-mode-hook'. (Bug#45518) * lisp/progmodes/compile.el (compilation-get-file-structure): Revert commit 4ce5646d59, it isn't needed. 2021-03-16 Stefan Monnier * etc/themes/modus-themes.el: Bump version for GNU ELPA release (News:): New section. 2021-03-16 Andrea Corallo Have `no-byte-compile' implies also `no-native-compile'. * lisp/emacs-lisp/comp.el (no-native-compile): Update doctring. * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): when `no-byte-compile' is set to non-nil it overrides this. 2021-03-16 Daniel Martín Add minibuffer input support to commands that set the frame size * lisp/frame.el (set-frame-property--interactive): Internal function to produce the interactive form of `set-frame-width' and `set-frame-height'. Offer the current size as default. (Bug#9970) * src/frame.c (Fset_frame_height): Modify to call `set-frame-property--interactive'. (Fset_frame_width): Modify to call `set-frame-property--interactive'. * doc/lispref/frames.texi (Frame Size): Update the manuals. * etc/NEWS: Advertise the change (bug#9970). 2021-03-15 Eli Zaretskii * lisp/emacs-lisp/byte-opt.el: Fix native re-compilation (bug#47161). 2021-03-15 Juri Linkov * lisp/tab-bar.el (tab-bar-new-tab-group): New defcustom. (tab-bar--current-tab, tab-bar-new-tab-to, tab-bar-duplicate-tab): Use it. 2021-03-15 Juri Linkov * lisp/tab-bar.el (tab-bar-tab-group-format-function): New defcustom. (tab-bar-tab-group-default): New function. (tab-bar-tab-group-format-default, tab-bar-format-tabs-groups) (tab-bar-change-tab-group, tab-bar-close-group-tabs): Use it. 2021-03-15 Glenn Morris * CONTRIBUTE: Refer to gnulib for request-assign.future. The vast majority of the exchanges on this topic are "please send me the form; ok I sent you the form", and there's no need to involve a mailing list for that. 2021-03-15 Andrea Corallo * lisp/emacs-lisp/bytecomp.el: Fix native re-compilation (bug#47161). 2021-03-15 Eli Zaretskii Prefer expand-file-name to concat in native-compilation code * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): * src/comp.c (Fcomp_el_to_eln_filename) (eln_load_path_final_clean_up): Prefer expand-file-name to concat. (Bug#43725) 2021-03-15 Protesilaos Stavrou Make the `kbd` macro work in both Emacs-26 and Emacs-28 This is so that elpa.gnu.org's Emacs-26 can successfully build the Info version of it for the GNU ELPA package. 2021-03-15 Michael Albinus Improve command completion in tramp-crypt.el * lisp/net/tramp-crypt.el (tramp-crypt-command-completion-p): Rename from `tramp-crypt-enabled-p'. Handle `tramp-crypt-remove-directory' special. 2021-03-15 Stefan Kangas * lisp/textmodes/refill.el: Use lexical-binding. 2021-03-15 Stefan Monnier * lisp/cedet: Convert remaining files to lexical-binding Remove a few more redundant `:group` args. Make use of lexical scoping to replace `(lambda...) with proper closures. * lisp/cedet/ede/custom.el (ede-project-sort-targets-list): Use `dotimes` and replace `(lambda..) with closures. * lisp/cedet/ede/proj-comp.el (proj-comp-insert-variable-once): * lisp/cedet/ede/pmake.el (ede-pmake-insert-variable-once): Remove unused var `addcr`. * lisp/cedet/semantic/complete.el: Use lexical-binding. (semantic-displayer-show-request): Remove unused var `typing-count`. Use `equal` instead of `stringp+string=`. * lisp/cedet/semantic/db-ebrowse.el: Use lexical-binding. (semanticdb-create-ebrowse-database): Remove unused vars `mma` and `regexp`. (semanticdb-ebrowse-strip-trees): Remove unused var `class` and `filename`. (semanticdb-ebrowse-add-globals-to-table): Remove unused var `fname`. * lisp/cedet/semantic/db-find.el: Use lexical-binding. (semanticdb-find-adebug-insert-scanned-tag-cons): Remove always-nil var `tip`. * lisp/cedet/semantic/db-global.el: Use lexical-binding. (semanticdb-enable-gnu-global-databases): Access local var `semantic--ih` by sticking its value in the code passed to `eval` rather than by dynamic scoping. * lisp/cedet/semantic/db-typecache.el: Use lexical-binding. (semanticdb-db-typecache-dump): Remove unused var `junk`. * lisp/cedet/semantic/debug.el: Use lexical-binding. * lisp/cedet/semantic/dep.el: Use lexical-binding. (semantic-add-system-include): Avoid `add-to-list` on a local variable. Access local var `value` by sticking its value in the code passed to `eval` rather than by dynamic scoping. (semantic-remove-system-include): Don't use `delete` on a list received from elsewhere. Access local var `value` by sticking its value in the code passed to `eval` rather than by dynamic scoping. (semantic-reset-system-include): Simplify a bit. * lisp/cedet/semantic/ede-grammar.el: Use lexical-binding. (project-compile-target): Remove unused vars `csrc` and `cb`. Use `cl-incf`. Remove apparently unneeded `with-no-warnings`. * lisp/cedet/semantic/edit.el: Use lexical-binding. (semantic-edits-change-over-tags): Remove unused var `inner-start`. (semantic-edits-incremental-parser-1): Silence warnings about intentionally unused var `last-cond`. * lisp/cedet/semantic/fw.el: Use lexical-binding. (recentf-exclude, semantic-init-hook, ede-auto-add-method) (flymake-start-syntax-check-on-find-file, auto-insert): Declare vars. * lisp/cedet/semantic/ia-sb.el: Use lexical-binding. (semantic-ia-sb-key-map): Move initialization into declaration. (semantic-ia-sb-more-buttons): Remove unused var `idx`. (semantic-ia-sb-line-path): Simplify `if` -> `or`. * lisp/cedet/semantic/idle.el (semantic-idle-breadcrumbs--tag-function): Make it a function returning a closure. * lisp/cedet/semantic/senator.el: Use lexical-binding. (senator-search-set-tag-class-filter): Replace `(lambda..) with a closure. * lisp/cedet/semantic/sort.el: Use lexical-binding. (semanticdb-search-system-databases): Declare var. (semantic-tag-external-member-children-default): Replace `(lambda..) with a closure. * lisp/cedet/semantic/tag-ls.el: Use lexical-binding. (semantic-tag-protection-default, semantic-tag-abstract-p-default): Simplify with `member`. * lisp/cedet/semantic/util.el: Use lexical-binding. (semantic-something-to-tag-table): Declare function `semanticdb-abstract-table--eieio-childp` called via `cl-typep`. * lisp/cedet/semantic/bovine/scm.el (semantic-default-scheme-setup): Remove duplicate setting of `imenu-create-index-function`. * lisp/cedet/semantic/decorate/mode.el (semantic-decoration-build-style-menu): Replace `(lambda..) with a closure. * lisp/cedet/srecode/cpp.el (srecode-semantic-apply-tag-to-dict): Remove always-t variable `member`. * lisp/cedet/srecode/mode.el (srecode-minor-mode-templates-menu): Replace `(lambda..) with a closure. Use `push`. * lisp/cedet/semantic/chart.el: Use lexical-binding. * lisp/cedet/semantic/db-debug.el: Use lexical-binding. * lisp/cedet/semantic/db-el.el: Use lexical-binding. * lisp/cedet/semantic/db-file.el: Use lexical-binding. * lisp/cedet/semantic/db-javascript.el: Use lexical-binding. * lisp/cedet/semantic/db-mode.el: Use lexical-binding. * lisp/cedet/semantic/db-ref.el: Use lexical-binding. * lisp/cedet/semantic/decorate.el: Use lexical-binding. * lisp/cedet/semantic/doc.el: Use lexical-binding. * lisp/cedet/semantic/find.el: Use lexical-binding. * lisp/cedet/semantic/format.el: Use lexical-binding. * lisp/cedet/semantic/html.el: Use lexical-binding. * lisp/cedet/semantic/ia.el: Use lexical-binding. * lisp/cedet/semantic/imenu.el: Use lexical-binding. * lisp/cedet/semantic/java.el: Use lexical-binding. * lisp/cedet/semantic/mru-bookmark.el: Use lexical-binding. * lisp/cedet/semantic/symref.el: Use lexical-binding. * lisp/cedet/semantic/tag-file.el: Use lexical-binding. * lisp/cedet/semantic/tag-write.el: Use lexical-binding. * lisp/cedet/semantic/texi.el: Use lexical-binding. * lisp/cedet/semantic/util-modes.el: Use lexical-binding. 2021-03-15 Gabriel do Nascimento Ribeiro Init archive and add noconfirm to 'package-install-selected-packages' * lisp/emacs-lisp/package.el (package-install-selected-packages): Add call to 'package--archives-initialize' and add optional argument NOCONFIRM to skip user confirmation when installing packages. (Bug#47124) 2021-03-15 Stefan Kangas * lisp/vc/ediff-vers.el: Remove XEmacs compat code. 2021-03-15 Stefan Kangas Use lexical-binding in expand.el * lisp/expand.el: Use lexical-binding. Remove redundant :group args. 2021-03-15 Stefan Kangas * lisp/help-macro.el: Use lexical-binding. 2021-03-15 Stefan Kangas Add three new tests for image.el * test/lisp/image-tests.el (image-find-image) (image-type-from-file-name, image-type/from-filename): New tests. 2021-03-15 Stefan Kangas * lisp/wid-edit.el (widget-field): Add subtle border to face. 2021-03-14 Andrea Corallo Fix some entry in `comp-known-type-specifiers' (bug#46847) * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Some fix. * test/src/comp-tests.el (comp-tests-46670-1): Update test. 2021-03-14 Pip Cet Don't call setjmp through a function pointer on Windows (bug#47067) * src/comp.c (ABI_VERSION): Bump. (emit_setjmp): Call setjmp directly. (declare_runtime_imported_funcs): Remove setjmp. (helper_link_table): Remove entry for setjmp. 2021-03-14 Stefan Monnier Revert "* lisp/calendar/appt.el (appt-activate): Set the local `write-file-functions`" This reverts commit 587a97bcb23bc6ea429ab790efa03f2260a9bca8. We really do want to affect the global part of the hook. Reported by Gabriel . 2021-03-14 Eli Zaretskii Fix hang due to failure to clean up *.eln.old files at exit * src/comp.c (eln_load_path_final_clean_up): Call internal_delete_file, not Fdelete_file, to ignore any errors. (Bug#46972) 2021-03-14 Juri Linkov * lisp/tab-bar.el: Tab groups can be displayed with tab-bar-format-tabs-groups * lisp/tab-bar.el (tab-bar-format): Turn defvar into defcustom. Add :options and force-mode-line-update in :set. (tab-bar--format-tab): New function refactored from tab-bar-format-tabs. (tab-bar-format-tabs): Move most of code to tab-bar--format-tab and call it. (tab-bar-tab-group-format-function): New defcustom. (tab-bar-tab-group-format-default): New function. (tab-bar--format-tab-group, tab-bar-format-tabs-groups): New functions. (tab-bar-format-align-right, tab-bar-format-global): Shorten id. (tab-bar-change-tab-group): Add refs to tab-bar-format in docstring. 2021-03-14 Gabriel do Nascimento Ribeiro * lisp/tab-line.el: Update docstring of 'tab-line-tabs-function' (bug#47117) (tab-line-tabs-function): Mention 'tab-line-tabs-buffer-groups' in the docstring. (tab-line-tabs-buffer-groups): Add docstring. 2021-03-14 Gabriel do Nascimento Ribeiro * lisp/tab-line.el: Add face for group-tab (bug#47118) (tab-line-tab-face-functions): Add choice for 'tab-line-tab-face-group'. (tab-line-tab-group): New face. (tab-line-tabs-buffer-groups): Set alist key 'group-tab' for group tabs. (tab-line-tab-face-group): New function to set face for group tabs. 2021-03-14 Michael Albinus * lisp/net/tramp-crypt.el (tramp-crypt-add-directory): Don't autoload setting property `completion-predicate'. 2021-03-14 Daniel Martín Fix reference to 'diff-font-lock-syntax' in diff-mode documentation * doc/emacs/files.texi (Diff Mode): Add the omitted name of the variable. (Bug#47129) 2021-03-14 Alan Third Fix buffer overflow in xbm_scan (bug#47094) * src/image.c (xbm_scan): Ensure reading a string doesn't overflow the buffer. (cherry picked from commit ebc3b25409dd614c1814a0643960452683e37aa3) 2021-03-13 Alan Third Fix buffer overflow in xbm_scan (bug#47094) * src/image.c (xbm_scan): Ensure reading a string doesn't overflow the buffer. 2021-03-13 Juri Linkov Separate values 'override' and 'append' in 'outline-minor-mode-highlight' * lisp/outline.el (outline-font-lock-keywords): Handle 'override' and 'append' separately. (outline-minor-mode-highlight): Separate values 'override' and 'append'. (outline-minor-mode-highlight-buffer): Go to match-beginning before checking '(point)'. 2021-03-13 Stefan Kangas Add help-key-binding styling to wombat theme * etc/themes/wombat-theme.el (help-key-binding): Add face definition. 2021-03-13 Eli Zaretskii Fix rare redisplay glitches when image has been removed from display * src/dispnew.c (update_window): Make sure all glyph rows below the last visible one are marked as invalid, even when the loop which "updates the rest of the lines" didn't examine the last visible row. (Bug#47093) 2021-03-13 Stefan Kangas Adjust colors of help-key-binding face for readability * lisp/faces.el (help-key-binding): Adjust colors for improved readability, and use a flat :box for highlighting (with negative :line-width height to avoid any vertical resizing of the minibuffer). This was discussed in: https://lists.gnu.org/r/emacs-devel/2021-03/msg00535.html 2021-03-13 Michael Albinus Remove ;;;###tramp-autoload cookie from Tramp defcustoms (Bug#47063) * lisp/net/tramp-crypt.el (tramp-crypt-enabled-p): New defun. (tramp-crypt-add-directory, tramp-crypt-remove-directory): Add property `completion-predicate'. * lisp/net/tramp-sh.el (tramp-terminal-type, tramp-remote-path) (tramp-remote-process-environment): Remove. Move them to ... * lisp/net/tramp.el: ... here. 2021-03-13 Eli Zaretskii Extend support for faces in Enriched mode * lisp/textmodes/enriched.el (enriched-face-ans): Support faces with bold and italic attributes. (Bug#46507) 2021-03-13 Matt Armstrong Fix typos and omissions for (elisp)Button Buffer Commands * doc/lispref/display.texi (Button Buffer Commands): Minor typo and omission fixes `backward-button' and `forward-button'. (Bug#47051) 2021-03-13 Eli Zaretskii Teach Rmail about NBSP in "Re:" * lisp/mail/rmail.el (rmail-simplified-subject) (rmail-reply-regexp): Allow NBSP in "RE:" prefixes. 2021-03-12 Andrea Corallo Fix circular dependency when loading a modified comp.el (bug#47049) * lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Move it before other functional code. 2021-03-12 Stefan Monnier * src/keyboard.c (parse_solitary_modifier): Accept `click` modifier 2021-03-12 Yuan Fu Fix simple-tests--undo* * test/lisp/simple-tests.el (simple-tests--undo-in-region, simple-tests--undo-equiv-table): Re-enable in batch mode. Enable 'transient-mark-mode' in temp buffer. 2021-03-12 Stefan Monnier * lisp/filesets.el: Address byte-compiler warning (filesets-run-cmd): Let-bind `filesets--files`. (filesets-cmd-isearch-getargs): Use it. 2021-03-12 Glenn Morris * lisp/tooltip.el (tooltip): Restore group that was not "redundant". 2021-03-12 Glenn Morris Merge from origin/emacs-27 02a5cfce47 (origin/emacs-27) * lisp/mouse.el: Fix mouse-1-clock-follo... c881e990e3 * lisp/emacs-lisp/gv.el (edebug-after): Don't run the gett... 2021-03-12 Glenn Morris Merge from origin/emacs-27 fc83f37951 Fix initialization of 'while-no-input-ignore-events' 8f603da44c Update documentation of reading passwords 2021-03-12 Glenn Morris Merge from origin/emacs-27 2c5f215419 Avoid crashes in Mew due to corrupted tool-bar label 7a23915618 * lisp/tooltip.el (tooltip): Doc fix for GTK. c4bbe02cc4 * lisp/help.el (help-for-help-internal): Doc fix; use impe... # Conflicts: # lisp/help.el # lisp/tooltip.el 2021-03-12 Glenn Morris Skip recent undo tests in batch mode for now * test/lisp/simple-tests.el (simple-tests--undo-in-region): Split into separate test. Skip in batch mode for now. (simple-tests--undo-equiv-table): Skip in batch mode for now. 2021-03-12 Stefan Monnier * lisp/cedet/{*.el,ede/*.el}: Use lexical-binding Remove a few redundant `:group` arguments as well. * lisp/cedet/ede.el: Use lexical-binding. Don't load `ede/files` at compile-time. (ede-speedbar): Declare function. (ede-load-project-file): Allow `rootreturn` to be a reference rather than a symbol. (ede-initialize-state-current-buffer): Pass `ROOT` as a reference rather than a symbol to `ede-directory-get-open-project` and `ede-load-project-file` so we don't need to make it dynamically scoped. (ede-flush-deleted-projects): Avoid `add-to-list` on a local var. * lisp/cedet/ede/files.el: Use lexical-binding. (ede-directory-get-open-project): Allow `rootreturn` to be a reference rather than a symbol. (ede-project-root-directory): Remove unused var `root`. (ede-expand-filename-impl): Remove unused vars `path` and `proj`. * lisp/cedet/cedet-idutils.el: Use lexical-binding. (cedet-idutils-search): Remove always-nil variable `scopeflags`. * lisp/cedet/data-debug.el: Use lexical-binding. (data-debug-insert-overlay-button, data-debug-insert-overlay-list-button) (data-debug-insert-buffer-button, data-debug-insert-buffer-list-button) (data-debug-insert-process-button): Remove always-nil variable `tip`. (data-debug-insert-ring-button): Remove unused var `ringthing`. (data-debug-insert-widget-properties): Remove unused var `type`. * lisp/cedet/semantic.el: Use lexical-binding. (semantic-mode): Strength-reduce `eval` to `symbol-value`. * lisp/cedet/ede/custom.el: Use lexical-binding. (ede-project-sort-targets): Remove unused vars `count`, `current`, and `order`. * lisp/cedet/ede/pconf.el: Use lexical-binding. (ede-proj-configure-synchronize): Remove unused var `add-missing`. * lisp/cedet/ede/pmake.el (ede-proj-makefile-garbage-patterns): Simplify via η-reduction. (ede-proj-makefile-dependencies): Use `seq-some` rather than `eval+or`. * lisp/cedet/ede/proj-elisp.el: Use lexical-binding. (project-compile-target): Remove unused var `elc`. (ede-update-version-in-source): Remove unused var `match`. (project-compile-target): Declare function `cedet-update-autoloads` from file we don't have. * lisp/cedet/cedet-cscope.el: Use lexical-binding. * lisp/cedet/cedet-files.el: Use lexical-binding. * lisp/cedet/cedet-global.el: Use lexical-binding. * lisp/cedet/cedet.el: Use lexical-binding. * lisp/cedet/ede/auto.el: Use lexical-binding. * lisp/cedet/ede/autoconf-edit.el: Use lexical-binding. * lisp/cedet/ede/config.el: Use lexical-binding. * lisp/cedet/ede/cpp-root.el: Use lexical-binding. * lisp/cedet/ede/detect.el: Use lexical-binding. * lisp/cedet/ede/generic.el: Use lexical-binding. * lisp/cedet/ede/linux.el: Use lexical-binding. * lisp/cedet/ede/locate.el: Use lexical-binding. * lisp/cedet/ede/makefile-edit.el: Use lexical-binding. * lisp/cedet/ede/proj-info.el: Use lexical-binding. * lisp/cedet/ede/proj-obj.el: Use lexical-binding. * lisp/cedet/ede/proj-prog.el: Use lexical-binding. * lisp/cedet/ede/proj-shared.el: Use lexical-binding. * lisp/cedet/ede/proj.el: Use lexical-binding. * lisp/cedet/ede/shell.el: Use lexical-binding. * lisp/cedet/ede/simple.el: Use lexical-binding. * lisp/cedet/ede/source.el: Use lexical-binding. * lisp/cedet/ede/speedbar.el: Use lexical-binding. * lisp/cedet/ede/util.el: Use lexical-binding. 2021-03-12 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-03-12 Michael Albinus Tramp sshfs fixes * doc/misc/tramp.texi (FUSE setup): Fix typo. * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-set-file-modes): Use `tramp-compat-set-file-modes'. * test/lisp/net/tramp-tests.el (tramp-test43-asynchronous-requests): Don't run for tramp-sshfs. 2021-03-12 Andrea Corallo Implement `no-native-compile' (bug#46983) * lisp/emacs-lisp/bytecomp.el (byte-compile-from-buffer): Capture `no-native-compile'. * lisp/emacs-lisp/comp.el (no-native-compile): Define new variable. (comp-spill-lap-function): Throw when `no-native-compile' was captured non-nil. (comp--native-compile): Catch `no-native-compile' if necessary and return nil in case. 2021-03-12 Robert Pluim Document how to create a branch for Git/Mercurial * doc/emacs/maintaining.texi (Creating Branches): Add instructions for git/Mercurial. 2021-03-12 Andrea Corallo Fix error reporting for async native compilation (bug#47024) * lisp/emacs-lisp/comp.el (comp--native-compile): During async compilation if we catch an error print it in a parsable way so we can report it to the user. 2021-03-12 Stefan Monnier * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Simplify (doh!) 2021-03-12 Stefan Monnier * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Tune down the warning Don't warn for always-nil bindings if the binding is made explicit. Fixes bug#47080. 2021-03-12 Stefan Monnier * lisp/emacs-lisp/syntax.el (syntax-propertize-rules): Use `macroexp-let2` This also silences the recently introduced compilation warning. 2021-03-12 Lars Ingebrigtsen Rename to image--transform-smoothing in image-mode.el * lisp/image-mode.el (image--transform-smoothing): Rename from image-transform-smoothing. (image-transform-properties, image-transform-reset): Adjust usage. 2021-03-12 Lars Ingebrigtsen Add a new `image-transform-smoothing' user option * doc/lispref/display.texi (Image Descriptors): Document it. * lisp/image.el (image-transform-smoothing): New user option. (create-image): Use it. (image--default-smoothing): New function. 2021-03-12 Lars Ingebrigtsen Fix compilation warning in python-wy.el after lexical rewrite * admin/grammars/python.wy: Require semantic/tag. In end of data: cedet/semantic/wisent/python-wy.el:862:1: Warning: the function `semantic-tag-name' might not be defined at runtime. 2021-03-12 Lars Ingebrigtsen Make byte-compiled uses of `define-minor-mode' more compatible * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Be more defensive about accessing minor mode variables. 2021-03-11 Yuan Fu Map redo records for undo in region to 'undo-in-region * lisp/simple.el (undo-equiv-table): Add explanation for undo-in-region, undo to the beginning of undo list and null undo. (undo): If equiv is 'undo-in-region, empty or t, set pending-undo-list to t. If the redo is undo-in-region, map buffer-undo-list to 'undo-in-region instead of t, if it is an identity mapping, map to 'empty. (undo-make-selective-list): Only continue when ulist is a proper list. * test/lisp/simple-tests.el (simple-tests--undo): Add test for undo-only in region. (simple-tests--sans-leading-nil): New helper function. (simple-tests--undo-equiv-table): New test for 'undo-equiv-table'. 2021-03-11 Stefan Monnier * lisp/mail/: Use lexical-binding Remove some redundant `:group` args as well. * lisp/mail/supercite.el: Use lexical-binding. (completer-disable): Declare var. (sc-set-variable): Don't rely on dynbind to access `help` variable. * lisp/mail/mail-extr.el: Use lexical-binding. (mail-extract-address-components): Avoid use of dynamic scoping to refer to local vars. * lisp/mail/mailabbrev.el: Use lexical-binding. (mail-abbrev-make-syntax-table): Rename `_` variable to `syntax-_`. * lisp/mail/mailheader.el: Use lexical-binding. (headers): Don't declare as dynbound globally. (mail-header-set, mail-header-merge): Declare `headers` as dynbound locally, instead. Mark those functions as obsolete. (mail-header-format): Use `alist-get` instead of `mail-header`. * lisp/mail/binhex.el (binhex-decode-region-external): Remove always-nil var `firstline`. * lisp/mail/emacsbug.el: Use lexical-binding. (report-emacs-bug): Remove always-nil var `message-end-point`. * lisp/mail/rmail-spam-filter.el: Use lexical-binding. (bbdb/mail_auto_create_p): Declare variable. * lisp/mail/rmail.el (rmail-get-new-mail): Remove always-nil var `delete-files`. * lisp/mail/rmailout.el: Use lexical-binding. (rmail-output-read-file-name): Remove unused var `err`. (rmail-convert-to-babyl-format): Remove unused var `count`. (rmail-output-as-mbox): Remove unused vars `from` and `date`. * lisp/mail/rmailsort.el: Use lexical-binding. (rmail-sort-messages): Remove unused var `msginfo`. * lisp/mail/rfc822.el: Use lexical-binding. * lisp/mail/rmailedit.el: Use lexical-binding. * lisp/mail/mailclient.el: Use lexical-binding. * lisp/mail/blessmail.el: Use lexical-binding. * lisp/mail/mail-hist.el: Use lexical-binding. * lisp/mail/rmailkwd.el: Use lexical-binding. * lisp/mail/rmailmsc.el: Use lexical-binding. * lisp/mail/uce.el: Use lexical-binding. * lisp/mail/unrmail.el: Use lexical-binding. 2021-03-11 Juri Linkov Update docstrings of 'delete'/'remove' to interlink each other (bug#47054) * lisp/subr.el (remove): Add xref to 'delete'. * src/fns.c (Fdelete): Add xref to 'remove'. 2021-03-11 Juri Linkov * lisp/tab-bar.el (tab-bar--current-tab-find): New function. (tab-bar-close-other-tabs, tab-bar-close-group-tabs): Use it. (tab-bar--history-pre-change): Rename from 'tab-bar-history--pre-change' to follow naming convention. (tab-bar-history-mode): Use renamed 'tab-bar--history-pre-change'. 2021-03-11 Paul Eggert On MS-Windows, fflush stderr after newline Problem reported by Ioannis Kappas (Bug#46388). * src/sysdep.c (errputc) [WINDOWSNT]: Flush stderr after newline. 2021-03-11 Stefan Monnier * lisp/outline.el (outline-font-lock-keywords): Simplify The `laxmatch` part of `font-lock-keywords` is just a boolean. 2021-03-11 Stefan Monnier * lisp: Remove yet more always-nil variables * lisp/align.el (align-region): Remove always-nil variable `group-c`. * lisp/ido.el (ido-make-prompt): Remove always-nil variable `prefix`. * lisp/xdg.el (xdg-mime-collect-associations): Remove always-nil variable `end`. * lisp/calc/calc-yank.el (calc-edit): Remove always-nil variable `flag`. * lisp/calendar/todo-mode.el (todo-edit-item--header): Remove always-nil variable `dayname`. (todo-show-categories-table): Remove always-nil variable `sortkey`. * lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-docstring-engine): Remove always-nil variable `err`. * lisp/emacs-lisp/tcover-ses.el: Remove always-nil variable `pause`. * lisp/eshell/em-ls.el (eshell-ls-files): Remove always-nil variable `ignore`. * lisp/net/ange-ftp.el (ange-ftp-copy-file-internal): Remove always-nil variable `temp2`. * lisp/progmodes/cperl-mode.el (cperl-tags-hier-init): Remove always-nil variables `l1`, `l2`, `l3`. (cperl-tags-treeify): Remove always-nil variable `l1`. * lisp/progmodes/ebrowse.el (ebrowse-tags-read-member+class-name): Remove always-nil variable `class`. * lisp/textmodes/artist.el (artist-draw-ellipse-with-0-height): Remove always-nil variable `fill-info`. * lisp/textmodes/flyspell.el (flyspell-emacs-popup): Remove always-nil variable `show-affix-info`. * lisp/textmodes/rst.el (rst-Ado): Remove always-nil variable `char`. * lisp/vc/vc.el (vc-diff-build-argument-list-internal): Remove always-nil variable `rev2-default`. 2021-03-11 Stefan Monnier * lisp/cedet: Remove always-nil variables * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-variables): Remove always-nil variable `conf-done`. * lisp/cedet/ede/project-am.el: Use ref instead of dynbound var. (project-rescan): Pass the ref. (project-am-expand-subdirlist): Use it. * lisp/cedet/semantic/idle.el (semantic-idle-work-core-handler): Fix misuse of the wrong `errbuf `variable. * lisp/cedet/semantic/scope.el (semantic-analyze-scoped-type-parts): Remove always-nil variable `extmeth`. * lisp/cedet/semantic/wisent/comp.el (wisent-context-name) (wisent-context-bindings): Make them into functions. (wisent-with-context): Use `dlet`. 2021-03-11 Stefan Monnier * lisp/emulation/edt.el (edt-with-position): Don't bind `left` (edt-find-forward, edt-find-next-forward, edt-sentence-forward) (edt-paragraph-forward): Adjust accordingly. 2021-03-11 Stefan Monnier * lisp/vc/pcvs-parse.el: Fix lexical-binding breakage (cvs-parse-table, cvs-parse-merge, cvs-parse-status, cvs-parse-commit): Declare vars set by `cvs-match` as dynamic. 2021-03-11 Stefan Monnier * lisp/ses.el (ses-set-cell): Use `macroexp-let2` (ses--\,@); Rename from `ses--metaprogramming`. 2021-03-11 Stefan Monnier * lisp/obsolete/iswitchb.el: Remove dead code (most-len, most-is-exact): Delete vars. (iswitchb-output-completion): Delete function. (iswitchb-completions): Delete dead code consequence of `most` being nil. 2021-03-11 Stefan Monnier * lisp/org/: Delete some always-nil variables * lisp/org/ob-lilypond.el (org-babel-lilypond-compile-lilyfile): Remove always-nil variable `arg-2`. * lisp/org/ol-gnus.el (org-gnus-store-link): Remove always-nil variables `newsgroup` and `xarchive`. * lisp/org/ol.el (org-store-link): Remove always-nil variable `description`. * lisp/org/org-clock.el (org-clock-special-range): Remove always-nil variables `m1` and `m`. * lisp/org/org-crypt.el (org--matcher-tags-todo-only): Declare var. * lisp/org/org-protocol.el (org-protocol-open-source): Remove always-nil variable `result`. * lisp/org/ox-odt.el (org-odt-format-label): Remove always-nil variable `short-caption`. (org-odt-link--inline-formula): Remove always-nil variables `width` and `height`. * lisp/org/ox.el (org-export--missing-definitions): Remove always-nil variable `seen`. 2021-03-11 Stefan Monnier * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Warn never-initialized vars (byte-compile-not-lexical-var-p): Remove Emacs<24 compatibility. 2021-03-11 Lars Ingebrigtsen Re-fix previous Info-fontify-node change * lisp/info.el (Info-fontify-node): Re-fix previous fix here (bug#34661) by fixing an off-by-one error in the `looking-back'. 2021-03-11 Stefan Monnier * lisp/mouse.el: Fix mouse-1-clock-follows-mouse = double This functionality was broken by commit 3d5e31eceb9dc1fb62b2b2, the problem being that we end up considering as distinct the events `down-double-mouse-1` and `double-down-mouse-1`. Reported by Eyal Soha (mouse--click-1-maybe-follows-link): Make sure the last element of the list passed to `event-convert-list` is indeed a "basic" event. 2021-03-11 Michael Albinus Add remote processes to Tramp sshfs method * doc/misc/tramp.texi (FUSE setup): Method sshfs supports also remote processes. * lisp/net/tramp-cache.el (tramp-get-file-property) (tramp-set-file-property): Move setting of `tramp-cache-unload-hook' out of function. * lisp/net/tramp.el (tramp-expand-args): New defun. (tramp-handle-make-process): * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band) (tramp-maybe-open-connection): * lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-send-command): Use it. * lisp/net/tramp-sshfs.el (tramp-methods) : Adapt `tramp-mount-args'. Add `tramp-login-args', `tramp-direct-async', `tramp-remote-shell', `tramp-remote-shell-login' and `tramp-remote-shell-args'. (tramp-connection-properties): Set "direct-async-process" fir sshfs. (tramp-sshfs-file-name-handler-alist): Add `exec-path', `make-process', `process-file', `set-file-modes', `shell-command', `start-file-process', `tramp-get-remote-gid', `tramp-get-remote-uid' and `tramp-set-file-uid-gid'. (tramp-sshfs-handle-exec-path, tramp-sshfs-handle-process-file) (tramp-sshfs-handle-set-file-modes): New defuns. * test/lisp/net/tramp-tests.el (tramp-test20-file-modes) (tramp-test28-process-file, tramp-test29-start-file-process) (tramp-test30-make-process, tramp-test32-shell-command) (tramp-test32-shell-command-dont-erase-buffer) (tramp-test34-explicit-shell-file-name, tramp-test35-exec-path) (tramp-test43-asynchronous-requests): Run also for tramp-sshfs. (tramp--test-shell-file-name): New defun. (tramp-test28-process-file) (tramp-test34-explicit-shell-file-name) (tramp-test43-asynchronous-requests): Use it. (tramp-test40-special-characters-with-stat) (tramp-test40-special-characters-with-perl) (tramp-test40-special-characters-with-ls) (tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl) (tramp-test41-utf8-with-ls): Remove superfluous skip. 2021-03-11 Petteri Hintsanen Make tags tables from Texinfo sources * doc/misc/Makefile.in (ETAGS, texifiles): New variables. (TAGS, tags, FORCE, ${ETAGS}): New targets. (bootstrap-clean maintainer-clean): Delete TAGS. * doc/lispref/Makefile.in (ETAGS, texifiles): New variables. (TAGS, tags, FORCE, ${ETAGS}): New targets. (bootstrap-clean maintainer-clean): Delete TAGS. * doc/lispintro/Makefile.in (ETAGS, texifiles): New variables. (TAGS, tags, FORCE, ${ETAGS}): New targets. (bootstrap-clean maintainer-clean): Delete TAGS. * doc/emacs/Makefile.in (ETAGS, texifiles): New variables. (TAGS, tags, FORCE, ${ETAGS}): New targets. (bootstrap-clean maintainer-clean): Delete TAGS. * Makefile.in (TAGS tags): Make tags in doc/emacs, doc/lispintro, doc/lispref and doc/misc. 2021-03-11 Philipp Stephani * src/image.c (image_set_transform): Don't use ! for Lisp object. * src/image.c (FRAME_SCALE_FACTOR): Define only when needed. 2021-03-11 Eli Zaretskii Fix wording of a recently added documentation * etc/NEWS: * doc/lispref/display.texi (Image Descriptors): Fix wording of the description of :transform-smoothing. 2021-03-11 Stefan Monnier * lisp/gnus/nnmh.el (nnmh-newsgroup-articles): Declare var Reported by Barry Fishman . Along the way, I checked other variables which are similarly let-bound to nil and then read with any intervening assignment, which found another similar case of missing `defvar`s plus a bit of dead code. * lisp/gnus/gnus-kill.el (gnus-apply-kill-file-internal): Remove constant nil var `beg`. * lisp/gnus/gnus-search.el (gnus-search-query-parse-kv): Remove constant nil var `return`. * lisp/gnus/gnus-start.el (gnus-ask-server-for-new-groups): Remove constant nil var `group`. (gnus-killed-assoc, gnus-marked-assoc, gnus-newsrc-assoc): Declare vars. * lisp/gnus/gnus-sum.el (gnus-compute-read-articles): Remove constant nil var `first`. * lisp/gnus/nnbabyl.el (nnbabyl-request-accept-article): Remove constant nil var `beg`. * lisp/gnus/nnfolder.el (nnfolder-possibly-change-group): Remove constant nil var `inf`. * lisp/gnus/nnrss.el (nnrss-request-article): Remove constant nil var `err`. 2021-03-10 Alan Third Enable selectable image smoothing (bug#38394) * lisp/doc-view.el (doc-view-insert-image): Always use smoothing in docview. * lisp/image-mode.el (image-transform-smoothing): New variable. (image-mode-map): Add smoothing binding. (image-transform-properties): Apply smoothing when requested. (image-transform-set-smoothing): New function. (image-transform-reset): Reset smoothing. * src/image.c (image_set_transform): Use new :transform-smoothing attribute. (syms_of_image): Add :transform-smoothing attribute. * doc/lispref/display.texi (Image Descriptors): Document new :transform-smoothing property. 2021-03-10 Juri Linkov * lisp/tab-bar.el (tab-bar-close-group-tabs): New command. (tab-close-group): New alias. (tab-bar-close-other-tabs): Rewrite to fix old bug where regardless of the returned value from tab-bar-tab-prevent-close-functions, only one tab was retained. 2021-03-10 Juri Linkov * lisp/tab-bar.el: 'C-x t G' (tab-group) assigns a group name to the tab. * lisp/tab-bar.el (tab-bar--tab, tab-bar--current-tab): Add tab group if any. (tab-bar-change-tab-group): New command. (display-buffer-in-new-tab): Handle tab-group alist entry. (tab-group): New alias. (tab-prefix-map): Bind "G" to 'tab-group'. 2021-03-10 Kévin Le Gouguec Highlight the entire summary line for selected articles * lisp/gnus/gnus-sum.el (gnus-highlight-selected-summary): Highlight the entire summary line (bug#47026). 2021-03-10 Stefan Kangas Remove Emacs 19 workaround from cperl-mode.el * lisp/progmodes/cperl-mode.el (cperl-make-indent): Remove Emacs 19 workaround. 2021-03-10 Andrea Corallo * lisp/loadup.el: Don't load pcase on native builds (bug#47025). 2021-03-10 Lars Ingebrigtsen Fix byte-compilation warning in benchmark-run * lisp/emacs-lisp/benchmark.el (benchmark-run): Avoid a byte-compilation warning about an empty let body (bug#46819). 2021-03-10 Andrea Corallo Fix truncated warnings (bug#47024) * lisp/emacs-lisp/comp.el (comp-run-async-workers): Bind `warning-fill-column' to `most-positive-fixnum'. 2021-03-10 Stefan Kangas * lisp/files.el (cd): Improve error message. 2021-03-10 Mattias Engdegård Mark string predicates side-effect-free * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add string>, string-greaterp, string-empty-p, string-prefix-p, string-suffix-p and string-blank-p, all recently marked pure. 2021-03-10 Stefan Kangas Remove several references to Emacs 22 and earlier * admin/charsets/mapfiles/README: * doc/emacs/custom.texi (Saving Customizations): * doc/lispintro/emacs-lisp-intro.texi (Simple Extension): * doc/misc/efaq-w32.texi (Location of init file): * doc/misc/gnus-faq.texi (FAQ 1-3): * doc/misc/gnus.texi (Top, Various, Image Enhancements): * lisp/erc/erc-menu.el (menu): * lisp/progmodes/cfengine.el (cfengine-fill-paragraph): Remove some references to Emacs 22 and earlier. * doc/lispref/buffers.texi: * doc/lispref/eval.texi: * doc/lispref/files.texi: * doc/lispref/keymaps.texi: * doc/lispref/loading.texi: * doc/lispref/minibuf.texi: * doc/lispref/positions.texi: * doc/lispref/variables.texi: Remove comments about "Emacs 19 specific" features. 2021-03-10 Stefan Kangas Fix duplicate ":" in ert-find-test-other-window prompt * lisp/emacs-lisp/ert.el (ert-find-test-other-window): Don't insert duplicate ":" in prompt. 2021-03-10 Stefan Kangas Do mode tagging in ert.el 2021-03-10 Stefan Kangas Use proper command substitutions in some docstrings * lisp/arc-mode.el (archive-mode): * lisp/ibuffer.el (ibuffer): * lisp/tar-mode.el (tar-mode): * lisp/textmodes/table.el (table-insert): Use substitute-command-keys instead of hardcoded keys in some docstrings. 2021-03-10 Stefan Kangas * lisp/userlock.el: Use lexical-binding. 2021-03-10 Stefan Kangas Use 'help-key-binding' face in userlock.el * lisp/userlock.el (userlock--fontify-key): New function. (ask-user-about-lock, ask-user-about-lock-help, (ask-user-about-supersession-threat) (ask-user-about-supersession-help): Add face 'help-key-binding' to displayed keys. 2021-03-10 Dmitry Gutov (project-switch-commands): Remove the ###autoload instruction * lisp/progmodes/project.el (project-switch-commands): Remove the ###autoload instruction. It's unnecessary and can cause surprises in some circumstances (bug#46986). 2021-03-10 Stefan Kangas * lisp/help.el (help--describe-translation): Fix typo. 2021-03-09 Stefan Monnier * lisp/mail/rmailmm.el: Use `cl-defstruct` and `lexical-binding` Remove redundant `:group` args. (rmail-mime-entity): Make it a `cl-defstruct`. (rmail-mime-entity-set-truncated): Mark as obsolete. (rmail-mime-display): New `cl-defstruct`. (rmail-mime-shown-mode, rmail-mime-hidden-mode, rmail-mime-raw-mode) (rmail-mime-toggle-hidden, rmail-mime-update-tagline) (rmail-mime-text-handler, rmail-mime-bulk-handler) (rmail-mime-process-multipart, rmail-mime-handle, rmail-mime-process) (rmail-mime-parse, rmail-mime-insert, rmail-show-mime): Adjust accordingly. (rmail-mime-toggle-raw): Apply de Morgan. (rmail-mime-insert-text): Remove unused var `tagline`. (rmail-mime-insert-image): Remove unused var `content-type`. (shr-inhibit-images, shr-width): Declare vars. (rmail-mime-insert-multipart): Remove unused vars `tagline` and `body`. (rmail-mime-insert): Remove unused var `tagline`. (rmail-search-mime-message): Remove unused var `body-end`. 2021-03-09 Paul Eggert Port alternate signal stack to upcoming glibc 2.34 * src/sysdep.c (sigsegv_stack): Increase size to 64 KiB and align it to max_align_t. This copies from Gnulib’s c-stack.c, and works around a portability bug in draft glibc 2.34, which no longer defines SIGSTKSZ when _GNU_SOURCE is defined. 2021-03-09 Stefan Monnier * src/buffer.c (Fbuffer_swap_text): Swap `mark-active` as well This avoids undesirable situations where `mark-active` is set even though the `mark` isn't. 2021-03-09 Juri Linkov * lisp/tab-bar.el (tab-bar-select-tab): Set window-state-put WINDOW arg to nil WINDOW arg nil will always create a new window regardless of the value returned by 'frame-root-window' that is nondeterministic - it returns an internal window when there are more than 1 window on the frame/tab, otherwise it returns a live window that was reused between different tabs (bug#46904) (tab-prefix-map): Bind "u" to 'tab-undo'. 2021-03-09 Stefan Monnier * lisp/emacs-lisp/cconv.el: Don't confuse a string for a docstring (cconv--convert-funcbody): Check there's something after a docstring. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-string-vs-docstring): New corresponding test. 2021-03-09 Andrea Corallo * src/comp.c (ABI_VERSION): Bump following-up 380ba045c4. * test/src/comp-resources/comp-test-funcs.el (comp-test-46670-1-f): Remove a warning. Merge commit '9cbdf20316' into native-comp 2021-03-09 Pip Cet * Fix comp unit type decl in eln files to fix GC crash (bug#46256) * src/comp.c (emit_ctxt_code): Allocate comp_unit as a Lisp_Object, not a pointer to pointer to Lisp_Object. 2021-03-09 Pip Cet Zero stale pointer when unloading comp units (bug#46256) * src/alloc.c (cleanup_vector): Call unload_comp_unit. * src/comp.c (unload_comp_unit): New function. 2021-03-09 Konstantin Kharlamov smerge-vc-next-conflict: Move to conflict markers more reliably * lisp/vc/smerge-mode.el (smerge-vc-next-conflict): Search for a conflict marker if call to (vc-find-conflicted-file) haven't resulted in a jump to one. And remove `buffer` variable that becomes unused. 2021-03-09 Dmitry Gutov Strip text properties from the default string * lisp/progmodes/project.el (project--read-regexp): Strip text properties from the default string (bug#47012). 2021-03-08 Lars Ingebrigtsen Make semantic/idle not move point after last change * lisp/cedet/semantic/idle.el (semantic--eldoc-info): Don't move point (bug#46999). 2021-03-08 Juri Linkov * lisp/progmodes/xref.el (xref-after-update-hook): New defcustom (bug#46992). (xref--insert-xrefs): Use run-hooks on it. 2021-03-08 Juri Linkov * lisp/faces.el (help-argument-name): Use grey background, not foreground https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00402.html 2021-03-08 Stefan Monnier * lisp/net/*.el: Use lexical-binding Also remove some redundant `:group` arguments. * lisp/net/eudc-export.el: Use lexical-binding. (eudc-create-bbdb-record): Use `cl-progv` and `apply` to avoid `eval`. * lisp/net/eudc-hotlist.el: Use lexical-binding. * lisp/net/eudc.el (eudc-print-attribute-value): Use `funcall` to avoid `eval`. * lisp/net/eudcb-bbdb.el: Use lexical-binding. (eudc-bbdb-filter-non-matching-record): Use `funcall` to avoid `eval`. Move `bbdb-val` binding to avoid `setq`. Use `seq-some` instead of `eval+or`. (eudc-bbdb-format-record-as-result): Use `dolist` and `pcase`. Use `funcall` to avoid `eval`. (eudc-bbdb-query-internal): Simplify a bit. * lisp/net/eudcb-ldap.el: Use lexical-binding. (eudc-ldap-get-host-parameter): Use `defalias` to avoid `eval-and-compile`. * lisp/net/telnet.el: Use lexical-binding. * lisp/net/quickurl.el: Use lexical-binding. * lisp/net/newst-ticker.el: Use lexical-binding. * lisp/net/newst-reader.el: Use lexical-binding. * lisp/net/goto-addr.el: Use lexical-binding. * lisp/net/gnutls.el: Use lexical-binding. * lisp/net/eudcb-macos-contacts.el: Use lexical-binding. * lisp/net/eudcb-mab.el: Use lexical-binding. * lisp/net/net-utils.el: Use lexical-binding. (finger): Remove unused var `found`. * lisp/net/network-stream.el (open-protocol-stream): Remove redundant `defalias`. * lisp/net/newst-plainview.el: Use lexical-binding. (newsticker-hide-entry, newsticker-show-entry): Remove unused var `is-invisible`. (w3m-fill-column, w3-maximum-line-length): Declare vars. * lisp/net/tramp.el (tramp-compute-multi-hops): * lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory): * lisp/net/tramp-cmds.el (tramp-default-rename-file): * lisp/net/webjump.el (webjump): Don't forget lexical-binding for `eval`. 2021-03-08 Michael Albinus Fix handling of `tramp-cache-{g,s}et-count-*' * lisp/net/tramp-cache.el (tramp-get-file-property) (tramp-set-file-property): Fix handling of `tramp-cache-{g,s}et-count-*'. 2021-03-08 Philipp Stephani Fix structure of condition object in nested 'ert-fail'. See the test 'ert-test-fail' for the expected structure. * lisp/emacs-lisp/ert.el (ert--should-signal-hook): Condition list should be (SYMBOL . DATA), not (SYMBOL DATA). * test/lisp/emacs-lisp/ert-tests.el (ert-test-fail-inside-should): Fix unit test. 2021-03-08 Simen Heggestøyl Use `pop-to-buffer-same-window' in `project-eshell' * lisp/progmodes/project.el (project-eshell): Use `pop-to-buffer-same-window' instead of `pop-to-buffer' to match the behavior of `M-x eshell'. 2021-03-08 Mauro Aranda Make checkdoc--next-docstring use the doc-string-elt property This follows from a fix for Bug#46918 and a discussion to use doc-string-elt: https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00232.html * lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): Check for a non-nil doc-string-elt property, instead of hard-coding the supported symbols. Use that property to position point at the doc-string. 2021-03-08 Michael Albinus Add Tramp sshfs method * doc/misc/tramp.texi (Top, Configuration): Insert sections 'FUSE-based methods' and 'FUSE setup' in menu. (Quick Start Guide): Fix @anchors. Add doas. Extend section 'Using @command{rclone}' to 'Using @acronym{FUSE}-based methods'. (External methods): Remove rclone paragraph. (FUSE-based methods, FUSE setup): New nodes. (Predefined connection information): Mention "mount-point". * etc/NEWS: Mention Tramp sshfs method. Fix typos and other oddities. * lisp/net/tramp-fuse.el: New file. * lisp/net/tramp-rclone.el (tramp-fuse): Require. (tramp-rclone-file-name-handler-alist): Replace `tramp-rclone-handle-*' by `tramp-fuse-handle-*' where appropriate. (tramp-rclone-handle-delete-directory) (tramp-rclone-handle-delete-file) (tramp-rclone-handle-directory-files) (tramp-rclone-handle-file-attributes) (tramp-rclone-handle-file-executable-p) (tramp-rclone-handle-file-name-all-completions) (tramp-rclone-handle-file-readable-p) (tramp-rclone-handle-insert-directory) (tramp-rclone-handle-insert-file-contents) (tramp-rclone-handle-make-directory, tramp-rclone-mount-point) (tramp-rclone-mounted-p, tramp-rclone-local-file-name): Remove. Functionality moved to tramp-fuse.el. (tramp-rclone-remote-file-name) (tramp-rclone-maybe-open-connection): Use `tramp-fuse-*' functions. * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band): Simplify check. * lisp/net/tramp-sshfs.el: New file. * lisp/net/tramp.el: Remove TODO item. * test/lisp/net/tramp-tests.el (tramp--test-sshfs-p): New defun. (tramp-test14-delete-directory): Use it. 2021-03-08 Stefan Kangas Delete two more items obsoleted in Emacs 23.1 * lisp/calendar/icalendar.el (icalendar--datetime-to-noneuropean-date): Remove alias obsolete since * lisp/obsolete/nnir.el (nnir-swish-e-index-file): Delete items obsolete since Emacs 23.1. 2021-03-08 Stefan Kangas Normalize version specifiers for make-obsolete and friends * lisp/auth-source.el (auth-source-forget-user-or-password) (auth-source-user-or-password, auth-source-hide-passwords): * lisp/calendar/icalendar.el (icalendar--datetime-to-noneuropean-date): * lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym-function-arglist): * lisp/emacs-lisp/debug.el (debugger-insert-backtrace): * lisp/obsolete/nnir.el (nnir-swish-e-index-file): * lisp/obsolete/starttls.el (starttls-any-program-available): Normalize version specifiers for make-obsolete and friends. 2021-03-08 Stefan Kangas * lisp/help-mode.el (help-mode-tool-bar-map): Fix tooltips. 2021-03-08 Stefan Kangas Add new face 'help-key-binding' for keybindings in help * lisp/faces.el (help-key-binding): New face. * lisp/help.el (help-for-help): Rename from 'help-for-help-internal'. Use 'substitute-command-keys' syntax. (help): Make into alias for 'help-for-help'. (help-for-help-internal): Make into obsolete alias for 'help-for-help'. (help--key-description-fontified): New function to add the 'help-key-binding' face. (help-key-description, substitute-command-keys) (describe-map-tree, help--describe-command) (help--describe-translation, describe-map): * lisp/help-fns.el (help-fns--key-bindings, describe-mode): Use above new function. * lisp/isearch.el (isearch-help-for-help-internal): Use `substitute-command-keys' syntax. * lisp/help-macro.el (make-help-screen): Use 'substitute-command-keys' and 'help--key-description-fontified'. Simplify. * src/keymap.c (describe_key_maybe_fontify): New function to add the 'help-key-binding' face to keybindings. (describe_vector): Use above new keybinding. (syms_of_keymap) : New DEFSYMs. (fontify_key_properties): New static variable. * lisp/tooltip.el (tooltip-show): Avoid overriding faces in specified tooltip text. * test/lisp/help-tests.el (with-substitute-command-keys-test): Don't test for text properties. (help-tests-substitute-command-keys/add-key-face) (help-tests-substitute-command-keys/add-key-face-listing): New tests. 2021-03-08 Dmitry Gutov Speed up xref rendering for matches on very long lines * lisp/progmodes/xref.el (xref--insert-xrefs): Cut up the current line into pieces here for multiple matches's summaries, so that xref--insert-xrefs can do less work (bug#46859). (xref--insert-xrefs): Do less work. (xref--outdated-p): Update accordingly to how the summary creation logic changed. (xref--buf-pairs-iterator): Update to the new calling convention. (xref-location-column): Effectively rename back to xref-file-location-column since the generic version is now unused. * test/lisp/progmodes/xref-tests.el (xref-matches-in-directory-finds-two-matches-on-the-same-line) (xref-matches-in-directory-finds-an-empty-line-regexp-match): Adjust to the xref-location-column change. (xref-matches-in-files-trims-summary-for-matches-on-same-line): New test. * test/lisp/progmodes/xref-resources/file1.txt: Change contents slightly to test the new xref--outdated-p code. 2021-03-08 Dmitry Gutov Xref test improvements * test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs): Fix not to rely on the default value. (xref-matches-in-files-includes-matches-from-all-the-files): New test. 2021-03-08 Stefan Monnier * lisp/net/tramp-cache.el: Fix misuse of bound-and-true-p (tramp-get-file-property, tramp-set-file-property): Check the var's value rather than its name. 2021-03-08 Stefan Monnier * lisp/net/ange-ftp.el: Fix problem pointed out by compiler warning (ange-ftp-fix-name-for-bs2000): Remove redundant `boundp` test. 2021-03-08 Stefan Monnier * lisp/erc/erc.el: Fix problem pointed out by compiler warning [ Also use `read-string` instead of `read-from-minibuffer`. ] (erc-part-from-channel): Comment out improbable reference to the formal argument from within the interactive spec. 2021-03-08 Stefan Monnier * lisp/cedet/semantic/fw.el (semantic-find-file-noselect): Fix warning Remove ugly hack trying to warn the user about some unknown problem, and which stopped working in 2013 when files.el started using lexical-binding. 2021-03-08 Stefan Monnier * lisp/skeleton.el (skeleton-read): Silence compiler warning 2021-03-08 Stefan Monnier * lisp/cedet/semantic/bovine.el: Fix recent regression The conversion to `lexical-binding` introduced a regression because `bovine/c.el` relied on inspecting the local variable `lse` in one of its callers. (semantic-bovinate-stream): Bind `lse` dynamically, because of `semantic-parse-region-c-mode`. (semantic-bovinate-nonterminal-check-map): Rename from `semantic-bovinate-nonterminal-check-obarray` to hold some other kind of table. (semantic-bovinate-nonterminal-check): Use a hash-table instead of an obarray. * lisp/cedet/semantic/bovine/c.el (semantic-parse-region-c-mode): Declare use of `lse` via dynamic scoping. * test/lisp/cedet/semantic-utest-c.el (semantic-test-c-preprocessor-simulation): Re-enable test. 2021-03-08 Stefan Monnier * lisp/emacs-lisp/bytecomp.el: Warn about unprefixed vars in `boundp` (byte-compile--check-prefixed-var): New fun, extracted from `byte-compile--declare-var`. (byte-compile--declare-var): Use it. (byte-compile-maybe-guarded): Use it as well. 2021-03-07 Andrea Corallo Handle `comp-native-driver-options' both as file-local both as global * src/comp.c (add_driver_options): Throw an error if `comp-native-driver-options' is set globally but 'gcc_jit_context_add_driver_option' is not available, ignore for the file-local case. 2021-03-07 Andrea Corallo Use `length=' and family where possible in native comp code * lisp/emacs-lisp/comp-cstr.el (comp-intersect-typesets) (comp-cstr-imm): Use Use `length=' and family where possible. * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-block) (comp-compute-dominator-frontiers) (batch-byte-native-compile-for-bootstrap): Likewise. 2021-03-07 Andrea Corallo * lisp/emacs-lisp/comp.el (w32-get-nproc): Suppress warning declaring it. For non Windows system. 2021-03-07 Andrea Corallo Allow for `comp-native-driver-options' to work as a file-local variable. 2021-03-07 Juri Linkov Remove outline-cycle-minor-mode and outline-cycle-highlight-minor-mode * lisp/outline.el (outline-font-lock-keywords): Use OVERRIDE or LAXMATCH depending on outline-minor-mode-highlight in outline-minor-mode. (outline-minor-mode-cycle, outline-minor-mode-highlight): Promote defvar to defcustom. (outline-minor-mode-highlight-buffer): Don't override existing faces. (outline-cycle-minor-mode, outline-cycle-highlight-minor-mode): Remove minor modes. * etc/compilation.txt: * etc/grep.txt: Enable outline-minor-mode-cycle and outline-minor-mode-highlight with outline-minor-mode. https://lists.gnu.org/archive/html/emacs-devel/2021-03/msg00144.html 2021-03-07 Andrea Corallo Work around GCC PR99126 on all libgccjit < 11 * src/comp.c (Fcomp__compile_ctxt_to_file): Work around GCC PR99126 on all libgccjit < 11. 2021-03-07 Michael Albinus * test/infra/Dockerfile.emba: Install texinfo. 2021-03-07 Glenn Morris Tag a semantic test that seems to hang recently * test/lisp/cedet/semantic-utest-c.el (semantic-test-c-preprocessor-simulation): Mark as unstable. 2021-03-07 Basil L. Contovounesios Fix string-replace error data * lisp/subr.el (string-replace): Signal an error with data that is a list, and whose contents are consistent with other uses of wrong-length-argument. * test/lisp/subr-tests.el (string-replace): Test for this. (subr-test-define-prefix-command): Pacify byte-compiler warnings. 2021-03-07 Eli Zaretskii Avoid aborts in native-comp subprocesses when exiting Emacs on Windows * src/w32.c (shutdown_handler): Clear the message stack when being shut down in noninteractive mode, to avoid aborting in shut_down_emacs when a native-compilation subprocess is killed because the parent Emacs exits. 2021-03-07 Eli Zaretskii Fix encoding of file names in comp.c * src/comp.c (Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Fix encoding of file names passed to libgccjit. 2021-03-07 Eli Zaretskii Use MS-Windows system APIs to get number of processors * lisp/emacs-lisp/comp.el: Use 'w32-get-nproc' instead of the environment variable NUMBER_OF_PROCESSORS. * src/w32proc.c (Fw32_get_nproc): New primitive. * src/w32.c (w32_get_nproc): New function. (sample_system_load): Call w32_get_nproc to initialize the number of processors on this system. * src/w32.h (w32_get_nproc): Add prototype. 2021-03-07 Eli Zaretskii Fix libgccjit PROGNAME on MS-Windows * src/comp.c [WINDOWSNT]: Import gcc_jit_context_set_str_option. (init_gccjit_functions): Load gcc_jit_context_set_str_option. (gcc_jit_context_set_str_option) [WINDOWSNT]: New macro. (Fcomp__compile_ctxt_to_file) [WINDOWSNT]: Pass the actual name of the libgccjit DLL to the library, to be used as PROGNAME. 2021-03-07 Michael Albinus * test/infra/Dockerfile.emba: Touch "info/emacs". 2021-03-07 Michael Albinus Adapt Dockerfile.emba according to recent configure changes * test/infra/Dockerfile.emba: Remove "--without-makeinfo" from configure. Add "lisp" to make. 2021-03-07 Stefan Monnier * lisp/cedet/semantic/wisent: Use lexical-binding * lisp/cedet/semantic/wisent/comp.el: lexical-binding. (wisent-defcontext): Make sure the vars are also dynbound in the files that `require` us. (wisent-state-actions, wisent-automaton-lisp-form): Use `obarray-make`. (wisent--compile-grammar): Rename from `wisent-compile-grammar`. (wisent-compile-grammar): Redefine as an obsolete function. (wisent-automaton-lisp-form): Avoid variable `state`. * lisp/cedet/semantic/grammar.el: Use lexical-binding. (semantic-grammar-require-form): New var. (semantic-grammar-header): Use it to provide new element `require-form`. (semantic-grammar-header-template): Use it. * lisp/cedet/semantic/wisent.el (wisent-compiled-grammar): New macro. * lisp/cedet/semantic/wisent/grammar.el (wisent-grammar-parsetable-builder): Use it in the generated code instead of the `wisent-compile-grammar` function. (wisent-grammar-mode): Set `semantic-grammar-require-form` so the generated ELisp files require `semantic/wisent` rather than `semantic/bovine`. * lisp/cedet/semantic/wisent/wisent.el: Use lexical-binding. * lisp/cedet/semantic/wisent/java-tags.el: Use lexical-binding. * lisp/cedet/semantic/wisent/python.el: Use lexical-binding. * lisp/cedet/semantic/wisent/javascript.el: Use lexical-binding. (semantic-ctxt-current-symbol): Remove unused var `symlist`. * admin/grammars/python.wy (wisent-python-EXPANDING-block): Declare dynbound var. * lisp/cedet/semantic/grammar-wy.el: Regenerate. 2021-03-07 Stefan Kangas Remove additional items obsolete since Emacs 22/23 * lisp/speedbar.el (speedbar-update-speed) (speedbar-navigating-speed): Remove variables obsolete since Emacs 23. (speedbar-dir-follow, speedbar-directory-buttons-follow): Don't use above removed variables. * lisp/erc/erc.el (erc-announced-server-name, erc-process) (erc-default-coding-system, erc-send-command): Remove variables and functions obsolete since Emacs 22. 2021-03-07 Stefan Kangas Remove some items obsolete since Emacs 22/23 from Gnus * lisp/gnus/gnus-art.el (gnus-article-hide-pgp-hook) (gnus-treat-strip-pgp, gnus-treat-display-xface): * lisp/gnus/gnus-msg.el (gnus-inews-mark-gcc-as-read): * lisp/gnus/gnus-start.el (nnmail-spool-file): * lisp/gnus/nnmail.el (nnmail-spool-file) (nnmail-fix-eudora-headers): Remove items obsolete since 22.1. * lisp/gnus/gnus-art.el (gnus-treat-display-x-face): * lisp/gnus/gnus-msg.el (gnus-inews-do-gcc): Don't use above obsolete symbols. * doc/misc/gnus.texi (Washing Mail, Not Reading Mail): Don't refer to above obsolete variables. * lisp/gnus/gnus.el (gnus-local-domain, gnus-carpal): * lisp/gnus/nnimap.el (nnimap-split-rule): * lisp/gnus/nntp.el (nntp-authinfo-file): Fix obsolete variable version format. 2021-03-07 Stefan Kangas Remove some references to Emacs 21 * lisp/erc/erc-track.el (erc-track-position-in-mode-line): * lisp/erc/erc.el (erc-header-line-format): * lisp/ibuffer.el (ibuffer-mode): * lisp/ruler-mode.el: Remove some references to Emacs 21. 2021-03-07 Stefan Kangas * lisp/mouse-drag.el: Use lexical-binding. * lisp/mouse-copy.el: Use lexical-binding. 2021-03-07 Stefan Monnier * lisp/cedet/semantic/bovine/*.el: Use lexical-binding * lisp/cedet/semantic/bovine/c.el: Use lexical-binding. (semantic-lex-cpp-define): Remove unused var `name`. (semantic-c-do-lex-if): Remove unused var `pt`. (semantic-analyze-tag-references): Remove unused var `refs`. (semantic-c-dereference-namespace): Remove unused vars `tmp` and `usingname`. (semantic-c-dereference-namespace-alias): Remove unused var `newtype`. (semantic-c-check-type-namespace-using): Remove unused vars `tmp` and `shortname`. (semanticdb-find-table-for-include): Remove unused var `prefix`. (semantic-default-c-setup, semantic-c-describe-environment): Use `derived-mode-p`. * lisp/cedet/semantic/bovine/debug.el: Use lexical-binding. * lisp/cedet/semantic/bovine/make.el: Use lexical-binding. * lisp/cedet/semantic/bovine/scm.el: Use lexical-binding. * lisp/cedet/semantic/lex.el (define-lex-analyzer): Define the var (and the function) in a single step. 2021-03-07 Stefan Monnier * lisp/obsolete/inversion.el: Use lexical-binding 2021-03-07 Glenn Morris * admin/admin.el (make-manuals-dist-output-variables): Update. 2021-03-07 Glenn Morris Simplify silent-rules build machinery * src/verbose.mk.in: New file. * configure.ac (AM_V, AM_DEFAULT_V): Remove output variables. (src/verbose.mk): New output file. * Makefile.in, admin/charsets/Makefile.in: * admin/grammars/Makefile.in, admin/unidata/Makefile.in: * doc/emacs/Makefile.in, doc/lispintro/Makefile.in: * doc/lispref/Makefile.in, doc/misc/Makefile.in, leim/Makefile.in: * lib-src/Makefile.in, lib/Makefile.in, lisp/Makefile.in: * lwlib/Makefile.in, nt/Makefile.in, oldXMenu/Makefile.in: * src/Makefile.in, src/verbose.mk.in, test/Makefile.in: Include src/verbose.mk rather than repeatedly defining AM_V_at etc. 2021-03-06 Andrea Corallo Fix `comp-cstr-intersection-no-hashcons' for negated result cstr * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-hashcons): When negated and necessary relax dst to t. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. 2021-03-06 Pip Cet Fix miscompilation of funcall forms in some cases (bug#46974) * lisp/emacs-lisp/comp.el (comp-call-optim-func): Call comp-cstr-imm-vld-p before relying on comp-cstr-imm to return the right value. 2021-03-06 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-simple): Suppress warning. 2021-03-06 Andrea Corallo Fix `=' propagation to handle -0.0 0.0 case * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-homogeneous): Fix indent + use `memql'. (comp-cstr-=): Handle 0.0 -0.0 idiosyncrasy * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests and fix enumeration. 2021-03-06 Glenn Morris * src/Makefile.in (base_obj): Remove GMP_OBJ, undefined since 202007. 2021-03-06 Glenn Morris Don't pass implicit flags to sub-makes * Makefile.in (info_misc, uninstall, texi_misc): Don't pass any implicit make flags to sub-makes. Ref https://lists.gnu.org/r/help-make/2021-03/msg00007.html 2021-03-06 Glenn Morris Remove the --without-makeinfo configure option (bug#46837) * configure.ac (--without-makeinfo): Remove option. (HAVE_MAKEINFO): Remove output variable. * Makefile.in (HAVE_MAKEINFO): Remove. (info_misc): Remove HAVE_MAKEINFO check. (info-real): Remove target. (info): Simplify. 2021-03-06 Stefan Monnier * lisp/cedet/srecode/compile.el: Fix last change (srecode-compile-inserter): Call `make-instance` properly. 2021-03-06 Basil L. Contovounesios Speed up json.el encoding This replaces most json-encode-* functions with similar json--print-* counterparts that insert into the current buffer instead of returning a string (bug#46761). Some unused but useful json-encode-* functions are kept for backward compatibility and as a public API, and the rest are deprecated. * etc/NEWS: Announce obsoletions. * lisp/json.el: Document organization of library. Make subsection headings more consistent. (json--encoding-current-indentation): Rename... (json--print-indentation-prefix): ...to this, to reflect new use. (json--encode-stringlike, json--encode-alist): Rename... (json--print-stringlike, json--print-alist): ...to these, respectively, and encode argument into current buffer instead. All callers changed. (json--print-string, json--print-unordered-map, json--print-array) (json--print): New functions. (json-encode-string, json-encode-plist, json-encode-array) (json-encode): Use them, respectively. (json-encode-number, json-encode-hash-table): Mark as obsolete aliases of json-encode. (json-encode-key, json-encode-list): Mark as obsolete in preference for json-encode. (json--print-indentation-depth, json--print-keyval-separator): New variables. (json--with-output-to-string): New macro. (json--print-indentation, json--print-keyword, json--print-key) (json--print-pair, json--print-map, json--print-list): New functions. (json--with-indentation): Use json--print-indentation-depth to avoid unnecessary string allocation. (json-encoding-default-indentation, json-pretty-print-max-secs): Clarify docstrings. (json--escape, json--long-string-threshold, json--string-buffer): Remove; no longer used. * lisp/progmodes/js.el (js--js-encode-value): Replace json-encode-string and json-encode-number with json-encode. (js-eval-defun): Use json--print-list to avoid json-encode-list->insert roundtrip. * test/lisp/json-tests.el (test-json-encode-number) (test-json-encode-hash-table, test-json-encode-hash-table-pretty) (test-json-encode-hash-table-lisp-style) (test-json-encode-hash-table-sort, test-json-encode-list): Replace uses of obsolete functions with the equivalent use of json-encode. (test-json-encode-key): Suppress obsoletion warnings. (test-json-encode-string): Check that text properties are stripped. 2021-03-06 Stefan Monnier * lisp/emacs-lisp/bindat.el (bindat-struct): Fix Edebug def 2021-03-06 Stefan Monnier * lisp/emulation/: Use lexical-binding * lisp/emulation/cua-base.el: Use lexical-binding. Remove redundant `:group` arguments. (cua-mode): Don't use `:require` since the autoload on `define-minor-mode` takes care of loading the mode when custom-setting it. * lisp/emulation/cua-gmrk.el: Use lexical-binding. (cua--copy-rectangle-to-global-mark): Remove unused var `src-buf`. * lisp/emulation/edt-mapper.el: Use lexical-binding. * lisp/emulation/edt.el: Use lexical-binding. Remove redundant `:group` arguments. (edt-with-position): Allow `top`, `left`, and `far` to be left unused in `body`. * lisp/emulation/keypad.el: Use lexical-binding. * lisp/emulation/viper-cmd.el: Move `provide` to the end. (viper-read-string-with-history): Strength reduce `eval` to `symbol-value`. * lisp/emulation/viper-ex.el: Use lexical-binding. Remove redundant `:group` arguments. Move `provide` to the end. * lisp/emulation/viper-init.el: Use lexical-binding. * lisp/emulation/viper-keym.el (viper-toggle-key): Use `dolist`. (viper-insert-diehard-map): Use `string`. (viper-modify-major-mode): Use `alist-get` and `setf`. * lisp/emulation/viper-macs.el (viper-ex-work-buf): Move `provide` to the end. (viper-record-kbd-macro): Strength reduce `eval` to `symbol-value`. (viper-describe-kbd-macros): Return value is not significant. (viper-keyseq-is-a-possible-macro): Use `seq-some`. (viper-common-seq-prefix): Use `seq-every-p`. * lisp/emulation/viper-mous.el: Use lexical-binding. Remove redundant `:group` arguments. Move `provide` to the end. (viper-remember-current-frame): Accept arbitrary ignored args. (viper-parse-mouse-key): Strength reduce `eval` to `symbol-value`. Remove unused var `key-spec`. (viper-bind-mouse-search-key, viper-bind-mouse-insert-key): Apply de Morgan. * lisp/emulation/viper-util.el: Move `provide` to the end. (viper-move-marker-locally, viper-push-onto-ring, viper-save-setting): Strength reduce `eval` to `symbol-value`. (viper-event-vector-p, viper-char-symbol-sequence-p, viper-char-array-p): Use `seq-every-p`. * lisp/emulation/viper.el (viper-non-hook-settings): Eta-reduce use of `viper-remember-current-frame`. 2021-03-06 Basil L. Contovounesios Various map.el improvements * lisp/emacs-lisp/seq.el (seq-do-indexed): Return nil as per doc. * lisp/emacs-lisp/map.el: Require Emacs >= 26 due to dependence on 5-arg alist-get. Bump package to version 3.0. Fix other headers. (Bug#46754) (map--plist-p): Detect list starting with nil as plist, not alist. (map-elt, map-filter, map-apply, map--make-pcase-bindings) (map--make-pcase-patterns): Simplify. (map-let, map-put, map-nested-elt, mapp): Update docstring for plist support. (map-delete): Fix OBOE on arrays. Split into cl-defmethods. (map-values, map-values-apply): Specialize for arrays. (map-pairs, map-keys-apply, map-put!): Improve docstring. (map-length): Clarify docstring w.r.t. duplicate keys. Split into cl-defmethods. Optimize default implementation. (map-copy): Use copy-alist on alists. Split into cl-defmethods. (map-contains-key): Add plist support. Clarify docstring w.r.t. optional argument. Simplify default implementation. (map-some, map-every-p, map-merge, map-merge-with, map--into-hash): Don't use map-apply for side effects. (map-into): Preserve plist ordering. Improve docstrings. (map-insert): Add hash-table and array support. (map-inplace): Remove unused error symbol. (map-do): Return nil as per doc. * etc/NEWS: Announce new user-visible behavior. * test/lisp/emacs-lisp/map-tests.el: Prefer should-not over (should (not ...)) in general. (with-maps-do): Fix docstring. (with-empty-maps-do): New macro. (test-map-elt-default, test-mapp, test-map-keys, test-map-values) (test-map-pairs, test-map-length, test-map-copy, test-map-apply) (test-map-do, test-map-keys-apply, test-map-values-apply) (test-map-filter, test-map-remove, test-map-empty-p) (test-map-contains-key, test-map-some, test-map-every-p): Use it. (test-map-plist-p, test-map-put!-new-keys, test-map-insert-empty) (test-map-insert, test-map-delete-empty, test-map-copy-alist) (test-map-contains-key-testfn, test-map-into-hash-test) (test-map-into-empty, test-map-merge, test-map-merge-empty): New tests. (test-map-elt): Test array key that is within bounds but not fixnum. (test-map-put!): Use map--plist-p. Remove redundant tests. (test-map-put-alist-new-key): Don't modify list literal. (test-map-put-testfn-alist, test-map-put-return-value): Silence obsoletion warnings. (test-map-delete): Check for OBOE on arrays. (test-map-delete-return-value): Remove test made redundant by test-map-delete. (test-map-nested-elt, test-map-into): Test plists too. 2021-03-06 Alan Mackenzie CC Mode: Fix calculation of c-parse-state when there're macros with braces This fixes bug #46951. * lisp/progmodes/cc-engine.el (c-append-lower-brace-pair-to-state-cache): Ensure the starting point for backward scanning is not within a macro which doesn't contain HERE. 2021-03-06 Stefan Monnier * lisp/progmodes/flymake.el (flymake-log): Push the right code * lisp/progmodes/flymake.el (flymake-log): Simplify 2021-03-06 Eli Zaretskii Revert "Fix Makefile subshell output when run in parallel" This reverts commit 117505454ce04c0c0ce2c2b4058823cf764fc2eb. It breaks the build for versions of GNU Make that don't support -O. 2021-03-06 Basil L. Contovounesios Fix Makefile subshell output when run in parallel For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-03/msg00255.html * Makefile.in (texi_misc): Avoid interspersing parallel Make output with that from subshell. 2021-03-06 Basil L. Contovounesios Pacify some semantic-tag-make-plist warnings * lisp/cedet/semantic/tag.el (semantic-tag-make-plist): Define before its first use to pacify some recent "may not be defined at runtime" warnings after turning on lexical-binding. 2021-03-06 Lars Ingebrigtsen Remove mention of using defun- and defvar- as prefixes * doc/lispref/tips.texi (Coding Conventions): Remove mention of using defun- and defvar- as prefixes, as this is something that we rarely do in Emacs (bug#46899). 2021-03-06 Eli Zaretskii Improve documentation of Bindat * doc/lispref/processes.texi (Bindat Types, Bindat Functions) (Bindat Computed Types): Improve wording and add indexing. * etc/NEWS: Add a pointer to the ELisp manual for "Bindat". 2021-03-06 Protesilaos Stavrou Pull Modus themes version 1.2.3 from upstream This syncs with the following upstream revision: Update to version 1.2.3 0a36239 2021-03-05 19:43:30 +0200 https://gitlab.com/protesilaos/modus-themes/-/commit/0a36239baf908585cdf32c6188eb86713d9bf6c6 For discussion, see bug#45068 and the following upstream issue: https://gitlab.com/protesilaos/modus-themes/-/issues/162 * doc/misc/modus-themes.org: * etc/themes/modus-operandi-theme.el: * etc/themes/modus-themes.el: * etc/themes/modus-vivendi-theme.el: Update to version 1.2.3. 2021-03-06 Protesilaos Stavrou Update Modus themes to their version 1.2.0 * doc/misc/modus-themes.org: Add new version of the manual, with changes to markup and references to the latest state of the project. * etc/themes/modus-vivendi-theme.el: * etc/themes/modus-operandi-theme.el: Provide updated version of each theme, which expands the contents of 'modus-themes.el' (bug#45068). * etc/themes/modus-themes.el: Add new supportive file. This is where theme data, functions, and face definitions are defined. 2021-03-06 Basil L. Contovounesios Conditionally use macroexp-file-name in Flymake * lisp/progmodes/flymake.el (flymake-log): Reinstate Emacs 26 support by conditionally using macroexp-file-name which is new in Emacs 28 (bug#46957). 2021-03-06 Stefan Monnier * * lisp/cedet/semantic: Use lexical-binding in the generated grammars * admin/grammars/c.by (typesimple): Bind `semantic-c-classname` dynamically. * lisp/cedet/semantic/bovine.el: Use lexical-binding. (semantic-lambda): Silence warnings if the `vals` arg is not used. * lisp/cedet/semantic/grammar-wy.el: Re-generate. * lisp/cedet/semantic/bovine/grammar.el: Use lexical-binding. (bovine-grammar-expand-action): Silence warnings if some of the `vals`, `start`, or `end` args is not used. (bovine--make-parser-1): Use lexical-binding in the generated files. * lisp/cedet/semantic/wisent/grammar.el: Use lexical-binding. (wisent--make-parser-1): Use lexical-binding in the generated files. 2021-03-06 Stefan Kangas Add some new tests for keymap.c * test/src/keymap-tests.el (keymap-define-key/undefined) (keymap-define-key/keyboard-macro, keymap-define-key/lambda) (keymap-define-key/keymap, keymap-define-key/menu-item) (keymap-lookup-key/list-of-keymaps, keymap-lookup-key/too-long): New tests. (keymap-lookup-key): Extend test slightly. 2021-03-06 Stefan Monnier * lisp/cedet/srecode/*.el: Use lexical-binding * lisp/cedet/srecode/compile.el (srecode-compile-inserter): Use `make-instance` instead of the class name-as-function. * lisp/cedet/srecode/fields.el (srecode-field-behind-hook): Remove unused var `field`. * lisp/cedet/srecode/find.el (srecode-load-tables-for-mode): Simplify. * lisp/cedet/srecode/getset.el (srecode-semantic-selected-tag): Declare var. * lisp/cedet/srecode/mode.el (srecode-minor-mode): Mark references to non-existing `srecode-m3-items` function. * lisp/cedet/srecode/srt-mode.el (srecode-parse-this-macro): Remove unused var `raw`. 2021-03-06 Stefan Monnier Bindat: new macro-expansion based data layout language Thorough redesign of the Bindat system, which makes it possible to define new Bindat type forms, define recursive types, control the values returned when unpacking, freely mix arbitrary computations with type definitions, as well as support for arbitrary sized integers. This also reverts the recent addition of the `bindat-spec` macro and the support for 64bit integers in the old Bindat language since that is now considered obsolete anyway. * doc/lispref/processes.texi (Bindat Types): Rename from `Bindat Spec` and rewrite for the new sublanguage. (Bindat Functions): Adjust to the new terminology. (Bindat Computed Types): New node. * lisp/emacs-lisp/bindat.el (bindat--type): New type. (bindat--unpack-u64, bindat--unpack-u64r): Delete functions. (bindat--unpack-item, bindat--pack-item, bindat--fixed-length-alist): Revert addition of support for 64bit integers. (bindat--unpack-group, bindat--length-group, bindat--pack-group): Handle the new `bindat--type` values. (bindat-spec): Revert addition of this macro. (bindat--unpack-uint, bindat--unpack-uintr, bindat--pack-uint) (bindat--pack-uintr): New functions. (bindat-type, bindat-defmacro, bindat--pcase): New macros. (bindat-type): New Edebug elem. (bindat--type): New generic function. (bindat--primitives): New constant. (bindat--macroenv, bindat--op): New vars. (bindat--make-docstring, bindat--fun, bindat--makefun, bindat--toplevel): New functions. * test/lisp/emacs-lisp/bindat-tests.el: Use `bindat-type`. (ip): New Bindat type. (header-bindat-spec, data-bindat-spec, packet-bindat-spec): Adjust to new `bindat-type` macro. (bindat-test-unpack): Simplify now that the order of fields is preserved. (bindat-test--int-websocket-type, bindat-test--LEB128): New consts. (bindat-test--pack-val, bindat-test--sint, bindat-test--recursive): New tests. 2021-03-05 Mattias Engdegård Make lambda-lifting work again * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Fix typo. * test/lisp/emacs-lisp/cconv-tests.el (cconv-convert-lambda-lifted): Add test case. 2021-03-05 Tassilo Horn Improve rcirc-authenticated-hook docstring * lisp/net/rcirc.el (rcirc-authenticated-hook): Improve docstring. 2021-03-05 Stefan Monnier * lisp/emacs-lisp/bindat.el: Minor refactoring (bindat--unpack-str, bindat--unpack-strz, bindat--unpack-bits): New functions, extracted from `bindat--unpack-item`. (bindat--unpack-item): Use them. (bindat--align): New function. (bindat--unpack-group, bindat--length-group, bindat--pack-group): Use it. (bindat-get-field): Allow integers to index both lists (as returned by `repeat`) and vectors (as returned by `vec`). (bindat--pack-str, bindat--pack-bits): New functions, extracted from `bindat--pack-item`. (bindat--pack-item): Use them. * test/lisp/emacs-lisp/bindat-tests.el (struct-bindat): Place the fields in the order in which they appear in the structs. 2021-03-05 Stefan Monnier * lisp/emacs-lisp/gv.el (edebug-after): Don't run the getter in the setter This fixes bug#46573 which was introduced by commit d79cf638f278e50c22feb53d6ba556f5ce9d7853. The new code is a middle ground, which makes sure the instrumentation point is used (so the coverage checker won't have ghost unreachable instrumentation points) yet without artificially running the getter when we only need to run the setter. 2021-03-05 Stefan Monnier * src/fns.c (Frandom): Handle bignum `limit`s (ccall2, get_random_bignum): New functions. 2021-03-05 Michael Albinus Declare some completion predicates * lisp/filenotify.el (file-notify-handle-event): * lisp/net/dbus.el (dbus-handle-event): Declare `completion-predicate'. 2021-03-05 Masahiro Nakamura * doc/misc/tramp.texi (Remote shell setup): Fix reference. * doc/misc/tramp.texi (Remote shell setup): Fix reference. (Do not merge) 2021-03-05 Eli Zaretskii Fix some unsafe uses of SSDATA in comp.c * src/comp.c (comp_hash_source_file) (Fcomp__compile_ctxt_to_file, Fnative_elisp_load): Encode file names before passing them to library APIs. (Fcomp__compile_ctxt_to_file): use emacs_fopen instead of fopen. (declare_lex_function): Avoid keeping a 'char *' pointer around while calling Lisp, which could trigger GC, which could relocate string data. 2021-03-05 Lars Ingebrigtsen Improve the documentation of :extra in cl-defmethod * doc/lispref/functions.texi (Generic Functions): Improve documentation of :extra (bug#46917). * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Ditto. 2021-03-05 Mauro Aranda Fix qualifiers order for loadhist-unload-element in elp.el * lisp/emacs-lisp/elp.el (loadhist-unload-element): The :extra qualifier is expected to come before the other qualifiers, so do that (bug#46917). 2021-03-05 Stephen Berman Restrict the version guesser to top-level headings * lisp/help-fns.el (help-fns--first-release): Restrict the version guesser to top-level section -- looking in all headings leads to false positives (bug#46889). 2021-03-05 Lars Ingebrigtsen Actually fill the correct paragraph in `lisp-fill-paragraph' * lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): Fix previous change here by actually filling the correct paragraph (bug#28937). 2021-03-05 Eli Zaretskii Fix initialization of 'while-no-input-ignore-events' * src/keyboard.c (syms_of_keyboard_for_pdumper): Don't reset 'while-no-input-ignore-events' after loading the dump file. (Bug#46940) 2021-03-05 Basil L. Contovounesios Don't override load-path in require-theme * lisp/custom.el (require-theme): Open-code 'require' error, because binding load-path can prevent other libraries from loading on error, such as debug.el, which gives a misleading error. (Bug#45068) 2021-03-05 Andrea Corallo Harden `comp-abi-hash' computation Account for subr arity in `comp-abi-hash' computation as that's part of the ABI exposed to .eln files. * src/comp.c (Fcomp__subr_signature): New support function. (hash_native_abi): Make use of. (syms_of_comp): Register 'Scomp__subr_signature'. 2021-03-05 Pip Cet Don't ignore lexically-bound variables in a defvar (bug#46912) * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Walk the value form of a defvar. 2021-03-05 Glenn Morris * Makefile.in: Ensure non-info forms of doc/misc have an Emacs binary. 2021-03-05 Stefan Monnier * lisp/emacs-lisp/cl-generic.el: Make `doc-string` prop work with qualifiers (cl--defmethod-doc-pos): New function. (cl-defmethod): Use it. 2021-03-04 Andrea Corallo Makefile.in (ELN_DESTDIR): Remove unnecessary double quoting. 2021-03-04 Lars Ingebrigtsen Add a command in package mode for opening home pages directly * doc/emacs/package.texi (Package Menu): Document it. * lisp/emacs-lisp/package.el (package-browse-url): New command and keystroke (bug#46927). 2021-03-04 Eli Zaretskii Fix typos and doc strings in native-compilation files * lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose) (comp-always-compile, comp-deferred-compilation-deny-list) (comp-bootstrap-deny-list, comp-never-optimize-functions) (comp-async-jobs-number, comp-async-cu-done-hook) (comp-async-all-done-hook, comp-async-env-modifier-form) (comp-pass, comp-native-compiling, comp-post-pass-hooks) (comp-known-predicate-p, comp-pred-to-cstr) (comp-symbol-values-optimizable, comp-limple-assignments) (comp-limple-calls, comp-limple-branches, comp-block) (comp-vec--verify-idx, comp-vec-aref, comp-vec-append) (comp-vec-prepend, comp-block-preds) (comp-ensure-native-compiler, comp-log, comp-log-func) (comp-loop-insn-in-block, comp-byte-frame-size) (comp-add-func-to-ctxt, comp-spill-lap-function, comp-spill-lap) (comp-lap-fall-through-p, comp-new-frame, comp-emit-set-call) (comp-copy-slot, comp-latch-make-fill, comp-emit-cond-jump) (comp-body-eff, comp-op-case, comp-prepare-args-for-top-level) (comp-limplify-top-level, comp-negate-arithm-cmp-fun) (comp-emit-assume, comp-cond-cstrs-target-mvar) (comp-function-foldable-p, comp-function-call-maybe-fold) (comp-form-tco-call-seq, comp-clean-up-stale-eln) (comp-delete-or-replace-file, comp--native-compile) (native--compile-async, native-compile) (batch-byte-native-compile-for-bootstrap): Fix typos, wording, and punctuation in doc strings. * lisp/loadup.el: Fix typos. * src/lread.c (syms_of_lread): Doc fix. 2021-03-04 Eli Zaretskii Update documentation of reading passwords * doc/emacs/mini.texi (Passwords): Update to match the modified implementation. (Bug#46902) Add indexing. 2021-03-04 Mauro Aranda Make checkdoc work with qualified methods * lisp/emacs-lisp/checkdoc.el (checkdoc--next-docstring): Handle cl-defmethod in a case of its own. Check for the presence of qualifiers, and skip them accordingly until the docstring. * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-cl-defmethod-qualified-ok) (checkdoc-cl-defmethod-with-extra-qualifier-ok) (checkdoc-cl-defmethod-with-extra-and-nil-args-ok): Add tests for the fix. 2021-03-04 Lars Ingebrigtsen Add "of" as a keyword in js-mode * lisp/progmodes/js.el (js--keyword-re): Add the "of" of "for ... of" in ECMAScript 2018 (bug#46924). 2021-03-04 Matt Armstrong Call the set_buffer_overlays_ setters * src/buffer.c (Fkill_buffer): Call set_buffer_overlays_before and set_buffer_overlays_after instead of setting the fields directly (bug#46914). 2021-03-04 Glenn Morris Generate info/dir directly from any org sources * Makefile.in (texi_misc): New variable. (srcdir_doc_info_dir_inputs): Use texi_misc. (${srcdir}/info/dir): No longer depend on info-real. 2021-03-04 Glenn Morris * doc/misc/Makefile.in (echo-sources): New phony target. * build-aux/make-info-dir: Handle .org input files. 2021-03-04 Basil L. Contovounesios Decouple require-theme from load-theme * lisp/custom.el (require-theme): Refashion after 'require', as a function for loading only named features. Do not call load-theme (bug#45068). * etc/NEWS: Update its announcement accordingly. * doc/lispref/customize.texi (Custom Themes): Document it. * etc/themes/modus-operandi-theme.el: * etc/themes/modus-vivendi-theme.el: Remove redundant calls to 'provide'. * test/lisp/custom-tests.el (custom-tests--with-temp-dir): New macro. (custom-theme--load-path): Use it. (custom-tests-require-theme): New test. 2021-03-04 Mauro Aranda Remove copy-pasto from image-dired.el * lisp/image-dired.el (image-dired-dired-edit-comment-and-tags): Remove reference to widget-example-repeat. 2021-03-04 Mauro Aranda Remove duplicated tests in checkdoc-tests.el * test/lisp/emacs-lisp/checkdoc-tests.el (checkdoc-cl-defmethod-ok) (checkdoc-cl-defmethod-with-types-ok, checkdoc-cl-defun-with-key-ok) (checkdoc-cl-defun-with-allow-other-keys-ok) (checkdoc-cl-defun-with-default-optional-value-ok) (checkdoc-cl-defun-with-destructuring-ok): This tests were duplicated, so keep one copy of them. Checked by diffing two files with the suspected tests, and supported by the fact that running occur with the regexp "^(ert-deftest" reported 14 matches, while the tests being run were 8. 2021-03-04 Lars Ingebrigtsen Make radio checkboxes work in eww * lisp/net/eww.el (eww-toggle-checkbox): Actually update the :checked values in the form. 2021-03-04 Andrea Corallo * src/comp.c (hash_native_abi): Account for `system-configuraton-options'. 2021-03-04 Glenn Morris Fix a doc/misc clean rule * doc/misc/Makefile.in (TEXI_FROM_ORG): New variable. (orgclean): Fix rule. 2021-03-04 Basil L. Contovounesios Fix pcase dontcare pattern in cl--sm-macroexpand For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-03/msg00119.html * lisp/emacs-lisp/cl-macs.el (cl--sm-macroexpand): Fix recently uncovered use of old name for pcase--dontcare. 2021-03-04 Stefan Monnier * lisp/emacs-lisp/pcase.el (pcase-defmacro): Fix `pcase-tests-macro` * lisp/emacs-lisp/radix-tree.el (radix-tree-leaf): Simplify accordingly. 2021-03-03 Ulf Jasper Preserve group structure on opml import and export. * lisp/net/newst-backend.el (newsticker--raw-url-list-defaults), (newsticker-url-list-defaults), (newsticker--get-news-by-url), (newsticker--sentinel-work), (newsticker--parse-atom-0.3), (newsticker--decode-rfc822-date), (newsticker--image-download-by-wget), (newsticker--image-save), (newsticker--image-download-by-url), (newsticker--cache-save), (newsticker--stat-num-items): Fix indentation. (newsticker-opml-export): Preserve group structure on export. (newsticker--opml-insert-elt), (newsticker--opml-insert-group), (newsticker--opml-insert-feed): New. (newsticker--opml-import-outlines): (newsticker-opml-import): Preserve group structure on import. (Fixes fourth issue in Bug#41376.) 2021-03-03 Pip Cet Don't call _setjmp through a function pointer (Bug#46824) * src/comp.c (helper_link_table): Don't include SETJMP except on Windows. (emit_setjmp): Don't use function pointers except on Windows. (declare_runtime_imported_funcs): Don't import SETJMP at runtime. (ABI_VERSION): Bump. * test/src/comp-tests.el (46824-1): New test. * test/src/comp-resources/comp-test-funcs.el (comp-test-46824-1-f): New function. 2021-03-03 Andrea Corallo * src/comp.c (return_nil): Make it not a nested function. 2021-03-03 Andrea Corallo Fix two compiler ICEs dealing with nan and infinity * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): Don't crash when truncate fails. * test/src/comp-test-funcs.el (comp-test-=-nan): Add two functions to be compiled. 2021-03-03 Juri Linkov New mode outline-cycle-minor-mode with Orgmode-like TAB cycling on headings * lisp/outline.el (outline-mode-cycle-map): New keymap from outline-mode-map. (outline-mode-map): Inherit from outline-mode-cycle-map. (outline-font-lock-keywords): Append keymap and face depending on 'outline-minor-mode-cycle' and 'outline-minor-mode-highlight'. (outline-minor-mode-cycle, outline-minor-mode-highlight): New variables. (outline-minor-mode-highlight-buffer): New function. (outline-minor-mode): Handle 'outline-minor-mode-cycle' and 'outline-minor-mode-highlight'. (outline-cycle-minor-mode, outline-cycle-highlight-minor-mode): New minor modes (bug#45147). * etc/compilation.txt: * etc/grep.txt: Enable outline-cycle-highlight-minor-mode. 2021-03-03 Stefan Kangas Make inversion.el obsolete (Bug#46841) * lisp/cedet/inversion.el: * test/lisp/cedet/inversion-tests.el: Move from here... * lisp/obsolete/inversion.el: * test/lisp/obsolete/inversion-tests.el: ...to here. * lisp/cedet/cedet.el (cedet-version): Make obsolete. * lisp/cedet/cedet-cscope.el (cedet-cscope-version-check): * lisp/cedet/cedet-global.el (cedet-gnu-global-version-check): * lisp/cedet/cedet-idutils.el (cedet-idutils-version-check): * lisp/cedet/ede/make.el (ede-make-check-version): Use 'version<' instead of 'inversion-check-version'. * lisp/cedet/semantic/db-file.el (semanticdb-load-database): Don't use 'inversion-test'. * lisp/cedet/semantic/ede-grammar.el (ede-proj-makefile-insert-variables): Don't add inversion to loadpath. * lisp/speedbar.el: Remove stale comment. 2021-03-03 Eli Zaretskii Fix compilation warnings in --with-wide-int build on Windows * src/comp.c (emit_rvalue_from_emacs_uint) (emit_rvalue_from_lisp_word_tag): Fix comparison of unsigned values. (gcc_jit_context_new_rvalue_from_ptr): Define only if LISP_WORDS_ARE_POINTERS, to avoid compilation warning. (init_gccjit_functions): Load gcc_jit_context_new_rvalue_from_ptr only if LISP_WORDS_ARE_POINTERS. 2021-03-03 Eli Zaretskii Avoid aborting on MS-Windows at startup * src/emacs.c (set_invocation_vars) [WINDOWSNT]: If argv0 is not an absolute file name, obtain the absolute file name of the Emacs executable from 'w32_my_exename'. 2021-03-03 Eli Zaretskii Improve NEWS entries about native-compilation * etc/NEWS: Add an entry about native-compilation. Improve wording of the entry about 'package-native-compile'. 2021-03-03 Alan Mackenzie C++ Mode: Handle "if constexpr (...)" with a simple statement correctly * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): Add a check and handling for c-block-stmt-hangon-key in the main loop. 2021-03-02 Stefan Monnier * lisp/emacs-lisp/pcase.el (pcase--u1): Fix typo 2021-03-02 Alan Mackenzie CC Mode: Fix analysis of brace lists, particularly in C++ Mode Fix some alignment functionality in cc-align.el. * lisp/progmodes/cc-align.el (c-lineup-arglist-intro-after-paren): Align the next line under the previous entry rather than one to the right of the paren. (c-lineup-2nd-brace-entry-in-arglist): Take the anchor point from the brace-list-entry element, not the brace-list-intro one. * lisp/progmodes/cc-engine.el (c-looking-at-decl-block): Use c-looking-at-statement-block to test whether "struct A {" begins a brace list or a struct declaration. (c-looking-at-or-maybe-in-bracelist): Several detailed amendments, correctly to recognize brace lists. (c-looking-at-statement-block): No longer search for commas, as they are not reliable indicators of a brace list. Search now for a restricted set of keywords, since some can appear in brace lists in C++ mode. * lisp/progmodes/cc-langs.el (c-stmt-block-only-keywords) (c-stmt-block-only-keywords-regexp): New lang consts/vars. (c-pre-id-bracelist-kwds): New lang const. (c-pre-id-bracelist-key): Derive now from the above. (c-pre-brace-non-bracelist-key): New lang const/var. 2021-03-02 Juri Linkov * lisp/tab-bar.el: Minor stylistic fixes. (tab-bar-select-tab-modifiers): Use tab-bar--undefine-keys and tab-bar--define-keys instead of turning tab-bar-mode on/off. 2021-03-02 Stefan Monnier * lisp/emacs-lisp/trace.el (trace-values): Work outside of traced function 2021-03-02 Andrea Corallo Fix = propagation semantic for constrained inputs * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Synthesize `comp-cstr-shallow-copy'. (comp-cstr-=): Relax inputs before intersecting them. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three tests. 2021-03-02 Dmitry Gutov (ruby-find-library-file): Also recognize 'gem' statements * lisp/progmodes/ruby-mode.el (ruby-find-library-file): Also recognize 'gem' statements. 2021-03-02 Pip Cet Compile closures that modify their bound vars correctly (Bug#46834) * lisp/emacs-lisp/bytecomp.el (byte-compile--reify-function): Don't move let bindings into the lambda. Don't reverse list of bindings. (byte-compile): Evaluate the return value if it was previously reified. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-reify-function): Add tests. 2021-03-02 Lars Ingebrigtsen Improve the dired-do-kill-lines doc string * lisp/dired-aux.el (dired-do-kill-lines): Document the FMT parameter (bug#46867). 2021-03-02 Stefan Monnier * lisp/emacs-lisp/pcase.el: Bind all the vars in `or` patterns Improve the handling of `or` patterns where not all sub-patterns bind the same set of variables. This used to be "unsupported" and behaved in somewhat unpredictable ways. (pcase--expand): Rewrite. (pcase-codegen): Delete. * doc/lispref/control.texi (pcase Macro): Adjust accordingly. Also remove the warning about "at least two" sub patterns. These work fine, AFAICT, and if not we should fix it. * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-or-vars): New test. 2021-03-01 Lars Ingebrigtsen Fix previous completion-pcm--optimize-pattern fix * lisp/minibuffer.el (completion-pcm--optimize-pattern): Re-fix previous change. 2021-03-01 Lars Ingebrigtsen Fix warning in completion-pcm--optimize-pattern * lisp/minibuffer.el (completion-pcm--optimize-pattern): Remove unused variable. 2021-03-01 Lars Ingebrigtsen Make easymenu downcase the menu symbol for greater backwards compat * lisp/cmuscheme.el (map): Revert previous fix. * lisp/woman.el (woman-dired-define-keys): Ditto. * lisp/emacs-lisp/easymenu.el (easy-menu-do-define): Downcase the menu name for greater backwards compatibility. 2021-03-01 Stefan Monnier * lisp/emacs-lisp/pcase.el: Fix bug#46786 Revert commit a218c9861573b5ec4979ff2662f5c0343397e3ff, but in order to avoid the spurious warnings that this commit tried to squash, keep track of the vars used during the match so as to add corresponding annotations to explicitly silence the spurious warnings. To do this, we change the VARS used in `pcase-u` (and throughout the pcase code): they used to hold elements of the form (NAME . VAL) and now they hold elements of the form (NAME VAL . USED). (pcase--expand): Bind all vars instead of only those found via fgrep. (pcase-codegen): Silence "unused var" warnings for those vars that have already been referenced during the match itself. (pcase--funcall, pcase--eval): Record the vars that are used. (pcase--u1): Record the vars that are used via non-linear patterns. * lisp/textmodes/mhtml-mode.el (mhtml-forward): * lisp/vc/diff-mode.el (diff-goto-source): Silence newly discovered warnings. * test/lisp/emacs-lisp/pcase-tests.el (pcase-tests-bug46786): New test. 2021-03-01 Mattias Engdegård Fix multiple Calc defmath errors (bug#46750) Fix incorrect variable scoping in `let*`, `for` and `foreach`. Fix loop variable value in `foreach` (should be element, not tail). Fix function quoting, as in ('cons x y) -- didn't work at all. Reported by Stephan Neuhaus. * lisp/calc/calc-prog.el (math-define-exp, math-handle-foreach): * test/lisp/calc/calc-tests.el: (var-g, test1, test2, test3, test4) (test5, test6, test7, calc-defmath): Test various defmath forms. 2021-03-01 Mattias Engdegård Remove references to old bignums from Calc manual * doc/misc/calc.texi: Remove references to the old Calc representation of big integers, outdated references to fixnums, an any text and examples that only made sense at the time. 2021-03-01 Mattias Engdegård * lisp/calc/calc-ext.el (math-equal-int): Work for bignums. 2021-03-01 Juri Linkov * lisp/isearch.el: Minor doc fix. * lisp/tab-bar.el (tab-bar--define-keys): Add check for tab-bar-format-global. 2021-03-01 Protesilaos Stavrou Add 'require-theme' function * etc/NEWS: Document new function. * lisp/custom.el (require-theme): Add function. This follows from the discussion on bug#45068 where it became apparent that there was no equivalent mechanism to 'require' that read through the 'custom-theme-load-path'. 2021-03-01 Lars Ingebrigtsen Fix woman.el menu alteration code * lisp/woman.el (woman-dired-define-keys): Fix naming of menu after dired menu changes. 2021-03-01 Alan Mackenzie CC Mode: Amend C-M-a/e to handle lambda function in C++ arglist * lisp/progmodes/cc-cmds.el (c-where-wrt-brace-construct): Reformulate latter part such that the least enclosing braces and parentheses are used when determining containment in such. c-beginning-of-decl-1 has been superseded by list movement and syntactic whitespace movement. (c-backward-to-nth-BOF-{): Work on least enclosing parens rather than parens at any level when moving back to an opening brace. (c-forward-to-nth-EOF-\;-or-}): Work on least enclosing parens, as above. Move the correction of point when in a "function trailer" to after the main loop, correcting a minor bug. 2021-03-01 Stefan Monnier * lisp/emacs-lisp/pcase.el (pcase--split-pred): Re-fix bug#14773 Adjust to calling convention of `macroexp--fgrep`. 2021-03-01 Stefan Monnier Fix misuses of `byte-compile-macro-environment` These seem to be left overs from Emacs<24 when `macroexpand-all` was implemented in the CL library and hence the macros's evaluation environment could come from different places depending on the circumstance (either `byte-compile-macro-environment`, or `cl-macro-environment`, or ...). `byte-compile-macro-environment` contains definitions which expand to code that is only understood by the rest of the byte-compiler, so using it for code which isn't being byte-compiled leads to errors such as references to non-existing function `internal--with-suppressed-warnings`. * lisp/emacs-lisp/cl-extra.el (cl-prettyexpand): Remove left-over binding from when `macroexpand-all` was implemented in the CL library. * lisp/emacs-lisp/ert.el (ert--expand-should-1): * lisp/emacs-lisp/cl-macs.el (cl--compile-time-too): Properly preserve the macroexpand-all-environment. (cl--macroexp-fboundp): Pay attention to `cl-macrolet` macros as well. 2021-03-01 Andrea Corallo Fix `eql' `equal' propagation of non hash consed values (bug#46843) Extend assumes allowing the following form: (assume dst (and-nhc src1 src2)) `and-nhc' assume operator allow for constraining correctly intersections where non hash consed values are not propagated as values but rather promoted to their types. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-hashcons): New function. * lisp/emacs-lisp/comp.el (comp-emit-assume): Logic update to emit `and-nhc' operator (implemented in fwprop by `comp-cstr-intersection-no-hashcons'). (comp-add-cond-cstrs): Map `eq' to `and' assume operator and `equal' `eql' into `and-nhc'. (comp-fwprop-insn): Update to handle `and-nhc'. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests covering `eql' and `equal' propagation of non hash consed values. 2021-03-01 Stefan Monnier * src/eval.c (init_eval_once): Bump max_specpdl_size (bug46818) Further testing seems to confirm my suspicion that the increase in the specpdl comes from the recent change to `pcase--if`. * lisp/international/mule-cmds.el (update-leim-list-file): Revert workaround. 2021-03-01 Matt Armstrong Clean up obsolete comment * src/marker.c (unchain_marker): Clean up obsolete comment (bug#46836). Commit cf3164523b (* src/alloc.c: Avoid O(N²) complexity when unchaining markers (bug#24548)., 2018-03-23) removed the call from GC into unchain_marker, so there is no need to warn about it. 2021-03-01 F. Jason Park Fix Bootstring skew parameter in puny.el * lisp/net/puny.el: change puny-skew to match value given in RFC3492. * test/lisp/net/puny-tests.el (puny-test-encode-domain) (puny-test-decode-domain): add regression case for popular domain. (bug#46838). 2021-03-01 Stefan Kangas Convert various menus to easymenu * lisp/emacs-lisp/lisp-mode.el (lisp-mode-map): Move menu from here... (lisp-mode-menu): ...to here, and convert to easymenu. * lisp/progmodes/elisp-mode.el (lisp-interaction-mode-map): Move menu definition from here... (lisp-interaction-mode-menu): ...to here, and convert to easymenu. * lisp/replace.el (occur-menu-map): Convert to easymenu. 2021-03-01 Glenn Morris Improve admin.el's Makefile in standalone manual tarfiles * admin/admin.el (make-manuals-dist-output-variables): Fix abs_top_builddir. Add EMACS. (make-manuals-dist--1): Respect case when replacing output variables. 2021-03-01 Glenn Morris info/dir needs generated texi files to exist * Makefile.in (misc-info): Depend on lisp. (${srcdir}/info/dir): Depend on info-real. (info): Simplify. 2021-03-01 Glenn Morris Make generation of texi from org overwrite output * doc/misc/Makefile.in (org_template): Don't delete output. * lisp/org/ox-texinfo.el (org-texinfo-export-to-texinfo-batch): Overwrite existing output. 2021-02-28 Andrea Corallo Don't treat '=' as simple equality emitting constraints (bug#46812) Extend assumes allowing the following form (assume dst (= src1 src2)) to capture '=' semanting during fwprop handling float integer conversions. * lisp/emacs-lisp/comp.el (comp-equality-fun-p): Don't treat '=' as simple equality. (comp-arithm-cmp-fun-p, comp-negate-arithm-cmp-fun) (comp-reverse-arithm-fun): Rename and add '=' '!='. (comp-emit-assume, comp-add-cond-cstrs, comp-fwprop-insn): Update for new function nameing and to handle '='. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-=): New function. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a bunch of '=' specific tests. 2021-02-28 Andrea Corallo Migrate and rename a bunch of functions from comp.el to comp-cstr.el * lisp/emacs-lisp/comp-cstr.el (comp-cstr-imm-vld-p) (comp-cstr-imm, comp-cstr-fixnum-p, comp-cstr-symbol-p) (comp-cstr-cons-p): Move and rename from 'comp.el'. * lisp/emacs-lisp/comp.el (comp-mvar-type-hint-match-p) (make-comp-mvar, comp-emit-assume, comp-fwprop-prologue) (comp-function-foldable-p, comp-function-call-maybe-fold) (comp-fwprop-call, comp-fwprop-insn, comp-call-optim-func) (comp-compute-function-type): Update for renamed functions. * src/comp.c (emit_mvar_rval): Likewise. * test/src/comp-tests.el (comp-tests-mentioned-p-1) (comp-tests-cond-rw-checker-val): Likewise. 2021-02-28 Glenn Morris * doc/misc/modus-themes.org: Add copying markup. (Bug#45141) 2021-02-28 Glenn Morris Update admins make-manuals for new output variable * admin/admin.el (make-manuals-dist-output-variables): Add abs_top_builddir. 2021-02-28 Stefan Kangas Convert dired menus to easymenu * lisp/dired.el (dired-mode-map): Move menus from here... (dired-mode-subdir-menu, dired-mode-immediate-menu) (dired-mode-regexp-menu, dired-mode-mark-menu) (dired-mode-operate-menu): ...to here, and convert to easymenu. 2021-02-28 Stefan Kangas Convert hi-lock-menu to easymenu * lisp/hi-lock.el (hi-lock-menu): Convert to easymenu. 2021-02-28 Alan Mackenzie Combine and reconcile two conflicting entries in NEWS on goto-line-history * etc/NEWS: Amend. * doc/lispref/minibuf.texi (Minibuffer History): Amend the entry about goto-line-history, which is now buffer local only after being so customized. 2021-02-28 Mattias Engdegård Declare more string predicates as pure * lisp/emacs-lisp/byte-opt.el (pure-fns): Treat string>, string-greaterp, string-empty-p, string-blank-p, string-prefix-p and string-suffix-p as pure functions in the compiler. 2021-02-28 Stefan Kangas Convert ibuffer menus to easymenu * lisp/ibuffer.el (ibuffer-mode-map): Move menu from here... (ibuffer-mode-mark-menu, ibuffer-mode-view-menu): ...to here. Convert to easymenu. (ibuffer-mode--groups-menu-definition): New function. Fix bug where "Kill filter by group named" and "Yank last killed filter group before" was overwritten and never shown in the menu. (ibuffer-mode-groups-popup): Convert to easymenu. (ibuffer-mode-operate-menu): Rename from 'ibuffer-mode-operate-map' and update uses. Convert to easymenu. (ibuffer-mode-operate-map): Make into obsolete alias for above renamed variable. 2021-02-28 Michael Albinus Add `completion-predicate' to some Tramp commands * lisp/net/tramp-cmds.el (tramp-cleanup-this-connection) (tramp-rename-these-files): Add property `completion-predicate'. * lisp/net/tramp.el (tramp-command-completion-p): New defun. 2021-02-28 Kapuze Martin (tiny change) Enable Python type hints and non-trivial base classes in wisent * admin/grammars/python.wy: Enable understanding Python type hints and non-trivial base classes (bug#46817). 2021-02-28 Lars Ingebrigtsen Adjust cmuscheme.el menu bar after previous scheme.el change * lisp/cmuscheme.el (map): Adjust the keymap lookup after recent scheme.el change (bug#46820). 2021-02-28 Mattias Engdegård Fix pcase 'rx' pattern match-data bug The pcase 'rx' pattern would in some cases allow the match data to be clobbered before it is read. For example: (pcase "PQR" ((and (rx (let a nonl)) (rx ?z)) (list 'one a)) ((rx (let b ?Q)) (list 'two b))) The above returned (two "P") instead of the correct (two "Q"). This occurred because the calls to string-match and match-string were presented as separate patterns to pcase, which would interleave them with other patterns. As a remedy, combine string matching and match-data extraction into a single pcase pattern. This introduces a slight inefficiency for two or more submatches as they are grouped into a list structure which then has to be destructured. Found by Stefan Monnier. See discussion at https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg02010.html * lisp/emacs-lisp/rx.el (rx--reduce-right): New helper. (rx [pcase macro]): Combine string-match and match-string calls into a single pcase pattern. * test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add test cases. 2021-02-28 Stefan Monnier * lisp/international/mule-cmds.el: Try and fix bug#46818 (update-leim-list-file): Reduce stack/pdl use. 2021-02-28 Stefan Monnier * lisp/emacs-lisp/macroexp.el: Rewrite the code warning about '(lambda ...) (macroexp--expand-all): Use `pcase--dontcare` so pcase generates slightly better code. Don't hardcode which functions takes function arguments; rely on a new `funarg-positions` symbol property instead. 2021-02-28 Stefan Kangas Convert text-mode menu to easymenu * lisp/textmodes/text-mode.el (text-mode-map): Move menu definition from here... (text-mode-menu): ...to here, and convert to easymenu. 2021-02-28 Stefan Kangas Convert isearch menu to easymenu * lisp/isearch.el (isearch-menu-bar-yank-map) (isearch-menu-bar-map, isearch-mode-map): Move menu definition from here... (isearch-menu-bar-map): ...to here, and convert to easymenu. * lisp/loadup.el ("emacs-lisp/easymenu"): Move before isearch.el. 2021-02-28 Stefan Kangas Checkdoc fixes in isearch.el * lisp/isearch.el (isearch--set-state, isearch-yank-pop-only) (isearch-search-and-update, isearch-complete-edit, isearch-search): Minor doc fixes. 2021-02-27 Juri Linkov * lisp/tab-bar.el: Support displaying global-mode-string in the tab bar. * lisp/tab-bar.el (tab-bar--define-keys): Update global-mode-string in mode-line-misc-info with condition to disable global-mode-string in the mode line. (tab-bar-format): New variable. (tab-bar-format-history, tab-bar-format-add-tab) (tab-bar-format-tabs): New functions with body from 'tab-bar-make-keymap-1'. (tab-bar-format-align-right, tab-bar-format-global): New functions for 'tab-bar-format' list. (tab-bar-format-list): New utility function. (tab-bar-make-keymap-1): Just call 'tab-bar-format-list'. https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01210.html 2021-02-27 Juri Linkov * lisp/subr.el (read-char-choice-with-read-key): New function. * lisp/subr.el (read-char-choice): Move most of the function body to 'read-char-choice-with-read-key'. (read-char-choice-with-read-key): New function with body from 'read-char-choice'. 2021-02-27 Stefan Kangas Convert Buffer-menu-mode menu to easymenu * lisp/buff-menu.el (Buffer-menu-mode-map): Move menu definition from here... (Buffer-menu-mode-menu): ...to here, and convert to easymenu. 2021-02-27 Stefan Kangas Minor fixes after preloading easymenu * lisp/cedet/ede/dired.el: * lisp/dired-x.el: * lisp/filesets.el: * lisp/follow.el: * lisp/gnus/gnus-registry.el: * lisp/net/eudc.el: * lisp/printing.el: * lisp/recentf.el: * lisp/speedbar.el: Remove redundant require of easymenu; it is now preloaded. * lisp/org/org.el: * lisp/progmodes/antlr-mode.el: * lisp/progmodes/vhdl-mode.el: * lisp/textmodes/reftex.el: Don't require easymenu in Emacs 28 or later. * etc/NEWS: Announce that 'easymenu' is now preloaded. 2021-02-27 Glenn Morris Fix doc/misc Makefile for out-of-tree with relative path * doc/misc/Makefile.in (org_template): Fix for relative srcdir. 2021-02-27 Glenn Morris Improve Makefile treatment of org sources in doc/misc * doc/misc/Makefile.in (ORG_SETUP): New variable. (ORG_SRC): Use wildcard rather than hard-coding. (org_template): Adjust for input containing $srcdir and suffix. (org_setup_template): New template. 2021-02-27 Stefan Monnier * lisp/emacs-lisp/bytecomp.el: Fix minor regression introduced by pdump After `rm **/*.elc; make` we'd sometimes get loads and loads of unnecessary "Reloading ...". (byte-compile-refresh-preloaded): Don't reload files that are more recent than `temacs` but older than the `.pdmp` file. 2021-02-27 Stefan Kangas Don't require overlay; that's only needed in XEmacs * lisp/allout.el: * lisp/net/eudc.el: * lisp/org/org.el: Don't require overlay; that's only needed in XEmacs. 2021-02-27 Stefan Monnier * lisp/emacs-lisp/cconv.el: Fix uncaught brain farts in last change (cconv--convert-funcbody, cconv-convert): Use `macroexp--warn-wrap` properly. 2021-02-27 Lars Ingebrigtsen Add sexp navigation commands to elisp-mode * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-menu): Add some navigation commands (bug#24774). 2021-02-27 Stefan Kangas Convert emacs-lisp-mode menu to easy-menu-define * lisp/loadup.el: Preload easymenu. * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-map): Convert menu to use easy-menu-define (bug#24774). 2021-02-27 Matt Armstrong Remove unnecessary unlock-buffer calls * lisp/files.el (revert-buffer-insert-file-contents--default-function): Remove vestigial call to `unlock-buffer'. * lisp/simple.el (primitive-undo): Assume unlock-buffer is always bound. (Bug#46701) 2021-02-27 Eli Zaretskii Avoid crashes in Mew due to corrupted tool-bar label * src/gtkutil.c (update_frame_tool_bar): Don't keep around a 'char *' pointer to a Lisp string's contents when calling Lisp, because that could relocate string data; keep the Lisp string itself instead. This avoids crashes in Mew. (Bug#46791) 2021-02-27 Lars Ingebrigtsen Compute grep defaults earlier * lisp/progmodes/grep.el (grep): Always compute the defaults (bug#46801). (grep-highlight-matches): Clarify that it's not just used interactively. 2021-02-27 Lars Ingebrigtsen Change defcustom types of two non-standard hooks * lisp/erc/erc.el (erc-before-connect, erc-after-connect): Change type from 'hook to 'function (bug#34657). 2021-02-27 F. Jason Park Accept string argument in erc-add-to-input-ring * lisp/erc/erc-ring.el: (erc-add-to-input-ring) (erc-previous-command): Use existing API to grab input. * test/lisp/erc/erc-tests.el: (erc-ring-previous-command) See (bug#46339). 2021-02-27 Lars Ingebrigtsen Add generated .texi files to .gitignore 2021-02-27 Glenn Morris Fixes for doc/misc org source files * doc/misc/org-setup.org: Fix "version" file lookup. Add copyright. * doc/misc/modus-themes.org: Fix up doclicense include. * doc/misc/org.org: Remove non-working and unused "modification-time". Fix up doclicense include. Adjust setupfile inclusion. 2021-02-27 Glenn Morris Distribute the real source for some doc/misc manuals (bug#45143) * doc/misc/modus-themes.texi, doc/misc/org.texi: Remove generated files from repository. * doc/misc/Makefile.in: Add rules for building .texi from .org. (ORG_SRC, abs_top_builddir, EMACS, emacs): New variables. (org_template): New template. (orgclean): New phony target. * Makefile.in (info): Depend on lisp. * lisp/org/ox-texinfo.el (org-texinfo-export-to-texinfo-batch): New function. * doc/misc/org.org, doc/misc/org-setup.org: New files. Import from https://code.orgmode.org d8e8a97a14. 2021-02-27 Protesilaos Stavrou Import org source file for modus-themes manual * doc/misc/modus-themes.org: New file. Import from https://gitlab.com/protesilaos/modus-themes 515180ac. 2021-02-27 Stefan Kangas Use lexical-binding in progmodes/icon.el * lisp/progmodes/icon.el: Use lexical-binding. (electric-icon-brace): Very minor cleanup. 2021-02-27 Stefan Kangas Convert change-log-mode menu to easy-menu-define * lisp/vc/add-log.el (change-log-mode-map): Move menu from here... (change-log-mode-menu): ...to here; convert to easy-menu-define. 2021-02-27 Stefan Monnier * lisp/emacs-lisp/cconv.el: Improve line-nb info of unused var warnings Instead of warning about unused vars during the analysis phase of closure conversion, do it in the actual closure conversion by annotating the code with "unused" warnings, so that the warnings get emitted later by the bytecomp phase, like all other warnings, at which point the line-number info is a bit less imprecise. Take advantage of this change to wrap the expressions of unused let-bound vars inside (ignore ...) so the byte-compiler can better optimize them away. Finally, promote `macroexp--warn-and-return` to "official" status by removing its "--" marker. (cconv-captured+mutated, cconv-lambda-candidates): Remove vars. (cconv-var-classification): New var to replace them. (cconv-warnings-only): Delete function. (cconv--warn-unused-msg, cconv--var-classification): New functions. (cconv--convert-funcbody): Add warnings for unused args. (cconv-convert): Add warnings for unused vars in `let` and `condition-case`. (cconv--analyze-use): Don't emit an "unused var" warning any more, but instead remember the fact in `cconv-var-classification`. * lisp/emacs-lisp/bytecomp.el (byte-compile-force-lexical-warnings): Remove variable. (byte-compile-preprocess): Remove corresponding case. * lisp/emacs-lisp/pcase.el (pcase--if): Don't throw away `test` effects. (\`): * lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Use `car-safe` instead of `car`, so it can more easily be removed by the optimizer if the result is not used. * lisp/emacs-lisp/macroexp.el (macroexp--warn-wrap): New function. (macroexp-warn-and-return): Rename from `macroexp--warn-and-return`. 2021-02-26 Stefan Monnier lisp/vc/*.el: Use lexical-bindings in all the files Also remove some redundant `:group` arguments. * lisp/vc/vc.el (vc-ignore): Autoload. * lisp/vc/pcvs-util.el (cvs-every, cvs-union, cvs-map): Delete functions. * lisp/vc/cvs-status.el: Require `cl-lib` at runtime. (cvs-tree-tags-insert): Use `cl-mapcar` and `cl-every` instead. * lisp/vc/pcvs.el: Require `cl-lib` at runtime. (cvs-do-removal): Use `cl-every` instead. * lisp/vc/ediff-init.el: Require `ediff-util` (for `ediff-cleanup-mess` and `ediff-default-suspend-function`). * lisp/vc/pcvs-info.el (cvs-fileinfo<): Remove unused vars `subtypea` and `subtypeb`. * lisp/vc/vc-git.el: * lisp/vc/vc-bzr.el: Require `vc-dispatcher` at runtime for `vc-do-async-command`. 2021-02-26 Stefan Monnier * lisp/cedet/semantic/idle.el: Fix compilation warning (eldoc-last-message): Remove var declaration. (eldoc-message): Remove function declaration. (semantic--eldoc-info): Rename from semantic-idle-summary-idle-function. Make it usable on `eldoc-documentation-functions`. (semantic-idle-summary-mode): Use `eldoc-mode`. (semantic-idle-summary-refresh-echo-area): Delete function. 2021-02-26 Andrea Corallo Canonicalize filenames on Windows before hashing (bug#46256) * src/comp.c (Fcomp_el_to_eln_filename): On Windowns canonicalize filenames before hashing. 2021-02-26 Stefan Monnier * lisp/cedet/semantic/analyze*.el: Use lexical-binding * lisp/cedet/semantic/analyze.el: Use lexical-binding. Rename the dynbound var `prefixtypes` to `semantic--prefixtypes`. (semantic--prefixtypes): Declare var. * lisp/cedet/semantic/analyze/complete.el: Use lexical-binding. (semantic--prefixtypes): Declare var. (semantic-analyze-possible-completions-default): Remove unused var `any`. Rename `prefixtypes` to `semantic--prefixtypes`. * lisp/cedet/semantic/analyze/debug.el: Use lexical-binding. (semantic-analyzer-debug-global-symbol): Remove no-op use of `prefixtypes`. * lisp/cedet/semantic/analyze/refs.el: * lisp/cedet/semantic/analyze/fcn.el: Use lexical-binding. 2021-02-26 Andrea Corallo Change native compiler configure flag into '--with-native-compilation' * configure.ac: Rename configure nativecomp flags into --with-native-compilation. 2021-02-26 Andrea Corallo Interactive tag native compilation function in emacs-lisp-mode * lisp/progmodes/elisp-mode.el (emacs-lisp-native-compile-and-load): Tag it for `emacs-lisp-mode'. 2021-02-26 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-02-26 Michael Albinus Fix Tramp manual * doc/misc/tramp.texi (External methods): Mention "about-args". (Remote shell setup): Use sshx. 2021-02-26 Stefan Kangas Make some defcustom types stricter in comp.el * lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose) (comp-async-jobs-number, comp-async-env-modifier-form): Use stricter types. 2021-02-26 Stefan Kangas Add :version tags to defcustoms in comp.el * lisp/emacs-lisp/comp.el (comp-speed, comp-debug, comp-verbose) (comp-never-optimize-functions, comp-async-jobs-number) (comp-async-cu-done-hook, comp-async-all-done-hook) (comp-async-env-modifier-form) (comp-async-report-warnings-errors, comp-native-driver-options) (comp-libgccjit-reproducer): Add :version tags. 2021-02-26 Stefan Kangas * lisp/progmodes/dcl-mode.el: Minor doc fixes. 2021-02-26 Stefan Kangas Convert some more progmode menus to easy-menu-define * lisp/progmodes/dcl-mode.el (dcl-mode-map): * lisp/progmodes/icon.el (icon-mode-map): * lisp/progmodes/scheme.el (scheme-mode-map): Move menu definitions from here... * lisp/progmodes/dcl-mode.el (dcl-mode-menu): * lisp/progmodes/icon.el (icon-mode-menu) * lisp/progmodes/scheme.el (scheme-mode-menu): ...to here, and use easy-menu-define. * lisp/progmodes/icon.el (icon-mode-map, icon-mode-syntax-table): Simplify. 2021-02-26 Stefan Kangas Convert simula-mode menu to easy-menu-define * lisp/progmodes/simula.el (simula-mode-map): Move menu definition from here... (simula-mode-menu): ...to here, and use easy-menu-define. (simula-popup-menu): Declare unused function obsolete. 2021-02-26 Stefan Kangas Fix syntax highlighting of easy-menu-define docstrings * lisp/emacs-lisp/easymenu.el (easy-menu-define): Add doc-string declaration for correct syntax highlighting. 2021-02-26 Stefan Kangas Remove redundant requires of easymenu * lisp/allout.el: * lisp/emacs-lisp/edebug.el: * lisp/emacs-lisp/ert.el: * lisp/erc/erc-menu.el: * lisp/help-mode.el: * lisp/net/dictionary.el: * lisp/nxml/rng-nxml.el: * lisp/progmodes/ebrowse.el: * lisp/progmodes/meta-mode.el: * lisp/progmodes/prolog.el: * lisp/progmodes/ps-mode.el: * lisp/progmodes/vera-mode.el: * lisp/wid-browse.el: Remove redundant require of easymenu. We only use the autoloaded macro 'easy-menu-define' here. 2021-02-26 Stefan Kangas Remove check for missing easymenu from cperl-mode.el * lisp/progmodes/cperl-mode.el (cperl-menu): Don't wrap definition in condition-case; easymenu always exists in Emacs. (easymenu): Remove redundant require. 2021-02-26 Eli Zaretskii Fix last change * lisp/emacs-lisp/comp.el (comp-async-report-warnings-errors): Improve wording of the doc string. 2021-02-26 Andrea Corallo Improve `comp-async-report-warnings-errors' docstring * lisp/emacs-lisp/comp.el (comp-async-report-warnings-errors): Improve docstring. 2021-02-26 Eli Zaretskii Improve documentation of last change * lisp/emacs-lisp/comp.el (comp-async-query-on-exit) (comp-async-report-warnings-errors): Improve wording. 2021-02-26 Andrea Corallo Add `comp-async-query-on-exit' customize. * lisp/emacs-lisp/comp.el (comp-async-query-on-exit): New customize. (comp-run-async-workers): Make use of. 2021-02-26 Basil L. Contovounesios Function-quote completion property of declare form For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-02/msg01666.html * lisp/emacs-lisp/byte-run.el (byte-run--set-completion): Quote with 'function' for syntactical consistency with other declare form properties. This allows writing (declare (completion foo)) instead of (declare (completion 'foo)). * lisp/emacs-lisp/easymenu.el (easy-menu-do-define): * lisp/gnus/gnus-sum.el (gnus-summary-make-menu-bar): Prefer function-put over put for function symbols. * lisp/subr.el (ignore, undefined): Remove #'-quoting from declare form; it is no longer needed. 2021-02-26 Mattias Engdegård Fix pcase rx pattern bugs Two unrelated bugs: A missing type check caused an error in rx patterns for non-string match targets, and rx patterns did not work at all in pcase-let or pcase-let*. Second bug reported by Basil Contovounesios and Ag Ibragimov; fixes proposed by Stefan Monnier. Discussion and explanation in thread at https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg01924.html * lisp/emacs-lisp/rx.el (rx): Add (pred stringp) to avoid type errors, and replace the `pred` clause for the actual match with something that works with pcase-let(*) without being optimised away. * test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add test cases. 2021-02-26 Stefan Kangas * lisp/tooltip.el (tooltip): Doc fix for GTK. 2021-02-25 Andrea Corallo Fix some comp-vec logic * lisp/emacs-lisp/comp.el (comp-vec-length, comp-vec-append) (comp-vec-prepend): Fix logic. (comp-vec-aref): Fix indentation. 2021-02-25 Andrea Corallo Fix two docstrings in comp.el * lisp/emacs-lisp/comp.el (comp-new-frame, comp-maybe-add-vmvar): Fix docstring. 2021-02-25 Eli Zaretskii Fix documentation of a recent change * src/fns.c (Fyes_or_no_p): Don't use braces around one-line block. (syms_of_fns) : Improve the wording of the doc string. * etc/NEWS: Improve wording of the entry about 'use-short-answers'. 2021-02-25 Juri Linkov New variable 'use-short-answers' to use 'y-or-n-p' instead of 'yes-or-no-p' * lisp/cus-start.el: Add use-short-answers. * lisp/emacs-lisp/map-ynp.el (read-answer): Handle use-short-answers. (read-answer-short): Add use-short-answers to docstring. * src/fns.c (Fyes_or_no_p): Call y-or-n-p if use_short_answers is true. (syms_of_fns): Add DEFVAR_BOOL use-short-answers (bug#46594). 2021-02-25 Alan Third Fix freeze on older macOS's (bug#46687) * src/nsterm.m ([EmacsView windowDidChangeBackingProperties:]): ([EmacsView viewWillDraw]): Only run this code when actually drawing to an offscreen bitmap. 2021-02-25 Robert Pluim Re-enable network-stream-tests.el :nowait t tests After the fix for Bug#46709, these no longer fail in the absence of a working Internet connection * test/lisp/net/network-stream-tests.el (internet-is-working): Remove defvar, it's no longer needed in this file. * test/lisp/net/network-stream-tests.el (connect-to-tls-ipv4-nowait): (connect-to-tls-ipv6-nowait): (open-network-stream-tls-nowait): (open-gnutls-stream-new-api-nowait): (open-gnutls-stream-old-api-nowait): Remove check for internet-is-working. 2021-02-25 Robert Pluim Don't crash if gnutls_handshake fails In some situations involving Internet access not being fully functional, gnutls_handshake returns a fatal error, which we were ignoring, causing us to call gnutls_handshake again. Now we check for the error and return it to the caller. * src/gnutls.c (gnutls_try_handshake): Return immediately if gnutls_handshake returns a fatal error (Bug#46709). 2021-02-25 Robert Pluim * Specify 'ipv4 when testing ipv4 in network-stream-tests.el * test/lisp/net/network-stream-tests.el (connect-to-tls-ipv4-nowait): Specify :family 'ipv4. 2021-02-25 Stefan Kangas Convert epa-key-list-mode menu to easy-menu-define * lisp/epa.el (epa-key-list-mode-map): Move menu from here... (epa-key-list-mode-menu): ...to here, and convert to easy-menu-define. 2021-02-25 Stefan Monnier Remove last remaining external uses of `edebug-form-spec` * lisp/emacs-lisp/gv.el (gv-place): Use `def-edebug-elem-spec`. * lisp/obsolete/erc-compat.el (erc-define-minor-mode): Remove redundant `edebug-form-spec`. 2021-02-25 Stefan Monnier * test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): Add case Add use of `macroexp-file-name` from a macro called from within a function, which works thanks to eager-macroexpansion (so the macro is expanded which the file is being loaded rather than only later when the function is called). * test/lisp/emacs-lisp/macroexp-resources/m1.el (macroexp--m1-tests-file-name): New function. 2021-02-25 Stefan Monnier * test/lisp/emacs-lisp/macroexp-tests.el (macroexp--tests-file-name): New test * test/lisp/emacs-lisp/macroexp-resources/m1.el: * test/lisp/emacs-lisp/macroexp-resources/m2.el: New files. 2021-02-24 Lars Ingebrigtsen Include a "make check-maybe" in the admin/emake script 2021-02-24 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp-file-name): Work in `eval-buffer` Rely on `current-load-list` instead of `load-file-name`. * lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Change the var we override accordingly. 2021-02-24 Lars Ingebrigtsen Improve quail-update-leim-list-file error messaging * lisp/international/quail.el (quail-update-leim-list-file): Give a better error message. 2021-02-24 Lars Ingebrigtsen Fix warning generated by indian.el + quail.el * lisp/leim/quail/indian.el (quail-define-indian-trans-package): Reintroduce kludge to fix automatic detection by Quail. 2021-02-24 Juri Linkov * lisp/tab-bar.el: Move aliases down closer to keybindings. 2021-02-24 Juri Linkov * lisp/tab-bar.el (tab-switch): New defalias to 'tab-bar-switch-to-tab'. (tab-prefix-map): Bind "O" to 'tab-previous'. 2021-02-24 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp-file-name): New function. Yes, finally: a function that tells you the name of the file where the code is located. Finding this name is non-trivial in practice, as evidenced by the "4 shift/reduce conflicts" warning when compiling CEDET's python.el, because its `wisent-source` got it wrong in that case, thinking the grammar came from `python.el` instead of `python-wy.el`. While at it, also made `macroexp-compiling-p` public, since it's useful at various places. (macroexp-compiling-p): Rename from `macroexp--compiling-p`. * lisp/emacs-lisp/bytecomp.el (byte-compile-close-variables): Bind `load-file-name` to nil so we can distinguish a load that calls the byte compiler from a byte compilation which causes a load. * lisp/cedet/semantic/wisent/python.el (wisent-python--expected-conflicts): Remove; it was just a workaround. * lisp/subr.el (do-after-load-evaluation): Avoid `byte-compile--` vars. * lisp/cedet/semantic/fw.el (semantic-alias-obsolete): Use `macroexp-compiling-p` and `macroexp-file-name`. * lisp/cedet/semantic/wisent/comp.el (wisent-source): Use `macroexp-file-name` (wisent-total-conflicts): Tighten regexp. * lisp/emacs-lisp/cl-lib.el (cl--compiling-file): Delete function and variable. Use `macroexp-compiling-p` instead. * lisp/progmodes/flymake.el (flymake-log): * lisp/emacs-lisp/package.el (package-get-version): * lisp/emacs-lisp/ert-x.el (ert-resource-directory): Use `macroexp-file-name`. 2021-02-24 Ulf Jasper Add options to use feed names from newticker-url-list * lisp/net/newst-treeview.el (newsticker-treeview-use-feed-name-from-url-list-in-treeview): New. (newsticker-treeview-use-feed-name-from-url-list-in-itemview): New. (newsticker--treeview-item-show): Show feed name from newsticker-url-list if wanted. (newsticker--treeview-propertize-tag): Add argument 'tooltip'. (newsticker--treeview-tree-get-tag): Usefeed name from newsticker-url-list if wanted. (Fixes third issue in Bug#41376.) 2021-02-24 Lars Ingebrigtsen Fix wisent/python.el grammar warning * lisp/cedet/semantic/wisent/python.el: Fix warning about shift/reduce conflicts in the Python grammar. 2021-02-24 Lars Ingebrigtsen Fix warning generated by indian.el + quail.el * lisp/leim/quail/indian.el (quail-define-indian-trans-package): Reintroduce kludge to fix automatic detection by Quail. 2021-02-24 Lars Ingebrigtsen Remove the "Documentation:" line from the variable help * lisp/help-fns.el (describe-variable): Remove the "Documentation:" line (bug#46702). This makes the help text more compact and seems easier to read, too. 2021-02-24 Lars Ingebrigtsen Fix Calc menu item for vector dot products * lisp/calc/calc-menu.el (calc-vectors-menu): Use the correct function `calc-times' instead of the non-existent `calc-mult' function (bug#46710). 2021-02-24 Doug Davis Interactive tag byte compilation functions in emacs-lisp-mode * lisp/progmodes/elisp-mode.el (emacs-lisp-byte-compile) (emacs-lisp-byte-compile-and-load): Add interactive tagging (bug#46721). 2021-02-24 Miha Rihtaršič (tiny change) Run all functions in `prefix-command-echo-keystrokes-functions' * lisp/simple.el (internal-echo-keystrokes-prefix): Really run all functions in `prefix-command-echo-keystrokes-functions' (bug#46727). 2021-02-24 Protesilaos Stavrou Use named faces in shortdoc * lisp/emacs-lisp/shortdoc.el (shortdoc-heading): Define new face for headings. (shortdoc-display-group): Apply new heading face. (shortdoc--display-function): Use existing face for section text. * etc/NEWS: Document new face (bug#46748). 2021-02-24 Utkarsh Singh (tiny change) Use sh-mode for PKGBUILD files * lisp/files.el (auto-mode-alist): Use sh-mode for PKGBUILD files (bug#46660). 2021-02-24 Eli Zaretskii Fix dangerous code in xdisp.c * src/xdisp.c (move_it_to, display_line): Make sure ZV_BYTE is greater than 1 before fetching previous byte. 2021-02-24 Eli Zaretskii Better support for 'truncate-line' non-nil in the mini-window * src/xdisp.c (resize_mini_window): Resize the mini-window when multi-line text is displayed under truncate-lines non-nil in the minibuffer. (Bug#46718) 2021-02-24 Protesilaos Stavrou Specify the Emacs version of new vc-dir faces * vc-dir.el (vc-dir-header) (vc-dir-header-value) (vc-dir-directory) (vc-dir-file) (vc-dir-mark-indicator) (vc-dir-status-warning) (vc-dir-status-edited) (vc-dir-status-up-to-date) (vc-dir-status-ignored): Add version 28.1. (Bug#46745) 2021-02-24 Andrea Corallo Fix async compilation and paramenter naming * lisp/emacs-lisp/comp.el (native--compile-async) (native-compile-async): Fix broken parameter renaming. 2021-02-23 Andrea Corallo Do not emit assumptions referencing clobbered mvars (bug#46670) * lisp/emacs-lisp/comp.el (comp-func): Add `vframe-size' slot. (comp-new-frame): Add `vsize' parameter. (comp-limplify-top-level, comp-limplify-function): Update for new `comp-new-frame'. (comp-maybe-add-vmvar): New function. (comp-add-cond-cstrs): Logic update to emit assumptions not referencing clobbered variables. (comp-place-phis, comp-ssa, comp-ssa-rename-insn) (comp-ssa-rename): Update rename logic to rename also negative slots. (comp-fwprop-insn): Update to handle `(assume mvar mvar)' form. * test/src/comp-tests.el (46670-1): Add testcase. * test/src/comp-test-funcs.el (comp-test-46670-1-f) (comp-test-46670-2-f): New functions. 2021-02-23 Andrea Corallo Move ssa rename from vector to comp-vec * lisp/emacs-lisp/comp.el (comp-block): Updated `final-frame' slot type. (comp-limplify): Updated `frame' slot type. (comp-slot-n, comp-new-frame, comp-place-phis, comp-ssa) (comp-ssa-rename-insn, comp-ssa-rename, comp-finalize-phis): Use `comp-vec'. 2021-02-23 Andrea Corallo Add a simple growable vector like type * lisp/emacs-lisp/comp.el (comp-vec): Define struct. (comp-vec-copy, comp-vec-length, comp-vec--verify-idx) (comp-vec-aref, comp-vec-append, comp-vec-prepend): New functions. 2021-02-23 Juri Linkov Small fixes * lisp/emacs-lisp/seq.el (seq-contains): Move the ‘declare’ form after the docstring. * lisp/misc.el (copy-from-above-command): Fix whitespace regexp. 2021-02-23 Juri Linkov * lisp/tab-line.el (tab-line-tab-name-format-function): New defcustom. (tab-line-tab-name-format-default): New function as the default value. (tab-line-format-template): Funcall tab-line-tab-name-format-function. This is like recently added tab-bar-tab-name-format-function. 2021-02-23 Juri Linkov * lisp/tab-bar.el (tab-prefix-map): Bind "n" to 'tab-duplicate'. (tab-bar-separator): New function. (tab-bar-make-keymap-1): Use it. 2021-02-23 Ulf Jasper Leave other windows unchanged, use search instead of re-search * lisp/net/newst-backend.el (newsticker-customize-feed): Leave other windws unchanged. Use search instead of re-search. 2021-02-23 Ulf Jasper Fix invalid interactive-statement * lisp/net/newst-backend.el (newsticker-customize): Fix invalid interactive-statement. 2021-02-23 Stefan Monnier * test/: Use lexical-binding the few remaining files * test/manual/biditest.el: Use lexical-binding. (biditest-generate-testfile): Remove unused var `levels`. * test/manual/image-circular-tests.el: Use lexical-binding. * test/manual/image-size-tests.el: Use lexical-binding. (image-size-tests): Check `fboundp` before calling `imagemagick-types`. * test/manual/redisplay-testsuite.el: Use lexical-binding. * test/manual/cedet/cedet-utests.el: Use lexical-binding. Use `with-current-buffer`. (cedet-utest): Test `fboundp` i.s.o `featurep` to silence warning. (srecode-map-save-file): Declare var. (pulse-test): Test `fboundp` before calling `pulse-available-p`. Declare `pulse-momentary-highlight-overlay` since it's not autoloaded. * test/manual/cedet/semantic-tests.el: Use lexical-binding. Use `with-current-buffer`. (semanticdb-ebrowse-dump): Remove unused var `ab`. (semanticdb-test-gnu-global): Don't use obsolete "name" arg to constructor. (cedet-utest-directory): Declare var. 2021-02-23 Ulf Jasper Add command for customizing current newsticker feed * lisp/net/newst-backend.el (newsticker-customize-feed): New. (newsticker--insert-bytes): Add documentation string. (newsticker--decode-iso8601-date): Fix documentation string. * lisp/net/newst-treeview.el (newsticker-treeview-customize-current-feed): New. (newsticker-treeview-mode-map): Add key for new command 'newsticker-treeview-customize-current-feed'. (Fixes second issue in Bug#41376.) 2021-02-23 Robert Pluim * doc/misc/tramp.texi: Grammar/style fixes * doc/misc/tramp.texi (Overview): (Obtaining @value{tramp}): (Quick Start Guide): (Configuration): (Connection types): (Inline methods): (External methods): (Password handling): (Predefined connection information): (Remote shell setup): (Remote processes): (Frequently Asked Questions): (External packages): (Traces and Profiles): Grammar/style fixes. 2021-02-23 Robert Pluim * lisp/net/dictionary-connection.el: Grammar fixes * lisp/net/dictionary-connection.el: Grammar fix (dictionary-connection-open): Use active voice. (dictionary-connection-status): Reword and improve formatting. 2021-02-23 Robert Pluim Make message-mailto work for emacsclient * doc/misc/message.texi (System Mailer Setup): Add index entry. Mention option to use emacsclient. * etc/NEWS: Mention emacsclient option for 'mailto:' handling. * etc/emacs-mail.desktop: Add example using emacsclient. * lisp/gnus/message.el (message-mailto): Add optional url argument so we can call it from emacsclient. 2021-02-23 Alan Mackenzie CC Mode: Fix bug in "state cache" invalidation function. * lisp/progmodes/cc-engine.el (c-invalidate-state-cache-1): Rewrite part of it, following the code in c-parse-state-1, to get a proper setting of c-state-cache-good-pos. 2021-02-23 Stefan Kangas Convert some more menus to easy-menu-define * lisp/tar-mode.el (tar-mode-map): * lisp/textmodes/sgml-mode.el (sgml-mode-map, html-mode-map): * lisp/wdired.el (wdired-mode-map): Move menus from here... * lisp/tar-mode.el (tar-mode-immediate-menu, tar-mode-mark-menu) * lisp/textmodes/sgml-mode.el (sgml-mode-menu, html-mode-menu): * lisp/wdired.el (wdired-mode-menu): ...to here, and convert to easy-menu-define. 2021-02-23 Stefan Kangas Improve easymenu.el Commentary section * lisp/emacs-lisp/easymenu.el: Improve Commentary section. 2021-02-22 Stefan Monnier * lisp/progmodes/antlr-mode.el: Fix bootstrap failure (antlr-mode): Remove compatibility code with older CC-mode. This somehow appears to fix the error: In antlr-mode: progmodes/antlr-mode.el:2426:20: Error: `c-init-language-vars' defined after use in (c-init-language-vars) (missing `require' of a library file?) progmodes/antlr-mode.el:2427:26: Warning: c-init-language-vars called with 0 arguments, but requires 1 No idea what caused the error to appear after the previous patch either. 2021-02-22 Lars Ingebrigtsen Do mode tagging in decipher.el Do mode tagging in bubbles.el 2021-02-22 Stefan Monnier * lisp/obsolete: Use lexical-binding Use lexical-binding in all the lisp/obsolete/*.el files. While at it, removed redundant :group arguments and used #' to quote functions. Commented out the key bindings which the #' revealed to lead to non-existing commands, and replaced those revealed to be obsolete. * lisp/obsolete/cl-compat.el: Use cl-lib. * lisp/obsolete/cust-print.el: Assume `defalias` exists. (with-custom-print): Use `declare`. * lisp/obsolete/iswitchb.el (iswitchb-init-XEmacs-trick) (iswitchb-xemacs-backspacekey): Remove functions. * lisp/obsolete/landmark.el (landmark, landmark-nslify-wts): Prefer `apply` to `eval`. * lisp/obsolete/longlines.el (longlines-mode): Don't use `add-to-list` on a hook. * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region): Use `clear-string`. * lisp/obsolete/pgg-pgp.el (pgg-pgp-encrypt-region): Remove oddly unused var `passphrase`. (pgg-pgp-verify-region): Declare var `jam-zcat-filename-list`. * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-encrypt-region): Remove oddly unused var `passphrase`. (pgg-pgp5-verify-region): Declare var `jam-zcat-filename-list`. * lisp/obsolete/pgg.el: Remove some XEmacs compatibility code. (pgg-run-at-time, pgg-cancel-timer, pgg-clear-string): Remove functions. Use their core equivalent instead. * lisp/obsolete/rcompile.el (remote-compile): Remove unused vars `l`, `l-host`, `l-user`, and `localname`. * lisp/obsolete/starttls.el (starttls-any-program-available): Use `define-obsolete-function-alias`. * lisp/obsolete/tls.el (tls-format-message): Delete function, use `format-message` instead. * lisp/obsolete/url-ns.el (url-ns-prefs): Use `with-current-buffer` and `dlet`. * lisp/obsolete/vip.el (vip-escape-to-emacs): Remove unused var `key`. (vip-command-argument, vip-read-string, ex-delete, ex-line): Remove unused var `conditions`. (ex-map): Use a closure instead of `eval`. (ex-set): Make it an alias of `set-variable`. (ex-substitute): Remove unused var `cont`. * lisp/obsolete/abbrevlist.el: * lisp/obsolete/bruce.el: * lisp/obsolete/cc-compat.el: * lisp/obsolete/cl-compat.el: * lisp/obsolete/cl.el: * lisp/obsolete/complete.el: * lisp/obsolete/crisp.el: * lisp/obsolete/cust-print.el: * lisp/obsolete/erc-compat.el: * lisp/obsolete/erc-hecomplete.el: * lisp/obsolete/eudcb-ph.el: * lisp/obsolete/fast-lock.el: * lisp/obsolete/gs.el: * lisp/obsolete/gulp.el: * lisp/obsolete/html2text.el: * lisp/obsolete/info-edit.el: * lisp/obsolete/iswitchb.el: * lisp/obsolete/landmark.el: * lisp/obsolete/lazy-lock.el: * lisp/obsolete/longlines.el: * lisp/obsolete/mailpost.el: * lisp/obsolete/mantemp.el: * lisp/obsolete/meese.el: * lisp/obsolete/messcompat.el: * lisp/obsolete/metamail.el: * lisp/obsolete/mouse-sel.el: * lisp/obsolete/nnir.el: * lisp/obsolete/old-emacs-lock.el: * lisp/obsolete/otodo-mode.el: * lisp/obsolete/patcomp.el: * lisp/obsolete/pc-mode.el: * lisp/obsolete/pc-select.el: * lisp/obsolete/pgg-def.el: * lisp/obsolete/pgg-gpg.el: * lisp/obsolete/pgg-parse.el: * lisp/obsolete/pgg-pgp.el: * lisp/obsolete/pgg-pgp5.el: * lisp/obsolete/pgg.el: * lisp/obsolete/rcompile.el: * lisp/obsolete/s-region.el: * lisp/obsolete/sb-image.el: * lisp/obsolete/sregex.el: * lisp/obsolete/starttls.el: * lisp/obsolete/sup-mouse.el: * lisp/obsolete/terminal.el: * lisp/obsolete/tls.el: * lisp/obsolete/tpu-edt.el: * lisp/obsolete/tpu-extras.el: * lisp/obsolete/tpu-mapper.el: * lisp/obsolete/url-ns.el: * lisp/obsolete/vc-arch.el: * lisp/obsolete/vi.el: * lisp/obsolete/vip.el: * lisp/obsolete/ws-mode.el: * lisp/obsolete/yow.el: Use lexical-binding. 2021-02-22 Lars Ingebrigtsen Mention the problems with newlines in Dired * doc/emacs/dired.texi (Dired Enter): Mention newlines and what to do about them. * lisp/dired.el (dired-listing-switches): Mention newlines (bug#46705). 2021-02-22 Lars Ingebrigtsen Buttonize function values in help (and add a blank line) * lisp/help-fns.el (describe-variable): Add a newline for better readability (bug#46702). This also has the side effect of buttonizing `function-references-like-this' in the "Its value is" part. * lisp/help-mode.el (help-make-xrefs): Adjust comments. 2021-02-22 Andrea Corallo Revert "* configure.ac: Rename configure nativecomp flags..." This reverts commit f6c5f0dd5c8167b6f8f724f42632a4b8808efe7a. Reason for this is that I overlooked few other suggestions and this change has to be discussed before a final decision is taken. 2021-02-22 Andrea Corallo Some clean-up in comp.el * lisp/emacs-lisp/comp.el (comp-func): Remove 'array-h'. (comp-spill-lap-function, comp-intern-func-in-ctxt) (comp-spill-lap-function, comp-addr-to-bb-name): Update accordingly. 2021-02-22 Andrea Corallo * configure.ac: Rename configure nativecomp flags into --with-native-comp. Configure now with '--with-native-comp'! 2021-02-22 Stefan Monnier * lisp/progmodes/antlr-mode.el: Remove XEmacs compatibility (cond-emacs-xemacs, cond-emacs-xemacs-macfn, defunx, ignore-errors-x): Remove those functions and macros. Replace every use with the result of their use. (antlr-default-directory): Remove function, use the `default-directory` variable instead. (antlr-read-shell-command): Remove function, use `read-shell-command` instead. (antlr-with-displaying-help-buffer): Remove function, by inlining it at its only call site. (antlr-end-of-rule, antlr-beginning-of-rule, antlr-end-of-body) (antlr-beginning-of-body): Mark them as movement commands. 2021-02-22 Juri Linkov * lisp/tab-bar.el: 'C-x t N' bound to tab-new-to supports a negative argument * lisp/tab-bar.el (tab-bar-new-tab-to): Negative TO-INDEX counts tabs from the end of the tab bar. (tab-bar-new-tab): Fix docstring to add reference to 'tab-bar-new-tab-to'. (tab-prefix-map): Bind "N" to tab-new-to. 2021-02-22 Juri Linkov * lisp/tab-bar.el: 'C-x t M' bound to tab-move-to supports a negative argument * lisp/tab-bar.el (tab-bar-move-tab-to): Negative TO-INDEX counts tabs from the end of the tab bar. (tab-bar-move-tab): Fix docstring to add reference to tab-bar-move-tab-to. (tab-prefix-map): Bind "M" to tab-move-to. 2021-02-22 Juri Linkov 'Mod-9' bound to 'tab-last' now switches to the last tab like in web browsers * lisp/tab-bar.el (tab-bar--define-keys): Rebind 0 from tab-bar-switch-to-recent-tab to its alias tab-recent. Bind 9 to tab-last. (tab-bar-switch-to-last-tab): New command. (tab-last): New alias to tab-bar-switch-to-last-tab. (tab-bar-switch-to-tab, tab-bar-undo-close-tab): Fix docstrings to avoid mentioning the term "last" for "most recently used" meaning. 2021-02-22 Juri Linkov * lisp/tab-bar.el (tab-bar--undefine-keys): New function from tab-bar-mode. 2021-02-22 Stefan Monnier Prefer `declare` over a `put` of `list-indent-function`. While at it, I enabled lexical-binding in the affected files. * lisp/cedet/semantic/sb.el: Enable lexical-binding. (semantic-sb-with-tag-buffer): Use `declare`. * lisp/cedet/semantic/bovine/el.el: Enable lexical-binding. (semantic-elisp-setup-form-parser): Use `declare`. * lisp/emacs-lisp/ert.el: * lisp/emacs-lisp/ert-x.el: Remove redundant `put`. * lisp/emulation/cua-rect.el: Enable lexical-binding. (cua--rectangle-operation, cua--rectangle-aux-replace): Use `declare`. * lisp/mh-e/mh-acros.el: Enable lexical-binding. (mh-do-in-gnu-emacs, mh-do-in-xemacs, mh-funcall-if-exists, defun-mh) (defmacro-mh, with-mh-folder-updating, mh-in-show-buffer) (mh-do-at-event-location, mh-iterate-on-messages-in-region) (mh-iterate-on-range): Use `declare`. * lisp/mh-e/mh-compat.el: Enable lexical-binding. (mh-flet): Use `declare`. * lisp/mh-e/mh-e.el: Enable lexical-binding. (defgroup-mh, defcustom-mh, defface-mh): Use `declare`. * lisp/net/sieve.el: Enable lexical-binding. Remove redundant :group args. (sieve-activate, sieve-remove, sieve-edit-script): Remove unused arg from the interactive spec. (sieve-deactivate-all): Remove unused var `name`. (sieve-change-region): Use `declare`. * lisp/obsolete/fast-lock.el: Enable lexical-binding. Remove redundant :group args. Remove XEmacs compat code. (save-buffer-state): Remove macro. (fast-lock-add-properties): Use `with-silent-modifications` instead. * lisp/obsolete/lazy-lock.el: Enable lexical-binding. Remove redundant :group args. (do-while): Use `declare`. (save-buffer-state): Remove macro. (lazy-lock-fontify-rest-after-change, lazy-lock-defer-line-after-change) (lazy-lock-defer-rest-after-change, lazy-lock-after-fontify-buffer) (lazy-lock-after-unfontify-buffer, lazy-lock-fontify-region): Use `with-silent-modifications` instead. * lisp/obsolete/pgg.el: Enable lexical-binding. Remove XEmacs compat code. (pgg-save-coding-system, pgg-as-lbt, pgg-process-when-success): Use `declare`. (pgg-add-passphrase-to-cache): Remove unused var `new-timer`. (pgg-decrypt-region): Remove unused var `buf`. * lisp/org/org-agenda.el (org-let, org-let2): Move from org-macs and use `declare`. * lisp/org/org-macs.el (org-let, org-let2): Move these functions that are inherently harmful to your karma to the only package that uses them. (org-scroll): Use `pcase` to avoid `eval` and use more readable syntax for those integers standing for events. * lisp/progmodes/antlr-mode.el: Enable lexical-binding. (save-buffer-state-x): Use `declare` and `with-silent-modifications`. * lisp/international/mule-util.el (with-coding-priority): * lisp/cedet/ede/proj-comp.el (proj-comp-insert-variable-once): * lisp/org/org-element.el (org-element-map): * test/lisp/emacs-lisp/bytecomp-tests.el (test-byte-comp-compile-and-load): * test/lisp/emacs-lisp/generator-tests.el (cps-testcase): Use `declare`. 2021-02-22 Lars Ingebrigtsen Fix ANSI coloring problem in large outputs in eshell * lisp/ansi-color.el (ansi-color-apply-on-region): Ensure that we fontize from where we left off, and don't skip to the end of the region (bug#46332). 2021-02-22 Julian Scheid cl-extra: Fix docstring retrieval * lisp/emacs-lisp/cl-extra.el (cl--describe-class-slots): Fix docstring retrieval (bug#46662). 2021-02-22 Robert Pluim Skip tests that require Internet when there's no Internet Bug#46641 The network-stream-tests actually work fine when the local machine has no IP at all, but cause a crash in the GnuTLS library when there is an IP configured but the interface is down. * test/lisp/net/network-stream-tests.el (internet-is-working): New defvar, checks if we can resolve "google.com". (connect-to-tls-ipv4-nowait, connect-to-tls-ipv6-nowait) (open-network-stream-tls-nowait, open-gnutls-stream-new-api-nowait) (open-gnutls-stream-old-api-nowait): Use it to check for working Internet access. * test/src/process-tests.el (internet-is-working): New defvar, checks if we can resolve "google.com". (lookup-family-specification, lookup-unicode-domains) (unibyte-domain-name, lookup-google, non-existent-lookup-failure): Use it to check for working Internet access. 2021-02-22 Robert Pluim Fix hang when running dns-query with no working internet * lisp/net/dns.el (dns-set-servers): reduce the timeout and retry count when using 'nslookup' for "localhost". (dns-query): Check to see if we actually managed to initiate a dns request before starting a busy-wait for the result. 2021-02-22 Lars Ingebrigtsen Simplify comint-watch-for-password-prompt * lisp/comint.el (comint-watch-for-password-prompt): Simplify by using `string-trim'. 2021-02-22 Lars Ingebrigtsen Fix prompt for the `M-S-x' command * lisp/simple.el (read-extended-command): Further kludge the hard-coded "M-x" prompt for the new `M-S-x' command. 2021-02-22 Andrea Corallo Don't use paths to indicate filenames * lisp/emacs-lisp/comp.el (native--compile-async) (native-compile-async): Replace `paths' argname with `files'. 2021-02-22 Andrea Corallo Fix union constraint for mixed pos/neg constraints * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix neg type shadowing pos values. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add testcase. * test/src/comp-tests.el (comp-tests-type-spec-tests): Fix testcase. 2021-02-22 Stefan Kangas Prefer mailing lists to newsgroups in FAQ * doc/misc/efaq.texi (Real meaning of copyleft) (Guidelines for mailing list postings, Mailing list archives) (Packages that do not come with Emacs): Prefer mailing lists to newsgroups. (Bug#46633) 2021-02-22 Stefan Kangas Improve wrong number of args error message in propertize * src/editfns.c (Fpropertize): Improve error message. (syms_of_editfns) : New DEFSYM. * test/src/editfns-tests.el (propertize/error-wrong-number-of-args): New test. 2021-02-22 Mattias Engdegård Fix compilation of closures with nontrivial doc strings * lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Use the supplied doc string if it's a literal; fall back to the old slow way of building a closure otherwise. 2021-02-22 Lars Ingebrigtsen Fix up previous conf-mode.el and nroff-mode.el change slightly * lisp/textmodes/conf-mode.el (conf-mode-map): Remove variable now unused. * lisp/textmodes/nroff-mode.el (nroff-mode-map): Remove variable now unused. 2021-02-22 Glenn Morris * test/misc/test-custom-libs.el (test-custom-libs): Skip on hydra. * test/misc/test-custom-noloads.el (custom-test-load): Unstable. 2021-02-22 Stefan Kangas Convert some textmodes menus to easy-menu-define * lisp/textmodes/artist.el (artist-menu-map): Convert menu definition to easy-menu-define. * lisp/textmodes/conf-mode.el (conf-mode-map): * lisp/textmodes/nroff-mode.el (nroff-mode-map): Move menu definition from here... * lisp/textmodes/conf-mode.el (conf-mode-menu): * lisp/textmodes/nroff-mode.el (nroff-mode-menu): ...to here, and convert to use easy-menu-define. 2021-02-21 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-spill-lap): Fix doc string. Merge remote-tracking branch 'savannah/master' into HEAD 2021-02-21 Mattias Engdegård Faster, more compact, and readable closure creation Simplify closure creation by calling a single function at run time instead of putting it together from small pieces. This is faster (by about a factor 2), takes less space on disk and in memory, and makes internal functions somewhat readable in disassembly listings again. This is done by creating a prototype function at compile-time whose closure variables are placeholder values V0, V1... which can be seen in the disassembly. The prototype is then cloned at run time using the new make-closure function that replaces the placeholders with the actual closure variables. * lisp/emacs-lisp/bytecomp.el (byte-compile-make-closure): Generate call to make-closure from a prototype function. * src/alloc.c (Fmake_closure): New function. (syms_of_alloc): Defsubr it. * src/data.c (syms_of_data): Defsym byte-code-function-p. 2021-02-21 Stefan Kangas Run admin/cus-tests.el tests from test suite * test/Makefile.in (SUBDIRS): Run tests in new directory "misc", intended for tests not belonging to any one file. * test/misc/test-custom-deps.el: * test/misc/test-custom-libs.el: * test/misc/test-custom-noloads.el: * test/misc/test-custom-opts.el: New files. * test/lisp/custom-tests.el (custom--test-local-option): Move test to above new file test-custom-opts.el. * admin/cus-test.el: Document running tests from regular test suite. * test/file-organization.org (Test Files): Document new test directory "misc" for tests not belonging to any one file. 2021-02-21 Stefan Kangas Fix interactive mode tagging for man and woman * lisp/man.el (man-common): New mode inheriting special-mode. (Man-mode): * lisp/woman.el (woman-mode): Inherit from man-common. * lisp/man.el (man-follow, Man-update-manpage) (Man-fontify-manpage, Man-cleanup-manpage, Man-next-section) (Man-previous-section, Man-goto-section) (Man-goto-see-also-section, Man-follow-manual-reference) (Man-kill, Man-goto-page, Man-next-manpage) (Man-previous-manpage): Change interactive mode tag to man-common. This was discussed in: https://lists.gnu.org/r/emacs-devel/2021-02/msg01619.html 2021-02-21 Lars Ingebrigtsen Declare that `ignore' and `undefined' shouldn't be completed over * lisp/subr.el (ignore, undefined): Declare that these shouldn't be completed over. 2021-02-21 Lars Ingebrigtsen Use `undefined' instead of `ignore' in wdired * lisp/wdired.el (wdired-mode-map): Use `undefined' here instead of `ignore' to give the user more feedback. 2021-02-21 Basil L. Contovounesios Fix json.el encoding of confusable object keys * lisp/json.el (json-encode-string): Clarify commentary. (json--encode-stringlike): New function that covers a subset of json-encode. (json-encode-key): Use it for more efficient encoding and validation, and to avoid mishandling confusable keys like boolean symbols (bug#42545). (json-encode-array): Make it clearer that argument can be a list. (json-encode): Reuse json-encode-keyword and json--encode-stringlike for a subset of the dispatch logic. (json-pretty-print): Ensure confusable keys like ":a" survive a decoding/encoding roundtrip (bug#24252, bug#45032). * test/lisp/json-tests.el (test-json-encode-string) (test-json-encode-hash-table, test-json-encode-alist) (test-json-encode-plist, test-json-pretty-print-object): Test encoding of confusable keys. 2021-02-21 Stefan Kangas Make unused variable menu-bar-handwrite-map obsolete * lisp/play/handwrite.el (menu-bar-handwrite-map): Make unused variable obsolete. 2021-02-21 Stefan Kangas Convert bubbles menu to easy-menu-define * lisp/play/bubbles.el (bubbles-game-theme-menu) (bubbles-graphics-theme-menu, bubbles-menu, bubbles-mode-map): Move menu definition from here... (bubbles-menu): ...to here, and convert to easy-menu-define. 2021-02-21 Stefan Kangas * etc/NEWS.19: Add entry for 'easy-menu-define'. 2021-02-21 Stefan Kangas Convert some progmodes menus to easy-menu-define * lisp/progmodes/asm-mode.el (asm-mode-map): * lisp/progmodes/grep.el (grep-mode-map): * lisp/progmodes/m4-mode.el (m4-mode-map): * lisp/progmodes/sh-script.el (sh-mode-map): Move menu definition from here... * lisp/progmodes/asm-mode.el (asm-mode-menu): * lisp/progmodes/grep.el (grep-menu-map): * lisp/progmodes/m4-mode.el (m4-mode-menu): * lisp/progmodes/sh-script.el (sh-mode-menu): ...to here, and rewrite using easy-menu-define. 2021-02-21 Michael Albinus Clarification of password handling in Tramp manual * doc/misc/tramp.texi (Password handling): Describe, how to suppress `auth-sources' for Tramp. (Remote shell setup, Remote processes) (Cleanup remote connections, Frequently Asked Questions): Handle reference to Emacs manual. 2021-02-20 Alan Third Fix memory leak * src/nsterm.m ([EmacsSurface dealloc]): Release will remove all objects and free the memory. 2021-02-20 Stefan Kangas Convert makefile-mode menu to easy-menu-define * lisp/progmodes/make-mode.el (makefile-mode-map): Move menu definition from here... (makefile-mode-menu): ...to here, and rewrite using easy-menu-define. 2021-02-20 F. Jason Park Mute noisy test fixture for socks.el * test/lisp/net/socks-tests.el: (socks-tests-perform-hello-world-http-request): Bind 'inhibit-message' non-nil when in batch mode. (Bug#46342) 2021-02-20 Lars Ingebrigtsen Change command-completion-using-modes-p to defun * lisp/simple.el (command-completion-using-modes-p): Change into a defun for now because of a build problem. 2021-02-20 Lars Ingebrigtsen Mention `M-S-x' in the Emacs manual. * doc/emacs/m-x.texi (M-x): Mention `M-S-x' in the Emacs manual. 2021-02-20 Stefan Kangas * lisp/help.el (help-for-help-internal): Doc fix; use imperative. 2021-02-20 Lars Ingebrigtsen Add a new command for mode-specific commands * doc/lispref/commands.texi (Interactive Call): Document it. * lisp/simple.el (command-completion-using-modes-p): Refactored out into its own function for reuse... (command-completion-default-include-p): ... from here. (execute-extended-command-for-buffer): New command and keystroke (`M-S-x'). 2021-02-20 Lars Ingebrigtsen Change how (declare (modes store the data * lisp/emacs-lisp/byte-run.el (byte-run--set-modes): Change from being a predicate to storing the modes. This allows using the modes for positive command discovery, too. * src/data.c (Fcommand_modes): Look at the `command-modes' symbol property, too. 2021-02-20 Lars Ingebrigtsen Add the `always' function * doc/lispref/functions.texi (Calling Functions): Document it. * lisp/subr.el (always): New function. * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Mark it as side effect free. 2021-02-20 F. Jason Park Use raw bytes for SOCKS 4 IP addresses * lisp/net/socks.el: (socks--open-network-stream, socks-send-command): * test/lisp/net/socks-tests.el: (socks-tests-v4-basic): (Bug#46342). 2021-02-20 F. Jason Park Add more auth-related tests for socks.el * test/lisp/net/socks-tests.el (auth-registration-and-suite-offer) (filter-response-parsing-v4, filter-response-parsing-v5): Assert auth-method selection wrangling and socks-filter parsing. (v5-auth-user-pass, v5-auth-user-pass-blank, v5-auth-none): Show prep and execution of the SOCKS connect command and proxying of an HTTP request; simplify fake server. (Bug#46342) 2021-02-20 Stefan Kangas Convert re-builder menu to easy-menu-define * lisp/emacs-lisp/re-builder.el (reb-mode-map): Move menu definition from here... (reb-mode-menu): ...to here, and rewrite using easy-menu-define. 2021-02-20 Stefan Kangas Convert finder menu to easy-menu-define * lisp/finder.el (finder-mode-map): Move menu definition from here... (finder-mode-menu): ...to here, and rewrite using easy-menu-define. 2021-02-20 Stefan Kangas Add toolbar for help-mode * lisp/help-mode.el (help-mode): Add toolbar. (help-mode-tool-bar-map): New variable. (help-mode-menu): Disable forward/backward items when stack is empty. (help-bookmark-make-record, help-bookmark-jump): Minor doc fixes. 2021-02-20 Stefan Kangas * lisp/woman.el: Doc fix; remove redundant setup info. 2021-02-19 Thomas Fitzsimmons * lisp/url/url-http.el (url-http): Fix docstring typo. 2021-02-19 Thomas Fitzsimmons ntlm-tests: Remove missing dependency warnings * test/lisp/net/ntlm-tests.el: Remove warnings about dependencies not being present. 2021-02-19 Thomas Fitzsimmons Michael Albinus ntlm-tests: Skip tests if dependencies are too old * test/lisp/net/ntlm-tests.el (ntlm-tests--dependencies-present): Add version and functionality checks. 2021-02-19 Andrea Corallo Work around bug#46495 (GCC PR99126) * src/comp.c (gcc_jit_context_add_command_line_option): Import for dynamic load. (Fcomp__compile_ctxt_to_file): Disable GCC "isolate-paths" on GCC 10. 2021-02-19 Andrea Corallo Remove unnecessary function 'emit_rvalue_from_unsigned_long_long' * src/comp.c (emit_rvalue_from_unsigned_long_long): Remove function. (emit_rvalue_from_emacs_uint, emit_rvalue_from_lisp_word_tag) (emit_rvalue_from_lisp_word): Make use of 'emit_rvalue_from_long_long'. 2021-02-19 Andrea Corallo Pacify GCC warning on non wide-int configurations * src/comp.c (emit_rvalue_from_emacs_uint) (emit_rvalue_from_lisp_word_tag): Pacify GCC warning. (emit_rvalue_from_unsigned_long_long): Define it only when necessary. 2021-02-19 Alan Third Fix frame contents scaling bug on macOS (bug#46155) Discussion in bug#46406. * src/nsterm.m ([EmacsView focusOnDrawingBuffer:]): Set the scale factor for the backing layer. 2021-02-19 Stefan Monnier * lisp/emacs-lisp/bytecomp.el: Don't warn for repeated _ args (byte-compile-check-lambda-list): Skip warnings of repeated arg for those that are declared as unused anyway. 2021-02-19 Stefan Monnier * test/lisp/emacs-lisp/edebug-tests.el: Adjust to new `edebug-eval-defun`. (edebug-tests-trivial-backquote): Adjust to the way `eval-defun` outputs its result. (edebug-tests-cl-macrolet): Adjust to the fact that now macro expansion takes place during the `eval-defun` even when Edebugging. 2021-02-19 Glenn Morris Merge from origin/emacs-27 8e8b46ef81 (origin/emacs-27) More accurate documentation of the "r" i... dcb2015a5b Mention the GNU Kind Communications Guidelines in the FAQ 9882e63eea ; * CONTRIBUTE: Another wording change regarding tiny chan... 850f18ef23 Allow newlines in password prompts again in comint c977370dd7 Avoid point movement when visiting image files da64a257a4 ; * CONTRIBUTE: Yet another clarification of significant c... d03f2a6ee9 Avoid assertion violation in callproc.c dcc00bbb19 ; * CONTRIBUTE: Clarify the "15-lines" rule a bit more. 2021-02-19 Glenn Morris Merge from origin/emacs-27 4712c75ab8 Clarify when activate-mark-hook is run abedf3a865 Fix language-environment and font selection on MS-Windows 8b8708eadd Fix example in Sequence Functions node in the manual 2021-02-19 Ulf Jasper Enable newsticker--group-shift-feed-(up|down) to move groups as well Fix broken newsticker--group-shift-group-(up-down). * lisp/net/newst-treeview.el (newsticker-treeview-jump): Change prompt string. (newsticker--group-shift): Move the group when a group is currently selected. Fix error when explicitly shifting a group. (Fixes first issue in Bug#41376.) 2021-02-19 Eli Zaretskii More accurate documentation of the "r" interactive spec * doc/lispref/commands.texi (Interactive Codes): Describe the effect of 'mark-even-if-inactive'. 2021-02-19 Mattias Engdegård Fix regexp mistakes * lisp/progmodes/cperl-mode.el (cperl--package-regexp): Avoid double repetition; cperl--ws-or-comment-regexp is already repeated with 1+. * test/lisp/textmodes/dns-mode-tests.el (dns-mode-tests-dns-mode-soa-increment-serial): Escape literal '$'. * test/lisp/emacs-lisp/rx-tests.el (rx-regexp): Modify test to not trigger a linting warning while retaining its testing power. 2021-02-19 Stefan Kangas Mention the GNU Kind Communications Guidelines in the FAQ * doc/misc/efaq.texi (Guidelines for newsgroup postings): Mention the GNU Kind Communications Guidelines. 2021-02-19 Stefan Kangas * lisp/calculator.el: Minor doc fix. Remove redundant :group args. 2021-02-19 Michael Albinus Fix Tramp bug#46625 * test/lisp/net/tramp-tests.el (tramp-test33-environment-variables): Adapt test. (Bug#46625) 2021-02-19 Stefan Kangas Do interactive mode tagging for snake.el Do interactive mode tagging for tetris.el Do interactive mode tagging for man.el Do interactive mode tagging for package.el 2021-02-19 Thomas Fitzsimmons Implement NTLM server for ntlm.el testing * test/Makefile.in (GNU_ELPA_DIRECTORY, elpa_dependencies, elpa_els, elpa_opts): New variables. (EMACSOPT, ert_opts): Add elpa_opts. * test/README: Document GNU_ELPA_DIRECTORY make variable. * test/lisp/net/ntlm-tests.el: Fix checkdoc-reported issues. (ntlm-tests-message, ntlm-server-build-type-2, ntlm-server-hash) (ntlm-server-check-authorization, ntlm-server-do-token) (ntlm-server-filter, ntlm-server-handler, ntlm-server-start) (ntlm-server-stop, ntlm-tests--url-retrieve-internal-around) (ntlm-tests--authenticate) (ntlm-tests--start-server-authenticate-stop-server): New functions. (ntlm-tests--username-oem, ntlm-tests--username-unicode) (ntlm-tests--client-supports-unicode, ntlm-tests--challenge) (ntlm-tests--result-buffer, ntlm-tests--successful-result): New variables. (ntlm-authentication) (ntlm-authentication-old-compatibility-level): New tests. * test/lisp/net/ntlm-resources/authinfo: New file. (Bug#43566) 2021-02-18 Andrea Corallo * src/pdumper.c (dump_do_dump_relocation): Use emacs_fopen + ENCODE_FILE. * src/emacs.c (syms_of_emacs): Add a FIXME for Windows native-comp. 2021-02-18 Andrea Corallo Add a bunch of assertions for fixnums coming from Lisp later used as int * src/comp.c (emit_limple_insn, declare_lex_function) (compile_function, Fcomp__compile_ctxt_to_file): Add some assertion. 2021-02-18 Andrea Corallo Add assertion guarding against emitting a relocation array overflow * src/comp.c (reloc_array_t): New type. (comp_t, imm_reloc_t): Make use of 'reloc_array_t'. (obj_to_reloc): Add an assertion not to overflow relocation arrays. (emit_lisp_obj_reloc_lval, emit_limple_insn) (declare_imported_data_relocs): Make use of 'reloc_array_t'. 2021-02-18 Stefan Monnier * lisp/emacs-lisp/bindat.el: Tweak example in comment Suggested by Kim Storm . 2021-02-18 Mattias Engdegård Fix typos * doc/lispref/display.texi (Size of Displayed Text): * doc/lispref/windows.texi (Buffer Display Action Functions): * etc/NEWS: * etc/ORG-NEWS (Org-Attach has been refactored and extended): * lisp/battery.el (display-battery-mode, battery--upower-subsribe): * lisp/calendar/parse-time.el: * lisp/dired-x.el: * lisp/emacs-lisp/chart.el (chart-sequece, chart-bar-quickie): * lisp/emacs-lisp/eldoc.el (eldoc-echo-area-use-multiline-p) (eldoc-documentation-strategy): * lisp/emacs-lisp/pcase.el (pcase--split-pred, pcase--u1): * lisp/gnus/gnus-search.el (gnus-search-expandable-keys) (gnus-search-parse-query, gnus-search-query-return-string) (gnus-search-imap, gnus-search-imap-search-command) (gnus-search-transform-expression): * lisp/gnus/nnselect.el: * lisp/isearch.el (isearch-lazy-count-format): * lisp/mh-e/mh-show.el (mh-show-msg): * lisp/net/dictionary-connection.el (dictionary-connection-open): * lisp/net/dictionary.el (dictionary-default-popup-strategy) (dictionary, dictionary-split-string, dictionary-do-select-dictionary) (dictionary-display-dictionarys, dictionary-search) (dictionary-tooltip-mode): * lisp/net/eudcb-macos-contacts.el (eudc-macos-contacts-set-server): * lisp/net/mailcap.el (mailcap-mime-data): * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): * lisp/nxml/nxml-mode.el (nxml-mode): * lisp/progmodes/cc-engine.el: * lisp/progmodes/cperl-mode.el (cperl-mode) (cperl-fontify-syntaxically): * lisp/progmodes/flymake.el (flymake-diagnostic-functions): * lisp/progmodes/verilog-mode.el (verilog--supressed-warnings) (verilog-preprocess): * lisp/simple.el (self-insert-uses-region-functions): * lisp/textmodes/bibtex.el (bibtex-copy-summary-as-kill): * lisp/textmodes/texnfo-upd.el (texinfo-insert-master-menu-list): * src/dispnew.c: * src/font.c (Ffont_get): * src/indent.c (compute_motion): * src/process.c (init_process_emacs): * src/w32fns.c (deliver_wm_chars): * test/lisp/jsonrpc-tests.el (deferred-action-complex-tests): Fix typos in documentation, comments, and internal identifiers. 2021-02-18 Stefan Monnier * lisp/emacs-lisp/edebug.el (eval-defun): Simplify (edebug-all-defs, edebug-all-forms): Don't autoload since the problem it was working around has been fixed a while back. (edebug--eval-defun): Rename from `edebug-eval-defun` and simplify by making it an `:around` advice. (edebug-install-read-eval-functions) (edebug-uninstall-read-eval-functions): Adjust accordingly. (edebug-eval-defun): Redefine as an obsolete wrapper. * lisp/progmodes/elisp-mode.el (elisp--eval-defun): Use `load-read-function` so it obeys `edebug-all-(defs|forms)`. (elisp--eval-defun): Fix recent regression introduced with `elisp--eval-defun-result`. 2021-02-18 Lars Ingebrigtsen Revert "Do interactive mode tagging for python.el navigation functions." This reverts commit 546f552e7b2439b482c7d28222fb88761a9c876a. This is a "core package", so can't use the new syntax. 2021-02-18 Ryan Prior (tiny change) Allow newlines in password prompts again in comint * lisp/comint.el (comint-password-prompt-regexp): Match all whitespace (including newline) at the end of the passphrase, not just space and \t (bug#46609). (comint-watch-for-password-prompt): Remove trailing newlines from the prompt (bug#46609). 2021-02-18 Doug Davis (tiny change) Do interactive mode tagging for python.el navigation functions. * lisp/progmodes/python.el (navigation functions): Add python-mode to `interactive' declarations for mode-specific commands (bug#46610). 2021-02-18 Mattias Engdegård Fix rx `regexp` form with deprecated syntax The argument of the rx `regexp` form is assumed to evaluate to a valid regexp, but certain kinds of deprecated but still accepted usage were not handled correctly, such as unescaped literal (special) characters: (rx "a" (regexp "*")) => "a*" which is wrong. Handle these cases; there is no extra trouble. * lisp/emacs-lisp/rx.el (rx--translate-regexp): Force bracketing of single special characters. * test/lisp/emacs-lisp/rx-tests.el (rx-regexp): Add test case. 2021-02-18 Dmitry Gutov Move 'project-try-ede' to the back of 'project-find-functions' * lisp/cedet/ede.el (project-find-functions): Move 'project-try-ede' further back, so that 'project-try-vc' has priority (bug46202). 2021-02-18 Dmitry Gutov Present C source files as absolute file names too when possible * lisp/progmodes/elisp-mode.el (xref-location-group): Present C source files as absolute file names too when possible (bug#46514). 2021-02-17 Basil L. Contovounesios Fix recent Command Modes changes in Elisp manual * doc/lispref/commands.texi (Command Modes): Fix typos and grammar. Cross-reference the 'declare' form node. 2021-02-17 Matt Armstrong doc/lispref/commands.texi (Command Modes): Fix typo. * doc/lispref/commands.texi (Command Modes): Fix typo. 2021-02-17 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-02-17 Alan Mackenzie Make goto-line-history buffer local only when so customized * lisp/simple.el (goto-line-history-local): New customizable option. (goto-line-history): Define this simply with defvar, not defvar-local. (goto-line-read-args): Handle goto-line-history-local, and changes to it. * doc/emacs/basic.texi (Moving Point): Add a paragraph about goto-line-history-local. * etc/NEWS: Add an item under "Editing Changes in Emacs 28.1". 2021-02-17 Andrea Corallo Fix inverted logic in constraint comparison (bug#46540) * lisp/emacs-lisp/comp-cstr.el (comp-cstr->, comp-cstr->=) (comp-cstr-<, comp-cstr-<=): Fix inverted logic. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three integer constrain tests. 2021-02-17 Lars Ingebrigtsen Adjust the edebug spec for `interactive' * lisp/emacs-lisp/edebug.el: Adjust the edebug spec for `interactive' for the new syntax. 2021-02-17 Lars Ingebrigtsen Make unused `Buffer-menu-sort' alias obsolete * lisp/buff-menu.el (Buffer-menu-sort): Make unused alias obsolete. * test/lisp/progmodes/elisp-mode-tests.el (find-defs-defalias-defun-el): Adjust test to use an alias that's not obsolete. 2021-02-17 Lars Ingebrigtsen Mark up commands in buff-menu.el for modes 2021-02-17 Lars Ingebrigtsen Explicate on how to tag commands with modes * doc/lispref/commands.texi (Command Modes): New node. (Using Interactive): Move the `modes' text to the new node. 2021-02-17 Andrea Corallo * src/comp.c (Fcomp__compile_ctxt_to_file): Clean-up unused variable. 2021-02-17 Juri Linkov New transient mode 'repeat-mode' to allow shorter key sequences (bug#46515) * doc/emacs/basic.texi (Repeating): Document repeat-mode. * lisp/repeat.el (repeat-exit-key): New defcustom. (repeat-mode): New global minor mode. (repeat-post-hook): New function. * lisp/bindings.el (undo-repeat-map): New variable. (undo): Put 'repeat-map' property with 'undo-repeat-map'. (next-error-repeat-map): New variable. (next-error, previous-error): Put 'repeat-map' property with 'next-error-repeat-map'. * lisp/window.el (other-window-repeat-map): New variable. (other-window): Put 'repeat-map' property with 'other-window-repeat-map'. (resize-window-repeat-map): New variable. (enlarge-window, enlarge-window-horizontally) (shrink-window-horizontally, shrink-window): Put 'repeat-map' property with 'resize-window-repeat-map'. 2021-02-17 Juri Linkov New command 'tab-duplicate' like in web browsers 2021-02-17 Michael Albinus Further Tramp code cleanup * doc/misc/tramp.texi (Predefined connection information): Mention "about-args". * lisp/net/tramp-cmds.el (tramp-version): Adapt docstring. * lisp/net/tramp.el (tramp-handle-expand-file-name): * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-expand-file-name): * lisp/net/tramp-sh.el (tramp-sh-handle-expand-file-name) * lisp/net/tramp-smb.el (tramp-smb-handle-expand-file-name): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-expand-file-name): Handle local "/..". * lisp/net/tramp-rclone.el (tramp-methods) : Adapt `tramp-mount-args'. (tramp-rclone-flush-directory-cache): Remove. (tramp-rclone-do-copy-or-rename-file) (tramp-rclone-handle-delete-directory) (tramp-rclone-handle-delete-file) (tramp-rclone-handle-make-directory): Don't use that function. (tramp-rclone-maybe-open-connection): Fix use of `tramp-mount-args'. * lisp/net/trampver.el (tramp-inside-emacs): New defun. * lisp/net/tramp.el (tramp-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) (tramp-sh-handle-process-file, tramp-open-shell): Use it. (tramp-get-env-with-u-option): Remove. * test/lisp/net/tramp-tests.el (tramp-test05-expand-file-name-top): New test. 2021-02-17 Eli Zaretskii Disable filtering of commands in M-x completion This makes the default behavior like it was before: M-x completion doesn't filter out any commands. To have commands filtered based on their relevance to the current buffer's modes, customize the option 'read-extended-command-predicate' to call 'command-completion-default-include-p'. * doc/lispref/commands.texi (Interactive Call): * doc/emacs/m-x.texi (M-x): Update the description of 'read-extended-command-predicate' and improve wording. * etc/NEWS: Update the entry about 'read-extended-command-predicate'. * lisp/simple.el (read-extended-command-predicate): Change default value to nil. Update doc string. Add :group. (read-extended-command): Handle nil as meaning to apply no-filtering. 2021-02-17 Lars Ingebrigtsen Fix recently introduced bug in `byte-compile-lambda' * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Fix recently introduced error when compiling non-lexical commands (bug#46589). 2021-02-17 Lars Ingebrigtsen Clarify 'read-extended-command-predicate' in NEWS 2021-02-17 Lars Ingebrigtsen Change name for the completion-* predicates * lisp/simple.el (command-completion-default-include-p) (command-completion-with-modes-p, command-completion-button-p): Rename from completion-*. (read-extended-command-predicate): Adjust default predicate. * lisp/emacs-lisp/byte-run.el (byte-run--set-modes): Adjust predicate name. 2021-02-17 Glenn Morris * configure.ac: Replace obsolete AC_CHECK_HEADER usage. (Bug#46578) * configure.ac: Replace obsolete AC_TRY_LINK with AC_LINK_IFELSE. 2021-02-17 Glenn Morris Remove TIME_WITH_SYS_TIME, unused for a long time * configure.ac (AC_HEADER_TIME): Remove. (Bug#46578) 2021-02-17 Harald Jörg cperl-mode: Improve detection of index entries for imenu * lisp/progmodes/cperl-mode.el (cperl-imenu-addback): Customization variable deleted. This variable has been declared obsolete in 1998. (cperl--basic-identifier-regexp) and many other variables: defining regular expressions for basic Perl constructs. (cperl-imenu--create-perl-index): This function has been completely rewritten, keeping only some parts of the output formatting. It now recognizes a lot more package and subroutine declarations which came since Perl 5.14: Packages with a version and/or a block attached, lexical subroutines, declarations with a newline between the keyword "package" and the package name, and several more. This version also correctly separates subroutine names from attributes, does no longer support "unnamed" packages (which don't exist in Perl), and doesn't fall for false positives like stuff that looks like a declaration in a multiline string. (cperl-tags-hier-init): Eliminate call to `cperl-imenu-addback` (which actually was commented out in 1997) * test/lisp/progmodes/cperl-mode-tests.el (cperl-test--validate-regexp) and six other new tests for the new regular expressions and the index creation. * test/lisp/progmodes/cperl-mode-resources/grammar.pl: New file showcasing different syntax variations for package and sub declarations (bug#46574). 2021-02-17 Lars Ingebrigtsen Don't move point in `exif-parse-buffer' * lisp/image/exif.el (exif-parse-buffer): Don't move point (bug#46552). 2021-02-16 Lars Ingebrigtsen Fix edebug spec for minibuffer-with-setup-hook * lisp/files.el (minibuffer-with-setup-hook): Instrument the :append form for edebug (bug#46531). 2021-02-16 Lars Ingebrigtsen Clarify Gnus Agent expiry quirks * doc/misc/gnus.texi (Agent Expiry): Mention that the last article won't be expired (bug#46533). 2021-02-16 Andrea Corallo Clean-up some signal related dead-code * src/comp.c (restore_sigmask): Remove function. (Fcomp__compile_ctxt_to_file): Remove some dead-code. 2021-02-16 Andrea Corallo * src/comp.c (check_comp_unit_relocs): Prefer ptrdiff_t to EMACS_INT. 2021-02-16 Andrea Corallo Better long range check * src/comp.c (emit_rvalue_from_emacs_uint) (emit_rvalue_from_emacs_int, emit_rvalue_from_lisp_word_tag) (emit_rvalue_from_lisp_word): Better long range check. 2021-02-16 Andrea Corallo Sanitize frame slot access in final * src/comp.c (comp_t): Add 'frame_size' field. (emit_mvar_lval): Add sanity check on frame element access. (compile_function): Initialize 'comp.frame_size' and 'comp.frame_size'. 2021-02-16 Glenn Morris thumbs.el: avoid creating thumbs directory on loading library * lisp/thumbs.el (thumbs-cleanup-thumbsdir): Don't create the thumbs directory if it does not exist. 2021-02-16 Glenn Morris * admin/cus-test.el (cus-test-load-libs): Quieten loading. * admin/cus-test.el (cus-test-get-lisp-files): Ignore loaddefs files. 2021-02-16 Bastian Beranek * lisp/tab-bar.el: Fix behavior of toggle-frame-tab-bar (bug #46299) (toggle-frame-tab-bar): Add frame parameter to protect tab bar state. (tab-bar--update-tab-bar-lines): Check parameter. 2021-02-16 Basil L. Contovounesios Pacify unused function warning in xfns.c with GTK2 * src/xfns.c (x_get_net_workarea, x_get_monitor_for_frame) (x_make_monitor_attribute_list, x_get_monitor_attributes_fallback): [HAVE_XINERAMA] (x_get_monitor_attributes_xinerama) [HAVE_XRANDR] (x_get_monitor_attributes_xrandr) (x_get_monitor_attributes): Fix #ifdefs around definitions to avoid unused function warnings regardless of GTK use (bug#46509). [HAVE_XRANDR] (x_get_monitor_attributes_xrandr): Undefine RANDR13_LIBRARY after it's been used. 2021-02-16 Lars Ingebrigtsen Revert "Fix problem of point movement in image-mode" This reverts commit 7c7377288a125ef47f2b422cf131f044a3b418e1. This is fixed differently in Emacs 27. 2021-02-16 Lars Ingebrigtsen Fix problem of point movement in image-mode * lisp/image-mode.el (image-mode): Switch disable-point-adjustment on, otherwise `C-c C-c' will move point around oddly. (image-toggle-display): Ensure that point is on the image (bug#46552). 2021-02-16 Eli Zaretskii Avoid point movement when visiting image files * lisp/image-mode.el (image-toggle-display-image): Preserve point around the call to exif-parse-buffer, to prevent it from moving into the image data. (Bug#46552) 2021-02-16 Lars Ingebrigtsen Do interactive mode tagging for info.el 2021-02-16 Lars Ingebrigtsen Don't resize images in image-mode if we have a rotation * lisp/image-mode.el (image-fit-to-window): Don't resize of we have a manually rotated imaged (and explain the resizing logic a bit). 2021-02-16 Konstantin Kharlamov make smerge-vc-next-conflict wrap around * lisp/vc/smerge-mode.el: (smerge-vc-next-conflict): While searching for conflict markers, wrap search around if current file is the last one with conflicts (bug#46538). 2021-02-16 Stefan Kangas Do `interactive' mode tagging in gomoku.el * lisp/play/gomoku.el: Do `interactive' mode tagging. 2021-02-16 Stefan Kangas * lisp/play/gomoku.el: Minor doc fixes; formatting. 2021-02-16 Stefan Monnier * lisp/emacs-lisp/bindat.el: Add 64bit int support (bindat--unpack-u64, bindat--unpack-u64r, bindat--pack-u64) (bindat--pack-u64r): New functions. (bindat--unpack-item, bindat--pack-item): Use them. (bindat--fixed-length-alist): Add new types. 2021-02-16 Stefan Kangas Fix admin/check-doc-strings for new DEFUN format * admin/check-doc-strings: Various fixes, including for the new DEFUN format. The script still produces a ton of false positives, however. 2021-02-16 Stefan Monnier * lisp/emacs-lisp/bindat.el: Clarify when field labels are optional The fixes the doc and the Edebug spec, as well as a subtle issue in the code where a field whose name is (eval 'fill) was mistakenly considered as an anonymous field of type `fill`. (bindat--unpack-item, bindat--unpack-group, bindat--length-group) (bindat--pack-item, bindat--pack-group): Use dotimes, dolist, and pcase. (bindat--item-aux): New edebug elem. (bindat-item): Use it to fix the handling of optional fields. (bindat-format-vector): Use `mapconcat`. 2021-02-16 Stefan Monnier * lisp/emacs-lisp/bindat.el (bindat-spec): New macro. It's basically an alias for `quote`, but it offers the advantage of providing Edebug support and opens the possibility of compiling the bindat spec to ELisp code. * doc/lispref/processes.texi (Bindat Spec): Document `bindat-spec`. (Bindat Functions): Tweak a few things to adjust to the state of the code. * test/lisp/emacs-lisp/bindat-tests.el: Use it. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests--read): New function. (edebug-tests--&rest-behavior): New test. 2021-02-15 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Warn on empty let bodies 2021-02-15 Ulf Jasper Display yearly ical events from first year on. Fix Bug#23100. Convert yearly rrule starting in year x into diary-anniversary entry for year x-1 when importing an icalendar. Correspondingly convert diary-anniversary for year x into yearly rrule starting in year x+1. * test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-american: * test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-european: * test/lisp/calendar/icalendar-resources/import-rrule-anniversary.diary-iso: * test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-american: * test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-european: * test/lisp/calendar/icalendar-resources/import-rrule-yearly.diary-iso: * test/lisp/calendar/icalendar-tests.el (icalendar-convert-anniversary-to-ical): Match new diary-anniversary/yearly-rrule behaviour. * lisp/calendar/icalendar.el (icalendar--datestring-to-isodate): Add year-shift option. (icalendar--convert-anniversary-to-ical): Shift the year as diary-anniversary is not displayed in the initial year. (icalendar--convert-recurring-to-diary): Shift the year as diary-anniversary is not displayed in the initial year. (Bug#23100) 2021-02-15 Stefan Monnier * lisp/calc/calc-sel.el (calc-replace-sub-formula): Fix typo Reported by Sébastien Miquel 2021-02-15 Stefan Monnier * lisp/emacs-lisp/bindat.el: Expose the `struct` variable (bug#46534) (bindat--unpack-group, bindat--length-group, bindat--pack-group): Mark it as dynamically scoped. 2021-02-15 Lars Ingebrigtsen Allow overriding declared predicates, too * lisp/simple.el (completion-default-include-p): Rename and move the checking for an explicit predicate down here... (read-extended-command): ... from here. (read-extended-command-predicate): Adjust default value. 2021-02-15 Lars Ingebrigtsen Do `interactive' mode tagging in the remaining lisp/gnus files 2021-02-15 Lars Ingebrigtsen Add a new variable `global-minor-modes' * doc/lispref/modes.texi (Minor Modes): Document it. * lisp/simple.el (global-minor-modes): New variable. (completion-in-mode-p): Use it. (completion-with-modes-p): Use it. * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Support it. 2021-02-15 Lars Ingebrigtsen Rename minor-modes to local-minor-modes * doc/lispref/modes.texi (Minor Modes): Update documentation. * lisp/simple.el (completion-with-modes-p): Change usage. * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Change usage. * src/buffer.c: Rename from minor_modes to local_minor_modes throughout. (syms_of_buffer): Rename minor-modes to local-minor-modes. * src/buffer.h (struct buffer): Rename minor_modes_. * src/pdumper.c (dump_buffer): Update hash and usage. 2021-02-15 Stefan Monnier * lisp/emacs-lisp/edebug.el (edebug-&optional, edebug-&rest): Remove vars According to my tests, `edebug-&optional` never has any effect. And `edebug-&rest` can be replaced with a closure. (edebug-&rest-wrapper): Remove function. (edebug--match-&-spec-op): Use a closure to remember the `specs`. 2021-02-15 Stefan Monnier * lisp/emacs-lisp/byte-run.el (compiler-macro): Make it Edebuggable * lisp/emacs-lisp/gv.el (gc-expander, gv-setter): Reuse the spec of `compiler-macro`. 2021-02-15 Lars Ingebrigtsen Make the button completion predicate be more useful * lisp/simple.el (completion-button-p): Rework from `completion-at-point-p'. * lisp/net/shr.el (shr-show-alt-text): It should be possible to complete to commands that aren't bound to a key. 2021-02-15 Lars Ingebrigtsen Speed up completion-in-mode-p in the common case * lisp/simple.el (completion-in-mode-p): Make predicate more efficient in the common one-mode case. 2021-02-15 Lars Ingebrigtsen Fix two syntax errors in Specification List * doc/lispref/edebug.texi (Specification List): Add a couple of missing @s. 2021-02-15 Stefan Monnier Edebug: Generalize `&lookup`, use it for `cl-macrolet` and `cl-generic` This allows the use of (declare (debug ...)) in the lexical macros defined with `cl-macrolet`. It also fixes the names used by Edebug for the methods of `cl-generic` so it doesn't need to use gensym and so they don't include the formal arg names any more. * lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Rename from `edebug--handle-&-spec-op`. (edebug--match-&-spec-op <&interpose>): Rename from `&lookup` and generalize so it can let-bind dynamic variables around the rest of the parse. (edebug-lexical-macro-ctx): Rename from `edebug--cl-macrolet-defs` and make it into an alist. (edebug-list-form-args): Use the specs from `edebug-lexical-macro-ctx` when available. (edebug--current-cl-macrolet-defs): Delete var. (edebug-match-cl-macrolet-expr, edebug-match-cl-macrolet-name) (edebug-match-cl-macrolet-body): Delete functions. (def-declarations): Use new `&interpose`. (edebug--match-declare-arg): Rename from `edebug--get-declare-spec` and adjust to new calling convention. * lisp/subr.el (def-edebug-elem-spec): Fix docstring. (eval-after-load): Use `declare`. * lisp/emacs-lisp/cl-generic.el: Fix Edebug names so we don't need gensym any more and we only include the specializers but not the formal arg names. (cl--generic-edebug-name): New var. (cl--generic-edebug-remember-name, cl--generic-edebug-make-name): New funs. (cl-defgeneric, cl-defmethod): Use them. * lisp/emacs-lisp/cl-macs.el: Add support for `debug` declarations in `cl-macrolet`. (cl-declarations-or-string): Fix use of `lambda-doc` and allow use of `declare`. (edebug-lexical-macro-ctx): Declare var. (cl--edebug-macrolet-interposer): New function. (cl-macrolet): Use it to pass the right `lexical-macro-ctx` to the body. * lisp/emacs-lisp/pcase.el (pcase-PAT): Use new `&interpose`. (pcase--edebug-match-pat-args): Rename from `pcase--get-edebug-spec` and adjust to new calling convention. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-defgeneric/edebug/method): Adjust to the new names. * test/lisp/emacs-lisp/edebug-tests.el (edebug-cl-defmethod-qualifier) (edebug-tests-cl-flet): Adjust to the new names. * doc/lispref/edebug.texi (Specification List): Document &interpose. 2021-02-15 Stefan Kangas Avoid asking repeatedly about reloading bookmarks file * lisp/bookmark.el (bookmark-maybe-load-default-file): Reload watched bookmarks file only if its mtime has changed since the last query. This avoids asking repeatedly about reloading the bookmarks file if the user has already said "no" to a previous query. (bookmark--watch-file-already-queried-p): New function. (bookmark--watch-already-asked-mtime): New variable. 2021-02-14 Stefan Kangas Mark up bookmark.el for correct modes * lisp/bookmark.el: Mark up all commands with applicable modes. 2021-02-14 Lars Ingebrigtsen Add a comment to `read-extended-command' * lisp/simple.el (read-extended-command): Add a comment. 2021-02-14 Andrea Corallo * lisp/startup.el (normal-top-level): Use `path-separator' in place of ":". 2021-02-14 Eli Zaretskii * src/xdisp.c (move_it_to): Fix last change. (Bug#46316) 2021-02-14 Lars Ingebrigtsen Add a possible completion predicate for buttons * lisp/simple.el (completion-at-point-p): New predicate. * lisp/net/shr.el (shr-show-alt-text): Mark up as a button. 2021-02-14 Lars Ingebrigtsen Make completion-with-modes-p work with minor modes, too * lisp/simple.el (completion-with-modes-p): Work with minor modes, too. 2021-02-14 Andrea Corallo Revert "* src/comp.c (define_jmp_buf): Use 'jmp_buf' instead of 'sys_jmp_buf'." This reverts commit bebec46bcbf0e52460b08234c067d7a2cb0f2246. Looking at the git history I realize now the use of 'sys_jmp_buf' was intentional. 2021-02-14 Andrea Corallo * src/comp.c (define_jmp_buf): Use 'jmp_buf' instead of 'sys_jmp_buf'. * src/comp.c (load_comp_unit): Fix 'data_ephemeral_vec' shadowing decl. 2021-02-14 Bastian Beranek Fix showing and hiding of tab-bar on new frames (bug#46299) * lisp/tab-bar.el (tab-bar--update-tab-bar-lines) (tab-bar--tab-bar-lines-for-frame): New functions to update value of tab-bar-lines in frames. (tab-bar-mode, tab-bar-new-tab-to, tab-bar-close-tab) (tab-bar-close-other-tab, tab-bar-show :set): Use new function. (tab-bar-select-tab-modifiers :set): Work around visual glitch. 2021-02-14 Lars Ingebrigtsen Do command markup in blackbox.el 2021-02-14 Lars Ingebrigtsen Fix byte-run--set-modes call signature * lisp/emacs-lisp/byte-run.el (byte-run--set-modes): We take a list of modes, not a single one (and fix the quoting). 2021-02-14 Lars Ingebrigtsen Fix missing ' in NEWS 2021-02-14 Lars Ingebrigtsen Also mention `M-o M-o' removal * lisp/loadup.el (facemenu-keymap-restore): Also restore `M-o M-o'. 2021-02-14 Lars Ingebrigtsen Don't update `minor-modes' in global modes * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): There's no point in setting the buffer-local `minor-modes' in global modes. 2021-02-14 Lars Ingebrigtsen Mark up 5x5 for interactive mode 2021-02-14 Lars Ingebrigtsen Fix problem with the newly introduces `minor-modes' variable * lisp/help-fns.el (describe-mode): Apparently buffer-local variables take precedence over lexically bound variables? 2021-02-14 Lars Ingebrigtsen Do `interactive' mode markup in all Gnus files 2021-02-14 Lars Ingebrigtsen Really fix the syntax problem in define-minor-mode * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix interactive extension in previous change. 2021-02-14 Lars Ingebrigtsen Fix previous define-minor-mode change * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Fix interactive extension in previous change. 2021-02-14 Lars Ingebrigtsen Mark up eww.el for correct modes * lisp/net/eww.el: Mark up all commands with applicable modes. 2021-02-14 Lars Ingebrigtsen Make `C-h m' list unbound commands applicable for the mode * lisp/help-fns.el (help-fns--list-local-commands): New function. (describe-mode): Use it. 2021-02-14 Lars Ingebrigtsen Allow define-minor-mode to take an :interactive keyword * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Allow specifying the :interactive state and the modes. 2021-02-14 Lars Ingebrigtsen Fix dumping of buffers after minor_modes was added * src/pdumper.c (dump_buffer): Set minor_modes to nil before dumping. 2021-02-14 Lars Ingebrigtsen Revert the bit about command_modes in previous patch set * src/data.c (Fcommand_modes): Remove the subr bit -- it's not necessary since it can just use a predicate. * src/lisp.h (GCALIGNED_STRUCT): Remove command_modes. * src/lread.c (defsubr): Remove command_modes. 2021-02-14 Lars Ingebrigtsen Add 'read-extended-command-predicate' * doc/emacs/m-x.texi (M-x): Document it. * doc/lispref/commands.texi (Interactive Call): Document it further. * lisp/simple.el (read-extended-command-predicate): New user option. (read-extended-command-predicate): Use it. (completion-in-mode-p): New function (the default predicate). 2021-02-14 Lars Ingebrigtsen Mark easy-menu-do-define menus as "not interesting" * lisp/emacs-lisp/easymenu.el (easy-menu-do-define): Mark menu keymaps as "not interesting" when doing completion. 2021-02-14 Lars Ingebrigtsen Add new 'declare' forms for command completion predicates * doc/lispref/functions.texi (Declare Form): Document the new `completion' and `modes' declarations. * lisp/simple.el (completion-with-modes-p): New helper functions. * lisp/emacs-lisp/byte-run.el (byte-run--set-completion) (byte-run--set-modes): (defun-declarations-alist): New declarations for `completion' and `modes'. 2021-02-14 Lars Ingebrigtsen Extend the syntax of `interactive' to list applicable modes * doc/lispref/commands.texi (Using Interactive): Document the extended `interactive' form. * doc/lispref/loading.texi (Autoload): Document list-of-modes form. * lisp/emacs-lisp/autoload.el (make-autoload): Pick the list of modes from `interactive' out of the functions. * lisp/emacs-lisp/bytecomp.el (byte-compile-lambda): Allow for the extended `interactive' form. * src/callint.c (Finteractive): Document the extended form. * src/data.c (Finteractive_form): Return the interactive form in the old format (even when there's an extended `interactive') to avoid having other parts of Emacs be aware of this. (Fcommand_modes): New defun. * src/emacs-module.c (GCALIGNED_STRUCT): Allow for modules to return command modes. * src/lisp.h: New function module_function_command_modes. 2021-02-14 Lars Ingebrigtsen Fix how `shell-mode' avoids being called interactively * lisp/shell.el (shell-mode): Make noninteractive instead of erroring out after being called. 2021-02-14 Lars Ingebrigtsen Introduce an :interactive keyword for `defined-derived-mode' * doc/lispref/modes.texi (Derived Modes): Document it. * lisp/emacs-lisp/derived.el (define-derived-mode): Introduce a new :interactive keyword. 2021-02-14 Stefan Kangas Remove redundant :group args from textmodes/*.el * lisp/textmodes/enriched.el: * lisp/textmodes/ispell.el: * lisp/textmodes/makeinfo.el: * lisp/textmodes/paragraphs.el: * lisp/textmodes/picture.el: * lisp/textmodes/refbib.el: * lisp/textmodes/refer.el: * lisp/textmodes/remember.el: * lisp/textmodes/texinfo.el: * lisp/textmodes/tildify.el: * lisp/textmodes/two-column.el: Remove redundant :group args. 2021-02-14 Lars Ingebrigtsen Add a new buffer-local variable `minor-modes' * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Keep `minor-modes' updated. * src/buffer.c (bset_minor_modes, Fmake_indirect_buffer) (reset_buffer, init_buffer_once): Initialise `minor-modes'. (syms_of_buffer): Add `minor-modes' as a new permanently-local variable. * src/buffer.h (struct buffer): Add minor_modes_. 2021-02-14 Stefan Monnier * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Reinstate. Removed by accident. 2021-02-14 Stefan Monnier * lisp/emacs-lisp/edebug.el: Fix `called-interactively-p` And get rid of the old special-case handling of `interactive-p`, which is now redundant. (edebug--called-interactively-skip): Fix lexical-binding case, and adjust to some formerly missed call patterns. (edebug-def-interactive, edebug-interactive-p): Remove vars. (edebug-interactive-p-name, edebug-wrap-def-body) (edebug-make-enter-wrapper): Remove functions. (edebug-list-form): Don't special-case `interactive-p`. 2021-02-13 Stefan Monnier * lisp/emacs-lisp/edebug.el (edebug-match-lambda-expr): Delete function (lambda-expr): Define with `def-edebug-elem-spec` instead. (edebug--handle-&-spec-op): Remove left over code. (interactive): Re-add mistakenly removed spec elem. * doc/lispref/edebug.texi (Specification List): Remove `function-form`. 2021-02-13 Alan Third Fix flicker when resizing NS frame programmatically (bug#46155) * src/nsterm.m ([EmacsView viewWillDraw]): New function. ([EmacsView viewDidResize:]): We now have to mark the frame for display on resize. ([EmacsView initFrameFromEmacs:]): Retain frame contents on resize. ([EmacsView updateLayer]): Don't update the layer if the frame is still garbaged. 2021-02-13 Alan Third Remove aliasing on SVG images under scaled NS frames * src/image.c (FRAME_SCALE_FACTOR): New #define for getting frame scale factor. (image_set_transform): (svg_load_image): Use FRAME_SCALE_FACTOR. * src/nsterm.m (ns_frame_scale_factor): Get the scale factor for an NS frame. 2021-02-13 Stefan Monnier * lisp/emacs-lisp/edebug.el (edebug--handle-&-spec-op <&name>): New method (edebug--concat-name): New function. (edebug-match-name, edebug-match-cl-generic-method-qualifier) (edebug-match-cl-generic-method-args): Delete functions. * doc/lispref/edebug.texi (Specification List): Document it. * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Use `&name`. (cl-generic--method-qualifier-p): New predicate. (cl-defmethod): Use it and `&name`. * lisp/emacs-lisp/cl-macs.el (cl-defun, cl-iter-defun, cl-flet): * lisp/emacs-lisp/eieio-compat.el (defmethod): * lisp/emacs-lisp/gv.el (gv-define-setter): * lisp/emacs-lisp/ert.el (ert-deftest): Use `&name`. * lisp/erc/erc-backend.el (define-erc-response-handler): Use `declare` and `&name`. 2021-02-13 Philipp Stephani * etc/NEWS: Document new JSON behavior. 2021-02-13 Augusto Stoffel (tiny change) Small correction to `isearch-lazy-highlight-buffer-update' The value of point is now read after a potential change of buffer. * lisp/isearch.el (isearch-lazy-highlight-buffer-update): Move call to `point' after `select-window'. 2021-02-13 Stefan Monnier (backtrace-goto-source-functions): Make it a normal abnormal hook * lisp/emacs-lisp/backtrace.el (backtrace-goto-source-functions): Don't mark it as buffer-local any more. (backtrace-goto-source): Use `run-hook-with-args-until-success`. * lisp/emacs-lisp/edebug.el (edebug-pop-to-backtrace): Clarify that the hook is only intended to be modified buffer-locally. 2021-02-13 Eli Zaretskii Fix I-search at EOB when long lines are truncated * src/xdisp.c (move_it_to): Fix logic when TO_CHARPOS is at the end of an hscrolled line which ends at EOB. (Bug#46316) 2021-02-13 Philipp Stephani Pass 'struct json_configuration' as const where possible. The JSON serialization and parsing functions don't need to modify these structures. * src/json.c (lisp_to_json_nonscalar_1, lisp_to_json_nonscalar) (lisp_to_json, json_to_lisp): Mark configuration object parameter as const. 2021-02-13 Philipp Stephani Allow any JSON value at the top level (Bug#42994). Newer standards like RFC 8259, which obsoletes the earlier RFC 4627, now allow any top-level value unconditionally, so Emacs should too. * src/json.c (Fjson_serialize, Fjson_insert): Pass JSON_ENCODE_ANY to allow serialization of any JSON value. Call 'lisp_to_json' instead of 'lisp_to_json_toplevel'. Remove obsolete comments (neither JSON_DECODE_ANY nor JSON_ALLOW_NUL are allowed here). Reword documentation strings. (Fjson_parse_string, Fjson_parse_buffer): Pass JSON_DECODE_ANY to allow deserialization of any JSON value. Reword documentation strings. (lisp_to_json_nonscalar, lisp_to_json_nonscalar_1): Rename from "toplevel" to avoid confusion. (lisp_to_json): Adapt caller. * test/src/json-tests.el (json-serialize/roundtrip-scalars): New unit test. * doc/lispref/text.texi (Parsing JSON): Update documentation. 2021-02-13 Basil L. Contovounesios Remove stale comments from gnus-msg.el * lisp/gnus/gnus-msg.el (gnus-group-mail, gnus-group-news) (gnus-summary-mail-other-window, gnus-summary-news-other-window): Remove stale comments about let-binding gnus-newsgroup-name, as they should have been addressed (bug#37871#38). 2021-02-13 Eli Zaretskii Fix vertical cursor motion among many images * src/xdisp.c (move_it_in_display_line_to): Consider it MOVE_POS_MATCH_OR_ZV if we are just after an image, stretch, or display string, and the position matches exactly. This is needed when one image follows another at TO_CHARPOS. (Bug#46464) 2021-02-13 Lars Ingebrigtsen add-minor-mode doc string clarification * lisp/subr.el (add-minor-mode): Clarify that this function isn't only about XEmacs compat stuff. 2021-02-13 Stefan Kangas Delete 20 year old comment in executable.el * lisp/progmodes/executable.el (executable-insert): Delete 20 year old comment. 2021-02-13 Stefan Kangas Remove redundant :group args in progmodes/*.el * lisp/progmodes/bug-reference.el: * lisp/progmodes/cfengine.el: * lisp/progmodes/cmacexp.el: * lisp/progmodes/cpp.el: * lisp/progmodes/cwarn.el: * lisp/progmodes/dcl-mode.el: * lisp/progmodes/executable.el: * lisp/progmodes/flymake.el: * lisp/progmodes/gud.el: * lisp/progmodes/hideshow.el: * lisp/progmodes/icon.el: * lisp/progmodes/inf-lisp.el: * lisp/progmodes/js.el: * lisp/progmodes/ld-script.el: * lisp/progmodes/make-mode.el: * lisp/progmodes/modula2.el: * lisp/progmodes/pascal.el: * lisp/progmodes/perl-mode.el: * lisp/progmodes/prog-mode.el: * lisp/progmodes/simula.el: * lisp/progmodes/xscheme.el: Remove redundant :group args. 2021-02-13 Stefan Monnier Edebug: Make it possible to debug `gv-expander`s in `declare` Arrange for declarations to be able to specify their own specs via the `edebug-declaration-spec` property. * lisp/emacs-lisp/edebug.el: (edebug--get-declare-spec): New function. (def-declarations): New spec element. (defun, defmacro): Use it in their spec. * lisp/emacs-lisp/gv.el (gv-expander, gv-setter): Set `edebug-declaration-spec`. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-gv-expander): New test. * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el (edebug-test-code-use-gv-expander): New test case. 2021-02-13 Stefan Kangas Comment out mysterious code from cperl-mode.el * lisp/progmodes/cperl-mode.el: Comment out mysterious code referring to some unknown variable 'edit-var-mode-alist'. No one seems to know what it is used for, so comment it out and see if anyone complains before Emacs 28.1 or 28.2. 2021-02-13 Stefan Kangas Remove outdated documentation from cperl-mode.el * lisp/progmodes/cperl-mode.el (cperl-tips, cperl-problems) (cperl-praise, cperl-speed, cperl-mode): Doc fixes; remove references to very old versions of Emacs and other "Emaxen". (cperl-problems-old-emaxen): Make obsolete and remove information on Emacs 20.3 and older. 2021-02-13 Stefan Monnier Edebug: Overload `edebug-form-spec` even less The `edebug-form-spec` symbol property was used both to map forms's head symbol to the corresponding spec, and to map spec element names to their expansion. This lead to name conflicts which break instrumentation of examples such as (cl-flet ((gate (x) x)) (gate 4)) because of the Edebug spec element `gate`. So introduce a new symbol property `edebug-elem-spec`. * lisp/subr.el (def-edebug-elem-spec): New function. * lisp/emacs-lisp/edebug.el (edebug--get-elem-spec): New function. (edebug-match-symbol): Use it. (Core Edebug elems): Put them on `edebug-elem-spec` instead of `edebug-form-spec`. (ELisp special forms): Set their `edebug-form-spec` via dolist. (Other non-core Edebug elems): Use `def-edebug-elem-spec`. (edebug-\`): Use `declare`. * lisp/emacs-lisp/pcase.el (pcase-PAT, pcase-FUN, pcase-QPAT): * lisp/skeleton.el (skeleton-edebug-spec): * lisp/emacs-lisp/cl-macs.el: Use `def-edebug-elem-spec`. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests--conflicting-internal-names): New test. * test/lisp/emacs-lisp/edebug-resources/edebug-test-code.el (edebug-test-code-cl-flet1): New test case. * doc/lispref/edebug.texi (Specification List): Add `def-edebug-elem-spec`. (Specification Examples): Use it. * doc/lispref/loading.texi (Hooks for Loading): Avoid the use of `def-edebug-spec` in example (better use `debug` declaration). 2021-02-13 Stefan Kangas Remove XEmacs and Emacs 21 compat code from cperl-mode * lisp/progmodes/cperl-mode.el (cperl-mode): Remove XEmacs and Emacs 21 compat code. (cperl-compilation-error-regexp-list): New variable. (cperl-compilation-error-regexp-alist): Make obsolete. 2021-02-12 Basil L. Contovounesios Fix ElDoc setup for eval-expression * lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): Don't set global value of eldoc-documentation-strategy (bug#44886). 2021-02-12 Stefan Monnier Use `declare` instead of `def-edebug-spec` in most places * lisp/speedbar.el: Use lexical-binding. (speedbar-with-writable): Use `declare`. * lisp/subr.el (def-edebug-spec): Use `declare`. * lisp/cedet/ede/base.el: Use lexical-binding. (ede-with-projectfile): Use `declare`. (recentf-exclude): Declare var. * lisp/cedet/ede/pmake.el: Use lexical-binding. (ede-pmake-insert-variable-shared, ede-pmake-insert-variable-once): Use `declare`. * lisp/cedet/ede/proj-comp.el: Use lexical-binding. (ede-compiler-begin-unique, ede-compiler-only-once) (ede-linker-begin-unique, ede-linker-only-once): Use `declare`. * lisp/cedet/semantic/ctxt.el: Use lexical-binding. (semantic-with-buffer-narrowed-to-context) (semantic-with-buffer-narrowed-to-command): Use `declare`. (semantic--progress-reporter): Declare var. (semantic-ctxt-end-of-symbol-default): Remove unused var `fieldsep`. * lisp/cedet/semantic/lex-spp.el: Use lexical-binding. (define-lex-spp-macro-declaration-analyzer) (define-lex-spp-include-analyzer, semantic-lex-with-macro-used) (define-lex-spp-macro-undeclaration-analyzer): Use `declare`. (semantic-lex-spp-symbol-remove): Rename arg to avoid colliding with dynamic variable `obarray`. (semantic-lex-spp-symbol-pop): Remove unused var `oldvalue`. (semantic-lex-spp-lex-text-string): Remove unused var `analyzer`. * lisp/cedet/semantic/lex.el (define-lex) (semantic-lex-unterminated-syntax-protection, define-lex-analyzer) (define-lex-regex-analyzer, define-lex-block-analyzer) (semantic-lex-catch-errors): Use `declare`. * lisp/cedet/semantic/tag.el: Use lexical-binding. (semantic-with-buffer-narrowed-to-current-tag) (semantic-with-buffer-narrowed-to-tag): Use `declare`. * lisp/cedet/semantic/wisent.el: Use lexical-binding. (define-wisent-lexer): Use `declare`. * lisp/emacs-lisp/cl-lib.el (cl-pushnew): The arg to :test can be any form not just function form. * lisp/org/ob-comint.el (org-babel-comint-in-buffer) (org-babel-comint-with-output): Use `declare`. * lisp/org/ob-core.el (org-babel-map-src-blocks): Use `declare`. (org-babel-result-cond): Simplify edebug spec. * lisp/org/org-clock.el (org-with-clock-position, org-with-clock): * lisp/org/org-agenda.el (org-agenda-with-point-at-orig-entry): * lisp/org/ob-tangle.el (org-babel-with-temp-filebuffer): Use `declare`. * lisp/textmodes/rst.el (push): Remove redundant edebug spec. * lisp/vc/pcvs-parse.el: Use lexical-binding. (cvs-parse-buffer): Rename arg to avoid dynbound conflict. (cvs-or): Use `declare`. 2021-02-12 Mattias Engdegård Simplify expression in byte-code decompiler * lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): Replace roundabout expression with what it essentially does. 2021-02-12 Mattias Engdegård byte-opt.el: More concise expression * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Refactor `setq` clause. 2021-02-12 Mattias Engdegård Avoid traversing dead `if` branches in bytecode optimiser There is no point in traversing conditional branches that are statically known never to be executed. This saves some optimisation effort, but more importantly prevents variable assignments and references in those branches from blocking effective constant propagation. Also attempt to traverse as much as possible in an unconditional context, which enables constant-propagation through (linear) assignments. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form): Rewrite the (tail) recursion into an explicit loop. Normalise a return value of (quote nil) to nil, for easier subsequent optimisations. * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Don't traverse dead `if` branches. Use unconditional traversion context when possible. 2021-02-12 Mattias Engdegård Don't inline tramp-debug-message * lisp/net/tramp.el (tramp-debug-message): Change defsubst into defun. Until now the byte-compiler hasn't been clever enough to inline this function but this is about to change; the code expansion is unnecessary and makes compiler improvements more difficult to gauge. 2021-02-12 Stefan Kangas Use regexp-opt for font lock defaults in meta-mode.el * lisp/progmodes/meta-mode.el: Remove redundant :group args. (meta-font-lock-keywords): Use regexp-opt. 2021-02-12 Stefan Kangas Minor cleanups in scheme.el * lisp/progmodes/scheme.el: Remove redundant :group args. (dsssl-font-lock-keywords): Use regexp-opt. 2021-02-12 Stefan Kangas Add font locking for many missing macros in m4-mode * lisp/progmodes/m4-mode.el (m4--macro-list): New variable. (m4-font-lock-keywords): Use regexp-opt and add many missing macros sourced from the M4 manual. 2021-02-12 Stefan Monnier * lisp/emacs-lisp/edebug.el (edebug--handle-&-spec-op) <&lookup>: New method * doc/lispref/edebug.texi (Specification List): Document it. * lisp/emacs-lisp/pcase.el (pcase-PAT): Use it. (pcase-MACRO): Remove Edebug element. (pcase--get-edebug-spec): New function. (pcase--edebug-match-macro): Remove function. 2021-02-12 Stefan Monnier * lisp/emacs-lisp/cl-macs.el (cl-flet): Fix edebug spec 2021-02-12 Stefan Monnier * lisp/emacs-lisp/edebug.el: Misc cleanups. Move all definitions under the `edebug-` prefix. (edebug-get-spec): Rename from `get-edebug-spec`. (edebug-move-cursor): Use `cl-callf`. (edebug-spec-p): Remove unused function. (def-edebug-spec, edebug-spec-list, edebug-spec): Remove unused specs (nothing in there gets instrumented anyway). (edebug-tracing): Use `declare`. (edebug-cancel-on-entry): Rename from `cancel-edebug-on-entry`. (edebug-global-prefix): Rename from `global-edebug-prefix`. (edebug-global-map): Rename from `global-edebug-map`. * lisp/emacs-lisp/pcase.el (pcase-PAT): Remove `let`. (let): Use `declare` instead. (pcase--edebug-match-macro): Use new name `edebug-get-spec`. 2021-02-12 Robert Pluim Remove Motif support * configure.ac: Remove support for configuring --with-x-toolkit=motif * etc/NEWS: Mention removal of Motif support. 2021-02-12 Lars Ingebrigtsen Allow minor modes to specify major modes they're useful in 2021-02-12 Stefan Monnier * lisp/emacs-lisp/gv.el (gv-place): Simplify 2021-02-12 Stefan Monnier * lisp/cedet/semantic/symref/: Use lexical-binding * lisp/cedet/semantic/symref/cscope.el: * lisp/cedet/semantic/symref/filter.el: * lisp/cedet/semantic/symref/global.el: * lisp/cedet/semantic/symref/grep.el: * lisp/cedet/semantic/symref/idutils.el: * lisp/cedet/semantic/symref/list.el: Use lexical-binding. 2021-02-12 Stefan Monnier * lisp/cedet/semantic/decorate/: Use lexical-binding in all files * lisp/cedet/semantic/decorate/include.el (semantic-decoration-fileless-include-describe): Remove unused var `mm`. * lisp/cedet/semantic/decorate/mode.el: Use lexical-binding. 2021-02-11 Alan Mackenzie Make recursive minibuffers and recursive edits work together * lisp/minibuffer.el (exit-minibuffer): When in a minibuffer, throw an error should the command loop nesting level be wrong. * src/lisp.h (minibuffer_quit_level): declare as an extern. (command_loop_level): Move definition from src/window.h * src/window.h (command_loop_level): move definition to src/lisp.h. * src/eval.c (minibuffer_quit_level): Move this variable to file level from being a static inside internal_catch. (internal_catch): Simplify the logic. * src/minibuf.c (Vcommand_loop_level_list): New variable. (move_minibuffer_onto_frame): Set the major mode of *Minibuf-0*. (Fminibuffer_innermost_command_loop_p): New primitive. (Fabort_minibuffers): Check the command loop level before throwing t to 'exit, and set minibuffer_quit_level too. (read_minibuf): New variable calling_window. Before stacking up minibuffers on the current mini-window, check that the mini-window is not the current one. Do not call choose_minibuf_frame from read_minibuf's unwinding process. Bind calling_frame and calling_window over the recursive edit. Set the new minibuffer's major mode directly. Remove the switching away from the minibuffer after the recursive edit. (get_minibuffer): Record the command loop level in new variable Vcommand_loop_level_list. No longer set the major mode of a returned minibuffer. (minibuf_c_loop_level): New function. (read_minibuf_unwind): New variables calling_frame, calling_window are unbound from the binding stack. Remove old variable `window', which could not be set reliably to the expired mini-window. The expired minibuffer is determined as the nth in the list, rather than the contents of the current or previous mini-window. Switch the current window away from the mini-window here (moved from read_minibuf). 2021-02-11 Stefan Kangas Use lexical-binding in erc-sound.el * lisp/erc/erc-sound.el: Use lexical-binding. Remove redundant :group args. 2021-02-11 Stefan Kangas Drop XEmacs and SXEmacs support from EDE * lisp/cedet/ede/emacs.el (ede-emacs-version): Drop XEmacs and SXEmacs support from EDE. 2021-02-11 Stefan Kangas Use lexical-binding in various ede files * lisp/cedet/ede/dired.el: * lisp/cedet/ede/emacs.el: * lisp/cedet/ede/make.el: * lisp/cedet/ede/proj-archive.el: * lisp/cedet/ede/proj-aux.el: * lisp/cedet/ede/proj-misc.el: * lisp/cedet/ede/proj-scheme.el: * lisp/cedet/ede/srecode.el: * lisp/cedet/ede/system.el: Use lexical-binding. 2021-02-11 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Default to speed 1. 2021-02-11 Stefan Kangas Use lexical-binding in wid-browse.el * lisp/wid-browse.el: Use lexical-binding. (widget-browse-mode): Use define-derived-mode. (widget-browse-mode-hook): Remove redundant :group arg. (widget-browse-action, widget-browse-value-create): Doc fixes. 2021-02-11 Stefan Kangas * lisp/ps-samp.el: Use lexical-binding. 2021-02-11 Stefan Kangas Fix two Emacs version references in misc manuals * doc/misc/forms.texi: Fix reference to Emacs version. * doc/misc/remember.texi: Fix version reference to indicate Emacs version instead of version of remember. The corresponding version variable and header have been marked obsolete. 2021-02-11 Basil L. Contovounesios Fix Octave double-quoted string line continuations * lisp/progmodes/octave.el (octave-string-continuation-marker): New defconst after octave-continuation-string. (octave-continuation-string): Mention it in docstring. (octave-maybe-insert-continuation-string): Mark unused function as obsolete. (octave-help-function): Simplify action. (octave--indent-new-comment-line): Insert octave-string-continuation-marker instead of octave-continuation-string within double-quoted strings (bug#46420). (octave-indent-new-comment-line): * etc/NEWS: Describe new behavior. 2021-02-11 Andrii Kolomoiets Use frame monitor in frame_float * src/frame.c (frame_float): Use frame monitor attributes instead of attributes of the main monitor (bug#46406). 2021-02-11 Stefan Kangas Avoid having erc in irrelevant finder categories * lisp/erc/erc-backend.el: * lisp/erc/erc-button.el: * lisp/erc/erc-dcc.el: * lisp/erc/erc-identd.el: * lisp/erc/erc-join.el: * lisp/erc/erc-lang.el: * lisp/erc/erc-log.el: * lisp/erc/erc-match.el: * lisp/erc/erc-menu.el: * lisp/erc/erc-pcomplete.el: * lisp/erc/erc-replace.el: * lisp/erc/erc-spelling.el: * lisp/erc/erc-stamp.el: * lisp/erc/erc-track.el: * lisp/erc/erc-xdcc.el: Remove irrelevant entries in Keywords header. 2021-02-11 Stefan Kangas * lisp/progmodes/cperl-mode.el (cperl-init-faces): Use regexp-opt. 2021-02-10 Stefan Monnier * lisp/play/decipher.el: Use lexical-binding (decipher-mode-syntax-table): Move initialization into declaration. (decipher-mode, decipher-stats-mode): Use `define-derived-mode`. (decipher-stats-buffer): Use `buffer-local-value`. 2021-02-10 Stefan Monnier * lisp/leim/quail: Use lexical-binding * lisp/leim/quail/hangul.el: * lisp/leim/quail/indian.el: * lisp/leim/quail/ipa.el: * lisp/leim/quail/japanese.el: * lisp/leim/quail/lao.el: * lisp/leim/quail/latin-ltx.el: * lisp/leim/quail/lrt.el: * lisp/leim/quail/sisheng.el: * lisp/leim/quail/thai.el: * lisp/leim/quail/tibetan.el: Use lexical-binding. * lisp/leim/quail/uni-input.el (ucs-input-method): Remove unused var `str`. 2021-02-10 Stefan Monnier * lisp/leim/quail: Use lexical-binding * lisp/leim/quail/hangul.el: * lisp/leim/quail/indian.el: * lisp/leim/quail/ipa.el: * lisp/leim/quail/japanese.el: * lisp/leim/quail/lao.el: * lisp/leim/quail/latin-ltx.el: * lisp/leim/quail/lrt.el: * lisp/leim/quail/sisheng.el: * lisp/leim/quail/thai.el: * lisp/leim/quail/tibetan.el: Use lexical-binding. * lisp/leim/quail/uni-input.el (ucs-input-method): Remove unused var `str`. 2021-02-10 Stefan Monnier * lisp/subr.el (combine-change-calls-1): Don't presume integer args This avoids problems where the `after-change-functions` end up called with the new length rather than the old length. 2021-02-10 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): Break cycles * test/lisp/emacs-lisp/macroexp-tests.el: New file. 2021-02-10 Andrea Corallo Add late load pdumper hooks so these can call into Lisp * src/pdumper.h (pdumper_do_now_and_after_late_load): New function. * src/pdumper.c (dump_late_hooks, nr_dump_late_hooks): New static variables. (dump_metadata_for_pdumper): Add support for late load hooks. (pdumper_do_now_and_after_late_load_impl): New functions. (pdumper_load): Add support for late load hooks. * src/window.c (init_window_once): Register 'init_window_once_for_pdumper' to be executed after late load. 2021-02-10 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2021-02-10 Juri Linkov Fix ediff even/odd faces to increase their contrast and readability * lisp/vc/ediff-init.el (ediff-even-diff-A, ediff-even-diff-B) (ediff-even-diff-C, ediff-even-diff-Ancestor, ediff-odd-diff-A) (ediff-odd-diff-B, ediff-odd-diff-C): Add :distant-foreground "Black" for light background. For dark background add :distant-foreground "White", and use darker shades of grey for background colors (bug#46396). 2021-02-10 Lars Ingebrigtsen Fix build problem with previous facemenu change * lisp/facemenu.el (facemenu-add-face-function): Move to avoid a warning. (list-colors-display): Autoload. 2021-02-10 Paul Eggert Simplify and speed up after-find-file Use newer primitives like file-accessible-directory-p to simplify and speed up longstanding code in after-find-file. * lisp/files.el (after-find-file): Prefer file-exists-p + file-symlink-p to file-attributes + file-symlink-p + file-chase-links + file-exists-p. Prefer file-accessible-directory-p to directory-file-name + file-attributes. Prefer file-directory-p to file-name-directory + file-exists-p. 2021-02-10 Paul Eggert Fix file lock issue (Bug#46397) * src/filelock.c (current_lock_owner): Also treat ENOTDIR as meaning the lock file does not exist. 2021-02-10 Lars Ingebrigtsen Remove the 'M-o' ('facemap-keymap') binding experimentally * doc/lispref/maps.texi (Standard Keymaps): * doc/lispref/keymaps.texi (Prefix Keys): Remove mentions. * etc/facemenu-removal.txt: New temporary file. * lisp/loadup.el: Don't load facemenu.el. (removed-facemenu-command): New command. (facemenu-keymap-restore): New function. * lisp/textmodes/text-mode.el (center-paragraph): Remove binding. (center-line): Remove binding. 2021-02-10 Stefan Monnier * lisp/emacs-lisp/edebug.el: Tweak last change Use generic functions i.s.o `edebug--spec-op-function`. : No need to register the &foo and :foo handler any more. (edebug--handle-&-spec-op, edebug--handle-:-spec-op): New generic functions. (edebug-match-specs): Use them. (edebug--get-spec-op): Remove function. (edebug-match-&optional, edebug-match-&rest, edebug-match-&or) (edebug-match-¬, edebug-match-&key, edebug-match-&error) (edebug-match-&define): Turn functions into methods of `edebug--handle-&-spec-op`. (edebug-match-:name, edebug-match-:unique): Turn functions into methods of `edebug--handle-:-spec-op`. 2021-02-10 Eli Zaretskii Avoid assertion violation in callproc.c * src/callproc.c (call_process): Avoid assertion violation when DESTINATION is a cons cell '(:file . "FOO")'. (Bug#46426) 2021-02-10 Stefan Kangas Use lexical-binding in dns-mode.el * lisp/textmodes/dns-mode.el: Use lexical-binding. Remove redundant :group args. * test/lisp/textmodes/dns-mode-tests.el (dns-mode-tests-dns-mode-soa-increment-serial): New test. 2021-02-10 Stefan Kangas Use lexical-binding in mail-utils.el and add tests * lisp/mail/mail-utils.el: Use lexical-binding. * test/lisp/mail/mail-utils-tests.el: New file. 2021-02-10 Stefan Monnier * lisp/emacs-lisp/edebug.el: Don't overload `edebug-form-spec`. The `edebug-form-spec` symbol property was used to store two different things: the handlers for spec elements like `body` and the handlers for spec operators like `&or`. But these two sets use different calling conventions, so they're fundamentally incompatible. So, move the handlers to spec operators to the new property `edebug--spec-op-function`. This unbreaks Edebugging of: (cl-flet ((f (&rest x) x)) 3) * lisp/emacs-lisp/edebug.el : Split the alist of built in spec elements into normal spec element and spec ops. (edebug--get-spec-op): New function. (edebug-match-specs): Use it. (edebug-match-:name): Rename from `edebug-match-colon-name`. 2021-02-10 Eli Zaretskii Bump FACE_CACHE_BUCKETS_SIZE to 1009 * src/xfaces.c (FACE_CACHE_BUCKETS_SIZE): Make it 1009, a prime number, per the comment. Reported by Win Treese . 2021-02-10 Mattias Engdegård Fix local defvar scoping error (bug#46387) This bug was introduced by the lexical variable constant propagation mechanism. It was discovered by Michael Heerdegen. * lisp/emacs-lisp/byte-opt.el (byte-optimize-let-form) (byte-optimize-body): Let the effects of a local defvar declaration be scoped by let and let*, not any arbitrary Lisp expression body (such as progn). * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--get-vars) (bytecomp-local-defvar): New test. 2021-02-10 Stefan Kangas Minor cleanup in imenu.el * lisp/imenu.el: Doc fix; these examples have been removed. Remove redundant :group args. 2021-02-10 Stefan Kangas Use lexical-binding in snmp-mode.el * lisp/net/snmp-mode.el: Use lexical-binding. Remove redundant :group args. Doc fix; remove outdated information. (snmp-mode, snmpv2-mode): Add FIXME to use define-derived-mode. 2021-02-10 Stefan Kangas Declare empty macro imenu-progress-menu obsolete * lisp/imenu.el: Remove commented out code. (imenu-progress-message): Declare macro obsolete. * lisp/erc/erc-imenu.el (erc-create-imenu-index): * lisp/net/snmp-mode.el (snmp-mode-imenu-create-index): * lisp/progmodes/antlr-mode.el (antlr-imenu-create-index-function): Don't use or mention above obsolete macro. 2021-02-10 Protesilaos Stavrou Update NEWS entry for vc-dir faces * NEWS: Remove reference to specific backend, as it now applies to all of them. Update name of 'vc-dir-status-ignored'. This follows from the discussion in bug#46358. 2021-02-10 Stefan Kangas * lisp/cedet/semantic/bovine/gcc.el: Use lexical-binding. 2021-02-10 Stefan Kangas Move cedet test resource files to follow our conventions * test/lisp/cedet/semantic-utest-ia.el (ert, ert-x): Require. (cedet-utest-directory, semantic-utest-test-directory): Remove variables. (semantic-utest-ia-doublens.cpp, semantic-utest-ia-subclass.cpp) (semantic-utest-ia-typedefs.cpp, semantic-utest-ia-struct.cpp) (semantic-utest-ia-templates.cpp, semantic-utest-ia-using.cpp) (semantic-utest-ia-nsp.cpp, semantic-utest-ia-localvars.cpp) (semantic-utest-ia-namespace.cpp) (semantic-utest-ia-sppcomplete.c, semantic-utest-ia-varnames.c) (semantic-utest-ia-javacomp.java) (semantic-utest-ia-varnames.java, semantic-utest-ia-wisent.wy) (semantic-utest-ia-texi, semantic-utest-ia-make) (semantic-utest-ia-srecoder): Use 'ert-resource-file'. Don't check if file exists; we can assume that it does. * test/manual/cedet/tests/testjavacomp.java: * test/manual/cedet/tests/testlocalvars.cpp: * test/manual/cedet/tests/testnsp.cpp: * test/manual/cedet/tests/testsppcomplete.c: * test/manual/cedet/tests/teststruct.cpp: * test/manual/cedet/tests/testsubclass.cpp: * test/manual/cedet/tests/testsubclass.hh: * test/manual/cedet/tests/testtemplates.cpp: * test/manual/cedet/tests/testtypedefs.cpp: * test/manual/cedet/tests/testusing.cpp: * test/manual/cedet/tests/testusing.hh: * test/manual/cedet/tests/testvarnames.c: * test/manual/cedet/tests/testvarnames.java: * test/manual/cedet/tests/testwisent.wy: Move from here... * test/lisp/cedet/semantic-utest-ia-resources/testjavacomp.java: * test/lisp/cedet/semantic-utest-ia-resources/testlocalvars.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testnsp.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testsppcomplete.c: * test/lisp/cedet/semantic-utest-ia-resources/teststruct.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testsubclass.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testsubclass.hh: * test/lisp/cedet/semantic-utest-ia-resources/testtemplates.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testtypedefs.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testusing.cpp: * test/lisp/cedet/semantic-utest-ia-resources/testusing.hh: * test/lisp/cedet/semantic-utest-ia-resources/testvarnames.c: * test/lisp/cedet/semantic-utest-ia-resources/testvarnames.java: * test/lisp/cedet/semantic-utest-ia-resources/testwisent.wy: ...to here. 2021-02-10 Stefan Kangas Convert tests for srecode/fields.el to ert * test/manual/cedet/srecode-tests.el: Move from here... * test/lisp/cedet/srecode/fields-tests.el: ...to here. (srecode-field-utest-impl): Convert test to ert. Silence byte-compiler. * test/manual/cedet/cedet-utests.el (cedet-utest-libs): Don't list the above moved file. 2021-02-10 Stefan Kangas Make texinfmt-version variable obsolete * lisp/textmodes/texinfmt.el (texinfmt-version): Make variable and command obsolete in favour of 'emacs-version'. (texinfo-format-region, texinfo-format-buffer-1): Use 'emacs-version' instead of above obsolete variable. 2021-02-10 Stefan Kangas Use lexical-binding in bib-mode.el * lisp/textmodes/bib-mode.el: Use lexical-binding. Remove redundant :group args. 2021-02-10 Stefan Kangas Move semantic/format.el tests to follow our conventions * test/lisp/cedet/semantic-utest-fmt.el: Move from here... * test/lisp/cedet/semantic/format-tests.el: ...to here. (ert, ert-x): Require. (semantic-fmt-utest-file-list): Use ert-resource-file. * test/manual/cedet/tests/test-fmt.cpp: * test/manual/cedet/tests/test-fmt.el: Move from here... * test/lisp/cedet/semantic/format-resources/test-fmt.cpp: * test/lisp/cedet/semantic/format-resources/test-fmt.el: ...to here. 2021-02-10 Stefan Kangas Use lexical-binding in some test files * test/manual/cedet/ede-tests.el: * test/manual/cedet/srecode-tests.el: * test/manual/cedet/tests/test.el: Use lexical-binding. * test/manual/etags/el-src/TAGTEST.EL: Add lexical-binding cookie. * test/manual/etags/ETAGS.good_1: Update expected result for the above change. 2021-02-10 Stefan Kangas Change default semantic-lex-analyzer to semantic-lex * lisp/cedet/semantic/lex.el (semantic-lex-analyzer): Change default to semantic-lex, since semantic-flex was obsolete and has been removed. 2021-02-10 Stefan Kangas Convert many manual cedet tests to ert * test/manual/cedet/cedet-utests.el (cedet-files-utest): Move test from here... * test/lisp/cedet/cedet-files-tests.el: ...to this new file. * test/manual/cedet/srecode-tests.el (srecode-document-function-comment-extract-test): Move test from here... * test/lisp/cedet/srecode/document-tests.el: ...to this new file. * test/manual/cedet/cedet-utests.el (inversion-unit-test): Move test from here... * test/lisp/cedet/inversion-tests.el: ...to this new file. * test/manual/cedet/semantic-tests.el (semantic-gcc-test-output-parser): Move test from here... * test/lisp/cedet/semantic/bovine/gcc-tests.el: ...to this new file. * test/manual/cedet/semantic-tests.el (semantic-test-data-cache): Move test from here... * test/lisp/cedet/semantic/fw-tests.el: ...to this new file. 2021-02-10 Stefan Kangas Use lexical-binding in almost all of play/*.el * lisp/play/5x5.el: Use lexical-binding. (5x5-draw-grid-end, 5x5-draw-grid, 5x5-solver) (5x5-solve-suggest): Silence byte-compiler. * lisp/play/cookie1.el: Use lexical-binding. (cookie-shuffle-vector, cookie-apropos): Silence byte-compiler. * lisp/play/zone.el: Use lexical-binding. (zone): Convert lambda to proper lexical closure. (zone-replace-char, zone-fill-out-screen): Silence byte-compiler. * lisp/play/blackbox.el: * lisp/play/doctor.el: * lisp/play/gametree.el: * lisp/play/hanoi.el: Use lexical-binding. * test/lisp/play/cookie1-resources/cookies: * test/lisp/play/cookie1-tests.el: New files. 2021-02-10 Protesilaos Stavrou Refine use of vc-dir faces; apply to all backends * lisp/vc/vc-dir.el (vc-default-dir-printer): Add check for the "ignored" status and make 'vc-dir-status-edited' the default face. Also extend condition for more states that qualify as "warnings". (vc-dir-ignored, vc-dir-status-ignored): Rename face for consistency. * lisp/vc/vc-git.el (vc-git-dir-printer): Use the 'vc-dir-status-edited' as the default for the Git backend. And reference the renamed face. Also stop treating the empty stash differently from other header values. * lisp/vc/vc-bzr.el (vc-bzr-dir-extra-headers): Implement new faces. * lisp/vc/vc-cvs.el (vc-cvs-dir-extra-headers): Same. * lisp/vc/vc-hg.el (vc-hg-dir-extra-headers): Same. * lisp/vc/vc-svn.el (vc-svn-dir-extra-headers): Same. This follows from the discussion in bug#46358. 2021-02-09 Basil L. Contovounesios Tiny simplification to read-char-by-name * lisp/international/mule-cmds.el (mule--ucs-names-sort-by-code): Sort with car-less-than-car instead of slower lambda. (mule--ucs-names-affixation): Just stick character into a list to avoid trip through format and char-to-string. (read-char-by-name): Quote function symbols as such. 2021-02-09 Eli Zaretskii Fix syntax category of some characters * lisp/international/characters.el (modify-syntax-entry): Fix syntax of numerical subscripts and superscripts. (Bug#46240) 2021-02-09 Juri Linkov * lisp/net/dictionary.el: Dictionary improvements (bug#45262) * lisp/net/dictionary.el (dictionary-link-dictionary): New defcustom. (dictionary-mark-reference): Use dictionary-link-dictionary. (dictionary-post-buffer-hook): New defcustom. (dictionary-post-buffer): Run dictionary-post-buffer-hook. (dictionary-mode-map): Bind 'S-SPC' to scroll-down-command. (dictionary-search-default): Use possibly multi-word data at point. 2021-02-09 Stefan Monnier Use lexical-binding in a few more scattered files * lisp/registry.el: Use lexical-binding. (registry-reindex): Remove unused var `values`. * lisp/cedet/pulse.el: Use lexical-binding. * lisp/cedet/semantic/idle.el: Use lexical-binding. (semantic-idle-core-handler): Remove unused var `safe`. (ede-auto-add-method): Declare var. (define-semantic-idle-service): Use `declare`. Remove unused var `setup`. (pulse-flag): Declare var. * lisp/net/ldap.el: Use lexical-binding. (ldap-search-internal): Remove unused var `proc`. * lisp/net/mairix.el: Use lexical-binding. Remove redundant `:group` args. (mairix-widget-create-query): Remove unnused var `allwidgets`. 2021-02-09 Juri Linkov New options read-char-by-name-sort and read-char-by-name-group (bug#46240) * lisp/international/mule-cmds.el (mule--ucs-names-sort-by-code) (mule--ucs-names-group): New functions. (read-char-by-name-sort, read-char-by-name-group): New defcustoms. (read-char-by-name): Use them. 2021-02-09 Stefan Monnier * lisp/cedet/{semantic/scope.el,ede/project-am.el}: Use lexical-scoping * lisp/cedet/ede/project-am.el: Remove redundant `:group` args. (recentf-exclude): Declare variable. (project-am--with-makefile-current): New function extracted from `project-am-with-makefile-current`. Use `with-current-buffer` and `unwind-protect`. (project-am-with-makefile-current): Use `declare` and `project-am--with-makefile-current`. (project-am-with-config-current): Use `declare` and `with-temp-buffer`. (project-am-extract-shell-variable): Turn it into a `defun`; the use of `defmacro` appears to have been a plain mistake. 2021-02-09 Stefan Monnier * lisp/emacs-lisp/byte-opt.el (byte-optimize--pcase): New macro (byte-optimize-form-code-walker): Use it. 2021-02-09 Stefan Monnier * lisp/emacs-lisp/macroexp.el: Break cycle with bytecomp/byte-opt The recent change in macroexp triggered a cyclic dependency error during eager macroexpansion when neither `bytecomp` nor `byte-opt` had been byte-compiled yet. This fixes it by moving the offending function to macroexp.el. * lisp/emacs-lisp/macroexp.el (macroexp--unfold-lambda): Move from byte-opt.el and rename. (macroexp--expand-all): Use it. * lisp/emacs-lisp/byte-opt.el (byte-compile-unfold-lambda): Move to macroexp.el. (byte-compile-inline-expand, byte-optimize-form-code-walker): * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Use `macroexp--unfold-lambda` instead. 2021-02-09 Stefan Kangas Remove some dead, commented out code from lisp-mode.el * lisp/emacs-lisp/lisp-mode.el (lisp-data-mode-syntax-table): Remove code commented out since 2005. 2021-02-09 Stefan Kangas Load all generic-x.el modes unconditionally * lisp/generic-x.el: Load all modes unconditionally. (generic-default-modes, generic-mswindows-modes) (generic-unix-modes, generic-other-modes) (generic-extras-enable-list): Make obsolete. Ref: https://lists.gnu.org/r/emacs-devel/2021-01/msg01403.html 2021-02-09 Lars Ingebrigtsen Note that the `values' variable is now obsolete * src/lread.c (syms_of_lread): Note that it's obsolete in the doc string (because we can't mark it as obsolete "properly" yet, because that leads to compilation warnings when somebody (let (values) ... values). 2021-02-09 Alan Mackenzie Allow exit-minibuffer to be called from Lisp code. Fixes bug #46373 * lisp/minibuffer.el (exit-minibuffer): Throw the error "Not in most nested minibuffer" only when the current buffer is a minibuffer (thus the command came directly from a key binding). * doc/lispref/minibuf.texi (Minibuffer Commands): Change the documentation accordingly. 2021-02-09 Lars Ingebrigtsen Make pcomplete-ignore-case obsolete * lisp/pcomplete.el (pcomplete-completions-at-point) (pcomplete-stub, pcomplete--entries, pcomplete-insert-entry): * lisp/eshell/em-cmpl.el (eshell-cmpl-initialize): * lisp/eshell/em-cmpl.el (eshell-cmpl-ignore-case): * lisp/erc/erc-pcomplete.el (pcomplete-erc-setup): Use `completion-ignore-case' instead (bug#23117). * lisp/pcomplete.el (pcomplete-ignore-case): Make obsolete. 2021-02-09 Matt Armstrong Preserve leading whitespace in `lm-commentary'. * lisp/emacs-lisp/lisp-mnt.el (lm-commentary): Preserve leading whitespace (bug#46364). 2021-02-09 Lars Ingebrigtsen Move all usages of `values' to `values--store-value' * lisp/simple.el (eval-expression): * lisp/progmodes/elisp-mode.el (eval-last-sexp): * lisp/emacs-lisp/pp.el (pp-eval-expression): * lisp/emacs-lisp/edebug.el (edebug-eval-expression): * lisp/emacs-lisp/pp.el (pp-eval-expression): * lisp/emacs-lisp/edebug.el (edebug-eval-expression): * lisp/cedet/data-debug.el (data-debug-eval-expression): Use it instead of pushing to `values' directly (bug#22066). * lisp/subr.el (values--store-value): New function. 2021-02-09 Lars Ingebrigtsen Don't use `values' in elisp--eval-defun * lisp/progmodes/elisp-mode.el (elisp--eval-defun): Don't use `values', since it's being deprecated (bug#22066). 2021-02-09 Lars Ingebrigtsen Finish customize-changed-options/customize-changed fix up * doc/emacs/custom.texi (Specific Customization): Fix customize-changed/customize-changed-options documentation. * lisp/cus-dep.el (custom-make-dependencies): Adjust doc string (bug#23085). * lisp/menu-bar.el (menu-bar-custom-menu): Adjust menu options. 2021-02-09 Lars Ingebrigtsen Fix count-lines problem in non-ASCII buffers * src/fns.c (Fline_number_at_pos): Get the correct start position in non-ASCII buffers (bug#22763). 2021-02-09 Stefan Monnier * lisp/gnus/gnus-topic.el: Fix a backward incompatibility (gnus-topic-insert-topic-line): Make the vars used in `gnus-topic-line-format-spec` dynamically scoped since it seems that they're sometimes accessed from functions called by `gnus-topic-line-format-spec` :-( * lisp/gnus/gnus-util.el (gnus--\,@): Move macro to here... * lisp/gnus/gnus-art.el (gnus--\,@): .. from here. * lisp/gnus/gnus.el (gnus-method-to-server): Apply DeMorgan. 2021-02-08 Eric Abrahamsen Run Gnus group names through regexp-quote when matching results * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): Be more careful about making sure group names will match search results correctly. 2021-02-08 Eli Zaretskii Fix scrolling past tall images * src/xdisp.c (try_window): Don't try checking the margins if the window is vscrolled, as that could cause unnecessary recentering when tall images are displayed. (Bug#46320) 2021-02-08 Stefan Monnier * lisp/indent.el (beginning-of-line-text): Mark it as a movement command So that combining it with `shift` selects the text, as usual, in case you have it bound for example to `C-a` in a mode like `enriched-mode`. 2021-02-08 Stefan Kangas * lisp/avoid.el: Doc fixes. 2021-02-08 Lars Ingebrigtsen Record the value of `C-x C-e' in `values' * lisp/progmodes/elisp-mode.el (eval-last-sexp): Record the value in `values' (bug#22066) since we're messaging it. 2021-02-08 Protesilaos Stavrou Add vc-dir faces; also apply them to vc-git * etc/NEWS: Document the new faces. * lisp/vc/vc-dir.el (vc-dir-header, vc-dir-header-value) (vc-dir-directory, vc-dir-file, vc-dir-mark-indicator) (vc-dir-status-warning, vc-dir-status-edited, vc-dir-status-up-to-date) (vc-dir-ignored): Add new faces. * lisp/vc/vc-git.el (vc-git-permissions-as-string, vc-git-dir-printer) (vc-git-dir-extra-headers): Apply new faces (bug#46358). 2021-02-08 Sean Whitton Bind clone-buffer to C-x x n * lisp/bindings.el (ctl-x-x-map): Bind clone-buffer. * etc/NEWS: Document the change (bug#46369). 2021-02-08 Anticrisis (tiny change) Fix tcl-mode indentation of namespaced code * lisp/progmodes/tcl.el (tcl-calculate-indent): Fix indentation when using namespaces (bug#44834). (tcl-beginning-of-defun-function): Remove. This partially reverts cd5bb4bf3dbad8941d25823f398b595b8f0edbb9. 2021-02-08 Lars Ingebrigtsen Clarify "changes" in CONTRIBUTE * CONTRIBUTE: Clarify that "changes" doesn't include removing code (bug#44834). 2021-02-08 Lars Ingebrigtsen Make `C-a' in enriched-mode behave more line in other modes * lisp/textmodes/enriched.el (enriched-mode-map): Don't rebind beginning-or-line, because it makes `C-S-a' not mark the region, and it doesn't allow actually moving to the beginning of the line if the line starts with characters in `adaptive-fill-regexp' (bug#22554). 2021-02-08 Lars Ingebrigtsen Fix noninteractive gnus-article-press-button * lisp/gnus/gnus-art.el (gnus-article-press-button): Make the `b' summary mode command work again. 2021-02-08 Stefan Kangas Prefer setq-local in a few more places * lisp/calc/calc-embed.el (calc-embedded-make-info): * lisp/calc/calcalg2.el (calcFunc-integ): * lisp/comint.el (comint-mode): * lisp/epa.el (epa--list-keys, epa--show-key): * lisp/epg.el (epg--start): * lisp/vc/ediff-util.el (ediff-activate-mark): Prefer setq-local. 2021-02-08 Stefan Kangas Add tests for count-lines * test/lisp/simple-tests.el (simple-test-count-lines) (simple-test-count-lines/ignore-invisible-lines): Add tests. 2021-02-07 Eric Abrahamsen Fix namazu search result parsing in gnus-search * lisp/gnus/gnus-search.el (gnus-search-indexed-extract): This method is documented to leave point at the end of the extracted search result. The namazu implementation wasn't doing that. 2021-02-07 Lars Ingebrigtsen Clarify when activate-mark-hook is run * doc/lispref/markers.texi (The Mark): * lisp/simple.el (activate-mark-hook): Clarify when the hook is run (bug#23444). 2021-02-07 Lars Ingebrigtsen Use `line-number-at-pos' in `count-lines' * lisp/simple.el (count-lines): Use `line-number-at-pos', which should be faster. 2021-02-07 Eli Zaretskii Fix language-environment and font selection on MS-Windows These changes improve setting the language-environment and font selection when MS-Windows returns useless "ZZZ" as the "language name", which then disrupts all the setup of the locale-dependent stuff, and in particular font selection. * lisp/w32-fns.el (w32-charset-info-alist): Add an element for "iso8859-5", in case LANG is set to something unusable, like "ZZZ". This allows fonts capable of displaying Cyrillic characters to be used even when language preferences are screwed. * src/w32.c (init_environment): If GetLocaleInfo returns "ZZZ" as the "language name" for LOCALE_USER_DEFAULT, try again with locale ID based on what GetUserDefaultUILanguage returns. (Bug#39286) 2021-02-07 Tino Calancha Add command to recenter errors from Occur/Grep buffers To scroll up/down the current displayed occurrence/error without abandon the Occur/Grep buffer. Add also a command 'recenter-other-window' to recenter the other window from any kind of buffer. * lisp/window.el (recenter-other-window): New command. Bind recenter-other-window to S-M-C-l (Bug#46119). * lisp/simple.el (recenter-current-error): New command. * lisp/progmodes/grep.el (grep-mode-map): Delete bidings for n and p. * lisp/progmodes/compile.el (compilation-minor-mode-map): Move here the n and p bindings. Bind `recenter-current-error' to l. * lisp/replace.el (occur-mode-map): Same. * doc/emacs/windows.texi (Other Window): * doc/emacs/display.texi (Recentering): Document recenter-other-window. * etc/NEWS (Changes in Specialized Modes and Packages in Emacs 28.1): Announce the changes. 2021-02-07 Lars Ingebrigtsen Allow Fline_number_at_pos being called with a marker * src/fns.c (Fline_number_at_pos): Also allow being called with a marker (since the Lisp function allowed that). 2021-02-07 Lars Ingebrigtsen Move line-number-at-pos to C * doc/lispref/positions.texi (Text Lines): Revert previous change. * lisp/simple.el (line-number-at-pos): Remove definition. * lisp/simple.el (count-lines): Revert back to using `forward-line', because there seems to be a disagreement on how lines should be counted in a region... * src/fns.c (Fline_number_at_pos): Rename from Fline_number_at_position and adjust parameter list. 2021-02-07 Stefan Kangas Minor doc fixes in dictionary-connection.el * lisp/net/dictionary-connection.el: (dictionary-connection-p, dictionary-connection-read-to-point): Minor doc fixes to adhere to our conventions. 2021-02-07 Stefan Kangas Fix copyright and license statement in dictionary*.el * lisp/net/dictionary-connection.el: * lisp/net/dictionary.el: Add copyright statement and fix license statement. 2021-02-07 Lars Ingebrigtsen Add a new function 'line-number-at-position' * doc/lispref/positions.texi (Text Lines): Document it. * lisp/simple.el (count-lines): Use it. (line-number-at-pos): Ditto. * src/fns.c (Fline_number_at_position): New function (bug#22763). 2021-02-07 Stefan Kangas Various doc fixes in dictionary.el * lisp/net/dictionary.el (dictionary-set-server-var) (dictionary-server, dictionary-port) (dictionary-default-dictionary) (dictionary-default-popup-strategy, dictionary-proxy-server) (dictionary-proxy-port, dictionary-description-open-delimiter) (dictionary-description-close-delimiter) (dictionary-window-configuration, dictionary-selected-window) (dictionary-position-stack, dictionary-data-stack) (dictionary-positions, dictionary-current-data) (dictionary-connection, dictionary-instances) (dictionary-color-support, dictionary-word-history) (dictionary-mode, dictionary, dictionary-check-connection) (dictionary-mode-p, dictionary-send-command) (dictionary-read-reply-and-split, dictionary-check-reply) (dictionary-check-initial-reply, dictionary-store-state) (dictionary-store-positions, dictionary-new-search) (dictionary-new-search-internal, dictionary-do-search) (dictionary-display-search-result) (dictionary-display-word-definition) (dictionary-special-dictionary, dictionary-set-strategy) (dictionary-tooltip-dictionary, dictionary-switch-tooltip-mode) (dictionary-tooltip-mode, global-dictionary-tooltip-mode): Doc fixes to adhere to our conventions. 2021-02-07 Lars Ingebrigtsen Revert "Fix inferior octave single-quote font lock" This reverts commit 9e68413c7f0a7f71e1cee923ace7282d14c2e686. This patch led to bug#46327: x = [2 2]' disp(x) Which meant that the transpose operator was interpreted as the start of a string. 2021-02-07 Lars Ingebrigtsen Reverse customize-changed and customize-changed-options aliasing * lisp/cus-edit.el (customize-changed): Rename from customize-changed-options (bug#23085), since the old name doesn't reflect what it does: It's not just about user options, but also faces and the like. (customize-changed-options): Make into an obsolete alias. 2021-02-07 Lars Ingebrigtsen Clarify that #s(hash-table ...) doesn't always create a new hash table * doc/lispref/hash.texi (Creating Hash): Note that the printed representation doesn't necessarily create a new table (bug#23417). * doc/lispref/lists.texi (Rearrangement): Link to Self-Evaluating Forms to further expand upon immutability. 2021-02-07 Lars Ingebrigtsen Add more commands to the new `C-x x' keymap * doc/emacs/killing.texi (Accumulating Text): * doc/emacs/display.texi (Line Truncation): * doc/emacs/buffers.texi (Misc Buffer): Document it. * lisp/bindings.el (ctl-x-x-map): Add new bindings for rename-buffer, rename-uniquely, insert-buffer and toggle-truncate-lines. 2021-02-07 Sean Whitton Move 'revert-buffer' global binding to 'C-x g g' * lisp/bindings.el: Define ctl-x-g-map and bind 'revert-buffer' to 'C-x x g' globally. * doc/emacs/files.texi: Replace 'C-x g' with 'C-x x g'. * etc/NEWS: Document the change (bug#46300). 2021-02-07 Petteri Hintsanen Fix example in Sequence Functions node in the manual * doc/lispref/sequences.texi (Sequence Functions): Fix the result from the example. 2021-02-06 Dmitry Gutov Revert "Fix the previous change" This reverts commit fc37dc298f27025823fad2d944e11cc7ee6a058d. That change was only needed in the release branch. 2021-02-06 Mattias Engdegård Fix spurious warnings from unwise condition order in inlined code These are both conditions having the form (and A B) where A is side-effect-free and B may be known to be nil at compile time. The compiler will then warn about A being useless and thrown away. The fix is to test B first. * lisp/gnus/gnus.el (gnus-method-to-server): Test `(not no-enter-cache)` first. (gnus-server-get-method): Test `group` first. 2021-02-06 Mattias Engdegård Constprop of lexical variables Lexical variables bound to a constant value (symbol, number or string) are substituted at their point of use and the variable then eliminated if possible. Example: (let ((x (+ 2 3))) (f x)) => (f 5) This reduces code size, eliminates stack operations, and enables further optimisations. The implementation is conservative, and is strongly curtailed by the presence of variable mutation, conditions and loops. * lisp/emacs-lisp/byte-opt.el (byte-optimize-enable-variable-constprop) (byte-optimize-warn-eliminated-variable): New constants. (byte-optimize--lexvars, byte-optimize--vars-outside-condition) (byte-optimize--vars-outside-loop, byte-optimize--dynamic-vars): New dynamic variables. (byte-optimize--substitutable-p, byte-optimize-let-form): New functions. (byte-optimize-form-code-walker): Adapt clauses for variable constprop, and add clauses for 'setq' and 'defvar'. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test-var) (bytecomp-test-get-var, bytecomp-test-identity) (byte-opt-testsuite-arith-data): Add test cases. 2021-02-06 Ioannis Kappas (tiny change) New test for src/process.c on MS-Windows * test/src/process-tests.el (process-sentinel-interrupt-event): New test. (Bug#46284) 2021-02-06 Eric Abrahamsen Fix TEXT check in gnus-search IMAP search * lisp/gnus/gnus-search.el (gnus-search-run-search): It's a string, not a buffer! 2021-02-06 Martin Rudalics Permit zero value for 'child-frame-border-width' parameter (Bug#46184) * doc/lispref/frames.texi (Layout Parameters): Update entry on 'child-frame-border-width' parameter. * src/frame.c (make_frame): Init child_frame_border_width to -1. (Fframe_child_frame_border_width): Return internal border width if child frame border width parameter is nil. (gui_report_frame_params): Report nil as child frame border width parameter if the frame value is negative. * src/frame.h (FRAME_INTERNAL_BORDER_WIDTH): Return value of child frame border width only if it is not negative. * src/xfns.c (Fx_create_frame): Default child frame border to -1 when recording it in its frame slot via gui_default_parameter. * src/nsfns.m (ns_set_child_frame_border_width): Handle nil ARG. (Fx_create_frame): Default child frame border width parameter to nil. * src/w32fns.c (w32_set_child_frame_border_width): Handle nil ARG. (Fx_create_frame): Default child frame border width parameter to nil. * src/xfns.c (x_set_child_frame_border_width): Handle nil ARG. (Fx_create_frame): Default child frame border width parameter to nil. 2021-02-06 Glenn Morris Merge from origin/emacs-27 8ad48a0bdd (origin/emacs-27) Improve doc string of 'text-scale-adjust' 7a25ff767d Clarify the indent-rigidly doc string 6c5ddf0e0b Fix two small tab bar issues c71e08eba9 Fix last change in syntax.texi # Conflicts: # lisp/indent.el 2021-02-06 Glenn Morris Merge from origin/emacs-27 8c27af3ff4 Clarify how transient indentation modes are exited in the ... fc37dc298f Fix the previous change 2021-02-06 Lars Ingebrigtsen Fix previous change in testcover.el * lisp/emacs-lisp/testcover.el (testcover-analyze-coverage-edebug-after): The wrapper macro is called `1value', not `testcover-1value'. 2021-02-06 Eli Zaretskii Support file names with whitespace in Nroff mode * lisp/textmodes/nroff-mode.el (nroff-view): Quote argument of 'Man-getpage-in-background' to support file names with special characters. (Bug#46051) 2021-02-06 Lars Ingebrigtsen Tweak provided-mode-derived-p doc string * lisp/subr.el (provided-mode-derived-p): Remove detail about "or their aliases", since that seems self-evident (bug#46331) (and derived-mode-p works the same, and doesn't have the bit in question). 2021-02-06 Eli Zaretskii Improve doc string of 'text-scale-adjust' * lisp/face-remap.el (text-scale-adjust): Clarify that "default face height" refers to the 'default' face. (Bug#25168) 2021-02-06 Lars Ingebrigtsen Warn in message.el when sending encryptable mail * lisp/gnus/message.el (message-send): Query if it looks like encryption was intended, but is not going to happen. * lisp/gnus/mml-sec.el (mml-secure-is-encrypted-p): Allow saying whether there's any <#secure tags present (bug#24411). 2021-02-06 Lars Ingebrigtsen Rename the `1value' symbol in testcover.el * lisp/emacs-lisp/testcover.el: Rename the symbol `1value' throughout the file to `testcover-1value' to allow using the variable in code that's to be tested (bug#25471). 2021-02-06 Lars Ingebrigtsen Allow provided-mode-derived-p to work on aliases * lisp/subr.el (provided-mode-derived-p): Allow this to work on modes that are aliases of other modes (bug#46331). For instance: (provided-mode-derived-p 'javascript-mode 'prog-mode) 2021-02-06 Michael Albinus Modernize use of prompts in auth-source.el * lisp/auth-source.el (auth-source-search): Adapt docstring (auth-source-format-prompt): Remove trailing ": ". (auth-source-netrc-create, auth-source-secrets-create) (auth-source-plstore-create): Adapt prompts. Use `format-prompt'. Do not ask interactively if `auth-source-save-behavior' is nil. 2021-02-06 Lars Ingebrigtsen Clarify the indent-rigidly doc string * lisp/indent.el (indent-rigidly): Clarify exiting the transient mode (bug#46296). 2021-02-06 Lars Ingebrigtsen Fix problem when ~/.mailcap had several entries for a MIME type * lisp/net/mailcap.el (mailcap-mime-info): Use all the matching entries from ~/.mailcap, not just the first (bug#46318). 2021-02-06 Lars Ingebrigtsen Avoid a compilation warning in iter-do * lisp/emacs-lisp/generator.el (iter-do): Avoid a compilation warning on using variables marked for not using (bug#31641). Eg. (iter-do (_ i)) 2021-02-06 Eli Zaretskii Fix copying text properties in 'format' * src/editfns.c (styled_format): Fix accounting for text properties that come from the format string. (Bug#46317) * test/src/editfns-tests.el (format-properties): Add new tests for bug#46317. 2021-02-06 Martin Rudalics Fix two small tab bar issues * lisp/cus-start.el (frame-inhibit-implied-resize): Update version tag. * lisp/frame.el (frame-inner-height): Do not count in tab bar. 2021-02-05 Stefan Monnier * lisp/emacs-lisp/pcase.el (let): Reimplement as a pcase macro (pcase--macroexpand, pcase--u1): Remove handling of `let` from `pcase`s core. 2021-02-05 Eli Zaretskii Fix 'C-d' on the first line in Rmail summary buffer * lisp/mail/rmailsum.el (rmail-summary-delete-forward): Fix deleting backward past the beginning of the summary buffer. (Bug#46325) 2021-02-05 Michael Albinus Add command 'dbus-monitor' * doc/misc/dbus.texi: (Monitoring Messages): Document 'dbus-monitor'. * etc/NEWS: Mention 'dbus-monitor' but 'dbus-register-monitor'. Fix typos and other oddities. * lisp/net/dbus.el (dbus-monitor): New command. * test/lisp/net/dbus-tests.el (dbus--test-register-service): Extend test. 2021-02-05 Lars Ingebrigtsen Don't hard-code ignored functions in `indent-according-to-mode' * lisp/indent.el (indent-line-ignored-functions): New variable (bug#26945). (indent-according-to-mode): Use it. 2021-02-05 Eli Zaretskii Fix last change in 'window-text-pixel-size' * src/xdisp.c (Fwindow_text_pixel_size): Fix last change: preserve the original Y coordinate after start_display, instead of zeroing it out. Reported by martin rudalics . 2021-02-05 Lars Ingebrigtsen Fontize more automatic variables in makefile-gmake-mode * lisp/progmodes/make-mode.el (makefile-gmake-font-lock-keywords): Fontize the $ in more automatic variables (bug#27842). 2021-02-05 Eli Zaretskii Fix last change in syntax.texi * doc/lispref/syntax.texi (Syntax Properties): Fix wording in last change. (Bug#46274) 2021-02-05 Lars Ingebrigtsen Correct the lispref manual about flushing ppss info * doc/lispref/syntax.texi (Syntax Properties): Correct the information about flushing the state by copying the text from the doc string (bug#46274). (cherry picked from commit ff701ce2b261acce1dfcd1fe137268d87d5eab35) 2021-02-05 Lars Ingebrigtsen Clarify how transient indentation modes are exited in the manual * doc/emacs/indent.texi (Indentation Commands): Clarify that the other keys don't just exit the transient mode, but are also handled as normally (bug#46296). 2021-02-05 Lars Ingebrigtsen Protect against killed buffers in term-emulate-terminal * lisp/term.el (term-emulate-terminal): Ensure that the buffer is still alive before selecting it (bug#46323). This avoids an error when saying `C-x k' in an ansi-term buffer. 2021-02-05 Sean Whitton Fix repeating complex commands * lisp/repeat.el (repeat): Fix repeating complex commands (bug#46290). This makes `M-: date RET C-x z' work again (like in Emacs 21, apparently). 2021-02-05 Lars Ingebrigtsen Make octave-send-region deactivate the region * lisp/progmodes/octave.el (octave-send-region): Deactivate mark after sending the region (bug#32282), since this is how these commands usually work. 2021-02-05 Lars Ingebrigtsen Correct the lispref manual about flushing ppss info * doc/lispref/syntax.texi (Syntax Properties): Correct the information about flushing the state by copying the text from the doc string (bug#46274). 2021-02-05 Stefan Kangas * lisp/emacs-lisp/checkdoc.el: Doc fix; don't mention built-ins. 2021-02-05 Stefan Kangas Remove some unnecessary references to Emacs 18 * lisp/progmodes/cmacexp.el: * lisp/progmodes/f90.el: * lisp/shell.el: Doc fix; don't mention Emacs 18. 2021-02-05 Stefan Kangas Remove Emacs 19 compat code from dcl-mode.el * lisp/progmodes/dcl-mode.el: Doc fix. (dcl-mode-map, dcl-mode): Remove compat code for Emacs 19. 2021-02-05 Stefan Kangas Remove Emacs 20 compat code for header-line-format * lisp/cedet/semantic/util-modes.el (semantic-stickyfunc-mode): * lisp/erc/erc.el (erc-update-mode-line-buffer): * lisp/ibuffer.el (ibuffer-use-header-line): Remove Emacs 20 compat code; header-line-format is always defined starting with Emacs 21. 2021-02-05 Stefan Kangas * lisp/color.el: Remove Emacs 23.2 compat code. * lisp/textmodes/rst.el (rst-directive): Remove XEmacs compat code. 2021-02-05 Stefan Kangas Assume font-lock-mode variable is not void * lisp/align.el (align-rules-list): * lisp/cedet/semantic/idle.el (semantic-idle-summary-useful-context-p): * lisp/org/org-table.el (org-table-edit-field): * lisp/org/org.el (org-restart-font-lock): * lisp/progmodes/antlr-mode.el (antlr-language-option-extra): * lisp/progmodes/idlwave.el (idlwave-choose): * lisp/progmodes/sql.el (sql-product-font-lock): * lisp/progmodes/verilog-mode.el (verilog-save-font-no-change-functions, verilog-preprocess): * lisp/vc/cvs-status.el: * lisp/vc/smerge-mode.el (smerge-mode): * lisp/woman.el (woman-decode-buffer): Assume font-lock-mode variable is not void; it is preloaded. 2021-02-05 Dmitry Gutov Fix the previous change * lisp/progmodes/project.el (project-find-regexp): Fix the previous change (project-root is not defined in this version). (project-or-external-find-regexp): Same. 2021-02-04 Harald Jörg cperl-mode: eliminate dead code * lisp/progmodes/cperl-mode.el (cperl-update-syntaxification): Eliminate check for `syntax-propertize-rules` (always true) and eliminate unused first parameter. (cperl-mode): Eliminate obsolete `font-lock-syntactic-keywords`, Eliminate check for `syntax-propertize-rules` (always true). (cperl-fontify-syntaxically): Eliminate call to no-longer-existing function `edebug-backtrace` (bug#46302). 2021-02-04 Eli Zaretskii Avoid overwriting minibuffer prompt by keystrokes echo * src/lread.c (Fread_char, Fread_event, Fread_char_exclusive): Call cancel_echoing to make sure the prompt is not obscured by keystrokes echo. (Bug#46243) 2021-02-04 Lars Ingebrigtsen Deactivate region in `C-c C-r' in python-mode * lisp/progmodes/python.el (python-shell-send-region): Deactivate mark after executing (bug#28789). This is how this command worked in Emacs 24, apparently. 2021-02-04 Eli Zaretskii Fix 'window-text-pixel-size' for short spans of text * src/xdisp.c (Fwindow_text_pixel_size): Support the use case where FROM and TO belong to the same screen line. Reported by Yuan Fu . 2021-02-04 Lars Ingebrigtsen Improve filling of Emacs Lisp doc strings * lisp/emacs-lisp/lisp-mode.el (lisp-fill-paragraph): When filling a Lisp string, try to avoid filling bits that follow it (bug#28937). 2021-02-04 Lars Ingebrigtsen Allow a :variable keyword in define-globalized-minor-mode * doc/lispref/modes.texi (Defining Minor Modes): Document it. * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Allow specifying a :variable to be used if the underlying mode has a divergent variable to store the state (bug#29081). 2021-02-04 Lars Ingebrigtsen Fix previous ibuffer patch * lisp/ibuffer.el (ibuffer-last-sorting-mode): Restore variable removed by mistake in previous change. 2021-02-04 Lars Ingebrigtsen Make the recency sorting stable when we have inverted sorting * lisp/ibuffer.el (recency): Remove. (recency): New macro function so that sorting by recency is stable when inverted sorting is switched on (bug#30129). 2021-02-04 Lars Ingebrigtsen Revert "Tweak how ibuffer-invert-sorting updates the buffer" This reverts commit b8b3263eab688b97530a7bf7d565b084df56ea08. This doesn't fix other instances of ibuffer-redisplay 2021-02-04 Lars Ingebrigtsen Tweak how ibuffer-invert-sorting updates the buffer * lisp/ibuf-ext.el (ibuffer-invert-sorting): Enable calling this function repeatedly with more predictable results (bug#30129). 2021-02-04 Lars Ingebrigtsen Don't ask the user to make a bug report on missing arglists * lisp/help-fns.el (help-fns--signature): Don't ask the user to make a bug report (bug#30223) because the symbol may very well be one that the user has defined themselves. (help-fns-function-description-header): Ditto. 2021-02-04 Lars Ingebrigtsen Clarify the "Sentinels" node in the lispref manual * doc/lispref/processes.texi (Sentinels): Mention "run" and that the strings can be anything (bug#30461). 2021-02-04 Lars Ingebrigtsen Allow eshell to have an "erasedups"-like history * lisp/eshell/em-hist.el (eshell-add-input-to-history): Use the new value (bug#30466). (eshell-hist-ignoredups): Allow "erasedups"-like value. 2021-02-04 Robert Pluim Update description of 'tramp-crypt-remove-directory' * doc/misc/tramp.texi (Keeping files encrypted): Correct name of function to use to indicate files should no longer be encrypted, and update its description. 2021-02-04 Lars Ingebrigtsen Be stricter when going back to the previous node in Info-find-node-2 * lisp/info.el (Info-find-node-2): When going back to the previous node, be strict (bug#31137) since we have the exact node name. 2021-02-04 Juri Linkov * lisp/replace.el (occur-rename-buffer): Check for overlay (bug#46268). (occur-1): Don't use occur--garbage-collect-revert-args when reverting the Occur buffer with same bufs. 2021-02-04 Lars Ingebrigtsen Fix epg filtering out keys that contain revoked IDs * lisp/epg.el (epg--filter-revoked-keys): Only filter out the revoked user ids, not the entire key that contains revoked user ids (bug#46138). 2021-02-04 Stefan Kangas Don't set removed variable facemenu-unlisted-faces * lisp/vc/ediff-init.el (ediff-hide-face): Redefine as obsolete function alias for 'ignore'; the variable 'facemenu-unlisted-faces' was removed in Emacs 22. Remove all calls. * lisp/mh-e/mh-e.el: Add comment saying that the variable 'facemenu-unlisted-faces' is removed. 2021-02-04 Stefan Kangas * lisp/man.el (Man-notify-method): Remove Emacs 19.28 compat code. 2021-02-04 Stefan Kangas Use require instead of boundp+load-library in double.el * lisp/double.el (isearch): Use require instead of boundp+load-library. 2021-02-04 Stefan Kangas Remove some unnecessary references to Emacs 19 * lisp/emacs-lisp/elp.el: * lisp/mouse-copy.el: * lisp/mouse-drag.el: * lisp/progmodes/simula.el (simula-mode-map): * lisp/term.el (term-matching-input-from-input-string): * lisp/vcursor.el: Doc fix; don't mention Emacs 19. 2021-02-04 Stefan Kangas Remove XEmacs compat code from edebug.el * lisp/emacs-lisp/edebug.el (edebug-window-live-p, edebug-mark): Make obsolete. Update callers. 2021-02-04 Dmitry Gutov Bind default-directory to the project root * lisp/progmodes/project.el (project-find-regexp): Bind default-directory to the project root, to save this value in the resulting buffer (esp. if the project selector was used, (https://lists.gnu.org/archive/html/emacs-devel/2021-02/msg00140.html). (project-or-external-find-regexp): Same. 2021-02-03 Andrea Corallo Remove `system-configuration' from eln filename * src/comp.c (hash_native_abi): Remove `system-configuration' from eln filename. Add `system-configuration' and `emacs-version' into `comp-abi-hash'. 2021-02-03 Andrea Corallo Short eln filename hashes * src/comp.c (HASH_LENGTH): New macro. (comp_hash_string, comp_hash_source_file): Trim the hash before returning. 2021-02-03 Michael Albinus Tramp code cleanup * lisp/net/tramp.el (tramp-signal-hook-function) (tramp-handle-access-file, tramp-handle-copy-directory) (tramp-handle-directory-files, tramp-handle-file-local-copy) (tramp-handle-insert-file-contents, tramp-handle-load): * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes) (tramp-adb-handle-make-directory) (tramp-adb-handle-file-local-copy, tramp-adb-handle-copy-file) (tramp-adb-handle-rename-file): * lisp/net/tramp-crypt.el (tramp-crypt-do-copy-or-rename-file) (tramp-crypt-handle-directory-files) (tramp-crypt-handle-make-directory): * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-event-error) (tramp-gvfs-do-copy-or-rename-file) (tramp-gvfs-handle-make-directory): * lisp/net/tramp-rclone.el (tramp-rclone-do-copy-or-rename-file) (tramp-rclone-handle-directory-files): * lisp/net/tramp-sh.el (tramp-sh-handle-make-symbolic-link) (tramp-sh-handle-directory-files-and-attributes) (tramp-sh-handle-file-name-all-completions) (tramp-sh-handle-copy-directory, tramp-do-copy-or-rename-file) (tramp-sh-handle-make-directory) (tramp-sh-handle-file-local-copy) (tramp-sh-inotifywait-process-filter): * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) (tramp-smb-handle-copy-file, tramp-smb-handle-directory-files) (tramp-smb-handle-file-local-copy) (tramp-smb-handle-make-directory, tramp-smb-handle-rename-file): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-do-copy-or-rename-file): Unify error report. * lisp/net/tramp-adb.el (tramp-adb-file-name-handler): Sync args with other `tramp-*-file-name-handler'. * lisp/net/tramp-compat.el (tramp-error): Declare. (tramp-compat-file-missing): New defsubst. * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file): Handle volatile files. (tramp-gvfs-set-attribute): New defun. (tramp-gvfs-handle-set-file-modes) (tramp-gvfs-handle-set-file-times) (tramp-gvfs-handle-set-file-uid-gid): Use it. * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file): Use `msg-operation'. * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): Remove superfluous `format: (tramp-smb-maybe-open-connection): Simplify loop. * lisp/net/tramp.el (tramp-handle-file-truename): Drop volume letter from symlinked files. * test/lisp/net/tramp-tests.el (tramp--test-gdrive-p): New defun. (tramp--test-nextcloud-p): Remove. (tramp-test40-special-characters-with-ls): Do not skip on MS Windows. (tramp-test41-utf8): Skip if needed. 2021-02-03 Glenn Morris Merge from origin/emacs-27 7355209f53 (origin/emacs-27) * lisp/window.el (recenter-top-bottom): ... dc78f8a4ea (emacs-27) url-http.el: Special-case NTLM authentication 85b0137858 * lisp/isearch.el (isearch-lazy-highlight): Fix defcustom ... cbeda21083 Sync latest SKK-JISYO.L 2021-02-03 Glenn Morris Merge from origin/emacs-27 9c75434173 Fix build failure on macOS 10.7 (bug#46036) ca44ea18ef Improve documentation of auto-resize-tool/tab-bars 2021-02-03 Glenn Morris Merge from origin/emacs-27 74a71c41e0 (tag: emacs-27.1.91) Update files for 27.1.91 pretest # Conflicts: # ChangeLog.3 # etc/AUTHORS # lisp/ldefs-boot.el 2021-02-03 Lars Ingebrigtsen Make backslash characters no longer escape in `f90-mode' * lisp/progmodes/f90.el (f90-backslash-not-special): Make obsolete (bug#32766). (f90-mode-syntax-table): Make the backslash be a normal (non-escape) character, which is the default since about 2007 (and F2K): https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34203 2021-02-03 Wilson Snyder Update lisp/progmodes/verilog-mode.el * lisp/progmodes/verilog-mode.el: Cleanup compile-time warning suppression. Use underscore for unused arguments and other style cleanups. Use '# for function references. By Stefan Monnier. (verilog-auto-reset, verilog-sig-tieoff): Fix AUTORESET '0 (#1714). Reported by Paul Adams. (verilog-simplify-range-expression): Fix AUTOWIRE simplifying X/Y where there is a remainder (#1712). Reported by Joachim Lechner. (verilog-read-sub-decls-expr): Fix multiplication in multidimensional AUTOINST output (#1698). Reported by alanamckee. (verilog-at-constraint-p, verilog-at-streaming-op-p, verilog-streaming-op-re): Add streaming operator support (#1692) (#1516), (verilog-auto-assign-modport, verilog-auto-inout-modport): Support adding prefix to AUTOASSIGNMODPORT and AUTOINOUTMODPORT (#1690). (verilog-signals-matching-dir-re): Fix error when matching regexp with 2D packed memory. Reported by Chris DeMarco. (verilog-declaration-core-re): Allow parameter declaration statements to align like any other declaration (#1683). Suggested by Vinam Arora. (verilog-auto-inout, verilog-auto-inout-in) (verilog-auto-inout-module, verilog-auto-input, verilog-auto-inst) (verilog-auto-inst-param, verilog-auto-output-every) (verilog-signals-matching-regexp) (verilog-signals-not-matching-regexp): When "?!" is at the front of a signal-matching regexp, invert it. (verilog-declaration-varname-matcher) (verilog-highlight-max-lookahead, verilog-mode) (verilog-single-declaration-end) (verilog-font-lock-keywords-1): Improve syntax highlighting in declaration statements, and support multi-line declarations, #1681. Reported by Vinam Arora. 2021-02-02 Alan Mackenzie CC Mode: Prevent "const" inside an identifier being recognized as the keyword This fixes bug #45560. * lisp/progmodes/cc-engine.el (c-forward-declarator) (c-forward-decl-or-cast-1): Amend certain regexp match numbers on account of the change below. Surround some looking-at calls with save-match-data. * lisp/progmodes/cc-langs.el (c-type-decl-prefix-keywords-key): New lang const. (c-type-decl-prefix-key): Reformulate to match operators and keywords separately, using the new lang const (above). 2021-02-02 Stefan Monnier * lisp/gnus/gnus-art.el: Fix misuse of `standard-value`. * lisp/custom.el (custom--standard-value): New function. * lisp/gnus/gnus-art.el: (gnus-article-browse-html-parts) (gnus-article-browse-html-article): * lisp/dired-aux.el (dired-do-find-regexp-and-replace): * lisp/emacs-lisp/package-x.el (package-upload-buffer-internal): * lisp/startup.el (command-line): Use it. 2021-02-02 Stefan Monnier * lisp/gnus/gnus-group.el: Fix a regression due to lexical scoping (gnus-group-highlight): Improve docstring. (gnus-group-update-eval-form): Add `group` and `method` to the vars provided to `eval`. 2021-02-02 Eli Zaretskii * lisp/window.el (recenter-top-bottom): Clarify doc string. 2021-02-02 Lars Ingebrigtsen Handle errors in `comint-strip-ctrl-m' in some cases * lisp/comint.el (comint-strip-ctrl-m): Don't signal errors when used noninteractively (bug#33115). 2021-02-02 Stefan Monnier * lisp/emacs-lisp/lisp-mode.el (lisp-mode): Also set `comment-end-skip` 2021-02-02 chuntaro (tiny change) Fix |# fontification in lisp-mode * lisp/emacs-lisp/lisp-mode.el (lisp-mode): Give the |# the correct (font-lock-comment-delimited-face) face (bug#39820). 2021-02-02 Lars Ingebrigtsen Have `dired-mode' refer to Customize instead of listing some variables * lisp/dired.el (dired-mode): Punt to Customize instead of listing some of the dired variables (bug#46239). 2021-02-02 Stefan Kangas Prefer defvar-local in remaining libraries * lisp/align.el (align-mode-rules-list) (align-mode-exclude-rules-list): * lisp/bookmark.el (bookmark-current-bookmark) (bookmark-annotation-name) (bookmark--annotation-from-bookmark-list): * lisp/calc/calc-embed.el (calc-embedded-all-active) (calc-embedded-some-active): * lisp/comint.el (comint-password-function): * lisp/completion.el (completion-syntax-table): * lisp/dframe.el (dframe-track-mouse-function) (dframe-help-echo-function, dframe-mouse-click-function) (dframe-mouse-position-function, dframe-timer) (dframe-attached-frame, dframe-controlled): * lisp/ehelp.el (electric-help-orig-major-mode): * lisp/eshell/esh-util.el (eshell-path-env): * lisp/expand.el (expand-pos, expand-index, expand-point): * lisp/face-remap.el (text-scale-mode-remapping) (text-scale-mode-lighter, text-scale-mode-amount) (text-scale-remap-header-line, buffer-face-mode-remapping): * lisp/ffap.el (ffap-menu-alist): * lisp/files-x.el (connection-local-variables-alist): * lisp/foldout.el (foldout-fold-list, foldout-mode-line-string): * lisp/follow.el (follow-start-end-invalid): * lisp/forms.el (forms--mode-setup): * lisp/gnus/message.el (message-cross-post-old-target) (message-options): * lisp/help-mode.el (help-xref-stack, help-xref-forward-stack) (help-xref-stack-item, help-xref-stack-forward-item): * lisp/hexl.el (hexl-mode--old-var-vals, hexl-ascii-overlay): * lisp/hilit-chg.el (hilit-chg-string): * lisp/ido.el (ido-eoinput): * lisp/imenu.el (imenu-generic-expression) (imenu-create-index-function, imenu-default-goto-function) (imenu-prev-index-position-function) (imenu-extract-index-name-function, imenu-name-lookup-function) (imenu-syntax-alist, imenu-case-fold-search): * lisp/jka-compr.el (jka-compr-really-do-compress): * lisp/language/ethio-util.el (ethio-prefer-ascii-space): * lisp/leim/quail/hangul.el (hangul-input-method-help-text): * lisp/leim/quail/japanese.el (quail-japanese-package-saved): * lisp/linum.el (linum-overlays, linum-available): * lisp/man.el (Man-original-frame, Man-arguments, Man--sections) (Man--refpages, Man-page-list, Man-current-page) (Man-page-mode-string): * lisp/pcomplete.el (pcomplete-current-completions) (pcomplete-last-completion-length) (pcomplete-last-completion-stub, pcomplete-last-completion-raw) (pcomplete-last-window-config, pcomplete-window-restore-timer): * lisp/reveal.el (reveal-open-spots, reveal-last-tick): * lisp/ruler-mode.el (ruler-mode): * lisp/scroll-lock.el (scroll-lock-preserve-screen-pos-save): * lisp/server.el (server-buffer-clients, server-existing-buffer): * lisp/tab-line.el (tab-line-exclude): * lisp/tar-mode.el (tar-data-buffer, tar-data-swapped): * lisp/thumbs.el (thumbs-current-tmp-filename) (thumbs-current-image-filename, thumbs-extra-images) (thumbs-image-num, thumbs-buffer, thumbs-marked-list): * lisp/tutorial.el (tutorial--point-before-chkeys) (tutorial--point-after-chkeys, tutorial--lang): * lisp/url/url-vars.el (url-current-object) (url-current-mime-headers, url-current-lastloc): * lisp/view.el (view-mode, view-old-buffer-read-only) (view-old-Helper-return-blurb, view-page-size) (view-half-page-size, view-last-regexp, view-return-to-alist) (view-exit-action, view-overlay): * lisp/wid-edit.el (widget-global-map, widget-field-new) (widget-field-list, widget-field-last, widget-field-was): * lisp/woman.el (woman-imenu-done): Prefer defvar-local. 2021-02-02 Stefan Kangas Remove redundant :group args in play/*.el * lisp/play/bubbles.el: * lisp/play/cookie1.el: * lisp/play/decipher.el: * lisp/play/dunnet.el: * lisp/play/gametree.el: * lisp/play/gomoku.el: * lisp/play/hanoi.el: Remove redundant :group args. 2021-02-02 Sean Whitton Bind 'revert-buffer' to 'C-x g' globally * lisp/bindings.el: Bind 'revert-buffer' to 'C-x g' globally. * doc/emacs/files.texi: Replace 'M-x revert-buffer' with 'C-x g'. * etc/NEWS: Document the change (bug#46151). 2021-02-02 Lars Ingebrigtsen Fix up invalid_syntax error signalling * src/lread.c (invalid_syntax_lisp): Instead of putting the line/column in a string, signal an error containing the numbers as data. This allows for easier post-processing and is how other similar errors (like (forward-sexp 1)) do it. 2021-02-02 Dmitry Gutov ruby-syntax-propertize: Fix certain cases following :: * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Make sure to backtrack if the "symbols with special characters" rule is aborted because of preceding colon. 2021-02-01 Lars Ingebrigtsen Make syntax errors say the line/column they appear at * src/lisp.h: Add count_lines prototype. * src/lread.c (invalid_syntax_lisp): New function (bug#36970). (invalid_syntax): Extend function to take a readcharfun parameter. (read_emacs_mule_char, character_name_to_code): Pass in. (read_escape, invalid_radix_integer, read1): Ditto. * src/xdisp.c (count_lines): Add a more succinct shim over display_count_lines. 2021-02-01 Stefan Kangas * test/src/minibuf-tests.el (test-inhibit-interaction): Fix test. 2021-02-01 Stefan Kangas Remove another variable obsolete since Emacs 23.2 * src/keymap.c (syms_of_keymap, Fdefine_key): * lisp/subr.el (define-key-rebound-commands): Remove variable obsolete since Emacs 23.2. 2021-02-01 Stefan Kangas * lisp/hi-lock.el (hi-lock-mode): Doc fix; don't mention Emacs 21. 2021-02-01 Stefan Kangas Make XEmacs compat alias obsolete in allout-widgets.el * lisp/allout-widgets.el (allout-frame-property): Redefine compat alias as obsolete function alias for 'frame-parameter'. (allout-fetch-icon-image): Update caller. 2021-02-01 Stefan Kangas Redefine two functions as regular defuns * lisp/dframe.el (dframe-popup-kludge, dframe-mouse-event-p): Redefine as regular defun. 2021-02-01 Stefan Kangas Make two eshell aliases obsolete * lisp/eshell/esh-util.el (eshell-user-name): Redefine as obsolete function alias for 'user-login-name'. (eshell-copy-tree): Redefine as obsolete function alias for 'copy-tree'. * lisp/eshell/esh-cmd.el (eshell-do-eval): Don't use above obsolete alias. 2021-02-01 Stefan Kangas Add cross-references to defvar-local * src/data.c (Fmake_variable_buffer_local): * src/eval.c (Fdefvar): Add cross-references to 'defvar-local'. 2021-02-01 Lars Ingebrigtsen Fix indentation of non-comment HTML with -- in it * lisp/textmodes/sgml-mode.el (sgml-comment-indent-new-line): Only indent as if we're in a comment if syntax-ppss says that we're in a comment (bug#36227). 2021-02-01 Stefan Monnier * lisp/eshell/em-cmpl.el (eshell--complete-commands-list): Fix last fix Complete `*firef` to `*firefox` rather than to `firefox`. 2021-02-01 Stefan Monnier * lisp/eshell/em-cmpl.el: Try and fix bug#41423 (eshell--complete-commands-list): Rename from `eshell-complete-commands-list`. Return a (dynamic) completion table rather than a list of completions. Use `dolist` and `push`. 2021-02-01 Thomas Fitzsimmons url-http.el: Special-case NTLM authentication * lisp/url/url-http.el (url-http-handle-authentication): Do not signal an error on NTLM authorization strings. (Bug#43566) 2021-02-01 Stefan Monnier * admin/*.el: Use lexical-binding * admin/admin.el: Use lexical-binding. (manual-misc-manuals): Pass a limit to `looking-back`. (reminder-for-release-blocking-bugs): Don't use `_` for a real variable. * admin/authors.el: Use lexical-binding. (authors-disambiguate-file-name): Remove unused var `parent`. * admin/cus-test.el: * admin/find-gc.el: * admin/gitmerge.el: Use lexical-binding. 2021-01-31 Stefan Monnier Merge remote-tracking branch 'origin/scratch/lexical-gnus' into trunk 2021-01-31 Stefan Monnier * lisp/gnus/gnus-group.el: Defvar all the `gnus-tmp-*` vars These were collected via sed -n -e 's/.*\(gnus-tmp-[^ ()]*\).*/(defvar \1)/p' \ lisp/gnus/gnus-group.el 2021-01-31 Juri Linkov * lisp/isearch.el (isearch-lazy-highlight): Fix defcustom type (bug#46208) 2021-01-31 Stefan Kangas Prefer defvar-local in preloaded files * lisp/abbrev.el: * lisp/bindings.el (mode-line-mule-info, mode-line-modified) (mode-line-remote, mode-line-process) (mode-line-buffer-identification): * lisp/buff-menu.el (Buffer-menu-files-only): * lisp/files.el (buffer-file-number, buffer-file-read-only) (local-write-file-hooks, write-contents-functions) (file-local-variables-alist, dir-local-variables-alist) (save-buffer-coding-system, buffer-save-without-query): * lisp/font-core.el (font-lock-defaults): * lisp/font-lock.el (font-lock-keywords-case-fold-search) (font-lock-syntactically-fontified) (font-lock-extend-after-change-region-function) (font-lock-extend-region-functions, font-lock-major-mode): * lisp/menu-bar.el (list-buffers-directory): * lisp/simple.el (next-error--message-highlight-overlay) (next-error-buffer, next-error-function) (next-error-move-function, goto-line-history) (minibuffer-default-add-done, undo-extra-outer-limit): * lisp/tab-bar.el (tab-switcher-column): * lisp/term/ns-win.el (ns-select-overlay): * lisp/window.el (window-size-fixed, window-area-factor) (window-group-start-function, window-group-end-function) (set-window-group-start-function) (recenter-window-group-function) (pos-visible-in-window-group-p-function) (selected-window-group-function) (move-to-window-group-line-function): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in mail/*.el * lisp/mail/emacsbug.el (report-emacs-bug-send-command) (report-emacs-bug-send-hook): * lisp/mail/reporter.el (reporter-initial-text): * lisp/mail/supercite.el (sc-mail-info, sc-attributions): * lisp/mail/rmail.el (rmail-buffer-swapped, rmail-view-buffer): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in progmodes/*.el This skips libraries that might want compatibility with Emacs 24.2. * lisp/progmodes/compile.el (compilation-auto-jump-to-next) (compilation--previous-directory-cache, compilation--parsed) (compilation-gcpro): * lisp/progmodes/cpp.el (cpp-overlay-list, cpp-edit-buffer) (cpp-parse-symbols, cpp-edit-symbols): * lisp/progmodes/ebnf2ps.el (ebnf-eps-upper-x, ebnf-eps-upper-y) (ebnf-eps-prod-width, ebnf-eps-max-height, ebnf-eps-max-width): * lisp/progmodes/f90.el (f90-cache-position): * lisp/progmodes/gud.el (gud-marker-acc): * lisp/progmodes/js.el (js--quick-match-re) (js--quick-match-re-func, js--cache-end, js--last-parse-pos) (js--state-at-last-parse-pos, js--tmp-location): * lisp/progmodes/octave.el (inferior-octave-directory-tracker-resync): * lisp/progmodes/sh-script.el (sh-header-marker): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in textmodes/*.el This skips libraries that might want compatibility with Emacs 24.2. * lisp/textmodes/artist.el (artist-curr-go) (artist-line-char-set, artist-line-char, artist-fill-char-set) (artist-fill-char, artist-erase-char, artist-default-fill-char) (artist-draw-region-min-y, artist-draw-region-max-y) (artist-borderless-shapes): * lisp/textmodes/css-mode.el (css--at-ids, css--bang-ids) (css--nested-selectors-allowed): * lisp/textmodes/enriched.el (enriched-old-bindings): * lisp/textmodes/flyspell.el (flyspell-generic-check-word-predicate) (flyspell-consider-dash-as-word-delimiter-flag) (flyspell-dash-dictionary, flyspell-dash-local-dictionary) (flyspell-word-cache-start, flyspell-word-cache-end) (flyspell-word-cache-word, flyspell-word-cache-result) (flyspell-changes, flyspell-auto-correct-pos) (flyspell-auto-correct-region, flyspell-auto-correct-ring) (flyspell-auto-correct-word): * lisp/textmodes/ispell.el (ispell-local-dictionary-overridden) (ispell-local-pdict, ispell-buffer-session-localwords): * lisp/textmodes/refill.el (refill-ignorable-overlay) (refill-doit): * lisp/textmodes/sgml-mode.el (html--buffer-classes-cache) (html--buffer-ids-cache): * lisp/textmodes/table.el (table-mode-indicator): * lisp/textmodes/tex-mode.el (tex-send-command-modified-tick): * lisp/textmodes/two-column.el (2C-autoscroll-start, 2C-mode): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in cedet * lisp/cedet/ede.el (ede-object-root-project) (ede-object-project, ede-object): * lisp/cedet/mode-local.el (mode-local-symbol-table): * lisp/cedet/semantic.el (semantic--parse-table) (semantic-symbol->name-assoc-list) (semantic-symbol->name-assoc-list-for-type-parts) (semantic-case-fold, semantic--buffer-cache) (semantic-unmatched-syntax-cache) (semantic-unmatched-syntax-cache-check, semantic-parser-name) (semantic--completion-cache, semantic-parse-tree-state) (semantic-init-mode-hook, semantic-parser-warnings): * lisp/cedet/semantic/bovine.el (semantic-bovinate-nonterminal-check-obarray): * lisp/cedet/semantic/complete.el (semantic-collector-per-buffer-list): * lisp/cedet/semantic/ctxt.el (semantic-command-separation-character) (semantic-function-argument-separation-character): * lisp/cedet/semantic/db-find.el (semanticdb-find-lost-includes) (semanticdb-find-scanned-include-tags): * lisp/cedet/semantic/db.el (semanticdb-new-database-class) (semanticdb-default-find-index-class) (semanticdb-current-database, semanticdb-current-table) (semanticdb-project-system-databases) (semanticdb-out-of-buffer-create-table-fcn): * lisp/cedet/semantic/debug.el (semantic-debug-parser-source) (semantic-debug-parser-class) (semantic-debug-parser-debugger-source): * lisp/cedet/semantic/dep.el (semantic-dependency-include-path) (semantic-dependency-system-include-path): * lisp/cedet/semantic/format.el (semantic-function-argument-separator) (semantic-format-parent-separator): * lisp/cedet/semantic/fw.el (semantic-new-buffer-fcn-was-run): * lisp/cedet/semantic/grammar.el (semantic-grammar-macros) (semantic--grammar-macros-regexp-1) (semantic--grammar-macros-regexp-2): * lisp/cedet/semantic/idle.el (semantic-idle-scheduler-mode): * lisp/cedet/semantic/imenu.el (semantic-imenu-expandable-tag-classes): * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-macro-symbol-obarray) (semantic-lex-spp-project-macro-symbol-obarray) (semantic-lex-spp-dynamic-macro-symbol-obarray) (semantic-lex-spp-dynamic-macro-symbol-obarray-stack): * lisp/cedet/semantic/lex.el (semantic-flex-keywords-obarray) (semantic-lex-types-obarray, semantic-lex-analyzer) (semantic-lex-syntax-modifications, semantic-lex-syntax-table) (semantic-lex-comment-regex, semantic-lex-number-expression) (semantic-lex-depth, semantic-flex-extensions) (semantic-flex-syntax-modifications, semantic-ignore-comments) (semantic-flex-enable-newlines, semantic-flex-enable-whitespace) (semantic-flex-enable-bol, semantic-number-expression) (semantic-flex-depth): * lisp/cedet/semantic/senator.el (senator-isearch-semantic-mode): * lisp/cedet/semantic/sort.el (semantic-orphaned-member-metaparent-type): * lisp/cedet/semantic/tag.el (semantic-tag-expand-function): * lisp/cedet/semantic/util-modes.el (semantic-show-parser-state-string) (semantic-stickyfunc-sticky-classes) (semantic-highlight-func-ct-overlay): * lisp/cedet/semantic/util.el (semantic-type-relation-separator-character) (semantic-equivalent-major-modes): * lisp/cedet/semantic/wisent.el (wisent-error-function) (wisent-lexer-function): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in net/*.el * lisp/net/browse-url.el (browse-url-temp-file-name): * lisp/net/rcirc.el (rcirc-ignore-buffer-activity-flag) (rcirc-low-priority-flag, rcirc-parent-buffer) (rcirc-activity-types, rcirc-last-sender): * lisp/net/soap-inspect.el (soap-inspect-previous-items) (soap-inspect-current-item): * lisp/net/telnet.el (telnet-remote-echoes) (telnet-interrupt-string, telnet-count): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in vc/*.el * lisp/vc/ediff-diff.el (ediff-whitespace, ediff-word-1) (ediff-word-2, ediff-word-3, ediff-word-4): * lisp/vc/ediff-init.el (ediff-defvar-local): * lisp/vc/smerge-mode.el (smerge-check-cache): * lisp/vc/vc-bzr.el (vc-bzr-annotation-table): * lisp/vc/vc-dispatcher.el (vc-mode-line-hook): Prefer defvar-local. 2021-01-31 Philipp Stephani * etc/MACHINES: Document that we support AArch64 with macOS. 2021-01-31 Alan Mackenzie Minimise the time Vminibuffer_list is in an inconsistent state (src/minibuf.c) src/minibuf.c (get_minibuffer): Move the XSETCAR which writes the new minibuffer into Vminibuffer_list to immediately after the MB's creation, so that the list is in a consistent state before calling fundamental-mode or minibuffer-inactive-mode. 2021-01-31 Stefan Kangas Prefer defvar-local in international/*.el * lisp/international/mule-cmds.el (current-input-method) (current-input-method-title, current-transient-input-method) (previous-transient-input-method, input-method-history) (deactivate-current-input-method-function) (describe-current-input-method-function): * lisp/international/mule.el (buffer-file-coding-system-explicit): * lisp/international/quail.el (quail-current-package) (quail-guidance-str, quail-overlay, quail-conv-overlay) (quail-current-key, quail-current-str) (quail-current-translations, quail-current-data): * lisp/international/robin.el (robin-mode) (robin-current-package-name): Prefer defvar-local in international/*.el. 2021-01-31 Stefan Kangas Prefer defvar-local in nxml/*.el * lisp/nxml/rng-cmpct.el (rng-c-current-token) (rng-c-escape-positions, rng-c-file-name): * lisp/nxml/rng-pttrn.el (rng-current-schema): * lisp/nxml/rng-valid.el (rng-validate-timer) (rng-validate-quick-timer, rng-error-count, rng-message-overlay) (rng-message-overlay-inhibit-point, rng-message-overlay-current) (rng-validate-up-to-date-end, rng-conditional-up-to-date-start) (rng-conditional-up-to-date-end, rng-dtd): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in emacs-lisp/*.el * lisp/emacs-lisp/chart.el (chart-local-object): * lisp/emacs-lisp/easy-mmode.el (define-minor-mode) (define-globalized-minor-mode): * lisp/emacs-lisp/edebug.el: * lisp/emacs-lisp/generic.el (generic-font-lock-keywords): * lisp/emacs-lisp/re-builder.el (reb-regexp, reb-regexp-src) (reb-overlays): * lisp/emacs-lisp/syntax.el (syntax-propertize-extend-region-functions): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in allout * lisp/allout.el (allout-just-did-undo, allout-mode) (allout-layout, allout-regexp, allout-bullets-string) (allout-bullets-string-len, allout-depth-specific-regexp) (allout-depth-one-regexp, allout-line-boundary-regexp) (allout-bob-regexp, allout-header-subtraction) (allout-plain-bullets-string-len, allout-mode-prior-settings) (allout-outside-normal-auto-fill-function) (allout-encryption-plaintext-sanitization-regexps) (allout-encryption-ciphertext-rejection-regexps) (allout-explicitly-deactivated, allout-recent-prefix-beginning) (allout-recent-prefix-end, allout-recent-depth) (allout-recent-end-of-subtree, allout-post-goto-bullet) (allout-command-counter, allout-this-command-hid-text): * lisp/allout-widgets.el (allout-widgets-mode) (allout-widgets-tally, allout-widgets-mode-inhibit) (allout-inhibit-body-modification-hook) (allout-widgets-changes-record) (allout-widgets-undo-exposure-record) (allout-escaped-prefix-regexp, allout-item-icon-keymap) (allout-item-body-keymap, allout-cue-span-keymap) (allout-widgets-last-decoration-timing) (allout-container-item-widget): Prefer defvar-local. 2021-01-31 Stefan Kangas Prefer defvar-local in cua * lisp/emulation/cua-base.el (cua-inhibit-cua-keys) (cua--status-string): * lisp/emulation/cua-rect.el (cua--rectangle) (cua--rectangle-overlays): Prefer defvar-local. 2021-01-31 Stefan Kangas Obsolete viper-deflocalvar for defvar-local * lisp/emulation/viper-init.el (viper-deflocalvar): Make obsolete. Use defvar-local. * lisp/emulation/viper-cmd.el (viper--undo-change-group-handle): * lisp/emulation/viper-init.el (viper-vi-intercept-minor-mode) (viper-vi-basic-minor-mode, viper-vi-local-user-minor-mode) (viper-vi-global-user-minor-mode) (viper-vi-state-modifier-minor-mode) (viper-vi-diehard-minor-mode, viper-vi-kbd-minor-mode) (viper-insert-intercept-minor-mode) (viper-insert-basic-minor-mode) (viper-insert-local-user-minor-mode) (viper-insert-global-user-minor-mode) (viper-insert-state-modifier-minor-mode) (viper-insert-diehard-minor-mode, viper-insert-kbd-minor-mode) (viper-replace-minor-mode, viper-emacs-intercept-minor-mode) (viper-emacs-local-user-minor-mode) (viper-emacs-global-user-minor-mode, viper-emacs-kbd-minor-mode) (viper-emacs-state-modifier-minor-mode) (viper-vi-minibuffer-minor-mode) (viper-insert-minibuffer-minor-mode) (viper-automatic-iso-accents, viper-special-input-method) (viper-intermediate-command, viper-began-as-replace) (viper-replace-overlay, viper-last-posn-in-replace-region) (viper-last-posn-while-in-insert-state) (viper-sitting-in-replace, viper-replace-chars-to-delete) (viper-replace-region-chars-deleted, viper-current-state) (viper-cted, viper-current-indent, viper-preserve-indent) (viper-auto-indent, viper-electric-mode, viper-insert-point) (viper-pre-command-point, viper-com-point) (viper-ex-style-motion, viper-ex-style-editing) (viper-ESC-moves-cursor-back, viper-delete-backwards-in-replace) (viper-related-files-and-buffers-ring) (viper-local-search-start-marker, viper-search-overlay) (viper-last-jump, viper-last-jump-ignore) (viper-minibuffer-current-face, viper-minibuffer-overlay): * lisp/emulation/viper-keym.el (viper-vi-local-user-map) (viper-insert-local-user-map, viper-emacs-local-user-map) (viper--key-maps, viper-need-new-vi-local-map) (viper-need-new-insert-local-map) (viper-need-new-emacs-local-map): * lisp/emulation/viper-mous.el (viper-mouse-click-search-noerror) (viper-mouse-click-search-limit): * lisp/emulation/viper-util.el (viper-non-word-characters) (viper-ALPHA-char-class): * lisp/emulation/viper.el: Use defvar-local instead of now obsolete macro viper-deflocalvar. 2021-01-31 Alan Mackenzie Don't attempt to display input method guidance in expired minibuffers This caused infinite waits in circumstances involving setting an input method in a global minor mode. This commit fixes bug #45792. * lisp/international/quail.el (quail-show-guidance): Test the major mode is not minibuffer-inactive-mode before proceding with the function. 2021-01-31 Lars Ingebrigtsen execute-kbd-macro doc string clarification * src/macros.c (Fexecute_kbd_macro): Mention that the buffer is (potentially) changed (bug#37396). 2021-01-31 Lars Ingebrigtsen Make operating-system-release obsolete * lisp/subr.el (operating-system-release): Make obsolete (bug#39940). There are no in-tree usages any more, and the data doesn't seem all that interesting on its own. 2021-01-31 Lars Ingebrigtsen Doc string improvements around `default-korean-keyboard' * lisp/language/korea-util.el (default-korean-keyboard): Mention "Hangul" here for easier discoverability. (toggle-korean-input-method, quail-hangul-switch-symbol-ksc) (quail-hangul-switch-hanja): Mention the variable. 2021-01-31 Lars Ingebrigtsen Revert "Improve fontifying of #| ... |# in `lisp-mode'" This reverts commit 1275dc4711af77c9c223063dcd149d782d497463. Setting comment-end isn't the correct thing to do -- it makes M-; insert that string. 2021-01-31 Stefan Kangas Prefer defvar-local in play/*.el * lisp/play/5x5.el (5x5-grid, 5x5-x-pos, 5x5-y-pos, 5x5-moves, 5x5-cracking): * lisp/play/decipher.el (decipher-alphabet) (decipher-stats-buffer, decipher-undo-list-size) (decipher-undo-list): * lisp/play/gamegrid.el (gamegrid-use-glyphs) (gamegrid-use-color, gamegrid-font, gamegrid-face) (gamegrid-display-options, gamegrid-buffer-width) (gamegrid-buffer-height, gamegrid-blank, gamegrid-timer) (gamegrid-display-mode, gamegrid-display-table) (gamegrid-face-table, gamegrid-buffer-start) (gamegrid-score-file-length): * lisp/play/snake.el (snake-length, snake-velocity-x) (snake-velocity-y, snake-positions, snake-score, snake-paused) (snake-moved-p, snake-velocity-queue): * lisp/play/tetris.el (tetris-shape, tetris-rot) (tetris-next-shape, tetris-n-shapes, tetris-n-rows) (tetris-score, tetris-pos-x, tetris-pos-y, tetris-paused): Prefer defvar-local. * lisp/play/5x5.el (5x5-defvar-local): Make obsolete. 2021-01-31 Stefan Kangas Remove redundant defvar for artist-mode * lisp/textmodes/artist.el (artist-mode): Remove redundant defvar; it is defined by define-minor-mode. 2021-01-31 Stefan Kangas Prefer defvar-local in erc * lisp/erc/erc-backend.el (erc-server-current-nick) (erc-server-process, erc-session-server, erc-session-connector) (erc-session-port, erc-server-announced-name) (erc-server-version, erc-server-parameters) (erc-server-connected, erc-server-reconnect-count) (erc-server-quitting, erc-server-reconnecting) (erc-server-timed-out, erc-server-banned) (erc-server-error-occurred, erc-server-lines-sent) (erc-server-last-peers, erc-server-last-sent-time) (erc-server-last-ping-time, erc-server-last-received-time) (erc-server-lag, erc-server-filter-data, erc-server-duplicates) (erc-server-processing-p, erc-server-flood-last-message) (erc-server-flood-queue, erc-server-flood-timer) (erc-server-ping-handler): * lisp/erc/erc-capab.el (erc-capab-identify-activated) (erc-capab-identify-sent): * lisp/erc/erc-dcc.el (erc-dcc-byte-count, erc-dcc-entry-data) (erc-dcc-file-name): * lisp/erc/erc-ezbounce.el (erc-ezb-session-list): * lisp/erc/erc-join.el (erc--autojoin-timer): * lisp/erc/erc-netsplit.el (erc-netsplit-list): * lisp/erc/erc-networks.el (erc-network): * lisp/erc/erc-notify.el (erc-last-ison, erc-last-ison-time): * lisp/erc/erc-ring.el (erc-input-ring, erc-input-ring-index): * lisp/erc/erc-stamp.el (erc-timestamp-last-inserted) (erc-timestamp-last-inserted-left) (erc-timestamp-last-inserted-right): * lisp/erc/erc.el (erc-session-password, erc-channel-users) (erc-server-users, erc-channel-topic, erc-channel-modes) (erc-insert-marker, erc-input-marker, erc-last-saved-position) (erc-dbuf, erc-active-buffer, erc-default-recipients) (erc-session-user-full-name, erc-channel-user-limit) (erc-channel-key, erc-invitation, erc-channel-list) (erc-bad-nick, erc-logged-in, erc-default-nicks) (erc-nick-change-attempt-count, erc-send-input-line-function) (erc-channel-new-member-names, erc-channel-banlist) (erc-current-message-catalog): Prefer defvar-local. 2021-01-31 Stefan Kangas Remove redundant requires of 'derived' * lisp/net/newst-backend.el (derived): * lisp/net/newst-plainview.el (derived): * lisp/play/gametree.el (derived): * lisp/textmodes/less-css-mode.el (derived): Remove redundant require; 'define-derived-mode' is autoloaded. 2021-01-31 Stefan Kangas Sync latest SKK-JISYO.L * leim/SKK-DIC/SKK-JISYO.L: Sync to current upstream version. 2021-01-31 Dmitry Gutov Recompute mode-lines when marking conflicts resolved * lisp/vc/vc.el (vc-mark-resolved): Recompute the mode lines of the affected files. 2021-01-31 Stefan Monnier * lisp/gnus: Use closures now that we activated `lexical-binding` * lisp/gnus/nnml.el (nnml-request-accept-article): * lisp/gnus/nnmairix.el (nnmairix-request-marks): * lisp/gnus/nnmail.el (nnmail-get-new-mail-1): * lisp/gnus/mm-view.el (mm-inline-image) (mm-inline-text-html-render-with-w3m, mm-inline-text) (mm-insert-inline, mm-inline-message): * lisp/gnus/mm-partial.el (mm-inline-partial): * lisp/gnus/mm-archive.el (mm-archive-dissect-and-inline): * lisp/gnus/gnus-util.el (gnus-create-info-command): * lisp/gnus/gnus-topic.el (gnus-topic-edit-parameters) (gnus-topic-sort-topics-1): * lisp/gnus/gnus-sum.el (gnus-summary-edit-article): * lisp/gnus/gnus-srvr.el (gnus-server-edit-server): * lisp/gnus/gnus-msg.el (gnus-inews-make-draft) (gnus-inews-add-send-actions, gnus-summary-cancel-article) (gnus-summary-supersede-article, gnus-summary-resend-message) (gnus-configure-posting-styles): * lisp/gnus/gnus-kill.el (gnus-execute): * lisp/gnus/gnus-html.el (gnus-html-wash-images): * lisp/gnus/gnus-group.el (gnus-group-edit-group) (gnus-group-nnimap-edit-acl): * lisp/gnus/gnus-draft.el (gnus-draft-edit-message, gnus-draft-setup): * lisp/gnus/gnus-art.el (gnus-article-edit-part) (gnus-mm-display-part, gnus-article-edit): * lisp/gnus/gnus-agent.el (gnus-category-edit-predicate) (gnus-category-edit-score, gnus-category-edit-groups): Use closures instead of `(lambda ...). * lisp/gnus/nnoo.el (noo--defalias): New function. (nnoo-import-1, nnoo-define-skeleton-1): Use it to avoid `eval`. 2021-01-31 Stefan Monnier * lisp/gnus: Use lexical-binding in all the files * lisp/gnus/gnus-group.el (features): Use `dlet`. (gnus-tmp-level, gnus-tmp-marked, gnus-tmp-group): Declare vars. (gnus-group-insert-group-line): Bind dynbound vars via `let` rather than as formal args. Bind `number` as dynbound. (gnus-visual, gnus-score-find-score-files-function) (gnus-home-score-file, gnus-apply-kill-hook) (gnus-summary-expunge-below): Declare vars. (gnus-group-restart, gnus-group-list-plus): Fix `interactive` spec since the arg is unused. * lisp/gnus/mail-source.el (mail-source-bind, mail-source-bind-common): Use `dlet` and suppress the warnings about the non-prefixed dynbound vars. (mail-source-set-1): Remove unused var `auth-info`. (mail-source-call-script): Remove unused var `background`. (mail-source-fetch-pop, mail-source-check-pop): Bind pop3 vars with `dlet`. * lisp/gnus/gnus-int.el (mail-source-plugged, gnus-inhibit-demon): Declare vars. (gnus-server-opened, gnus-status-message) (gnus-open-server, gnus-close-server, gnus-request-list) (gnus-finish-retrieve-group-infos, gnus-retrieve-group-data-early) (gnus-request-list-newsgroups, gnus-request-newgroups) (gnus-request-regenerate, gnus-request-compact, gnus-request-group) (gnus-retrieve-groups, gnus-request-post, gnus-request-expunge-group) (gnus-request-scan, gnus-request-update-info, gnus-request-marks) (gnus-request-accept-article, gnus-request-create-group) (gnus-asynchronous-p, gnus-remove-denial): Bind `gnus-command-method` via `let` rather than as formal args. * lisp/gnus/gnus-topic.el (gnus-topic-insert-topic-line): Pass documented vars to eval for `gnus-topic-line-format-spec`. * lisp/gnus/message.el (message-yank-original): Use `cl-progv` rather than `eval` to bind the vars from `message-cite-style`. * lisp/gnus/mml.el (mml-parse-1): Use `apply` instead of `eval`. (gnus-newsgroup-name, gnus-displaying-mime, gnus-newsgroup-name) (gnus-article-prepare-hook, gnus-newsgroup-charset) (gnus-original-article-buffer, gnus-message-buffer) (message-this-is-news, message-this-is-mail): Declare vars. * lisp/gnus/deuglify.el (gnus-outlook-rearrange-article): Remove unused var `cite-marks`. * lisp/gnus/gnus-art.el (ansi-color-context-region): Declare var. (gnus-mime-display-attachment-buttons-in-header): Move declaration before first use. (gnus-mime-display-alternative): Remove unused var `from`. * lisp/gnus/gnus-bookmark.el (gnus-bookmark-bmenu-list): Remove unused var `start` `end`. * lisp/gnus/gnus-cache.el (gnus-article-decode-hook) (nnml-generate-active-function): Declare var. * lisp/gnus/gnus-cite.el (gnus-message-citation-mode): Remove unused var `keywords`. * lisp/gnus/gnus-cloud.el (gnus-cloud-encode-data): Remove unused var `cipher`. (gnus-cloud-ensure-cloud-group): Remove unused var `method`. * lisp/gnus/gnus-delay.el (gnus-delay-article): Remove unused var `days`. * lisp/gnus/gnus-html.el (gnus-html-wash-images): Remove unused vars `tag`, `string`, and `images`. (gnus-html-wash-tags): Remove unused vars `string` and `images`. * lisp/gnus/gnus-msg.el (gnus-msg-mail): Remove unused var `group-name`. (gnus-group-mail, gnus-group-news, gnus-summary-mail-other-window) (gnus-summary-news-other-window): Remove unused vars `group` and `buffer`. (gnus-configure-posting-styles): Remove unused vars `style` and `attribute`. * lisp/gnus/gnus-picon.el (gnus-picon-find-face): Remove unused vars `database`, `directory`, and `instance`. (gnus-picon-transform-newsgroups): Remove unused var `point`. * lisp/gnus/gnus-range.el (gnus-range-difference): Remove unused var `safe`. * lisp/gnus/gnus-score.el (gnus-score-load-file): Remove unused var `score-fn`. * lisp/gnus/gnus-sum.el (message-options-set-recipient): Declare var. * lisp/gnus/gnus-undo.el (gnus-undo): Fix docstring lie. * lisp/gnus/gnus-util.el (print-string-length) (iswitchb-make-buflist-hook): Declare vars. (gnus-emacs-version): Remove unused var `codename`. (gnus-rename-file): Remove unused vars `old-name` and `new-name`. * lisp/gnus/gnus-uu.el (gnus-uu-yenc-article): Remove unused var `start-char`. (gnus-asynchronous): Declare var. * lisp/gnus/mm-partial.el (gnus-displaying-mime): Declare var. (mm-inline-partial): Remove unused var `buffer`. * lisp/gnus/mm-view.el (w3m-force-redisplay, w3m-safe-url-regexp) (gnus-displaying-mime, gnus-original-article-buffer) (gnus-article-prepare-hook): Declare vars. * lisp/gnus/mml-smime.el (mml-smime-epg-encrypt): Remove unused var `boundary`. (mml-smime-epg-verify): Remove unused vars `plain` and `signature-file`. * lisp/gnus/mml1991.el (pgg-text-mode): Declare var. * lisp/gnus/mml2015.el (pgg-text-mode): Declare var. (mml2015-pgg-decrypt): Remove unused var `result`. (mml2015-epg-key-image-to-string): Remove unused var `error`. (mml2015-epg-decrypt): Remove unused var `result`. (mml2015-epg-verify): Remove unused vars `plain` and `signature-file`. * lisp/gnus/nnbabyl.el (nnml-current-directory): Declare var. * lisp/gnus/nndiary.el (nndiary-files): Move declaration before first use. * lisp/gnus/nnfolder.el (nnfolder-request-accept-article): Remove unused var `buf`. * lisp/gnus/nnmail.el (nnmail-parse-active): Remove unused var `err`. * lisp/gnus/nnmairix.el (nnmairix-request-group): Remove unused var `args`. (nnmairix-request-create-group): Remove unused var `info`. (nnmairix-request-list): Remove unused var `folder`. (nnmairix-request-set-mark): Remove unused var `propto`. (nnmairix-request-set-mark): Remove unused vars `number` and `method`. (nnmairix-close-group): Remove unused var `method`. (nnmairix-create-search-group-from-message): Remove unused var `cq`. (nnmairix-create-server-and-default-group): Remove unused var `create`. (nnmairix-purge-old-groups): Remove unused var `folder`. (nnmairix-remove-tick-mark-original-article, nnmairix-get-valid-servers): Remove unused var `cur`. (nnmairix-replace-group-and-numbers): Remove unused var `header`. (nnmairix-goto-original-article): Remove unused var `rval`. (nnmairix-widget-create-query): Remove unused var `allwidgets`. * lisp/gnus/nnmbox.el (nnml-current-directory): Declare var. * lisp/gnus/nnmh.el (nnmh-toplev): Move declaration before first use. (nnmh-request-list-1): Remove unused var `rdir`. * lisp/gnus/nnml.el (nnml-generate-nov-file): Remove unused var `file`. * lisp/gnus/nnrss.el (nnrss-request-article): Remove unused var `post`. (nnrss-request-article): Remove unused var `fn`. (nnrss-check-group): Remove unused var `rdf-ns`. * lisp/gnus/nnweb.el (nnweb-request-article): Remove unused var `active`. (nnweb-google-parse-1): Remove unused var `Score`. * lisp/gnus/spam-stat.el (spam-stat-error-holder): Remove var. (spam-stat-buffer-words-with-scores): Remove unused var `word`. (spam-stat-score-buffer): Remove unused var `spam-stat-error-holder`. (spam-stat-split-fancy): Use `err` instead of `spam-stat-error-holder`. * lisp/gnus/spam-wash.el (spam-wash): Remove unused var `handle`. * lisp/gnus/spam.el (spam-copy-or-move-routine): Remove unused vars `article` and `mark`. (spam-register-routine): Remove unused var `article`. (spam-log-undo-registration): Remove unused var `found`. (spam-ifile-register-with-ifile): Remove unused var `parameters`. (spam-check-stat): Remove unused vars `category` and `return`. (spam-parse-list): Remove unused var `found`. (spam-filelist-register-routine): Remove unused var `from`. 2021-01-30 Stefan Monnier * lisp/gnus: Misc simplifications found during conversion to lexical * lisp/gnus/nnoo.el (noo-import-1, nnoo-define-skeleton-1): Use `dolist`. (noo-map-functions, nnoo-define-basics): Directly emit the code rather than going through an intermediate function; this also avoids the use of `eval`. (noo-map-functions-1, nnoo-define-basics-1): Delete functions, folded into their corresponding macro. * lisp/gnus/gmm-utils.el (gmm-tool-bar-from-list): Demote `eval` to `symbol-value`. * lisp/gnus/gnus-art.el (gnus-button-handle-describe-key): Avoid `eval` since `kbd` is a function nowadays. (gnus-treat-part-number): Rename from `part-number`. (gnus-treat-total-parts): Rename from `total-parts`. (gnus-treat-article, gnus-treat-predicate): Adjust accordingly. * lisp/gnus/gnus-cache.el (gnus-agent-load-alist): Use `declare-function`. * lisp/gnus/gnus-group.el (gnus-cache-active-hashtb): Use `defvar`. (gnus-group-iterate): Make it a normal function since lexical scoping avoids the risk of name capture anyway. (gnus-group-delete-articles): Actually use the `oldp` arg. * lisp/gnus/gnus-html.el (gnus-html-wash-images): Fix debug message so it's emitted after the `url` var it prints is actually initialized. And avoid `setq` while we're at it. * lisp/gnus/gnus-msg.el (gnus-group-mail, gnus-group-news) (gnus-summary-mail-other-window, gnus-summary-news-other-window): Merge `let`s using `let*`. * lisp/gnus/gnus-spec.el (gnus-update-format-specifications): Tighten the scope of `buffer`, and tighten a regexp. (gnus-parse-simple-format): Reduce code duplication. * lisp/gnus/gnus-start.el (gnus-child-mode): Don't `defvar` it since we never use that variable and accordingly don't define it as a minor mode. * lisp/gnus/gnus-util.el (gnus-byte-compile): Simplify so it obeys `gnus-use-byte-compile` not just on the first call. (iswitchb-minibuffer-setup): Declare. * lisp/gnus/mail-source.el (mail-source-bind-1) (mail-source-bind-common-1): Use `mapcar`. (mail-source-set-common-1): Use `dolist`. (display-time-event-handler): Declare. * lisp/gnus/mml-smime.el (mml-smime-epg-verify): Reduce code duplication. * lisp/gnus/mml.el (mml-parse-1): Reduce code duplication. * lisp/gnus/mml2015.el (mml2015-epg-verify): Reduce code duplication. * lisp/gnus/nnmail.el (nnmail-get-split-group): Tighten regexp. (nnmail-split-it): Reduce code duplication. * lisp/gnus/nnweb.el (nnweb-request-article): Avoid `setq`. * lisp/gnus/spam.el (BBDB): Use the `noerror` arg of `require`, and define all the functions for BBDB regardless if the require succeeded. (spam-exists-in-BBDB-p): Don't inline, not worth it. 2021-01-30 Alan Third Fix build failure on macOS 10.7 (bug#46036) * src/nsfns.m (ns_set_represented_filename): Define the NSNumber in a more compatible manner. 2021-01-30 Alan Mackenzie With minibuffer-follows-selected-frame `hybrid', preserve recursive Mbuffers ...when enable-recursive-minibuffers is non-nil, and several minibuffers are activated from different frames. Also set the major mode of a reused active minibuffer to `fundamental-mode' - up till now it's been minibuffer-inactive-mode. * src/minibuf.c (read_minibuf): with the indicated settings of variables, "stack up" all containing minibuffers on the mini-window of the current frame. Delete another, now superfluous such stacking up. (set_minibuffer_mode): New function. (get_minibuffer): Call the above new function (twice), in place of inline code, ensuring active minibuffers are never left in minibuffer-inactive-mode. 2021-01-30 Stefan Monnier * lisp/gnus: Remove redundant `:group` args * lisp/gnus/spam-stat.el: * lisp/gnus/spam-report.el: * lisp/gnus/smime.el: * lisp/gnus/nnrss.el: * lisp/gnus/nnmairix.el: * lisp/gnus/nnimap.el: * lisp/gnus/nndiary.el: * lisp/gnus/mm-url.el: * lisp/gnus/mail-source.el: * lisp/gnus/gnus-win.el: * lisp/gnus/gnus-topic.el: * lisp/gnus/gnus-sieve.el: * lisp/gnus/gnus-search.el: * lisp/gnus/gnus-registry.el: * lisp/gnus/gnus-notifications.el: * lisp/gnus/gnus-gravatar.el: * lisp/gnus/gnus-eform.el: * lisp/gnus/gnus-dup.el: * lisp/gnus/gnus-diary.el: * lisp/gnus/gnus-demon.el: * lisp/gnus/gnus-delay.el: * lisp/gnus/gnus-cloud.el: * lisp/gnus/gnus-cite.el: * lisp/gnus/gnus-bookmark.el: * lisp/gnus/gmm-utils.el: * lisp/gnus/deuglify.el: * lisp/gnus/canlock.el: Remove redundant `:group` arguments 2021-01-30 Stefan Monnier * lisp/gnus: Demote some macros and defsubsts, plus a fix * lisp/gnus/gnus-sum.el (gnus-summary-thread-level) (gnus-summary-article-mark): Turn macros into `defsubst`. * lisp/gnus/mail-source.el (mail-source-bind-common): Actually use its arg. * lisp/gnus/nntp.el (nntp-copy-to-buffer): Turn macro into a `defsubst`. (nntp-wait-for, nntp-retrieve-data, nntp-send-command): Don't inline those, it's not worth it. 2021-01-30 Stefan Monnier * lisp/gnus: Use `with-current-buffer` at a few more places * lisp/gnus/nnmbox.el (nnmbox-request-scan, nnmbox-read-mbox): * lisp/gnus/nnmairix.el (nnmairix-create-search-group): * lisp/gnus/nnfolder.el (nnfolder-existing-articles): * lisp/gnus/nndraft.el (nndraft-auto-save-file-name): * lisp/gnus/nndoc.el (nndoc-request-article): * lisp/gnus/nnbabyl.el (nnbabyl-read-mbox): * lisp/gnus/gnus-score.el (gnus-score-body): * lisp/gnus/gnus-start.el (gnus-dribble-enter) (gnus-dribble-eval-file, gnus-ask-server-for-new-groups) (gnus-read-newsrc-file, gnus-read-descriptions-file): * lisp/gnus/gnus-spec.el (gnus-update-format-specifications): * lisp/gnus/gnus-draft.el (gnus-draft-edit-message): * lisp/gnus/gnus-art.el (gnus-request-article-this-buffer) (gnus-article-edit-exit): Use `with-current-buffer`. 2021-01-30 Eli Zaretskii Fix NS build broken by a recent change * src/nsmenu.m (set_frame_menubar, Fns_reset_menu): Adapt to recent changes in set_frame_menubar. (Bug#45759) 2021-01-30 Juri Linkov Allow the caller to specify own face on suffix in annotation-function * lisp/minibuffer.el (completion--insert-strings): Don't add 'completions-annotations' face when the caller specified own face in annotation-function. Remove no-op code for 'unless prefix' branch. (completion-metadata, completion-extra-properties): Update docs of affixation-function. Suggested by Clemens (bug#45780) * test/lisp/minibuffer-tests.el: Rename package name from completion-tests.el to minibuffer-tests.el. Add new test completion--insert-strings-faces. * doc/lispref/minibuf.texi (Completion Variables) (Programmed Completion): Update descriptions of annotation-function and affixation-function. 2021-01-30 Augusto Stoffel (tiny change) Reduce flicker in Isearch mode Lazy highlighting now happens immediately when the search string is at least as long as the value of the new custom variable `lazy-highlight-no-delay-length`. Also avoid updating the lazy count in the echo area too often. * lisp/isearch.el (lazy-highlight-no-delay-length): New defcustom. (lazy-lazy-count-format): Avoid a momentarily incorrect count when reversing search direction. (isearch-lazy-highlight-new-loop): Avoid a call to `isearch-message` that is quickly succeed by a second echo area update, thus causing flicker. (isearch-lazy-highlight-new-loop): Start lazy highlight immediately if appropriate. * etc/NEWS: Announce the change. * doc/emacs/search.texi: Document `lazy-highlight-no-delay-length'. 2021-01-30 Stefan Monnier * lisp/gnus/gnus-msg.el: Remove empty `unwind-protect`s (gnus-msg-mail, gnus-group-mail) (gnus-group-news, gnus-summary-mail-other-window) (gnus-summary-news-other-window): Remove empty `unwind-protect`. 2021-01-30 Stefan Monnier * lisp/gnus/mm-encode.el (mm-default-file-type): New name Rename from misleading `mm-default-file-encoding`. (mm-default-file-encoding): Redefine as obsolete alias. * lisp/mail/sendmail.el (mail-add-attachment): * lisp/mh-e/mh-mime.el (mh-minibuffer-read-type): * lisp/gnus/gnus-art.el (gnus-mime-view-part-as-type-internal): * lisp/gnus/gnus-dired.el (gnus-dired-attach): * lisp/gnus/mml.el (mml-generate-mime-1, mml-minibuffer-read-type) (mml-attach-file): Use the new name. 2021-01-30 Stefan Monnier * lisp/gnus: Quote functions with #' To get better warnings, try and use #' to quote function names. * lisp/gnus/canlock.el: * lisp/gnus/deuglify.el: * lisp/gnus/gmm-utils.el: * lisp/gnus/gnus-agent.el: * lisp/gnus/gnus-art.el: * lisp/gnus/gnus-bookmark.el: * lisp/gnus/gnus-cache.el: * lisp/gnus/gnus-cite.el: * lisp/gnus/gnus-cus.el: * lisp/gnus/gnus-delay.el: * lisp/gnus/gnus-diary.el: * lisp/gnus/gnus-dired.el: * lisp/gnus/gnus-draft.el: * lisp/gnus/gnus-fun.el: * lisp/gnus/gnus-group.el: * lisp/gnus/gnus-html.el: * lisp/gnus/gnus-int.el: * lisp/gnus/gnus-kill.el: * lisp/gnus/gnus-mlspl.el: * lisp/gnus/gnus-msg.el: * lisp/gnus/gnus-notifications.el: * lisp/gnus/gnus-picon.el: * lisp/gnus/gnus-registry.el: * lisp/gnus/gnus-rfc1843.el: * lisp/gnus/gnus-salt.el: * lisp/gnus/gnus-score.el: * lisp/gnus/gnus-search.el: * lisp/gnus/gnus-sieve.el: * lisp/gnus/gnus-srvr.el: * lisp/gnus/gnus-start.el: * lisp/gnus/gnus-topic.el: * lisp/gnus/gnus-undo.el: * lisp/gnus/gnus-util.el: * lisp/gnus/gnus-uu.el: * lisp/gnus/gnus.el: * lisp/gnus/mail-source.el: * lisp/gnus/message.el: * lisp/gnus/mm-archive.el: * lisp/gnus/mm-decode.el: * lisp/gnus/mm-url.el: * lisp/gnus/mm-util.el: * lisp/gnus/mm-view.el: * lisp/gnus/mml-sec.el: * lisp/gnus/mml-smime.el: * lisp/gnus/mml.el: * lisp/gnus/nnagent.el: * lisp/gnus/nndiary.el: * lisp/gnus/nndoc.el: * lisp/gnus/nndraft.el: * lisp/gnus/nnfolder.el: * lisp/gnus/nnheader.el: * lisp/gnus/nnmail.el: * lisp/gnus/nnmaildir.el: * lisp/gnus/nnmairix.el: * lisp/gnus/nnmh.el: * lisp/gnus/nnml.el: * lisp/gnus/nnrss.el: * lisp/gnus/nnselect.el: * lisp/gnus/nnspool.el: * lisp/gnus/nnvirtual.el: * lisp/gnus/nnweb.el: * lisp/gnus/smiley.el: * lisp/gnus/smime.el: * lisp/gnus/spam-report.el: * lisp/gnus/spam-stat.el: * lisp/gnus/spam-wash.el: * lisp/gnus/spam.el: 2021-01-30 Stefan Monnier * lisp/gnus/gnus-art.el: Add `event` args and operate at its position. (gnus-mime-save-part-and-strip) (gnus-mime-delete-part, gnus-mime-save-part, gnus-mime-pipe-part) (gnus-mime-view-part, gnus-mime-view-part-as-type) (gnus-mime-copy-part, gnus-mime-print-part, gnus-mime-inline-part) (gnus-mime-view-part-as-charset, gnus-mime-view-part-externally) (gnus-mime-view-part-internally, gnus-article-press-button): Add `event` arg and operate at its position. 2021-01-30 Stefan Monnier * lisp/gnus: Use `declare`. * lisp/gnus/nnoo.el (defvoo, deffoo, nnoo-declare, nnoo-import) (nnoo-map-functions): * lisp/gnus/nnmaildir.el (nnmaildir--with-nntp-buffer) (nnmaildir--with-work-buffer, nnmaildir--with-nov-buffer) (nnmaildir--with-move-buffer, nnmaildir--condcase): * lisp/gnus/mm-decode.el (mm-with-part): * lisp/gnus/gnus-msg.el (gnus-setup-message): * lisp/gnus/gnus-agent.el (gnus-agent-with-fetch, gnus-agent-while-plugged): * lisp/gnus/mail-source.el (mail-source-set-1, mail-source-value): Use `declare`. * lisp/gnus/gnus-util.el (gnus-define-keys): Use `declare`, and also don't quote `keymap` if it's a variable name. (gnus-define-keys-1): Reject the case where `keymap` is a variable name. (gnus-eval-in-buffer-window, gnus-define-keys-safe) (gnus-define-keymap, gnus-atomic-progn, gnus-with-output-to-file) (gnus-parse-without-error): Use `declare`. (gnus-atomic-progn-assign, gnus-atomic-setq): Delete macros. * lisp/gnus/gnus-undo.el (gnus-undo-register): Drop indent and edebug spec since they're not really appropriate for a function. * lisp/gnus/gnus-art.el (gnus--\,@): New macro. Use it at top-level to construct the `gnus-article-FOO` => `article-FOO` wrapper functions. (gnus-with-article-headers, gnus-with-article-buffer): Use `declare`. 2021-01-30 Stefan Kangas Remove unused argument from set_frame_menubar (Bug#45759) * src/w32menu.c (set_frame_menubar): * src/xmenu.c (set_frame_menubar): Remove unused argument. All callers updated. 2021-01-30 Eli Zaretskii Improve documentation of auto-resize-tool/tab-bars * src/xdisp.c (syms_of_xdisp) : Doc fix. (Bug#46178) 2021-01-30 Dmitry Gutov Also highlight 'conflict' with the warning face * lisp/vc/vc-git.el (vc-git-dir-printer): Also highlight 'conflict' with the warning face, like vc-default-dir-printer does already. 2021-01-30 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-01-30 Lars Ingebrigtsen auth-source-search doc string fix * lisp/auth-source.el (auth-source-search): Fix example (bug#36286). 2021-01-30 Jared Finder * lisp/tab-line.el (tab-line-new-tab): Use tty menus when supported. 2021-01-30 Eli Zaretskii New Rmail option 'rmail-show-message-set-modified' * lisp/mail/rmail.el (rmail-show-message-set-modified): New option. (rmail-show-message-1): If 'rmail-show-message-set-modified' is non-nil, don't reset the buffer's modified state. (Bug#45941) * etc/NEWS: Announce the new option. 2021-01-30 Lars Ingebrigtsen Fix vc-hg-rename-file on file names like ~/foo/bar * lisp/vc/vc-hg.el (vc-hg-rename-file): Use absolute file names, because hg doesn't like getting file names like "~/foo/bar" (bug#36932). 2021-01-30 Jeff Spencer (tiny change) Fix interaction between two dired cleanup variables * lisp/dired.el (dired-clean-up-after-deletion): Kill the buffers if you have `dired-clean-up-buffers-too' set and `dired-clean-confirm-killing-deleted-buffers' nil (bug#38037). 2021-01-30 Lars Ingebrigtsen Improve :foreground description in the manual * doc/lispref/frames.texi (Font and Color Parameters): Make the description less confusing (bug#38710). 2021-01-30 Mauro Aranda Add source to sgml-empty-tags * lisp/textmodes/sgml-mode.el (html-mode): Add "source" as an empty tag to fix indentation when this element is present (bug#46181). 2021-01-30 Lars Ingebrigtsen rmail-summary-mark-deleted optional argument fix * lisp/mail/rmailsum.el (rmail-summary-mark-deleted): Argument N is optional, so don't assume that it's a number (bug#39076). 2021-01-30 Dmitry Gutov vc-dir-mode-map: Remove the mouse-2 binding * lisp/vc/vc-dir.el (vc-dir-mode-map): Remove the mouse-2 binding (bug#13692). (vc-dir-mode): Update the docstring accordingly. (vc-dir-status-mouse-map): New variable. (vc-default-dir-printer): Use it on the state buttons. * lisp/vc/vc-git.el (vc-git-dir-printer): Same. 2021-01-30 Stefan Kangas Use lexical-binding in mpuz.el * lisp/play/mpuz.el: Use lexical-binding. Remove redundant :group args. (mpuz-switch-to-window): Minor cleanup. 2021-01-30 Stefan Kangas Use lexical-binding in handwrite.el * lisp/play/handwrite.el: Use lexical-binding. Remove redundant :group args. Minor cleanups. (handwrite): Minor cleanups. (handwrite-set-pagenumber-off, handwrite-set-pagenumber-on): Make comments into docstrings. 2021-01-29 Stefan Monnier * test/lisp/electric-tests.el: Fix switch to lexical-binding. (define-electric-pair-test): Don't presume that function values are self-evaluating. 2021-01-29 Stefan Kangas Use lexical-binding in sasl.el and add tests * lisp/net/sasl.el: * lisp/net/sasl-digest.el: * lisp/net/sasl-cram.el: * lisp/net/sasl-ntlm.el: Use lexical-binding. * test/lisp/net/sasl-tests.el: * test/lisp/net/sasl-cram-tests.el: New files. 2021-01-29 Dmitry Gutov (xref-revert-buffer): Also 'erase-buffer' when handling a user-error * lisp/progmodes/xref.el (xref-revert-buffer): Also 'erase-buffer' when handling a user-error (bug#46042). (cherry picked from commit e86b30d6fd04070b86560774ec82392dbe24ca1e) 2021-01-29 Dmitry Gutov (xref-revert-buffer): Also 'erase-buffer' when handling a user-error * lisp/progmodes/xref.el (xref-revert-buffer): Also 'erase-buffer' when handling a user-error (bug#46042). 2021-01-29 Eli Zaretskii Update files for 27.1.91 pretest * ChangeLog.3: * etc/AUTHORS * lisp/ldefs-boot.el: Update. 2021-01-29 Eli Zaretskii Support 'operating-system-release' on MS-Windows * src/w32fns.c (w32_version_string) [WINDOWSNT]: New function. * src/w32common.h (w32_version_string) [WINDOWSNT]: Add prototype. * src/editfns.c (init_editfns) [WINDOWSNT]: Produce a non-nil string with the OS version. 2021-01-29 Michael Albinus * test/lisp/net/tramp-tests.el (tramp--test-special-characters): Adapt test for docker. 2021-01-29 Juri Linkov Use save-mark-and-excursion in query-replace-read-args (bug#45617) 2021-01-29 Michael Albinus Fix Bug#45518 in compile.el * lisp/progmodes/compile.el (compilation-get-file-structure): Avoid call of `file-truename' for remote files. (Bug#45518) 2021-01-29 Eli Zaretskii Improve doc string of 'operating-system-release' * src/editfns.c (syms_of_editfns) : Doc fix. (Bug#39940) 2021-01-29 Sean Whitton Fix previous commit regarding revert-buffer-function * lisp/simple.el (shell-command, shell-command-on-region): Set revert-buffer-function buffer-locally, not globally. Also, avoid an unnecessary call to (current-buffer) by taking advantage of the closure (bug#46151). 2021-01-29 Lars Ingebrigtsen Describe pointer shapes in the manual * doc/lispref/frames.texi (Pointer Shape): Describe what the typical pointer shapes are (and add `nhdrag') (bug#39246). 2021-01-29 Marco Wahl Add a command for redisplay during keyboard macros * doc/emacs/kmacro.texi (Basic Keyboard Macro): Document it (bug#39252). * lisp/kmacro.el (kdb-macro-redisplay): New function. (kmacro-keymap): Bind it. 2021-01-29 Lars Ingebrigtsen Improve fontifying of #| ... |# in `lisp-mode' * lisp/emacs-lisp/lisp-mode.el (lisp-mode): Fontify the end delimiter in #| ... |# correctly (bug#39820). 2021-01-29 Lars Ingebrigtsen operating-system-release doc string improvement * src/editfns.c (syms_of_editfns): Be more precise about what `operating-system-release' is (bug#39940). 2021-01-29 Lars Ingebrigtsen flymake-diagnostic-beg/end doc string and error reporting improvement * lisp/progmodes/flymake.el (flymake-diagnostic-beg): (flymake-diagnostic-end): Improve doc string and error reporting (bug#39971). 2021-01-29 Lars Ingebrigtsen Fix position in empty buffers in checkdoc-file-comments-engine * lisp/emacs-lisp/checkdoc.el (checkdoc-file-comments-engine): Don't give invalid positions on empty buffers (bug#39987). 2021-01-29 Sean Whitton Set revert-buffer-function in shell command output buffers * lisp/simple.el (shell-command, shell-command-on-region): Set revert-buffer-function in shell command output buffers (bug#46151). 2021-01-29 Lars Ingebrigtsen Mention using buffer-list-update-hook in recentf-mode * lisp/recentf.el (recentf-mode): Mention using `buffer-list-update-hook' (bug#46153). 2021-01-29 Stefan Kangas Remove Emacs 21 compat code from sasl.el * lisp/net/sasl.el (sasl-read-passphrase): Remove compat code; 'read-passwd' is preloaded since Emacs 22. 2021-01-29 Stefan Kangas * lisp/flow-ctrl.el: Use lexical-binding. * lisp/flow-ctrl.el (enable-flow-control): Minor cleanup. 2021-01-29 Stefan Kangas Use lexical-binding in find-cmd.el and add tests * lisp/find-cmd.el: Use lexical-binding. * test/lisp/find-cmd-tests.el: New file. 2021-01-29 Lars Ingebrigtsen Slight gravatar.el code clean up * lisp/image/gravatar.el (gravatar--service-libravatar): Clean the code up slightly. 2021-01-29 Stefan Monnier Merge branch 'master' of git+ssh://git.sv.gnu.org/srv/git/emacs into trunk 2021-01-28 Stefan Kangas Use lexical-binding in nroff-mode.el * lisp/textmodes/nroff-mode.el: Use lexical-binding. Remove redundant :group args. 2021-01-28 Stefan Kangas * lisp/progmodes/bat-mode.el: Use lexical-binding. 2021-01-28 Stefan Kangas Use lexical-binding in generic-x.el * lisp/generic-x.el: Use lexical-binding. Remove redundant :groups. (generic-rul-mode-setup-function): Prefer setq-local. 2021-01-28 Stefan Kangas Define compat alias obsolete * lisp/generic-x.el (generic-mode-ini-file-find-file-hook): Define compat alias introduced after rename in 22.1 obsolete. 2021-01-28 Stefan Monnier Use lexical-binding in all of `lisp/emacs-lisp` * lisp/emacs-lisp/bindat.el: Use lexical-binding. (bindat--unpack-group, bindat--length-group, bindat--pack-group): Declare `last` and `tag` as dyn-scoped. (bindat-unpack, bindat-pack): Bind `bindat-raw` and `bindat-idx` via `let` rather than via the formal arglist. * lisp/emacs-lisp/package-x.el: * lisp/emacs-lisp/generic.el: * lisp/emacs-lisp/eieio-opt.el: * lisp/emacs-lisp/derived.el: * lisp/emacs-lisp/crm.el: Use lexical-binding. * lisp/emacs-lisp/helper.el: Use lexical-binding. (Helper-help-map): Move initialization into declaration. * lisp/emacs-lisp/regi.el: Use lexical-binding. (regi-interpret): Remove unused var `tstart`. Declare `curframe`, `curentry` and `curline` as dyn-scoped. * lisp/emacs-lisp/shadow.el: Use lexical-binding. (load-path-shadows-find): Remove unused var `file`. Tighten a regexp, use `push`. * lisp/emacs-lisp/tcover-ses.el: Use lexical-binding. Require `ses`. Remove correspondingly redundant declarations. (ses--curcell-overlay): Declare. (ses-exercise): Use `dlet` and use a properly-prefixed var name. Fix name of `curcell-overlay` variable. * lisp/emacs-lisp/unsafep.el: Use lexical-binding. (unsafep): Bind `unsafep-vars` via `let` rather than via the formal arglist. 2021-01-28 Juri Linkov Use isearch-tmm-menubar when tmm-menubar is called in isearch-mode (bug#43966) * lisp/isearch.el (isearch-menu-bar-commands): Add tmm-menubar to defaults. (isearch-mode-map): Remove remapping of tmm-menubar to isearch-tmm-menubar. * lisp/tmm.el (tmm-menubar): Call isearch-tmm-menubar in isearch-mode. 2021-01-28 Stefan Kangas * lisp/wdired.el: Minor doc fixes. 2021-01-28 Stefan Kangas Avoid recommending Google * doc/misc/org.texi (Link Abbreviations): * lisp/net/webjump.el (webjump-sample-sites): * lisp/org/ol.el (org-link-shell-confirm-function) (org-link-elisp-confirm-function): * lisp/org/org.el (org-highlight-links): * lisp/wdired.el: Avoid recommending Google. squash! Avoid recommending Google 2021-01-28 Stefan Kangas * lisp/leim/quail/viqr.el: Use lexical-binding. * lisp/leim/quail/compose.el: Use lexical-binding. * lisp/ezimage.el: Use lexical-binding. 2021-01-28 Stefan Monnier * src/fns.c (hash_string): Fix bug#46111 Use `memcpy` instead of an unaligned memory access. On x86 at least, GCC turns this `memcpy` into a single `mov`, so it's about as fast. 2021-01-28 Stefan Kangas Add cross-reference to with-eval-after-load * lisp/subr.el (eval-after-load): Doc fix; add cross-reference to 'with-eval-after-load'. 2021-01-28 Stefan Kangas * lisp/generic-x.el (hosts-generic-mode): Support IPv6 addresses. 2021-01-28 Stefan Kangas Add missing file systems to etc-fstab-generic-mode * lisp/generic-x.el (etc-fstab-generic-mode): Add entries for missing file systems. 2021-01-28 Stefan Monnier * test/Makefile.in (emacs): Use the C locale This fixes spurious test failures in my environment for `diff-mode-test-font-lock-syntax-one-line` (where my `diff` otherwise returns "No newline at end of file" in French) and for various tests in `emacs-module-tests` because errors signal "Abandon" instead of "Abort". 2021-01-28 Michael Albinus * lisp/net/ange-ftp.el (ange-ftp-ls): Handle several "--dired" switches. 2021-01-28 Michael Albinus Simplify auto-revert buffer list by watch descriptor (Bug#44639) * lisp/autorevert.el (auto-revert--buffer-by-watch-descriptor): Rename from `auto-revert--buffers-by-watch-descriptor'. Make it an assoc list. (auto-revert-notify-rm-watch, auto-revert-notify-add-watch) (auto-revert-notify-handler): Adapt accordingly. Based on a patch provided by Spencer Baugh . (Bug#44639) 2021-01-28 Stefan Monnier Use lexical-binding in lisp/{term,nxml,language} * test/lisp/electric-tests.el: * lisp/term/w32console.el: * lisp/nxml/rng-util.el: * leim/leim-ext.el: Use lexical-binding. * lisp/international/titdic-cnv.el (tit-process-header) (miscdic-convert): * lisp/international/mule-cmds.el (leim-list-header): * lisp/international/ja-dic-cnv.el (skkdic-convert): Use lexical-binding in the generated file. 2021-01-28 Lars Ingebrigtsen Protect against bad results from libravatar * lisp/image/gravatar.el (gravatar--service-libravatar): Don't have (gravatar-retrieve "foobar@zjp.codes" 'ignore) (which returns a CNAME) bug out. 2021-01-28 Lars Ingebrigtsen Fix numerical `comment-padding' value * lisp/newcomment.el (comment-padright): Allow using a number for `comment-padding', like the doc string says (bug#40056). 2021-01-28 Lars Ingebrigtsen Make the default `whitespace-enable-predicate' use `derived-mode-p' * lisp/whitespace.el (whitespace-enable-predicate): Use `derived-mode-p' to check modes instead of `eq' (bug#40481). 2021-01-28 Mattias M (tiny change) Fix fill-paragraph in asm-mode * lisp/progmodes/asm-mode.el: The value of fill-prefix ought to be nil not "\t" so that fill-context-prefix can do its thing. In fact, fill-prefix does not have to be set at all because asm-mode derives from prog-mode and fill-prefix is set in simple.el. * test/lisp/progmodes/asm-mode-tests.el: Add relevant test (bug#41064). 2021-01-28 Lars Ingebrigtsen Allow commenting out white space lines in latex-mode * lisp/newcomment.el (comment-region-default-1): Allow commenting out whitespace-only regions (bug#41793). * lisp/textmodes/tex-mode.el (latex--comment-region): Use it. (latex-mode): Set a comment style shim. 2021-01-28 Lars Ingebrigtsen Fix Gnus icalendar button navigation * lisp/gnus/gnus-icalendar.el (gnus-icalendar-insert-button): Mark buttons correctly for TAB navigation (bug#46135). 2021-01-28 Harald Jörg perl-mode.el: Eliminate keywords which are not in Perl. * lisp/progmodes/perl-mode.el (perl-imenu-generic-expression): Remove keywords which are not part of Perl. (perl-font-lock-keywords-2): Remove keywords which are not part of Perl (bug#46024). (These keywords are part of Raku; aka. Perl 6.) 2021-01-28 João Távora Allow project/xref packages to be used in Emacs 26.1 * lisp/progmodes/project.el: Change Package-Requires to Emacs 26.1 (bug#44671). * lisp/progmodes/xref.el: Ditto. 2021-01-28 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp-if): Fix typo 2021-01-28 Stefan Monnier * lisp/emacs-lisp/pcase.el (pcase--split-pred): Handle `memq` pred. Improve handling of the `member` tests generated from (or 'a 'b 'c). This will expand (pcase EXP ((and (or 1 2 3) (guard (FOO))) EXP1) (1 EXP2) (6 EXP3)) to (cond ((memql '(3 2 1) EXP) (cond ((FOO) EXP1) ((eql EXP 1) EXP2))) ((eql EXP 6) EXP3)) rather than to (cond ((memql '(3 2 1) EXP) (cond ((FOO) EXP1) ((eql EXP 1) EXP2) ((eql EXP 6) EXP3))) ((eql EXP 1) EXP2) ((eql EXP 6) EXP3)) 2021-01-28 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp--expand-all): Perform β-reduction Also, in `funcall` macroexpand the function before checking to see if we can remove the `funcall`. (macroexp-if): Trim trailing `nil` in the generated code while we're at it. 2021-01-27 Juri Linkov * lisp/replace.el (query-replace-read-from-suggestions): New function. (query-replace-read-from): Use it instead of hard-coded '(car search-ring)'. (read-regexp-suggestions): Add the active region (bug#41692). 2021-01-27 Paul Eggert * admin/notes/unicode: titdic-cnv.el is now utf-8. 2021-01-27 Juri Linkov Support multi-line prompt and contents in previous-line-or-history-element. * lisp/simple.el (previous-line-or-history-element): Move to the beginning of minibuffer contents if there is editable minibuffer contents on the same line after moving point to the prompt (bug#46033). Fix minimal old-column from 0 to 1 to put point at the beginning of minibuffer contents after going to the previous history element. 2021-01-27 Stefan Monnier * lisp/international/titdic-cnv.el (tsang-quick-converter): Simplify Merge branches which only differed in the `charset` property of the strings they intended to return, since that info gets lost later on anyway. 2021-01-27 Stefan Monnier * lisp/international/titdic-cnv.el: Revert to utf-8 encoding While it's true that using the iso-2022-jp encoding on the file does allow Emacs to render the two strings differently, this only applies to the source file. The .elc files all use `utf-8-emacs` encoding anyway, so that info is lost. And the difference is even lost before we write the .elc file because when Emacs byte-compiles that code the byte-compiler considers those two strings as "equal" and emits only one string in the byte-code (so the two branches return `eq` strings). So, I think using `iso-2022-jp` is a bad idea here: it gives the illusion that the the `charset` info exists, even it will be lost. Eli discussed it with Handa-san a year ago, and they arrived at the conclusion that the charset information is indeed no longer important. 2021-01-27 Stefan Monnier Use lexical-binding in of all lisp/language * lisp/international/titdic-cnv.el (pinyin-convert): Enable lexical-binding in the generated file(s). * lisp/language/ethio-util.el: Use lexical-binding. (ethio-tex-to-fidel-buffer): Use `inhibit-read-only`. Remove unused vars `p` and `ch`. * lisp/language/hanja-util.el: Use lexical-binding. * lisp/language/ind-util.el: Use lexical-binding. (indian-translate-region): Actually use the `from` and `to` arguments. (): Use `dlet`. Remove unused var `current-repertory`. (indian-2-column-to-ucs-region): Remove unused var `pos`. * lisp/language/japan-util.el: Use lexical-binding. (japanese-katakana-region, japanese-hiragana-region) (japanese-zenkaku-region): Remove unused var `next`. * lisp/language/korea-util.el: Use lexical-binding. * lisp/language/lao-util.el: Use lexical-binding. (lao-composition-function): Remove unused var `glyph`. * lisp/language/thai-util.el: Use lexical-binding. (thai-composition-function): Remove unused var `glyph`. * lisp/language/thai-word.el: Use lexical-binding. (thai-forward-word): Remove unused var `tail`. * lisp/language/tibet-util.el: Use lexical-binding. (tibetan-add-components): Remove unused var `tmp`. (tibetan-compose-region): Remove unused vars `str`, `result`, `chars`. * lisp/language/viet-util.el: * lisp/language/tv-util.el: * lisp/language/cyril-util.el: * lisp/language/china-util.el: Use lexical-binding. 2021-01-27 Glenn Morris Merge from origin/emacs-27 3443a1c698 Fix last change 2021-01-27 Glenn Morris Merge from origin/emacs-27 3f610177ad Avoid sending systemd shutdown notifications if non-daemon 009df5cb3c * src/cmds.c (Fforward_line): Doc fix. (Bug#46027) ee1c54ebc0 Improve documentation of sendmail.el defcustom's 2021-01-27 Glenn Morris Merge from origin/emacs-27 b58fd1eab9 ; * lisp/language/cham.el: Fix copy-paste mistake in comment. 2021-01-27 Eli Zaretskii Fix display of stretches of whitespace in the display margins * src/xdisp.c (produce_stretch_glyph): Truncate the stretch glyph due to line wrap only when drawing in the text area. * src/xterm.c (x_draw_stretch_glyph_string): * src/w32term.c (w32_draw_stretch_glyph_string): Fix the adjustment of the stretch X and width so that stretch glyphs could be drawn in the left margin. Reported by Paul W. Rankin . 2021-01-27 Michael Albinus Some Tramp fixes * doc/misc/tramp.texi (GVFS-based methods): Ban sftp RemoteCommand option. * lisp/net/tramp-adb.el (tramp-adb-handle-copy-file) (tramp-adb-handle-rename-file): Avoid calling jka-compr when writing the target file. * lisp/net/tramp-sh.el (tramp-sh-handle-file-ownership-preserved-p): Skip GROUP test on *BSD machines. * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory-one-file): Skip for tamp-crypt.el. (tramp--test-sh-no-ls--dired-p): Ignore errors. 2021-01-27 Michael Albinus * lisp/net/dbus.el (dbus-monitor-handler): Disable buffer undo. 2021-01-27 Eli Zaretskii Improve documentation of 'read-regexp' and friends * doc/emacs/glossary.texi (Glossary): Add "Tag" to the Glossary. * doc/emacs/maintaining.texi (Xref): Mention that identifiers are also known as "tags". * lisp/replace.el (read-regexp, read-regexp-suggestions): Improve wording of doc strings. (Bug#46088) (Bug#46089) (cherry picked from commit 49eb03d6c8a181fd46adbbcf1f0a976d0a9efa87) 2021-01-27 Lars Ingebrigtsen read-regexp-suggestions doc string improvement * lisp/replace.el (read-regexp-suggestions): Add a link to the manual to explain what a tag is (bug#46089). (cherry picked from commit f9cc2d48246fe8370e9286866e6115ba8e2acf44) 2021-01-27 Lars Ingebrigtsen Try to improve the read-regexp doc string * lisp/replace.el (read-regexp): Attempt to clarify the semantics (bug#46088). (cherry picked from commit eded2a7ad7d456a417354a2797c18e9a578414d7) 2021-01-27 Eli Zaretskii Improve documentation of 'read-regexp' and friends * doc/emacs/glossary.texi (Glossary): Add "Tag" to the Glossary. * doc/emacs/maintaining.texi (Xref): Mention that identifiers are also known as "tags". * lisp/replace.el (read-regexp, read-regexp-suggestions): Improve wording of doc strings. (Bug#46088) (Bug#46089) 2021-01-27 Juri Linkov * lisp/subr.el (empty-history): Move defvar to functions where it's used. 2021-01-27 Juri Linkov Support variable name for previous-window in display-buffer-in-previous-window * lisp/window.el (display-buffer-in-previous-window): Support the value of 'previous-window' entry as a symbol for variable name (bug#45688). 2021-01-27 Lars Ingebrigtsen Fix indentation in sieve-mode * lisp/net/sieve-mode.el (sieve-mode-indent-function): New function. (sieve-mode): Don't inherit from C mode, because the syntax doesn't really resemble C mode that much (except being curly braced). 2021-01-27 Lars Ingebrigtsen Fix setting of line/point style in calc gnuplot * lisp/calc/calc-graph.el (calc-graph-set-styles): Modern gnuplot requires "ls" before the line style and "ps" before the point style (bug#46070). 2021-01-27 Lars Ingebrigtsen read-regexp-suggestions doc string improvement * lisp/replace.el (read-regexp-suggestions): Add a link to the manual to explain what a tag is (bug#46089). 2021-01-27 Lars Ingebrigtsen Try to improve the read-regexp doc string * lisp/replace.el (read-regexp): Attempt to clarify the semantics (bug#46088). 2021-01-27 Stefan Monnier Use lexical-binding in all of `lisp/url` * lisp/url/url-dav.el: Use lexical-binding. (url-dav-process-DAV:prop): Remove unused var `handler-func`. (url-dav-lock-resource): Remove unused var `child-url`. (url-dav-active-locks): Remove unused var `properties`. (url-dav-delete-directory): Remove unused var `props`. (url-dav-file-name-completion): Remove unused var `result`. * lisp/url/url-expand.el (url-expand-file-name): Use \s * lisp/url/url-file.el (url-file): Improve regexp. * lisp/url/url-gw.el: Use lexical-binding. (url-open-stream): Remove unused var `cur-retries`, `retry`, `errobj`. * lisp/url/url-imap.el: Use lexical-binding. (imap-username, imap-password): Declare. * lisp/url/url-mailto.el: Use lexical-binding. (url-mailto): Remove unused var `func`. Use `push`. * lisp/url/url-news.el: Use lexical-binding. (url-news): Remove unused var `article-brackets`. * lisp/url/url-cid.el: * lisp/url/url-cache.el: * lisp/url/url-about.el: * lisp/url/url-tramp.el: * lisp/url/url-proxy.el: * lisp/url/url-privacy.el: * lisp/url/url-nfs.el: * lisp/url/url-ldap.el: * lisp/url/url-misc.el: * lisp/url/url-methods.el: Use lexical-binding. 2021-01-26 Stefan Monnier * lisp/progmodes/sh-script.el (sh-smie-sh-rules): Tweak indent of new `for` The new `for (TEST) { BODY }` syntax introduces various challenges. This patch just fixes a trivial subcase. 2021-01-26 Eric Abrahamsen Revert "Allow gnus-retrieve-headers to return headers directly" This reverts commit 20add1cd22f9775a4475148b300cf2a4de4bd54a. This needs more work before it's ready to merge. 2021-01-26 Eli Zaretskii Fix typos and punctuation * src/w32fns.c: * src/frame.h: * doc/lispref/frames.texi (Frame Layout): * etc/NEWS: Fix typos and punctuation in recent changes. 2021-01-26 Martin Rudalics Fix typo in last change of FRAME_INTERNAL_BORDER_WIDTH * src/frame.h (FRAME_INTERNAL_BORDER_WIDTH): Fix typo in last change. 2021-01-26 Alexander Miller Add distinct controls for child frames' borders (Bug#45620) The background of the 'child-frame-border' face instead of the 'internal-border' face now controls the color of child frames' borders. The 'child-frame-border-width' frame parameter is now used for the width of child frames' borders instead of internal-border-width', though we still fall back on using the latter if the former is not set. * doc/lispref/frames.texi (Frame Layout): Mention 'child-frame-border' and 'child-frame-border-width'. (Layout Parameters): Mention 'child-frame-border-width'. * etc/NEWS: Mention new face 'child-frame-border' and frame parameter 'child-frame-border-width'. * lisp/faces.el (child-frame-border): New face. * src/dispextern.h (enum face_id): Add CHILD_FRAME_BORDER_FACE_ID. * src/frame.c (Fframe_child_frame_border_width): New function. (gui_report_frame_params): Add entry for Qchild_frame_border_width. * src/frame.h (struct frame): New slot child_frame_border_width. (FRAME_CHILD_FRAME_BORDER_WIDTH): New inlined function. * src/nsfns.m (ns_set_child_frame_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (ns_frame_parm_handlers): Add ns_set_child_frame_border_width. * src/nsterm.m (ns_clear_under_internal_border): Handle CHILD_FRAME_BORDER_FACE_ID. * src/w32fns.c (w32_clear_under_internal_border): Handle CHILD_FRAME_BORDER_FACE_ID. (w32_set_internal_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (w32_frame_parm_handlers): Add w32_set_child_frame_border_width. * src/xfaces.c (lookup_basic_face, realize_basic_faces): Handle CHILD_FRAME_BORDER_FACE_ID. * src/xfns.c (x_set_child_frame_border_width): New function. (Fx_create_frame): Handle Qchild_frame_border_width parameter. (x_frame_parm_handlers): Add x_set_child_frame_border_width. * src/xterm.c (x_clear_under_internal_border) (x_after_update_window_line): Handle CHILD_FRAME_BORDER_FACE_ID. 2021-01-26 Stefan Monnier Use `lexical-binding` in all `lisp/international` files * lisp/startup.el (keyboard-type): Make obsolete and lex-bound. * admin/unidata/unidata-gen.el (unidata-gen-file) (unidata-gen-charprop): Mark the generated files to use lexical binding. * lisp/international/isearch-x.el: Use lexical-binding. (junk-hist): Declare locally. * lisp/international/iso-cvt.el: * lisp/international/utf-7.el: * lisp/international/robin.el: * lisp/international/ogonek.el: * lisp/international/latin1-disp.el: * lisp/international/kkc.el: * lisp/international/kinsoku.el: * lisp/international/ja-dic-utl.el: Use lexical-binding. * lisp/international/ja-dic-cnv.el: Use lexical-binding. (skkdic-breakup-string): Remove unused var `kana-len`. * lisp/international/latexenc.el: Use lexical-binding. (tex-start-of-header): Declare. * lisp/international/mule-diag.el: Use lexical-binding. (list-character-sets): Remove unused var `pos`. (list-character-sets-1): Remove unused vars `tail` and `charset`. (list-charset-chars): Remove unused vars `chars` and `plane`. (describe-coding-system): Remove unused var `extra-spec`. (mule--print-opened): New var. (print-fontset): Bind it. (print-fontset-element): Use it instead of `print-opened`. * lisp/international/quail.el: Use lexical-binding. (quail-start-translation, quail-start-conversion): Remove unused var `generated-events`. (quail-help-insert-keymap-description): Use local dynbound var `the-keymap`. 2021-01-26 Lars Ingebrigtsen Make subdirs . nil in dir-locals in ~/ work * lisp/files.el (dir-locals-collect-variables): Compare directory names after expanding. This makes a (subdirs . nil) in ~/ work as expected (bug#17205). Test case: ((nil . ((a . "hallo") (subdirs . nil)))) in ~/ 2021-01-25 Juri Linkov Don't move point to the prompt in previous-line-or-history-element (bug#46033) * lisp/simple.el (previous-line-or-history-element): Avoid moving point to the prompt. 2021-01-25 Lars Ingebrigtsen Fontify special forms and macros the same * lisp/emacs-lisp/lisp-mode.el (lisp--el-match-keyword): Handle special forms and macros the same way (bug#43265). This makes things like (setq a '(if a b)) be fontified correctly (i.e., not fontified as a keyword). 2021-01-24 Lars Ingebrigtsen Rewrite lisp--el-funcall-position-p to be inverse of the -not function * lisp/emacs-lisp/lisp-mode.el (lisp--el-funcall-position-p): Rename and rewrite to return the inverse value. Non-inverted predicate functions are easier to reason about. (lisp--el-non-funcall-position-p): Make obsolete. 2021-01-24 Lars Ingebrigtsen Fix macro fontification in `condition-case' handler bodies * lisp/emacs-lisp/lisp-mode.el (lisp--el-non-funcall-position-p): Fontify macros in the BODY of HANDLERS in `condition-case' correctly (bug#43265). 2021-01-24 Lars Ingebrigtsen Tweak `condition-case' keyword highlights * lisp/emacs-lisp/lisp-mode.el (lisp--el-non-funcall-position-p): Tweak `condition-case' position check to skip the VAR form. 2021-01-24 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-01-24 Lars Ingebrigtsen Add some elisp-mode font lock tests 2021-01-24 Michael Albinus Make Tramp's insert-directory more robust * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Use `tramp-sh--quoting-style-options'. * test/lisp/net/tramp-tests.el (tramp--test-hpux-p, tramp--test-ksh-p): Remove superfluous nil. (tramp--test-sh-no-ls--dired-p): New defun. (tramp--test-special-characters): Use it. 2021-01-24 Eric Abrahamsen Fix insertion logic of newly subscribed Gnus groups * lisp/gnus/gnus-start.el (gnus-subscribe-newsgroup): This was a misunderstanding of the next/previous argument: no group should ever be inserted before "dummy.group". (gnus-group-change-level): Make it clearer that PREVIOUS can be nil. In fact none of this code would error on a nil value, but it _looks_ like nil is unexpected. 2021-01-24 Philipp Stephani Add more assertions to recently-added process test. * test/src/process-tests.el (process-tests/multiple-threads-waiting): Also check that 'thread-join' and 'thread-last-error' return the expected errors. 2021-01-24 Dmitry Gutov Erase the buffer only after fetching the new contents * lisp/progmodes/xref.el (xref-revert-buffer): Erase the buffer only after fetching the new contents (bug#46042). (cherry picked from commit 5821dee0949b2913c07970d6e4b8bb8e8a35f036) 2021-01-24 Basil L. Contovounesios Fix recently uncovered 'make check' failures For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2021-01/msg01111.html * test/lisp/autorevert-tests.el (auto-revert-test07-auto-revert-several-buffers): * test/lisp/emacs-lisp/seq-tests.el (test-seq-do-indexed) (test-seq-random-elt-take-all): Fix errors from using add-to-list on lexical variables. * test/lisp/emacs-lisp/cl-lib-tests.el (cl-lib-defstruct-record): Expect test to succeed when byte-compiled following change of 2021-01-23 'Fix missing file&line info in "Unknown defun property" warnings'. (cl-lib-tests--dummy-function): Remove; no longer needed. (old-struct): Silence byte-compiler warning about unused lexical variable. 2021-01-24 Jean Louis Add support for dired compressing .lz/.lzo files * lisp/dired-aux.el (dired-compress-files-alist): Add support for .lz/.lzo files (bug#44901). 2021-01-23 Eric Abrahamsen Properly initialize gnus-search-namazu-index-directory * lisp/gnus/gnus-search.el (gnus-search-namazu): We were missing the appropriate :initform on this slot definition (Bug#46047). 2021-01-23 Lars Ingebrigtsen Make (subdirs . nil) in .dir-locals.el work * lisp/files.el (dir-locals-collect-variables): Don't destructively modify the cached structure (bug#17205), because that means that (subdirs . nil) doesn't work. 2021-01-23 Stefan Monnier Fix missing file&line info in "Unknown defun property" warnings * lisp/emacs-lisp/byte-run.el (defmacro, defun): Use `macroexp--warn-and-return` rather than `message`. * lisp/emacs-lisp/macroexp.el: Fix `macroexp--compiling-p`. (macroexp--warn-and-return): Don't try and detect repetition on forms like `nil`. (macroexp-macroexpand): Don't forget to bind `macroexpand-all-environment`. 2021-01-23 Lars Ingebrigtsen Provide a (thing-at-point 'url) in eww buffers * lisp/net/eww.el (eww-mode): Allow (thing-at-point 'url) to work in eww buffers. (eww--url-at-point): New function. 2021-01-23 Lars Ingebrigtsen Add a mechanism for buffer-local thing-at-points * doc/lispref/text.texi (Buffer Contents): Document it. * lisp/thingatpt.el (thing-at-point-provider-alist): New variable. (thing-at-point): Use it. 2021-01-23 Paul Eggert Update from Gnulib by running admin/merge-gnulib 2021-01-23 Gabriel do Nascimento Ribeiro Use single post-command-hook on hl-line modes * lisp/hl-line.el (hl-line-mode, global-hl-line-mode): Ensure that 'maybe-unhighlight' is called after line is highlighted. (Bug#45946) (hl-line-unhighlight, global-hl-line-unhighlight): Set overlay variable to nil after overlay is deleted. 2021-01-23 Philipp Stephani Add a unit test testing interaction between threads and processes. This unit test tests that we can call 'accept-process-output' in parallel from multiple threads. * test/src/process-tests.el (process-tests/multiple-threads-waiting): New unit test. 2021-01-23 Philipp Stephani Avoid a few compilation warnings in Objective-C code. * src/nsfns.m (Fns_frame_restack): Remove unused variable 'flag'. * src/nsmenu.m (ns_update_menubar): Remove unused variable 'pool'. * src/nsterm.m (focus_view, hide_bell): Define conditionally. (ns_update_end): Define variable 'view' conditionally. (ns_redraw_scroll_bars): Don't define unused function. (copyRect): Don't perform arithmetic on 'void' pointers. (nswindow_orderedIndex_sort): Make static. 2021-01-23 Philipp Stephani * .clang-format: Fix base style. 2021-01-23 Philipp Stephani Add a FIXME comment to improve the SIGCHLD race condition handling. * src/process.c: Add FIXME comment describing how we could avoid the self-pipe on modern Unix-like systems. 2021-01-23 Philipp Stephani Mark both ends of self-pipe a nonblocking. While no deadlocks caused by the blocking write end have been reported yet, marking both ends nonblocking is consistent and also recommended in the GNU/Linux manpage of 'select'. * src/process.c (child_signal_init): Mark write end of self-pipe as nonblocking. 2021-01-23 Michael Albinus Fix failed autorevert test on emba * test/lisp/autorevert-tests.el (auto-revert-test05-global-notify): Check, whether buffer is alive. 2021-01-23 Michael Albinus * test/infra/gitlab-ci.yml (.job-template): Check also for test/lib-src/*.el. 2021-01-23 Eli Zaretskii Clean up the recently added self-pipe mechanism for WINDOWSNT * src/process.c (child_signal_init, child_signal_read) (child_signal_notify): #ifdef away on WINDOWSNT. 2021-01-23 Eli Zaretskii Fix last change * doc/lispref/text.texi (Undo): Add a cross-reference to the description of 'undo-amalgamate-change-group'. (Atomic Changes): Expand and improve the description of 'undo-amalgamate-change-group'. (Bug#42303) 2021-01-23 Lars Ingebrigtsen Mention undo-amalgamate-change-group in the lispref manual * doc/lispref/text.texi (Atomic Changes): Mention undo-amalgamate-change-group (bug#42303). (cherry picked from commit ba25a82855a2c03c25fec83f3056c166b692e94f) 2021-01-23 Dmitry Gutov Erase the buffer only after fetching the new contents * lisp/progmodes/xref.el (xref-revert-buffer): Erase the buffer only after fetching the new contents (bug#46042). 2021-01-22 Stefan Monnier * lisp/simple.el (newline-and-indent): Disable `electric-indent-mode` With `electric-indent-mode` enabled, `newline-and-indent` ends up indenting 3 times: once for the original line and twice on the new line. `reindent-then-newline-and-indent` is even worse, indenting twice both lines. None of those commands should be affected by `electric-indent-mode` since they even explicitly say in their name when and how they do indentation. (reindent-then-newline-and-indent): Temporarily disable `electric-indent-mode` as well. 2021-01-22 Lars Ingebrigtsen Mention undo-amalgamate-change-group in the lispref manual * doc/lispref/text.texi (Atomic Changes): Mention undo-amalgamate-change-group (bug#42303). 2021-01-22 Paul Eggert Work around __has_attribute bug in clang 3.4 * src/conf_post.h (HAS_ATTRIBUTE): * src/emacs-module.h.in (EMACS_ATTRIBUTE_NONNULL): Port to clang 3.4 and earlier. 2021-01-22 Paul Eggert Update from Gnulib by running admin/merge-gnulib 2021-01-22 Paul Eggert Prepare for update from Gnulib * configure.ac: Also create lib/malloc and lib/deps/malloc if the dynarray module is in use, as Gnulib regex will start needing it due to recent glibc changes. 2021-01-22 Lars Ingebrigtsen Fix up previous mh-speed.el ignored variable change * lisp/mh-e/mh-speed.el (mh-speed-toggle, mh-speed-view): Mark the ignored parameter with _ instead of using the Common Lispish (declare (ignore args)) (which Emacs Lisp doesn't really support), except by accident. 2021-01-22 Keith David Bershatsky Add more isearch-related bindings to ns-win.el * lisp/term/ns-win.el (minibuffer-local-isearch-map): Add more bindings to mirror bindings in isearch.el (bug#15667). 2021-01-22 Lars Ingebrigtsen Make nnml handle invalid non-ASCII headers more consistently * lisp/gnus/nnml.el (nnml--encode-headers): New function to RFC2047-encode invalid Subject/From headers (bug#45925). This will make them be displayed more consistently in the Summary buffer (but still "wrong" sometimes, since there's not that much we can guess at at this stage, charset wise). (nnml-parse-head): Use it. 2021-01-22 Michael Albinus Use RemoteCommand option for Tramp's sshx and scpx methods * doc/misc/tramp.texi (Inline methods) : (External methods) : Adapt call sequence. (Remote shell setup): Mention, that sshx and scpx overwrite RemoteCommand. (Remote processes): Restriction: direct asynchronous processes cannot be used when RemoteCommand is in use. `tramp-remote-process-environment' is not ignored any longer. * lisp/net/tramp-sh.el (tramp-methods) : Handle login shell via RemoteCommand. Remove `tramp-direct-async' parameter. (tramp-maybe-open-connection): Add "-i" to login. * lisp/net/tramp-smb.el (tramp-smb-errors): Add "NT_STATUS_NOT_SUPPORTED". (tramp-smb-handle-insert-directory): Fix point moving error. * test/lisp/net/tramp-tests.el (tramp-test34-explicit-shell-file-name): Use `get-buffer-process' where appropriate. 2021-01-22 Mattias Engdegård Calc: use big brackets around function arguments * lisp/calc/calccomp.el (math-compose-expr): Use big brackets around arguments in Big mode, so that expressions like sin(a/b) look a bit better. 2021-01-22 Eli Zaretskii Avoid sending systemd shutdown notifications if non-daemon * src/emacs.c (Fkill_emacs): Send the shutdown notification only in daemon mode. (Bug#46022) 2021-01-22 Eli Zaretskii Fix last change for DOS_NT systems * src/term.c (tty_draw_row_with_mouse_face) (tty_write_glyphs_with_face): Don't define on MSDOS and WINDOWSNT, as those have their own implementations of that. 2021-01-22 João Távora Enable TTY mouse-face support when built without GPM support * src/term.c (tty_write_glyphs_with_face): Move definition out of ifdef block. * src/xdisp.c (draw_row_with_mouse_face): Now called unconditionally on all platforms. 2021-01-22 Glenn Morris * lisp/textmodes/remember.el (remember-text-format-function): Fix type. 2021-01-22 Eli Zaretskii * src/cmds.c (Fforward_line): Doc fix. (Bug#46027) 2021-01-22 Eli Zaretskii Improve documentation of sendmail.el defcustom's * lisp/mail/sendmail.el (mail-archive-file-name) (mail-default-reply-to, mail-self-blind, mail-default-headers): Say in the doc string that 'message-default-mail-headers' shall be customized when using 'message-mode' for email composition. (Bug#46029) 2021-01-21 Ted Zlatanov * test/infra/gitlab-ci.yml: Copy newer files to image to build less often. 2021-01-21 Stefan Monnier Fix spurious "Lexical argument shadows the dynamic variable" due to inlining Before this patch doing: rm lisp/calendar/calendar.elc make lisp/calendar/cal-hebrew.elc would spew out lots of spurious such warnings about a `date` argument, pointing to code which has no `date` argument in sight. This was because that code had calls to inlinable functions (taking a `date` argument) defined in `calendar.el`, and while `date` is a normal lexical var at the site of those functions' definitions, it was declared as dynbound at the call site. * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand): Don't impose our local context onto the inlined function. * test/lisp/emacs-lisp/bytecomp-tests.el: Add matching test. 2021-01-21 Stefan Kangas * lisp/net/webjump.el: Add Maintainer: emacs-devel. Ref: https://lists.gnu.org/r/emacs-devel/2021-01/msg01019.html 2021-01-21 Lars Ingebrigtsen Don't have type-break-mode signal errors on corrupted files * lisp/type-break.el (type-break-get-previous-time): (type-break-get-previous-count): Signal a warning instead of an error (bug#38246). type-break will still continue to work even if the database can't be loaded after a restart, but this allows Emacs to be started. 2021-01-21 Lars Ingebrigtsen Fix message.el build warning from previous change * lisp/gnus/message.el (subr-x): Fix build warning from previous commit. 2021-01-21 Ted Zlatanov * test/infra/gitlab-ci.yml: Revert to always building. 2021-01-21 Lars Ingebrigtsen Add dired support for compressing .pax files * lisp/dired-aux.el (dired-compress-files-alist): Add support for compressing .pax files (bug#40135). 2021-01-21 Lars Ingebrigtsen Tweak previous message-forward-included-mime-headers change * lisp/gnus/message.el (message-forward-included-mime-headers): Should probably not include Content-Transfer-Encoding, because we will re-encode anyway. 2021-01-21 Lars Ingebrigtsen Make Message respect header removal instructions more * doc/misc/message.texi (Forwarding): Document it. * lisp/gnus/message.el (message-forward-ignored-headers): Improve documentation. (message-forward-included-headers): Ditto. (message-forward-included-mime-headers): New user option. (message-remove-ignored-headers): Use it to preserve the necessary MIME headers. (message-forward-make-body): Remove headers when forwarding as MIME, too. 2021-01-21 Eli Zaretskii A better fix for 'kill-visual-line' * lisp/simple.el (kill-visual-line): Use the 6th element of the return value of 'posn-at-point', which provides the coordinates in terms or row and column, and is thus more reliable for deciding whether we moved to the next screen line. (Bug#45837) 2021-01-21 Lars Ingebrigtsen Fix thinko in previous footnote.el change * lisp/mail/footnote.el (footnote--regenerate-alist): Don't error out when there's no footnotes. 2021-01-21 Stefan Monnier Use `lexical-binding` in all the cal-*.el files * lisp/calendar/cal-bahai.el: Use lexical-binding. (calendar-bahai-date-string): Use `calendar-dlet*`. * lisp/calendar/cal-china.el: Use lexical-binding. (calendar-chinese-zodiac-sign-on-or-after) (calendar-chinese-new-moon-on-or-after): Declare `year`. (calendar-chinese-from-absolute-for-diary) (calendar-chinese-to-absolute-for-diary) (calendar-chinese-mark-date-pattern): Avoid dynbound var `date` as function argument. * lisp/calendar/cal-coptic.el: Use lexical-binding. (calendar-coptic-date-string): Use `calendar-dlet*`. (calendar-ethiopic-to-absolute, calendar-ethiopic-from-absolute) (calendar-ethiopic-date-string, calendar-ethiopic-goto-date): Avoid dynbound var `date` as function argument. * lisp/calendar/cal-french.el: Use lexical-binding. * lisp/calendar/cal-hebrew.el: Use lexical-binding. (holiday-hebrew-hanukkah): Don't use the third form in `dotimes`. * lisp/calendar/cal-islam.el: Use lexical-binding. (calendar-islamic-to-absolute): Comment out unused vars `month` and `day`. * lisp/calendar/cal-move.el: * lisp/calendar/cal-mayan.el: * lisp/calendar/cal-iso.el: Use lexical-binding. * lisp/calendar/cal-persia.el: Use lexical-binding. (calendar-persian-date-string): Use `calendar-dlet*`. * lisp/calendar/cal-html.el: Use lexical-binding. (cal-html-insert-minical): Comment out unused var `date`. (cal-html-cursor-month, cal-html-cursor-year): Mark `event` arg as unused. * lisp/calendar/cal-menu.el: Use lexical-binding. (diary-list-include-blanks): Declare var. * lisp/calendar/cal-x.el: Use lexical-binding. * lisp/calendar/cal-tex.el: Use lexical-binding. (diary-list-include-blanks): Declare var. (cal-tex-insert-days, cal-tex-cursor-week-iso, cal-tex-week-hours) (cal-tex-weekly-common, cal-tex-cursor-filofax-2week) (cal-tex-cursor-filofax-daily, cal-tex-daily-page): Declare `date` as dynbound for the benefit of `cal-tex-daily-string`. 2021-01-21 Stefan Monnier Use `calendar-read-sexp` instead of the now obsolete `calendar-read` * lisp/calendar/diary-lib.el (diary-insert-cyclic-entry): * lisp/calendar/cal-persia.el (calendar-persian-read-date): * lisp/calendar/cal-move.el (calendar-goto-day-of-year): * lisp/calendar/cal-mayan.el (calendar-mayan-read-haab-date) (calendar-mayan-read-tzolkin-date): * lisp/calendar/cal-julian.el (calendar-julian-goto-date) (calendar-astro-goto-day-number): * lisp/calendar/cal-iso.el (calendar-iso-read-date): * lisp/calendar/cal-islam.el (calendar-islamic-read-date): * lisp/calendar/cal-hebrew.el (calendar-hebrew-read-date) (calendar-hebrew-list-yahrzeits): * lisp/calendar/cal-french.el (calendar-french-goto-date): * lisp/calendar/cal-coptic.el (calendar-coptic-read-date): * lisp/calendar/cal-china.el (calendar-chinese-goto-date): * lisp/calendar/cal-bahai.el (calendar-bahai-read-date): * lisp/calendar/holidays.el (list-holidays): Use `calendar-read-sexp`. 2021-01-21 Stefan Monnier * lisp/calendar/cal-french.el (calendar-french-accents-p): Obsolete function Always assume accented letters can be used (calendar-french-month-name-array) (calendar-french-special-days-array): Use the accented names. (calendar-french-multibyte-month-name-array) (calendar-french-multibyte-special-days-array): Make those vars obsolete aliases. (calendar-french-month-name-array, calendar-french-day-name-array) (calendar-french-special-days-array): Mark functions as obsolete. (calendar-french-date-string, calendar-french-goto-date): Always use the text with accents. 2021-01-21 Stefan Monnier * lisp/calendar/calendar.el (calendar-read-sexp): New function (calendar-read): Mark as obsolete. (calendar-read-date): Use it. Add `default-date` argument. Provide defaults for the month and day (fixes bug#32105). 2021-01-21 Stefan Monnier * lisp/emacs-lisp/bytecomp.el (byte-compile--declare-var): Fix warning Make sure the "declared after first use" is under the control of the `lexical` option. 2021-01-20 Lars Ingebrigtsen Fix recent remember-diary-extract-entries change * lisp/textmodes/remember.el (remember-diary-extract-entries): Use `remember-diary-file' over `diary-file'. 2021-01-20 Lars Ingebrigtsen checkdoc-spellcheck-documentation-flag doc string improvement * lisp/emacs-lisp/checkdoc.el (checkdoc-spellcheck-documentation-flag): Mention `ispell-kill-ispell' (bug#6221). 2021-01-20 Lars Ingebrigtsen Revert "Always send Lisp words to checkdoc-ispell-init" This reverts commit 93141d581330d94e7eec9f114def2bec15f87866. This would make checkdoc words be used in other flyspell buffers. 2021-01-20 Lars Ingebrigtsen Always send Lisp words to checkdoc-ispell-init * lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-init): Always send the Lisp words to the process (bug#6221). This allows an existing ispell process to be correctly initialised. 2021-01-20 Juri Linkov Move the ‘declare’ form before the interactive spec in 10 functions. * lisp/emacs-lisp/package.el (package-menu-hide-package): * lisp/font-lock.el (font-lock-debug-fontify): * lisp/image.el (image-jpeg-p): * lisp/mail/flow-fill.el (fill-flowed-test): * lisp/mh-e/mh-speed.el (mh-speed-toggle, mh-speed-view): * lisp/progmodes/project.el (project-async-shell-command) (project-shell-command, project-compile): * lisp/progmodes/sh-script.el (sh-assignment): Fix special forms to follow in this order: docstring, declare, interactive. 2021-01-20 Stefan Monnier * lisp/emacs-lisp/subr-x.el (named-let): New macro 2021-01-20 Stefan Monnier * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Add 2 new opts This introduces two new optimizations. They're designed for code like (while (let (...) (if ... (progn blabla t) (progn blabla nil))) ...) and they allow the elimination of the test internal to `while` since we can immediately know when we return `t` or `nil` what the result of the test will be. `cl-labels` tends to generate this kind of code when it applies the tail-call optimization. 2021-01-20 Stefan Monnier * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Move some opts. This moves two optimizations from the final pass to the main loop. Both may enable further optimizations (and the second can be applied repeatedly but "from the end", so the loop in the final pass only gets to apply it once). 2021-01-20 Stefan Monnier * lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Re-indent 2021-01-20 Lars Ingebrigtsen Fix footnote-mode problem when reopening an old file * lisp/mail/footnote.el (footnote--regenerate-alist): New function (bug#7258). (footnote-mode): Use it to restore footnotes after opening an old file with footnotes. 2021-01-20 Lars Ingebrigtsen cua-toggle-global-mark doc string clarification * lisp/emulation/cua-gmrk.el (cua-toggle-global-mark): Clarify that also inserted characters are affected (bug#8083). 2021-01-20 Michael Albinus Fix environment handling in tramp-handle-make-process * lisp/net/tramp.el (tramp-test-message): Add `tramp-suppress-trace' property. (tramp-handle-make-process): Handle also 'tramp-remote-process-environment'. 2021-01-20 Gabriel do Nascimento Ribeiro Respect remember-save-after-remembering on remember-diary-extract-entries * lisp/textmodes/remember.el (remember-diary-extract-entries): Save automatically if `remember-save-after-remembering' is non-nil (bug#45811). 2021-01-20 Gabriel do Nascimento Ribeiro Add option remember-text-format-function * lisp/textmodes/remember.el (remember-text-format-function): New variable (bug#45809). (remember-append-to-file): Use it. 2021-01-20 Gabriel do Nascimento Ribeiro Add option remember-diary-regexp * lisp/textmodes/remember.el (remember-diary-extract-entries): Use it (bug#45808). (remember-diary-regexp): New variable. 2021-01-20 Lars Ingebrigtsen Tweak tty-find-type to allow TERM=screen.xterm * lisp/faces.el (tty-find-type): Allow TERM=screen.xterm to find term/screen.el (bug#45824). 2021-01-20 Lars Ingebrigtsen Make symbol-at-point return nil if there's no symbols in the buffer * lisp/thingatpt.el (thing-at-point--beginning-of-symbol): Special op that errors out when there's no symbols in the buffer before point (bug#14234). (symbol): Use it. 2021-01-20 Lars Ingebrigtsen Add tests for symbol-at-point (bug#14234) 2021-01-20 Stefan Monnier Don't let `maybe_quit` prevent resetting `consing_until_gc` (bug#43389) * src/alloc.c (garbage_collect): Postpone `unblock_input` a bit. * src/window.c (window_parameter): Avoid `maybe_quit`. 2021-01-20 Fabrice Bauzac (tiny change) Sort Ibuffer filename/process column as displayed * lisp/ibuf-ext.el (ibuffer-do-sort-by-filename/process): Use the same function for sorting and for displaying the filename/process (Bug#45800). 2021-01-20 Lars Ingebrigtsen Revert "Make `symbol-at-point' work in buffers with no symbols" This reverts commit 40a5df81434ce02fba01779256b50976fb74da4f. This fails when a point is after a symbol, and there's nothing else in the buffer. 2021-01-20 Lars Ingebrigtsen Don't add Content-Type when ceasing an rmail edit * lisp/mail/rmailedit.el (rmail-cease-edit): Take an optional parameter to avoid altering the message (bug#13327). (rmail-abort-edit): Use it. 2021-01-20 Lars Ingebrigtsen Make `symbol-at-point' work in buffers with no symbols * lisp/thingatpt.el (thing-at-point--end-of-symbol): New function (bug#14234). (symbol): Use it instead of `forward-symbol', because the latter will move to the end of the buffer even if there is no symbol there. Instead error out like `forward-sexp' and friends. 2021-01-20 Lars Ingebrigtsen Fix up example in the Modifying Menus node in the lispref manual * doc/lispref/keymaps.texi (Modifying Menus): Make the second example more regular (bug#14257). 2021-01-20 Lars Ingebrigtsen Mention that the mouse will switch on transient-mark-mode in manual * doc/lispref/markers.texi (The Mark): Mention that the mouse will enable the `(only)' transient mark mode (bug#14945). 2021-01-20 Lars Ingebrigtsen Make sh-mode use `auto-mode-interpreter-regexp' * lisp/progmodes/sh-script.el (sh-mode): Use `auto-mode-interpreter-regexp' instead of open-coding the value (bug#17158). 2021-01-20 Nick Drozd test/lisp/replace-tests.el: Add nested match group test * test/lisp/replace-tests.el (replace-regexp-bug45973): Add test (bug#45973). 2021-01-19 Andrea Corallo Do not add unnecessary arg constraints (bug#45812 bug#45705 bug#45751). These have the effect of bloating the IR for no effect killing compile time. The typical cases for that are extremely long backuoted lists. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-t): New var. * lisp/emacs-lisp/comp.el (comp-add-call-cstr): No need to add arg call constraints if this is t. 2021-01-19 Philipp Stephani Make child signal read pipe non-blocking. Otherwise Emacs might hang when trying to read the pipe twice in a row. This is consistent with the other file descriptors we pass to 'pselect'. * src/process.c (child_signal_init): Make read end of pipe non-blocking. 2021-01-19 Dmitry Gutov Declare some project commands interactive-only * lisp/progmodes/project.el (project-async-shell-command) (project-shell-command, project-compile): Declare interactive-only (bug#45765). 2021-01-19 Juri Linkov * lisp/help-fns.el: Move defvar keymap-name-history closer to where it's used. 2021-01-19 Juri Linkov Better check for nil in search-/query-replace-highlight-submatches (bug#45973) * lisp/isearch.el (isearch-highlight): * lisp/replace.el (replace-highlight): Use integer-or-marker-p to check matches. 2021-01-19 Ted Zlatanov * test/infra/gitlab-ci.yml: Bootstrap only from web, schedule, or C-related. 2021-01-19 Mattias Engdegård Calc: use Unicode brackets in Big mode when available (bug#45917) * lisp/calc/calccomp.el (math--big-bracket-alist) (math--big-bracket, math--comp-bracket, math--comp-round-bracket): New. (math-compose-expr, math-compose-log, math-compose-log10) (math-compose-choose, math-compose-integ, math-compose-sum) (math-compose-prod): Use big brackets when available. 2021-01-19 Stefan Monnier * etc/NEWS.19: Add entry for `indent-line-to` * lisp/version.el (emacs-major-version, emacs-minor-version): Remove redundant version info already displayed by `C-h o`. 2021-01-19 Michael Albinus Some Tramp fixes, resulting from test campaign * doc/misc/tramp.texi (Remote shell setup): Clarifications for `tramp-actions-before-shell' example. * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Do not expand FILENAME explicitly. (tramp-open-shell): Add "-i" for interactive shells. * test/lisp/net/tramp-tests.el (tramp-test07-file-exists-p) (tramp-test14-delete-directory) (tramp-test43-asynchronous-requests): Skip for MS windows. 2021-01-19 Stefan Monnier * lisp/startup.el: Fix bug#45857, bug#30994, and bug#45913. (command-line): Don't re-evaluate the `custom-delayed-init-variables` a second time after reading the `early-init.el` file. (x-apply-session-resources): Set `blink-cursor-mode` rather than `no-blinking-cursor`. * lisp/frame.el (blink-cursor-start): Turn `blink-cursor-mode` off if `blink-cursor-mode` was set to nil. (blink-cursor-mode): Default to it being enabled regardless of `window-system`. * lisp/custom.el (custom-initialize-delay): Fox docstring now that autoload.el preserves the `:initialize` info. 2021-01-19 Lars Ingebrigtsen Only show "2x entries" i vc log buffers if needed * lisp/vc/vc.el (vc-print-log-setup-buttons): Only show the "more" buttons if we got more or equal to the number of entries we asked for (bug#18959). 2021-01-19 Mattias Engdegård Parse square root sign in embedded Calc mode * lisp/calc/calc-lang.el (math-read-big-rec): Recognise √ since it may be used in Big mode. 2021-01-19 Mattias Engdegård Missing dynamic variable declarations in Calc * lisp/calc/calc-embed.el (calc-embedded-set-modes): Prevent the-language and the-display-just from being lexically bound here, because they may be assigned using 'set'. 2021-01-19 Lars Ingebrigtsen Fix slow abbrev expansion in `message-mode' in some circumstances * lisp/gnus/message.el (message--syntax-propertize): Use the correct Message mode syntax table to avoid having `message-cite-prefix-regexp' trigger very heavy backtracing when called from an abbrev context (which defines "_" as a word constituent) (bug#45944). 2021-01-19 Lars Ingebrigtsen Don't stop Gnus startup on password failures * lisp/gnus/nntp.el (nntp-send-authinfo): Don't signal an `nntp-authinfo-rejected' error, because that will stop Gnus startup (bug#45855). Instead signal an error that will be caught higher up. 2021-01-19 Michael Albinus Handle also test/lib-src directory * test/Makefile.in (SUBDIRS): Add lib-src. * test/README: Add predefined selectors. * test/file-organization.org: Mention test/lib-src directory. 2021-01-19 Mauro Aranda Fix list-colors-print handling of callback arg * lisp/facemenu.el (list-colors-print): Keeping backward-compatibility, don't fail when passed a closure object as CALLBACK. (Bug#45831) 2021-01-19 Mauro Aranda Add test for the widget-color-match function (Bug#45829) * test/lisp/wid-edit-tests.el (widget-test-color-match): New test. 2021-01-19 Drew Adams Tweaks to the color widget (Bug#45829) * lisp/wid-edit.el (widget-color-match, widget-color-validate): New functions. (color): Use the new functions. Base size on longest defined color name, defaulting to the longest RGB hex string. 2021-01-19 Protesilaos Stavrou Add 'perl-non-scalar-variable' face to perl-mode * etc/NEWS: Document the new face (bug#45840). * lisp/progmodes/perl-mode.el (perl-non-scalar-variable): Define new face. (perl-font-lock-keywords-2): Apply 'perl-non-scalar-variable' face. 2021-01-19 James N. V. Cash (tiny change) Define keymap-name-history * lisp/help-fns.el (keymap-name-history): Define the history variable (bug#45879). This avoids problems in other completing systems like Helm. 2021-01-19 Lars Ingebrigtsen Actually make the calc trail window dedicated * lisp/calc/calc.el (calc-trail-display): Actually make the trail window dedicated (bug#45928). 2021-01-19 Lars Ingebrigtsen Don't infloop in comint-redirect-results-list-from-process * lisp/comint.el (comint-redirect-results-list-from-process): Ensure forward progress (bug#45950). 2021-01-19 Lucas Werkmeister Mark the various nxml flags as safa * lisp/nxml/nxml-mode.el (nxml-char-ref-display-glyph-flag) (nxml-sexp-element-flag, nxml-slash-auto-complete-flag) (nxml-child-indent, nxml-attribute-indent) (nxml-bind-meta-tab-to-complete-flag) (nxml-prefer-utf-16-to-utf-8-flag) (nxml-prefer-utf-16-little-to-big-endian-flag) (nxml-default-buffer-file-coding-system) (nxml-auto-insert-xml-declaration-flag): Add :safe to allow easier cusomization (bug#45969). 2021-01-19 Lars Ingebrigtsen Revert "* .gitignore: add src/fingerprint.c" This reverts commit 2644353cbc65927a6a0a76d68e00d017771cdd03. The src/fingerprint.c file is no longer generated, and the spelling of the obsolete function was correct. 2021-01-19 Dmitry Gutov Make sure the new window is not too tall * lisp/progmodes/xref.el (xref-show-definitions-buffer-at-bottom): Make sure the new window is not too tall (bug#45945). 2021-01-18 Stephen Gildea time-stamp-tests now pass in more locales Update time-stamp-tests to use format-time-string to generate the date words (month, day of week, AM/PM) instead of hard-coding English. Now the tests pass in locales other than "C" and US English. Expand the test coverage of modifier characters. 2021-01-18 Eric Abrahamsen Allow gnus-retrieve-headers to return headers directly Previously, all Gnus backends returned header information by writing nov lines into the nntp-server-buffer, which was later parsed. This commit allows the backends to return their header information as a list of already-parsed headers, though so far none of the backends actually do that. The agent, cache, cloud etc. now operate on parsed headers rather than nov text, ie. they use gnus-fetch-headers instead of gnus-retrieve-headers. * lisp/gnus/gnus-sum.el (gnus-fetch-headers): Handle the case in which gnus-retrieve-headers returns headers directly. * lisp/gnus/nnvirtual.el (nnvirtual-retrieve-headers): Use gnus-fetch-headers rather than gnus-retrieve-headers to get headers, meaning we're operating on already-parsed headers. (nnvirtual-convert-headers): Remove now-unnecessary function. (nnvirtual-update-xref-header): Rewrite to operate on parsed header. * lisp/gnus/gnus-cloud.el (gnus-cloud-available-chunks): Use gnus-fetch-headers instead of gnus-retrieve-headers. * lisp/gnus/gnus-cache.el (gnus-cache-retrieve-headers): Use gnus-fetch-headers. (gnus-cache-braid-nov, gnus-cache-braid-heads): Delete unnecessary functions -- we now do this work on a list of parsed headers. * lisp/gnus/gnus-agent.el (gnus-agent-retrieve-headers): Use gnus-fetch-headers. (gnus-agent-braid-nov): Remove unnecessary function. (gnus-agent-fetch-headers): Use gnus-fetch-headers. 2021-01-18 Basil L. Contovounesios Fix ibuffer-mark-by-file-name-regexp abbreviations * lisp/ibuffer.el (ibuffer--abbreviate-file-name): New function. (filename): Use it. * lisp/ibuf-ext.el (ibuffer-mark-by-file-name-regexp): Prefer read-regexp over read-string for reading regexps. Determine file name using ibuffer-buffer-file-name for consistency. Abbreviate file name using ibuffer-directory-abbrev-alist (bug#18859). 2021-01-18 Basil L. Contovounesios Use format-prompt in read-regexp. * lisp/replace.el (read-regexp): Use format-prompt (bug#12443). 2021-01-18 Eric Ludlam * lisp/cedet/ede/proj.el: Enable Project files to load (ede-proj-target-makefile): Give more precise type for its `rules` slot. * lisp/cedet/ede/base.el (ede-target-list): Don't define. (ede-project): Use `list-of` instead. 2021-01-18 Eli Zaretskii Fix recent changes for Cham script * lisp/language/cham.el ("Cham"): Fix sample-text. * lisp/leim/quail/cham.el: Really install this new file. 2021-01-18 Aaron Jensen * test/src/xdisp-tests.el: Fix tests to work in batch mode (xdisp-tests--window-text-pixel-size) (xdisp-tests--window-text-pixel-size-leading-space) (xdisp-tests--window-text-pixel-size-trailing-space): Fix tests. (Bug#45748) 2021-01-18 Lars Ingebrigtsen Don't double up keys in epa--list-keys * lisp/epa.el (epa--list-keys): Delete the list keys before redisplaying (bug#44134). 2021-01-18 Stephen Berman Fix problem with `epa-list-keys' bugging out * lisp/epa.el (epa--list-keys): Partially revert 517285f7cae which removed the wrong property (bug#44134). 2021-01-18 Mattias Engdegård Avoid macOS NSFilenamesPboardType warning (bug#33035) * src/nsterm.h (NS_USE_NSPasteboardTypeFileURL): New #define. * src/nsterm.m (ns_term_init): ([EmacsView performDragOperation:]): * src/nsselect.m (ns_string_to_symbol): (nxatoms_of_nsselect): NSFilenamesPboardType was deprecated in macOS 10.14; use NSPasteboardTypeFileURL instead when available. 2021-01-18 Philipp Stephani Replace Unix commands with Emacs in process tests. That way, the tests only depend on Emacs, and not on utilities that might not be available during test time. * test/src/process-tests.el (process-tests--eval) (process-tests--emacs-command, process-tests--emacs-binary) (process-tests--dump-file) (process-tests--usable-file-for-reinvoke): New helper functions. (process-tests/sentinel-called) (process-tests/sentinel-with-multiple-processes): Use them. 2021-01-17 Andrea Corallo Run dead code removal always before fwprop, optim bootstrap time (~20% less) * lisp/emacs-lisp/comp.el (comp-passes): Remove `comp-dead-code'. (comp-fwprop): Call `comp-dead-code'. (comp-dead-code): Remove fake arg. 2021-01-17 Andrea Corallo Introduce `comp-fwprop-max-insns-scan' as heuristic threshold * lisp/emacs-lisp/comp.el (comp-fwprop-max-insns-scan): New constant. (comp-fwprop*): Give-up when `comp-fwprop-max-insns-scan' is exceeded. 2021-01-17 Andrea Corallo Make `comp-enable-subr-trampolines' effective for advices (bug#45854) * src/comp.c: Copyright update. (syms_of_comp): Update `comp-enable-subr-trampolines' doc. * lisp/emacs-lisp/comp.el (comp-subr-trampoline-install): Check for `comp-enable-subr-trampolines'. 2021-01-17 Eli Zaretskii Improve support for the Cham script and languages * etc/NEWS: Announce the new 'cham' input method. * etc/HELLO: Fix the order of letters in the Cham greeting. Remove redundant newlines (reported by Ulrich Mueller ). * lisp/language/cham.el ("Cham"): Add input-method entry. * lisp/leim/quail/cham.el: New file. * lisp/international/fontset.el (setup-default-fontset): Add an entry for Cham. 2021-01-17 Ted Zlatanov * test/infra/gitlab-ci.yml: Merge test-template into job-template. 2021-01-17 Philipp Stephani Ensure that sentinels are called during 'accept-process-output'. When we're trying to notify a process about a status change, we need to ignore the SIGCHLD pipe temporarily, otherwise the code would likely not run into the timeout case that's necessary for a status change to happen. * src/process.c (wait_reading_process_output): Ignore the SIGCHLD pipe when notifying a process about a status change. * test/src/process-tests.el (process-tests/sentinel-called) (process-tests/sentinel-with-multiple-processes): New unit tests. 2021-01-17 Michael Albinus Add new targets to test/Makefile * test/Makefile.in (SUBDIRS): New variable. (subdir_template): New template. (top) Create new check- targets. * test/README: Document them. * test/infra/gitlab-ci.yml (test-lisp-net-inotify): Rename. 2021-01-17 Philipp Stephani Add a bit more clarification around standard error processes. * doc/lispref/processes.texi (Asynchronous Processes): Document how to obtain the standard error process that Emacs creates. (Accepting Output): Add an example how to wait for standard error in case Emacs has created a standard error process. 2021-01-16 Stefan Monnier * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Use pcase 2021-01-16 Stefan Monnier * lisp/emacs-lisp/pcase.el: Add support for `not` to `pred` (pcase--split-pred, pcase--funcall): Adjust for `not`. (pcase--get-macroexpander): New function. (pcase--edebug-match-macro, pcase--make-docstring) (pcase--macroexpand): Use it. * lisp/emacs-lisp/radix-tree.el (radix-tree-leaf): Use it! * doc/lispref/control.texi (The @code{pcase} macro): Document it. * lisp/emacs-lisp/ert.el (ert--explain-equal-rec): Remove redundant test. 2021-01-16 Philipp Stephani Don't crash if no asynchronous process has been created yet. * src/process.c (wait_reading_process_output): Allow child_signal_read_fd < 0. 2021-01-16 Philipp Stephani Fix deadlock when receiving SIGCHLD during 'pselect'. If we receive and handle a SIGCHLD signal for a process while waiting for that process, 'pselect' might never return. Instead, we have to explicitly 'pselect' that the process status has changed. We do this by writing to a pipe in the SIGCHLD handler and having 'wait_reading_process_output' select on it. * src/process.c (child_signal_init): New helper function to create a pipe for SIGCHLD notifications. (child_signal_read, child_signal_notify): New helper functions to read from/write to the child signal pipe. (create_process): Initialize the child signal pipe on first use. (handle_child_signal): Notify waiters that a process status has changed. (wait_reading_process_output): Make sure that we also catch SIGCHLD/process status changes. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-process): Remove workaround, which is no longer needed. 2021-01-16 Eli Zaretskii Fix Rmail summary for more than 99,999 messages * lisp/mail/rmailsum.el (rmail-summary-font-lock-keywords): Don't assume there will be less than 100,000 messages in an mbox file. (Bug#45912) 2021-01-16 Eli Zaretskii Fix two tests * test/lisp/progmodes/elisp-mode-tests.el (xref-elisp-test-run): Make sure file names can be compared as strings, by running them through 'file-truename'. Reported by Vin Shelton . * test/lisp/emacs-lisp/bytecomp-tests.el ("warn-obsolete-hook.el") ("warn-obsolete-variable.el"): Use [^z-a] to match a newline as well. Reported by Vin Shelton . 2021-01-16 Ted Zlatanov test/infra/gitlab-ci.yml: run only for tags and some branches 2021-01-16 Eli Zaretskii Improve support for Cham script * lisp/language/cham.el ("Cham"): Expand the entry. * etc/HELLO: Add entry for Cham. 2021-01-16 Ted Zlatanov EMBA container build improvements for Emacs build testing. * test/infra/gitlab-ci.yml: Moved from .gitlab-ci.yml. Use the EMBA container registry with a different login token storage file for each commit. Split test stages into prep, build, fast tests, normal tests, platform tests, and slow (everything) and use templates where possible. * .gitlab-ci.yml: Include test/infra/gitlab-ci.yml and move all content there. 2021-01-16 Eli Zaretskii Fix last change * src/frame.c (Fset_mouse_position, Fset_mouse_pixel_position): Don't compile the FRAME_MSDOS_P case on platforms other than MSDOS, as that will never happen there. 2021-01-16 Jared Finder Make mouse-related calls be more consistent on all frame types * src/frame.c (Fset_mouse_position, Fset_mouse_pixel_position): Call Fselect_frame and appropriate mouse_moveto function on all non-GUI frame types, independent of #ifdef's. * src/term.c (init_tty): Initialize mouse_face_window for all non-GUI frame types. (term_mouse_moveto) [HAVE_GPM]: Make available even if HAVE_WINDOW_SYSTEM is defined. * src/xdisp.c (try_window_id): Call gui_clear_window_mouse_face in all cases. 2021-01-16 Philip Brown (tiny change) * Set `backtrace-line-length' in async worker processes Philip Brown * lisp/emacs-lisp/comp.el (comp-run-async-workers): Set backtrace-line-length in async worker processes. 2021-01-16 Andrea Corallo Merge remote-tracking branch 'savannah/master' into native-comp 2021-01-16 Stefan Monnier * lisp/frame.el Don't activate `blink-cursor-idle-timer` needlessly. (blink-cursor-mode): Use `blink-cursor-check` rather than `blink-cursor--start-idle-timer` so we check for the presence of a frame where the cursor can be blinked before activating the idle timer. 2021-01-16 Kévin Le Gouguec Change default-directory before prompting in project-compile This causes command completion to work from the project root, letting users complete top-level folders, make targets, etc (bug#45765). * lisp/progmodes/project.el (project-compile): Simplify using call-interactively, as done with project(-async)-shell-command. 2021-01-16 Stefan Monnier * src/dispnew.c (sit_for): Return nil when interrupted by process output Before adbb4eacc2a984c0fc0b65ec761368fd9067d6c5, `read_and_dispose_of_process_output` called `record_asynch_buffer_change` which added "artificial" input events (in the form of BUFFER_SWITCH_EVENTs), causing sit_for to return Qnil when interrupted by process output. Without those BUFFER_SWITCH_EVENTs, sit_for now tends to return Qt when interrupted by process output making `read_char` believe that we've waited the whole timeout, As consequence incoming process output tended to cause premature auto-saving of files (sometimes right after almost every key press). This patch recovers the previous behavior, which is not ideal (incoming process output can delay auto-save indefinitely), but has been good enough for many years. 2021-01-15 Phillip Lord Remove support for 32 bit build * admin/nt/dist-build/README-scripts: Update * admin/nt/dist-build/README-windows-binaries: Update * admin/nt/dist-build/build-zips.sh: Remove 32 bit and fix paths * admin/nt/dist-build/build-dep-zips.py: Remove 32 bit and update paths * admin/nt/dist-build/emacs.nsi: Remove 32 bit and fix paths 2021-01-15 Phillip Lord Update dependency capture * admin/nt/dist-build/build-dep-zips.py: Use ntldd to directly determine DLL dependencies 2021-01-15 Stephen Leake * .gitignore: add src/fingerprint.c * lisp/dired-x.el (dired-file-name-at-point): Fix spelling in obsolete message. 2021-01-15 Aaron Jensen Fix 'window-text-pixel-size' when there are leading/trailing spaces First, scan to find the first non-whitespace character and then backtrack to find the beginning of the line. The previous algorithm always started on the non-whitespace character during the backtrack, causing it to stop immediately and not actually find the beginning of the line. The same applies to the end of line calculation. * src/xdisp.c: (Fwindow_text_pixel_size): Fix off by one error. (Bug#45748) * test/src/xdisp-tests.el (xdisp-tests--window-text-pixel-size) (xdisp-tests--window-text-pixel-size-leading-space) (xdisp-tests--window-text-pixel-size-trailing-space): New tests. 2021-01-15 Jared Finder Make libraries works with xterm-mouse-mode. Change calls from 'read-event' to 'read-key' in libraries expecting mouse events. Do this only when 'xterm-mouse-mode' is enabled. That way those libraries read decoded mouse events instead of the underlying escape sequence. Add a parameter to 'read-key' that avoids running any of the unbound fallbacks in 'read-key-sequence' so the libraries can read mouse button-down events. For backward compatibility purposes, the above logic is contained in a new internal-only function: 'read--potential-mouse-event'. * doc/lispref/commands.texi (Reading One Event): Document new parameter to 'read-key'. Mention that non-character events on terminals need 'read-key'. * lisp/subr.el (read-key-full-map): Add new keymap used by 'read-key'. (read-key): Add new parameter 'fallbacks-disabled' to prevent running any of the unbound fallbacks normally run by 'read-key-sequence'. (read--potential-mouse-event): Add new function that calls 'read-key' or 'read-event' depending on if 'xterm-mouse-mode' is set. * lisp/foldout.el (foldout-mouse-swallow-events): * lisp/isearch.el (isearch-pre-command-hook): * lisp/mouse-drag.el (mouse-drag-throw, mouse-drag-drag): * lisp/mouse.el (mouse-drag-secondary): * lisp/ruler-mode.el (ruler-mode-mouse-grab-any-column) (ruler-mode-mouse-drag-any-column-iteration): * lisp/strokes.el (strokes-read-stroke, strokes-read-complex-stroke): * lisp/textmodes/artist.el (artist-mouse-draw-continously) (artist-mouse-draw-poly, artist-mouse-draw-2points): * lisp/vc/ediff-wind.el (ediff-get-window-by-clicking): * lisp/wid-edit.el (widget-button--check-and-call-button) (widget-button-click): Call 'read--potential-mouse-event' instead of 'read-event'. * lisp/wid-edit.el (widget-key-sequence-read-event): Call 'read-key' with 'fallbacks-disabled' set instead of 'read-event'. Unlike above changes, this is unconditionally applied so it works for function keys too. Apply 'local-function-key-map' instead of 'function-key-map' as that contains the full terminal translations. * lisp/vc/ediff.el (ediff-windows): Use 'display-mouse-p' to check if a mouse is available. * src/lread.c (Fread_event): Recommend 'read-key' in docstring for 'read-event' for non-character events. 2021-01-15 Michael Albinus Some Tramp adaptions, mainly direct async processes * doc/misc/tramp.texi (Firewalls, Remote processes) (Frequently Asked Questions): Add @vindex. (Predefined connection information): Precise precondition or direct async processes. (Remote shell setup): Ban ssh RemoteCommand option. (Frequently Asked Questions): Adapt quoting. * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.5.1-pre". * lisp/net/tramp-adb.el (tramp-methods) : Add `tramp-direct-async' parameter. (tramp-adb-handle-make-process): Adapt docstring. * lisp/net/tramp-sh.el (tramp-methods) : Add `tramp-direct-async' parameter. (tramp-sh-handle-insert-directory): Simplify merkers. (tramp-sh-handle-make-process): Adapt docstring. * lisp/net/tramp.el (tramp-methods): Adapt docstring. (tramp-debug-message): Suppress lockfiles. (tramp-test-message): New defun. (tramp-direct-async-process-p): Check also for `tramp-direct-async'. (tramp-handle-make-process): Do not check for `tramp-direct-async-args'. * test/lisp/net/tramp-tests.el (all): Replace `string-match' by `string-match-p'. (dired-copy-dereference): Declare. (tramp-test-temporary-file-directory): Remove `tramp-direct-async-args` for mock method. (tramp-test15-copy-directory, tramp-test40-special-characters) (tramp-test40-special-characters-with-stat) (tramp-test40-special-characters-with-perl) (tramp-test40-special-characters-with-ls, tramp-test41-utf8) (tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl) (tramp-test41-utf8-with-ls): Skip for tramp-rclone.el. (tramp--test--deftest-direct-async-process): Do not skip for mock method. (tramp-test32-shell-command): Adapt test for direct async processes. (tramp-test36-vc-registered, tramp--test-hpux-p, tramp--test-ksh-p): Use `tramp-test-vec'. 2021-01-15 Glenn Morris * lisp/emacs-lisp/seq.el (seq-concatenate): Unautoload (merge fix). gitmerge-skip-regexp does not handle line breaks. 2021-01-15 Eli Zaretskii Fix 'kill-visual-line' * lisp/simple.el (kill-whole-line): Mention in the doc string that this option affects 'kill-visual-line' as well. (kill-visual-line): Improve the doc string. Delete the character at which the line was wrapped under 'visual-line-mode'. Don't indiscriminately delete whitespace following the wrap point. (Bug#45837) 2021-01-14 Stefan Monnier * lisp/startup.el (command-line): Remove redundant set of no-blinking-cursor This is redundant because this was set based on "X" resources under (memq window-system '(x w32 ns)) but the exact same resources and values are tested in `x-apply-session-resources` which is also used for those 3 window systems. 2021-01-14 Stefan Monnier * lisp/startup.el (command-line): Remove redundant set of no-blinking-cursor This was set when (or noninteractive emacs-basic-display), but the code that sets `emacs-basic-display` also sets `no-blinking-cursor` and `blink-cursor-mode`s value already tests `noninteractive` alongside `no-blinking-cursor`. 2021-01-14 Stefan Monnier Fix marking "delayed-initialization" vars as dynamically scoped We used to mark those vars as dynbound in `custom-reevaluate-setting` which forced us to bind `current-load-list` around it to avoid having the vars be associated with the wrong file. Move this marking to `custom-initialize-delay` so we don't need this workaround. * lisp/custom.el (custom-initialize-delay): Mark the var as dynamic. (custom-reevaluate-setting): Don't use `defvar` here. * lisp/startup.el (command-line): Don't let-bind `current-load-list` around calls to `custom-reevaluate-setting`. 2021-01-14 Andrea Corallo Normalize `comp-eln-load-path' entries for trampoline comp (bug#43475) * lisp/emacs-lisp/comp.el (comp-eln-load-path-eff): New function. (comp-trampoline-search, comp-trampoline-compile) (comp-clean-up-stale-eln): Update to use normalized `comp-eln-load-path-eff'. 2021-01-14 Andrea Corallo Introduce native compilation time reports * lisp/emacs-lisp/comp.el (comp-log-time-report): New special variable. (comp--native-compile): Rework to log time reports. 2021-01-14 Juri Linkov * lisp/info.el (Info-search): Don't deactivate mark when landed in same node (bug#45839) 2021-01-14 Glenn Morris Merge from origin/emacs-27 488204cdc6 (origin/emacs-27) Remove one of recently added warnings ab... 55bc1560ac Fix assertion failure in window_box_height (Bug#45737) 27743e9e70 Fix cl-concatenate inlining 32a3758c84 Fix infloop in 'pixel-scroll-mode' 74d18957b8 Fix inhibiting the default.el loading in user init file 2021-01-14 Glenn Morris Merge from origin/emacs-27 149d64bbb2 * doc/misc/tramp.texi (Quick Start Guide): Fix thinko. 97747e6fb9 Tell people how to remove fontconfig customizations 33d0c603c6 ; * doc/lispref/modes.texi (SMIE Indentation Example): Fix... 03080b5545 Remove extraneous closing paren 2021-01-14 Ted Zlatanov EMBA infrastructure improvements for Emacs build testing. * .gitlab-ci.yml: Use job templates and rules. Split tests into fast/normal/slow. Make Docker images for each tested platform (inotify, filenotify-gio, gnustep). Increase timeout. * test/Makefile.in (check-lisp, check-net): Add new testing targets. * test/README: Document them. * test/file-organization.org: Mention test/infra. * test/infra/Dockerfile.emba: Add special Docker recipes for EMBA testing. 2021-01-13 Juri Linkov Remove one of recently added warnings abound binding keys in Isearch maps * lisp/isearch.el (minibuffer-local-isearch-map): Remove comments which warn against wantonly rebinding unbound keys from irrelevant keymap. https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00259.html 2021-01-13 Juri Linkov * lisp/isearch.el: C-s C-u M-y reads a string from the kill-ring minibuffer * lisp/isearch.el (isearch-yank-from-kill-ring): New command with code moved from isearch-yank-pop. (isearch-yank-pop): Use isearch-yank-from-kill-ring. (isearch-yank-pop-only): Add optional arg, and call isearch-yank-from-kill-ring when the prefix arg is C-u. https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00089.html 2021-01-13 Stefan Kangas Lift {global,local}-key-binding to Lisp * lisp/subr.el (local-key-binding, global-key-binding): New defuns. * src/keymap.c (Flocal_key_binding, Fglobal_key_binding): Remove DEFUNs. (syms_of_keymap): Remove defsubrs for above DEFUNs. * test/lisp/subr-tests.el (subr-test-local-key-binding) (subr-test-global-key-binding): New tests. 2021-01-13 Stefan Kangas Prefer skip-unless in more tests * test/lisp/emacs-lisp/timer-tests.el (timer-tests-debug-timer-check): * test/src/decompress-tests.el (zlib--decompress): * test/src/xml-tests.el (libxml-tests): Prefer skip-unless. 2021-01-13 Eli Zaretskii Fix 'visual-line-mode' when 'word-wrap-by-category' is in effect * src/xdisp.c (move_it_in_display_line_to): Don't reset next_may_wrap after saving a potential wrap point. This fixes the case where several characters in a row can serve as a wrap point. (Bug#45837) 2021-01-13 Stefan Kangas Use skip-unless instead of if+message in test * test/lisp/cedet/semantic-utest.el (semantic-utest-Javascript): Use skip-unless instead of if+message. 2021-01-13 Stefan Kangas Remove some XEmacs compat code from tests * test/lisp/cedet/srecode-utest-getset.el (srecode-utest-getset-output): * test/lisp/cedet/srecode-utest-template.el (srecode-utest-template-output): Remove XEmacs compat code. 2021-01-13 Stefan Kangas * lisp/calc/calc.el: Remove some XEmacs compat code. 2021-01-13 Mattias Engdegård Stabilise lunar-phase-list test (bug#45818) The test reference data was produced with accidental interference from the system daylight saving in effect at the time. Prevent that from occurring again and correct the data. * test/lisp/calendar/lunar-tests.el (with-lunar-test): Switch to UTC and make sure daylight saving adjustment is disabled. Use normal time presentation for maintainability. * test/lisp/calendar/lunar-tests.el (lunar-test-phase): Adjust to UTC. (lunar-test-phase-list): Adjust to UTC with correct times. Enable the test by removing its :unstable mark. 2021-01-12 Mattias Engdegård Fix Indian time zone test when run by Irishmen (bug#45818) * test/lisp/calendar/solar-tests.el (solar-sunrise-sunset): Inhibit any attempt by confused calendar code to apply daylight saving correction when Irish time zone settings are in effect. It's not entirely clear why this is needed but may be related to the fact that 'IST' stands for both Irish and Indian Standard Time, and that Ireland uses reversed daylight saving in winter. 2021-01-12 Omar Polo * configure.ac: Fix native-comp OpenBSD build. 2021-01-12 Robert Pluim Only run IPv6 tests if we have an IPv6 address * test/src/process-tests.el (ipv6-is-available): New function for checking whether we have a globally routable IPv6 prefix assigned. (lookup-family-specification): Use 'ipv6-is-available' to check for IPv6. Use 'localhost' instead of 'google.com' to test 'network-lookup-address-info' API. (lookup-google): Use 'ipv6-is-available' to check for IPv6. * test/lisp/net/nsm-tests.el (nsm-ipv6-is-available): Rename to 'ipv6-is-available', make identical to the one in test/src/process-tests.el. 2021-01-12 Robert Pluim Fix nsm-should-check for "google.com" failure * lisp/net/nsm.el (nsm-should-check): Extract the mask from 'network-interface-list' rather than the broadcast address (Bug#45798). 2021-01-12 Lars Ingebrigtsen Add a new function 'buffer-line-statistics' * src/fns.c (Fbuffer_line_statistics): New function. 2021-01-12 Lars Ingebrigtsen Add a new variable `inhibit-interaction' * doc/lispref/elisp.texi (Top): Add a link. * doc/lispref/errors.texi (Standard Errors): Mention the new error. * doc/lispref/minibuf.texi (Minibuffers): Add a link. (Inhibiting Interaction): New node. * src/data.c (syms_of_data): Define the `inhibited-interaction' error. * src/lisp.h: Export the barfing function. * src/lread.c (Fread_char, Fread_event, Fread_char_exclusive): Barf if inhibited. * src/minibuf.c (barf_if_interaction_inhibited): New function. (Fread_from_minibuffer, Fread_no_blanks_input): Barf if inhibited. (syms_of_minibuf): Define the `inhibit-interaction' variable. 2021-01-12 Glenn Morris Update substitute-command-keys tests, again * test/lisp/help-tests.el (help-tests-substitute-command-keys/keymaps) (help-tests-substitute-command-keys/keymap-change): Update following recent minibuffer changes. 2021-01-12 Brian Leung comint-read-input-ring: Simplify last commit * lisp/comint.el (comint-read-input-ring): It is not necessary to use `goto-char' again since we have already moved point to the desired location (bug#45797). 2021-01-11 Stefan Monnier * lisp/emacs-lisp/eieio-base.el: Silence warnings in last change (eieio-persistent-make-instance): Quote the `eieio-named` class name. (eieio-named): Move before `eieio-persistent`. 2021-01-11 Eric Ludlam cedet/ede/auto.el: (ede-calc-fromconfig): New method. Support functions in addition to string matchers. (ede-dirmatch-installed, ede-do-dirmatch): Use `ede-calc-fromconfig' to do conversion. Author: Eric Ludlam 2021-01-11 Eric Ludlam eieio-base.el: (eieio-persistent-make-instance): Save the backward compatible 'name' of objects saved in the file, and if the newly loaded class inherits from 'eieio-named', restore the name of the object. Author: Eric Ludlam 2021-01-11 Eric Abrahamsen Fix possible prepending of "TEXT" to IMAP searches * lisp/gnus/gnus-search.el (gnus-search-imap-search-keys): Add missing keys "old", "new", "or" and "not". (gnus-search-run-search): In addition, don't touch the query if it starts with a parenthesis. Consider just getting rid of this convenience altogether. 2021-01-11 Stephen Leake * admin/notes/elpa: Update to match recent Gnu ELPA changes 2021-01-11 Lars Ingebrigtsen Mark previous erc-services change as not needing documentation 2021-01-11 Brian Leung Make comint-read-input-ring skip uninteresting text in .zsh_history * lisp/comint.el (comint-read-input-ring): Simplify (bug#45606). * lisp/shell.el (shell-mode): Add "~/.zsh_history". * lisp/comint.el (comint-read-input-ring): Bind `comint-input-ring-file-prefix' in anticipation of a buffer switch. * lisp/comint.el (comint-read-input-ring): Skip the separator. Because re-search-backward moves point to the beginning of the match, and since we don't want the separator appearing in the output, we skip over it. This is required to properly detect instances of the value that zsh uses for `comint-input-ring-file-prefix'; if the `comint-input-ring-file-prefix' is ':potato', the subsequent invocation `looking-at' sees '\n:potato' for all entries after the one at the very beginning of the history file. 2021-01-11 Anticrisis (tiny change) Add a failing test for bug#44834 * test/lisp/progmodes/tcl-tests.el (tcl-mode-namespace-indent-2): New, failing test (bug#44834). (tcl-mode-function-name-2): (tcl-mode-function-name-3): Fix names of the tests so that they're actually run. 2021-01-11 Leon Vack Support using auth-source for NickServ passwords in ERC * lisp/erc/erc-services.el (erc-nickserv-passwords): Document that the passwords are only used when erc-prompt-for-nickserv-password is nil. (erc-use-auth-source-for-nickserv-password): New customizable variable to enable checking auth-source for NickServ passwords. (etc-nickserv-get-password): New function to handle the lookup of the NickServ password from both auth-source and the erc-nickserv-passwords variable. (erc-nickserv-call-identify-function): Use new erc-nickserv-get-password function to lookup NickServ passwords. (erc-nickserv-identify-autodetect) (erc-nickserv-identify-on-connect) (erc-nickserv-identify-on-nick-change): Call erc-nickserv-call-identify-function when erc-use-auth-source-for-nickserv-password is set. * etc/NEWS: Document change (bug#45340). 2021-01-11 Alexandre Duret-Lutz (tiny change) Fix problem with non-ASCII characters in nnmaildir * lisp/gnus/nnmaildir.el (nnmaildir-request-article): Enable multipart 8bit-content-transfer-encoded files to be displayed correctly by reading as `raw-text' instead of having Emacs (incorrectly) decode the files (bug#44307). 2021-01-11 Pedro Andres Aranda Gutierrez Add `flat-button' to custom-face-attributes * lisp/cus-face.el (custom-face-attributes): Add `flat-button' (bug#45769). 2021-01-11 Robert Pluim * configure.ac: Alphabetize emacs_config_features 2021-01-11 Robert Pluim Ensure HAVE_GMP is reflected in emacs_config_features * configure.ac: Move HAVE_GMP setting before emacs_config_features setting (Bug#45771). 2021-01-10 Dmitry Gutov New command xref-quit-and-pop-marker-stack * lisp/progmodes/xref.el (xref-quit-and-pop-marker-stack): New command. (xref--xref-buffer-mode-map): Binding for it. 2021-01-10 Phillip Lord Allow evaluation of tests from local source repository * etc/w32-feature.el (w32-feature-load-tests): Add new command 2021-01-10 Philipp Stephani Fix build breakage if Lisp_Object is not a primitive type. * src/minibuf.c (choose_minibuf_frame): Don't compare Lisp_Objects with '!='. Use 'EQ' instead. 2021-01-10 Philipp Stephani Add functions to open a file without quitting. In some situations, e.g. when the Lisp machinery isn't available, we can't quit. Don't check the quit flags in such situations, in case they contain garbage. * src/sysdep.c (emacs_open_noquit, emacs_openat_noquit): New variants of 'emacs_open' and 'emacs_openat' that don't check the quit flags. * src/emacs.c (main, Fdaemon_initialized): * src/pdumper.c (pdumper_load): * src/w32term.c (w32_initialize): * src/buffer.c (mmap_init): * src/callproc.c (emacs_spawn): Use them where we can't quit. 2021-01-10 Alan Mackenzie Fix incompleteness in the implementation of minibuffer-follows-selected-frame In particular, add a new value to the variable, and fix several bugs apparent with the implementation up till now. * doc/emacs/mini.texi (Basic Minibuffer): Add a description of the new non-nil, non-t value of minibuffer-follows-selected-frame. * doc/emacs/trouble.texi (Quitting): Add a description of how C-g handles recursive minibuffers when typed in one which isn't the most nested. * doc/lispref/minibuf.texi (Intro to Minibuffers): Add an @dfn for "active minibuffer". (Minibuffer Commands): Document that exit-minibuffer throws an error when not invoked from the innermost Minibuffer. (Recursive Mini): Amend the description of the visibility of outer level minibuffers. (Minibuffer Misc): In the description of the minibuffer hooks, replace "the minibuffer" with "a minibuffer". * etc/NEWS (Entry announcing minibuffer-follows-selected-frame): Add a description of the new non-nil, non-t value. * lisp/cus-start.el (top level): make the customize entry for minibuffer-follows-selected-frame a choice between three entries. * lisp/minibuffer.el (exit-minibuffer): throw an error when we're not in the most nested minibuffer. (top level): Bind C-g to abort-minibuffers in minibuffer-local-map. * lisp/window.el (window-deletable-p): return the symbol `frame' when (amongst other things) minibuffer-follows-selected-frame is t. * src/eval.c (internal_catch): Add a mechanism to (throw 'exit t) repeatedly when the throw currently being processed doesn't terminate the current minibuffer. * src/lisp.h (this_minibuffer_depth): New extern declaration (minibuf_level): extern declaration moved here from window.h. * src/minibuf.c (minibuffer_follows_frame, minibuf_stays_put) (minibuf_moves_frame_when_opened): New and amended functions to query the value of minibuffer-follows-selected-frame. (choose_minibuf_frame): check (minibuf > 1) in place of (minibufer > 0) at a particular place. At another place, check that an alleged frame is so and is live. Before selecting a non-miniwindow on a different frame, ensure it really is a different frame. (move_minibuffer_onto_frame): Stack up all recursive minibuffers on the target frame. Check the minibuf_window isn't in the old frame before setting that frame's miniwindow to an inactive minibuffer. (Finnermost_minibuffer_p, Fabort_minibuffers): New primitives. (this_minibuffer_depth): New function. (read_minibuf): Record the calling frame in a variable, and switch back to it after the recursive edit has terminated normally, using select-frame-set-input-focus. Stack up all the recursive minibuffers on the miniwindow where a new minibuffer is being opened. After the recursive edit, switch the selected window away from the expired minibuffer's window. (nth_minibuffer): New function. (minibuffer-follows-selected-frame): Change from a DEFVAR_BOOL to a DEFVAR_LISP. * src/window.c (decode_next_window_args): Set *minibuf to w's mini-window's content when that content is a minibuffer. * src/window.h (minibuf_level) Declaration moved from here to lisp.h. 2021-01-10 Lars Ingebrigtsen Respect message-forward-ignored-headers more * lisp/gnus/message.el (message-forward-ignored-headers): Clarify doc string once again. (message-forward-make-body-mime): Remove headers when not encrypted (bug#45631). (message-forward-make-body): Pass in correct values. 2021-01-10 Glenn Morris Default python-shell-interpreter to python3 * lisp/progmodes/python.el (python-shell-interpreter): Default to python3 (bug#45655). 2021-01-10 David Edmondson Fix example in the Gnus manual * doc/misc/gnus.texi (Score Variables): In the example showing how to use a list of functions for gnus-score-find-score-files-find-function, return a list of strings from the lambda rather than trying to call the string as a function (bug#45673). 2021-01-10 Lars Ingebrigtsen Specify precedence in .authinfo files * doc/misc/auth.texi (Help for users): Mention placing more specific entries first (bug#45711). 2021-01-10 Lars Ingebrigtsen Improve fill-region-as-paragraph when there's a fill prefix * lisp/textmodes/fill.el (fill-region-as-paragraph): Try to improve how line breaks are set on unbreakable text with a fill prefix area that has spaces within (bug#45720). 2021-01-10 k3tu0isui (tiny change) Make font locking work in mercury-mode * lisp/progmodes/prolog.el (prolog-font-lock-keywords): Work in all modes derived from prolog-mode (bug#45747). (mercury-mode): Set up variables based on the Prolog system (bug#45747). 2021-01-10 Basil L. Contovounesios Hyperlink symbol names without word syntax in Help * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2) (lisp-cl-font-lock-keywords-2): Allow single-character symbol names. * lisp/help-mode.el (help-xref-symbol-regexp): Also match symbol names starting with symbol syntax (bug#6601, bug#24309). * test/lisp/help-mode-tests.el (help-mode-tests-xref-button): Test hyperlink creation for function names without symbol syntax. 2021-01-10 Omar Polo Add support for 'process-attributes' on OpenBSD * src/sysdep.c (make_lisp_timeval): (system_process_attributes): Implement for OpenBSD (bug#45729). 2021-01-10 Pedro Andres Aranda Gutierrez (tiny change) Add support for flat buttons * src/xfaces.c (Finternal_set_lisp_face_attribute): (realize_gui_face): Add support for `flat-button' (bug#45735). 2021-01-10 Daniel Martín Minor shortdoc link improvements * lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): Use describe-function as a fallback link when a function is not documented in any Info manual. Also make the link respond to mouse-1, like the rest of *Help* links, and add a proper help-echo property. * lisp/help-fns.el (help-fns--mention-shortdoc-groups): Same link improvement as described before, this time for the shortdoc groups (bug#45750). 2021-01-10 Lars Ingebrigtsen Add a link to the manual from the defcustom doc string * lisp/custom.el (defcustom): Add a link to the manual for the :type element. 2021-01-10 Lars Ingebrigtsen Revert recent mm-with-part change * lisp/gnus/mm-decode.el (mm-with-part): Revert 23a887e426f81033b0de2f4c93a8525cb31c28da -- this is the wrong place to handle this peculiarity. 2021-01-10 Michael Albinus Rework parts of Tramp's insert-directory, bug#45691 * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Fix some unibyte/multibyte inconsistencies. (Bug#45691) * test/lisp/net/tramp-tests.el (tramp-test17-insert-directory-one-file): New test. 2021-01-10 Lars Ingebrigtsen Add more mm-decode tests 2021-01-10 Stefan Kangas * lisp/subr.el (global-map): Doc fix; add cross-reference. 2021-01-10 F. Jason Park Create new test file for socks.el * test/lisp/net/socks-tests.el (socks-tests-auth-filter-url-http): Add SOCKS5 authentication test and fake server (bug#45162). 2021-01-10 Martin Rudalics Fix assertion failure in window_box_height (Bug#45737) * lisp/window.el (window-sizable): Don't try to grow a mini window when the root window's minimum height is already larger than its actual height (Bug#45737). 2021-01-10 Philipp Stephani Increase probability that a process test succeeds. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-process): Work around potential Emacs bug. 2021-01-10 Philipp Stephani Remove a pointless check for WCOREDUMPED. WCOREDUMPED can only be used if the process was killed. * src/process.c (status_convert): Don't check WCOREDUMPED if WIFEXITED. 2021-01-10 Tassilo Horn Support keyval style beamer frame labels * lisp/textmodes/reftex-vars.el (reftex-label-regexps): Support keyval style beamer frame labels. 2021-01-10 Eric Abrahamsen Remove reference to gnus-bug-create-help-buffer * lisp/gnus/gnus-win.el (gnus-buffer-configuration): Variable no longer exists. 2021-01-09 Philipp Stephani Don't unblock SIGCHLD too early. We first need to register the received process ID so that 'handle_child_signal' checks it. Otherwise we might never call 'waitpid' for these processes, risking deadlock. * src/callproc.c (call_process): * src/process.c (create_process): Don't unblock SIGCHLD before registering the process ID to wait for. * src/callproc.c (emacs_spawn): Accept a signal set from the caller. 2021-01-09 João Távora Count Flymake diagnostics in modeline by severity, not type Originally reported in https://github.com/joaotavora/eglot/issues/588 by Pankaj Jangid. * lisp/progmodes/flymake.el (flymake--mode-line-counter): Count diagnostics by severity level, not by type. (Version): Bump to 1.1.1 2021-01-09 Stefan Monnier * lisp/emacs-lisp/cl-macs.el (cl--self-tco): Fix build of gnus-agent.el Don't burp on "naked" variable let bindings. 2021-01-09 Andrea Corallo Improve `comp-libgccjit-reproducer' * src/comp.c (Fcomp__compile_ctxt_to_file): Better libgccjit reproducer file name. * lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): Doc update. (comp-final, comp-run-async-workers): Pass `comp-libgccjit-reproducer' setting to child workers. 2021-01-09 Eli Zaretskii Fix cl-concatenate use in macros * lisp/emacs-lisp/cl-macs.el (inline): Remove cl-concatenate. (Bug#45610) 2021-01-09 Eli Zaretskii Fix cl-concatenate inlining * lisp/emacs-lisp/seq.el (seq-concatenate): Auto-load it. Do not merge to master. (Bug#45610) 2021-01-09 Andrea Corallo Add new customize `comp-libgccjit-reproducer' * lisp/emacs-lisp/comp.el (comp-libgccjit-reproducer): New customize. * src/comp.c (Fcomp__compile_ctxt_to_file): Use `comp-libgccjit-reproducer' for dumping repoducer. (syms_of_comp): Define 'Qcomp_libgccjit_reproducer'. 2021-01-09 Tak Kunihiro Fix infloop in 'pixel-scroll-mode' * lisp/pixel-scroll.el (pixel-scroll-up, pixel-scroll-down): Avoid inflooping when 'vertical-motion' doesn't move. (Bug#45628) 2021-01-09 Stefan Monnier * lisp/emacs-lisp/cl-macs.el: Optimize self-calls in tail position Implement a limited form of tail-call optimization for the special case of recursive functions defined with `cl-labels`. Only self-recursion is optimized, no attempt is made to handle more complex cases such a mutual recursion. The main benefit is to reduce the use of the stack, tho in my limited tests, this can also improve performance (about half of the way to a hand-written `while` loop). (cl--self-tco): New function. (cl-labels): Use it. * lisp/subr.el (letrec): Optimize single-binding corner case. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): Add tests to check that TCO is working. 2021-01-09 Dmitry Gutov Make sure default-directory relates to the originating buffer * lisp/progmodes/xref.el (xref--show-xref-buffer): Pick up default-directory value from the caller (https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00551.html). (xref-show-definitions-buffer-at-bottom): Same. 2021-01-09 Stefan Monnier * lisp/subr.el (letrec): Optimize some non-recursive bindings * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): Look inside bytecode objects as well. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels): * test/lisp/subr-tests.el (subr--tests-letrec): New tests. 2021-01-09 Stefan Monnier * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Fix last change 2021-01-08 Stefan Monnier * lisp/emacs-lisp/macroexp.el (macroexp--fgrep): Rename from `pcase--fgrep` * lisp/emacs-lisp/cl-generic.el (cl--generic-fgrep): Delete. (cl--generic-lambda): Use `macroexp--pacse` instead. * lisp/emacs-lisp/pcase.el (pcase--fgrep): Rename to `macroexp--fgrep`. 2021-01-08 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2021-01-08 Stefan Kangas Merge recently added kbd tests * test/lisp/subr-tests.el (subr--kbd): Merge test... (subr-test-kbd): ...with this one. Fix thinko in my previous commit. Thanks to Mattias Engdegård . 2021-01-08 Stefan Kangas Lift define-prefix-command to Lisp * lisp/subr.el (define-prefix-command): New defun. * src/keymap.c (Fdefine_prefix_command): Remove DEFUN. (syms_of_keymap): Remove defsubr for Fdefine_prefix_command. * test/lisp/subr-tests.el (subr-test-define-prefix-command): New test. 2021-01-08 Stefan Kangas * test/lisp/subr-tests.el (subr-test-kbd): New test. 2021-01-08 Stefan Kangas Remove unused DEFSYM * src/minibuf.c (syms_of_minibuf) : Remove unused DEFSYM. 2021-01-08 Eli Zaretskii Fix syntax of space characters * lisp/international/characters.el (tbl): Give all the space characters whose Unicode General Category is Zs the 'space' syntax. (Bug#45660) 2021-01-08 Michael Albinus * test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process): Tag it :unstable on hydra. 2021-01-08 Eli Zaretskii Fix inhibiting the default.el loading in user init file * lisp/startup.el (startup--load-user-init-file): Test the value of 'inhibit-default-init', not just the LOAD-DEFAULTS argument, because loading the user's init file could have set the value of the former. (command-line): Call 'startup--load-user-init-file' with last arg t: there's no longer any need to test the value of 'inhibit-default-init' here, as it will be tested by the called function. (Bug#45708) 2021-01-07 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fix typo. 2021-01-07 Andrea Corallo Add a type specifier test * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add testcase. 2021-01-07 Juri Linkov * lisp/tab-bar.el: Improve tab-bar-show (bug#45556) * lisp/tab-bar.el (tab-bar-show): Change :set lambda to update all frames. Improve docstring. 2021-01-07 Juri Linkov * lisp/mb-depth.el (minibuffer-depth-indicator): Add :group 'minibuffer'. 2021-01-07 Stefan Kangas Remove an outdated comment * lisp/subr.el: Remove comment to reflect recent change in the definition of global-map, esc-map and ctl-x-map. 2021-01-07 Lars Ingebrigtsen Further display-buffer doc changes * lisp/window.el (display-buffer): `display-buffer-alist' is apparently the variable the user should be directed towards. 2021-01-07 Michael Albinus * test/lisp/filenotify-tests.el (file-notify-test07-many-events-remote): Mark it as unstable also on emba. 2021-01-07 Lars Ingebrigtsen Add a display-buffer window selection function that's more like XEmacs * doc/lispref/windows.texi (Buffer Display Action Functions): Document it. * lisp/window.el (display-buffer--action-function-custom-type): Add. (display-buffer): Mention it. (display-buffer-use-least-recent-window): New function (bug#45688). * src/window.c (Fwindow_bump_use_time): New function. 2021-01-07 Lars Ingebrigtsen Fix typo in last display-buffer doc string change * lisp/window.el (display-buffer): Fix typo in last doc string change. 2021-01-07 Lars Ingebrigtsen Edit the display-buffer doc string slightly * lisp/window.el (display-buffer): Reword the start of the doc string (bug#45688). 2021-01-07 Lars Ingebrigtsen Add work-around for nnmaildir encoding problem * lisp/gnus/mm-decode.el (mm-with-part): Fix problem with multipart 8bit encoded posts from nnmaildir (bug#44307). 2021-01-07 Lars Ingebrigtsen Add tests for mm-decode.el 2021-01-07 F. Jason Park Clear socks protocol scratch after authentication * lisp/net/socks.el (socks-open-connection): Fix incomplete patch titled "Append incremental message segments in socks-filter," which addressed chunk ordering but neglected to zero out the work area following successful username/password authentication (bug#45162). 2021-01-07 Andreas Schwab Fix quoting problem in pop3-uidl-save * lisp/net/pop3.el (pop3-uidl-save): Quote strings properly (bug#43896). 2021-01-07 Lars Ingebrigtsen Revert mark-paragraph change and add tests * lisp/textmodes/paragraphs.el (mark-paragraph): Revert eb090f65ceb0ae8a90829e911694348583135ba5 (bug#45318). This restores the behaviour from Emacs 27 -- further work is needed on this patch. 2021-01-07 Michael Albinus * test/Makefile.in (WRITE_LOG): Mark also problematic tests for emba. 2021-01-07 Glenn Morris Update a substitute-command-keys test * test/lisp/help-tests.el (help-tests-substitute-command-keys/keymaps): Update for "Pretty-print keys without <> around modifiers" change. 2021-01-06 Daniel Martín Fix some failing tests in BSD systems * test/lisp/progmodes/xref-tests.el (xref--xref-file-name-display-is-abs) (xref--xref-file-name-display-is-relative-to-project-root): Accommodate some older versions of BSD find (https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00156.html). 2021-01-06 Dmitry Gutov Proof some searches and file listings against symlinks * lisp/progmodes/project.el (project--files-in-directory): Make sure the directory includes the trailing slash in case it's a symlink, discussed in https://lists.gnu.org/archive/html/emacs-devel/2021-01/msg00345.html. * lisp/progmodes/xref.el (xref-matches-in-directory): Same. * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): Same. 2021-01-06 Gabriel do Nascimento Ribeiro (tiny change) * lisp/mb-depth.el (minibuffer-depth-indicator): New face. (minibuffer-depth-setup): Use new face and add a single space between the depth indicator and the minibuffer prompt. https://lists.gnu.org/archive/html/emacs-devel/2020-12/msg00230.html 2021-01-06 Andrea Corallo Fix bug#45603 Reported and reduced by Mauricio Collares. * lisp/emacs-lisp/comp.el (comp-final): Fix coding system for the tmp file used to pass data the child processes. * test/src/comp-tests.el (45603-1): New testcase * test/src/comp-resources/comp-test-45603.el: New File. 2021-01-06 Michael Heerdegen Fix obsolete variable warnings about class names * lisp/emacs-lisp/eieio-core.el (eieio-defclass-autoload): Try to make the wording of the warning about the obsoleted variable less confusing. * lisp/emacs-lisp/bytecomp.el (byte-compile-check-variable): Don't warn for lexical variables (Bug#39169). Fix spurious `or'. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp/warn-obsolete-variable-bound\.el): New test. * test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-bound.el: New file. 2021-01-06 Stefan Monnier * lisp/play/dunnet.el: Run the game when loaded via `--batch -l dunnet` (dun--batch): Rename from `dun-batch` and don't autoload. (dunnet): Delegate to `dun--batch` when in batch mode. 2021-01-06 Stefan Monnier * lisp/emacs-lisp/package.el (package-activate-all): Another tweak `package-quickstart.el` files presume `package-activated-list` is a bound variable, so make sure this is the case even when `package.el` is not yet loaded. 2021-01-05 Stefan Monnier * lisp/emacs-lisp/autoload.el: Improve last change It turns out there were other places that used `custom-initialize-delay` on autoloaded variables and used various hacks to make it work with `autoload.el`. The new code makes those hacks unneeded. Also, there's no point trying to "optimize" those rare cases anyway, so I simplified the `autoload.el` code for those cases. (make-autoload): For non-trivial cases, just include the whole `defcustom` instead of trying to mimic it. * lisp/mail/rmail.el (rmail-spool-directory): Remove hacks. * lisp/info.el (Info-default-directory-list): Remove `progn` hack. * lisp/custom.el (custom-declare-variable) (custom-handle-all-keywords): Don't use pseudo-group `nil`. 2021-01-05 Alan Third Prevent stack overflow in GNUstep menu code * src/nsmenu.m (ns_update_menubar): Always do a deep update for GNUstep. ([EmacsMenu menuNeedsUpdate:]): Don't update the menu as it should always have had a deep update. 2021-01-05 Juri Linkov * lisp/subr.el (remove-hook): Add default value (bug#45393) 2021-01-05 Juri Linkov * lisp/tab-bar.el (tab-bar-tab-name-format-function): New defcustom. (tab-bar-tab-name-format-default): New function as the default value. (tab-bar-make-keymap-1): Funcall tab-bar-tab-name-format-function. 2021-01-05 Juri Linkov * lisp/tab-bar.el (toggle-frame-tab-bar): New command (bug#45556) 2021-01-05 James N. V. Cash (tiny change) Refactor tab-bar-mode to -define-keys and -load-buttons (bug#42052) * lisp/tab-bar.el (tab-bar--define-keys, tab-bar--load-buttons): Move some code here from 'tab-bar-mode'. (tab-bar-new-tab-to): Call tab-bar--load-buttons and tab-bar--define-keys. 2021-01-05 Eli Zaretskii Fix process-tests on MS-Windows It was again broken by recent changes. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-serial-process): Skip test on MS-Windows. 2021-01-05 Stefan Monnier * lisp/emacs-lisp/package.el: Load package-quickstart without package.el Speed up startup when `package-quickstart` is in use by making it possible to load the quickstart file without having to load `package.el` at all. (package-user-dir, package-directory-list, package-quickstart-file): Preload those variables. (package--get-activatable-pkg): New fun, extracted from `package-activate`. (package-activate): Use it. (package--activate-all): New function, extracted from `package-activate-all`. (package-activate-all): Use it and make the function preloaded. (package--archives-initialize): New function. (package-install): Use it. (list-packages): Avoid `switch-to-buffer`. (package-get-descriptor): New function. * lisp/startup.el (command-line): Simplify the code now that package-user-dir and package-directory-list are preloaded. * lisp/emacs-lisp/autoload.el (make-autoload): Add support for `:initialize #'custom-initialize-delay` in `defcustom`. 2021-01-05 Michael Albinus * doc/misc/tramp.texi (Quick Start Guide): Fix thinko. 2021-01-05 Robert Pluim Tell people how to remove fontconfig customizations 2021-01-05 Mattias Engdegård ruby-mode: eliminate redundant regexp branch * lisp/progmodes/ruby-mode.el (ruby-add-log-current-method): Since ruby-operator-re matches dot, don't include both in regexp. This pacifies relint. 2021-01-05 Mattias Engdegård Pretty-print keys without <> around modifiers (bug#45536) Be consistent when pretty-printing keys: put modifiers outside <>, thus the more logical C-M- instead of . * src/keymap.c (Fsingle_key_description): Skip modifier prefix before adding <>. * doc/lispref/help.texi (Describing Characters): Update example. * doc/lispref/debugging.texi (Backtraces): * doc/lispref/minibuf.texi (Text from Minibuffer): Use @kbd instead of @key. * etc/NEWS: Announce the change. * test/src/keymap-tests.el (keymap--key-description): * test/lisp/subr-tests.el (subr--kbd): New tests. 2021-01-05 Mattias Engdegård * lisp/filesets.el (filesets-external-viewers): Tighten regexp. 2021-01-05 Harald Jörg perl-mode: Display here-docs as strings instead of comments * lisp/progmodes/perl-mode.el (perl-syntax-propertize-function): Handle HERE doc starter lines ending in a comment. (perl-heredoc): New face for HERE docs, inheriting from font-lock-string-face. (perl-font-lock-syntactic-face-function): Apply the new face to HERE docs (Bug#23461). * test/lisp/progmodes/cperl-mode-tests.el (cperl-test--run-bug-10483): Skip for Perl mode. The test explicitly calls a function of CPerl mode. 2021-01-05 Stefan Monnier * lisp/subr.el (esc-map): Initialize inside declaration * src/commands.h (meta_map): * src/keymap.c (meta_map): Delete variable. (syms_of_keymap): Don't initialize esc-map here. (initial_define_key): * src/keymap.h (initial_define_key): Delete function. * src/keyboard.c (keys_of_keyboard): Don't initialize esc-map here. * src/window.h (keys_of_window): * src/window.c (keys_of_window): Delete function. * src/lisp.h (keys_of_casefiddle): * src/casefiddle.c (keys_of_casefiddle): Delete function. * src/emacs.c (main): Don't call them. 2021-01-05 Stefan Monnier * lisp/subr.el (ctl-x-map): Initialize inside the declaration. * src/command.h (control_x_map): * src/keymap.c (control_x_map): Delete variable. (syms_of_keymap): * src/keyboard.c (keys_of_keyboard): * src/casefiddle.c (keys_of_casefiddle): * src/window.c (keys_of_window): Move initialization of ctl-x-map to subr.el. * src/lisp.h (syms_of_buffer): * src/buffer.c (keys_of_buffer): Delete function. * src/emacs.c (main): Don't call it. 2021-01-05 Stefan Monnier * lisp/subr.el (global-map): Initialize inside declaration. * src/commands.h (global_map): * src/keymap.c (global_map): Delete variable. (syms_of_keymap): Don't initialize global_map here. (keys_of_keymap): Delete function. * src/lisp.h (keys_of_cmds): * src/cmds.c (keys_of_cmds): Delete function. * src/emacs.c (main): Don't call them. * src/window.c (keys_of_window): Don't initialize global_map here. * src/keyboard.c (keys_of_keyboard): Don't initialize global_map here. 2021-01-05 Stefan Monnier Use lexical-binding in the remaining preloaded files * lisp/widget.el: * lisp/w32-fns.el: * lisp/textmodes/fill.el: * lisp/term/common-win.el: * lisp/scroll-bar.el: * lisp/rfn-eshadow.el: * lisp/menu-bar.el: * lisp/language/tibetan.el: * lisp/language/thai.el: * lisp/language/misc-lang.el: * lisp/language/lao.el: * lisp/language/korean.el: * lisp/language/japanese.el: * lisp/language/indian.el: * lisp/language/hebrew.el: * lisp/language/european.el: * lisp/language/ethiopic.el: * lisp/language/english.el: * lisp/language/cyrillic.el: * lisp/language/chinese.el: * lisp/jka-cmpr-hook.el: * lisp/international/ucs-normalize.el: * lisp/international/mule.el: * lisp/international/mule-conf.el: * lisp/international/iso-transl.el: * lisp/international/fontset.el: * lisp/international/characters.el: * lisp/format.el: * lisp/facemenu.el: * lisp/electric.el: * lisp/dos-w32.el: * lisp/dos-fns.el: * lisp/disp-table.el: * lisp/cus-face.el: * lisp/composite.el: * lisp/bindings.el: * admin/unidata/blocks.awk: * admin/charsets/eucjp-ms.awk: * admin/charsets/cp51932.awk: Use `lexical-binding`. 2021-01-05 Stefan Monnier * lisp/filesets.el: Use lexical-binding Remove redundant `:group` args. Require cl-lib and seq. Fix various O(n²) bug and flag a few remaining ones. (filesets-external-viewers): Simplify regexps. Use \' instead of $. Remove useless :constraint-flag properties. (filesets-convert-path-list): η-reduce. (filesets-eviewer-constraint-p): Mark :constraint-flag as obsolete. (filesets-spawn-external-viewer): Can't use `run-hooks` on lexical variable. (filesets-filter-list): Fix O(n²) bug. (filesets-ormap): Simplify. (filesets-some, filesets-member, filesets-sublist): Make them obsolete aliases. (filesets-reset-fileset): Simplify. (filesets-directory-files): Use `push`. (filesets-spawn-external-viewer): Use `mapconcat` to fix O(n²) bug. (filesets-cmd-get-args): Use `mapcan` to fix O(n²) bug. (filesets-run-cmd): Use `mapconcat` and `mapcan` to fix O(n²) bugs. (filesets-ingroup-collect-finder): Use dynamic scoping. (filesets-ingroup-collect-files): Use `nreverse` to fix O(n²) bug. (filesets-ingroup-collect-build-menu): Use `mapcan` to fix O(n²) bug. 2021-01-04 Andrea Corallo * test/src/comp-tests.el (cond-rw-1, not-cons, 45576): Rename three tests. 2021-01-04 Andrea Corallo Fix a type specifier test * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Fix a testcase. 2021-01-04 Andrea Corallo Fix type inference for bug#45635 * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Fix missing mixed pos neg handling. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a test. * test/src/comp-tests.el (45635): New testcase. * test/src/comp-test-funcs.el (comp-test-45635-f): New function. 2021-01-04 Philipp Stephani Make a process tests a bit more robust. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-process): Allow for processes to fail before 'exec'. 2021-01-04 Stefan Monnier * lisp/cedet/srecode/semantic.el: Use lexical-binding (srecode-semantic-insert-tag): Can't use `run-hook-with-args` on lexical variable. 2021-01-04 Stefan Monnier * lisp/mail/reporter.el: Use lexical-binding (reporter--run-functions): New function. (reporter-dump-state): Use it and simplify the code. 2021-01-04 Stefan Monnier * lisp/erc/erc.el (erc-process-input-line): Undo confused last change 2021-01-04 Dmitry Gutov ruby-add-log-current-method: Support methods with symbolic names * lisp/progmodes/ruby-mode.el (ruby-add-log-current-method): Support methods with symbolic names. 2021-01-04 Paul Eggert Do not assume Xrender merely because Cairo Problem reported by Andrea Corallo in: https://lists.gnu.org/r/emacs-devel/2021-01/msg00225.html * src/xterm.c (x_term_init) [USE_CAIRO && !HAVE_XRENDER]: Do not call XRenderQueryExtension. 2021-01-04 Paul Eggert Fix broken build on AIX 7.2 Without this fix, the build on AIX 7.2 with xlc fails in the ‘CCLD temacs’ step with the diagnostic ‘ld: 0711-317 ERROR: Undefined symbol: BC’. This is because -lcurses does not define BC etc. * configure.ac: When building terminfo.o, define TERMINFO_DEFINES_BC if the library defines BC etc. * src/terminfo.c (UP, BC, PC): Define depending on TERMINFO_DEFINES_BC, not on TERMINFO. (cherry picked from commit 632917461a7c1893a83979a3873b51d4da3b8a42) 2021-01-04 Simen Heggestøyl Remove extraneous closing paren * doc/lispref/modes.texi (SMIE Indentation Example): Remove extraneous closing paren. 2021-01-04 Glenn Morris Merge from origin/emacs-27 99cc0045eb (origin/emacs-27) Update two user option names in the Widg... 2021-01-04 Glenn Morris Merge from origin/emacs-27 2e09efdb68 Revert previous patch which was installed into wrong branch. 2021-01-04 Glenn Morris Merge from origin/emacs-27 a7c2793efe Fix last change 2021-01-04 Glenn Morris Merge from origin/emacs-27 90c782e92e Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e... 2021-01-04 Glenn Morris Merge from origin/emacs-27 7384ec6416 Add warning comments abound binding keys in Isearch maps 2021-01-04 Michael Albinus Fix error in tramp-sh-handle-insert-directory * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Let buffer be unibyte when applying numbers returned with the ls --dired option. Reported by Justus Piater . * test/lisp/net/tramp-tests.el (tramp--test-check-files): Extend test. 2021-01-04 Mauro Aranda Update two user option names in the Widget manual * doc/misc/widget.texi (Basic Types): The user options widget-glyph-directory and widget-glyph-enable were renamed long ago to widget-image-directory and widget-image-enable, but the manual kept calling them by their old names. Update the names. 2021-01-04 Basil L. Contovounesios Fix build for --enable-checking=structs The last change to lisp.h only added comments in Lisp_String, so the portable dumper need not be changed. * src/pdumper.c (dump_string): Update hash for Lisp_String. 2021-01-04 Mauro Aranda Don't skip widgets when moving backward * lisp/wid-edit.el (widget-move): Remove code that caused widget-backward to skip an immediate previous widget when moving backward from the start of a widget. (Bug#45623) * test/lisp/wid-edit-tests.el (widget-test-widget-backward): New test. 2021-01-04 Amin Bandali Fix off-by-one error in mode-line-compact code * src/xdisp.c (display_mode_line): Fix off-by-one error that would chop off the final non-space character when compacting (bug#45646). 2021-01-04 Lars Ingebrigtsen Fix computation of Lines in nnmaildir * lisp/gnus/nnmaildir.el (nnmaildir--update-nov): Lines is -1 if it's not present; not 0 (probably) (bug#45650). 2021-01-04 Stefan Monnier * src/print.c (print_vectorlike): Use `HASH_TABLE_SIZE` 2021-01-04 Stefan Monnier * src/xdisp.c (syms_of_xdisp): New var redisplay-skip-fontification-on-input (handle_fontified_prop): Use it. * src/keyboard.h (input_was_pending): Declare. * src/keyboard.c (input_was_pending): Make non-static. 2021-01-04 Stefan Monnier * lisp/erc/erc.el: Use `run-hook-with-args` for `erc-pre-send-functions` (erc-process-input-line): A function can be `listp`. (erc-send-input): Use `run-hook-with-args` for `erc-pre-send-functions`. (erc-display-command): Comment out, unused. 2021-01-04 Stefan Monnier * lisp/calc/calc-yank.el (calc-edit-mode): Make it into a proper major mode Also make `calc-edit-handler` hold a function instead of an expression. (calc-original-buffer, calc-return-buffer, calc-one-window) (calc-edit-handler, calc-restore-trail, calc-allow-ret) (calc-edit-top): Give them a default value. (calc--edit-mode): New function extracted from old `calc-edit-mode`. (calc-edit-return, calc-edit-finish): Don't need to test `boundp` any more. (calc-edit-finish): Allow `calc-edit-handler` to be a function. (calc-edit, calc-alg-edit): * lisp/calc/calc-prog.el (calc-edit-user-syntax, calc-user-define-edit): * lisp/calc/calc-embed.el (calc-embedded-edit): * lisp/calc/calc-sel.el (calc-edit-selection): * lisp/calc/calc-store.el (calc-edit-variable): Use `calc--edit-mode` and make first arg into a function. * lisp/calc/calc-ext.el (calc-init-extensions): Autoload `calc--edit-mode` instead of `calc-edit-mode`. 2021-01-04 Stefan Monnier * Makefile.in (test/%): New target * lisp/calendar/appt.el (appt-activate): Set the local `write-file-functions` 2021-01-04 Mark Oteiza Fix last change in json.el * lisp/json.el (json-encode-array): Include optimization for lists. 2021-01-04 Stefan Monnier * lisp/arc-mode.el (tar-grind-file-mode): Remove left over autoload * doc/lispref/syntax.texi (Syntax Class Table): Clarify `@` 2021-01-03 Stefan Monnier * admin/last-chance.el (last-chance): Use `grep`s return value (compilation-finish-functions): Only set it buffer-locally. 2021-01-03 Stefan Monnier * src/buffer.c (Fset_buffer_multibyte): Remove dead code 2021-01-03 Mark Oteiza Remove unnecessary dependency on seq library * lisp/json.el: Remove require declaration. (json-encode-array): Just use length and /=. 2021-01-03 Phillip Lord Remove relative paths for consistency * admin/nt/dist-build/build-zips.sh: Remove Paths 2021-01-03 Stefan Monnier * lisp/emacs-lisp/byte-run.el (make-obsolete): Make `when` mandatory (define-obsolete-function-alias, make-obsolete-variable) (define-obsolete-variable-alias): Adjust similarly. 2021-01-03 Paul Eggert Mention -lcurses problem on AIX * etc/PROBLEMS: Describe problem with Emacs 27 and -lcurses. Do not merge to master. 2021-01-03 Paul Eggert Fix broken build on AIX 7.2 Without this fix, the build on AIX 7.2 with xlc fails in the ‘CCLD temacs’ step with the diagnostic ‘ld: 0711-317 ERROR: Undefined symbol: BC’. This is because -lcurses does not define BC etc. * configure.ac: When building terminfo.o, define TERMINFO_DEFINES_BC if the library defines BC etc. * src/terminfo.c (UP, BC, PC): Define depending on TERMINFO_DEFINES_BC, not on TERMINFO. 2021-01-03 Paul Eggert Revert previous patch which was installed into wrong branch. 2021-01-03 Paul Eggert Fix broken build on AIX 7.2 Without this fix, the build on AIX 7.2 with xlc fails in the ‘CCLD temacs’ step with the diagnostic ‘ld: 0711-317 ERROR: Undefined symbol: BC’. This is because -lcurses does not define BC etc. * configure.ac: When building terminfo.o, define TERMINFO_DEFINES_BC if the library defines BC etc. * src/terminfo.c (UP, BC, PC): Define depending on TERMINFO_DEFINES_BC, not on TERMINFO. 2021-01-03 Alan Third Fix child frame restacking on NS (bug#41422) * src/nsfns.m (Fns_frame_restack): Use new restackWindow method. * src/nsterm.m ([EmacsWindow orderFront:]): ([EmacsWindow makeKeyAndOrderFront:]): (nswindow_orderedIndex_sort): ([EmacsWindow orderBack:]): ([EmacsWindow restackWindow:above:]): Override superclass methods to handle child windows the way we want. 2021-01-03 Stefan Monnier * lisp/progmodes/xref.el (xref--show-defs-buffer-at-bottom): Fix missing arg 2021-01-02 Alan Third Fix crash when using menus and tramp on NS * src/nsterm.m (ns_select): Don't drain outerpool in this function. 2021-01-02 Alan Third Fix NS toolbar image release crash (bug#43973) The toolbar fails to make a proper copy of EmacsImage objects, so releasing the copy incorrectly released instance variables from the original objects. * src/nsimage.m ([EmacsImage copyWithZone:]): New function to enable correct copying of EmacsImage. 2021-01-02 Roland Winkler bibtex-mode: Extend widget bibtex-entry-alist 2021-01-02 Eric Abrahamsen Reposition call to set-buffer-modified-p in sieve-upload * lisp/net/sieve.el (sieve-upload): It's meant to affect the script buffer, not sieve-buffer, so needs to be outside the call to with-current-buffer. 2021-01-02 Dmitry Gutov xref--show-pos-in-buf: Don't set other-window-scroll-buffer * lisp/progmodes/xref.el (xref--show-pos-in-buf): Don't set other-window-scroll-buffer (bug#45581). 2021-01-02 Mattias Engdegård Fix backslash mistakes in doc strings in C code These were found by an instrumented version of make-docfile. * src/gnutls.c (Fgnutls_available_p): * src/keymap.c (Fkey_description): * src/xdisp.c (syms_of_xdisp): 2021-01-02 Mauro Aranda Fix Quit button in dictionary buffer * lisp/net/dictionary.el (dictionay-close): Changing the arity of the function in cc5f2803785c5dc785f09a292313cf799e8d29bb was a mistake. Restore it, but mark the argument as unused to avoid a wrong-number-of-arguments error when using the Quit button. 2021-01-02 Philipp Stephani Avoid printing stacktraces when it probably wouldn't work anyway. * src/eval.c (signal_or_quit): Don't try to call the debugger if it's inhibited or we are about to dump or bootstrap. In those cases the debugger probably wouldn't work anyway. 2021-01-02 Philipp Stephani Make a process test faster. The test 'process-tests/fd-setsize-no-crash/make-process' used to call 'sleep' to ensure that enough processes are live to trigger a FD_SETSIZE overflow. However, we can just call 'cat' instead and close standard input when done. That way, we only wait as long as needed. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-process): Invoke 'cat' instead of 'sleep'. Close standard input to exit the 'cat' processes. 2021-01-02 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-known-predicates): Some more tweaking. 2021-01-02 Philipp Stephani Simplify TTY allocation. The 'process-tty-name' already provides the TTY name, we don't have interrogate the TTY host. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-serial-process): Use 'process-tty-name' instead of having the TTY host print its TTY name. Check whether TTY names are unique. (process-tests--new-pty, process-tests--with-temp-file): Remove; no longer used. 2021-01-02 Andrea Corallo Fix `functionp' constraining (bug#45576) * lisp/emacs-lisp/comp.el (comp-known-predicates) (comp-known-predicates-h): New constants. (comp-known-predicate-p, comp-pred-to-cstr): New functions. * lisp/emacs-lisp/cl-macs.el (cl-deftype-satisfies): Don't define. * test/src/comp-tests.el (comp-test-45576): New testcase. * test/src/comp-test-funcs.el (comp-test-45576-f): New function. 2021-01-02 Eli Zaretskii Fix last change in characters.el * lisp/international/characters.el: Adjust syntax of more characters to follow that of Unicode properties. (Bug#44974) 2021-01-02 Andrea Corallo Rename `dom' slot into `idom' in `comp-block' struct * lisp/emacs-lisp/comp.el (comp-block): Rename dom `slot' into `idom'. (comp-clean-ssa, comp-compute-dominator-tree) (comp-compute-dominator-frontiers, comp-dom-tree-walker) (comp-remove-unreachable-blocks): Update accordingly. 2021-01-02 Eli Zaretskii Fix syntax of symbol and punctuation characters * lisp/international/characters.el: Adjust syntax of punctuation and symbol charcaters to follow that of Unicode properties. (Bug#44974) 2021-01-02 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2021-01-02 Eli Zaretskii Fix last change * doc/lispref/strings.texi (Creating Strings): Improve wording of last change. (Bug#45516) 2021-01-02 Lars Ingebrigtsen Add a reference between the Strings node and Search/Replace * doc/lispref/strings.texi (Creating Strings): Mention string-replace/replace-regexp-in-string (bug#45516). (cherry picked from commit b9359d4183a1a6923122d3aa12b922ab89693354) 2021-01-02 Dmitry Gutov ruby-smie-rules: Avoid one case of infinite recursion * lisp/progmodes/ruby-mode.el (ruby-smie-rules): Avoid one case of infinite recursion (bug#29107). 2021-01-01 Alan Third Fix GNUstep warnings * src/nsterm.h: EmacsSurface is only required if NS_DRAW_TO_BUFFER is defined. * src/nsterm.m (ns_judge_scroll_bars): Remove unused variable. * src/nsmenu.m (update_frame_tool_bar): (ns_update_menubar): Remove unused variables. 2021-01-01 Alan Third Improve drawing performance on macOS * configure.ac: Require IOSurface framework. * src/nsterm.h: New EmacsSurface class and update EmacsView definitions. * src/nsterm.m (ns_update_end): (ns_unfocus): Use new unfocusDrawingBuffer method. (ns_draw_window_cursor): Move ns_focus to before we set colors. ([EmacsView dealloc]): ([EmacsView viewDidResize:]): Handle new EmacsSurface class. ([EmacsView initFrameFromEmacs:]): Remove reference to old method. ([EmacsView createDrawingBuffer]): Remove method. ([EmacsView focusOnDrawingBuffer]): ([EmacsView windowDidChangeBackingProperties:]): Use new EmacsSurface class. ([EmacsView unfocusDrawingBuffer]): New method. ([EmacsView copyRect:to:]): Get information from the context instead of direct from the IOSurface. ([EmacsView updateLayer]): Use new EmacsSurface class. ([EmacsView copyRect:to:]): Use memcpy to copy bits around instead of using NS image functions. ([EmacsSurface initWithSize:ColorSpace:]): ([EmacsSurface dealloc]): ([EmacsSurface getSize]): ([EmacsSurface getContext]): ([EmacsSurface releaseContext]): ([EmacsSurface getSurface]): ([EmacsSurface copyContentsTo:]): New class and methods. 2021-01-01 Roland Winkler bibtex-mode: Handle biblatex field aliases (bug#44976) * lisp/textmodes/bibtex.el (bibtex-biblatex-entry-alist): Define field aliases. (bibtex-vec-incr): Remove. (bibtex-format-entry, bibtex-validate): Check for field aliases. (bibtex--skip-field-aliases): New function. (bibtex-field-list): Use it. 2021-01-01 Paul Eggert Fix CCL_MOD typo * src/ccl.c (ccl_driver): Fix typo that disabled the checks for undefined behavior with integer remainder. Problem caught by Oracle Studio 12.6. 2021-01-01 Paul Eggert Add overflow check for INPUT_EVENT_POS_MIN * src/keyboard.c (INPUT_EVENT_POS_MIN): Don’t assume (-1 - INPUT_EVENT_POS_MAX) fits into ptrdiff_t. This fixes a purely-theoretical problem that cannot occur on two’s-complement arithmetic. The Solaris 10 compiler still complains incorrectly, but oh well. 2021-01-01 Paul Eggert Port to Solaris 10 * configure.ac: Instead of AC_CHECK_HEADER, use AC_COMPILE_IFELSE with X11/Intrinsic.h when checking for X11/extensions/Xrender.h. This suppresses a bogus "report a bug to bug-gnu-emacs" diagnostic from 'configure' in Solaris 10. (SETUP_SLAVE_PTY): Adjust to recent renaming of forkin to std_in in callproc.c. Needed on Solaris and Unixware. * lib-src/Makefile.in (LIB_GETRANDOM, LIBS_ETAGS): New vars, needed because on Solaris 10 the Gnulib tempname module now needs the -lrt library for clock_gettime. Throw in the LIB_GETRANDOM stuff too while we’re at it; from getrandom.m4 it seems to be needed for MingW. (LIBS_MOVE, etags_libs): Use them. * src/callproc.c [SETUP_SLAVE_PTY]: Include sys/stream.h and sys/stropts.h, for SETUP_SLAVE_PTY’s definiens. * src/process.c [NEED_BSDTTY]: Don’t include bsdtty.h; hasn’t been needed in years. [USG5_4]: Don’t include sys/stream.h or sys/stropts.h; these directives havbe been moved to callproc.c because the only use of SETUP_SLAVE_PTY is there now. 2021-01-01 Paul Eggert New file scratch_buffer_dupfree.c * lib/malloc/scratch_buffer_dupfree.c: New file, from Gnulib (originally from glibc 2.33 code). This is needed on macOS and some other platforms; I forgot to commit it in the most recent Gnulib update. 2021-01-01 Andrea Corallo Add `throw' to non returning functions * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add throw. 2021-01-01 Dmitry Gutov xref-show-definitions-completing-read: Default to the first location * lisp/progmodes/xref.el (xref-show-definitions-completing-read): Default to the first location. 2021-01-01 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-compute-dominator-tree): Fix. 2021-01-01 Andrea Corallo Clean unreachable block using dominance tree to handle circularities With this commit unreachable basic blocks are pruned automatically by comp-ssa relying on dominance analysis. This solves the issue of unreachable cluster of basic blocks referencing each other. * lisp/emacs-lisp/comp.el (comp-block-lap): New `no-ret' slot. (comp-compute-dominator-tree): Update. (comp-remove-unreachable-blocks): New functions. (comp-ssa): Update to call `comp-remove-unreachable-blocks'. (comp-clean-orphan-blocks): Delete. (comp-rewrite-non-locals): Update and simplify. 2021-01-01 Andrea Corallo * src/comp.c (Fcomp__compile_ctxt_to_file): Fix hash table iteration. 2021-01-01 Andrea Corallo Introduce 'unreachable' LIMPLE operator Introduce 'unreachable' as LIMPLE operator so we can handle correctly in the CFG functions throwing values or signaling errors. * src/comp.c (retrive_block): Better error diagnostic. (emit_limple_insn): Add `unreachable'. (compile_function): Fix block iteration. (syms_of_comp): Define 'Qunreachable'. * lisp/emacs-lisp/comp.el (comp-block): New variable. (comp-block-lap): Add `non-ret-insn' slot. (comp-branch-op-p): New predicate. (comp-limple-lock-keywords): Color `unreachable' as red. (comp-compute-edges): Add `unreachable'. (comp-fwprop-call): Store non returning function call. (comp-fwprop*): Update. (comp-clean-orphan-blocks, comp-rewrite-non-locals): New functions. (comp-fwprop): Call `comp-rewrite-non-locals'. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests. * test/src/comp-test-funcs.el (comp-test-non-local-1) (comp-test-non-local-2, comp-test-non-local-3) (comp-test-non-local-4): New functions. 2021-01-01 Eli Zaretskii Add warning comments abound binding keys in Isearch maps * lisp/isearch.el (isearch-mode-map) (minibuffer-local-isearch-map): Add comments which warn against wantonly rebinding unbound keys. 2021-01-01 Philipp Stephani Fix a compilation warning. ruby-mode uses 'cl-evenp' at runtime, so cl-lib must be available at runtime as well. * lisp/progmodes/ruby-mode.el (cl-lib): Require at runtime as well. 2021-01-01 Andrea Corallo Fix two predicates for missing negation handling * lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p) (comp-cstr-null-p): Fix missing negation handling. 2021-01-01 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Color returns as red. 2021-01-01 Andrea Corallo Add `comp-insert-insn' * lisp/emacs-lisp/comp.el (comp-insert-insn): New inline. (comp-emit-call-cstr): Split logic and call `comp-insert-insn'. 2021-01-01 Paul Eggert Remove stray copy of image-tests.el * test/manual/image-circular-tests.el: Remove a stray copy of image-tests.el that was appended to this file. Found by its duplicate copyright notice. 2021-01-01 Paul Eggert Update from Gnulib by running admin/merge-gnulib. 2021-01-01 Paul Eggert Merge from origin/emacs-27 33d159c36f Fix copyright years by hand 2021-01-01 Paul Eggert Merge from origin/emacs-27 74a77ef299 Improve documentation of 'network-lookup-address-info' c6d5555646 Display messages sent using ERC's /say c156723769 Fix Rmail summary display when From: header is malformed 2021-01-01 Paul Eggert Update copyright year to 2021 Run "TZ=UTC0 admin/update-copyright". 2021-01-01 Paul Eggert Fix some mistaken shell delinting * admin/merge-gnulib, admin/update-copyright, make-dist: Revert recent mistaken changes that were put in merely to pacify a shellcheck linter. 2021-01-01 Paul Eggert Fix copyright years by hand These are dates that admin/update-copyright did not update. 2021-01-01 Lars Ingebrigtsen Revert recent add-to-ordered-list changes * doc/lispref/lists.texi (List Variables): Revert. * lisp/subr.el (add-to-ordered-list): Revert recent changes because the semantics are too muddled. 2020-12-31 Alan Mackenzie CC Mode: increment version numbers to 5.35 due to standalone release * doc/misc/cc-mode.texi. Increment the mode to 5.35, twice. * lisp/progmodes/cc-defs.el. Increment the mode to "5.35.1". 2020-12-31 Eli Zaretskii Improve documentation of 'network-lookup-address-info' * src/process.c (Fnetwork_lookup_address_info): * doc/lispref/processes.texi (Misc Network): Document the error message emitted by 'network-lookup-address-info' when it fails. 2020-12-31 Dmitry Gutov ruby-mode: Optimize expression expansion too This speeds up syntax-propertize almost 2x. * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Optimize expression expansion too. (ruby-syntax-propertize-expansion, ruby-font-lock-keywords) (ruby-expression-expansion-re): Update to match. 2020-12-31 Dmitry Gutov ruby-syntax-propertize: Optimize two rules a little * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Optimize two rules a little. 2020-12-31 Dmitry Gutov ruby-mode: Recognize setter symbols * lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Add a rule for setter symbols (bug#42846). (ruby-font-lock-keywords): Remove dead code, left over from before commit 26f9c507. * lisp/progmodes/ruby-mode.el (ruby-smie--bosp): Handle '=' being part of a symbol (bug#42846). * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add corresponding indentation examples. 2020-12-31 João Távora Fix type declaration of two Flymake customization variables * lisp/progmodes/flymake.el (flymake-mode-line-format) (flymake-mode-line-counter-format): Fix type declaration. 2020-12-31 Eli Zaretskii Fix process-tests on MS-Windows * test/src/process-tests.el (process-tests--fd-setsize-test): On MS-Windows start the pipe processes in the "stopped" condition. 2020-12-31 João Távora Must explicitly create unpropertized strings in mode-line Otherwise, an innocent string like " " will mysteriously pickup properties from some other minor mode. Making this a separate commit in hopes of raising attention to this possible bug. * lisp/progmodes/flymake.el (flymake--mode-line-counter): Must explicily create a new string unpropertized string 2020-12-31 João Távora Make Flymake mode-line indicator customizable (bug#33740) * lisp/progmodes/flymake.el (flymake-mode): Use flymake-mode-line-format. (flymake--mode-line-format): Remove. (flymake-mode-line-counter-format, flymake-mode-line-format): New defcustom. (flymake-mode-line-title, flymake-mode-line-exception) (flymake-mode-line-counters, flymake-error-counter) (flymake-warning-counter, flymake-note-counter): New variables. (flymake--mode-line-title, flymake--mode-line-exception) (flymake--mode-line-counters, flymake--mode-line-counter): New helpers. * doc/misc/flymake.texi (Customizable variables): Mention flymake-mode-line-format and flymake-mode-line-counter-format * etc/NEWS: Mention Flymake's customizable mode-line. 2020-12-31 João Távora Protect elisp-flymake-checkdoc against boundless diagnostics These would be the kind of "This file needs a ;;Code section" and such. * lisp/progmodes/elisp-mode.el (elisp-flymake-checkdoc): Resist checkdoc diagnostics with no end position. 2020-12-31 Michael Albinus * test/src/process-tests.el: Let timeouts fail the tests. Fix some docstrings 2020-12-31 Alan Mackenzie CC Mode. Fix AWK Mode fontification bug, remove some unused variables * lisp/progmodes/cc-awk.el (awk-font-lock-keywords): Replace a hard use of c-preprocessor-face-name by an `eval' expression which evaluates it. * lisp/progmodes/cc-engine.el (c-in-knr-argdecl, c-laomib-put-cache) (c-laomib-fix-elt): Remove unused bound variables. 2020-12-31 Philipp Stephani Unbreak process tests if 'errno' is not installed. * test/src/process-tests.el (process-tests--EMFILE-message): Don't signal an error if the 'errno' binary is unavailable. 2020-12-31 Stefan Kangas Fix some shellcheck linter warnings * admin/diff-tar-files: * admin/merge-gnulib: * admin/merge-pkg-config: * admin/update-copyright: * build-aux/git-hooks/prepare-commit-msg: * make-dist: Fix some shellcheck linter warnings. 2020-12-31 Stefan Kangas Minor cleanup in doc.c * src/doc.c (get_doc_string, Fdocumentation) (Fdocumentation_property, store_function_docstring): Minor cleanup. 2020-12-31 Stefan Kangas Add lexical-binding cookie to autoload files * build-aux/update-subdirs: * lisp/emacs-lisp/autoload.el (autoload-rubric): Add lexical-binding cookie to generated files (bug#44854). 2020-12-31 Daniel Martín Fix duplicated entry in gnus-mime-action-alist * lisp/gnus/gnus-art.el (gnus-mime-action-alist): Remove duplicated "toggle display" entry and call the appropriate function for the "view as charset" action (bug#45561). 2020-12-31 Lars Ingebrigtsen Allow add-to-ordered-list to use a test predicate * doc/lispref/lists.texi (List Variables): Update manual. * lisp/subr.el (add-to-ordered-list): Allow using a test predicate, and make slightly more efficient (bug#45539). 2020-12-31 Lars Ingebrigtsen Add test for add-to-ordered-list 2020-12-31 Daniel Martín Add some tests to find-func.el 2020-12-31 Philipp Stephani Minor improvements to FD_SETSIZE overflow checks. * src/process.c (Fmake_serial_process): Add port to error data. (connect_network_socket): Add an explanatory comment. 2020-12-31 Philipp Stephani Manually limit file descriptors that we select on to FD_SETSIZE. This works even if another thread or process resets the resource limit for open file descriptors, e.g., using 'prlimit' on GNU/Linux. * src/process.c (create_process, create_pty, Fmake_pipe_process) (Fmake_serial_process, connect_network_socket) (server_accept_connection): Limit file descriptors to FD_SETSIZE. * test/src/process-tests.el (process-tests--with-raised-rlimit): New helper macro. (process-tests--fd-setsize-test): Rename from 'process-tests--with-many-pipes'. Increase resource limit during test if possible. (process-tests/fd-setsize-no-crash/make-process) (process-tests/fd-setsize-no-crash/make-pipe-process) (process-tests/fd-setsize-no-crash/make-network-process) (process-tests--new-pty): Rename callers. 2020-12-31 Philipp Stephani Fix a potential unit test breakage on GNU/Linux. * test/src/process-tests.el (process-tests/fd-setsize-no-crash/make-process): Allow special exit codes that can happen if terminal setup fails in the child process. 2020-12-30 Philipp Stephani Fix an incorrect Edebug specification. * test/src/process-tests.el (process-tests--with-many-pipes): Fix incorrect Edebug specification. 2020-12-30 Philipp Stephani Consistently check for FD_SETSIZE overflow. Previously this was only checked in a few places. Now assert that file descriptors are within the expected range whenever we'd otherwise introduce undefined behavior. * src/process.c (add_read_fd, add_process_read_fd, delete_read_fd) (recompute_max_desc, delete_write_fd, compute_input_wait_mask) (compute_non_process_wait_mask, compute_non_keyboard_wait_mask) (compute_write_mask, clear_waiting_thread_info) (update_processes_for_thread_death, Fset_process_thread) (create_process, create_pty, Fmake_pipe_process) (Fprocess_datagram_address, Fset_process_datagram_address) (Fmake_serial_process, finish_after_tls_connection) (connect_network_socket, deactivate_process) (server_accept_connection, wait_reading_process_output) (read_process_output, read_and_dispose_of_process_output) (send_process, Fcontinue_process, Fprocess_send_eof) (Fprocess_filter_multibyte_p, keyboard_bit_set) (add_timer_wait_descriptor, setup_process_coding_systems): Add assertions to document and check that file descriptors are within the expected range when used as file descriptor set elements or array subscripts. 2020-12-30 Philipp Stephani Extend and overhaul FD_SETSIZE overflow tests. Instead of trying to generate the right number of processes, pre-create lots of unused pipe processes until creation fails. Extend the tests to the 'pty' connection type and other kinds of process objects. * test/src/process-tests.el (process-tests--ignore-EMFILE) (process-tests--with-buffers, process-tests--with-processes) (process-tests--with-many-pipes, process-tests--with-temp-file) (process-tests--with-temp-directory): New helper macros. (process-tests/fd-setsize-no-crash/make-process): Renamed from 'process-tests/fd-setsize-no-crash'. Fail on timeout. Also test the 'pty' connection type. Pre-create lots of pipe processes so we reach the FD_SETSIZE limit faster. Ignore EMFILE more precisely, if possible. (process-tests/fd-setsize-no-crash/make-pipe-process) (process-tests/fd-setsize-no-crash/make-network-process) (process-tests/fd-setsize-no-crash/make-serial-process): New tests that test FD_SETSIZE limits for other kinds of processes. (process-tests--EMFILE-message): New helper function and cache variable. (process-tests--new-pty): New helper function. 2020-12-30 Philipp Stephani * src/nsterm.m (ns_select): Fix off-by-one error, and add assertion 2020-12-30 Alan Mackenzie CC Mode: correct the handling of empty strings In particular, have the macro cache invalidated after its last use in c-before-change. * lisp/progmodes/cc-langs.el (c-get-state-before-change-functions): Remove c-invalidate-macro-cache from the entries it's in, moving it to.... * lisp/progmodes/cc-mode.el (c-before-change): Call c-invalidate-macro-cache directly from the functions, after the call to c-invalidate-state-cache. 2020-12-30 Alan Third Fix Help menu on macOS * src/nsmenu.m (ns_update_menubar): Make sure to reset the help menu when we move it to another submenu. 2020-12-30 Andrea Corallo Order function types in aphabetical order * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Reorder in aphabetical order and comment. 2020-12-30 Andrea Corallo Add more function type specifiers * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more type specifiers. 2020-12-30 Mattias Engdegård Use standard key symbols in NS menu entries * src/nsmenu.m (skipspc): Remove. (key_symbols, prettify_key): New. ([EmacsMenu fillWithWidgetValue:]): Call prettify_key. 2020-12-30 Stefan Kangas Remove redundant 'function's around lambda in align.el * lisp/align.el (align-rules-list, align-exclude-rules-list) (align-vhdl-rules-list, align-highlight-rule): Remove redundant 'function's around lambda. 2020-12-30 Dmitry Gutov Tobias Rittweiler Add 'project-relative' as value for 'xref-file-name-display' * lisp/progmodes/xref.el (xref-file-name-display): Document new value. (xref-location-group ((l xref-file-location))): Handle the new value. (xref--project-root): Extract from the default method of 'xref-backend-references' so it can be used in above's new code. Also fix an old bug in the "backward compat" branch. * lisp/progmodes/xref.el (xref--project-root-memo): New variable. * test/lisp/progmodes/xref-tests.el: Add test cases for the three possible settings of 'xref-file-name-display'. 2020-12-30 Stefan Kangas Fix some over-wide docstrings * lisp/cedet/semantic/analyze/refs.el (semantic-analyze-refs-proto) (semantic-analyze-refs-impl): * lisp/cedet/semantic/symref.el (semantic-symref-hit-to-tag-via-buffer): * lisp/emacs-lisp/chart.el (chart-axis-draw): * lisp/emacs-lisp/cl-macs.el (cl-defstruct, cl-loop): * lisp/emacs-lisp/eieio-core.el (eieio--add-new-slot): * lisp/eshell/em-unix.el (eshell/info): * lisp/gnus/deuglify.el (gnus-outlook-rearrange-article): * lisp/gnus/gnus-agent.el (gnus-agent-read-article-number): * lisp/gnus/gnus-util.el (gnus-put-overlay-excluding-newlines) (gnus-put-text-property-excluding-newlines): * lisp/gnus/message.el (message-sort-headers): * lisp/gnus/nntp.el (nntp-with-open-group) (nntp-with-open-group-function): * lisp/gnus/nnvirtual.el (nnvirtual-create-mapping): * lisp/mail/feedmail.el (feedmail-fiddle-list-of-fiddle-plexes) (feedmail-queue-reminder, feedmail-mail-send-hook-splitter): * lisp/net/dictionary.el (dictionary-do-matching): * lisp/obsolete/longlines.el (longlines-auto-wrap): * lisp/org/ob-sql.el (org-babel-sql-dbstring-vertica): * lisp/org/ol-bbdb.el (org-bbdb-date-list): * lisp/progmodes/cc-cmds.el (c-mark-function): * lisp/progmodes/cperl-mode.el (cperl-add-tags-recurse) (cperl-add-tags-recurse-noxs-fullpath) (cperl-add-tags-recurse-noxs): * lisp/progmodes/etags.el (tags-search): * lisp/progmodes/verilog-mode.el (verilog-delete-auto-buffer) (verilog-auto-re-search-do, verilog-expand-vector-internal): * lisp/textmodes/reftex-parse.el (reftex-init-section-numbers): * lisp/textmodes/reftex-toc.el (reftex-toc-load-all-files-for-promotion): * lisp/textmodes/sgml-mode.el (html-mode): * lisp/textmodes/table.el (table--transcoord-cache-to-table) (table--transcoord-table-to-cache, table--remove-eol-spaces) (table--region-in-cell-p, table-goto-bottom-right-corner) (table-split-cell-horizontally): * lisp/url/url-handlers.el (url-insert): * lisp/vc/ediff-util.el (ediff-inferior-compare-regions): Fix doc strings to not exceed 80-column limits. (Bug#44858) 2020-12-30 Mattias Engdegård Plug NS memory leaks (bug#45502) * src/nsmenu.m ([EmacsMenu addItemWithWidgetValue:attributes:]): Mark allocated and owned objects for autorelease. 2020-12-30 Juri Linkov Add variables read-char-choice-use-read-key and y-or-n-p-use-read-key * lisp/subr.el (read-char-choice-use-read-key): New variable. (read-char-choice): Use read-char-from-minibuffer when read-char-choice-use-read-key is nil. (y-or-n-p-use-read-key): New variable. (y-or-n-p): Restore old code that calls read-key to use it when y-or-n-p-use-read-key is non-nil. * lisp/dired-aux.el (dired--no-subst-ask, dired-query): * lisp/files.el (files--ask-user-about-large-file) (hack-local-variables-confirm): * lisp/userlock.el (ask-user-about-supersession-threat): * lisp/wid-edit.el (widget-choose): Revert to use read-char-choice instead of read-char-from-minibuffer. https://lists.gnu.org/archive/html/emacs-devel/2020-12/msg01919.html 2020-12-30 Michael Albinus * src/dbusbind.c (XD_BASIC_DBUS_TYPE): Fix error in declaration. 2020-12-30 Juri Linkov In Isearch bind 'C-s M-y' to isearch-yank-pop-only with old code (bug#45483) * lisp/isearch.el (isearch-menu-bar-yank-map, isearch-mode-map): (isearch-forward): Use isearch-yank-pop-only instead of isearch-yank-pop. (isearch-yank-pop): Mention isearch-yank-pop-only. (isearch-yank-pop-only): New command with old body from Emacs 27. 2020-12-30 Stefan Kangas Minor cleanup in keymap.c * src/keymap.c (get_keymap, keymap_parent, Fset_keymap_parent) (store_in_keymap, Fdefine_key, Flookup_key, define_as_prefix) (silly_event_symbol_error, current_minor_maps) (Fcurrent_active_maps, Fkey_binding, Flocal_key_binding) (Fminor_mode_key_binding, Fdefine_prefix_command) (Faccessible_keymaps, Fdescribe_buffer_bindings) (describe_vector, Fwhere_is_internal): Minor cleanup. 2020-12-30 Lars Ingebrigtsen Also count symbol plists in memory-report * lisp/emacs-lisp/memory-report.el (memory-report--symbol-plist): New function. (memory-report): Use it. 2020-12-30 Lars Ingebrigtsen Revert "Switch add-to-ordered-list to eql" This reverts commit b4fd857ead728a06380250c5336c1ab94a7c2f7a. I misunderstood the purposed of the function. 2020-12-30 Stefan Kangas Add some char-table tests * test/src/chartab-tests.el (chartab-test-char-table-p) (chartab-test-char-table-subtype) (chartab-test-char-table-parent) (chartab-test-char-table-extra-slot): New tests. 2020-12-30 Lars Ingebrigtsen Switch add-to-ordered-list to eql * doc/lispref/lists.texi (List Variables): Update documentation. * lisp/subr.el (add-to-ordered-list): Switch to eql (bug#45539). 2020-12-30 Lars Ingebrigtsen Improve the `long' computation of `mode-line-compact' * src/xdisp.c (display_mode_line): Compute `long' based on total window width, and use the passed-in window instead of the selected window. 2020-12-30 Lars Ingebrigtsen Add caveat about the `long' `mode-line-compact' setting * doc/lispref/modes.texi (Mode Line Basics): Elaborate on the `long' setting. 2020-12-30 Tobias Rittweiler Minor refactoring of xref-tests * test/lisp/progmodes/xref-tests.el (xref-tests-data-dir): Rename to 'xref-tests--data-dir'. (xref-tests--matches-in-data-dir, xref-tests--locations-in-data-dir): New functions. Factored out from test cases and updated usage sites to use them. 2020-12-29 Alan Third Don't calculate macOS menu data for GNUstep (bug#45502) * src/nsmenu.m ([EmacsMenu fillWithWidgetValue:]): #ifdef out code that has no effect on GNUstep and autorelease alloc'd objects. 2020-12-29 Artem Loenko * src/Makefile.in (DO_CODESIGN): Fix architecture for Apple Silicon 2020-12-29 Juri Linkov Use explicit "--color=auto" in grep mode to support both GNU grep and ripgrep * lisp/progmodes/grep.el (grep-highlight-matches): (grep-compute-defaults, grep-expand-template): Use "--color=auto" instead of "--color" (bug#44983). 2020-12-29 Juri Linkov * lisp/x-dnd.el (x-dnd-get-drop-x-y): Add safer check for top/left (bug#45277) 2020-12-29 Eli Zaretskii A better fix for process-tests on MS-Windows * src/w32.c (pipe2): When forcibly closing pipe handles due to overflow of FD_SETSIZE, set the handles to -1, to avoid assertion violations in emacs_close. * test/src/process-tests.el (process-tests/fd-setsize-no-crash): No need to skip this test anymore. 2020-12-29 Eli Zaretskii Fix process-tests on MS-Windows * test/src/process-tests.el (process-tests/fd-setsize-no-crash): Skip this test on windows-nt systems, as we cannot use more than FD_SETSIZE file descriptors there: if we try, we crash. 2020-12-29 Dmitry Gutov xref-show-definitions-completing-read: Tune up completion * lisp/minibuffer.el (completion-category-defaults) Use 'substring' completion style for 'xref-location' category by default. * lisp/progmodes/xref.el (xref-show-definitions-completing-read): Assign the 'xref-location' category to the completions. Pass REQUIRE-MATCH=t. 2020-12-29 Michael Albinus Instrument process-tests.el for timeouts on emba 2020-12-29 Philipp Stephani Add a regression test for Bug#24325. * test/src/process-tests.el (process-tests/fd-setsize-no-crash): New unit test. 2020-12-29 Andrea Corallo Fix missing negation handling in a bunch of predicates * lisp/emacs-lisp/comp.el (comp-mvar-fixnum-p) (comp-mvar-symbol-p, comp-mvar-cons-p): Consider neg slot. * test/src/comp-tests.el (comp-test-not-cons): New test. * test/src/comp-test-funcs.el (comp-test-not-cons-f): New function. 2020-12-29 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Better `comp-value-to-cstr'. 2020-12-29 Andrea Corallo Constrain mvars under compare and branch with built-in predicates * lisp/emacs-lisp/comp.el (comp-emit-assume): Update. (comp-known-predicate-p): New function. (comp-add-cond-cstrs): Extend to pattern match predicate calls. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-null-p) (comp-pred-to-cstr): New function. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a number of tests and fix comments. 2020-12-29 Mattias Engdegård More readable keys in NS menu entries (bug#45502) Each menu entry now has the key binding in a right-aligned column, as an attempt to improve readability. Previously the keys were given in brackets immediately following the menu string. * src/nsmenu.m ([EmacsMenu parseKeyEquiv:]): Remove. (skipspc): New helper function. ([EmacsMenu addItemWithWidgetValue:]): Add attributes argument. Use attributed title string. Don't special-case Super bindings. ([EmacsMenu fillWithWidgetValue:]): Compute maximum width. Prepare attributes for title. 2020-12-29 Michael Albinus Sync with Tramp 2.5.0 * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.5.0". * test/lisp/net/tramp-tests.el (tramp--test--deftest-direct-async-process): Check, that `make-process' supports file name handlers. Suppress `internal-default-process-sentinel'. (tramp--test-async-shell-command): Set `proc' proper. (tramp-test32-shell-command-direct-async): Tag it :unstable. 2020-12-29 João Távora Revert "Allow the flymake mode line indicator to be customized" This reverts commit 37049ee78c4576d340781179317e6cbaaf73b6c3. It's not ready to be used, contains some fundamental errors. See bug#33740. 2020-12-29 Andrea Corallo Define `cl-satisfies-deftype' mapping predicate -> type * lisp/emacs-lisp/cl-macs.el (cl-satisfies-deftype): Define symbol property as reverse of `cl-deftype-satisfies'. 2020-12-29 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Better `comp-type-to-cstr'. 2020-12-29 Alan Third Fix crash in NS menu code * src/nsmenu.m (ns_update_menubar): When the menu generation code was copied from xmenu.c the fix for waiting_for_input was lost. Reinstate it. 2020-12-29 Lars Ingebrigtsen Add some tests for align.el 2020-12-29 Glenn Morris * src/xdisp.c (display_mode_line): I guess FALSE should be false. 2020-12-29 Lars Ingebrigtsen Revert the previous display_string change * src/xdisp.c (display_string): Revert adding the additional ignore_text_properties parameter -- it was already covered by the other mix of parameters. 2020-12-29 Lars Ingebrigtsen Fix compact mode line text properties * src/xdisp.c (display_mode_line): Display the compact mode correctly (with text properties) (bug#45520). 2020-12-29 Lars Ingebrigtsen Add a parameter to display_string to allow not ignoring text props * src/xdisp.c (display_string): Add a parameter to allow not ignoring text properties (bug#45520). Adjust callers throughout xdisp.c. 2020-12-29 Lars Ingebrigtsen Introduce new variable mode-line-compact * doc/lispref/modes.texi (Mode Line Basics): Document it (bug#34476). * src/xdisp.c (display_mode_line): Use it. (syms_of_xdisp): New variable mode-line-compact. 2020-12-29 Lars Ingebrigtsen Allow the flymake mode line indicator to be customized * doc/misc/flymake.texi (Customizable variables): Mention it. * lisp/progmodes/flymake.el (flymake-mode-line-indicator-format): New variable (bug#33740). (flymake--mode-line-format): Use it. 2020-12-29 Lars Ingebrigtsen Add a SPLIT parameter to `format-spec' * doc/lispref/strings.texi (Custom Format Strings): Document it. * lisp/format-spec.el (format-spec): Add an optional parameter to return a list of strings (bug#33740). 2020-12-29 Basil L. Contovounesios Reword a long docstring in cc-langs.el * lisp/progmodes/cc-langs.el (c-vsemi-status-unknown-p-fn): Reword docstring to fit within 80 columns and silence the corresponding byte-compiler warning (bug#44858). 2020-12-29 Lars Ingebrigtsen Add a reference between the Strings node and Search/Replace * doc/lispref/strings.texi (Creating Strings): Mention string-replace/replace-regexp-in-string (bug#45516). 2020-12-29 Lars Ingebrigtsen Allow mixing attributes and comments in the diary file * lisp/calendar/diary-lib.el (diary-face-attrs): The attributes don't have to be at the end of the line -- there may be ##warntime or other comments (bug#19965). 2020-12-29 João Távora Robustify completion match scoring for optimized patterns (Bug#42149) The function completion-pcm--hilit-commonality, which propertizes and scores a previously confirmed match, expected its PATTERN argument to match the strings of COMPLETIONS entirely (i.e. up to the string's very end). But sometimes the ending wildcard, represented by the 'any' atom in PATTERN, is optimized away by completion-pcm--optimize-pattern. Although this is mostly benign in terms of highlighting commonality, it leads to incorrect score values. In this change, we ensure that completion-pcm--hilit-commonality is aware of this exception and isn't affected by it. We also document the function a bit better and simplify its workings. Originally reported by Dario Gjorgjevski * lisp/minibuffer.el (completion-pcm--hilit-commonality): Simplify. Add docstring. * lisp/minibuffer.el (completion-pcm--hilit-commonality): Add docstring 2020-12-28 Amin Bandali Display messages sent using ERC's /say * lisp/erc/erc.el (erc-cmd-SAY): Call `erc-display-msg' to display the user's message in the buffer, just like other [non-command] messages. https://lists.gnu.org/r/help-gnu-emacs/2020-12/msg00066.html 2020-12-28 Alan Mackenzie CC Mode: Add newish AWK Mode facilities, as used in gawk-4. * lisp/progmodes/cc-awk.el (c-awk-font-lock-invalid-namespace-separators): New function. (c-awk-context-expand-fl-region): New function. (awk-font-lock-keywords): Enhance handling of function declarations to include :: tokens. Fontify new system variable names FPAT, FUNCTAB, PREC, ROUNDMODE, SYNTAB. Fontify new keywords BEGINFILE and ENDFILE. Fontify new system functions asorti, dcngettext, isarray, patsplit, typeof. Fontify the new directives @include, @load, @namespace. Call c-awk-font-lock-invalid-namespace-separators as a matcher. * lisp/progmodes/cc-fonts.el (top level): No longer require 'cc-awk. * lisp/progmodes/cc-langs.el (c-before-context-fontification-functions): Give AWK the value c-awk-context-expand-fl-region rather than nil. * lisp/progmodes/cc-mode.el (top level): Declare awk-mode-syntax-table as a variable. 2020-12-28 Stefan Monnier * lisp/minibuffer.el: Avoid consecutive `any` in completion patterns (completion-pcm--optimize-pattern): Turn multiple consecutive occurrences of `any` into just a single one. Suggested by Dario Gjorgjevski . 2020-12-28 Glenn Morris Fix package tests for tetris no longer existing as a package * test/lisp/emacs-lisp/package-tests.el (package-test-list-filter-by-name, package-test-list-clear-filter): Use ansi-color instead of tetris, which no longer has a version:. 2020-12-28 Alan Third Fix crash in NS menu code * src/nsmenu.m (ns_update_menubar): Don't assume that the top level menus are correct when populating the submenus. (free_frame_menubar): Clear the menu. ([EmacsMenu removeAllItems]): Actually remove all menu items. 2020-12-28 Andrea Corallo Store function type and expose it with `subr-type' * src/lisp.h (struct Lisp_Subr): Add 'type' field. (SUBR_TYPE): New inline accessor. * src/pdumper.c (dump_subr): Update for 'type' field. * src/data.c (Fsubr_type): New primitive. (syms_of_data): Update. * src/comp.c (ABI_VERSION): Bump new ABI version. (make_subr): Set type. (Fcomp__register_lambda, Fcomp__register_subr) (Fcomp__late_register_subr): Receive and pass subr type to 'make_subr'. * src/alloc.c (mark_object): Mark subr type. * lisp/emacs-lisp/comp.el (comp-func): Change slot type into mvar. (comp-emit-for-top-level, comp-emit-lambda-for-top-level): Pass type mvar to subr register functions. (comp-compute-function-type): Fix-up subr type mvars. * test/src/comp-tests.el (comp-tests-check-ret-type-spec): Use `subr-type'. 2020-12-28 Andrea Corallo Reorder subr register function arguments to make some room * src/comp.c (Fcomp__register_lambda, Fcomp__register_subr) (Fcomp__late_register_subr): Use a rest arg to pass 'doc_idx' and 'intspec' parameters. * lisp/emacs-lisp/comp.el (comp-emit-for-top-level) (comp-emit-lambda-for-top-level): Update. 2020-12-28 Andrea Corallo Propagate function calls also when hiddend under funcall * lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate functions also when called under `funcall'. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. 2020-12-28 Andrea Corallo Compute function type for native compiled functions * lisp/emacs-lisp/comp.el (comp-func): `type' rename from `ret-type-specifier'. (comp-args-to-lambda-list): New function. (comp-compute-function-type): New function from `comp-ret-type-spec'. (comp-final): Update. * test/src/comp-tests.el (comp-tests-check-ret-type-spec): Update. 2020-12-28 Andrea Corallo Improve some slot type into comp.el * lisp/emacs-lisp/comp.el (comp-args-base, comp-args) (comp-nargs, comp-func): Fix the type of some slots. 2020-12-28 Stefan Kangas Minor cleanups in tetris.el * lisp/play/tetris.el: Remove redundant :group args. (tetris-get-tick-period): Drop unnecessary check. (tetris): Stylistic doc fixes. 2020-12-28 Stefan Kangas * lisp/ps-print.el (ps-message-log-max): Remove XEmacs compat code. 2020-12-28 Stefan Kangas Remove redundant 'function's around lambda in vhdl-mode.el * lisp/progmodes/vhdl-mode.el (fboundp, vhdl-sort-alist, lambda) (vhdl-create-mode-menu, vhdl-set-offset, vhdl-set-style) (vhdl-regress-line, vhdl-align-inline-comment-region-1) (vhdl-resolve-paths, vhdl-generate-makefile-1) (vhdl-submit-bug-report): Remove redundant 'function's around lambda. 2020-12-28 Lars Ingebrigtsen Fix too-long feedmail-sendmail-f-doesnt-sell-me-out doc string * lisp/mail/feedmail.el (feedmail-sendmail-f-doesnt-sell-me-out): Fold the example SMTP header using continuation folding. 2020-12-28 Stefan Kangas Fill some auto-generated docstrings * lisp/emacs-lisp/easy-mmode.el (define-minor-mode) (define-globalized-minor-mode): Fill auto-generated documentation strings. (Bug#44858) * lisp/subr.el (internal--fill-string-single-line) (internal--format-docstring-line): New functions. 2020-12-28 Stefan Kangas Make byte-compiler warn about wide docstrings * lisp/emacs-lisp/bytecomp.el (byte-compile--wide-docstring-p): (byte-compile-docstring-length-warn): New defuns. (byte-compile-docstring-max-column): New defcustom. (byte-compile--wide-docstring-substitution-len): New variable. (byte-compile-warning-types, byte-compile-warnings): New value 'docstrings'. (byte-compile-file-form-autoload, byte-compile-file-form-defvar): (byte-compile-file-form-defvar-function, byte-compile-lambda): (byte-compile-defvar, byte-compile-file-form-defalias): Warn about too wide docstrings. (Bug#44858) * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-warn-wide-docstring/defconst) (bytecomp-warn-wide-docstring/defvar): New tests. (bytecomp--define-warning-file-test): New macro. (bytecomp/warn-wide-docstring-autoload\.el) (bytecomp/warn-wide-docstring-custom-declare-variable\.el) (bytecomp/warn-wide-docstring-defalias\.el) (bytecomp/warn-wide-docstring-defconst\.el) (bytecomp/warn-wide-docstring-define-abbrev-table\.el) (bytecomp/warn-wide-docstring-define-obsolete-function-alias\.el) (bytecomp/warn-wide-docstring-define-obsolete-variable-alias\.el) (bytecomp/warn-wide-docstring-defun\.el) (bytecomp/warn-wide-docstring-defvar\.el) (bytecomp/warn-wide-docstring-defvaralias\.el) (bytecomp/warn-wide-docstring-ignore-fill-column\.el) (bytecomp/warn-wide-docstring-ignore-override\.el) (bytecomp/warn-wide-docstring-ignore\.el) (bytecomp/warn-wide-docstring-multiline-first\.el) (bytecomp/warn-wide-docstring-multiline\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-autoload.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-custom-declare-variable.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defalias.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defconst.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-define-abbrev-table.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-define-obsolete-function-alias.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-define-obsolete-variable-alias.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defun.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defvar.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-defvaralias.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-fill-column.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore-override.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-ignore.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-multiline-first.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-wide-docstring-multiline.el: New files. 2020-12-28 Lars Ingebrigtsen Make octave-send-region be asynchronous * lisp/progmodes/octave.el (octave-send-region): Send things asynchronously to the inferior process (bug#24492). 2020-12-28 Yichao Yu Make XIM to work with non-CJK locales * src/xfns.c (best_xim_style): Don't rely on supported_xim_styles (bug#10867). * src/xterm.c (x_draw_window_cursor): Adjust to modern input styles. (xim_instantiate_callback): Ditto. 2020-12-28 Lars Ingebrigtsen Fix background mode on Gnome 3.38 terminals * lisp/term/xterm.el (xterm--version-handler): Adjust to Gnome 3.38 (bug#43891). 2020-12-28 Lars Ingebrigtsen Fix alignment of Java String[] and the like * lisp/align.el (align-rules-list): Allow aligning Java String[] etc (bug#19385). Test case: class X { String field1; String[] field2; int field3; int[] field4; X field5; X[] field6; } 2020-12-28 Lars Ingebrigtsen Document the text property limitations in mode lines * doc/lispref/modes.texi (Properties in Mode, Mode Line Basics): Mention the special text property limitations. 2020-12-28 Lars Ingebrigtsen Allow remember-notes to use the *scratch* buffer * lisp/textmodes/remember.el (remember-notes): Allow the remember-notes buffer to use the *scratch* buffer (as documented) (bug#20740). 2020-12-28 Dmitry Gutov Rename and document the built-in xref-show-definitions-function's * lisp/progmodes/xref.el (xref-show-definitions-buffer): Rename from 'xref--show-defs-buffer'. (xref-show-definitions-buffer-at-bottom): Rename from 'xref--show-defs-buffer-at-bottom'. 2020-12-28 Tim Landscheidt (tiny change) Do not output two spaces for non-autoloaded ieieo constructor functions * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor): Amend format to avoid two spaces for non-autoloaded object constructor functions (bug#45454). 2020-12-27 Stefan Monnier * lisp/emacs-lisp/package.el (package-archives): Add NonGNU ELPA 2020-12-27 Stefan Monnier * lisp/textmodes/rst.el (rst-mode): Don't touch global hook (rst-re): η-reduce. 2020-12-27 Andrea Corallo Add 1+ 1- integer range propagation support * lisp/emacs-lisp/comp-cstr.el (comp-cstr-one): New special var. * lisp/emacs-lisp/comp.el (comp-fwprop-call): Propagate integer ranges on +1 -1. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two tests. 2020-12-27 Andrea Corallo Add sum/subtraction integer range propagation support * lisp/emacs-lisp/comp-cstr.el (comp-range-+, comp-range--): New functions. (comp-cstr-set-range-for-arithm): New macro. (comp-cstr-add-2, comp-cstr-sub-2, comp-cstr-add, comp-cstr-sub): New function. * lisp/emacs-lisp/comp.el (comp-fwprop-call): Wire-up + - integer range propagation. 2020-12-27 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range): Improve. 2020-12-27 Andrea Corallo Add comp-cstr-greatest-in-range comp-cstr-smallest-in-range * lisp/emacs-lisp/comp-cstr.el (comp-cstr-smallest-in-range) (comp-cstr-greatest-in-range): New function. (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): Make use of. 2020-12-27 Andrea Corallo Don't require trailing backslashes in `comp-eln-load-path' (bug#45462) * src/comp.c (Fcomp_el_to_eln_filename): Don't require trailing backslashes in comp-eln-load-path. 2020-12-27 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-27 Alan Third Remove NS menu synthesized events (bug#44333) Remove the frame tracking stuff as it's not used for anything, and move the update tracking into the EmacsMenu class. * src/nsmenu.m (ns_update_menubar): Copy the parsing code from xmenu.c and rework the NS specific code around to update the existing menus instead of rebuilding them completely. (ns_activate_menubar): ([EmacsMenu trackingNotification:]): ([EmacsMenu menuWillOpen:]): ([EmacsMenu menuDidClose:]): Remove unused functions. ([EmacsMenu menuNeedsUpdate:]): Remove menu tracking code and add code to check whether an update is required. ([EmacsMenu fillWithWidgetValue:]): ([EmacsMenu addSubmenuWithTitle:]): ([EmacsMenu initWithTitle:]): Remove references to frame. ([EmacsMenu setFrame:]): Remove method. ([EmacsMenu clear]): Rename to removeAllItems. ([EmacsMenu removeAllItems]): Use built-in removeAllItems, if available. (syms_of_nsmenu): Remove tracking code. * src/nsterm.m (ns_check_menu_open): (ns_check_pending_open_menu): (ns_create_terminal): Remove unused functions. (ns_term_init): Get rid of menu tracking. * src/nsterm.h (EmacsMenu): Remove frame, add needsUpdate and update method definitions. 2020-12-27 Lars Ingebrigtsen Fix up length_internal with degenerate length inputs * src/fns.c (length_internal): Protect against edge conditions. 2020-12-27 Daniel Martín Improve "find definition" in *Help* buffers * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): If our regexp algorithm could not find a location for the symbol definition, resort to find-function--search-by-expanding-macros. * test/lisp/emacs-lisp/find-func-tests.el: Add a automatic test for a function and variable generated by a macro. * etc/NEWS: Advertise the improved functionality (bug#45443). 2020-12-27 Lars Ingebrigtsen Add new predicates for sequence lengths * doc/lispref/sequences.texi (Sequence Functions): Document them. * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Mark them as side-effect-free. * lisp/emacs-lisp/shortdoc.el (list): Mention them. * src/fns.c (Flength): Mention them in the doc string. (length_internal): New function. (Flength_less, Flength_greater, Flength_equal): New defuns. (syms_of_fns): Sym them. 2020-12-26 Lars Ingebrigtsen Improve the edebug-form-data doc string * lisp/emacs-lisp/edebug.el (edebug-form-data): Doc string clarification (bug#42776). 2020-12-26 Andrea Corallo Fix `byte-compile-file' for native compilation (bug#45442) * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Fix logic for native compilation. 2020-12-26 Andrea Corallo Fix missing float handling into `comp-cstr-set-cmp-range' * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range): Add float handling. * test/src/comp-tests.el (comp-tests-type-spec-tests): Update results. 2020-12-26 Stefan Monnier * lisp/forms.el (forms--run-functions): New function (forms--intuit-from-file, forms-save-buffer): Use it. (forms-mode): Use it to fix regression. Remove always-true test. Fix incorrect uses of `fboundp`. (forms--iif-hook): Use `add-hook`. (forms--iif-post-command-hook): Use `remove-hook` and fix typo. (forms--debug): Use `mapconcat`. 2020-12-26 Eli Zaretskii Fix test/src/process-tests on MS-Windows * src/process.c (network_lookup_address_info_1) [WINDOWSNT]: Initialize winsock. 2020-12-26 Michael Albinus Rename Tramp method "media" to "mtp" (Bug#45402) * doc/misc/tramp.texi (Quick Start Guide, GVFS-based methods): Rename "media" to "mtp". (Bug#45402) * etc/NEWS: Rename Tramp method "media" to "mtp". Fix typos. * lisp/net/tramp-gvfs.el (tramp-gvfs-methods, tramp-media-methods) (tramp-gvfs-activation-uri) (tramp-gvfs-handler-volumeadded-volumeremoved) (tramp-get-media-devices, top): Rename "media" to "mtp". (Bug#45402) 2020-12-26 Andrea Corallo * test/src/comp-tests.el (comp-tests-type-spec-tests): Add two more test. 2020-12-26 Andrea Corallo Remove unnecessary lhs rename in `comp-ssa-rename-insn' * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): No point to rename lhs as it's being replaced. 2020-12-26 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add two functions. 2020-12-26 Eli Zaretskii Fix Rmail summary display when From: header is malformed * lisp/mail/rmailsum.el (rmail-header-summary): Remove newlines from the "From:" value, to avoid producing corrupted summary display. 2020-12-26 Andrea Corallo Enable integer range narrowing under compare and branch * lisp/emacs-lisp/comp-cstr.el (comp-cstr-set-cmp-range) (comp-cstr->, comp-cstr->=, comp-cstr-<, comp-cstr-<=): New functions. * lisp/emacs-lisp/comp.el (comp-equality-fun-p) (comp-range-cmp-fun-p): New functions. (comp-collect-rhs): Use `comp-assign-op-p' in place of `comp-set-op-p'. (comp-negate-range-cmp-fun, comp-reverse-cmp-fun): New functions. (comp-emit-assume): Rework to be able to emit also comparison assumption. (comp-add-cond-cstrs-simple): Update for new `comp-emit-assume'. (comp-add-cond-cstrs-simple): Update to emit range assumption. (comp-fwprop-insn): Execute range assumptions. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add tests. 2020-12-26 emacs-f (tiny change) Avoid missing email messages due to rmail-spam-filter * lisp/mail/rmail-spam-filter.el (rsf--rmail-last-seen-message): New function. (rmail-spam-filter, rmail-get-new-mail-filter-spam): Call 'rsf--rmail-last-seen-message' instead of 'rmail-first-unseen-message'. (Bug#45128) 2020-12-26 Zajcev Evgeny Improvements for `:base-uri' svg image property * src/image.c (svg_load): Use ENCODE_FILE for `:base-uri' * doc/lispref/display.texi (SVG Images): Add more documentation for `:base-uri' 2020-12-26 Eli Zaretskii Fix messages with plural forms in todo-mode.el * lisp/calendar/todo-mode.el (todo-move-item, todo-item-undone) (todo-category-completions): Use 'ngettext' instead of hard-coding plural forms by hand. 2020-12-26 Paul Eggert Fix issues with lib/malloc out-of-dir builds Problem reported by Mattias Engdegård in: https://lists.gnu.org/r/emacs-devel/2020-12/msg01626.html * configure.ac: If the scratch_buffer module is enabled, create lib/malloc and (if doing dependencies) lib/deps/malloc. * lib/Makefile.in (DEPFLAGS) [AUTO_DEPEND]: No longer any need to squash lib dependencies into a single directory. (clean): Also remove */*.o and $(DEPDIR)/*/*.d, to clean out malloc/*.o and deps/malloc/*.d. Just remove *.d files in dependencies so that rm does not complain about not being able to remove deps/malloc. (extraclean): Also remove malloc, if it is empty. 2020-12-26 Lars Ingebrigtsen Kill the scdaemon after doing the mml-sec tests * test/lisp/gnus/mml-sec-tests.el (mml-sec-test--kill-gpg-agent): Kill the scdaemon, too (bug#43358). 2020-12-26 Lars Ingebrigtsen Fix infloop in memory-report * lisp/emacs-lisp/memory-report.el (memory-report--object-size-1): Fix infloop on circular lists. 2020-12-25 Lars Ingebrigtsen Fix package reloading problems on systems with symlinks * lisp/emacs-lisp/package.el (package--files-load-history): We're comparing the truenames, so ensure that we've using that everywhere. This fixes problems when there's symlinks in the paths. 2020-12-25 Lars Ingebrigtsen Refactor package--list-loaded-files for easier debuggability * lisp/emacs-lisp/package.el (package--files-load-history) (package--list-of-conflicts): Factor out from... (package--list-loaded-files): ... this function for easier debuggability. 2020-12-25 Lars Ingebrigtsen Disable some semantic tests on systems without g++ * test/lisp/cedet/semantic-utest-ia.el: Disable g++ tests on systems without g++. 2020-12-25 Lars Ingebrigtsen Skip some mml tests that rely on CMS if that's not installed 2020-12-25 Lars Ingebrigtsen Fix gpg-agent killing in mml-sec-tests * test/lisp/gnus/mml-sec-tests.el (mml-sec-test--kill-gpg-agent): Identify the gpg-agent more successfully after the resource dir makeover. 2020-12-25 Glenn Morris Merge from origin/emacs-27 b242bbb073 (origin/emacs-27) ; lisp/org/org.el: Fix Version header. e0fc939c5f Add more details to the "word processor" section fda9b3e83a * src/Makefile.in (DO_CODESIGN): Fix expected architecture... 2020-12-25 Glenn Morris Merge from origin/emacs-27 5d46593568 Support build of Emacs on ARM Macos machines 7f8793e5f1 Update to Org 9.4.4 7b3367a0b5 * lisp/so-long.el: Decrease use of passive voice. a90836c638 * doc/misc/efaq.texi (New in Emacs 27): Add section. 711fe70dd8 * doc/misc/efaq.texi (Latest version of Emacs): Bump version. 52b30834fb * lisp/face-remap.el (face-remap-set-base): Doc fix. (Bug... b3fe0ac62e Correct argument order in comment 2020-12-25 Michael Albinus Tag another Tramp test :unstable on emba * test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process) (tramp-test43-asynchronous-requests): Tag them :unstable on emba. 2020-12-25 Michael Albinus Tag Tramp test :unstable * test/lisp/net/tramp-tests.el (tramp-test31-interrupt-process): Tag it :unstable on emba. 2020-12-25 Eli Zaretskii Fix last change * lisp/international/mule-conf.el (ebcdic-int1, cp256, cp273) (ebcdic-be, cp274, ebcdic-br, cp275, ebcdic-cp-dk, ebcdic-cp-no) (cp277, ebcdic-cp-fi, ebcdic-cp-se, cp278, ebcdic-cp-it, cp280) (ebcdic-jp-e, cp281, ebcdic-cp-es, cp284, ebcdic-cp-gb, cp285) (ebcdic-jp-kana, cp290, ebcdic-cp-fr, cp297): Remove charset aliases, they are not really needed. * lisp/language/english.el (ibm275): Move from here... * lisp/language/european.el (ibm275): ...to here. 2020-12-25 Timo Myyrä Add support for more EBCDIC code pages IBM2XX There was already charset file present in etc/charsets for IBM2XX character sets but there wasn't definitions for them in Emacs. Add character set and coding system definitions for them. * lisp/language/japanese.el (ibm281, ibm290): * lisp/language/european.el (ibm256, ibm273, ibm274, ibm277) (ibm278, ibm280, ibm284, ibm285, ibm297): * lisp/language/english.el (ibm275): New coding systems. * lisp/international/mule-conf.el (ibm256, ibm273, ibm274) (ibm275, ibm277, ibm278, ibm280, ibm281, ibm284, ibm285, ibm290) (ibm297): New charsets. 2020-12-25 Eli Zaretskii Don't compile Gnulib's 'free' on MinGW * nt/mingw-cfg.site (gl_cv_func_free_preserves_errno): Set to "yes" to avoid compiling Gnulib's free.c in the MinGW build. 2020-12-25 Eli Zaretskii Revert "Import posix_spawn from Gnulib." This reverts commit 3ba34141da77a24c251ee6530f3f72a366fe556e. It breaks the MinGW build and should be first tested on a branch. 2020-12-25 Eli Zaretskii Revert "Use posix_spawn if possible." This reverts commit 2c79a8f9210db01c86b0e5f236adeb0509519d30. It breaks the MinGW build in too many ways, and should be first tested on a branch. 2020-12-25 Philipp Stephani Use posix_spawn if possible. posix_spawn is less error-prone than vfork + execve, and can make better use of system-specific enhancements like 'clone' on Linux. Use it if we don't need to configure a pseudoterminal. * src/Makefile.in (LIB_POSIX_SPAWN): New variable. (LIBES): Use it. * src/callproc.c (emacs_spawn): Use posix_spawn on Unix-like system if we don't need to set up a pseudoterminal. 2020-12-25 Philipp Stephani Import posix_spawn from Gnulib. posix_spawn is less error-prone than vfork + exec, and can make use of system-specific optimizations like `clone' on Linux. Import Gnulib replacement so that we can use recent additions like `posix_spawn_file_actions_addchdir'. The only manual change are to admin/merge-gnulib and .gitignore. All other changes are due to rerunning merge-gnulib. * admin/merge-gnulib (GNULIB_MODULES): Add posix_spawn-related modules. * .gitignore: Add new generated files. 2020-12-25 Paul Eggert Update Gnulib. All changes in this commit are autogenerated by running admin/merge-gnulib. 2020-12-25 Paul Eggert Adjust test_module to recent Gnulib changes * test/Makefile.in ($(test_module)): Also compile lib/free.c if it is needed to define rpl_free. 2020-12-25 Paul Eggert Adjust to recent Gnulib changes The latest Gnulib merge brought in free-posix, which causes 'free' to preserve errno. This lets us simplify some Emacs code that calls 'free'. * admin/merge-gnulib (GNULIB_MODULES): Add free-posix. This module is pulled in by canonicalize-lgpl anyway, so we might as well rely on it. * lib-src/emacsclient.c (get_current_dir_name): Sync better with src/sysdep.c. * lib-src/etags.c (process_file_name, etags_mktmp): * lib-src/update-game-score.c (unlock_file): * src/fileio.c (file_accessible_directory_p): * src/sysdep.c (get_current_dir_name_or_unreachable): Simplify by assuming that 'free' preserves errno. * src/alloc.c (malloc_unblock_input): Preserve errno, so that xfree preserves errno. * src/sysdep.c (get_current_dir_name_or_unreachable): Simplify by using strdup instead of malloc+memcpy. No need for realloc (and the old code leaked memory anyway on failure); just use free+malloc. 2020-12-25 Paul Eggert Pacify gcc 10.2 -Wanalyzer-null-argument in gtkutil.c * src/gtkutil.c (xg_item_label_same_p): Simplify. Without this simplification, GCC (Ubuntu 10.2.0-13ubuntu1) -Wanalyzer-null-argument complains about use of NULL where non-null expected as argument of strcmp. 2020-12-25 Andrea Corallo Don't emit byte op-code annotations in LIMPLE to optimize for compile-time Saves 10~15% in bootstrap time. * lisp/emacs-lisp/comp.el (comp-op-case): Don't emit op-code annotaitons. (comp-limplify-lap-inst, comp-add-cond-cstrs-simple) (comp-add-cond-cstrs, comp-tco-func): Update accordingly. 2020-12-25 Eli Zaretskii Add more details to the "word processor" section * etc/TODO (Emacs as word processor): Add more details based on recent discussions. 2020-12-25 E. Choroba (tiny change) cperl-mode: Correctly syntax highlight index/value array slices * lisp/progmodes/cperl-mode.el (cperl-init-faces): %array[0, 1] should use the array face, not the hash one (bug#45373). 2020-12-25 Thibault Polge Make `remove-hook' interactive * lisp/subr.el (remove-hook): Make `remove-hook' interactive (bug#45393). 2020-12-25 Lars Ingebrigtsen Allow `string-limit' to work on encoded strings * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/subr-x.el (string-limit): Allow limiting on encoded strings. 2020-12-25 Lars Ingebrigtsen Remove `string-slice' -- it's not very well defined * doc/lispref/strings.texi (Creating Strings): Ditto. * lisp/emacs-lisp/subr-x.el (string-slice): Remove. 2020-12-24 Lars Ingebrigtsen Unbreak the build on *BSD and Macos after previous gnulib merge * lib/Makefile.in (DEPFLAGS): Unbreak build on BSD derivatives by writing all deps files into a single directory (instead of deps/malloc/*.c). 2020-12-24 Eli Zaretskii Fix the MinGW build broken by Gnulib update * nt/mingw-cfg.site (gl_cv_func_readlink_trailing_slash) (gl_cv_func_readlink_truncate): Define to "yes" to avoid compiling readlink.c. 2020-12-24 Eli Zaretskii Unbreak the MinGW build broken by recent changes in callproc.c * src/w32.h (set_process_dir): * src/w32proc.c (set_process_dir): Change the argument to 'const char *'. * src/lisp.h (make_environment_block): * src/callproc.c (make_environment_block): Now returns 'char **'. (exec_failed) [DOS_NT]: Remove unused function. * src/callproc.c (child_setup): NEW_ARGV and ENV are now 'char **'. Making them 'const' breaks the MinGW build and is not needed for other platforms. * src/callproc.c (emacs_spawn): ARGV and ENVP arguments are now 'char *', for the same reason. * src/process.c (create_process): Adapt to above changes. 2020-12-24 Philipp Stephani Update Gnulib. All changes in this commit are autogenerated by running admin/merge-gnulib. 2020-12-24 Philipp Stephani Ensure that Gnulib objects in subdirectories are built correctly. * lib/Makefile.in (.c.o): Add missing -o option. 2020-12-24 Andrea Corallo Memoize `comp-subtype-p' * lisp/emacs-lisp/comp-cstr.el (comp-subtype-p): Memoize. (comp-cstr-ctxt): Add `subtype-p-mem' slot. 2020-12-24 Andrea Corallo Constrain only mvars that are actually used * lisp/emacs-lisp/comp.el (comp-mvar-used-p, comp-collect-mvars) (comp-collect-rhs): New functions. (comp-add-cond-cstrs-simple, comp-add-cond-cstrs): Update logic. (comp-add-cstrs): Call `comp-collect-rhs' before doing anything else. 2020-12-24 Andrea Corallo Use `comp-assign-op-p' into dead code elimination pass * lisp/emacs-lisp/comp.el (comp-dead-assignments-func): Use `comp-assign-op-p' in place of `comp-set-op-p'. 2020-12-24 Andrea Corallo Fix logic for constraining block with multiple predecessors * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords) (comp-add-cond-cstrs-target-block): Logic update. 2020-12-24 Andrea Corallo Symplify (not t) => nil and (not nil) => t * lisp/emacs-lisp/comp-cstr.el (comp-cstr-negation): Symplify (not t) => nil and (not nil) => t. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add two tests. 2020-12-24 Andrea Corallo Extend cstrs pass to match `unless' like code * lisp/emacs-lisp/comp.el (comp-emit-assume): Add assertion. (comp-add-new-block-between): Fix two typos. (comp-add-cond-cstrs-target-block): Fix typo. (comp-add-cond-cstrs-simple): Logic update. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a test. 2020-12-24 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-limplify-lap-inst): Opencode byte-not. 2020-12-24 Andrea Corallo Extend cstrs pass to match `when' like code * lisp/emacs-lisp/comp.el (comp-emit-assume): Better parameter names. (comp-add-cond-cstrs-simple): New function. (comp-add-cond-cstrs): Rename assume-target -> block-target. (comp-add-cstrs): Call `comp-add-cond-cstrs-simple'. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add test. 2020-12-24 Philipp Stephani Centralize subprocess creation in a single function. Getting the vfork + execve combination right isn't easy, and the code was partially duplicated between callproc.c and process.c. Centralize the spawn operation in a single function that deals with the nasty details. Going forward, we should be able to use posix_spawn from either libc or Gnulib (or CreateProcessW on Windows) in the non-pty case. * src/callproc.c (emacs_spawn): New function to start an asynchronous subprocess. Merge code from 'call_process' and 'create_process' into this function. (call_process): Use new 'emacs_spawn' function. (child_setup): Make static, since there are no users outside this compilation unit left. (CHILD_SETUP_TYPE): Move from header file, since there are no users outside this compilation unit left. * src/process.c (create_process): Use new 'emacs_spawn' function. 2020-12-24 Andrea Corallo Invert basic block argument order in LIMPLE cond-jump * lisp/emacs-lisp/comp.el (comp-emit-cond-jump) (comp-emit-switch, comp-emit-narg-prologue, comp-add-cond-cstrs): Invert basic block argument order in LIMPLE cond-jump. * src/comp.c (emit_limple_insn): Likewise. 2020-12-24 Alan Mackenzie CC Mode: introduce a new cache for brace structures. This fixes bug #45248 Also fix three infinite loops. The new cache accelerates backward searches for struct beginnings in c-looking-at-or-maybe-in-bracelist. * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1): In the final loop over unary operators, add a check (> (point) lim) to avoid certain infinite loops. (c-beginning-of-decl-1): In the first loop add a similar check on point and lim. (c-laomib-loop): New function extracted from c-looking-at-or-maybe-in-bracelist. (c-laomib-cache): New buffer local variable. (c-laomib-get-cache, c-laomib-put-cache, c-laomib-fix-elt) (c-laomib-invalidate-cache): New functions which implement the cache. (c-looking-at-or-maybe-in-bracelist): Replace two invocations of c-go-up-list-backwards with calls to c-parse-state. Extract the new function c-laomib-loop. Insert code which calls c-laomib-loop minimally, with the help of the new cache. * lisp/progmodes/cc-mode.el (c-basic-common-init): Initialise the new cach (at mode start). (c-before-change): Invalidate the new cache. (c-fl-decl-start): Add an extra check (> (point) bod-lim) to prevent looping. Determine the enclosing brace to pass as arguments to c-looking-at-or-maybe-in-bracelist. 2020-12-24 Stefan Monnier * src/dispnew.c (sit_for): Fix bug#45292 When reading, prefer staying in the selected-window over preserving the current-buffer. 2020-12-24 Stefan Monnier * lisp/emacs-lisp/lisp-mnt.el (lm-section-end): Stop at the right heading `lisp-outline-level` assumes the match-data is that set by `outline-regexp`. 2020-12-23 TEC authinfo-mode: add option to not hide any elements (and add font-lock) * lisp/auth-source.el (authinfo-hide-elements): New user option. (authinfo--keywords): New variable. (authinfo-mode): Use it. (authinfo--hide-passwords): Use doc-face instead of warning for the passwords. (authinfo--toggle-display): Ditto. 2020-12-23 Adam Porter * lisp/tab-line.el: New options, faces, and functions * lisp/tab-line.el: (tab-line-tab-face-functions): New option. (tab-line-tab-inactive-alternate): New face. (tab-line-tab-special): New face. (tab-line-tab-face-inactive-alternating): New function. (tab-line-tab-face-special): New function. (tab-line-format-template): Use them. * etc/NEWS: Update. With thanks to Juri Linkov and Eli Zaretskii for their guidance. 2020-12-23 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-23 Philipp Stephani * src/Makefile.in (DO_CODESIGN): Fix expected architecture name. 2020-12-23 Philipp Stephani Declare argument vector as char *const *. This matches the signature of execve. * src/callproc.c (child_setup): Declare NEW_ARGV as char *const *. 2020-12-23 Philipp Stephani * .clang-format (ColumnLimit): Fix line length. 2020-12-23 Lars Ingebrigtsen Support build of Emacs on ARM Macos machines * configure.ac: Add support for aarch64-* on Macos (i.e., 64-bit ARM) (bug#43369). 2020-12-23 Philipp Stephani Pass C string pointer to current directory to 'child_setup'. This avoids the impression that 'child_setup' could do anything Lisp-related. * src/callproc.c (child_setup): Pass C pointer to current directory name. (call_process): Adapt callers. * src/process.c (create_process): Adapt callers. 2020-12-23 Andrea Corallo Negate only values while constraining variables (bug#45376) * lisp/emacs-lisp/comp-cstr.el (comp-cstr-value-negation): New function. * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Use `comp-cstr-value-negation'. * test/src/comp-test-funcs.el (comp-test-45376-1-f): Rename. (comp-test-45376-2-f): New function. * test/src/comp-tests.el (bug-45376-1): Rename test. (bug-45376-2): Add test. 2020-12-23 Andrea Corallo Fix non range cstr union operation * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-homogeneous): Add range parameter and handle the non range case. (comp-cstr-union-1-no-mem, comp-cstr-intersection-no-mem): Update `comp-cstr-union-homogeneous' call sites. 2020-12-23 Philipp Stephani Allocate environment block before forking. While 'child_setup' carefully avoids calls to async-signal-unsafe functions like 'malloc', it seems simpler and less brittle to use normal allocation outside the critical section between 'fork' and 'exec'. * src/callproc.c (make_environment_block): New function to create the environment block for subprocesses. Code largely extracted from 'child_setup' and adapted to use 'xmalloc' instead of 'alloca'. (child_setup): Remove environment block allocation in favor of passing the environment block as command-line argument. (call_process): Adapt to new calling convention. * src/process.c (create_process): Adapt to new calling convention. 2020-12-23 Andrea Corallo Follow cstr basic blocks to perform latch recognition * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix latch recognition. 2020-12-23 Philipp Stephani Reject filenames containing NUL bytes. Such filenames are dangerous, as Emacs would silently only use the part up to the first NUL byte. Reject them explicitly instead. * src/coding.c (encode_file_name_1): New helper function. (encode_file_name): Check that encoded filename doesn't contain a NUL byte. (syms_of_coding): Define 'filenamep' symbol. * test/src/fileio-tests.el (fileio-tests/null-character): New unit test. * etc/NEWS: Document change. 2020-12-23 Philipp Stephani Remove an unused parameter from 'child_setup' function. * src/callproc.c (child_setup): Remove unused SET_PGRP parameter. * src/callproc.c (call_process): * src/process.c (create_process): Fix all callers. 2020-12-23 Andrea Corallo Make input constraints into memoization hash immutable (bug#45376) * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1) (comp-cstr-intersection): Copy input before soting it into the memoization hash table. 2020-12-23 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-cstr-copy): Tweak for perf. 2020-12-23 Juri Linkov Show image as text when trying to search/replace in image buffer (bug#25905) * lisp/image-mode.el (image-mode-isearch-filter): New function. (image-mode--setup-mode): Use it to add it as :before-while to isearch-filter-predicate. 2020-12-23 Lars Ingebrigtsen Improve the string-limit doc string * lisp/emacs-lisp/subr-x.el (string-limit): Mention truncate-string-to-width in the doc string. 2020-12-23 Lars Ingebrigtsen Allow string-slice to take zero-length matches * lisp/emacs-lisp/subr-x.el (string-slice): Allow zero-length matches. Code adapted from s.el by Magnar Sveen. 2020-12-23 Lars Ingebrigtsen Revert recent server.el frame-focus changes * lisp/server.el (server-switch-buffer, server-execute): Revert 9cef8fc8cdb5e6e18c9cf617eed3808d67ca340e and c5f2eb56c0164e87abc881955552e0b718921186. This change led to regressions in non-new-frame circumstances. 2020-12-23 Łukasz Stelmach Handle gracefully href="" in base tags in shr * net/shr.el (shr-tag-base): shr-parse-base can't handle empty strings gracefully. Don't call it unless href is a non-empty string (bug#45355). 2020-12-23 Stefan Kangas Fix use of obsolete 'emergency' warning level * src/alloc.c (display_malloc_warning): Use new style ':emergency' warning level instead of obsolete 'emergency'. 2020-12-23 Zajcev Evgeny Fix use of obsolete 'error' warning level * src/fileio.c (auto_save_error): Use new style ':error' warning level instead of obsolete 'error'. 2020-12-23 Alan Third Use new NSString lisp methods * src/nsfont.m (ns_otf_to_script): (ns_registry_to_script): (ns_get_req_script): Use NSString conversion methods. * src/nsimage.m ([EmacsImage allocInitFromFile:]): Use NSString conversion methods. * src/nsmenu.m (ns_menu_show): Use NSString conversion methods. * src/nsselect.m (symbol_to_nsstring): (ns_string_to_pasteboard_internal): Use NSString conversion methods. * src/nsterm.m (ns_term_init): ([EmacsView initFrameFromEmacs:]): Use NSString conversion methods. * src/nsxwidget.m (nsxwidget_webkit_uri): (nsxwidget_webkit_title): (js_to_lisp): Use NSString conversion methods. (build_string_with_nsstr): Functionality replaced by NSString extensions. 2020-12-22 Liāu, Kiong-Gē 廖宮毅 (tiny change) Fix --with-nativecomp Windows build (bug#45303) Liāu, Kiong-Gē 廖宮毅 * src/comp.c (eln_load_path_final_clean_up): Fix argument order. * nt/mingw-cfg.site (ac_cv_func_strsignal): Force `ac_cv_func_strsignal' to no. 2020-12-22 Alan Mackenzie Align the word "Function" in profiler's headers over the actual functions * lisp/profiler.el (profiler-report-render-calltree-1): Replace two occurrences of "Function" with " Function". 2020-12-22 Eric Abrahamsen Ensure that Gnus servers are open(able) before searching them * lisp/gnus/gnus-search.el (gnus-search-run-search): Imap servers need to be opened (made into the "current server") before we manipulate the nnimap-buffer. (gnus-search-run-search): Sneakily fix regexp. (gnus-search-indexed-parse-output): We need to pass the server name in here, otherwise nnmaildir won't know how to make this the "current server". 2020-12-22 Alan Mackenzie Align profiler's header-line-format to column 0, to work correctly on tty's * lisp/profiler.el (profiler-report-header-line-format): Propertize the first space with 'display '(space :align-to 0). 2020-12-22 Alan Mackenzie Re-order the items in `profiler-report' output. Putting the usage figures first on the line will eliminate the truncation of function names. lisp/profiler.el (profiler-version): Change to "28.1". (profiler-format): Enhance, so that a width of zero means print the string without padding or truncation. (profiler-report-cpu-line-format, profiler-report-memory-line-format): Amend for the new layout. The number of places for the cpu samples has been reduced from 19 to 12 (enough for ~30 years at 1,000 samples per second). (profiler-report-line-format, profiler-report-describe-entry): Amend for the new order of arguments to profiler-format. etc/NEWS (Specialized Modes): Add an entry documenting this change. doc/lispref/debugging.texi (Profiling): Describe the new ordering of the items in place of the old ordering. 2020-12-22 Michael Albinus Reorganize Tramp header lines * lisp/net/tramp.el: Move header lines Version, Package-Requires, Package-Type and URL ... * lisp/net/trampver.el: ... here. 2020-12-22 Bastien Guerry Update to Org 9.4.4 2020-12-22 Daniel Martín Fix wdired-get-filename when ls -F marks symlinks * lisp/wdired.el (wdired-get-filename): In some systems like BSD or macOS, "ls -F" marks symlinks with a trailing "@". Add logic accounting for this so that wdired-get-filename returns the correct filename. This change also fixes test "wdired-test-bug34915" on macOS and BSD systems (bug#34915). 2020-12-22 Lars Ingebrigtsen Make string-pad take an optional START parameter * lisp/emacs-lisp/subr-x.el (string-pad): Alter the calling convention. 2020-12-22 Lars Ingebrigtsen Change the string-limit parameter semantics * lisp/emacs-lisp/subr-x.el (string-limit): Alter the calling convention. 2020-12-22 Lars Ingebrigtsen Further string-clean-whitespace tweaks * lisp/emacs-lisp/subr-x.el (string-clean-whitespace): Put \r back, which was mistakenly removed. 2020-12-22 Dmitry Gutov (ruby-mode-set-encoding): Use 'save-restriction' * lisp/progmodes/ruby-mode.el (ruby-mode-set-encoding): Use 'save-restriction' (bug#45349). 2020-12-21 Basil L. Contovounesios Tiny string-clean-whitespace simplification * lisp/emacs-lisp/subr-x.el (string-clean-whitespace): Streamline by treating replacement string as being literal and having fixed case. 2020-12-21 Lars Ingebrigtsen Make string-chop-newline more efficient * lisp/emacs-lisp/subr-x.el (string-chop-newline): Make more efficient. 2020-12-21 Lars Ingebrigtsen Make string-clean-whitespace work on non-ASCII whitespace, too * lisp/emacs-lisp/subr-x.el (string-clean-whitespace): Also clean up non-ASCII whitespace. 2020-12-21 Lars Ingebrigtsen Add try-completion to the string shortdoc * lisp/emacs-lisp/shortdoc.el (string): Mention try-completion here. 2020-12-21 Lars Ingebrigtsen Add string-chop-newline * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/subr-x.el (string-chop-newline): Add new function. 2020-12-21 Lars Ingebrigtsen Fix shorter-than-length case for string-limit * lisp/emacs-lisp/subr-x.el (string-limit): Fix shorter-than-length case. 2020-12-21 Andrea Corallo Fix a test in auth-source-tests.el * test/lisp/auth-source-tests.el (auth-source-test-secrets-create-secret): Redefine `read-string' respecting the original number of arguments. 2020-12-21 Andrea Corallo Fix a bunch of known type specifiers * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Fixes for: =, string-search, substring. 2020-12-21 Andrea Corallo Fix `comp-add-call-cstr' and add a test * lisp/emacs-lisp/comp.el (comp-add-call-cstr): Fix it. * test/src/comp-tests.el (assume-in-loop-1): New test. * test/src/comp-test-funcs.el (comp-test-assume-in-loop-1-f): New function. 2020-12-21 Andrea Corallo Fix value type inference for doubly negate constraints * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Do not propagate in case of double negation. * test/src/comp-test-funcs.el (comp-test-assume-double-neg-f): New function. * test/src/comp-tests.el (assume-double-neg): New test. 2020-12-21 Andrea Corallo Fix native compiler tests when they are bytecompiled * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-test-ts) (comp-cstr-typespec-test, comp-cstr-typespec-tests-alist): Eval also at compile time. * test/src/comp-tests.el (comp-tests-type-spec-tests) (comp-tests-define-type-spec-test): Likewise. 2020-12-21 Andrea Corallo Simplify correctly (or (integer 1 1) (not (integer 1 1))) as t * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Logic update. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a test. 2020-12-21 Andrea Corallo Guarantee fwprop convergence and termination * lisp/emacs-lisp/comp.el (comp-emit-call-cstr): Have new-mvar as LHS *and* RHS when constraining in and to ensure monotonicity and fwprop convergence. (comp-fwprop): Raise a warning for debug reasons in case fwprop does not converge within 100 iterations. 2020-12-21 Andrea Corallo Allow for overlapping src and dst in cstr set operations * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem) (comp-cstr-union-1, comp-cstr-intersection-no-mem) (comp-cstr-intersection): Logic update. 2020-12-21 Andrea Corallo Symplify type specifier (not t) as nil * lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem): Add logic. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add two tests. 2020-12-21 Andrea Corallo Enhance type inference constraining function arguments * lisp/emacs-lisp/comp.el: Add some commentary. (comp-cond-cstrs-target-mvar): Rename and update docstring. (comp-add-cond-cstrs): Update to use `comp-cond-cstrs-target-mvar'. (comp-emit-call-cstr, comp-lambda-list-gen, comp-add-call-cstr): New functions. (comp-add-cstrs): Call `comp-add-call-cstr'. * test/src/comp-tests.el (comp-tests-type-spec-tests): Update two type specifier tests. 2020-12-21 Andrea Corallo Allow for modifying insn-cell inside `comp-loop-insn-in-block' * lisp/emacs-lisp/comp.el (comp-loop-insn-in-block): Update. 2020-12-21 Andrea Corallo Rename comp-cond-cstr into comp-add-cstrs * lisp/emacs-lisp/comp.el (comp-add-cond-cstrs-target-mvar) (comp-add-cond-cstrs, comp-add-cstrs): Rename comp-cond-cstr -> comp-add-cstrs. 2020-12-21 Andrea Corallo Two minors in comp.el * lisp/emacs-lisp/comp.el (comp-known-func-cstr-h) (comp-ret-type-spec): Style. 2020-12-21 Andrea Corallo Add a type specifier test to comp-cstr-tests.el * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a test. 2020-12-21 Andrea Corallo Enumerate and split type specifier tests in comp-tests.el to ease debug * test/src/comp-tests.el (comp-tests-type-spec-tests): Enumerate. (comp-tests-define-type-spec-test): New function. (comp-tests-define-type-spec-tests): New macro to expand tests. 2020-12-21 Andrea Corallo Improve constraint simplification logic in comp-cstr.el * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): Simplify. (comp-cstr-empty-p): New Funchion. (comp-split-pos-neg): Minor. (comp-normalize-typeset): Logic update. (comp-union-typesets): Minor. (comp-intersect-two-typesets): New functio. (comp-intersect-typesets): Logic update. (comp-range-union, comp-range-intersection): Minor. (comp-cstr-union-homogeneous, comp-cstr-union-1-no-mem) (comp-cstr-intersection-homogeneous) (comp-cstr-intersection-no-mem, comp-cstr-negation) (comp-type-spec-to-cstr, comp-cstr-to-type-spec): Logic update. * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): Simplify. 2020-12-21 Lars Ingebrigtsen Rename slice-string to string-slice * lisp/emacs-lisp/subr-x.el (string-slice): Rename from slice-string. * doc/lispref/strings.texi (Creating Strings): Ditto. 2020-12-21 Lars Ingebrigtsen Add `string-pad' * doc/lispref/strings.texi (Creating Strings): Document it. * lisp/emacs-lisp/shortdoc.el (string): Add example. * lisp/emacs-lisp/subr-x.el (string-pad): New function. 2020-12-21 Andrea Corallo Fix a number of type specifier simplification tests * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Fix a number of tests. 2020-12-21 Andrea Corallo Improve comp-fwprop pass Wire-up comp-cstr.el routines in fwprop and constraint mvars also on the else side of branches. * lisp/emacs-lisp/comp.el (comp-emit-assume) (comp-cond-cstr-target-mvar, comp-cond-cstr-func) (comp-fwprop-insn): Logic update. (comp-mvar-value-vld-p, comp-mvar-propagate, comp-fwprop-call): Handle neg slot. 2020-12-21 Lars Ingebrigtsen Beef up the Emacs string utility set a bit * doc/lispref/strings.texi (Modifying Strings): Document them. * lisp/emacs-lisp/shortdoc.el (string): Add examples. * lisp/emacs-lisp/subr-x.el (string-clean-whitespace) (string-fill, string-limit, string-lines, slice-string): New functions. 2020-12-21 Stefan Kangas * lisp/so-long.el: Decrease use of passive voice. Suggested by Richard Stallman . 2020-12-21 Eli Zaretskii Fix frame creation on X when tool bar is disabled * src/xterm.c (handle_one_xevent): Restrict the fix for bug#44002 to situations when we are asked by the WM to create a window with bogus 1x1 dimensions. (Bug#44794) 2020-12-21 Andrea Corallo Add mvar pretty print support when dumping LIMPLE * lisp/emacs-lisp/comp.el (comp-prettyformat-mvar) (comp-prettyformat-insn): New function. (comp-log-func): Update to use `comp-prettyformat-insn'. (comp-finalize-phis): Change LIMPLE phi format to ease `comp-prettyformat-insn' destructuring. 2020-12-21 Michael Albinus Fix permission problem in Tramp's copy-file * lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-directly): Take care of PRESERVE-UID-GID. 2020-12-21 Stefan Kangas * doc/misc/efaq.texi (New in Emacs 27): Add section. 2020-12-21 Stefan Kangas Drop XEmacs support for EDE ELisp projects * lisp/cedet/ede/proj-elisp.el (ede-proj-target-elisp): Remove XEmacs support. (ede-xemacs-compiler): Make obsolete. 2020-12-21 Stefan Kangas * doc/misc/efaq.texi (Latest version of Emacs): Bump version. 2020-12-21 Andrea Corallo Fix Windows build link-time zlib error (bug#45303) * src/lisp.h (md5_gz_stream): Declare. * src/comp.c (accumulate_and_process_md5) (final_process_md5, md5_gz_stream): Remove. * src/decompress.c (accumulate_and_process_md5) (final_process_md5, md5_gz_stream): Move from comp.c. 2020-12-21 Andrea Corallo * src/comp.c (eln_load_path_final_clean_up): Fix call arg order (bug#45303). * src/comp.c (Fcomp__compile_ctxt_to_file): Fix sigmask store/restore. 2020-12-21 Lars Ingebrigtsen Fix problem with entering Gnus groups when Gnus isn't running * lisp/gnus/gnus-sum.el (gnus-update-summary-mark-positions): Don't bug out when Gnus isn't running (bug#45330). 2020-12-21 Dario Gjorgjevski Make python-mode fontify more assignment statements * lisp/progmodes/python.el (python-font-lock-assignment-matcher): New function to match assignment statements. (python-rx): Add `assignment-target' and `grouped-assignment-target'. (python-font-lock-keywords-maximum-decoration): Add new matchers (bug#45341). 2020-12-21 Dmitry Gutov Generic-ify xref-location-column * lisp/progmodes/xref.el (xref-location-column): Create a generic from xref-file-location-column, to use in the common rendering code (bug#36967). (xref--insert-xrefs): Update accordingly. * test/lisp/progmodes/xref-tests.el (xref-matches-in-directory-finds-two-matches-on-the-same-line) (xref-matches-in-directory-finds-an-empty-line-regexp-match): Ditto. 2020-12-21 Juri Linkov De-duplicate lines in Xref buffers * lisp/progmodes/xref.el (xref--insert-xrefs): Render matches coming from the same line together (bug#36967). (xref--item-at-point): Account for the above. 2020-12-21 Philipp Stephani Unbreak build after commit 1a0a11f7d2d1dbecb9f754b1e129d50e489058e6. The commit only changed a comment in 'struct buffer', so the portable dumper doesn't need to be adapted. * src/pdumper.c (dump_buffer): Update hash for 'struct buffer'. 2020-12-20 Alan Third Fix image cache lookup * src/image.c (lookup_image): ignore_colors should be false as we want to search for images with matching colors. 2020-12-20 Alan Third Remove unnecessary string conversion * src/nsfns.m (ns_set_represented_filename): NSString can load List strings directly now. 2020-12-20 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-20 Andrea Corallo Have native compiler always preserve multibyte strings (bug#45342) * lisp/emacs-lisp/comp.el (comp-final): Escape multibyte string when offloading compilation to child process. * test/src/comp-test-funcs.el (comp-test-45342-f): New function * test/src/comp-tests.el (bug-45342): New test 2020-12-20 Juri Linkov * lisp/simple.el (goto-line-read-args): Use number-at-point (bug#45199) * lisp/subr.el (goto-char--read-natnum-interactive): Add the value of point to the end of default values, and move function slightly higher. 2020-12-20 Andrea Corallo Fix missing 'gcc_jit_type_get_const' macro definition (bug#45303). * src/comp.c (gcc_jit_type_get_pointer): Define macro. 2020-12-20 Michael Albinus Improve make-process in Tramp * doc/misc/tramp.texi (Remote processes): Remove INSIDE_EMACS restriction. (Frequently Asked Questions, External packages): Add indices. * etc/NEWS: 'start-process-shell-command' and 'start-file-process-shell-command' do not support the old calling conventions any longer. * lisp/subr.el (start-process-shell-command) (start-file-process-shell-command): Remove old calling conventions. * lisp/net/tramp-compat.el (remote-file-error): Remove, it isn't necessary. * lisp/net/tramp.el (tramp-handle-make-process): Remove special shell handling. Support environment variables. * test/lisp/net/tramp-tests.el (tramp--test--deftest-direct-async-process): Skip for mock method. (tramp--test-async-shell-command): Suppress `shell-command-sentinel'. (tramp-test32-shell-command, tramp-test33-environment-variables): Adapt tests. (tramp-test32-shell-command-direct-async) (tramp-test33-environment-variables-direct-async): New tests. 2020-12-20 Basil L. Contovounesios Inhibit buffer hooks in temporary buffers Give get-buffer-create an optional argument to inhibit buffer hooks in internal or temporary buffers for efficiency (bug#34765). * etc/NEWS: Announce new parameter of get-buffer-create and generate-new-buffer, and that with-temp-buffer and with-temp-file now inhibit buffer hooks. * doc/lispref/buffers.texi (Buffer Names): Fix typo. (Creating Buffers): Document new parameter of get-buffer-create and generate-new-buffer. (Buffer List, Killing Buffers): Document when buffer hooks are inhibited. (Current Buffer): * doc/lispref/files.texi (Writing to Files): Document that with-temp-buffer and with-temp-file inhibit buffer hooks. * doc/lispref/internals.texi (Buffer Internals): Document inhibit_buffer_hooks flag. Remove stale comment. * doc/misc/gnus-faq.texi (FAQ 5-8): * lisp/simple.el (shell-command-on-region): Fix indentation. * lisp/files.el (kill-buffer-hook): Document when hook is inhibited. (create-file-buffer): * lisp/gnus/gnus-uu.el (gnus-uu-unshar-article): * lisp/international/mule.el (load-with-code-conversion): * lisp/mh-e/mh-xface.el (mh-x-image-url-fetch-image): * lisp/net/imap.el (imap-open): * lisp/net/mailcap.el (mailcap-maybe-eval): * lisp/progmodes/flymake-proc.el (flymake-proc--read-file-to-temp-buffer) (flymake-proc--copy-buffer-to-temp-buffer): Simplify. * lisp/subr.el (generate-new-buffer): Forward new optional argument to inhibit buffer hooks to get-buffer-create. (with-temp-file, with-temp-buffer, with-output-to-string): * lisp/json.el (json-encode-string): Inhibit buffer hooks in buffer used. * src/buffer.c (run_buffer_list_update_hook): New helper function. (Fget_buffer_create): Use it. Add optional argument to set inhibit_buffer_hooks flag instead of comparing the buffer name to Vcode_conversion_workbuf_name. All callers changed. (Fmake_indirect_buffer, Frename_buffer, Fbury_buffer_internal) (record_buffer): Use run_buffer_list_update_hook. (Fkill_buffer): Document when buffer hooks are inhibited. Use run_buffer_list_update_hook. (init_buffer_once): Inhibit buffer hooks in Vprin1_to_string_buffer. (Vkill_buffer_query_functions, Vbuffer_list_update_hook): Document when hooks are inhibited. * src/buffer.h (struct buffer): Update inhibit_buffer_hooks commentary. * src/coding.h (Vcode_conversion_workbuf_name): * src/coding.c (Vcode_conversion_workbuf_name): Make static again since it is no longer needed in src/buffer.c. (code_conversion_restore, code_conversion_save, syms_of_coding): Prefer boolean over integer constants. * src/fileio.c (Finsert_file_contents): Inhibit buffer hooks in " *code-converting-work*" buffer. * src/window.c (Fselect_window): Fix grammar. Mention window-selection-change-functions alongside buffer-list-update-hook. * test/src/buffer-tests.el: Fix requires. (buffer-tests-inhibit-buffer-hooks): New test. 2020-12-20 Mattias Engdegård image-cache-size improvements Implement for non-Cairo X11 and NS. Count masks as well, and XImage objects on X11. * src/image.c (image_size_in_bytes): New. (image_frame_cache_size): Use image_size_in_bytes. * src/nsterm.h: * src/nsimage.m (ns_image_size_in_bytes, [EmacsImage sizeInBytes]): New function and method. * src/w32gui.h: * src/w32term.c (w32_image_size): Update signature. 2020-12-20 Eric Abrahamsen Fix default value of gnus-registry-register-all: should be t * lisp/gnus/gnus-registry.el (gnus-registry-register-all): This was meant to default to t; only an oversight during code review left it as nil. 2020-12-19 Dmitry Gutov (tiny change) Jamie Beardslee * lisp/progmodes/project.el (project-execute-extended-command): New command. (project-prefix-map): Binding for it. 2020-12-19 Andrea Corallo Add 'internal_condition_case_5' (bug#45303). * src/lisp.h (internal_condition_case_4) (internal_condition_case_5): Declare. * src/eval.c (internal_condition_case_5): New function. * src/comp.c (eln_load_path_final_clean_up): Use 'internal_condition_case_5'. 2020-12-19 Juri Linkov * lisp/image-mode.el: Use one timer and lock for slow remote calls (bug#45256) * lisp/image-mode.el (image-auto-resize-timer): New variable. (image--window-state-change): Cancel previous timer and remember new timer in image-auto-resize-timer. (image--window-state-change): New variable. (image-fit-to-window): When image-fit-to-window-lock is nil, call image-toggle-display-image ignoring 'remote-file-error'. 2020-12-19 Juri Linkov No need to set isearch-input-method-function in isearch-transient-input-method 2020-12-19 Andrea Corallo Add 'gcc_jit_type_get_const' to Windows dynamic load machinery (bug#45303). * src/comp.c: Add 'gcc_jit_type_get_const' to windows dynamic load machinery. 2020-12-19 Stefan Kangas Convert apropos-internal from C to Lisp (Bug#44529) This runs insignificantly faster in C, and is already fast enough on reasonably modern hardware. We might as well lift it to Lisp. This benchmark can be used to verify: (benchmark-run 10 (apropos-command "test")) => (0.12032415399999999 2 0.014772391999999995) ; C => (0.13513192100000002 2 0.017216643000000004) ; Lisp * lisp/subr.el (apropos-internal): New defun, converted from C. * src/keymap.c (Fapropos_internal): Remove defun. (apropos_accum): Remove function. (apropos_predicate, apropos_accumulate): Remove variables. (syms_of_keymap): Remove defsubr for Fapropos_internal, and definitions of the above variables. * test/src/keymap-tests.el (keymap-apropos-internal) (keymap-apropos-internal/predicate): Move tests from here... * test/lisp/subr-tests.el (apropos-apropos-internal) (apropos-apropos-internal/predicate): ...to here. 2020-12-19 Eli Zaretskii * lisp/face-remap.el (face-remap-set-base): Doc fix. (Bug#45264) 2020-12-19 Vasilij Schneidermann Correct argument order in comment * etc/ETAGS.EBNF (position): Correct comment. 2020-12-19 Stefan Kangas Shorten some over-wide docstrings in functions and macros * lisp/allout-widgets.el (allout-widgets-tally-string): * lisp/array.el (array-mode): * lisp/calc/calc-units.el (calc-spn): * lisp/cedet/ede/generic.el (ede-generic-new-autoloader): * lisp/cedet/semantic/analyze.el (semantic-analyze-find-tag-sequence-default) (semantic-analyze-find-tag-sequence): * lisp/cedet/semantic/bovine/c.el (semantic-c-evaluate-symbol-for-hideif): * lisp/cedet/semantic/bovine/make.el (semantic-lex-make-command): * lisp/cedet/semantic/db-typecache.el (semanticdb-typecache-include-tags): * lisp/cedet/semantic/doc.el (semantic-documentation-for-tag): * lisp/cedet/semantic/tag-ls.el (semantic--tag-attribute-similar-p): * lisp/emacs-lisp/advice.el (ad-map-arglists): * lisp/emacs-lisp/bytecomp.el (byte-constant2) (byte-save-restriction, byte-catch-OBSOLETE, byte-unwind-protect): * lisp/emacs-lisp/cl-generic.el (cl-generic-combine-methods): * lisp/emacs-lisp/seq.el (seq-partition, seq-set-equal-p) (seq-filter): * lisp/faces.el (face-attribute-specified-or, face-equal): * lisp/info.el (Info-prev-reference-or-link) (Info-next-reference-or-link): * lisp/isearch.el (with-isearch-suspended): * lisp/kmacro.el (kmacro-step-edit-macro, kmacro-set-counter): * lisp/org/org-agenda.el (org-agenda-filter-by-category): * lisp/ses.el (ses-cell-symbol): * lisp/w32-fns.el (w32-shell-dos-semantics): Shorten doc strings to not exceed 80-column limits. (Bug#44858) 2020-12-19 Stefan Kangas Shorten over-wide docstrings in variables * lisp/cedet/semantic/util-modes.el (semantic-highlight-func-popup-menu): * lisp/emacs-lisp/elint.el (elint-top-form-logged): * lisp/erc/erc-dcc.el (erc-dcc-list): * lisp/expand.el (expand-pos): * lisp/font-lock.el (cpp-font-lock-keywords-source-depth): * lisp/gnus/gnus-sum.el (gnus-sort-gathered-threads-function): * lisp/gnus/message.el (message-cite-style-thunderbird): * lisp/gnus/nnmh.el (nnmh-be-safe): * lisp/gnus/nntp.el (nntp-open-telnet-envuser): * lisp/international/mule-cmds.el (current-transient-input-method): * lisp/net/tramp.el (tramp-file-name-structure): * lisp/org/ob-R.el (org-babel-R-write-object-command): * lisp/org/org-attach.el (org-attach-after-change-hook): * lisp/org/org.el (org-stamp-time-of-day-regexp): * lisp/progmodes/elisp-mode.el (elisp-xref-find-def-functions): * lisp/progmodes/ruby-mode.el (ruby-block-mid-re): * lisp/progmodes/verilog-mode.el (verilog-cache-enabled): * lisp/term.el (term-scroll-end): * lisp/textmodes/table.el (table-command-remap-alist) (table-inhibit-auto-fill-paragraph, table-command-remap-alist): * lisp/vc/ediff-diff.el (ediff-ignore-similar-regions): * lisp/vc/ediff-wind.el (ediff-mouse-pixel-threshold): * lisp/vc/smerge-mode.el (smerge-refine-ignore-whitespace): * lisp/vc/vc.el (vc-log-short-style): * lisp/view.el (view-exit-action): Shorten doc strings to not exceed 80-column limits. (Bug#44858) 2020-12-19 Stefan Kangas Shorten over-wide docstrings in defcustoms * lisp/calc/calc.el (calc-embedded-announce-formula-alist) (calc-embedded-open-formula, calc-embedded-close-formula) (calc-matrix-mode): * lisp/cedet/semantic/imenu.el (semantic-imenu-sort-bucket-function): * lisp/emacs-lisp/find-func.el (find-feature-regexp): * lisp/emulation/cua-base.el (cua-paste-pop-rotate-temporarily): * lisp/emulation/viper-init.el (viper-fast-keyseq-timeout) (viper-related-files-and-buffers-ring): * lisp/emulation/viper-keym.el (viper-want-ctl-h-help): * lisp/gnus/gnus-art.el (gnus-article-banner-alist): * lisp/gnus/gnus-group.el (gnus-keep-same-level): * lisp/gnus/gnus-score.el (gnus-adaptive-word-length-limit): * lisp/gnus/gnus-sum.el (gnus-inhibit-user-auto-expire): * lisp/gnus/gnus-uu.el (gnus-uu-ignore-files-by-type) (gnus-uu-do-not-unpack-archives) (gnus-uu-unmark-articles-not-decoded) (gnus-uu-correct-stripped-uucode, gnus-uu-save-in-digest) (gnus-uu-post-include-before-composing): * lisp/gnus/gnus.el (gnus-use-long-file-name) (gnus-install-group-spam-parameters): * lisp/gnus/message.el (message-cite-style): * lisp/gnus/nnmail.el (nnmail-split-fancy-with-parent-ignore-groups) (nnmail-cache-ignore-groups): * lisp/ido.el (ido-rewrite-file-prompt-functions): * lisp/mail/feedmail.el (feedmail-fiddle-plex-user-list) (feedmail-spray-address-fiddle-plex-list): * lisp/mh-e/mh-e.el (mh-annotate-msg-hook): * lisp/net/imap.el (imap-process-connection-type): * lisp/net/rcirc.el (rcirc-omit-threshold): * lisp/net/tramp-sh.el (tramp-copy-size-limit): * lisp/nxml/nxml-mode.el (nxml-default-buffer-file-coding-system): * lisp/obsolete/landmark.el (landmark-max-stall-time): * lisp/obsolete/tls.el (tls-checktrust): * lisp/org/org-indent.el (org-indent-mode-turns-off-org-adapt-indentation) (org-indent-mode-turns-on-hiding-stars): * lisp/org/org-protocol.el (org-protocol-project-alist): * lisp/progmodes/cc-vars.el (c-doc-comment-style): * lisp/progmodes/cperl-mode.el (cperl-indent-subs-specially): * lisp/progmodes/flymake-proc.el (flymake-proc-allowed-file-name-masks): * lisp/progmodes/hideif.el (hide-ifdef-expand-reinclusion-protection): * lisp/simple.el (minibuffer-history-case-insensitive-variables): * lisp/tab-bar.el (tab-bar-close-last-tab-choice): * lisp/textmodes/reftex-vars.el (reftex-special-environment-functions): * lisp/vc/ediff-init.el (ediff-startup-hook, ediff-cleanup-hook) (ediff-metachars): * lisp/vc/ediff-merg.el (ediff-show-clashes-only): * lisp/vc/ediff-mult.el (ediff-default-filtering-regexp): Shorten doc strings to not exceed 80-column limits. (Bug#44858) 2020-12-19 Mattias Engdegård Correct units and spacing in memory-report * lisp/emacs-lisp/memory-report.el (memory-report--format): Use IEC unit prefixes and a space before. 2020-12-19 Basil L. Contovounesios Set indent-tabs-mode for c-mode in .dir-locals.el * .dir-locals.el (c-mode): Enforce existing indent-tabs-mode policy. (Bug#34765) 2020-12-19 Eli Zaretskii Fix over-wide doc strings * lisp/vc/ediff-init.el (ediff-before-flag-bol) (ediff-after-flag-eol, ediff-before-flag-mol): * lisp/org/org-ctags.el (org-ctags-open-link-functions): * lisp/mail/feedmail.el (feedmail-sendmail-f-doesnt-sell-me-out): * lisp/language/ethio-util.el (ethio-use-three-dot-question) (ethio-quote-vowel-always, ethio-W-sixth-always): * lisp/gnus/nnvirtual.el (nnvirtual-mapping-table) (nnvirtual-mapping-offsets, nnvirtual-mapping-reads) (nnvirtual-mapping-marks, nnvirtual-info-installed): * lisp/gnus/gnus.el (charset): * lisp/gnus/deuglify.el (gnus-outlook-deuglify-unwrap-stop-chars) (gnus-outlook-deuglify-no-wrap-chars) (gnus-outlook-deuglify-attrib-cut-regexp): Fix doc strings to not exceed 80-column limits. (Bug#44858) 2020-12-19 Andrea Corallo Clean-up 'internal_condition_case_4' orphan declaration (bug#45303). * src/lisp.h (internal_condition_case_4): Declaration remove. 2020-12-19 Andrea Corallo Move diagnostic pragmas out of namespace-scope (bug#45303). Pragmas in GCC don't work reliably within function: * src/comp.c (emit_static_object) (Fcomp_native_driver_options_effective_p) (Fcomp_libgccjit_version): Move pragmas out of name-scope. 2020-12-19 Andrea Corallo Fix Windows libgccjit library name (bug#45303). * lisp/term/w32-win.el (dynamic-library-alist): Fix Windows libgccjit library name. * src/emacs.c (syms_of_emacs): Likewise. 2020-12-19 Roland Winkler bibtex-mode: Permit user-defined schemes for sorting entries. * lisp/textmodes/bibtex.el (bibtex-maintain-sorted-entries): New allowed value (INDEX-FUN PREDICATE). (bibtex-entry-index, bibtex-lessp): Use it. (bibtex-init-sort): Rename from bibtex-init-sort-entry-class-alist. 2020-12-19 Stefan Monnier * lisp/emacs-lisp/package.el (package-quickstart-refresh): Fix last change Actually allow byte-compiling the file. Reported by Basil L. Contovounesios . 2020-12-18 Glenn Morris Merge from origin/emacs-27 48b9c47805 Minor fixes in authors.el and in tarball-making instructions d7a4ceaa1e ; Add a new item to TODO 64fe805b19 Improve documentation of 'query-replace' 7cacf5da47 Update to Org 9.4.3 # Conflicts: # admin/authors.el 2020-12-18 João Távora Document that flymake-diag-region saves match data The typical use of this function (which is parsing compiler diagnostic messages), lends itself too easily to one the problems in bug#29193. Make it a friendlier API. * doc/misc/flymake.texi (Flymake utility functions): Document that flymake-diag-region saves match data. * lisp/progmodes/flymake.el (flymake-diag-region): Document that this saves match data. 2020-12-18 Stefan Monnier * lisp/emacs-lisp/package.el: Byte compile the quickstart file Earlier tests had found problems when byte-compiling the file, but later investigations indicated the problem was not directly related. The performance difference is appreciable. (package-quickstart-refresh): Byte compile the file. (package-activate-all): Load byte-compiled version if available. (package--quickstart-maybe-refresh): Delete the byte-compiled file as well. 2020-12-18 Eli Zaretskii Minor fixes in authors.el and in tarball-making instructions * admin/authors.el (authors): Make the error message more helpful. (authors-ignored-files, authors-renamed-files-alist): Update. 2020-12-18 Stefan Monnier * lisp/progmodes/which-func.el (which-func-update): Bind `non-essential` 2020-12-18 Mattias Engdegård Follow good regexp practice These were found by relint 1.19. * lisp/help-fns.el (help-fns--first-release): Use string-end instead of line-end when matching a file name. * lisp/org/ob-core.el (org-babel--string-to-number): Put hyphen last in alternative. * lisp/org/org-agenda.el (org-agenda-filter): Escape '+' correctly. 2020-12-18 Michael Albinus * lisp/net/tramp.el (tramp-handle-make-process): Handle shell commands. 2020-12-18 João Távora Save match data in flymake-diag-region (bug#29193) * lisp/progmodes/flymake.el (flymake-diag-region): Move save-match-data up. 2020-12-18 Lars Ingebrigtsen Fix previous frame-focus server.el change * lisp/server.el (server-execute): Always give Emacs focus, whether we open a new frame or not. 2020-12-18 Eric Abrahamsen Fix regexp in IMAP search-string preparation * lisp/gnus/gnus-search.el (gnus-search-run-search): This was failing to catch all of X-GM-RAW. 2020-12-18 Dmitry Gutov flymake-diag-region: Fix the recent test breakage * lisp/progmodes/flymake.el (flymake-diag-region): Make sure to save the match data (bug#29193). 2020-12-18 Stefan Monnier * lisp/org/org-refile.el (org-copy): Fix missing obsoletion version 2020-12-17 Andrea Corallo Makefile.in (w32locallisppath): Add PATH_REL_LOADSEARCH (bug#45303). * nt/epaths.nt (PATH_REL_LOADSEARCH): Define macro (bug#45303). 2020-12-17 Michael Albinus Some minor Tramp changes * doc/lispref/os.texi (Timers): Speak about `remote-file-error'. * doc/misc/tramp.texi (Frequently Asked Questions): Speak about `remote-file-error'. (External packages): New subsection "Timers". * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Adapt error function. Handle coding. * lisp/net/tramp.el (tramp-handle-make-process): Adapt error function. 2020-12-17 Stefan Kangas Remove incorrect comment from erc-goodies.el * lisp/erc/erc-goodies.el (erc-move-to-prompt-setup): Remove incorrect comment; the XEmacs compat code has been removed. 2020-12-17 Stefan Monnier Fix my two most common causes of all windows/frames redisplay * src/buffer.c (Fkill_all_local_variables): Only redisplay the buffer. * src/window.c (set_window_scroll_bars): Only redisplay the window. 2020-12-17 Zajcev Evgeny Make "Invalid modifier in string" ordinary invalid-read-syntax error * src/lread.c (read1): Raise "Invalid modifier in string" error as `invalid-read-syntax'. This fixes raise of unhandled error in `elisp--local-variables' 2020-12-17 Lars Ingebrigtsen Fix fallback use of write-file in ido-mode * lisp/ido.el (ido-file-internal): Make `write-file' respect the directory we've navigated to (bug#28513). 2020-12-17 Philipp Stephani Ensure that byte compilation works for relative files (Bug#45287). * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Don’t fail if target filename doesn’t contain a directory name. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--target-file-no-directory): New unit test. 2020-12-17 Lars Ingebrigtsen Default the init file to init.el, not init * lisp/startup.el (startup--load-user-init-file): Make the default init file be "init.el", not "init" (bug#45197). 2020-12-16 Pankaj Jangid Fix resetting of gnus-pick-line-number * lisp/gnus/gnus-sum.el (gnus-summary-read-group-1): Move setting gnus-pick-line-number from here (bug#45269)... (gnus-summary-prepare): To here. This ensures that the number is reset when regenerating the buffer, for instance when limiting it. 2020-12-16 Juri Linkov Don't show minibuffer keybindings for suggestions in read-extended-command * lisp/simple.el (read-extended-command): Use 'affixation-function' instead of 'annotation-function'. (Bug#45035) (read-extended-command--affixation): New function created from 'read-extended-command--annotation'. 2020-12-16 Juri Linkov Give affixation-function higher priority over annotation-function (bug#45234) * doc/lispref/minibuf.texi (Completion Variables) (Programmed Completion): Describe precedence rules of affixation-function and annotation-function. * lisp/minibuffer.el (completion-metadata) (completion-extra-properties): Describe precedence rules of affixation-function and annotation-function. (minibuffer-completion-help): First try to apply affixation-function, if there is no such function, try annotation-function. 2020-12-16 Eli Zaretskii Improve documentation of 'query-replace' * doc/emacs/search.texi (Query Replace): Add 'E' to the list of characters one can type at 'query-replace' prompt. (Bug#45273) 2020-12-16 Bastien Guerry Update to Org 9.4.3 Fix #45259 2020-12-16 Harald Jörg CPerl-mode: don't treat <<>> as starting a here-doc * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Detect the "<<>>" operator (Bug#42455). * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-45255): Verify that <<>> does not start a HERE-doc. 2020-12-16 E. Choroba Update short docs in cperl-mode * lisp/progmodes/cperl-mode.el (cperl-short-docs): Update with some missing entries. (Bug#45254) 2020-12-16 Dmitry Gutov (flymake-diag-region): Fall back to (end-of-thing 'symbol) * lisp/progmodes/flymake.el (flymake-diag-region): Fall back to (end-of-thing 'symbol) (bug#29193). 2020-12-15 Eli Zaretskii Fix C-n/C-p when a line starts with an image * src/xdisp.c (move_it_to): Handle the case where the second call to move_it_in_display_line_to under MOVE_TO_Y takes us farther from TO_CHARPOS than the first call. This fixes values returned by pos-visible-in-window-p and posn-at-point when the screen line starts with invisible text followed by an image. (Bug#9092) 2020-12-15 Glenn Morris Merge from origin/emacs-27 668f0a7f84 Fix point location when completing in gdb-mi.el 2dbc95063b Update to Org 9.4.2 f22856a5c5 Update to Org 9.4.1 # Conflicts: # doc/misc/org.texi # lisp/org/ob-core.el # lisp/org/ob-ruby.el # lisp/org/ob-screen.el # lisp/org/ol-gnus.el # lisp/org/ol.el # lisp/org/org.el 2020-12-15 Glenn Morris Merge from origin/emacs-27 62a6934af9 Fix crash when using XRender and restoring image from X (b... de032d41c6 Bind k to image-kill-buffer in doc-view-mode-map. 2020-12-15 Eli Zaretskii Fix setting breakpoints in "M-x gdb" when a source file is missing * lisp/progmodes/gdb-mi.el (gdb-get-location): Fix control flow logic when "fullname" is not found. Unquote and unescape the full file name by calling gdb-mi--c-string-from-string. FLAG is a string, not a character. (Bug#15051) 2020-12-15 Alan Mackenzie CC Mode: Optimize for scrolling large buffers containing few braces This fixes bug #25706. It particularly pertains to .h files which contain only macro definitions. Many of these files are to be found, for example, in the driver sections of the Linux kernel. * lisp/progmodes/cc-engine.el (c-beginning-of-statement-1, c-on-identifier) (c-syntactic-skip-backward, c-find-decl-prefix-search, c-find-decl-spots) (c-forward-name, c-back-over-list-of-member-inits) (c-back-over-member-initializers, c-looking-at-inexpr-block) (c-guess-basic-syntax): Give search limits to, or amend existing ones to c-backward-syntactic-ws, c-forward-syntactic-ws, c-backward-token-2, c-beginning-of-statement-1. (c-determine-limit-no-macro): New function. (c-determine-limit-get-base): Remove unlimited invocation of c-backward-syntactic-ws. (c-determine-limit): Exclude movement between two different macros. Use new function c-determine-limit-no-macro. (c-back-over-list-of-member-inits): New parameter `limit'. * lisp/progmodes/cc-fonts.el (c-font-lock-complex-decl-prepare) (c-font-lock-declarations, c-font-lock-c++-using): Give search limits to, or amend existing ones to c-backward-syntactic-ws, c-beginning-of-decl-1. * lisp/progmodes/cc-mode.el (c-unfind-coalesced-tokens, c-before-changer) (c-fl-decl-end): Give search limits to, or amend existing ones to c-backward-syntactic-ws, c-forward-syntactic-ws, skip-chars-backward, skip-chars-forward. 2020-12-15 Michael Albinus Revert last change in tramp-maybe-open-connection) * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Revert last change, it causes trouble. 2020-12-15 Lars Ingebrigtsen Fix electric pairs in rst-mode * lisp/textmodes/rst.el (rst-mode-syntax-table): Mark pairs in the syntax table (bug#23413). (rst-mode): Instead of setting electric-pair-pairs. 2020-12-15 Lars Ingebrigtsen Bind current-minibuffer-command to this-command * src/callint.c (Fcall_interactively): Bind current-minibuffer-command to this-command, as documented (bug#45177). 2020-12-14 Glenn Morris * doc/lispref/errors.texi (Standard Errors): Fix xref. Though I am not sure "report a bug" is helpful. 2020-12-14 Glenn Morris * doc/emacs/indent.texi (Indent Convenience): Fix use of @xref. 2020-12-14 Glenn Morris Tiny fix for lispref/variables.texi * doc/lispref/variables.texi (Converting to Lexical Binding): @strong{Note...} produces a spurious cross-reference in Info; reword to avoid that. 2020-12-14 Stefan Monnier * lisp/emacs-lisp/gv.el (error): Allow it as a place 2020-12-14 Alan Mackenzie Optimise c-font-lock-<>-arglists, particularly for buffers with few <..> pairs * lisp/progmodes/cc-fonts.el (c-font-lock-<>-arglists): In place of a regexp search for a complicated and slow regexp, search simply for "<" outside of literals together with add hoc testing of other requirements for a <...> match. * lisp/progmodes/cc-langs.el (c-nonsymbol-key): New c-lang-defvar from the c-lang-const. 2020-12-14 Alan Third Fix error with fn key in NS port (bug#44533) * src/nsterm.m ([EmacsView keyDown:]): Move the correction for fn key handling to before the modifiers are calculated. (cherry picked from commit 7970610d48701a949ce443c94c71eac47d044197) 2020-12-14 Alan Mackenzie Optimise c-parse-state for large buffers with few (if any) braces. * lisp/progmodes/cc-engine.el (c-get-fallback-scan-pos): Search a maximum of 50,000 characters back for the two BODs. Return nil if we dont' find them. (c-parse-state-get-strategy): For strategy `forward', always use the position `good-pos' for `start-point', even when there's a change of current macro. Deal with a possible return value of nil from c-get-fallback-scan-pos (as above). (c-invalidate-state-cache-1): For `c-state-cache-good-pos', instead of sometimes using the minimum scan pos (leading to extensive scanning of the entire buffer) use a point close to `here'. 2020-12-14 Lars Ingebrigtsen Add some admin/emake comments 2020-12-14 Gregory Heytings Make the emake error messages red * admin/emake: Colorize error messages. 2020-12-14 Michael Albinus Add 'remote-file-error' for Tramp * doc/lispref/errors.texi (Standard Errors): Add 'remote-file-error'. * etc/NEWS: Mention 'remote-file-error'. * lisp/net/ange-ftp.el (ftp-error): Add error condition `remote-file-error'. * lisp/net/tramp-cmds.el (tramp-cleanup-all-connections): Do not set `tramp-locked'. * lisp/net/tramp-compat.el (remote-file-error): Define if it doesn't exist. * lisp/net/tramp-sh.el (tramp-timeout-session): Check for "locked" property. (tramp-maybe-open-connection): Simplify. * lisp/net/tramp.el (tramp-locked, tramp-locker): Remove them. (tramp-file-name-handler): Do not set them. (with-tramp-locked-connection): New defmacro. (tramp-accept-process-output, tramp-send-string): Use it. * src/fileio.c (Qremote_file_error): New error symbol. * test/lisp/net/tramp-tests.el (tramp-test43-asynchronous-requests): Adapt test. Remove :unstable tag. 2020-12-14 Eli Zaretskii Improve accuracy of scrolling commands * src/xdisp.c (move_it_vertically_backward): Don't rely on line_bottom_y for accurate calculation of the next screen line's Y coordinate: it doesn't work when the current screen line was not yet traversed. Instead, record the previous Y coordinate and reseat there if overshoot is detected. * src/window.c (window_scroll_pixel_based): Calculate the new window-start point more accurately when screen lines have uneven height. (Bug#8355) 2020-12-14 Stefan Kangas Make XEmacs entry in the FAQ more contemporary * doc/misc/efaq.texi (Difference between Emacs and XEmacs): Make XEmacs entry in the FAQ more contemporary. Remove part about re-using XEmacs code; this is not likely to be relevant these days and in any case is not a frequently asked question. (Bug#45235) 2020-12-14 Eli Zaretskii Fix point location when completing in gdb-mi.el * lisp/progmodes/gdb-mi.el (def-gdb-auto-update-handler): Don't force window-start position, so that redisplay doesn't move point when popping completion window below the GUD one. (Bug#45052) 2020-12-14 Eric Abrahamsen Fix logic of gnus-search-imap-handle-date * lisp/gnus/gnus-search.el (gnus-search-imap-handle-date): Just rewrite this whole ridiculous function. 2020-12-14 Stefan Kangas * lisp/play/5x5.el: Fix typo. Remove redundant :group args. 2020-12-14 Tim Ruffing (tiny change) * etc/emacs.service: * etc/emacs.service (ExecStart): Make Emacs exit from systemd work better (bug#45181). The problem here is the exit code 15, which emacs will return *only* if it has received SIGTERM. I believe what's happening here is that emacsclient will call kill-emacs but not wait until the emacs server has properly shut down. However, it's supposed to wait for the shutdown as an "ExecStop" command according to "man systemd.service". So since the process is still alive when emacsclient comes back, systemd will still issue SIGTERM, making emacs return 15 (maybe after calling kill- emacs again?!). 2020-12-14 Robert Thorpe (tiny change) Mention how to handle user names with @ in rmail * doc/emacs/rmail.texi (Remote Mailboxes): Mention how to work around the problem with user names like foo@example.com (bug#16946). 2020-12-14 Daniel Martín Make goto-char offer the number at point as default * lisp/subr.el (read-natnum-interactive): New function to read natural numbers for interactive functions. * src/editfns.c (Fgoto_char): Call read-natnum-interactive from the interactive definition of goto-char to offer the number at point as default. Also expand the docstring to document this new interactive behavior. * doc/emacs/basic.texi (Moving Point): Expand the Emacs manual to document this new behavior. * etc/NEWS: And announce it (bug#45199). 2020-12-14 Lars Ingebrigtsen Tool bar documentation clarification: Mention forcing updates * doc/lispref/keymaps.texi (Tool Bar): Document that flipping the status of a tool bar item doesn't necessarily update the visuals (bug#42957). 2020-12-14 Tomas Nordin (tiny change) Fix narrow-to-defun in python-mode * lisp/progmodes/python.el (python-nav--beginning-of-defun): Make narrow-to-defun work better in classes (bug#40563). 2020-12-14 Lars Ingebrigtsen Add a new recursively bound `current-minibuffer-command' variable * doc/lispref/commands.texi (Command Loop Info): Document it (bug#45177). * src/callint.c (Fcall_interactively): Bind it. * src/keyboard.c (syms_of_keyboard): Define current-minibuffer-command. 2020-12-14 Ulrich Ölmann (tiny change) Add a DirectoryMode to the Emacs Server example * doc/emacs/misc.texi (Emacs Server): Update example * doc/emacs/misc.texi (Emacs Server): The socket containing directory is per default created with permissions 0755 by the socket-unit. However this is considered unsafe since commit [1], so enhance unit example with systemd configuration directive `DirectoryMode=' to create it with safe permissions, see https://www.freedesktop.org/software/systemd/man/systemd.socket.html#DirectoryMode= [1] 2003-04-12 "(server-socket-name): Use new safe location for socket." 2020-12-14 Stefan Kangas Update value of frame-title-format in FAQ * doc/misc/efaq.texi (Displaying the current file name in the titlebar): Fix default value of frame-title-format. 2020-12-14 Stefan Kangas Don't recommend setnu and wb-line-number * doc/misc/efaq.texi (Displaying the current line or column): Remove reference to third-party alternatives to display-line-numbers-mode. 2020-12-14 Stefan Kangas Remove more references to old versions from FAQ * doc/misc/efaq.texi (Learning how to do something) (Installing Emacs, Emacs for GNUstep, Emacs for macOS): Remove more references to Emacs 22 and older from FAQ. 2020-12-14 Stefan Kangas Make XEmacs compat variable warning-level-aliases obsolete * lisp/emacs-lisp/warnings.el (warning-level-aliases): Make obsolete. (display-warning): Warn when using one of the warning levels defined in above obsolete variable. (Bug#44849) * lisp/url/url-proxy.el (url-find-proxy-for-url): Replace obsolete warning type 'critical with :error. 2020-12-14 Stefan Kangas Prefer setq to set+quote * lisp/cedet/semantic/senator.el (senator-lazy-highlight-update): * lisp/emulation/edt.el (edt-find, edt-restore-key) (edt-remember): * lisp/eshell/em-ls.el (eshell-ls--insert-directory): * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): * lisp/progmodes/hideif.el (hide-ifdef-mode): * test/lisp/url/url-future-tests.el (url-future-tests): Prefer setq to set+quote. 2020-12-14 Stefan Kangas * lisp/bookmark.el: Doc fix. 2020-12-14 Torsten Hilbrich Merge branch 'feature/integration-of-dictionary-el' b6227446d9 Importing dictionary module 658ec3ccee Renamed connection.el e2ebffdd62 Renamed link.el 723906c444 Removed some compatibility parts in dictionary 5dc17d73b0 Add :version tag to defcustom statement 49c250b388 Don't check coding-system-list for existence 99a7e918c8 Don't check for existence of defface 1773b9b687 Dictionary now uses button 329b6a0210 Adding details page for dictionary 837505075c Fix dictionary tooltip mode 2f1e4fbc42 Support nil value for dictionary-server 91ff1c8f7c Move placement of dictionary-tooltip-mouse-event 28fe134971 Remove text property from empty line 7ca331a4f9 Add history of search words to read-string d5a4da25b0 * lisp/net/dictionary.el: Remove remnants of package cc5f280378 * lisp/net/dictionary.el: Add lexical-binding:t 09952ce434 Removed useless check for popup-menu 81ebe86d8d Show error message when asking to match for nothing 0044a2e888 * lisp/net/dictionary-connection.el: Add lexical-binding:t f58443780c * lisp/net/dictionary-connection.el: Remove obsolete Version 54a3964e29 Update GPL version a557a103cc * lisp/net/dictionary-connection.el: Prefer defsubst ffa7d6671d * lisp/net/dictionary.el: Prefer defsubst over defmacro 4deb8618e4 * lisp/net/dictionary.el (dictionary-mode): Use setq-local d30618cbc1 * lisp/net/dictionary.el (dictionary-tooltip-mode): Use ... a25a12ddaf Use when where else case returns nil 89e9c1686e * lisp/net/dictionary.el (dictionary-display-more-info): ... d466231c3e A number of docstring fixes b18217eb87 A number of docstring fixes ca0de4d1e0 * etc/NEWS: Add entry for dictionary.el 62d14e10f9 * lisp/net/dictionary.el (dictionary-pre-buffer): Unify casing 2020-12-14 Torsten Hilbrich * lisp/net/dictionary.el (dictionary-pre-buffer): Unify casing Let all the buttons begins with an upper-case character and the rest of the text is lower-case. 2020-12-14 Torsten Hilbrich * etc/NEWS: Add entry for dictionary.el 2020-12-14 Torsten Hilbrich A number of docstring fixes * lisp/net/dictionary-connection.el (dictionary-connection-p, dictionary-connection-read-point, dictionary-connection-process, dictionary-connection-buffer, dictionary-connection-set-read-point, dictionary-connection-set-process, dictionary-connection-set-buffer, dictionary-connection-create-data, dictionary-connection-open, dictionary-connection-status, dictionary-connection-close, dictionary-connection-send, dictionary-connection-send-crlf, dictionary-connection-read, dictionary-connection-read-crlf, dictionary-connection-read-to-point): Fix docstring 2020-12-14 Torsten Hilbrich A number of docstring fixes * lisp/net/dictionary.el (dictionary-set-server-var, dictionary-mode, dictionary, dictionary-new-buffer, dictionary-reply-code, dictionary-reply, dictionary-reply-list, dictionary-open-server, dictionary-check-connection, dictionary-mode-p, dictionary-close, dictionary-read-reply, dictionary-split-string, dictionary-read-reply-and-split, dictionary-read-answer, dictionary-check-reply, dictionary-coding-system, dictionary-decode-charset, dictionary-encode-charset, dictionary-check-initial-reply, dictionary-store-state, dictionary-restore-state, dictionary-new-search, dictionary-new-search-internal, dictionary-do-search, dictionary-pre-buffer, dictionary-post-buffer, dictionary-display-search-result, dictionary-display-word-entry, dictionary-display-word-definition, dictionary-mark-reference, dictionary-select-dictionary, dictionary-display-dictionarys, dictionary-display-dictionary-line, dictionary-set-dictionary, dictionary-special-dictionary, dictionary-display-more-info, dictionary-select-strategy, dictionary-do-select-strategy, dictionary-display-strategies, dictionary-display-strategy-line, dictionary-set-strategy, dictionary-new-matching, dictionary-do-matching, dictionary-display-only-match-result, dictionary-display-match-result, dictionary-display-match-result, dictionary-display-match-lines, dictionary-search, dictionary-previous, dictionary-help, dictionary-match-words, dictionary-mouse-popup-matching-words, dictionary-popup-matching-words, dictionary-tooltip-mode, dictionary-tooltip-mouse-event): Fix docstring The following kind of changes were made: - finish first line with a full stop (.) - mention parameter in upper-case whenever possible (considering the length constraints) 2020-12-14 Torsten Hilbrich * lisp/net/dictionary.el (dictionary-display-more-info): Spelling fix Fix the spelling in the error message for non-existing dictionary. 2020-12-14 Torsten Hilbrich Use when where else case returns nil * lisp/net/dictionary-connection.el (dictionary-connection-status, dictionary-connection-close): Instead of returning nil in the else case of the if just use when. Was suggested by Stefan Kangas. 2020-12-14 Torsten Hilbrich * lisp/net/dictionary.el (dictionary-tooltip-mode): Use setq-local * lisp/net/dictionary.el (dictionary-mode): Use setq-local * lisp/net/dictionary.el: Prefer defsubst over defmacro 2020-12-14 Torsten Hilbrich * lisp/net/dictionary-connection.el: Prefer defsubst Use defsubst instead of defmacro here. It was suggested by Stefan Kangas to replace the defmacro here and, looking at the lispref, defsubst seems to be a suitable replacement providing the same benefit of inlining functionality as the defmacro. 2020-12-14 Torsten Hilbrich Update GPL version * lisp/net/dictionary.el: Use GPL version 3 or later * lisp/net/dictionary-connection.el: Use GPL version 3 or later 2020-12-14 Torsten Hilbrich * lisp/net/dictionary-connection.el: Remove obsolete Version * lisp/net/dictionary-connection.el: Add lexical-binding:t 2020-12-14 Torsten Hilbrich Show error message when asking to match for nothing * lisp/net/dictionary.el (dictionary-popup-matching-words): Show error if neither the parameter nor the word at point are defined This avoids an error later on when the nil value is used as string within dictionary-encode-charset. 2020-12-14 Torsten Hilbrich Removed useless check for popup-menu * lisp/net/dictionary.el (dictionary-popup-matching-words): No need to check for popup-menu, the code is part of Emacs now and the function should always be there 2020-12-14 Torsten Hilbrich * lisp/net/dictionary.el: Add lexical-binding:t Fixing all the issues found by this. A number of unused variables were reported here. 2020-12-14 Gabriel do Nascimento Ribeiro New option tab-bar-history-buttons-show * lisp/tab-bar.el (tab-bar-history-buttons-show): If true, show back and forward buttons when tab-bar-history-mode is enabled. (Bug#45227) Copyright-paperwork-exempt: yes 2020-12-14 Juri Linkov Allow creating a new tab for tab-switcher from the minibuffer (bug#45072) * lisp/tab-bar.el (tab-switcher): Simplify by let-binding tab-bar-new-tab-choice to t before calling tab-bar-new-tab that handles the case when it's called in the active minibuffer. 2020-12-14 Juri Linkov Don't show matches with no input for nil icomplete-show-matches-on-no-input * lisp/icomplete.el (icomplete-show-matches-on-no-input): Fix docstring. (icomplete--initial-input): New internal variable. (icomplete-minibuffer-setup): Set buffer-local icomplete--initial-input to icomplete--field-string. (icomplete-ret, icomplete-force-complete-and-exit) (icomplete--sorted-completions, icomplete-exhibit): Compare icomplete--initial-input with icomplete--field-string to detect no input. (Bug#19031) etc/NEWS: Remove duplicate entry. 2020-12-14 João Távora Inhibit quit in ElDoc timer functions (bug#45117) The point of un-inhibiting it was to make ElDoc backends interruptible with any input (as in while-no-input), since that should in principle invalidate the need of the current ElDoc processing. But that strategy is dangerous for backends that perform complex synchronization with external processes. Better let each backend decide for itself it needs this eager interruptive behavior, like is presumably the case with the Octave backend. This reverts a part of commit 12e922156c86a26fa4bb2cb9e7d2b3fd639e4707 Author: Stefan Monnier Date: Tue Dec 4 18:15:44 2018 -0500 * lisp/emacs-lisp/eldoc.el (eldoc-print-current-symbol-info): * lisp/progmodes/octave.el (octave-eldoc-function-signatures): Use while-no-input. 2020-12-13 Bastien Guerry Update to Org 9.4.2 Mostly fixing compiler warnings. 2020-12-13 Dmitry Gutov Philip K. Remove the duplication from project-switch-commands's config Based on an older patch by Philip K (https://debbugs.gnu.org/41890#127). * lisp/progmodes/project.el: (project-switch-commands): Change to 'defcustom', alter the value format, add :type. (project-switch-use-entire-map): New option. (project--keymap-prompt, project-switch-project): Update accordingly, while keeping compatibility with user-defined values in the previous format (for some transition period). 2020-12-13 Philipp Stephani Byte compilation: handle case where the output file is a mountpoint. See Bug#44631. While testing for a readonly output directory has slightly different semantics, in practice they should cover cases where Emacs is sandboxed and can only write to the destination file, not its directory. * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Handle the case where the output directory is not writable. * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--not-writable-directory) (bytecomp-tests--dest-mountpoint): New unit tests. 2020-12-13 Mauro Aranda Stop dropping the tag when creating the custom-variable widget * lisp/cus-edit.el (custom-variable-value-create): Obey the specified tag format when creating the variable tag, but stop dropping the tag format for the variable's type widget, since the tag can be used to give useful information to the user about the variable. (Bug#35133) 2020-12-13 Lars Ingebrigtsen Make dired-toggle-read-only query on read-only directories * lisp/dired.el (dired-toggle-read-only): Query instead of erroring out immediately (bug#29412). 2020-12-13 Lars Ingebrigtsen Clarify Extended Menu Items a bit more * doc/lispref/keymaps.texi (Extended Menu Items): Expand a bit more on how submenus are formed (bug#26428). 2020-12-13 Bastien Guerry Update to Org 9.4.1 2020-12-13 Andrea Corallo Fix `memory-report' for '--without-x' builds * lisp/emacs-lisp/memory-report.el (memory-report--image-cache): Don't call `image-cache-size' if unbound. 2020-12-13 Dmitry Gutov Bump project.el version * lisp/progmodes/project.el: Bump the version. 2020-12-13 Andrii Kolomoiets vc-create-tag: use vc-revision-history variable * lisp/vc/vc.el (vc-create-tag): Use 'vc-revision-history' variable. 2020-12-13 Dmitry Gutov Fix test failure * test/lisp/vc/vc-tests.el (vc-test--working-revision): Accept working revision -1, expected for older Hg (bug#36534). 2020-12-13 Stefan Monnier * lisp/emacs-lisp/bytecomp.el: Allow a nil destination file (byte-compile--default-dest-file): New function, extracted from byte-compile-dest-file. (byte-compile-dest-file): Use it. (byte-compile-dest-file-function): Give it a non-nil default value. (byte-recompile-file, byte-compile-file): Handle a nil return value from `byte-compile-dest-file`. * lisp/progmodes/elisp-mode.el (elisp-flymake--batch-compile-for-flymake): Tell the compiler not to write the result, instead of writing it to a dummy temp file. 2020-12-13 Andrea Corallo Allow for adding constraints targeting blocks with multiple predecessors This commit remove the limitaiton we had not being able to add constraints derived from conditional branches to basic blocks with multiple predecessors. When this condition is verified we add a new dedicated basic block to hold the constraints. * lisp/emacs-lisp/comp.el (comp-block, comp-edge): Better slot type specifiers. (comp-block-cstr): New struct specializing `comp-block'. (make-comp-edge): New function. (comp-func): Better test function + doc for `blocks' slot. (comp-limple-lock-keywords): Update possible basic block names. (comp-emit-assume): Receive directly the block instead of its name. (comp-add-new-block-beetween): New function. (comp-cond-cstr-target-block): Logic update and use `comp-add-new-block-beetween'. (comp-cond-cstr-func): Make use of the latter. (comp-compute-edges): Make use of `make-comp-edge'. 2020-12-13 Andrea Corallo Rename comp-cond-rw -> comp-cond-cstr * lisp/emacs-lisp/comp.el (comp-passes) (comp-cond-cstr-target-slot, comp-cond-cstr-func) (comp-cond-cstr): Rename pass from cond-rw to cond-cstr. 2020-12-13 Andrea Corallo Memoize `comp-cstr-intersection' * lisp/emacs-lisp/comp-cstr.el (comp-cstr-ctxt): Add new slot `intersection-mem'. (comp-cstr-intersection-homogeneous): Fix non local exit target. (comp-cstr-intersection-no-mem): Rename from `comp-cstr-intersection'. (comp-cstr-intersection): New function. 2020-12-13 Andrea Corallo Add initial negated non-negegated intersection support * lisp/emacs-lisp/comp-cstr.el (comp-range-intersection): Cosmetic. (comp-cstr-intersection-homogeneous): Rename from `comp-cstr-intersection'. (comp-cstr-intersection): New function. 2020-12-13 Alan Third Fix assertion on SVG load failure * src/image.c (svg_load_image): Move setting DPI to after rsvg_handle error checking. 2020-12-12 Stefan Kangas Remove references to Emacs before version 22 from FAQ * doc/misc/efaq.texi (Escape sequences in shell output): Remove reference to versions before Emacs 21. (Basic editing, Latest version of Emacs) (Turning on abbrevs by default, Going to a line by number) (Security risks with Emacs): Remove references to versions before Emacs 22. 2020-12-12 Philipp Stephani Document and enforce some properties for strings created by modules. When creating multibyte or unibyte strings, we should guarantee the following invariants: - When creating empty strings, a NULL data pointer should be allowed. This often arises in practice if the string length isn't known in advance, and we don't want to unnecessarily trigger undefined behavior. Since functions like memcpy might not accept NULL pointers, use the canonical empty string objects in this case. - Nonzero strings should be guaranteed to be unique and mutable. These are the same guarantees expected from Lisp functions such as 'make-string' or 'unibyte-string'. On the other hand, empty strings might not be unique. * src/emacs-module.c (module_make_string) (module_make_unibyte_string): Correctly handle empty strings. * test/src/emacs-module-resources/mod-test.c (Fmod_test_make_string): New test function. (emacs_module_init): Expose it. * test/src/emacs-module-tests.el (mod-test-make-string/empty) (mod-test-make-string/nonempty): New unit tests. * doc/lispref/internals.texi (Module Values): Document properties and corner cases for strings. 2020-12-12 Lars Ingebrigtsen Fix BSD .include etc syntax in Makefiles * lisp/progmodes/make-mode.el (makefile-bsdmake-statements): Fix the BSD conditional syntax (bug#24000). (makefile-make-font-lock-keywords): Allow calling without keywords. (makefile-bsdmake-font-lock-keywords): Add the conditional syntax. Makefile inclusion, conditional structures and for loops reminiscent of the C programming language are provided in make. All such structures are identified by a line beginning with a single dot (`.') character. Whitespace characters may follow this dot, e.g., .include and . include are identical constructs 2020-12-12 Lars Ingebrigtsen Bind `C-c C-d' to rmail-epa-decrypt in rmail * doc/emacs/rmail.texi (Rmail Display): Mention the key binding (bug#25411). * lisp/mail/rmail.el (rmail-mode-map): Bind C-c C-d to rmail-epa-decrypt. (rmail-mode): Mention it. (rmail-epa-decrypt): Don't mark a mail as decrypted unless we're replacing it. * lisp/mail/rmailsum.el (rmail-summary-mode-map): Bind C-c C-d. (rmail-summary-epa-decrypt): New command. 2020-12-12 Eric Abrahamsen New option gnus-registry-register-all * lisp/gnus/gnus-registry.el (gnus-registry-register-all): If nil, the registry won't automatically create new entries for all seen messages. Defaults to t to preserve previous behavior. (gnus-registry-handle-action): Don't automatically create entries; if one doesn't exist, don't handle anything. (gnus-registry-register-message-ids): Only register if this option is t. (gnus-registry-get-or-make-entry): Add optional no-create argument. (gnus-registry-get-id-key): This "get" operation should only create an entry if this option is t. * doc/misc/gnus.texi: Documentation and news. 2020-12-12 Stefan Monnier * lisp/emacs-lisp/package.el (package-buffer-info): Improve error message (package-strip-rcs-id): Return canonicalized version string. 2020-12-12 Stefan Monnier * src/fns.c (hash_string): Tweak the code further Merge the two main branches; remove the `max` test and thus reduce the "most steps" to 8 as written 2020-12-12 Stefan Monnier * lisp/vc/log-edit.el: Keep separator line thin even with line-numbers (log-edit-font-lock-keywords): Disable line-number display on the thin separator line. (log-edit-mode): Adjust `font-lock-extra-managed-props` accordingly. (log-edit-changelog-entries): Don't use a nil buffer-local `change-log-default-name`. 2020-12-12 Eli Zaretskii Followup to recent changes in keyboard.c * src/keyboard.c (prev_kbd_event): Now defined only if HAVE_X11. * lisp/subr.el (while-no-input-ignore-events): Remove 'buffer-switch': no longer used or defined. (Bug#5803) 2020-12-12 Andrea Corallo Normalize cstrs for cache hint effectiveness and test stability * lisp/emacs-lisp/comp-cstr.el (comp-normalize-valset) (comp-union-valsets, comp-intersection-valsets) (comp-normalize-typeset): New functions. (comp-union-typesets, comp-intersect-typesets) (comp-cstr-union-homogeneous-no-range, comp-cstr-union-1-no-mem): Update to return normalized results. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Normalize expected type specifiers. 2020-12-12 Andrea Corallo Add `comp-split-pos-neg' function * lisp/emacs-lisp/comp-cstr.el (comp-split-pos-neg): New function. (comp-cstr-union-1-no-mem): Update to call `comp-split-pos-neg'. 2020-12-12 Andrea Corallo Enumerate type specifier tests to ease debugging * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Enumerate tests. Acked-by: Andrea Corallo 2020-12-12 Andrea Corallo Code rework add `comp-cstrs-homogeneous' * lisp/emacs-lisp/comp-cstr.el (comp-cstrs-homogeneous): New function. (comp-cstr-union-1-no-mem): Make use of. 2020-12-12 Andrea Corallo * test/src/comp-tests.el (comp-tests-bootstrap): Temp fix bootstrap test. 2020-12-12 Lars Ingebrigtsen Remove some unused process.c variables * src/process.c (wait_reading_process_output): Remove some variables that are unused after the previous patch. 2020-12-12 Stefan Monnier New variable `redisplay_adhoc_scroll_in_resize_mini_windows` * src/xdisp.c (syms_of_xdisp): Define it. (resize_mini_window): Obey it. 2020-12-12 Stefan Monnier * src/keyboard.c: Fix bug#5803. A long time ago, `read_key_sequence` used to read the keymaps at the start, so if something happened between this start and the moment the user actually hits a key, `read_key_sequence` could end up using the wrong keymaps. To work around this problem, the code used `record_asynch_buffer_change` to try and trigger `read_key_sequence` to re-read the keymaps in some known cases. Several years ago, `read_key_sequence` was changed so as to read the keymaps only once the user hits a key, making this machinery now redundant (and also harmful apparently in bug#5803 because it introduces "spurious" events). So we here remove `record_asynch_buffer_change` and the `BUFFER_SWITCH_EVENT` and `Qbuffer_switch` pseudo-events it generated. * src/termhooks.h (enum event_kind): Delete `BUFFER_SWITCH_EVENT`. * src/keyboard.c: (record_asynch_buffer_change): Delete function. (syms_of_keyboard): Delete `Qbuffer_switch`. (force_auto_save_soon, readable_events) (kbd_buffer_store_buffered_event, kbd_buffer_get_event) (make_lispy_event): * src/xterm.c (handle_one_xevent): * src/w32term.c (w32_read_socket): * src/process.c (wait_reading_process_output) (read_and_dispose_of_process_output, exec_sentinel): Simplify accordingly. 2020-12-12 Alan Mackenzie CC Mode: Handle several K&R parameters per declaration This fixes bug #45160. * lisp/progmodes/cc-engine.el (c-in-knr-argdecl): Reformulate the latter part of this function using c-do-declarators. 2020-12-12 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-12 Lars Ingebrigtsen Alter the "Redundant pcase patter" warning message * lisp/emacs-lisp/pcase.el (pcase--expand): Make the "Redundant pcase pattern" warning less vague (bug#31350). 2020-12-12 Lars Ingebrigtsen Make elint load `require'd packages * lisp/emacs-lisp/elint.el (elint-require-form): New function to load files that are `require'd (bug#27006). (elint-special-forms): Add function. 2020-12-12 Zajcev Evgeny Explicitly specify svg base_uri using `:base-uri' image property * src/image.c (svg_load): Check `:base-uri' image property to explicitly set base_uri for images embedded into SVG (enum svg_keyword_index): (svg_format): Add :base-uri. * lisp/svg.el (svg-embed-base-uri-image): New function to embed images located relative to images `:base-uri' 2020-12-12 Alan Third Revert "Explicitly specify svg base_uri using `:base-uri' image property" This reverts commit a8e2143a5c03785742464406306fda7fce6caf04. I applied the incorrect version of the patch. 2020-12-12 Lars Ingebrigtsen Offer to save tutorial position on Emacs exit * lisp/tutorial.el (tutorial--buffer): New variable (bug#27998). (tutorial--save-on-kill): Use it. (help-with-tutorial): Set it and add new function to kill-emacs-query-functions. 2020-12-12 Lars Ingebrigtsen Update Info-toc-build parsing * lisp/info.el (Info-toc-build): Update to understand EMDASH instead of a hyphen in the detailed node listing (bug#28074). 2020-12-12 Stefan Kangas Prefer setq-local in python.el * lisp/progmodes/python.el: Require Emacs 24.2 instead of 24.1. (python-indent-guess-indent-offset) (python-shell-font-lock-with-font-lock-buffer) (python-shell-font-lock-turn-on) (python-shell-font-lock-turn-off, python-shell-font-lock-toggle) (python-shell-comint-watch-for-first-prompt-output-filter) (inferior-python-mode, python-shell-completion-native-turn-off) (python-shell-completion-native-turn-on) (python-pdbtrack-comint-output-filter-function, python-mode): Prefer setq-local. 2020-12-12 Lars Ingebrigtsen Preserve point in dired buffers in dired-*-find-file* commands * lisp/dired.el (dired--find-file): New function (bug#28949). (dired-find-file): Use it. (dired-mouse-find-file): Ditto. (dired-find-file-other-window): Ditto. 2020-12-12 Lars Ingebrigtsen Make dired-toggle-read-only check whether the directory is writable * lisp/dired.el (dired-toggle-read-only): Check that the directory is writable (bug#29412). 2020-12-12 Eli Zaretskii Unbreak the MS-Windows build broken by recent changes * src/image.c (rsvg_handle_set_dpi_x_y) [WINDOWSNT]: DEF_DLL_FN it. (init_svg_functions): LOAD_DLL_FN rsvg_handle_set_dpi_x_y. : Define as a macro 2020-12-12 Lars Ingebrigtsen Improve the documentation of marker handling when reverting * doc/lispref/backups.texi (Reverting): Mention markers from non-file sources (bug#30028). * lisp/files.el (revert-buffer): Mention what happens with markers (bug#30028). * src/fileio.c (Finsert_file_contents): Say a bit more about what markers are restored (bug#30028). 2020-12-12 Eli Zaretskii Improve support for 'memory-report' on MS-Windows * src/w32term.c (w32_image_size): New function. * src/image.c (image_frame_cache_size) [HAVE_NTGUI]: Support reporting the size of frame image cache. (image_frame_cache_size, Fimage_cache_size): The total size is now of the type 'size_t', not 'int'. 2020-12-12 Pankaj Jangid Allow customizing the Gnus summary thread indicators * doc/misc/gnus.texi (Summary Buffer Lines): Document them. * lisp/gnus/gnus-sum.el (gnus-summary-prepare-threads): Use them. * lisp/gnus/gnus-sum.el (gnus-sum-opening-bracket) (gnus-sum-closing-bracket, gnus-sum-opening-bracket-adopted) (gnus-sum-closing-bracket-adopted): New variables. 2020-12-12 Alan Third Improve some NS drawing code * src/nsterm.m (ns_update_end): There's no need to schedule a redraw if nothing has been changed. (ns_set_vertical_scroll_bar): (ns_set_horizontal_scroll_bar): Fix the logic for clearing under the scrollbars. (ns_clear_under_internal_border): No need to clip, the default clipping rectangle will be fine. 2020-12-12 Alan Third Use real DPI when rendering SVGs (bug#45124) * src/image.c (svg_css_length_to_pixels): Pass in a DPI value instead of using a hard coded value. (svg_load_image): Set the DPI on the rsvg_handle, and pass it to svg_css_length_to_pixels. 2020-12-12 Zajcev Evgeny Explicitly specify svg base_uri using `:base-uri' image property * src/image.c (svg_load): Check `:base-uri' image property to explicitly set base_uri for images embedded into SVG 2020-12-12 Alan Third Fix crash when using XRender and restoring image from X (bug#44930) * src/dispextern.h (struct image): Add original dimension elements. * src/image.c (image_set_transform): Store the original dimensions. (image_get_x_image): If we're using transforms use the original dimensions with XGetImage. 2020-12-12 Stefan Monnier * lisp/emacs-lisp/thunk.el (thunk-let*): Don't modify `bindings` 2020-12-12 Stefan Monnier * lisp/play/dunnet.el: Make it so loading the file is harmless Move comments into docstrings while at it. (dun-batch): New function. 2020-12-11 Lars Ingebrigtsen Fix copyright line 2020-12-11 Lars Ingebrigtsen button-buttonize doc string clarification * lisp/button.el (button-buttonize): Clarify what happens when DATA isn't present. 2020-12-11 Lars Ingebrigtsen Fix image-cache-size crash * src/image.c (image_frame_cache_size): Ensure that img->pixmap is in use before trying to access it. 2020-12-11 Stefan Kangas * src/fns.c (Fbuffer_hash): Doc fix. (Bug#45178) 2020-12-11 Lars Ingebrigtsen Also sort the totals section by size * lisp/emacs-lisp/memory-report.el (memory-report): Sort the totals by size, too. 2020-12-11 Lars Ingebrigtsen Tweak memory-report--format * lisp/emacs-lisp/memory-report.el (memory-report--format): Make everything line up, even when there's "1023.4kB". 2020-12-11 F. Jason Park (tiny change) Append incremental message segments in socks-filter * lisp/net/socks.el (socks-filter): Preserve the order data arrive instead of semi-reversing it (bug#45162). 2020-12-11 Pankaj Jangid docstring: If FRAME is nil, it defaults to selected frame. * src/frame.c (Fset_frame_size): Clarify what a nil FRAME parameter means (bug#45170). 2020-12-11 Lars Ingebrigtsen Clarify fortran-beginning-of-subprogram doc string after change * lisp/progmodes/fortran.el (fortran-beginning-of-subprogram): Clarify doc string (bug#33208). 2020-12-11 Stefan Kangas * lisp/progmodes/python.el: Bump version. 2020-12-11 Lars Ingebrigtsen Fix compilation of image.c on non-Cairo systems * src/image.c (image_frame_cache_size): pixmap->width etc is only defined on Cairo. Return 0 for now on other systems. 2020-12-11 Roland Winkler bibtex-autokey-get-year: Follow iso8601 * lisp/textmodes/bibtex.el (bibtex-autokey-get-year): Follow iso8601 (bug#36252). 2020-12-11 Lars Ingebrigtsen Fix object-interval tests * test/src/fns-tests.el (object-intervals): Fix tests. 2020-12-11 Lars Ingebrigtsen Fix parsing error in exif * lisp/image/exif.el (exif--parse-exif-chunk): The offset is a four-byte number. Reported by Alan Light . 2020-12-11 Lars Ingebrigtsen Add a new command `memory-report' * doc/lispref/internals.texi (Garbage Collection): Document it. * lisp/emacs-lisp/memory-report.el: New package. 2020-12-11 Lars Ingebrigtsen Add new function `object-intervals' * doc/lispref/text.texi (Examining Properties): Document it. * src/fns.c (Fobject_intervals): New defun. (collect_interval): New function. 2020-12-11 Lars Ingebrigtsen Add new function 'image-cache-size' * src/image.c (Fimage_cache_size): New defun. (image_frame_cache_size): New function. 2020-12-11 Lars Ingebrigtsen Add a new function `button-buttonize' * doc/lispref/display.texi (Manipulating Buttons): Document it. * lisp/button.el (button-buttonize): Implement it. 2020-12-11 Michael Albinus * lisp/battery.el (battery--upower-devices): Protect the D-Bus call. (Bug#45163) 2020-12-11 Tassilo Horn Bind k to image-kill-buffer in doc-view-mode-map. * lisp/doc-view.el (doc-view-mode-map): Bind k to image-kill-buffer. The binding k -> doc-view-kill-proc-and-buffer has been removed in 2015 and the function been made an obsolete function alias to image-kill-buffer (bug#45157). 2020-12-11 Basil L. Contovounesios Fix quoting in gnus-buffer-configuration * lisp/gnus/gnus-win.el (gnus-buffer-configuration): Include shell-command-buffer-name value rather than symbol in pipe configuration. (Bug#39138, bug#45154) 2020-12-11 Eric Abrahamsen Be more graceful about handling Gnus search errors One search may be applied to several servers: don't let one server's error derail the whole process. * lisp/gnus/gnus-search.el (gnus-search-config-error): Define new error. (gnus-search-run-search, gnus-search-server-to-engine): Raise this specific error as appropriate. (gnus-search-run-query): Catch this error and effectively demote it. 2020-12-10 Stefan Kangas Remove some ancient Emacs compat code from cperl-mode This variable has this value by default since Emacs 19.34. * lisp/progmodes/cperl-mode.el (cperl-mode): Remove some compat code. 2020-12-10 Stefan Kangas Prefer setq-local in cperl-mode.el * lisp/progmodes/cperl-mode.el (cperl-mode, cperl-info-buffer) (cperl-setup-tmp-buf, cperl-emulate-lazy-lock): Prefer setq-local. 2020-12-10 Stefan Kangas Prefer setq-local in bibtex-style.el * lisp/textmodes/bibtex-style.el (bibtex-style-mode): Prefer setq-local. 2020-12-10 Eli Zaretskii Avoid segfaults in pos_visible_p * src/xdisp.c (pos_visible_p): Don't try accessing the glyphs produced by iterator whose glyph_row was set to NULL; instead, record the X coordinate before the display string when moving past it, and use the recorded coordinate if needed. (Bug#45156) 2020-12-10 Mattias Engdegård Fupcase no longer maps ?ß to itself (bug#11309) * test/src/casefiddle-tests.el (casefiddle-tests-char-casing): (upcase ?ß) now returns ?ẞ (U+7838), partly for technical reasons but the previous behaviour was arbitrary and arguably less useful. Correct upcasing of ß is normally SS, which is what Fupcase returns if given a string, or (for special purposes) ẞ. 2020-12-10 Juri Linkov Allow creating a new tab from the minibuffer (bug#45072) * lisp/tab-bar.el (tab-bar-new-tab-to): Select the original window when selected window is the minibuffer. 2020-12-10 Dmitry Gutov (tiny change) Valentin Gatien-Baron * lisp/vc/vc-hg.el (vc-hg-working-revision): Use 'hg log -T' instead of 'hg parent' (bug#36534). 2020-12-09 Stefan Kangas Fix thinko in my previous commit * lisp/pcomplete.el (pcomplete-comint-setup): Fix thinko in my previous commit. This was not a quoted symbol but a variable, and therefore cannot use setq-local. 2020-12-09 Dmitry Gutov * lisp/progmodes/xref.el: Bump the version. 2020-12-09 Dmitry Gutov Allow specifying the project to switch to programmatically * lisp/progmodes/project.el (project-switch-project): Allow specifying the project to switch to programmatically (bug#45134). 2020-12-09 Dmitry Gutov Add missing defcustom keywords to new variables * lisp/progmodes/xref.el (xref-search-program-alist) (xref-search-program): Add :version and :package-version. 2020-12-09 Lars Ingebrigtsen Clarify `scroll-preserve-screen-position' doc string * src/window.c (syms_of_window): Clarify the doc string (bug#7910). 2020-12-09 Juri Linkov Remove isearch-input-method-local-p and always set buffer-local input-method * lisp/isearch.el (isearch-input-method-local-p): Remove defvar. (isearch-mode): Don't set isearch-input-method-local-p. Set buffer-local input-method-function to nil. (isearch-done): When isearch-input-method-function is still non-nil, set the buffer-local value of input-method-function. (Bug#45005) * lisp/international/isearch-x.el (isearch-toggle-specified-input-method) (isearch-toggle-input-method, isearch-transient-input-method): Don't set isearch-input-method-local-p to t. Set buffer-local input-method-function to nil. * lisp/language/korea-util.el (isearch-toggle-korean-input-method) (isearch-hangul-switch-symbol-ksc, isearch-hangul-switch-hanja): Don't set isearch-input-method-local-p to t. Set buffer-local input-method-function to nil. 2020-12-09 Juri Linkov Support highlighting of ripgrep output (bug#44983) * etc/grep.txt: Add ripgrep samples. * lisp/progmodes/grep.el (grep-match-regexp): Highlight ripgrep matches too. (grep-regexp-alist): Remove $ to highlight ripgrep binary file matches. 2020-12-09 Mattias Engdegård Stricter gradle-kotlin message pattern * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Rule 'gradle-kotlin': don't be more forgiving than necessary; we know exactly what the output looks like (see https://github.com/JetBrains/kotlin/commit/\ ffe8ae3840d7b9bdc82170c8181031f05ced68bd) and there is no reason to risk mismatches or expensive backtracking (bug#18109). Recognise 'info' level messages. Convert to rx. 2020-12-09 Lars Ingebrigtsen Include the keymap in the gud-mode doc string * lisp/progmodes/gud.el (gud-mode): Add the gud keymap to the end of the doc string for easier access (bug#31406). 2020-12-09 Lars Ingebrigtsen `pdb' doc string clarification * lisp/progmodes/gud.el (pdb): Mention that this command is for debugging Python scripts. 2020-12-09 Glenn Morris Merge from origin/emacs-27 c0b3e38d7c Update publicsuffix.txt from upstream 3fe6cea6e0 * lisp/vc/vc.el: Update args of backend API calls in the h... 2020-12-09 Glenn Morris Merge from origin/emacs-27 32090a3de4 Improve documentation of streams in batch mode 34feded008 Support ks_c_5601-1987 encoding da00a6f317 Fix Xaw widget text disappearing when built with cairo (bu... 6916e7954a Improve documentation of 'ps-print-color-p' 6663b2f211 ; * lisp/simple.el (move-beginning-of-line): Doc fix. a4dd03ebe9 ; * src/charset.c (Fmap_charset_chars): Doc fix. d86cc3ffcb ; * src/chartab.c, src/lisp.h: Fix typos in comments. 2020-12-09 Lars Ingebrigtsen Fix mark-defun in fortran-mode * lisp/progmodes/fortran.el (fortran-beginning-of-subprogram): Make mark-defun work (bug#33208). 2020-12-09 Eli Zaretskii Improve predictability of 'scroll-preserve-screen-position' * src/window.c (window_scroll_pixel_based): Compute the new window-start more precisely when 'scroll-preserve-screen-position' is non-nil. (Bug#8355) 2020-12-09 Eli Zaretskii Update docs of 'defvar' and 'defface' * doc/lispref/display.texi (Defining Faces): * doc/lispref/variables.texi (Defining Variables): Update the descriptions of 'defvar' and 'defface' per recent changes in 'eval-last-sexp'. (Bug#45125) 2020-12-09 Lars Ingebrigtsen Fix info mode fontification of built-in (*note Built-ins::) * lisp/info.el (Info-fontify-node): Don't interpret things like "built-in" as being the word "in" (bug#34661). 2020-12-09 Serge Tupchii (tiny change) Fix crash (segfault) in etags on generating tags for Erlang files * lib-src/etags.c: Set allocated and lastlen to zero, after freeing last ptr in Erlang_functions to prevent dereferencing NULL pointer (bug#45122). (cherry picked from commit 2d8f0364fcd1d5dad2b82dd3a9af870b03854547) 2020-12-09 Mattias Engdegård Recognise ß properly as a lower-case letter (bug#11309) ß was incorrectly treated as a caseless character and thus not matched by the regexp [[:lower:]] (or, in case-folding mode, [[:upper:]]). The reason is that the upcase table maps it to itself, which can be remedied by mapping it to ẞ (U+7838) instead. Doing so does not affect upcasing since the special-uppercase property maps it to SS. * lisp/international/characters.el (tbl): Map ß to ẞ in the upcase table. * test/src/regex-emacs-tests.el (regexp-eszett): Uncomment previously failing tests. Add checks to make sure that case transformations remain valid. 2020-12-09 Lars Ingebrigtsen cl-pushnew manual clarification * doc/misc/cl.texi (Modify Macros): Don't claim that cl-pushnew uses eql. (Lists as Sets): Mention that eql is the default comparison function. 2020-12-09 Lars Ingebrigtsen cl-defmethod doc string clarification * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Clarify the doc string, and give an example (bug#42322). 2020-12-09 Lars Ingebrigtsen Clarify the default-boundp doc string * src/data.c (Fdefault_boundp): Doc string clarification (bug#44141). 2020-12-09 Lars Ingebrigtsen Make ediff offer to create files it's inferring * lisp/vc/ediff-ptch.el (ediff-fixup-patch-map): Offer to create the inferred file name (if it doesn't exist) (bug#8009). This allows applying a patch that creates a file. 2020-12-09 Michael Albinus Improve tests for gio file notifications * .gitlab-ci.yml (test-filenotify-gio): Call "make -k". * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-notify-add-watch): Set connection property "gio-file-monitor". * lisp/net/tramp-sh.el (tramp-get-remote-gio-file-monitor): New defun. (tramp-sh-handle-file-notify-add-watch): Use it. * test/lisp/filenotify-tests.el (file-notify--test-read-event): Simplify. (file-notify--test-monitor): Handle also remote "gio monitor". (file-notify-test03-events, file-notify-test04-autorevert) (file-notify-test05-file-validity, file-notify-test08-backup) (file-notify-test09-watched-file-in-watched-dir): Handle GKqueueFileMonitor. 2020-12-09 Lars Ingebrigtsen Filter revoked keys when saving files * lisp/epa-file.el (epa-file-write-region): Use it to select a non-revoked key (bug#22359). * lisp/epg.el (epg--filter-revoked-keys): New function. 2020-12-09 Stefan Kangas Prefer setq-local in most files * lisp/apropos.el (apropos-print): * lisp/buff-menu.el (Buffer-menu-mode): * lisp/calc/calc.el (calc-trail-buffer): * lisp/chistory.el (command-history-mode): * lisp/dabbrev.el: * lisp/dframe.el (dframe-frame-mode): * lisp/doc-view.el (doc-view-presentation-mode): * lisp/ebuff-menu.el (electric-buffer-menu-mode) (electric-buffer-update-highlight): * lisp/edmacro.el (edit-kbd-macro): * lisp/face-remap.el (buffer-face-set, buffer-face-toggle): * lisp/files.el: (find-file-noselect-1, hack-local-variables-confirm) (set-visited-file-name, revert-buffer--default): * lisp/filesets.el (filesets-spawn-external-viewer): * lisp/find-dired.el (find-dired): * lisp/find-lisp.el (find-lisp-find-dired-internal): * lisp/finder.el (finder-mode): * lisp/font-core.el (font-lock-default-function): * lisp/format.el (format-annotate-function): * lisp/help-fns.el (describe-variable): * lisp/help-mode.el (help-mode): * lisp/icomplete.el (icomplete-minibuffer-setup) (icomplete--in-region-setup): * lisp/ido.el (ido-completion-help, ido-tidy): * lisp/international/robin.el (robin-activate): * lisp/leim/quail/hangul.el (hangul-input-method-activate): * lisp/leim/quail/uni-input.el (ucs-input-activate): * lisp/man.el (Man-mode): * lisp/master.el (master-set-slave): * lisp/minibuffer.el (minibuffer-completion-help) (read-file-name-default): * lisp/outline.el (outline-minor-mode): * lisp/pcomplete.el (pcomplete-comint-setup): * lisp/proced.el (proced-mode): * lisp/recentf.el (recentf-edit-list, recentf-open-files-items): * lisp/replace.el (occur-1): * lisp/reveal.el (reveal-mode): * lisp/ruler-mode.el (ruler--save-header-line-format): * lisp/scroll-lock.el (scroll-lock-mode): * lisp/startup.el (normal-top-level, normal-splash-screen): * lisp/strokes.el (strokes-list-strokes): * lisp/thumbs.el (thumbs-insert-image, thumbs-show-thumbs-list): * lisp/tree-widget.el (tree-widget-set-theme): * lisp/window.el (read-buffer-to-switch): * lisp/xwidget.el (xwidget-webkit-begin-edit-textarea): Prefer setq-local. 2020-12-09 Stefan Kangas Prefer setq-local in dired extensions * lisp/dired-aux.el (dired-diff, dired-compare-directories) (dired-do-create-files, dired-isearch-filenames): * lisp/dired-x.el (dired-virtual, dired-vm): * lisp/wdired.el (wdired-change-to-wdired-mode) (wdired-change-to-dired-mode, wdired-preprocess-perms): 2020-12-09 Stefan Kangas Update publicsuffix.txt from upstream * etc/publicsuffix.txt: Update from https://publicsuffix.org/list/public_suffix_list.dat dated 2020-11-30 21:57:25 UTC. 2020-12-09 Mattias Engdegård Fix [:upper:] and [:lower:] for Unicode characters (bug#11309) * src/regex-emacs.c (execute_charset): Add canon_table argument to allow expression of a correct predicate for [:upper:] and [:lower:]. (mutually_exclusive_p, re_match_2_internal): Pass extra argument. * test/src/regex-emacs-tests.el (regexp-case-fold, regexp-eszett): New tests. Parts of regexp-eszett still fail and are commented out. 2020-12-09 Stefan Kangas Prefer setq-local in some remaining progmodes * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/hideif.el (hide-ifdef-mode) (hide-ifdef-toggle-shadowing): * lisp/progmodes/ps-mode.el (ps-mode, ps-run-mode): * lisp/progmodes/xscheme.el (xscheme-start) (local-set-scheme-interaction-buffer, scheme-interaction-mode): Prefer setq-local. 2020-12-09 Stefan Kangas Prefer setq-local in gdb-mi.el * lisp/progmodes/gdb-mi.el (gdb--check-interpreter, gdb) (gdb-init-buffer, gdb-get-buffer-create, gdb-threads-mode) (gdb-memory-mode, gdb-disassembly-mode, gdb-frames-mode): Prefer setq-local. 2020-12-09 Stefan Kangas Prefer setq-local in etags.el * lisp/progmodes/etags.el (initialize-new-tags-table) (etags-recognize-tags-table, tags-recognize-empty-tags-table): Prefer setq-local. 2020-12-09 Stefan Kangas Prefer setq-local in cfengine.el * lisp/progmodes/cfengine.el (cfengine-common-settings) (cfengine3-mode, cfengine2-mode): Prefer setq-local. 2020-12-09 Stefan Kangas Prefer setq-local in sql.el * lisp/progmodes/sql.el (sql--oracle-show-reserved-words) (sql-product-font-lock, sql-list-all, sql-mode) (sql-interactive-mode, sql-product-interactive): Prefer setq-local. 2020-12-09 Stefan Kangas Prefer setq-local in font-lock.el * lisp/font-lock.el: (font-lock-add-keywords, font-lock-turn-on-thing-lock) (font-lock-fontify-syntactic-keywords-region) (font-lock-set-defaults): Prefer setq-local. 2020-12-09 Stefan Kangas * lisp/progmodes/sql.el: Remove redundant URL. 2020-12-09 Basil L. Contovounesios Make abbrev-tests.el more deterministic * test/lisp/abbrev-tests.el (abbrev--table-symbols-test): Don't rely on order of symbols in obarray. 2020-12-09 Lars Ingebrigtsen Make uncache_image slightly more efficient * src/image.c (uncache_image): Extremely minor speed-up: Only compute the hash once. 2020-12-09 Stefan Monnier * src/fns.c: Remove left over include 2020-12-09 Lars Ingebrigtsen Restore Emacs 27 image cache semantics * src/image.c (equal_lists): Remove. (search_image_cache): Use Fequal instead of equal_lists. Benchmarking shows no measurable time difference, and this restores the cache semantics from Emacs 27 (where file names didn't have to be EQ for the cache to be used). 2020-12-09 João Távora Remove interactive spec from internal eldoc--format-doc-buffer Per bug#43609. * lisp/emacs-lisp/eldoc.el (eldoc--format-doc-buffer): Remove useless interactive spec. 2020-12-09 Stefan Monnier * src/fns.c (hash_string): Speed up on large strings 2020-12-08 Lars Ingebrigtsen term.el comment update * lisp/term.el: Fix wrong command name in the comments (bug#7041). 2020-12-08 Serge Tupchii (tiny change) Fix crash (segfault) in etags on generating tags for Erlang files * lib-src/etags.c: Set allocated and lastlen to zero, after freeing last ptr in Erlang_functions to prevent dereferencing NULL pointer (bug#45122). 2020-12-08 Lars Ingebrigtsen Make rcirc nick renaming heed nickname max lengths * lisp/net/rcirc.el (rcirc-server-parameters): New variable (bug#6795). (rcirc-connect): Set it. (rcirc-handler-433): Use the length from the server. (rcirc-handler-005): Collect server data. (rcirc-server-parameter-value): New utility function. (rcirc--make-new-nick): New function. 2020-12-08 Lars Ingebrigtsen Make hexl scrolling commands work more like the normal ones * lisp/hexl.el (hexl-scroll-down): (hexl-scroll-up): Heed `next-screen-context-lines' (bug#7031). 2020-12-08 Lars Ingebrigtsen Fix scrolling in hexl-mode when ruler-mode is on * lisp/hexl.el (hexl-scroll-down): (hexl-scroll-up): Take ruler-mode into account when computing the number of lines (bug#7031). These commands would previously jump one line too many by default, skipping one line. 2020-12-08 Eli Zaretskii Improve documentation of 'backtrace-on-error-noninteractive' * src/eval.c (syms_of_eval) : Format the doc string according to conventions. * etc/NEWS: Improve formatting and wording of the entry describing 'backtrace-on-error-noninteractive. 2020-12-08 Lars Ingebrigtsen Make the history traversal functions in coming more regular * lisp/comint.el (comint-previous-matching-input): Allow restoring the input on wraps (bug#7885). (comint-previous-matching-input-from-input): Restore input on wraps. 2020-12-08 Boruch Baum Make table-fixed-width-mode work again * lisp/textmodes/table.el (table--update-cell): Make table-fixed-width-mode work (bug#18183). 2020-12-08 Lars Ingebrigtsen Use the proper face for the Gnus mode line id * lisp/gnus/gnus-sum.el (gnus-set-mode-line): * lisp/gnus/gnus-group.el (gnus-group-set-mode-line): Use the mode-line-buffer-id face on the buffer id. 2020-12-08 Lars Ingebrigtsen Simplify gnus-mode-line-buffer-identification * lisp/gnus/gnus.el (gnus-mode-line-image-cache): Remove. (gnus-mode-line-buffer-identification): Use the find-image cache. 2020-12-08 Lars Ingebrigtsen Cache toolbar icon data paths * lisp/image.el (find-image): Add an optional CACHE parameter. (find-image--cache): New variable. * lisp/tool-bar.el (tool-bar--image-expression): Use cached data to avoid looking up the image files on each refresh. 2020-12-08 Stefan Kangas Prefer setq-local in grep.el * lisp/progmodes/grep.el (grep-process-setup, grep-mode): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in meta-mode.el * lisp/progmodes/meta-mode.el (meta-common-mode, metafont-mode) (metapost-mode): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in compile.el * lisp/progmodes/compile.el (compile-command, compilation-start) (compilation-mode, compilation-setup, compilation-filter) (compilation-forget-errors): Prefer setq-local. 2020-12-08 Stefan Kangas * admin/nt/dist-build/build-dep-zips.py: Remove unused import. 2020-12-08 Stefan Kangas Prefer setq-local in tests * test/lisp/allout-tests.el (allout-test-resumption-prior-value-resumed) (allout-test-resumption-multiple-holds) (allout-test-resumption-unbinding): * test/lisp/emacs-lisp/faceup-resources/faceup-test-mode.el (faceup-test-mode): * test/lisp/epg-tests.el (with-epg-tests): * test/src/data-tests.el (binding-test-buffer-A): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in term.el * lisp/term.el (term-mode, term-exec, term-emulate-terminal) (term-process-pager): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in shell.el * lisp/shell.el (shell-completion-vars, shell-mode): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in speedbar.el * lisp/speedbar.el (speedbar-frame-mode, speedbar-mode) (speedbar-add-localized-speedbar-support): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in newcomment.el * lisp/newcomment.el (comment-inline-offset) (comment-normalize-vars): Prefer setq-local. 2020-12-08 Stefan Kangas * lisp/locate.el (locate, locate-mode): Prefer setq-local. * lisp/array.el (array-mode): Prefer setq-local. 2020-12-08 Stefan Kangas Prefer setq-local in simple.el * lisp/simple.el (read-extended-command, goto-history-element) (minibuffer-history-isearch-setup, read-shell-command) (visual-line-mode, completion-setup-function, read-only-mode) (visible-mode): Prefer setq-local. 2020-12-07 Philipp Stephani Fix bug in how ERT invokes its debugger. The debugger needs to receive a list of the error symbol and data; cf. the documentation of the `debugger' variable. This bug manifested itself in ERT forms such as (should (integerp (ert-fail "Boo"))), which resulted in an incorrect condition object. Note that forms such as (should (ert-fail "Boo")) weren't affected because they wouldn't use the `ert--should-signal-hook'. * lisp/emacs-lisp/ert.el (ert--should-signal-hook): Call debugger with the right arguments. * test/lisp/emacs-lisp/ert-tests.el (ert-test-fail-inside-should): Add unit test. 2020-12-07 Lars Ingebrigtsen Avoid problems when calling desktop-read twice * lisp/desktop.el (desktop-read): Don't reload the desktop file if it's already been loaded, because the later query may lead to desktop-dirname being set to nil (bug#9765). 2020-12-07 Lars Ingebrigtsen Make previous Fkill_emacs change safer * src/emacs.c (Fkill_emacs): Don't run `kill-emacs-hook' if it's nil. 2020-12-07 Daniel Martín Add commands xref-next-group and xref-prev-group * lisp/progmodes/xref.el (xref-next-group): New command that navigates to the first item of the next xref group (typically a file). (xref-prev-group): New command that navigates to the first item of the next xref group (typically a file). (xref--xref-buffer-mode-map): Bound the new commands to 'N' and 'P', respectively. * doc/emacs/maintaining.texi (Xref Commands): Document the new commands in the Emacs manual. * etc/NEWS: Announce them (bug#45089). 2020-12-07 Alyssa Ross (tiny change) Only use the comint environment in comint-derived modes * lisp/progmodes/compile.el (compilation-start): Only use the comint environment in comint-derived modes (bug#45095). 2020-12-07 Stefan Kangas Prefer setq-local in calendar/*.el * lisp/calendar/calendar.el (calendar-mode): * lisp/calendar/diary-lib.el (diary-list-entries, diary-mode): (diary-fancy-display-mode): Prefer setq-local. 2020-12-07 Stefan Kangas Prefer setq-local in gnus/*.el * lisp/gnus/gnus-agent.el (gnus-agent-mode) (gnus-agent-get-undownloaded-list, gnus-agent-open-history): * lisp/gnus/gnus-art.el (gnus-article-setup-highlight-words) (gnus-article-mode, gnus-article-setup-buffer, defsubst) (gnus-article-describe-bindings, gnus-article-edit-mode): * lisp/gnus/gnus-cus.el (gnus-custom-mode, gnus-group-customize) (gnus-score-customize, gnus-agent-customize-category): * lisp/gnus/gnus-group.el (gnus-group-make-tool-bar): * lisp/gnus/gnus-msg.el (gnus-setup-message) (gnus-summary-news-other-window, gnus-configure-posting-styles): * lisp/gnus/gnus-salt.el (gnus-pick-mode, gnus-binary-mode): * lisp/gnus/gnus-score.el (gnus-score-edit-current-scores) (gnus-score-edit-file): * lisp/gnus/gnus-srvr.el (gnus-server-mode): * lisp/gnus/gnus-start.el (gnus-no-server-1) (gnus-dribble-read-file, gnus-save-newsrc-file) (gnus-gnus-to-newsrc-format): * lisp/gnus/gnus-sum.el (gnus-summary-make-tool-bar) (gnus-summary-mode, gnus-summary-setup-buffer) (gnus-select-newsgroup, gnus-summary-edit-article) (gnus-summary-setup-default-charset): * lisp/gnus/gnus-topic.el (gnus-topic-mode): * lisp/gnus/gnus-undo.el (gnus-undo-mode): * lisp/gnus/gnus.el (gnus-simplify-mode-line): * lisp/gnus/message.el (message-cite-reply-position) (message-cite-style, message-mode, message-setup-fill-variables): * lisp/gnus/mm-view.el (mm-display-inline-fontify): * lisp/gnus/mml.el (mml-mode): * lisp/gnus/nndiary.el (nndiary-open-nov): * lisp/gnus/nnfolder.el (nnfolder-save-buffer) (nnfolder-open-nov): * lisp/gnus/nnheader.el (nnheader-init-server-buffer): * lisp/gnus/nnimap.el (nnimap-make-process-buffer): * lisp/gnus/nnml.el (nnml-get-nov-buffer): Prefer setq-local. 2020-12-07 Andrea Corallo Spawn a sub-process for running GCC also in batch mode (bug#45056) * lisp/emacs-lisp/comp.el (comp-async-compilation): New variable. (comp-final): Always run the C side of the compilation as a sub-process unless during bootstrap or async compilation. (comp-run-async-workers): Set `comp-async-compilation'. 2020-12-07 Lars Ingebrigtsen Insert skeletons at the correct point * lisp/skeleton.el (skeleton-read): Don't insert the skeleton at an arbitrary point if the user moves around (bug#17752). 2020-12-07 Lars Ingebrigtsen Allow shutting down Emacs even if there are errors in kill-emacs-hook * lisp/subr.el (run-hook-query-error-with-timeout): New function (bug#28542). * src/emacs.c (Fkill_emacs): Use it to allow exiting Emacs even if there are errors in kill-emacs-hook. (syms_of_emacs): Define the symbol. 2020-12-07 Lars Ingebrigtsen Ensure that new emacsclient frames has focus * lisp/server.el (server-execute): Focus the frame here... (server-switch-buffer): Instead of here (bug#15469). This ensures that the frame has focus if Emacs is querying the user about something when opening a file (for instance "Revert from file?"). 2020-12-07 Lars Ingebrigtsen Allow inhibiting the instructions on how to close emacsclient frames * doc/emacs/misc.texi (Invoking emacsclient): Document it. * lisp/server.el (server-client-instructions): New variable. (server-execute): Use it. 2020-12-07 Illia Ostapyshyn (tiny change) Allow using newer versions of Gnuplot from calc again * lisp/calc/calc-graph.el (calc-graph-plot): Don't use the "time" abbreviation for "timestamp" (bug#39232) -- it's no longer valid after https://github.com/gnuplot/gnuplot/commit/b979b5371bc1c18bf8f5bd756e7c1fb54dafd8cc 2020-12-07 Lars Ingebrigtsen Fix file name quoting problems in tex-mode * lisp/textmodes/tex-mode.el (tex--quote-spec): New function (bug#14286). (tex-format-cmd): Use it. (tex-compile): Don't quote the file names, because we're using `file-exists-p' and friends on the results later, and that fails on systems where everything is quoted, and on file names that need quoting. 2020-12-07 Lars Ingebrigtsen Clarify icomplete-show-matches-on-no-input doc string * lisp/icomplete.el (icomplete-show-matches-on-no-input): Clarify doc string (bug#19031), suggested by Andrii Kolomoiets. 2020-12-07 Lars Ingebrigtsen Revert "Clarify icomplete-show-matches-on-no-input doc string" This reverts commit f352c57972d24464a42ea3e65dc8ac07d8e0517c. The new explanation of what icomplete does is wrong. 2020-12-07 Mattias Engdegård Calc: simplify integer log2 and power of 2 We have bignums and fast primitives now; no caches are needed. * lisp/calc/calc-bin.el (math-power-of-2-cache) (math-big-power-of-2-cache): Remove. (math-power-of-2, math-integer-log2): Simplify. (calcFunc-ash): Don't call math-power-of-2 with negative argument. 2020-12-07 Mattias Engdegård * doc/misc/calc.texi (Predefined Units): Prune outdated kg text. 2020-12-07 Philipp Stephani Unbreak a few unit tests that rely on lack of backtraces * test/lisp/emacs-lisp/gv-tests.el (gv-dont-define-expander-in-file) (gv-dont-define-expander-other-file): * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-default-config): Suppress backtraces in batch mode to unbreak unit tests. 2020-12-07 Philipp Stephani Add new variable to selectively suppress backtraces in batch mode. * src/eval.c (syms_of_eval): Define new variable 'backtrace-on-error-noninteractive' to selectively enable backtrace printing in batch mode. (signal_or_quit): Use it. * etc/NEWS: Document new variable. * test/src/eval-tests.el (eval-tests/backtrace-in-batch-mode/inhibit): New unit test. 2020-12-07 Stefan Kangas * lisp/ielm.el (inferior-emacs-lisp-mode): Prefer setq-local. * lisp/ibuffer.el (ibuffer, ibuffer-mode): Prefer setq-local. 2020-12-07 Stefan Kangas Prefer setq-local in whitespace.el * lisp/whitespace.el (whitespace-turn-on, whitespace-color-on): Prefer setq-local. 2020-12-07 Stefan Kangas Prefer setq-local in tar-mode.el * lisp/tar-mode.el (tar-summarize-buffer, tar-mode, tar-extract): Prefer setq-local. 2020-12-07 Stefan Kangas Prefer setq-local in tcl.el * lisp/progmodes/tcl.el (tcl-mode, inferior-tcl-mode, inferior-tcl): (tcl-auto-fill-mode, tcl-guess-application): Prefer setq-local. 2020-12-07 Michael Albinus * lisp/net/tramp.el (tramp-read-passwd): Use connection-local `auth-sources'. * lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection): * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): * lisp/net/tramp-sh.el (tramp-maybe-open-connection): * lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Move setting of connection-local variables up. 2020-12-07 Stefan Monnier * lisp/emacs-lisp/lisp-mode.el: Give paren syntax to [...] in lisp-data-mode (lisp-data-mode-syntax-table): Rename from lisp--mode-syntax-table. Adjust all users. Set [...] to have paren syntax. (lisp-data-mode): Don't set `lisp-syntax` arg any more * lisp/progmodes/elisp-mode.el (emacs-lisp-mode-syntax-table): Don't bother setting [...] to have paren syntax any more. * lisp/progmodes/inf-lisp.el (inferior-lisp-mode): Don't use `lisp-syntax` arg of lisp-mode-variables any more. 2020-12-06 Mattias Engdegård Remove Calc bignum remnants * lisp/calc/calc-macs.el (Math-natnum-lessp): * lisp/calc/calc-ext.el (math-norm-bignum, math-compare-bignum): * lisp/calc/calc-math.el (math-zerop-bignum) (math-scale-bignum-digit-size): Remove. * lisp/calc/calc-bin.el (math-integer-log2, calcFunc-rot, math-clip): * lisp/calc/calc-comb.el (math-prime-test, calcFunc-prfac) (calcFunc-totient, calcFunc-moebius): * lisp/calc/calc-ext.el (math-gcd): * lisp/calc/calc-funcs.el (calcFunc-betaB): * lisp/calc/calc-math.el (math-nth-root-int-iter, calcFunc-ilog): Replace Math-natnum-lessp with <. 2020-12-06 Juri Linkov * lisp/vc/vc-git.el: Update args of backend API calls in the header comments https://lists.gnu.org/archive/html/emacs-devel/2020-12/msg00283.html 2020-12-06 Juri Linkov * lisp/vc/vc.el: Update args of backend API calls in the header comments https://lists.gnu.org/archive/html/emacs-devel/2020-12/msg00283.html 2020-12-06 Juri Linkov Handle calling read-char-from-minibuffer and y-or-n-p from pre-command-hook * lisp/subr.el (read-char-from-minibuffer-insert-char) (read-char-from-minibuffer-insert-other, y-or-n-p-insert-y) (y-or-n-p-insert-n, y-or-n-p-insert-other): Check for 'minibufferp' before executing the body. (read-char-from-minibuffer, y-or-n-p): Let-bind this-command before calling read-from-minibuffer. (Bug#45029) 2020-12-06 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-12-06 Andrea Corallo Unify common fallback exit point in `comp-cstr-union-1-no-mem'. * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Define a local function `give-up' as a common fall-back exit point. 2020-12-06 Andrea Corallo Couple of `comp-cstr-union-1-no-mem' improvements for mixed neg pos union * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1-no-mem): Generalize disjoint pos types vs neg values conditions. (comp-cstr-union-1-no-mem): Do not propagate ranges when we are already returning integer as generic type. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add corresponding tests. 2020-12-06 Philipp Stephani Print a backtrace on unhandled errors in batch mode (Bug#44942). * src/eval.c (signal_or_quit): Print a backtrace in batch mode if no error handler was found. * test/src/eval-tests.el (eval-tests/backtrace-in-batch-mode) (eval-tests/backtrace-in-batch-mode/demoted-errors): New unit tests. * etc/NEWS: Document change. 2020-12-06 Eli Zaretskii Improve error message text of "C-x C-SPC" * lisp/simple.el (pop-global-mark): Mention the buffer name in the error message. Suggested by T.V Raman . 2020-12-06 Eli Zaretskii Improve documentation of streams in batch mode * doc/lispref/os.texi (Batch Mode): * doc/lispref/streams.texi (Input Streams, Output Streams): Better documentation of I/O streams in batch mode, with more cross-references. 2020-12-06 Michael Albinus Make Tramp scripts more unique and robust * lisp/net/tramp-sh.el (tramp-uudecode, tramp-perl-file-truename) (tramp-perl-file-name-all-completions) (tramp-perl-file-attributes) (tramp-perl-directory-files-and-attributes) (tramp-perl-encode-with-module, tramp-perl-decode-with-module) (tramp-perl-encode, tramp-perl-decode, tramp-perl-pack) (tramp-perl-unpack, tramp-hexdump-encode, tramp-awk-encode) (tramp-hexdump-awk-encode, tramp-od-encode, tramp-od-awk-encode) (tramp-awk-decode): Use format specifiers supported by `tramp-expand-script'. Adapt docstring. (tramp-vc-registered-read-file-names): Adapt docstring. (tramp-sh-handle-file-local-copy): Let-bind local `default-directory'. (tramp-expand-script): New defun. (tramp-maybe-send-script, tramp-find-inline-encoding): Use it. (tramp-local-coding-commands): Simplify. 2020-12-06 Mattias Engdegård Unicode integrals in Calc * lisp/calc/calccomp.el (math-compose-integ): Use Unicode integral signs when available instead of a crude ASCII approximation, with a shorter stem to save space. 2020-12-06 Basil L. Contovounesios Avoid modifying nnimap user option in spam.el * lisp/gnus/nnimap.el (nnimap--split-download-body): New variable. (nnimap-fetch-inbox): Use it in conjunction with nnimap-split-download-body. * lisp/gnus/spam.el: Don't load nnimap.el at compile time for a dynamic variable. (spam-setup-widening): Rather than unconditionally set user option nnimap-split-download-body, set nnimap--split-download-body to a unique non-nil value only if the variable was nil (bug#44981). (spam-teardown-widening): New function that undoes this if nnimap--split-download-body still holds the unique value. (spam-unload-hook): Call spam-teardown-widening to revert any change to the value of nnimap--split-download-body. 2020-12-06 Stefan Kangas Prefer setq-local in several progmodes * lisp/progmodes/executable.el (executable-interpret): * lisp/progmodes/f90.el (f90-mode): * lisp/progmodes/flymake-cc.el (flymake-cc--make-diagnostics): * lisp/progmodes/fortran.el (fortran-mode): * lisp/progmodes/gud.el (gud-gdb, sdb, dbx, xdb, perldb, pdb) (jdb, gud-mode, gud-common-init, gdb-script-mode) (gud-tooltip-activate-mouse-motions): * lisp/progmodes/hideshow.el (hs-minor-mode): * lisp/progmodes/icon.el (icon-mode): * lisp/progmodes/ld-script.el (ld-script-mode): * lisp/progmodes/mixal-mode.el (mixal-mode): * lisp/progmodes/modula2.el (m2-mode): * lisp/progmodes/simula.el (simula-mode): * lisp/progmodes/subword.el (subword-setup-buffer): * lisp/progmodes/which-func.el (which-function): Prefer setq-local. 2020-12-06 Eli Zaretskii Support ks_c_5601-1987 encoding * lisp/language/korean.el (ks_c_5601-1987): Define as an alias for 'korean-iso-8bit. (It is sometimes used in email messages.) 2020-12-06 Stefan Kangas Prefer setq-local in emulation/*.el * lisp/emulation/edt.el (edt-select-mode): * lisp/emulation/viper-cmd.el (viper-refresh-mode-line): (viper-minibuffer-setup-sentinel): * lisp/emulation/viper.el (viper-comint-mode-hook): Prefer setq-local. 2020-12-06 Stefan Kangas Prefer setq-local in url/*.el * lisp/url/url-cookie.el (url-cookie-write-file): * lisp/url/url-http.el (url-http-parse-headers): * lisp/url/url-util.el (url-extract-mime-headers): Prefer setq-local. 2020-12-06 YAMAMOTO Mitsuharu Fix Xaw widget text disappearing when built with cairo (bug#43418) * lwlib/lwlib-utils.c (crxft_font_open_name): Use FcFontMatch to get a pattern to pass to cairo_ft_font_face_create_for_pattern. 2020-12-05 Andrea Corallo Memoize `comp-cstr-union-1' * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Do not synthesize the copier. (comp-cstr-ctxt): Add `union-1-mem-no-range' `union-1-mem-range' slots. (comp-cstr-copy): New function. (comp-cstr-union-1-no-mem): Rename from `comp-cstr-union-1'. (comp-cstr-union-1): New function. 2020-12-05 Andrea Corallo More improvements to `comp-cstr-union-1' for mixed positive/negative cases * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Better handle mixed positive/negated cases. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a number of tests. 2020-12-05 Andrea Corallo Fix `comp-cstr-to-type-spec' * lisp/emacs-lisp/comp-cstr.el (comp-star-or-num-p): New predicate. (comp-type-spec-to-cstr): Make use of. (comp-cstr-to-type-spec): Output correctly type specifiers as (not (or integer ... 2020-12-05 Andrea Corallo Fix union of homogeneously negated input constraints * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-1): Fix logic. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a couple of tests. 2020-12-05 Andrea Corallo Add `with-comp-cstr-accessors' macro. * lisp/emacs-lisp/comp-cstr.el (with-comp-cstr-accessors): New macro. (comp-cstr-union-1): Make use of `with-comp-cstr-accessors'. 2020-12-05 Andrea Corallo Initial support for union of negated constraints * lisp/emacs-lisp/comp-cstr.el (comp-range-negation): New function. (comp-cstr-union-homogeneous-no-range): Rename from `comp-cstr-union-no-range'. (comp-cstr-union-homogeneous): Rename from `comp-cstr-union'. (comp-cstr-union-1): New function. (comp-cstr-union-no-range, comp-cstr-union): Rewrite in function of `comp-cstr-union-1'. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a bunch of tests. 2020-12-05 Andrea Corallo * lisp/emacs-lisp/comp-cstr.el (comp-cstr-union-no-range): Cosmetic. 2020-12-05 Andrea Corallo Initial constraint negation support * lisp/emacs-lisp/comp-cstr.el (comp-cstr): Add `neg' slot. (comp-range-negation, comp-cstr-negation) (comp-cstr-negation-make): New functions. (comp-type-spec-to-cstr): Enable `not` in type specifiers. (comp-cstr-to-type-spec): Update logic to handle negation. * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add a test. 2020-12-05 Stefan Monnier * lisp/progmodes/perl-mode.el: Fix handling of s'foo'bar' (perl-syntax-propertize-function): Don't put a syntax-property on regexp-op delimiters if they're already handled correctly by the normal syntax tables. (perl-syntax-propertize-special-constructs): Mark the middle quote of s'foo'bar' as punctuation. * test/manual/indent/perl.perl: Add new test cases. 2020-12-05 Stefan Kangas Prefer setq-local in play/*.el * lisp/play/decipher.el (decipher-mode): * lisp/play/doctor.el (make-doctor-variables): * lisp/play/dunnet.el (dun-mode): * lisp/play/gomoku.el (gomoku-mode): Prefer setq-local. 2020-12-05 Basil L. Contovounesios Fix last change to shell-command * lisp/simple.el: Specify comint-term-environment arglist in function declaration. (shell-command): Load shell.el before calling comint-term-environment; otherwise it is undefined. Allow async-shell-command-width to take precedence over the COLUMNS value returned by comint-term-environment. (Bug#45034) 2020-12-05 Eli Zaretskii Improve documentation of 'ps-print-color-p' * doc/emacs/misc.texi (PostScript Variables): Improve and clarify the description of 'ps-print-color-p'. (Bug#44962) 2020-12-05 Stefan Kangas Prefer setq-local in mail/*.el * lisp/mail/emacsbug.el (report-emacs-bug): * lisp/mail/rfc822.el (rfc822-addresses): * lisp/mail/rmail.el (rmail-perm-variables, rmail-show-message-1): * lisp/mail/rmailedit.el (rmail-edit-mode): (rmail-edit-current-message, rmail-cease-edit): * lisp/mail/rmailsum.el (rmail-new-summary-1, rmail-summary-mode): (rmail-summary-update-highlight): * lisp/mail/sendmail.el (mail-mode): Prefer setq-local. 2020-12-05 Stefan Kangas Prefer setq-local in vc/*.el * lisp/vc/add-log.el (find-change-log, change-log-mode): * lisp/vc/cvs-status.el (cvs-status-mode): * lisp/vc/diff-mode.el (diff-restrict-view, diff-find-file-name): (diff-mode, diff-setup-whitespace, diff-apply-hunk): * lisp/vc/diff.el (diff-no-select): * lisp/vc/ediff-util.el (ediff-setup): * lisp/vc/log-edit.el (log-edit, log-edit-mode): * lisp/vc/log-view.el (log-view-mode): * lisp/vc/pcvs.el (cvs-temp-buffer, cvs-make-cvs-buffer): (cvs-update-filter, cvs-mode, cvs-mode-commit) (cvs-mode-edit-log, cvs-vc-command-advice): * lisp/vc/smerge-mode.el (smerge-match-conflict): (smerge-ediff, smerge-mode): * lisp/vc/vc-annotate.el (vc-annotate-mode): (vc-annotate, vc-annotate-display): * lisp/vc/vc-bzr.el (vc-bzr-log-view-mode): * lisp/vc/vc-dir.el (vc-dir-mode): * lisp/vc/vc-dispatcher.el (vc-setup-buffer): (vc-compilation-mode, vc-start-logentry): * lisp/vc/vc-git.el (vc-git-log-view-mode): * lisp/vc/vc-hg.el (vc-hg-log-view-mode): * lisp/vc/vc-hooks.el (vc-refresh-state): * lisp/vc/vc-mtn.el (vc-mtn-log-view-mode): * lisp/vc/vc-svn.el (vc-svn-log-view-mode): * lisp/vc/vc.el (vc-register, vc-diff-internal): (vc-find-revision-save, vc-find-revision-no-save): (vc-log-internal-common, vc-region-history): Prefer setq-local. 2020-12-05 Dmitry Gutov Always show the summary * lisp/progmodes/xref.el (xref--show-defs-minibuffer): Always show the summary (at least for now). 2020-12-05 Dmitry Gutov Fontify the group and the line number * lisp/progmodes/xref.el (xref--show-defs-minibuffer): Fontify the group and the line number. 2020-12-05 Dmitry Gutov Hide the common parent directory, if any * lisp/progmodes/xref.el (xref--show-defs-minibuffer): Hide the common parent directory, if any. 2020-12-05 William Xu xref--show-defs-minibuffer: new "show definitions" UI * lisp/progmodes/xref.el (xref--show-defs-minibuffer): New function to use as xref-show-definitions-function (https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00824.html). 2020-12-04 Andrea Corallo Do not compile `comp-cstr.el` in vanilla builds * lisp/Makefile.in (compile-targets): Filter out 'comp-cstr.elc' in vanilla builds. 2020-12-04 Andrea Corallo Vanilla build warning clean-up * lisp/emacs-lisp/disass.el (native-comp-unit-file) (subr-native-comp-unit): Declare function. * lisp/progmodes/elisp-mode.el (native-compile): Likewise. * lisp/emacs-lisp/package.el (comp-el-to-eln-filename): Likewise. * lisp/startup.el (normal-top-level): Silence warning. * src/data.c (syms_of_data): 'Ssubr_native_lambda_list' is always defined. * src/pdumper.c (dump_cold_native_subr): Move under ifdefs. (dump_drain_cold_data): Add ifdefs. 2020-12-04 Andrea Corallo Fix `load-history' causing a number of spurious compiler warnings * src/comp.c (Fcomp__register_subr): Fix missing entry into `load-history' indicating that the loaded function was already an autoload. 2020-12-04 Spencer Baugh * src/alloc.c (Fgarbage_collect_maybe): New function 2020-12-04 Dmitry Gutov Improve docstrings * lisp/progmodes/xref.el (xref-search-program-alist) (xref-search-program): Improve docstrings. 2020-12-04 Roland Winkler * lisp/textmodes/bibtex.el: Use user-error. 2020-12-04 Stefan Kangas Prefer setq-local in emacs-lisp/*.el * lisp/emacs-lisp/chart.el (chart-mode): * lisp/emacs-lisp/copyright.el (copyright-update): * lisp/emacs-lisp/eieio-custom.el (eieio-customize-object): * lisp/emacs-lisp/elint.el (elint-update-env, elint-init-form): * lisp/emacs-lisp/ert.el (ert--results-update-ewoc-hf): (ert--setup-results-buffer): * lisp/emacs-lisp/lisp-mode.el (lisp-mode-variables): * lisp/emacs-lisp/pp.el (pp-display-expression): * lisp/emacs-lisp/re-builder.el (reb-mode, reb-restart-font-lock): * lisp/emacs-lisp/shadow.el (load-path-shadows-mode): * lisp/emacs-lisp/smie.el (smie-setup): * lisp/emacs-lisp/syntax.el (syntax-propertize): * lisp/emacs-lisp/trace.el (trace-make-advice): Prefer setq-local. 2020-12-04 Stefan Kangas Prefer setq-local in net/*.el * lisp/net/ange-ftp.el (ange-ftp-process-handle-line): (internal-ange-ftp-mode): * lisp/net/imap.el (imap-fetch-safe): * lisp/net/net-utils.el (net-utils-mode): (nslookup-mode, network-connection-mode-setup): * lisp/net/newst-plainview.el (newsticker-mode): (newsticker-buffer-update): * lisp/net/newst-treeview.el (newsticker--treeview-item-show): (newsticker-treeview-mode): * lisp/net/rlogin.el (rlogin): * lisp/net/secrets.el (secrets-mode): * lisp/net/sieve-mode.el (sieve-mode): * lisp/net/sieve.el (sieve-setup-buffer, sieve-open-server): * lisp/net/snmp-mode.el (snmp-common-mode, snmp-mode, snmpv2-mode): * lisp/net/telnet.el (telnet-mode): * lisp/net/tramp.el (tramp-get-debug-buffer): Prefer setq-local. 2020-12-04 Mattias Engdegård Speed up match-substitute-replacement * lisp/subr.el (match-substitute-replacement): Use match-data--translate. * src/search.c (Fmatch_data__translate): Remove string restriction. * test/lisp/subr-tests.el (subr-match-substitute-replacement): New test. 2020-12-04 Stefan Kangas Prefer setq-local in cedet * lisp/cedet/data-debug.el (data-debug-mode): * lisp/cedet/ede/custom.el (ede-customize-project): * lisp/cedet/ede/project-am.el (project-am-load-makefile): * lisp/cedet/mode-local.el (mode-local--activate-bindings): * lisp/cedet/semantic.el (semantic--set-buffer-cache): * lisp/cedet/semantic/analyze/debug.el (semantic-analyzer-debug-add-buttons): * lisp/cedet/semantic/grammar.el (semantic-grammar-mode): * lisp/cedet/semantic/senator.el (senator-search-set-tag-class-filter): (senator-isearch-mode-hook): * lisp/cedet/semantic/symref/list.el (semantic-symref-produce-list-on-results) (semantic-symref-results-mode): * lisp/cedet/semantic/util-modes.el (semantic-stickyfunc-mode): * lisp/cedet/semantic/wisent/python.el (wisent-python-default-setup): * lisp/cedet/srecode/srt-mode.el (srecode-template-mode): Prefer setq-local. 2020-12-04 Stefan Kangas Prefer setq-local in most of textmodes/*.el * lisp/textmodes/artist.el (artist-mode-init): * lisp/textmodes/bibtex.el (bibtex-mode): * lisp/textmodes/dns-mode.el (dns-mode): * lisp/textmodes/enriched.el (enriched-mode): * lisp/textmodes/ispell.el (ispell-buffer-local-parsing): * lisp/textmodes/nroff-mode.el (nroff-mode): * lisp/textmodes/picture.el (picture-mode): * lisp/textmodes/refill.el (refill-mode): * lisp/textmodes/two-column.el (2C-split): Prefer setq-local. 2020-12-04 Eli Zaretskii Don't abort when terminated by SIGINT in -batch * src/xdisp.c (clear_message_stack): New function. * src/emacs.c (terminate_due_to_signal): Call clear_message_stack when we are being shut down by SIGINT under -batch. * src/lisp.h (clear_message_stack): Add prototype. 2020-12-04 Lars Ingebrigtsen Make custom-data saving atomic * lisp/cus-edit.el (custom-save-all): Do the custom saves as an atomic change group, to avoid writing invalid data if something goes wrong (or the user hits `C-g') in the middle (bug#18633). 2020-12-04 Lars Ingebrigtsen Allow viper-save-setting to save numerical settings * lisp/emulation/viper-util.el (viper-save-setting): Allow saving numerical settings (bug#18928). 2020-12-04 Lars Ingebrigtsen Clarify icomplete-show-matches-on-no-input doc string * lisp/icomplete.el (icomplete-show-matches-on-no-input): Clarify the meaning of the variable (bug#19031). 2020-12-04 Stefan Kangas Prefer setq-local in erc * lisp/erc/erc-goodies.el (erc-imenu-setup): * lisp/erc/erc-list.el (erc-list-install-322-handler, erc-cmd-LIST): * lisp/erc/erc-pcomplete.el (pcomplete-erc-setup): * lisp/erc/erc.el (erc-mode, erc-update-mode-line-buffer): Prefer setq-local. 2020-12-04 Alyssa Ross (tiny change) Make shell-command use comint settings * lisp/simple.el (shell-command): Use the term environment from comint, so that comint settings are used for commands like `async-shell-command', too (bug#45034). 2020-12-04 Stefan Kangas * lisp/eshell/esh-mode.el (eshell-mode): Remove XEmacs compat code. 2020-12-04 Stefan Kangas Prefer setq-local in eshell * lisp/eshell/em-cmpl.el (eshell-cmpl-initialize): * lisp/eshell/em-dirs.el (eshell-dirs-initialize): * lisp/eshell/em-glob.el (eshell-glob-initialize, eshell-glob-regexp): * lisp/eshell/em-hist.el (eshell-hist-initialize): * lisp/eshell/em-prompt.el (eshell-prompt-initialize): * lisp/eshell/em-rebind.el (eshell-rebind-initialize) (eshell-setup-input-keymap): * lisp/eshell/em-script.el (eshell-script-initialize): * lisp/eshell/em-smart.el (eshell-smart-initialize): * lisp/eshell/em-term.el (eshell-term-initialize, eshell-exec-visual): * lisp/eshell/em-tramp.el (eshell-tramp-initialize): * lisp/eshell/em-unix.el (eshell-unix-initialize, eshell/diff): * lisp/eshell/esh-arg.el (eshell-arg-initialize): * lisp/eshell/esh-cmd.el (eshell-cmd-initialize): * lisp/eshell/esh-io.el (eshell-get-target): * lisp/eshell/esh-mode.el (eshell-mode): * lisp/eshell/esh-var.el (eshell-var-initialize): Prefer setq-local. 2020-12-04 Lars Ingebrigtsen Preload iso-trans.el * lisp/loadup.el ("international/iso-transl"): Load by default so that we get `Alt-' bindings (bug#21310). * lisp/international/iso-transl.el: Remove autoloads and some comments. 2020-12-04 Dmitry Gutov Support using ripgrep in project-find-regexp and friends Performance results vary here. Some projects and search terms don't see much of a change, but for some (including Emacs sources checkout and case-insensitive search) the switch to ripgrep shows ~2-3x speed improvement. Another piece of anecdata here: https://lists.gnu.org/archive/html/emacs-devel/2020-06/msg00802.html * lisp/progmodes/xref.el (xref-search-program-alist) (xref-search-program): New user options. (xref-matches-in-files): Use them. 2020-12-04 Andrea Corallo Reduce (half) the number of loads emitted for calling into C code As after each function call GCC clobbers the pointer to the function relocation table. This commit modify the code generation to create a local copy of it for each function. This reduces the average number of loads for each function call into C from two to one. * src/comp.c (comp_t): Add 'func_relocs_ptr_type' and 'func_relocs_local' fields. (emit_call): Use the local func_relocs pointer when possible. (emit_ctxt_code): Fill 'comp.func_relocs_ptr_type'. (compile_function): Declare 'func_relocs_ptr_local'. (compile_function): Assign 'func_relocs_ptr_local' from the global value in each function prologue. 2020-12-03 Eric Abrahamsen Restore nnimap-split-download-body as a customization option * lisp/gnus/nnimap.el (nnimap-split-download-body): And add an obsolete alias for `nnimap-split-download-body-default'. (nnimap-fetch-inbox): Check the value of the option, not the variable. * doc/misc/gnus.texi (Client-Side IMAP Splitting): Move the primary documentation of this option to this section. 2020-12-03 Basil L. Contovounesios Define explicit-shell-file-name only in shell.el For discussion, see the following thread: https://lists.gnu.org/r/emacs-devel/2020-04/msg00880.html * doc/emacs/cmdargs.texi (General Variables): Mention shell-file-name in relation to SHELL. * doc/emacs/misc.texi (Interactive Shell): Move index entry for SHELL environment variable from here, where it is not mentioned... (Single Shell): ...to here, where it is discussed along with shell-file-name. * lisp/dired.el (dired-insert-directory): Use shell-file-name instead of explicit-shell-file-name when a shell is implicitly requested. * lisp/obsolete/terminal.el (explicit-shell-file-name): * lisp/term.el (explicit-shell-file-name): Remove duplicate defcustoms and load lisp/shell.el instead. (Bug#40679) * lisp/shell.el (explicit-shell-file-name): Clarify docstring. (shell): Simplify. 2020-12-03 Stefan Kangas Add tests for several byte-compiler warnings * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp/warn-autoload-not-on-top-level\.el) (bytecomp/warn-callargs\.el) (bytecomp/warn-defcustom-nogroup\.el) (bytecomp/warn-defcustom-notype\.el) (bytecomp/warn-defvar-lacks-prefix\.el) (bytecomp/warn-format\.el) (bytecomp/warn-lambda-malformed-interactive-spec\.el) (bytecomp/warn-make-variable-buffer-local\.el) (bytecomp/warn-redefine-defun-as-macro\.el) (bytecomp/warn-redefine-defun\.el) (bytecomp/warn-redefine-macro-as-defun\.el) (bytecomp/warn-save-excursion\.el) (bytecomp/warn-variable-let-bind-constant\.el) (bytecomp/warn-variable-let-bind-nonvariable\.el) (bytecomp/warn-variable-set-constant\.el) (bytecomp/warn-variable-set-nonvariable\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/warn-autoload-not-on-top-level.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-callargs.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-nogroup.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-defcustom-notype.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-defvar-lacks-prefix.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-format.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-lambda-malformed-interactive-spec.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-make-variable-buffer-local.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun-as-macro.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-defun.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-redefine-macro-as-defun.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-save-excursion.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-constant.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-let-bind-nonvariable.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-constant.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-variable-set-nonvariable.el: * test/lisp/emacs-lisp/bytecomp-tests.el: New files. 2020-12-03 Basil L. Contovounesios Avoid spamming view-mode-enter help message By default, entering view-mode echoes a usage message. This is particularly helpful with non-nil view-read-only, to notify the user that view-mode has been enabled. It is less useful and more spammy, however, if view-mode is (possibly inadvertently) entered from some non-interactive code running in the background, such as when a major mode is enabled in a temporary buffer for text formatting purposes (bug#44629). * lisp/jsonrpc.el (jsonrpc-events-buffer, initialize-instance): Use buffer-read-only in place of read-only-mode for non-interactive use. * lisp/view.el (view-mode-enter): Inhibit help message if either view-inhibit-help-message is non-nil, or view-mode-enter was called from an interactive command. Suggested by João Távora . 2020-12-03 Michael Albinus Fix auto-revert-test07-auto-revert-several-buffers * test/lisp/autorevert-tests.el (auto-revert-test07-auto-revert-several-buffers): Adapt times values. 2020-12-03 Spencer Baugh Improve performance of auto-revert-notify-add-watch * lisp/autorevert.el (auto-revert-notify-add-watch): Do not search for buffers registered with the same file name, this is not necessary. (Bug#44638) 2020-12-03 Stefan Kangas Remove redundant requires of 'help' * lisp/emacs-lisp/advice.el (ad-read-advised-function): * lisp/emacs-lisp/ert.el: * lisp/facemenu.el: Don't require 'help'; it is preloaded since version 18.59. 2020-12-03 Stefan Kangas Remove redundant requires of 'button' * lisp/apropos.el: * lisp/emacs-lisp/cl-print.el: * lisp/emacs-lisp/debug.el: * lisp/emacs-lisp/ert.el: * lisp/emacs-lisp/shadow.el: * lisp/facemenu.el: * lisp/help-mode.el: * lisp/man.el: * lisp/progmodes/etags.el: * lisp/textmodes/bibtex.el: * lisp/woman.el: Don't require 'button'; it is preloaded since version 23.1. 2020-12-03 Lars Ingebrigtsen Fix "grep foo bar" in eshell * lisp/eshell/em-unix.el (eshell-grep): Use the -H switch so that we always get the file name, so that `M-x next-error' and friends work (bug#22330). 2020-12-03 Lars Ingebrigtsen Don't make grep arguments invisible in eshell * lisp/eshell/em-unix.el (eshell-grep): There doesn't seem to be any reason why parts of the command should be invisible, so don't do that. 2020-12-03 Lars Ingebrigtsen Recompute error positions in python-shell-send-region * lisp/progmodes/python.el (python-shell-send-region): Recompute line positions when evaluating (bug#22934). 2020-12-03 Stefan Kangas Remove redundant requires of 'custom' * lisp/emacs-lisp/eieio-custom.el: * lisp/htmlfontify.el: * lisp/mwheel.el: * lisp/net/eudc-vars.el: * lisp/net/ldap.el: * lisp/net/tramp-ftp.el: * lisp/net/tramp-gvfs.el: * lisp/progmodes/cwarn.el: * lisp/progmodes/sql.el: * lisp/savehist.el: * lisp/textmodes/reftex.el: * lisp/wid-browse.el: Don't require 'custom'; it is preloaded since version 20.1. 2020-12-03 Stefan Kangas Remove redundant requires of 'font-core' * lisp/ibuffer.el: * test/lisp/erc/erc-track-tests.el: Don't require 'font-core'; it is preloaded since version 22.1. 2020-12-03 Stefan Kangas Remove redundant requires of 'font-lock' * lisp/cedet/data-debug.el: * lisp/hi-lock.el: * lisp/htmlfontify.el: * lisp/org/org.el: * lisp/progmodes/cperl-mode.el: * lisp/progmodes/cwarn.el: Don't require 'font-lock'; it is preloaded since version 22.1. 2020-12-02 Roland Winkler bibtex-autokey-get-year: Allow both a year or date field. * lisp/textmodes/bibtex.el (bibtex-text-in-field): Allow arg field to be a list of fields. (bibtex-autokey-get-year): Look for year and date field. Allow the extended date format used by biblatex. 2020-12-02 Roland Winkler bibtex-mode: do not fail when local variables are disabled * lisp/textmodes/bibtex.el (bibtex-mode): Check if enable-local-variables is non-nil (bug#37957). 2020-12-02 Roland Winkler Allow bibtex-contline-indentation as file-local variable. * lisp/textmodes/bibtex.el (bibtex-contline-indentation) (bibtex-comment-start, bibtex-entry-offset, bibtex-text-indentation): Add :safe attribute. (bibtex-mode): Allow these variables as file-local variables (bug#44618 and bug#44647). 2020-12-02 Stefan Kangas Remove redundant requires of faces * lisp/htmlfontify.el: * lisp/term/ns-win.el: * lisp/term/w32-win.el: * lisp/term/x-win.el: * test/lisp/faces-tests.el: Don't require 'faces'; it is preloaded since version 19.34. 2020-12-02 Stefan Kangas Remove redundant requires of env * lisp/eshell/esh-var.el: * lisp/man.el: Don't require 'env'; it is preloaded since version 20.1. 2020-12-02 Roland Winkler Allow bibtex-unify-case-function as file-local variable * lisp/textmodes/bibtex.el (bibtex-unify-case-function): Renamed from bibtex-unify-case-convert. Add :safe attribute. * etc/NEWS: Update accordingly. 2020-12-02 Michael Albinus Add test to autorevert-tests.el * test/lisp/autorevert-tests.el (auto-revert--wait-for-revert): Handle `auto-revert--messages' being nil. (auto-revert-test07-auto-revert-several-buffers): New test. 2020-12-02 Stefan Kangas Improve sectioning in bytecomp-tests.el * test/lisp/emacs-lisp/bytecomp-tests.el: Add section comments. (test-eager-load-macro-expansion) (test-eager-load-macro-expansion-eval-and-compile): Move definitions. 2020-12-02 Stefan Kangas * lisp/play/dunnet.el: Remove Emacs 18 compat code. 2020-12-02 Stefan Kangas Make variable cperl-version obsolete * lisp/progmodes/cperl-mode.el (cperl-menu): Remove CPerl version menu entry. (cperl-version): Make obsolete. 2020-12-02 Stefan Kangas Remove some Emacs 19 compat code from cperl-mode * lisp/progmodes/cperl-mode.el (cperl-put-do-not-fontify): Remove Emacs 19 compat code. (cperl-do-not-fontify): Make obsolete. 2020-12-02 Stefan Kangas Remove some references to fast-lock and lazy-lock * lisp/htmlfontify.el (hfy-copy-and-fontify-file): * lisp/progmodes/antlr-mode.el: Remove some references to obsolete libraries fast-lock and lazy-lock. 2020-12-02 Lars Ingebrigtsen Fix alignment of declaractions of arrays * lisp/align.el (align-rules-list): Align variable declarations like char *foo[], too (bug#23370). 2020-12-02 Michael Albinus * INSTALL: Add the installation command of development packages for FreeBSD. Recipe contributed by Joseph Mingrone . 2020-12-02 Lars Ingebrigtsen Add tests for xsd-regexp 2020-12-02 Lars Ingebrigtsen Fix xsdre-range-list-to-char-alternative problem with {P} * lisp/nxml/xsd-regexp.el (xsdre-range-list-to-char-alternative): Make (string-match (xsdre-translate "\\p{P}") "a-b") work (bug#24093) -- the "forbidden" characters don't have to be the first elements in a range. 2020-12-02 Lars Ingebrigtsen Fix the message-fetch-field doc string * lisp/gnus/message.el (message-fetch-field): Improve the doc string (bug#44991). 2020-12-02 Stefan Kangas Remove specific byte-compiler warnings for cl.el * lisp/emacs-lisp/bytecomp.el (byte-compile-warning-types) (byte-compile-warnings, byte-compile-cl-file-p) (byte-compile-eval, byte-compile-eval-before-compile) (byte-compile-arglist-warn, byte-compile-find-cl-functions) (byte-compile-cl-warn, displaying-byte-compile-warnings) (byte-compile-file-form-require, byte-compile-form): Remove all specific cl.el warnings, as that library is now obsolete. The regular obsoletion warnings are sufficiently discouraging. * lisp/emacs-lisp/advice.el (ad-compile-function): Don't try to silence the now removed warning. * doc/lispref/tips.texi (Coding Conventions): * doc/misc/cl.texi (Organization): Make recommendation to not use cl.el and cl-compat.el stronger. * lisp/obsolete/cl.el: Make alias help say that they are obsolete. * lisp/obsolete/cl-compat.el (build-klist, safe-idiv) (pair-with-newsyms): Silence byte-compiler. 2020-12-02 Dmitry Gutov Improve .gitignore and project-vc-ignores handling * lisp/progmodes/project.el (project-ignores): Convert .gitignore entries more faithfully. (project--vc-list-files): Convert "our" ignore entries to "proper" globs, which is what Git pathspec requires. 2020-12-02 Dmitry Gutov Use project--value-in-dir * lisp/progmodes/project.el (project-files): Use 'project--value-in-dir'. To have any changes in 'project-vc-ignores' take effect immediately. 2020-12-01 Juri Linkov Fix documentation of window-in-direction arg MINIBUF (bug#44932) * doc/lispref/windows.texi (Windows and Frames): Rename MINI arg of window-in-direction to MINIBUF. Explain the non-nil non-t value. 2020-12-01 Glenn Morris Merge from origin/emacs-27 749e4b7e0b Reset xref-show-xrefs-function temporarily 3e6525d69f Don't show in 'view-lossage' responses to xterm feature qu... 9fbff9c35c ; * src/buffer.c: Fix comment describing 'buffer_defaults'. 2020-12-01 Glenn Morris Merge from origin/emacs-27 9939c435c1 Return the correct suffix in eww-make-unique-file-name 17fa17be3d Save bookmarks by using `write-file' (bug#12507) 2cdf1fd261 Fix filing messages when 'rmail-output-reset-deleted-flag'... a72db8ab8b Make file copying in tramp-gvfs more robust f31cacd1ff Revert "Fix incorrect handling of module runtime and envir... cdc632fbe6 Fix incorrect handling of module runtime and environment p... c9160bda78 CC Mode: Fix error in cache handling. This fixes bug #43481 2020-12-01 Michael Albinus * lisp/arc-mode.el (archive-get-descr): Use default mode if needed. 2020-12-01 Michael Albinus Allow Tramp to mirror traces to a file * doc/misc/tramp.texi (Traces and Profiles): Add `tramp-debug-to-file'. * lisp/net/tramp-adb.el (tramp-adb-parse-device-names) (tramp-adb-get-device): * lisp/net/tramp-cmds.el (tramp-rename-files): * lisp/net/tramp-gvfs.el (tramp-gvfs-monitor-process-filter) (tramp-gvfs-handler-volumeadded-volumeremoved) (tramp-get-media-devices): * lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch) (tramp-sh-gio-monitor-process-filter) (tramp-sh-gvfs-monitor-dir-process-filter) (tramp-sh-inotifywait-process-filter, tramp-maybe-send-script) (tramp-find-inline-encoding): * lisp/net/tramp-smb.el (tramp-smb-handle-copy-directory) (tramp-smb-handle-file-acl, tramp-smb-handle-set-file-acl): Use `tramp-compat-string-replace'. * lisp/net/tramp-compat.el (tramp-compat-string-replace): New defalias. * lisp/net/tramp.el (tramp-debug-to-file): New defcustom. (tramp-get-debug-buffer): Simplify. (tramp-get-debug-file-name): New defun. (tramp-debug-message): Write debug file if indicated. 2020-12-01 Michael Albinus * etc/NEWS: Add user option 'tramp-debug-to-file'. 2020-12-01 Stefan Kangas Fix byte-compiler warning for failed uses of lexical vars * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Fix byte-compiler warning for failed uses of lexical vars. (Bug#44980) * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--define-warning-file-test): Don't prefix tests with 'warn'. (bytecomp/error-lexical-var-with-add-hook\.el) (bytecomp/error-lexical-var-with-remove-hook\.el) (bytecomp/error-lexical-var-with-run-hook-with-args-until-failure\.el) (bytecomp/error-lexical-var-with-run-hook-with-args-until-success\.el) (bytecomp/error-lexical-var-with-run-hook-with-args\.el) (bytecomp/error-lexical-var-with-symbol-value\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-symbol-value.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-success.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-run-hook-with-args-until-failure.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-remove-hook.el: * test/lisp/emacs-lisp/bytecomp-resources/error-lexical-var-with-add-hook.el: New files. 2020-12-01 Zajcev Evgeny Fix use of 'switch-to-buffer-preserve-window-point' * lisp/window.el (switch-to-buffer): Respect buffer local value of 'switch-to-buffer-preserve-window-point' variable. 2020-12-01 Stefan Kangas Add tests for some byte-compiler warnings * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-warn/warn-interactive-only\.el) (bytecomp-warn/warn-obsolete-defun\.el) (bytecomp-warn/warn-obsolete-hook\.el) (bytecomp-warn/warn-obsolete-variable-same-file\.el) (bytecomp-warn/warn-obsolete-variable\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/warn-interactive-only.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-defun.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-hook.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable-same-file.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-obsolete-variable.el: New files. 2020-12-01 Dmitry Gutov Reset xref-show-xrefs-function temporarily * lisp/dired-aux.el (dired-do-find-regexp-and-replace): Make sure xref-show-xrefs-function has the necessary value (bug#44905). 2020-12-01 Andrea Corallo Fix `comp-mvar-symbol-p' and `comp-mvar-cons-p' (bug#44968) * lisp/emacs-lisp/comp.el (comp-mvar-symbol-p): As all slots into a `comp-cstr' are in or fix this logic. (comp-mvar-cons-p): Likewise. * test/src/comp-tests.el (bug-44968): New testcase. * test/src/comp-test-funcs.el (comp-test-44968-f): New test function. 2020-11-30 Stefan Kangas Decrease code duplication in byte-compiler free-vars warning * lisp/emacs-lisp/bytecomp.el (byte-compile-free-vars-warn): New defun extracted from... (byte-compile-variable-ref, byte-compile-variable-set): ...here. 2020-11-30 Stefan Kangas Test byte-compiler free variable warning * test/lisp/emacs-lisp/bytecomp-tests.el (ert-x): Require. (bytecomp--define-warning-file-test): New macro. (bytecomp-warn/warn-free-setq\.el) (bytecomp-warn/warn-free-variable-reference\.el): New tests. * test/lisp/emacs-lisp/bytecomp-resources/warn-free-setq.el: * test/lisp/emacs-lisp/bytecomp-resources/warn-free-variable-reference.el: New files. 2020-11-30 Stefan Kangas * lisp/so-long.el: Doc fix to reduce use of passive voice. 2020-11-30 Eli Zaretskii Don't show in 'view-lossage' responses to xterm feature queries * lisp/term/xterm.el (xterm--read-event-for-query): Prevent recording the characters read as the xterm response to a query, so as not to show them in 'view-lossage'. (Bug#44908) 2020-11-30 Michael Albinus Some adaptions to tramp-tests.el * test/lisp/net/tramp-tests.el (tramp-test-vec): Check for remote `tramp-test-temporary-file-directory'. (tramp-test11-copy-file, tramp-test12-rename-file): Do not skip for tramp-gvfs.el. (tramp--test-sh-p): Use `tramp-test-vec'. 2020-11-30 Michael Albinus Adapt Tramp versions * doc/misc/tramp.texi (Obtaining @value{tramp}): (Remote shell setup, Remote processes, Archive file names): * lisp/net/trampver.el (customize-package-emacs-version-alist): Adapt Tramp versions. 2020-11-30 Dmitry Gutov Improve docstrings * lisp/progmodes/project.el (project-find-file) (project-or-external-find-file): More accurate docstrings (bug#44588). 2020-11-29 Philipp Stephani Fix double-free bug when finalizing module runtimes. * src/emacs-module.c (finalize_runtime_unwind): Don't finalize initial environment twice. * test/src/emacs-module-resources/mod-test.c (emacs_module_init): Allocate lots of values during module initialization to trigger the bug. 2020-11-29 Juri Linkov * lisp/simple.el (read-from-kill-ring): Call current-kill to prefill kill-ring 2020-11-29 Juri Linkov Fix MINIBUF 'nomini' arg for windmove/window-in-direction (bug#44932) * lisp/windmove.el (windmove-display-in-direction) (windmove-delete-in-direction, windmove-swap-states-in-direction): Add 'nomini' as MINIBUF arg of window-in-direction. * lisp/window.el (window-in-direction): Rename arg MINI to MINIBUF. Update docstring from walk-window-tree. Send MINIBUF arg to walk-window-tree unchanged. 2020-11-29 Alan Third Allow doprint to handle multibyte chars in format (bug#44349) * src/doprnt.c (doprnt): Handle the case where fmtchar is the start of a multibyte character. 2020-11-29 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-11-29 Protesilaos Stavrou Make log-view-commit-body less intrusive * lisp/vc/log-view.el (log-view-commit-body): Inherit from font-lock-comment-face. This makes expanded commit messages in log-view look the same as they did prior to commit 1f0b929430 (consult bug#44424) (bug#44937). 2020-11-29 Akira Kyle Return the correct suffix in eww-make-unique-file-name * lisp/net/eww.el (eww-make-unique-file-name): Return the correct suffix (bug#44936). 2020-11-29 Lars Ingebrigtsen frame-position doc string clarificaton * src/frame.c (Fframe_position): Mention that the values are system-dependent (bug#32977). 2020-11-29 Lars Ingebrigtsen garbage-collect doc string clarification * src/alloc.c (Fgarbage_collect): Mention that calling this function is not guaranteed to collect all the garbage (bug#34404). 2020-11-29 Lars Ingebrigtsen Tweak eww-use-browse-url doc string * lisp/net/eww.el (eww-use-browse-url): Tweak doc string wording. 2020-11-29 Karl Fogel Save bookmarks by using `write-file' (bug#12507) Go back to using `write-file' to save bookmarks, instead of using `write-region'. This means numbered backups of the bookmark file may get made again, depending on the value of `bookmark-version-control'. Thanks especially to Drew Adams and Eli Zaretskii for their persistence in tracking down information relevant to this change. 2020-11-28 Eli Zaretskii Fix filing messages when 'rmail-output-reset-deleted-flag' is non-nil * lisp/mail/rmailout.el (rmail-output): Fix off-by-one error in deciding when to advance to the next message under non-nil 'rmail-output-reset-deleted-flag'. (Bug#44839) 2020-11-28 Lele Gaifax Update TUTORIAL.it * etc/tutorials/TUTORIAL.it: Follow changes made to TUTORIAL in the last year 2020-11-28 Michael Albinus Make file copying in tramp-gvfs more robust * test/lisp/net/tramp-tests.el (tramp-test11-copy-file) (tramp-test12-rename-file): Do not skip for tramp-gvfs.el. * lisp/net/tramp-gvfs.el (tramp-gvfs-do-copy-or-rename-file): Add sanity checks. 2020-11-28 Mattias Engdegård * etc/tutorials/TUTORIAL.sv: General copy-editing. 2020-11-28 Eli Zaretskii Revert "Fix incorrect handling of module runtime and environment pointers." This reverts commit cdc632fbe6e149318147a98cccf1b7af191f2ce8. Those changes are too significant and non-trivial to be suitable for a release branch at this time. 2020-11-27 Andrea Corallo Add intersection support into comp-cstr.el 2020-11-27 Andrea Corallo Synthesize as const primitive function pointers and its container struct. * src/comp.c (declare_imported_func): Make const function pointer to primitive functions. (emit_ctxt_code): Make struct 'comp.func_relocs' const. 2020-11-27 Philipp Stephani Fix incorrect handling of module runtime and environment pointers. We used to store module runtime and environment pointers in the static lists Vmodule_runtimes and Vmodule_environments. However, this is incorrect because these objects have to be kept per-thread. With this naive approach, interleaving module function calls in separate threads leads to environments being removed in the wrong order, which in turn can cause local module values to be incorrectly garbage-collected. Instead, turn Vmodule_runtimes and Vmodule_environments into hashtables keyed by the thread objects. The fix is relatively localized and should therefore be safe enough for the release branch. Module assertions now have to walk the pointer list for the current thread, which is more correct since they now only find environments for the current thread. Also add a unit test that exemplifies the problem. It interleaves two module calls in two threads so that the first call ends while the second one is still active. Without this change, this test triggers an assertion failure. * src/emacs-module.c (Fmodule_load, initialize_environment) (finalize_environment, finalize_runtime_unwind): Store runtime and environment pointers in per-thread lists. (syms_of_module): Initialize runtimes and environments hashtables. (module_assert_runtime, module_assert_env, value_to_lisp): Consider only objects for the current thread. (module_gc_hash_table_size, module_hash_push, module_hash_pop): New generic hashtable helper functions. (module_objects, module_push_pointer, module_pop_pointer): New helper functions to main thread-specific lists of runtime and environment pointers. (mark_modules): Mark all environments in all threads. * test/data/emacs-module/mod-test.c (Fmod_test_funcall): New test function. (emacs_module_init): Bind it. * test/src/emacs-module-tests.el (emacs-module-tests--variable): New helper type to guard access to state in a thread-safe way. (emacs-module-tests--wait-for-variable) (emacs-module-tests--change-variable): New helper functions. (emacs-module-tests/interleaved-threads): New unit test. 2020-11-27 Mattias Engdegård Use correct glyph in title when resizing NS frames * src/nsterm.m ([EmacsView windowWillResize:toSize:]): Use ×, not x. 2020-11-27 Philipp Stephani Fix incorrect handling of module runtime and environment pointers. We used to store module runtime and environment pointers in the static lists Vmodule_runtimes and Vmodule_environments. However, this is incorrect because these objects have to be kept per-thread. With this naive approach, interleaving module function calls in separate threads leads to environments being removed in the wrong order, which in turn can cause local module values to be incorrectly garbage-collected. The fix isn't completely trivial: specbinding the lists wouldn't work either, because then the garbage collector wouldn't find the environments in other threads than the current ones, again leading to objects being garbage-collected incorrectly. While introducing custom pseudovector types would fix this, it's simpler to put the runtime and environment pointers into the specbinding list as new specbinding kinds. This works since we need to unwind them anyway, and we only ever treat the lists as a stack. The thread switching machinery ensures that the specbinding lists are thread-local, and that all elements of the specbinding lists in all threads are marked during garbage collection. Module assertions now have to walk the specbinding list for the current thread, which is more correct since they now only find environments for the current thread. As a result, we can now remove the faulty Vmodule_runtimes and Vmodule_environments variables entirely. Also add a unit test that exemplifies the problem. It interleaves two module calls in two threads so that the first call ends while the second one is still active. Without this change, this test triggers an assertion failure. * src/lisp.h (enum specbind_tag): Add new tags for module runtimes and environments. * src/eval.c (record_unwind_protect_module): New function to record a module object in the specpdl list. (do_one_unbind): Unwind module objects. (backtrace_eval_unrewind, default_toplevel_binding, lexbound_p) (Fbacktrace__locals): Deal with new specbinding types. (mark_specpdl): Mark module environments as needed. * src/alloc.c (garbage_collect): Remove call to 'mark-modules'. Garbage collection of module values is now handled as part of marking the specpdl of each thread. * src/emacs-module.c (Fmodule_load, funcall_module): Use specpdl to record module runtimes and environments. (module_assert_runtime, module_assert_env, value_to_lisp): Walk through specpdl list instead of list variables. (mark_module_environment): Rename from 'mark_modules'. Don't attempt to walk though current thread's environments only, since that would miss other threads. (initialize_environment, finalize_environment): Don't change Vmodule_environments variable; environments are now in the specpdl list. (finalize_environment_unwind, finalize_runtime_unwind): Make 'extern' since do_one_unbind now calls them. (finalize_runtime_unwind): Don't change Vmodule_runtimes variable; runtimes are now in the specpdl list. (syms_of_module): Remove Vmodule_runtimes and Vmodule_environments. * test/data/emacs-module/mod-test.c (Fmod_test_funcall): New test function. (emacs_module_init): Bind it. * test/src/emacs-module-tests.el (emacs-module-tests--variable): New helper type to guard access to state in a thread-safe way. (emacs-module-tests--wait-for-variable) (emacs-module-tests--change-variable): New helper functions. (emacs-module-tests/interleaved-threads): New unit test. 2020-11-27 Stefan Monnier * lisp/subr.el (activate-change-group): Refine fix for bug#33341 2020-11-27 Mattias Engdegård Make the 'cucumber' compilation pattern work without 'omake' When 'omake' is included in compilation-error-regexp-alist, which it still is by default, then all other rules are modified to match with an extra leading 6 spaces as well. The 'cucumber' pattern relied on this in order to work as intended. * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Extend the 'cucumber' pattern so that it works even when 'omake' is not included. Move it below the 'gnu' rule so that it doesn't match anything else. 2020-11-27 Mattias Engdegård Update TUTORIAL.de and TUTORIAL.fr * etc/tutorials/TUTORIAL.de: * etc/tutorials/TUTORIAL.fr: Follow recent changes in TUTORIAL. 2020-11-27 Stefan Monnier * lisp/subr.el (activate-change-group): Fix bug#33341 2020-11-27 Stefan Kangas Update TUTORIAL.es * etc/tutorials/TUTORIAL.es: A followup to recent changes in TUTORIAL. 2020-11-27 Stefan Kangas Update TUTORIAL.sv * etc/tutorials/TUTORIAL.sv: A followup to recent changes in TUTORIAL. Minor tweaks for grammar and style. 2020-11-27 Juri Linkov Add completion-tab-width to align prefix chars with names in read-char-by-name * lisp/international/mule-cmds.el (mule--ucs-names-affixation): Replace mule--ucs-names-annotation to display chars in prefixes that implements two FIXME items. (read-char-by-name): Let-bind completion-tab-width to 4. Use affixation-function instead of annotation-function. * lisp/minibuffer.el (completion-tab-width): New variable. (completion--insert-strings): Align colwidth to tab positions when completion-tab-width is non-nil. * lisp/simple.el (completion-setup-function): Set tab-width to completion-tab-width when completion-tab-width is non-nil. https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01263.html 2020-11-27 Juri Linkov * lisp/simple.el (read-from-kill-ring): Use frame-text-cols, not frame-width. 2020-11-27 Eli Zaretskii Update TUTORIAL.he * etc/tutorials/TUTORIAL.he: A followup to recent changes in TUTORIAL. 2020-11-27 Lars Ingebrigtsen Fix up previous server exit directory deletion * lisp/server.el (server-start): Only delete the server directory if it's in /tmp (bug#44644). 2020-11-26 Andrea Corallo Move some tests from comp-tests.el to comp-cstr-tests.el * test/lisp/emacs-lisp/comp-cstr-tests.el (comp-cstr-typespec-tests-alist): Add tests covering what was in: `range-simple-union', `union-types', `destructure-type-spec'. * test/src/comp-tests.el (range-simple-intersection, union-types) (destructure-type-spec): Remove tests. 2020-11-26 Andrea Corallo Add comp-cstr.el and comp-cstr-tests.el As the constraint logic of the compiler is not trivial and largely independent from the rest of the code move it into comp-cstr.el to ease separation and maintainability. This commit improve the conversion type specifier -> constraint for generality. Lastly this should help with bootstrap time as comp.el compilation unit is slimmed down. * lisp/emacs-lisp/comp-cstr.el: New file. (comp--typeof-types, comp--all-builtin-types): Move from comp.el. (comp-cstr, comp-cstr-f): Same + rename. (comp-cstr-ctxt): New struct. (comp-supertypes, comp-common-supertype-2) (comp-common-supertype, comp-subtype-p, comp-union-typesets) (comp-range-1+, comp-range-1-, comp-range-<, comp-range-union) (comp-range-intersection): Move from comp.el. (comp-cstr-union-no-range, comp-cstr-union): Move from comp.el and rename. (comp-cstr-union-make): New function. (comp-type-spec-to-cstr, comp-cstr-to-type-spec): Move from comp.el, rename it and rework it. * lisp/emacs-lisp/comp.el (comp-known-func-cstr-h): Rework. (comp-ctxt): Remove two fields and include `comp-cstr-ctxt'. (comp-mvar, comp-fwprop-call): Update for `comp-cstr' being renamed. (comp-fwprop-insn): Use `comp-cstr-union-no-range' or `comp-cstr-union'. (comp-ret-type-spec): Use `comp-cstr-union' and rework. * test/lisp/emacs-lisp/comp-cstr-tests.el: New file. (comp-cstr-test-ts, comp-cstr-typespec-test): New functions. (comp-cstr-typespec-tests-alist): New defconst to generate tests on. (comp-cstr-generate-tests): New macro. * test/src/comp-tests.el (comp-tests-type-spec-tests): Update. (ret-type-spec): Initialize constraint context. 2020-11-26 Dario Gjorgjevski Fix modification check when custom-form is `lisp' * lisp/cus-edit.el (custom-variable-modified-p): Quote the value when custom form is 'lisp (or 'mismatch) prior to comparing in order to accommodate `custom-variable-value-create' (bug#44852). 2020-11-26 Mattias Engdegård Remove keyboard anachronisms from tutorial * etc/tutorials/TUTORIAL: Don't keep referring to EDIT as if it were a common name for the Meta key; since a few decades back it's labelled Alt (or Option or ⌥ but those keys usually also have 'alt' engraved on them). Similarly, CTL is practically extinct and not worth mentioning. 2020-11-26 Mattias Engdegård Fix replace-regexp-in-string substring match data translation For certain patterns, re-matching the same regexp on the matched substring does not produce correctly translated match data (bug#15107 and bug#44861). Using a new builtin function also improves performance since the number of calls to string-match is halved. Reported by Kevin Ryde and Shigeru Fukaya. * lisp/subr.el (replace-regexp-in-string): Translate the match data using match-data--translate instead of trusting a call to string-match on the matched string to do the job. * test/lisp/subr-tests.el (subr-replace-regexp-in-string): Add test cases. * src/search.c (Fmatch_data__translate): New internal function. (syms_of_search): Register it as a subroutine. 2020-11-26 Alan Mackenzie CC Mode: Fix error in cache handling. This fixes bug #43481 * lisp/progmodes/cc-engine.el (c-full-pp-to-literal): Handle correctly END being before HERE by using parse-partial-sexp to get the end of the literal containing HERE. 2020-11-26 Lars Ingebrigtsen Keep point in the *eldoc* buffer in eldoc-display-in-echo-area * lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Use 'save-excursion' to keep point position in *eldoc* buffer. Suggested by Andrii Kolomoiets . 2020-11-26 Lars Ingebrigtsen Allow following symlinks when recompiling directories * doc/lispref/compile.texi (Compilation Functions): Document it. * lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Allow following symlinks (bug#10292). 2020-11-26 Stefan Kangas * lisp/files.el (auto-mode-alist): Add entry for "archive-contents". 2020-11-26 Eric Abrahamsen Add "replied" -> "answered" for gnus-search imap searches * lisp/gnus/gnus-search.el (gnus-search-imap-handle-flag): This allows "mark:A" to be translated into "ANSWERED" and "-mark:A" to be translated into "UNANSWERED". 2020-11-26 Eric Abrahamsen Assume default imap TEXT search even when not using parsed queries This behavior both better matches the previous nnir behavior, reducing confusion for new users, and matches behavior when using parsed queries. * lisp/gnus/gnus-search.el (gnus-search-imap-search-keys): Make sure this variable contains all known IMAP search keys. (gnus-search-run-search): If the search query doesn't start with a known search key, prepend "TEXT " to the query. 2020-11-25 Michael Albinus Use null-device where appropriate * lisp/filesets.el (filesets-select-command): * lisp/shell.el (shell-mode): * lisp/term.el (term-exec-1): * lisp/wdired.el (wdired-do-symlink-changes): * lisp/cedet/ede/pmake.el (ede-proj-makefile-create): * lisp/eshell/esh-io.el (eshell-set-output-handle): * lisp/gnus/gnus-fun.el (gnus-grab-cam-x-face): * lisp/gnus/mml2015.el (mml2015-epg-key-image): * lisp/gnus/smime.el (smime-noverify-region): * lisp/org/ob-picolisp.el (org-babel-execute:picolisp): * lisp/org/ob-screen.el (org-babel-prep-session:screen) (org-babel-prep-session:screen): * lisp/play/fortune.el (fortune-quiet-strfile-options): * lisp/progmodes/cperl-mode.el (cperl-pod2man-build-command): * lisp/progmodes/sh-script.el (sh-tmp-file): * lisp/vc/diff-mode.el (diff-add-log-current-defuns) (diff--font-lock-prettify): * lisp/vc/ediff-mult.el (ediff-patch-file-form-meta): * lisp/vc/ediff-ptch.el (ediff-map-patch-buffer) (ediff-fixup-patch-map, ediff-dispatch-file-patching-job): * lisp/vc/vc.el (vc-diff-internal): Use null-device or (null-device), respectively. (Bug#3736) 2020-11-25 Juri Linkov * lisp/minibuffer.el (completions-format): Add new value 'one-column'. * lisp/minibuffer.el (completion--insert-strings): Support 'one-column'. * lisp/simple.el (read-from-kill-ring): Truncate strings at frame-width. 2020-11-25 Stefan Monnier (defvar): Detect defining a variable currently lexically bound * src/eval.c (lexbound_p): New function. (Finternal__define_uninitialized_variable): Use it. 2020-11-25 Mattias Engdegård Add tests for replace-regexp-in-string * test/lisp/subr-tests.el (subr-replace-regexp-in-string): New. 2020-11-25 Mattias Engdegård * doc/lispref/searching.texi (Rx Constructs): Group numbering fix 2020-11-25 Michael Albinus * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process): Use `tramp--test-windows-nt-p'. 2020-11-25 Michael Albinus Merge from origin/emacs-27 6442cdc0e4 Revert extra focus redirection in do_switch_frame (Bug#24803) fc4379f1ae Minor cleanup of tramp-tests.el on MS Windows dea3d6aa18 Fix handling of defcustom :local tag 2020-11-25 Michael Albinus Merge from origin/emacs-27 f425a774c2 Fix display artifacts when 'display' properties cover newl... 2020-11-25 Martin Rudalics Revert extra focus redirection in do_switch_frame (Bug#24803) * src/frame.c (do_switch_frame): Do not also redirect frame focus when FRAME has its minibuffer window on the selected frame which was intended to fix Bug#24500. It may cause Bug#24803 and lead to a nasty state where no active cursor is shown on any frame, see https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01137.html. 2020-11-25 Juri Linkov Add 'completions-detailed' to add prefix/suffix with 'affixation-function' * doc/lispref/minibuf.texi (Completion Variables) (Programmed Completion): Add affixation-function. * lisp/help-fns.el (help--symbol-completion-table-affixation): New function. (help--symbol-completion-table): Set affixation-function when completions-detailed is non-nil. * lisp/minibuffer.el (completion-metadata): Add affixation-function to docstring. (completions-annotations): Inherit from shadow with italic. (completions-detailed): New defcustom. (completion--insert-strings): Count string-width on all strings in completion list. Insert prefix and suffix. (completion-extra-properties): Add affixation-function to docstring. (minibuffer-completion-help): Call affixation-function. (minibuffer-default-prompt-format): Move down closer to its use. https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00613.html 2020-11-25 Michael Albinus Minor cleanup of tramp-tests.el on MS Windows * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process): Do not test remote pty on MS Windows. 2020-11-25 Lars Ingebrigtsen Move code in face-remap.el to avoid a compilation warning * lisp/face-remap.el (text-scale--refresh): Move code to avoid compilation warning. In text-scale--refresh: face-remap.el:241:14: Warning: reference to free variable ‘text-scale-mode’ 2020-11-25 Stefan Kangas Make text-scale-mode optionally adjust the header line * lisp/face-remap.el (text-scale-remap-header-line-face): New buffer local variable. (text-scale-mode): Adjust header line if above variable is non-nil. (face-remap--clear-remappings, face-remap--remap-face): New defuns. * lisp/face-remap.el: Arrange to watch text-scale-mode-remapping. (text-scale--refresh): New function. * lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Use text-scale-remap-header-line. (Bug#41852) 2020-11-24 Juri Linkov Yank items selected from kill-ring using completion and minibuffer history * doc/emacs/killing.texi (Earlier Kills): Document standalone M-y. * doc/emacs/search.texi (Isearch Yank): Explain standalone M-y. * doc/lispref/text.texi (Yank Commands): Soften the wording of yank after another yank. * lisp/delsel.el: Put 'yank' property on yank-pop and yank-from-kill-ring. * lisp/isearch.el (isearch-yank-pop): Use with-isearch-suspended and read-from-kill-ring to read a string from the kill-ring and append it to the search string. * lisp/simple.el (yank-pop): Call yank-from-kill-ring and read-from-kill-ring when last-command is not 'yank' instead of signaling an error. Remove "*" from interactive spec. Update docstring. (read-from-kill-ring): New function. (yank-from-kill-ring): New command. https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00801.html 2020-11-24 Stefan Kangas * build-aux/update-subdirs: Use lexical-binding in subdirs.el. 2020-11-24 Philipp Stephani Add a (broken) unit test to exemplify Bug#11218. * test/lisp/emacs-lisp/ert-tests.el (ert-test-with-demoted-errors): New (broken) unit test. 2020-11-24 Stefan Kangas Remove XEmacs compat code from idlw-help.el * lisp/progmodes/idlw-help.el (idlwave-do-context-help) (idlwave-help-show-help-frame): Remove XEmacs compat code. 2020-11-24 Stefan Kangas Make XEmacs compat aliases easy-menu-{add,remove} obsolete * lisp/emacs-lisp/easymenu.el (easy-menu-remove, easy-menu-add): Make XEmacs compat aliases obsolete. * lisp/allout.el (allout-setup-menubar): * lisp/cus-edit.el (Custom-mode): * lisp/gnus/gnus-art.el (gnus-article-edit-mode): * lisp/gnus/message.el (message-mode): * lisp/net/sieve.el (sieve-manage-mode): * lisp/org/org-agenda.el (org-agenda-mode): * lisp/org/org-table.el (org-table-edit-formulas, orgtbl-mode): * lisp/org/org.el: * lisp/progmodes/cperl-mode.el (cperl-mode): * lisp/progmodes/hideshow.el (hs-minor-mode): * lisp/progmodes/idlw-help.el (idlwave-help-mode): * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/idlwave.el (idlwave-mode): * lisp/progmodes/meta-mode.el (meta-common-mode): * lisp/progmodes/octave.el (octave-mode): * lisp/progmodes/prolog.el (prolog-menu): * lisp/progmodes/tcl.el (tcl-mode): * lisp/speedbar.el (speedbar-reconfigure-keymaps): * lisp/term.el (term-mode, term-char-mode, term-process-pager): * lisp/textmodes/dns-mode.el (dns-mode): * lisp/wid-browse.el (widget-browse-mode): Don't call above obsolete aliases. * lisp/cedet/semantic/grammar.el (semantic-grammar-setup-menu-xemacs): * lisp/mh-e/mh-folder.el (mh-folder-mode): * lisp/mh-e/mh-identity.el (mh-identity-add-menu): * lisp/mh-e/mh-letter.el (mh-letter-mode): * lisp/mh-e/mh-search.el (mh-search-mode): * lisp/mh-e/mh-show.el (mh-show-mode): * lisp/obsolete/otodo-mode.el (todo-mode): * lisp/progmodes/antlr-mode.el (antlr-mode): * lisp/progmodes/cc-mode.el (c-mode, c++-mode, objc-mode) (java-mode, idl-mode, pike-mode): * lisp/progmodes/sql.el (sql-mode, sql-interactive-mode): * lisp/progmodes/vhdl-mode.el (vhdl-update-mode-menu) (vhdl-add-source-files-menu, vhdl-mode): * lisp/textmodes/reftex-index.el (reftex-index-mode) (reftex-index-phrases-mode): * lisp/textmodes/reftex-toc.el (reftex-toc-mode): * lisp/textmodes/reftex.el (reftex-mode): Only call above obsolete aliases in XEmacs. * lisp/progmodes/prolog.el (prolog-inferior-menu): * lisp/erc/erc-menu.el (erc-menu-add, erc-menu-remove): Don't call above obsolete aliases. Make obsolete. * lisp/erc/erc-menu.el (menu, erc-menu-add, erc-menu-remove): * lisp/progmodes/prolog.el (prolog-inferior-mode): Adjust callers. * lisp/speedbar.el (speedbar-previous-menu): Make obsolete. (Bug#44731) 2020-11-24 Basil L. Contovounesios Fix handling of defcustom :local tag For discussion, see the following emacs-devel thread: https://lists.gnu.org/r/emacs-devel/2020-11/msg00734.html * lisp/custom.el (custom-declare-variable): Delay call to make-variable-buffer-local until after user option has been initialized with a value. Otherwise the user option may be initialized to nil. * test/lisp/custom-tests.el (custom--test-local-option) (custom--test-permanent-option): New :local user options. (custom-test-local-option): New test for defcustom :local keyword. 2020-11-24 Eli Zaretskii Fix display artifacts when 'display' properties cover newlines * src/xdisp.c (pos_visible_p): Set glyph_row of scratch iterators to NULL, to avoid producing glyphs while we figure out the layout. (Bug#44826) 2020-11-24 Mauro Aranda Fix menu binding for files in fileset * lisp/filesets.el (filesets-remake-shortcut): We want the callback of the menu item, not a list that contains the callback. (Bug#44764) 2020-11-24 Mauro Aranda Fix matching of inline choices for the choice widget A choice widget should be able to match either no inline values or inline values, upon request. (Bug#44579) * lisp/wid-edit.el (choice): New property, :inline-bubbles-p. A predicate that returns non-nil if the choice widget can act as an inline widget. Document it. (widget-choice-inline-bubbles-p): New function, for the :inline-bubbles-p property of the choice widget. (widget-inline-p): New function. Use the :inline-bubbles-p property of the widget, if any. (widget-match-inline): Use the above to see if the widget can act like an inline widget. Document it. (widget-choice-value-create): Account for the case of a choice widget that has inline members. (widget-checklist-add-item, widget-editable-list-value-create) (widget-group-value-create): Use widget-inline-p rather than just checking for a non-nil :inline property, allowing these functions to pass the complete information to widgets like the choice widget to create their values. * test/lisp/wid-edit-tests.el (widget-test-choice-match-no-inline) (widget-test-choice-match-all-inline) widget-test-choice-match-some-inline): New tests, to check that choice widgets can match its choices, inline or not. (widget-test-inline-p): New test, for the new function widget-inline-p. (widget-test-repeat-can-handle-choice) (widget-test-repeat-can-handle-inlinable-choice) (widget-test-list-can-handle-choice) (widget-test-list-can-handle-inlinable-choice) (widget-test-option-can-handle-choice) (widget-test-option-can-handle-inlinable-choice): New tests. This grouping widgets need to be able to create a choice widget regardless if it has inline choices or not. 2020-11-24 Drew Adams Fix finding filelist for :tree fileset (Bug#976) * lisp/filesets.el (filesets-files-under): New function, used to get all files for a :tree fileset. (filesets-get-filelist): Use it. Look for the directory and the pattern in the right place inside entry. 2020-11-24 Mattias Engdegård Autoload the 'rx' pcase macroexpander (bug#44807) * lisp/emacs-lisp/rx.el (rx--pcase-macroexpander]): Autoload. 2020-11-24 Lars Ingebrigtsen Allow controlling whether SPC in Gnus goes to the next article * doc/misc/gnus.texi (Summary Maneuvering): Document it. * lisp/gnus/gnus-sum.el (gnus-paging-select-next): New variable. (gnus-summary-prev-page, gnus-summary-next-page): Use it. 2020-11-24 Lars Ingebrigtsen Make the `C' command work on marked files * lisp/arc-mode.el (archive-copy-file): Make the `C' command work on marked files (bug#44753). 2020-11-24 Lars Ingebrigtsen Add a user option to control how links are followed in eww * doc/misc/eww.texi (Advanced): Document it (bug#44783). * lisp/net/eww.el (eww-use-browse-url): New variable. (eww-follow-link): Use it. 2020-11-24 Itai Seggev (tiny change) Codesign the executable on recene MacOS systems * src/Makefile.in (temacs$(EXEEXT)): Codesign the executable on recent (ARM) MacOS systems (bug#43878). Without this, building Emacs fails. 2020-11-24 Lars Ingebrigtsen Delete the emacs-server directory upon Emacs exit * lisp/server.el (server-start): Delete the server directory upon Emacs exit (bug#44644). This fixes the problem of /tmp/emacs0 directories being left behind when running an Emacs server as root. 2020-11-24 Lars Ingebrigtsen Tweak the face of unknown backend indicators in flymake * lisp/progmodes/flymake.el (flymake--mode-line-format): Don't put a face on the the "?" unknown backend indicator, because that looks odd in inactive windows (bug#44689). 2020-11-24 Paul W. Rankin Handle outline overlays better when cycling in outline.el * lisp/outline.el (outline--cycle-state): Only consider outline overlays that are on outline headings; when subtree end is point-max, return overlay-end +1 because final subtree overlay only reaches point-max -1 (bug#41198). (outline-cycle-buffer): Check that buffer has top-level headings before calling outline-hide-sublevels 1 thus preventing disconcerting buffer state of content reduced to single "..." 2020-11-23 Andrea Corallo Add SELECTOR parameter to `native-compile-async' (bug#44813) * lisp/emacs-lisp/comp.el (native-compile-async-skip-p): New function ripping out logic from `native--compile-async' and accounting for SELECTOR. (native--compile-async): Add SELECTOR parameter, make use of `native-compile-async-skip-p' and move it with other private functions. (native-compile-async): Add SELECTOR parameter. 2020-11-23 Andrea Corallo Rename two native compiler customize * lisp/emacs-lisp/comp.el (comp-deferred-compilation-deny-list): Rename from `comp-deferred-compilation-black-list'. * lisp/emacs-lisp/comp.el (native--compile-async): Update to use `comp-deferred-compilation-deny-list'. (comp-bootstrap-deny-list): Rename. (batch-native-compile): Update to use `comp-bootstrap-deny-list'. 2020-11-23 Michael Albinus Adapt files-x-tests.el according to recent Tramp changes * test/lisp/files-x-tests.el (tramp-connection-local-default-profile): Don't declare. (tramp-connection-local-default-shell-variables) (tramp-connection-local-default-system-variables): Declare. (files-x-test-with-connection-local-variables): Use them. 2020-11-23 Glenn Morris Merge from origin/emacs-27 3ceee39819 Fix Bug#44481 2020-11-23 Glenn Morris Merge from origin/emacs-27 86cbc9d216 Make ignoring modifiers on IME input optional 32b97bb9e0 Ignore modifiers when processing WM_IME_CHAR messages f641ef1a07 Improve documentation of 'font-spec' # Conflicts: # etc/NEWS 2020-11-23 Glenn Morris Merge from origin/emacs-27 e66502fec1 ; * doc/misc/eshell.texi (Input/Output): Fix typo. 2020-11-23 Alan Mackenzie minibuffer code: restore original frame after using minibuffer-only frame, etc * src/minibuf.c (read_minibuf): In the record_unwind_protect for the second restore_window_configuration (separate minibuffer frame case) arrange for the future switching back to the original frame by Fset_window_configuration. 2020-11-23 Mattias Engdegård Fix 'See @xref{...}' (bug#44811) Reported by 황병희. * doc/lispref/edebug.texi (Printing in Edebug): * doc/misc/ebrowse.texi (Marking Classes): * doc/misc/gnus.texi (Ma Gnus): * doc/misc/tramp.texi (Remote shell setup): Don't stutter (@xref expands to 'See ...'). 2020-11-23 Stefan Kangas Remove Emacs 19 and 20 compat code from table.el * lisp/textmodes/table.el: (table-recognize-cell, table--make-cell-map) (*table--present-cell-popup-menu, table--update-cell) (table--update-cell-widened, table--update-cell-heightened) (table--cell-insert-char, table--warn-incompatibility): Remove Emacs 19 and 20 compat code. * lisp/textmodes/table.el (table-disable-menu) (table--set-timer, table--get-last-command): Declare obsolete. 2020-11-23 Stefan Kangas Sync latest SKK-JISYO.L * leim/SKK-DIC/SKK-JISYO.L: Sync to current upstream version. (cherry picked from commit 6a5f9700846551a7f3795e257356dbab865116f4) 2020-11-23 Stefan Kangas Update publicsuffix.txt from upstream * etc/publicsuffix.txt: Update from https://publicsuffix.org/list/public_suffix_list.dat dated 2020-10-09 08:23:34 UTC. (cherry picked from commit 5b13afab0a903ead8363482529019d4fb80ec4b4) 2020-11-23 Stefan Kangas Use lexical-binding in most runtime leim lisp files * lisp/leim/quail/arabic.el: * lisp/leim/quail/croatian.el: * lisp/leim/quail/cyril-jis.el: * lisp/leim/quail/cyrillic.el: * lisp/leim/quail/czech.el: * lisp/leim/quail/ethiopic.el: * lisp/leim/quail/georgian.el: * lisp/leim/quail/greek.el: * lisp/leim/quail/hanja-jis.el: * lisp/leim/quail/hanja.el: * lisp/leim/quail/hanja3.el: * lisp/leim/quail/hebrew.el: * lisp/leim/quail/ipa-praat.el: * lisp/leim/quail/latin-alt.el: * lisp/leim/quail/latin-post.el: * lisp/leim/quail/latin-pre.el: * lisp/leim/quail/persian.el: * lisp/leim/quail/programmer-dvorak.el: * lisp/leim/quail/py-punct.el: * lisp/leim/quail/pypunct-b5.el: * lisp/leim/quail/rfc1345.el: * lisp/leim/quail/sami.el: * lisp/leim/quail/sgml-input.el: * lisp/leim/quail/slovak.el: * lisp/leim/quail/symbol-ksc.el: * lisp/leim/quail/tamil-dvorak.el: * lisp/leim/quail/vntelex.el: * lisp/leim/quail/vnvni.el: * lisp/leim/quail/welsh.el: Use lexical-binding. 2020-11-23 Eric Abrahamsen Small fixes to gnus-search output parsing of indexed engines * lisp/gnus/gnus-search.el (gnus-search-indexed-parse-output): When filtering for desired groups, accept any of [.\/] as potential segment delimiters. Later on, filesystem path separators will be interpreted as dots (".") when constructing group names. Also, make sure we use `expand-file-name' on the prefix, and just use `string-remove-prefix' to get rid of it. 2020-11-22 Philipp Stephani Unbreak compilation with CHECK_STRUCTS. Commit 3963aea4f4a22da0c1fb8ca8ca80b59c58373811 modified the ‘buffer’ structure, but didn’t adapt the hash. * src/pdumper.c (dump_buffer): Update buffer hash. 2020-11-22 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-11-22 Michael Albinus Replace /dev/null by remote null-device in Tramp. * lisp/net/tramp-adb.el (tramp-adb-get-ls-command) (tramp-adb-handle-set-file-times, tramp-adb-handle-process-file): Use `tramp-get-remote-null-device'. * lisp/net/tramp-compat.el (tramp-tramp-file-p): Declare. (tramp-compat-null-device): New defalias. * lisp/net/tramp-sh.el (tramp-methods) : (tramp-perl-encode-with-module, tramp-perl-decode-with-module) (tramp-perl-encode, tramp-perl-decode, tramp-awk-decode): Use "%n" marker. (tramp-do-directory-files-and-attributes-with-stat) (tramp-sh-handle-file-name-all-completions) (tramp-do-copy-or-rename-file-out-of-band) (tramp-sh-handle-insert-directory, tramp-sh-handle-process-file) (tramp-set-remote-path, tramp-open-connection-setup-interactive-shell) (tramp-find-inline-encoding, tramp-send-command-and-check) (tramp-get-remote-path, tramp-get-ls-command, tramp-get-ls-command-with) (tramp-get-remote-awk, tramp-get-remote-hexdump, tramp-get-remote-od) (tramp-get-env-with-u-option): Use `tramp-get-remote-null-device'. (tramp-remote-coding-commands, tramp-call-local-coding-command): Adapt docstring. * lisp/net/tramp-smb.el (tramp-smb-conf): Use `null-device'. (tramp-smb-handle-file-acl): Use `tramp-get-remote-null-device'. * lisp/net/tramp.el (tramp-methods): Adapt docstring. (tramp-get-remote-null-device): New defun. (tramp-interrupt-process): Use it. 2020-11-22 Stefan Kangas Test for byte-compiler warning "variable lacks prefix" * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp--with-warning-test): New macro. (bytecomp-warn-wrong-args, bytecomp-warn-wrong-args-subr): Use above new macro. (bytecomp-warn-variable-lacks-prefix): New test. 2020-11-22 Stefan Kangas Test interactive-only spec of with-suppressed-warnings * test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-test--with-suppressed-warnings): Test suppressing warning with interactive-only. 2020-11-22 Stefan Kangas Say which command shadows a key binding * src/keymap.c (describe_vector): Say which command shadows this binding. (Bug#9293) * test/src/keymap-tests.el (help--describe-vector/bug-9293-one-shadowed-in-range): Adapt test. 2020-11-22 Stefan Kangas Don't shadow bindings by the same command * src/keymap.c (describe_vector): Do not say binding is shadowed if the other key binding points to the same command. (Bug#9293) * test/src/keymap-tests.el (help--describe-vector/bug-9293-same-command-does-not-shadow): New test. 2020-11-22 Stefan Kangas Don't show key ranges if shadowed by different commands * src/keymap.c (describe_vector): Make sure found consecutive keys are either not shadowed or, if they are, that they are shadowed by the same command. (Bug#9293) * test/src/keymap-tests.el (help--describe-vector/bug-9293-one-shadowed-in-range): New test. 2020-11-21 Juri Linkov Handle help-form in y-or-n-p and use this in find-file-noselect (bug#5423) * doc/lispref/help.texi (Help Functions): Mention help-form for read-char-from-minibuffer and y-or-n-p. * doc/lispref/minibuf.texi (Yes-or-No Queries): Mention help-form for y-or-n-p. (Multiple Queries): Mention help-form for read-char-from-minibuffer. * lisp/files.el (find-file-noselect): Let-bind multi-line help text to help-form for y-or-n-p. * lisp/subr.el (read-char-choice): Mention help-form in docstring. (read-char-from-minibuffer): Mention help-form in docstring. (y-or-n-p-map): Remove handling of 'help'. (y-or-n-p): Mention help-form in docstring. When help-form is non-nil: add help-char to 'prompt', and bind help-char to help-form-show in composed-keymap. 2020-11-21 Michael Albinus Fix Bug#44481 * lisp/net/tramp.el (tramp-system-name): New defconst. (tramp-default-host, tramp-restricted-shell-hosts-alist) (tramp-local-host-regexp): * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Use it. (Bug#44481) 2020-11-21 Michael Albinus Handle connection-local null-device and path-separator variables * doc/lispref/os.texi (System Environment): Add `path-separator' function and `null-device' variable and function. * etc/NEWS: Mention 'null-device' and 'path-separator'. Fix typos. * lisp/files-x.el (path-separator, null-device): New defuns. (Bug#3736) * lisp/net/tramp-adb.el (tramp-adb-connection-local-default-shell-variables): Rename from `tramp-adb-connection-local-default-profile'. * lisp/net/tramp-integration.el (tramp-connection-local-default-system-variables): New defvar. Add it to connection-local profiles. (tramp-connection-local-default-shell-variables): Rename from `tramp-connection-local-default-profile'. * lisp/progmodes/grep.el (grep-hello-file): New defun. (grep-compute-defaults): Use `null-device' function for remote case. Handle remote `hello-file'. Use `process-file-shell-command'. (grep,grep-expand-keywords, lgrep): Use `null-device' function for remote case. 2020-11-21 Lars Ingebrigtsen Minor Edebug manual keystroke clarifications * doc/lispref/edebug.texi (Edebug Misc): Also mention the `a' binding to abort (bug#44697). Also fix `d' function reference, and add `P' reference. (cherry picked from commit b613f25f97abf756101eaa2af90689a19c0b3350) 2020-11-21 Jared Finder Migrate usage of GPM_CLICK_EVENT to MOUSE_CLICK_EVENT. * src/termhooks.h (enum event_kind): * src/term.c (term_mouse_click, handle_one_term_event): * src/keyboard.c (discard_mouse_events, make_lispy_event): Migrate usage of GPM_CLICK_EVENT to MOUSE_CLICK_EVENT. 2020-11-21 Eli Zaretskii Make ignoring modifiers on IME input optional By default, ignore modifier keys on IME input, but add a variable to get back old behavior. * src/w32fns.c (syms_of_w32fns): New variable w32-ignore-modifiers-on-IME-input. (w32_wnd_proc): Use it to ignore modifier keys when IME input is used. (Bug#44641) * etc/NEWS: Announce the change and the new variable. 2020-11-21 Masahiro Nakamura Ignore modifiers when processing WM_IME_CHAR messages * src/w32fns.c (w32_wnd_proc): Ignore modifiers when processing WM_IME_CHAR messages. 2020-11-21 Stefan Kangas Make load argument of native-compile-async internal * lisp/emacs-lisp/comp.el (native--compile-async): New defun extracted from native-compile-async. (native-compile-async): Remove load argument and use above new defun. * src/comp.c (maybe_defer_native_compilation): Use above new defun. (Bug#44676) 2020-11-21 Stefan Monnier * lisp/emacs-lisp/package.el (package-strip-rcs-id): Don't ignore errors Ignoring errors here just postpones the error and replaces a clear "invalid version syntax" with a confusing "package lacks a version". 2020-11-20 Mauro Aranda Use cl-letf instead of unwind-protect in a test * test/lisp/cus-edit-tests.el (cus-edit-tests-customize-saved/show-obsolete): Good use case for cl-letf, so use it. Suggested by Stefan Monnier in: https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00914.html 2020-11-20 Stefan Monnier * test/manual/indent/tcl.tcl: Add string interpolation case 2020-11-20 Stefan Monnier Don't optimize away `eval` when its lexical context is different * lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-eval): Obey lexical-binding. 2020-11-20 Mauro Aranda Take care of a FIXME in cus-edit-tests.el * test/lisp/cus-edit-tests.el (cus-edit-tests-customize-saved/show-obsolete): Add a fake saved-value property, to be able check that the obsolete option is present in the Customize buffer. Expect the test to pass now. 2020-11-20 Stefan Kangas * lisp/emacs-lisp/comp.el (native-compile-async): Doc fix. 2020-11-20 Stefan Kangas Support native compilation of packages on install * lisp/emacs-lisp/package.el (package-unpack) (package--native-compile): Native compile packages on install, if the feature is available. (Bug#44676) (package-native-compile): New defcustom. 2020-11-20 Stefan Kangas compile-async: Don't error out on deferred compilation after load * lisp/emacs-lisp/comp.el (native-compile-async): Update comp-files-queue when deferred compilation is requested. (Bug#44676) 2020-11-20 Stefan Kangas Don't quote lambda in idlwave.el * lisp/progmodes/idlwave.el (idlwave-keyword-abbrev): Don't quote lambda. 2020-11-20 Stefan Kangas Remove remaining XEmacs compat code from erc-log.el * lisp/erc/erc-log.el (erc-save-buffer-in-logs): Remove XEmacs compat code. 2020-11-20 Stefan Kangas Don't set XEmacs only properties start-open and end-open * lisp/epa.el (epa-sign-region, epa-encrypt-region): * lisp/erc/erc.el (erc-display-prompt): * lisp/gnus/message.el (message-forward-make-body-mime): * lisp/net/eudc-bob.el (eudc-bob-display-jpeg) (eudc-bob-display-audio, eudc-bob-display-generic-binary): * lisp/url/url-http.el (url-http-chunked-encoding-after-change-function): Don't set XEmacs only properties start-open and end-open. 2020-11-20 Stefan Kangas Remove XEmacs compat code from idlw-shell.el * lisp/progmodes/idlw-shell.el: (idlwave-shell-use-toolbar): Doc fix. (idlwave-default-mouse-track-event-is-with-button): Declare obsolete. (idlwave-shell-update-bp-overlays): Remove XEmacs compat code. 2020-11-20 Stefan Kangas Remove some XEmacs compat code from ediff-wind.el * lisp/vc/ediff-wind.el (ediff-window) (ediff-compute-toolbar-width): Remove some XEmacs compat code. 2020-11-20 Stefan Kangas Remove Emacs 20 compat code from org.el * lisp/org/org.el (org-org-menu, org-create-customize-menu): Remove Emacs 20 compat code. 2020-11-20 Stefan Kangas Remove Emacs 20 compat code from idlwave.el * lisp/progmodes/idlwave.el (idlwave-indent-line) (idlwave-toggle-comment-region, idlwave-reset-sintern) (idlwave-unit-name, idlwave-mode-menu-def) (idlwave-create-customize-menu): Remove Emacs 20 compat code. 2020-11-20 Stefan Kangas Properly mark obsolete semantic functions as such * lisp/cedet/semantic/ia.el (semantic-ia-get-completions) (semantic-ia-get-completions-deprecated): Make obsolete. 2020-11-20 Stefan Kangas Mark compat alias in cus-face.el obsolete * lisp/cus-face.el (custom-facep): Mark compat alias obsolete. * lisp/cus-dep.el (custom-make-dependencies): * lisp/cus-edit.el (customize-changed-options) (custom-unsaved-options, customize-saved, customize-apropos) (custom-save-faces): Adjust callers. 2020-11-20 Eli Zaretskii Fix compilation on MS-Windows with librsvg > 2.46.0 * src/image.c (rsvg_handle_get_dimensions, init_svg_functions): Make 'rsvg_handle_get_dimensions' available and defined for all versions of librsvg. (Bug#44655) 2020-11-20 Stefan Kangas Hide obsolete options in most customize commands * lisp/cus-edit.el (custom--filter-obsolete-variables): New defun. * lisp/cus-edit.el (customize-changed-options) (customize-apropos, custom-group-value-create): Hide obsolete user options. (Bug#44598) * test/lisp/cus-edit-tests.el: New file. 2020-11-20 João Tãvora Revert unintended part of last change to jsonrpc-request While playing around with the timing in this function, I left this change that could freeze the function on some platforms. * lisp/jsonrpc.el (jsonrpc-request): Use accept-process-output. (Version): Bump to 1.0.14 2020-11-20 Lars Ingebrigtsen Move semantic/tag obsolete variables to avoid a warning * lisp/cedet/semantic/tag.el (semantic-token-version): Move to avoid a compilation warning. 2020-11-20 João Távora Fix default timeout handling in jsonrpc-request * lisp/jsonrpc.el (jsonrpc-request): Use default timeout if not passed. (Version): Bump to 1.0.13 2020-11-20 Andrea Corallo Add 'EMACSNATIVELOADPATH' env variable support (bug#44726) * lisp/startup.el (normal-top-level): Read 'EMACSNATIVELOADPATH' and add entries too `comp-eln-load-path'. * lisp/mail/emacsbug.el (report-emacs-bug): Dump also 'EMACSNATIVELOADPATH'. 2020-11-20 Lars Ingebrigtsen Avoid a compilation warning about an ambiguous else * src/data.c (set_internal): Avoid compilation warning. data.c:1443:9: error: suggest explicit braces to avoid ambiguous ‘else’ 1443 | if (idx > 0 && bindflag == SET_INTERNAL_SET | ^ 2020-11-19 Stefan Monnier * src/data.c (set_internal): Fix bug#44733 Set the default value when `set` encounters a PER_BUFFER variable which has been let-bound globally, to match the behavior seen with `make-variable-buffer-local`. * test/src/data-tests.el (binding-test--let-buffer-local): Add corresponding test. (data-tests--set-default-per-buffer): Add tentative test for the performance problem encountered in bug#41029. 2020-11-19 Torsten Hilbrich * lisp/net/dictionary.el: Remove remnants of package Version and package dependencies are not useful when included into Emacs. 2020-11-19 Eli Zaretskii Improve documentation of 'font-spec' * doc/lispref/display.texi (Low-Level Font): * src/font.c (Ffont_spec): Document 'font-spec' keys that are supported, but were undocumented. 2020-11-19 Stefan Kangas Remove some XEmacs compat code from filesets.el * lisp/filesets.el (filesets-init): Remove some XEmacs compat code. (filesets-error): Declare obsolete. (filesets-directory-files, filesets-get-selection) (filesets-spawn-external-viewer, filesets-get-filelist) (filesets-open, filesets-close, filesets-get-menu-epilog) (filesets-ingroup-collect-files, filesets-build-ingroup-submenu) (filesets-update-pre010505): Adjust callers. 2020-11-19 Stefan Kangas Remove some compat code from ffap.el * lisp/ffap.el (ffap-mouse-event, ffap-event-buffer): Make obsolete. (ffap-menu-ask, ffap-at-mouse): Adjust callers. 2020-11-19 Stefan Kangas Declare some compat aliases obsolete * lisp/cedet/semantic/tag.el (semantic-token-version) (semantic-token-incompatible-version): * lisp/emulation/edt.el (edt-bind-standard-key): Make compat aliases obsolete. 2020-11-19 Stefan Kangas Remove some compat code from url.el * lisp/url/url.el (url-warn): Make into obsolete alias for display-warning. * lisp/url/url-auth.el (url-register-auth-scheme): * lisp/url/url-news.el (url-news-open-host): * lisp/url/url-proxy.el (url-find-proxy-for-url): Adjust callers. 2020-11-19 Stefan Kangas Remove some compat code for old versions and XEmacs * lisp/ibuf-ext.el (ibuffer-old-saved-filters-warning) (ibuffer-maybe-save-stuff): Assume customize-save-variable is bound; it is autoloaded. * lisp/cedet/semantic/symref/grep.el (semantic-symref-perform-search): * lisp/password-cache.el (password-cache-remove): * lisp/cedet/semantic/bovine/el.el (semantic-dependency-tag-file): Remove Emacs 21 compat code. * lisp/cedet/semantic/sort.el (semantic-string-lessp-ci): Remove Emacs 20 compat code. * test/lisp/cedet/semantic-utest.el (semantic-utest-temp-directory): * lisp/mail/supercite.el (sc-ask): Remove XEmacs compat code. * lisp/progmodes/idlw-shell.el (idlwave-shell-mode): * lisp/progmodes/idlwave.el (idlwave-mode): Remove commented out compat code. 2020-11-19 Stefan Monnier * src/buffer.h (struct buffer): Remove unused field `minor_modes` * src/buffer.c (bset_minor_modes): Remove function. (reset_buffer_local_variables, init_buffer_once): Don't set `minor_modes`. 2020-11-19 Michael Albinus Use decoding implementation from `insert-directory' in Tramp * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Use decoding implementation from `insert-directory', it is more robust. 2020-11-19 Mattias Engdegård More string-search optimisations All-ASCII strings cannot have substrings with non-ASCII characters in them; use this fact to avoid searching entirely. * src/fns.c (Fstring_search): For multibyte non-ASCII needle and unibyte haystack, don't check if the haystack is all-ASCII; it's a waste of time. For multibyte non-ASCII needle and multibyte all-ASCII haystack, fail immediately. * test/src/fns-tests.el (string-search): Add more test cases. 2020-11-19 Alan Mackenzie * etc/NEWS: Restore entries accidentally removed by previous commit. 2020-11-19 Alan Mackenzie In attempted recursive minibuffer use, display error message in correct frame This was problematic when minibuffer-follows-selected-frame was non-nil. Introduce a new parameter DONT-SET-FRAME to set-window-configuration. * doc/lispref/windows.texi (Window Configurations): Describe the new &optional parameter to set-window-configuration. * etc/NEWS (Lisp Changes): Note the new parameter to set-window-configuration. * src/keyboard.c (read_char_help_form_unwind): Add a new Qnil argument to the call of Fset_window_configuration. * src/minibuf.c (read_minibuf): Cons up a Qt with the window configuration in the argument to record_unwind_protect for the window configuration (twice). * src/window.c (Fset_window_configuration): Add the new &optional parameter and document it in the doc string. At the final do_switch_frame operation, restore the original frame when DONT-SET-FRAME is non-nil. (restore_window_configuration): Handle the new parameter when the supplied argument is a cons. 2020-11-19 Matthias Meulien Add history of search words to read-string Remove text property from empty line 2020-11-19 Torsten Hilbrich Move placement of dictionary-tooltip-mouse-event * lisp/net/dictionary.el (dictionary-tooltip-mouse-event): Place variable before dictionary-display-tooltip to avoid warning about use of free variable when compiling dictionary-display-tooltip 2020-11-19 Torsten Hilbrich Support nil value for dictionary-server * lisp/net/dictionary.el (dictionary-server): Support choice to select the dictionary server to use. * lisp/net/dictionary.el (dictionary-check-connection): Support nil value for dictionary-server. This nil value is the new default value of that variable. When opening a new connection and dictionary-server is nil the code behaves the following way: - it will first try to connect to a dictd server running on localhost - if that fails, it queries the user if the alternative server (dict.org) should be consulted - if the user agrees, the connection is made to dict.org This allows the default value of dictionary-server not to connect a remote server by default. The user is always able to select a different server by customizing the variable dictionary-search. 2020-11-19 Stefan Kangas Remove outdated comment about Emacs 20 from viper.el * lisp/emulation/viper-util.el (viper-chars-in-region): Remove outdated comment. 2020-11-19 Stefan Kangas Add new variable cperl-tags-file-name * lisp/progmodes/cperl-mode.el (cperl-tags-file-name): New variable. (cperl-write-tags): Use above new variable instead of hardcoding filename "TAGS". (Bug#8802) 2020-11-19 Stefan Kangas Declare XEmacs compat function in inversion.el obsolete * lisp/cedet/inversion.el (inversion-require-emacs): Declare obsolete. 2020-11-19 Stefan Kangas Assume font-lock is provided; it's preloaded since 22.1 * lisp/cedet/semantic/format.el (semantic--format-colorize-text): * lisp/eshell/em-ls.el (eshell-ls--insert-directory): * lisp/net/dig.el (dig-mode): * lisp/progmodes/cperl-mode.el (cperl-pod-here-fontify): * lisp/progmodes/idlw-help.el (idlwave-help-fontify): * lisp/progmodes/idlwave.el (idlwave-completion-fontify-classes): Don't check for feature 'font-lock; it has been preloaded since 22.1. * lisp/cedet/semantic/format.el (font-lock): * lisp/epa.el (font-lock): * lisp/erc/erc.el (font-lock): * lisp/generic-x.el (font-lock): * lisp/net/sieve-mode.el (font-lock): * lisp/progmodes/prolog.el (font-lock): * lisp/textmodes/rst.el (font-lock): Remove unnecessary require. 2020-11-19 Stefan Kangas * lisp/progmodes/cperl-mode.el: Doc fix. 2020-11-19 Stefan Kangas Remove unnecessary load from idlwave * lisp/progmodes/idlw-shell.el: * lisp/progmodes/idlwave.el: Remove unnecessary load; easy-menu-define is autoloaded. 2020-11-19 Stefan Kangas Make compat alias add-submenu obsolete * lisp/emacs-lisp/easymenu.el (add-submenu): Make compat alias obsolete. * lisp/filesets.el (filesets-build-menu-now): Don't use above obsolete alias. (filesets-menu-path, filesets-menu-before) (filesets-menu-in-menu): Doc fix. 2020-11-19 Alan Third Fix SVG display again (bug#44655) * src/image.c (svg_load_image): Fall back to rsvg_handle_get_dimensions if we can't calculate the size of the image. 2020-11-18 Protesilaos Stavrou Clarify that 'diff-error' is part of Emacs 28.1 * lisp/vc/diff-mode.el (diff-error): Add :version tag (bug#44727). 2020-11-18 Lars Ingebrigtsen Further doc fixes for dotimes about RESULT * lisp/subr.el (dotimes): Be even more explicit about RESULT (bug#16206). (cherry picked from commit 5b0d8d0f288fd505ca90bd30df709a5e7ab540d6) 2020-11-18 Andrea Corallo Fix eln file hasing for symlink paths (bug#44701) * src/comp.c (Fcomp_el_to_eln_filename): Call `file-truename' in place of `expand-file-name' when available. 2020-11-18 Jonas Bernoulli Revert "[WIP] Add and improve section headings" This reverts commit 007a5a677573ab628426a0605eb38f8e68fe1953. 2020-11-18 Jonas Bernoulli Revert "[TODO] Remove noisy anti-noise feature" This reverts commit c36b4eed2d76f0e804d27d35dd6281f858639f94. 2020-11-18 Jonas Bernoulli [TODO] Remove noisy anti-noise feature [WIP] Add and improve section headings 2020-11-18 Mattias Engdegård Turn gdb-wait-for-pending into a plain function This avoids unnecessary body duplication in expansion and macro recursion (causing macro-expansions at runtime), making it clearer what is going on. * lisp/progmodes/gdb-mi.el (gdb-wait-for-pending): Make it a function, remove lambda quoting, η-reduce and simplify. (gdb-thread-exited, gdb-thread-selected): Adapt callers. 2020-11-18 Basil L. Contovounesios Don't make bibtex-unify-case-convert buffer-local The :local tag does not currently work as intended (it results in a default value of bibtex-unify-case-convert of nil rather than identity), and no other bibtex.el user option is automatically buffer-local, so revert this recent change. For discussion, see the following emacs-devel thread: https://lists.gnu.org/r/emacs-devel/2020-11/msg00734.html * lisp/textmodes/bibtex.el (bibtex-unify-case-convert): Don't make automatically buffer-local for consistency with other user options, and because the :local tag doesn't have the intended results. 2020-11-18 Michael Albinus Preserve `dired-filename' text properties in Tramp * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): Restore `dired-filename' text property, which has been destroyed by `decode-coding-region'. (Bug#44682) 2020-11-17 Stefan Kangas Remove redundant 'function's around lambdas * lisp/allout.el (allout-latex-verb-quote): * lisp/edmacro.el (edmacro-format-keys): * lisp/ffap.el (ffap-all-subdirs-loop) (ffap-kpathsea-expand-path, ffap-menu-rescan): * lisp/files.el (save-buffers-kill-emacs): * lisp/find-lisp.el (find-lisp-find-dired-internal) (find-lisp-insert-directory): * lisp/gnus/gnus-agent.el (gnus-agent-expire-unagentized-dirs): * lisp/gnus/nnmairix.el (nnmairix-create-message-line-for-search) (nnmairix-widget-get-values) (nnmairix-widget-make-query-from-widgets) (nnmairix-widget-build-editable-fields): * lisp/international/mule-cmds.el (sort-coding-systems): * lisp/international/mule-diag.el (list-character-sets-1): * lisp/international/quail.el (quail-insert-decode-map): * lisp/mail/reporter.el (reporter-dump-state): * lisp/mail/supercite.el (sc-attribs-filter-namelist): * lisp/pcmpl-gnu.el (pcmpl-gnu-zipped-files) (pcmpl-gnu-bzipped-files): * lisp/progmodes/cperl-mode.el (cperl-find-tags) (cperl-write-tags, cperl-tags-hier-init, cperl-tags-treeify) (cperl-menu-to-keymap, cperl-pod-spell): * lisp/progmodes/gdb-mi.el (gdb-parent-mode): * lisp/progmodes/make-mode.el (makefile-browser-fill): * lisp/simple.el (transpose-lines): * lisp/term.el: * lisp/term/w32-win.el (w32-find-non-USB-fonts): * lisp/textmodes/table.el (table--generate-source-scan-lines): Remove redundant 'function's around lambdas. 2020-11-17 Stefan Kangas Remove redundant 'function's around lambdas in mh/*.el * lisp/mh-e/mh-alias.el (mh-alias-tstamp, mh-alias-filenames) (mh-alias-address-to-alias): * lisp/mh-e/mh-comp.el (mh-edit-again, mh-redistribute): * lisp/mh-e/mh-identity.el (mh-identity-make-menu): * lisp/mh-e/mh-utils.el (mh-help): Remove redundant 'function's around lambdas. 2020-11-17 Alan Mackenzie Enhance syntax-tests.el to test nestable comments (Lisp style) Also add some tests for braces and parse-partial-sexp amongst Lisp style comments. * test/src/syntax-tests.el (\;-in, \;-out): Add syntax for { and }. (top-level): Add new tests for Lisp style comments. (\#|-in, \#|-out): New functions. (top-level): Add new tests for nested Lisp style comments, and mixtures of nested comments with "ordinary" comments. * test/src/syntax-resources/syntax-comments.txt (top-level): Add new test fragments for #|...|#, etc. 2020-11-17 Stefan Kangas Don't quote lambdas with 'function' in calc/*.el * lisp/calc/calc-aent.el (calc-do-quick-calc) (calc-do-calc-eval, math-build-parse-table): * lisp/calc/calc-alg.el (math-polynomial-base): * lisp/calc/calc-alg.el (math-is-poly-rec): * lisp/calc/calc-arith.el (calcFunc-scf): * lisp/calc/calc-arith.el (math-ceiling, math-round): * lisp/calc/calc-arith.el (math-trunc-fancy, math-floor-fancy): * lisp/calc/calc-ext.el (calc-init-extensions, calc-reset) (calc-refresh-top, calc-z-prefix-help, calc-binary-op-fancy) (calc-unary-op-fancy): * lisp/calc/calc-forms.el (math-make-mod): * lisp/calc/calc-frac.el (calcFunc-frac): * lisp/calc/calc-funcs.el (calcFunc-euler): * lisp/calc/calc-help.el (calc-full-help): * lisp/calc/calc-lang.el (c, pascal, fortran, tex, latex, eqn) (yacas, maxima, giac, math, maple): * lisp/calc/calc-macs.el (calc-wrapper, calc-slow-wrapper): * lisp/calc/calc-map.el (calc-get-operator, calcFunc-mapeqr) (calcFunc-reducea, calcFunc-rreducea, calcFunc-reduced) (calcFunc-rreduced, calcFunc-outer): * lisp/calc/calc-misc.el (another-calc, calc-do-handle-whys): * lisp/calc/calc-mode.el (calc-save-modes): * lisp/calc/calc-mtx.el (math-col-matrix, math-mul-mat-vec): * lisp/calc/calc-poly.el (math-sort-terms, math-poly-div-list) (math-mul-list, math-sort-poly-base-list) (math-partial-fractions): * lisp/calc/calc-prog.el (calc-user-define-formula): * lisp/calc/calc-rewr.el (math-rewrite, math-compile-patterns) (math-compile-rewrites, math-parse-schedule) (math-rwcomp-pattern): * lisp/calc/calc-store.el (calc-var-name-map, calc-let) (calc-permanent-variable, calc-insert-variables): * lisp/calc/calc-stuff.el (calc-flush-caches, calcFunc-pclean) (calcFunc-pfrac): * lisp/calc/calc-units.el (math-build-units-table) (math-decompose-units): * lisp/calc/calc-vec.el (calcFunc-mrow, math-mat-col) (calcFunc-mcol, math-mat-less-col, math-mimic-ident): * lisp/calc/calc-yank.el (calc-edit): * lisp/calc/calc.el (calc-mode-var-list-restore-default-values) (calc-mode-var-list-restore-saved-values, calc-mode, calc-quit): * lisp/calc/calccomp.el (math-compose-expr) (math-compose-matrix, math-vector-to-string): Don't quote lambdas with 'function'. 2020-11-17 Stefan Kangas Add command to filter package menu by name or description * lisp/emacs-lisp/package.el (package-menu-filter-by-description): (package-menu-filter-by-name-or-description): New commands to filter the package menu. (Bug#44699) (package-menu-mode-map): Bind the above new commands. (package-menu-mode-menu): Add new commands to the menu. * doc/emacs/package.texi (Package Menu): Document new commands. 2020-11-17 Stefan Kangas Don't quote lambdas with function macro in generic-x.el * lisp/generic-x.el (apache-conf-generic-mode, ini-generic-mode) (reg-generic-mode, mailagent-rules-generic-mode) (vrml-generic-mode, java-properties-generic-mode) (alias-generic-mode, ansible-inventory-generic-mode) (inetd-conf-generic-mode, etc-services-generic-mode) (etc-passwd-generic-mode, etc-fstab-generic-mode) (spice-generic-mode, astap-generic-mode): Don't quote lambdas with function macro. 2020-11-17 Stefan Kangas Test that substitute-command-keys preserves text properties * test/lisp/help-tests.el (help-substitute-command-keys/preserves-text-properties): New test. (Bug#17052) 2020-11-17 Harald Jörg perl-mode and cperl-mode: Recognize regex after "return" * lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Add "return" to the keywords which start a regex. * lisp/progmodes/perl-mode.el (defconst): Add "return" to 'perl--syntax-exp-intro-keywords' (Bug#26850). * test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-28650): New test (bug#26850). 2020-11-17 Lars Ingebrigtsen Minor Edebug manual keystroke clarifications * doc/lispref/edebug.texi (Edebug Misc): Also mention the `a' binding to abort (bug#44697). Also fix `d' function reference, and add `P' reference. 2020-11-16 Lars Ingebrigtsen Make the handwrite.el PS valid again * lisp/play/handwrite.el (handwrite): Make the PS valid (bug#44648). Suggested by Omar Antolín . 2020-11-16 Lars Ingebrigtsen Fix gnus-mime-display-alternative button natigation * lisp/gnus/gnus-art.el (gnus-mime-display-alternative): Mark the buttons correctly so that TAB can find them (bug#44690). 2020-11-16 Ruthra Kumar Use 'eshell-find-alias-function' instead of fboundp * lisp/eshell/esh-cmd.el (eshell-invoke-directly): Fix problem with (require 'em-tramp) making password prompting from "sudo bash" no longer work (bug#43772). 2020-11-16 Francesco Potortì Add new user option bibtex-unify-case-convert * lisp/textmodes/bibtex.el (bibtex-unify-case-convert): New variable (bug#44614). (bibtex-format-entry): Use it (bug#44614). 2020-11-16 Stefan Kangas Use lexical-binding in time-stamp.el * lisp/time-stamp.el: Use lexical-binding. Remove redundant :group args. 2020-11-16 Stefan Kangas Don't quote lambdas in net/*.el * lisp/net/eudc-export.el (eudc-create-bbdb-record): * lisp/net/eudc.el (eudc-print-attribute-value) (eudc-display-records, eudc-process-form) (eudc-filter-duplicate-attributes, eudc-filter-partial-records) (eudc-add-field-to-records, eudc-query-with-words) (eudc-query-form, eudc-menu): * lisp/net/eudcb-bbdb.el (eudc-bbdb-extract-phones) (eudc-bbdb-query-internal): * lisp/net/mairix.el (mairix-widget-make-query-from-widgets) (mairix-widget-build-editable-fields, mairix-widget-get-values): Don't quote lambdas. 2020-11-16 Stefan Kangas Don't quote lambdas in emacs-lisp/*.el * lisp/emacs-lisp/cl-seq.el (cl--parsing-keywords, cl-sort): * lisp/emacs-lisp/cl-macs.el (cl-typecase): * lisp/emacs-lisp/cl-extra.el (cl-some, cl-every) (cl--map-keymap-recursively): * lisp/emacs-lisp/advice.el (ad-insert-argument-access-forms): * lisp/emacs-lisp/edebug.el (edebug-sort-alist) (edebug-set-windows): * lisp/emacs-lisp/pp.el (pp-display-expression): * lisp/emacs-lisp/regi.el (regi-interpret): Don't quote lambdas. 2020-11-16 Glenn Morris Merge from origin/emacs-27 75723ec212 (origin/emacs-27) ; * lisp/emacs-lisp/benchmark.el (benchm... 53e2a612ad ; * lib-src/make-fingerprint.c: Update commentary. 286c632772 Reformat argument commentary in etags.c 4ec740866a Make the invocation of combine-change-calls in comment-reg... 66bcec8838 * lisp/progmodes/cc-langs.el (c-<>-notable-chars-re): Fix ... 03eeab469e ; Update the expected result files in test/manual/etags. d875a22bc6 Update the various INSTALL files # Conflicts: # INSTALL 2020-11-16 Glenn Morris Merge from origin/emacs-27 19da602991 Fix input method translation near read-only text 5aabf2cc7f Fix display of truncated R2L lines on TTY frames daff3bda10 Avoid crashes when a reversed glyph row starts with a comp... b697bb91a1 ; * .gitignore: src/fingerprint.c not generated since 2019... 2020-11-16 Stefan Kangas Don't quote lambdas in calc/calcalg{2,3}.el * lisp/calc/calcalg2.el (calcFunc-inv\', calcFunc-sqrt\') (calcFunc-deg\', calcFunc-rad\', calcFunc-ln\') (calcFunc-log10\', calcFunc-lnp1\', calcFunc-log\') (calcFunc-log\'2, calcFunc-exp\', calcFunc-expm1\') (calcFunc-sin\', calcFunc-cos\', calcFunc-tan\', calcFunc-sec\') (calcFunc-csc\', calcFunc-cot\', calcFunc-arcsin\') (calcFunc-arccos\', calcFunc-arctan\', calcFunc-sinh\') (calcFunc-cosh\', calcFunc-tanh\', calcFunc-sech\') (calcFunc-csch\', calcFunc-coth\', calcFunc-arcsinh\') (calcFunc-arccosh\', calcFunc-arctanh\', calcFunc-bern\'2) (calcFunc-euler\'2, calcFunc-gammag\'2, calcFunc-gammaG\'2) (calcFunc-gammaP\'2, calcFunc-gammaQ\'2, calcFunc-betaB\') (calcFunc-betaI\', calcFunc-erf\', calcFunc-erfc\') (calcFunc-besJ\'2, calcFunc-besY\'2, calcFunc-sum) (calcFunc-prod, calcFunc-integ, calcFunc-if, calcFunc-subscr) (math-do-integral, calcFunc-integ, math-decompose-poly) (math-solve-system-rec, math-solve-system-subst, math-solve-for) (calcFunc-inv, calcFunc-sqrt, calcFunc-conj, calcFunc-abs) (calcFunc-deg, calcFunc-rad, calcFunc-ln, calcFunc-log10) (calcFunc-lnp1, calcFunc-exp, calcFunc-expm1, calcFunc-sin) (calcFunc-cos, calcFunc-tan, calcFunc-arcsin, calcFunc-arccos) (calcFunc-arctan, calcFunc-sinh, calcFunc-cosh, calcFunc-tanh) (calcFunc-arcsinh, calcFunc-arccosh, calcFunc-arctanh): * lisp/calc/calcalg3.el (calc-get-fit-variables) (calcFunc-polint, calcFunc-ratint, math-all-vars-but): Don't quote lambdas. 2020-11-16 Stefan Kangas Various doc fixes for comp.el and comp.c * lisp/emacs-lisp/comp.el: Remove redundant :group args. (comp-async-cu-done-hook, comp-async-all-done-hook) (comp-async-env-modifier-form, comp-dry-run) (comp-ensure-native-compiler, comp-func-ret-typeset) (comp-func-ret-range, comp-limple-lock-keywords) (comp-make-curr-block): * src/comp.c (Fcomp_el_to_eln_filename, Fcomp__init_ctxt) (Fcomp_native_driver_options_effective_p) (Fcomp__compile_ctxt_to_file, Fcomp_libgccjit_version) (Fcomp__register_lambda, Fcomp__register_subr) (Fcomp__late_register_subr, Fnative_elisp_load, syms_of_comp): Doc fixes. 2020-11-16 Andrea Corallo Fix nativecomp cond-rw pass * lisp/emacs-lisp/comp.el (comp-mvar-symbol-p): Improve it. (comp-cond-rw-func): Fix logic for multiple predecessor on target block. * test/src/comp-tests.el (comp-test-cond-rw-1): New test. * test/src/comp-test-funcs.el (comp-test-cond-rw-1-1-f) (comp-test-cond-rw-1-2-f): New functions. 2020-11-16 Stefan Kangas Don't quote lambdas in eshell/*.el * lisp/eshell/em-basic.el (eshell-echo): * lisp/eshell/em-cmpl.el (eshell-command-completion-function) (eshell-default-completion-function, eshell-cmpl-initialize) (eshell-complete-parse-arguments, eshell-complete-commands-list): * lisp/eshell/em-dirs.el (eshell-complete-user-reference): * lisp/eshell/em-hist.el (eshell-hist-unload-hook) (eshell-hist-initialize): * lisp/eshell/em-ls.el (eshell-ls-sort-entries): * lisp/eshell/em-pred.el (eshell-modifier-alist) (eshell-display-predicate-help, eshell-display-modifier-help) (eshell-pred-substitute, eshell-split-members): * lisp/eshell/em-prompt.el (eshell-prompt-function): * lisp/eshell/em-smart.el (eshell-smart-unload-hook) (eshell-smart-initialize, eshell-refresh-windows): * lisp/eshell/em-unix.el (eshell-shuffle-files): * lisp/eshell/esh-arg.el (eshell-parse-argument-hook): * lisp/eshell/esh-cmd.el (eshell-cmd-initialize) (eshell-parse-command): * lisp/eshell/esh-mode.el (eshell-preinput-scroll-to-bottom) (eshell-postoutput-scroll-to-bottom): * lisp/eshell/esh-module.el (eshell-modules-list): * lisp/eshell/esh-proc.el (eshell-read-process-name) (eshell-round-robin-kill): * lisp/eshell/esh-var.el (eshell-envvar-names) (eshell-variables-list): Don't quote lambdas. 2020-11-15 Juri Linkov New user options 'copy-region-blink-delay' and 'delete-pair-blink-delay' * lisp/emacs-lisp/lisp.el (delete-pair-blink-delay): New defcustom. (delete-pair): Use it. (Bug#4136) * lisp/simple.el (copy-region-blink-delay): New defcustom. (indicate-copied-region): Use it. (Bug#42865) Thanks to Sean Whitton . (indicate-copied-region): Use 'query-replace-descr' not to show newlines literally. Use "Copied text" instead of misleading "Saved text" (bug#42865). 2020-11-15 Andrea Corallo Improve `comp-fwprop-call' * lisp/emacs-lisp/comp.el (comp-function-call-maybe-fold): Document return value. (comp-fwprop-call): Simplify and improve. 2020-11-15 Andrea Corallo Add more type specifiers * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add more pure functions. 2020-11-15 Eli Zaretskii Reformat argument commentary in etags.c * lib-src/etags.c (pfnote, consider_token, C_entries): Resurrect original format of comments to function arguments. 2020-11-15 Mattias Engdegård Reformat comment for 'gnu' compilation rule * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): The comments above the regexp for the 'gnu' rule contained references to the previous string regexp, which has been difficult to follow ever since the translation to rx. Move the comments to their proper places, and add some guiding notes. 2020-11-15 Alan Mackenzie Make the invocation of combine-change-calls in comment-region valid This fixes bug #44581. The problem was that whitespace outside of the (BEG END) region was being deleted, and this made the invocation of combine-change-calls with (BEG END) invalid. * lisp/newcomment.el (comment-region-default): Amend the second argument to combine-change-calls. 2020-11-15 Alan Mackenzie * lisp/progmodes/cc-langs.el (c-<>-notable-chars-re): Fix wrong '-' in regexp 2020-11-15 Stefan Kangas Make initial frame match frame-title-format * src/xterm.c (x_term_init): * src/w32term.c (w32_initialize_display_info): Sync initial frame title with new value of Vframe_title_format. Problem reported by Angelo Graziosi . 2020-11-15 Stefan Kangas Run menu-item :filter function before showing binding * lisp/help.el (describe-map): Fix running `menu-item' :filter functions. This fixes a mistake in the previous conversion of this defun from the old C function describe_map. See the discussion in Bug#39149. * test/src/keymap-tests.el (keymap---get-keyelt/runs-menu-item-filter) (describe-buffer-bindings/menu-item-filter-show-binding) (describe-buffer-bindings/menu-item-filter-hide-binding): New tests. (keymap-tests--test-menu-item-filter): New defun. 2020-11-14 Eric Abrahamsen Handle negation of search keys in gnus-search minibuffer completion * lisp/gnus/gnus-search.el (gnus-search-get-active): Keys might start with a leading "-": check for that and ignore it. 2020-11-14 Andrea Corallo Merge remote-tracking branch 'savannah/master' into dev 2020-11-14 Andrea Corallo Add `comp-constraint-to-type-spec' and better handle boolean type spec * lisp/emacs-lisp/comp.el (comp-constraint-to-type-spec): New function splitting out code from comp-ret-type-spec + better handle boolean type specifier. (comp-ret-type-spec): Rework to leverage `comp-constraint-to-type-spec'. * test/src/comp-tests.el (comp-tests-type-spec-tests): Add a testcase. 2020-11-14 Andrea Corallo Handle correctly quoting in *Native-compile-Log* buffer * lisp/emacs-lisp/comp.el (comp-log): Add `quoted' parameter and pass it to `comp-log-to-buffer'. (comp-log-to-buffer): Add `quoted' parameter and leverage `prin1' or `princ' accordingly. 2020-11-14 Andrea Corallo Split logic into comp-fwprop-call and improve it * lisp/emacs-lisp/comp.el (comp-func-ret-valset) (comp-fwprop-call): New functions. (comp-fwprop-insn): Remove code duplicaiton and call `comp-fwprop-call'. 2020-11-14 Andrea Corallo Fix debug symbol emission * src/comp.c (Fcomp__compile_ctxt_to_file): Now that we do not rely anymore on globlal variables move logic in from 'Fcomp__init_ctxt' so comp.debug is already set correctly. 2020-11-14 Andrea Corallo Add a number of type specifiers for pure function * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): Add 60 pure function type specifiers. 2020-11-14 Andrea Corallo Characterize functions in terms of type specifiers * lisp/emacs-lisp/comp.el (comp-known-type-specifiers): New const in place of `comp-known-ret-types' and `comp-known-ret-ranges'. (comp-constraint): New struct to separate the constraint side of an mvar. (comp-constraint-f): Analogous for functions. (comp-mvar): Rework and include `comp-constraint'. (comp-type-spec-to-constraint): New function. (comp-known-constraints-h): New const. (comp-func-ret-typeset, comp-func-ret-range): Rework. (comp-fwprop-insn): Fix. * test/src/comp-tests.el (destructure-type-spec): New testcase. 2020-11-14 Juri Linkov * lisp/progmodes/xref.el (xref-goto-xref): Prefix arg quits the *xref* buffer. (bug#44611) 2020-11-14 Juri Linkov * lisp/org/ob-ruby.el (org-babel-ruby-initiate-session): Use :ruby header arg. Allow specification of ruby command using the :ruby header arg. https://lists.gnu.org/archive/html/emacs-orgmode/2020-11/msg00166.html 2020-11-14 Daniel Lenski (tiny change) Fix `speedbar-directory-buttons' when using Tramp * lisp/speedbar.el (speedbar-directory-buttons): Make speedbar work with directories accessed via Tramp (bug#44622). 2020-11-14 Stefan Kangas Don't quote lambdas in several places * lisp/align.el (align-highlight-rule): * lisp/bookmark.el (bookmark-maybe-sort-alist): * lisp/emacs-lisp/advice.el (ad-read-advice-name) (ad-retrieve-args-form, ad-make-hook-form, defadvice) (ad-with-originals): * lisp/foldout.el (foldout-inhibit-key-bindings): * lisp/gnus/gnus-bookmark.el (gnus-bookmark-maybe-sort-alist): * lisp/mail/rfc822.el (rfc822-addresses-1): * lisp/net/eudcb-ldap.el (eudc-ldap-cleanup-record-simple): * lisp/net/net-utils.el (network-connection-to-service): * lisp/net/socks.el (socks-build-auth-list): * lisp/org/ox-odt.el (org-odt--image-size): * lisp/pcomplete.el (pcomplete-command-completion-function) (pcomplete-default-completion-function, pcomplete-opt): * lisp/progmodes/cperl-mode.el (cperl-highlight-charclass) (cperl-tags-hier-init, cperl-tags-treeify) (cperl-next-interpolated-REx, cperl-time-fontification): * lisp/shadowfile.el (shadow-copy-files, shadow-shadows-of-1) (shadow-save-buffers-kill-emacs): * lisp/strokes.el (strokes-renormalize-to-grid): * lisp/tempo.el (tempo-insert, tempo-forward-mark) (tempo-backward-mark): * lisp/textmodes/artist.el (artist-submit-bug-report): * lisp/textmodes/ispell.el (ispell-complete-word): * lisp/url/url-auth.el (url-get-authentication): * lisp/url/url-cache.el (url-cache-create-filename-human-readable): * lisp/vcursor.el (vcursor-find-window): * test/lisp/textmodes/reftex-tests.el (reftex-parse-bibtex-entry-test): Don't quote lambdas. 2020-11-14 Akira Kyle (tiny change) Work around glib messing with signal handlers more than it should * src/process.c (init_process_emacs): force glib's g_unix_signal handler into lib_child_handler where it should belong. 2020-11-14 Pablo Barbáchano Add an option to preserve ANSI sequences * lisp/ansi-color.el: Add an option to preserve the ANSI sequences. * test/lisp/ansi-color-tests.el: Add tests (bug#44589). 2020-11-14 Lars Ingebrigtsen project-or-external-find-file doc string fix * lisp/progmodes/project.el (project-or-external-find-file): Doc string fix -- it's not "recognizing" file names (bug#44588). 2020-11-14 Stefan Kangas Use lexical-binding in fortune.el and add tests * lisp/play/fortune.el: Use lexical-binding. Remove redundant :group args. (fortune-in-buffer): Quote function symbol as such. * test/lisp/play/fortune-resources/fortunes: * test/lisp/play/fortune-tests.el: New files. * .gitignore: Ignore generated file fortunes.dat. 2020-11-14 Eli Zaretskii Update the various INSTALL files * nt/INSTALL.W64: * nt/INSTALL: * INSTALL: Update the installation information, in particular the fact that HarfBuzz is now preferred as the shaping library. 2020-11-14 Eli Zaretskii Fix input method translation near read-only text * lisp/international/quail.el (quail-input-method): Don't disable input method when the character after point has the read-only property. Suggested by Evgeny Zajcev (Bug#44466) * doc/emacs/mule.texi (Input Methods): Document that input methods are inhibited in read-only text. 2020-11-14 Eli Zaretskii Make Calc windows dedicated by default * lisp/calc/calc.el (calc-make-windows-dedicated): New defcustom. (calc, calc-trail-display): Set Calc windows dedicated if calc-make-windows-dedicated is non-nil. Patch by Boruch Baum . (Bug#44108) * etc/NEWS (Calc): Announce the new behavior. 2020-11-14 Eli Zaretskii Make 'prefer-utf-8' heed inhibit-*-detection variables * lisp/international/mule-conf.el (prefer-utf-8): Inhibit detection of null bytes and ISO escape sequences if the respective inhibit-*-detection variables say so. (Bug#44486) 2020-11-14 Jared Finder * lisp/faces.el (mode-line-highlight): Use :box only when supported. 2020-11-14 Philipp Stephani Capitalize portable dump messages. We capitalize all other messages during the dump, so capitalize the "dump mode" and "dumping fingerprint" ones as well for consistency. * src/pdumper.c (Fdump_emacs_portable): Capitalize fingerprint message prefix. * lisp/loadup.el: Capitalize "dump mode" message. 2020-11-14 Jared Finder Face-changing text properties and help-echo now work with xterm-mouse. * src/dispnew.c (update_mouse_position): New function for mouse movement logic in 'handle_one_term_event' that can be shared across different mouse backends. (display--update-for-mouse-movement): New lisp function, call it. * lisp/xt-mouse.el (xterm-mouse--handle-mouse-movement): New function that calls 'display--update-for-mouse-movement'. (xterm-mouse-translate-1): Call it. * src/term.c (handle_one_term_event): Inline logic from 'term_mouse_movement' and call 'update_mouse_position'. (term_mouse_movement): Delete. 2020-11-14 Eli Zaretskii Fix display of truncated R2L lines on TTY frames * src/xdisp.c (extend_face_to_end_of_line): Use a while-loop, not a do-while loop, to avoid appending an extra glyph at the end of a line that is one character shorter than the window-width. This is needed to fix display of reversed glyph rows that are almost as wide as the window, because append_space_for_newline already added one space glyph. 2020-11-14 Eli Zaretskii Avoid crashes when a reversed glyph row starts with a composition * src/dispnew.c (build_frame_matrix_from_leaf_window): Add an assertion to prevent us from overwriting non-char glyphs with the vertical border glyph. * src/xdisp.c (extend_face_to_end_of_line): Account for one glyph possibly inserted by append_space_for_newline. (Bug#44506) Remove a kludgey correction for an off-by-one error in column counting, which is no longer needed. 2020-11-14 Eric Abrahamsen Save instantiated gnus-search engines in an alist So we aren't re-instantiating (and potentially configuring) them with every search. * lisp/gnus/gnus-search.el (gnus-search-engine-instance-alist): New variable holding server->engine mapping. (gnus-search-server-to-engine): See if we've already instantiated this server. If so, return it. If not, instantiate it and save in the above variable. (gnus-search-shutdown): Shutdown function clearing the above alist. 2020-11-14 Eric Abrahamsen Make sure Gnus search groups search topics recursively * lisp/gnus/gnus-group.el (gnus-group-make-search-group, gnus-group-read-ephemeral-search-group): If a search is initiated from a topic line, make sure we get all the groups under that topic (and under sub-topics). 2020-11-13 Mattias Engdegård Simplify quick-check composition regexps * lisp/international/ucs-normalize.el (quick-check-composition-list-to-regexp): Don't add an explicit pattern for U+1161..U+1175 and U+11a8..U+11c2 since these are already part of `combining-chars'. 2020-11-13 Glenn Morris Merge from origin/emacs-27 a3d316bbb7 (origin/emacs-27) Update information about refcards f43e9ad524 Avoid crashes in the daemon due to user interaction 2020-11-13 Glenn Morris Merge from origin/emacs-27 ac1a2b2160 Add more doc-view requirements 109eb1e7e2 Fix undefined behavior when fetching glyphs from the displ... # Conflicts: # lisp/doc-view.el 2020-11-13 Glenn Morris Merge from origin/emacs-27 75384bd155 Update the doc-view header line 13ab70c80e Avoid breaking Arabic shaping in 'window-text-pixel-size' e693d97e50 doc-view.el comment clarification 968e85a2ce Update erc documentation about C-c C-b 2020-11-13 Alan Third Fix error with fn key in NS port (bug#44533) * src/nsterm.m ([EmacsView keyDown:]): Move the correction for fn key handling to before the modifiers are calculated. 2020-11-13 Michael Albinus Some minor Tramp fixes, resulting from test campaign * lisp/net/tramp.el (tramp-handle-write-region): * lisp/net/tramp-adb.el (tramp-adb-handle-write-region): * lisp/net/tramp-sh.el (tramp-sh-handle-write-region): * lisp/net/tramp-smb.el (tramp-smb-handle-write-region): Use `current-time' if needed. * lisp/net/tramp-gvfs.el (tramp-gvfs-gio-mapping): (tramp-gvfs-do-copy-or-rename-file): Remove "gvfs-rename", it is not trustworthy. * test/lisp/net/tramp-tests.el (tramp-test07-file-exists-p): Check also for symlinked files in trash. (tramp-test20-file-modes): Revert last change, it was a thinko. 2020-11-13 Eli Zaretskii Update information about refcards * admin/release-process (refcards): * admin/make-tarball.txt (refcards): Update information about generating refcards and required TeX/LaTeX packages. 2020-11-12 Andrea Corallo Add copy insn testcase * test/src/comp-tests.el (copy-insn): New testcase. * test/src/comp-test-funcs.el (comp-test-copy-insn-f): New function. 2020-11-12 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p): Fix logic. 2020-11-12 Andrea Corallo Memoize `comp-common-supertype' * lisp/emacs-lisp/comp.el (comp-ctxt): Add `common-supertype-mem' slot. (comp-common-supertype): Memoize. 2020-11-12 Andrea Corallo Add few more type specifier tests * test/src/comp-tests.el (comp-tests-type-spec-tests): Add three tests and uncomment one. 2020-11-12 Andrea Corallo Rework `comp-ret-type-spec' in terms of `comp-phi' * lisp/emacs-lisp/comp.el (comp-ret-type-spec): Use `comp-func' not to duplicate logic plus add null type specifier support and some comments. 2020-11-12 Andrea Corallo Move phi function code into dedicated function and improve it * lisp/emacs-lisp/comp.el (comp-phi): New function moving logic from `comp-fwprop-insn'. 2020-11-12 Stefan Kangas Don't quote lambdas in several places * lisp/allout-widgets.el (allout-widgets-adjusting-message) (allout-widgets-exposure-change-processor) (allout-widgets-count-buttons-in-region): * lisp/ansi-color.el (ansi-color-make-color-map): * lisp/case-table.el (describe-buffer-case-table): * lisp/emacs-lisp/byte-opt.el (byte-decompile-bytecode-1): * lisp/gnus/gnus-agent.el (gnus-agent-regenerate-group): * lisp/gnus/nnir.el (nnir-run-swish++, nnir-run-swish-e) (nnir-run-hyrex, nnir-run-namazu): * lisp/hippie-exp.el (make-hippie-expand-function) (try-complete-lisp-symbol, try-complete-lisp-symbol-partially) (try-expand-all-abbrevs): * lisp/international/mule-cmds.el (sort-coding-systems) (select-safe-coding-system, select-message-coding-system) (read-language-name, encoded-string-description): * lisp/international/quail.el (quail-keyseq-translate) (quail-get-translations, quail-build-decode-map) (quail-insert-decode-map): * lisp/jka-compr.el (jka-compr-uninstall): * lisp/locate.el (locate-in-alternate-database): * lisp/mail/mailabbrev.el (mail-resolve-all-aliases-1) (mail-abbrev-make-syntax-table): * lisp/mh-e/mh-seq.el (mh-read-folder-sequences): * lisp/net/eudcb-ldap.el (eudc-ldap-simple-query-internal): * lisp/progmodes/make-mode.el (makefile-query-targets) (makefile-prompt-for-gmake-funargs): * lisp/shadowfile.el (shadow-cancel, shadow-shadows-of): * lisp/sort.el (sort-pages, sort-fields, sort-regexp-fields): * lisp/subr.el (listify-key-sequence): * lisp/term/wyse50.el (terminal-init-wyse50): * lisp/textmodes/ispell.el (ispell-help) (ispell-begin-tex-skip-regexp): * lisp/textmodes/page-ext.el (pages-sort-region): * lisp/textmodes/refer.el (refer-find-entry-in-file): * lisp/url/url-expand.el (url-expand-file-name): Don't quote lambdas. 2020-11-12 Juri Linkov Add help-char to the cache key in read-char-from-minibuffer as well It's highly unlikely that help-char will be changed from its default value 8, but formally there is a dependence on help-char. 2020-11-12 Robert Pluim Emit required version when Harfbuzz is not found but Cairo is * configure.ac: Define harfbuzz_required_ver with required harfbuzz version, and put it in the warning message emitted when Cairo is found but not HarfBuzz. 2020-11-12 Mattias Engdegård vhdl-mode: remove minor obstacle to static checking * lisp/progmodes/vhdl-mode.el (vhdl-directive-keywords-regexp): Remove unnecessary global variable. (vhdl-words-init): Remove assignment. (vhdl-font-lock-init): Inline expression. Use regexp-opt. 2020-11-12 Lars Ingebrigtsen Remove mention of `edebug-on-signal' from a doc string * lisp/emacs-lisp/edebug.el (edebug-mode): Don't mention non-existent user option (bug#44577). 2020-11-12 Lars Ingebrigtsen Clarify project-find-file doc string * lisp/progmodes/project.el (project-find-file): Don't say anything about recognizing file names, as that may lead the user to think that it'll check whether the string at point is an existing file (bug#44588). 2020-11-12 Juri Linkov Add help-form to the cache key in read-char-from-minibuffer 2020-11-12 Stefan Kangas * test/lisp/help-fns-tests.el: Silence byte-compiler. * test/lisp/hfy-cmap-resources/rgb.txt: Add comment line. 2020-11-12 Stefan Kangas Remove redundant installation instructions * lisp/net/newsticker.el: * lisp/net/sieve-mode.el: * lisp/play/bubbles.el: * lisp/play/handwrite.el: * lisp/progmodes/python.el: * lisp/progmodes/ruby-mode.el: * lisp/whitespace.el: Remove redundant installation instructions. These packages are distributed with Emacs and/or GNU ELPA. * lisp/calendar/timeclock.el: * lisp/ehelp.el: * lisp/emacs-lisp/checkdoc.el: * lisp/filesets.el: * lisp/mail/reporter.el: * lisp/net/rfc2104.el: * lisp/net/webjump.el: * lisp/pixel-scroll.el: Remove redundant recommendation to call require before using autoloaded functions. * lisp/tar-mode.el: Remove reference to package uncompress, removed in Emacs 23. 2020-11-12 Stefan Kangas * lisp/progmodes/ruby-mode.el (auto-mode-alist): Add Brewfile. 2020-11-12 Stefan Kangas Fix mistake in describe-buffer-bindings * src/keymap.c (Fdescribe_buffer_bindings): Fix a call in describe-buffer-bindings. This fixes a mistake in my previous commit to prefer the Lisp version of describe-map-tree (8a1441310aa1), where 0 was accidentally converted to Qt in two places. 2020-11-12 Juri Linkov Use cache with help-char in read-char-from-minibuffer unless help-form is nil 2020-11-12 Andrea Corallo Nativecomp testsuite rework for derived return type specifiers As we have derived return type specifiers as some test for them. Also rewrite some propagation related test using return type specifiers too as it's way more convenient. * test/src/comp-tests.el (fw-prop-1): Nit rename. (comp-tests-check-ret-type-spec): New function. (comp-tests-type-spec-tests): New variable. (comp-tests-cond-rw-0-var) Remove variable. (cond-rw-0, cond-rw-1, cond-rw-2, cond-rw-3, cond-rw-4, cond-rw-5) Remove tests as now covered by `comp-tests-check-ret-type-spec'. 2020-11-12 Andrea Corallo Add nativecomp derived return type specifier computation support * lisp/emacs-lisp/comp.el (comp-post-pass-hooks): Nit. (comp-func): Add `ret-type-specifier' slot. (comp-ret-type-spec): New function. (comp-final): Call `comp-ret-type-spec'. 2020-11-12 Andrea Corallo Unline some functions to optimize bootstrap time * lisp/emacs-lisp/comp.el (comp-mvar-value-vld-p) (comp-mvar-value, comp-mvar-fixnum-p, comp-set-op-p) (comp-assign-op-p, comp-call-op-p, comp-type-hint-p) (comp-func-ret-typeset, comp-function-pure-p) (comp-alloc-class-to-container, comp-lex-byte-func-p) (comp-lap-eob-p, comp-lap-fall-through-p, comp-emit) (comp-emit-set-call, comp-mvar-propagate) (comp-function-foldable-p, comp-function-call-maybe-fold) (comp-trampoline-filename): Uninline functions. 2020-11-12 Andrea Corallo Add to elisp-mode `emacs-lisp-native-compile-and-load' * lisp/progmodes/elisp-mode.el (emacs-lisp--before-compile-buffer): New function. (emacs-lisp-byte-compile-and-load): Use the previous. (emacs-lisp-native-compile-and-load): New function. 2020-11-12 Andrea Corallo Fix limple-mode for new type and range limple semantic * lisp/emacs-lisp/comp.el (comp-limple-branches, comp-limple-ops): New variables. (comp-limple-lock-keywords): Update value. 2020-11-12 Andrea Corallo Add a nativecomp testcase Having this while re-debugging the bootstrap would have saved few hours of debug so let's add it. * test/src/comp-tests.el (and-3): Add test. * test/src/comp-test-funcs.el (comp-test-and-3-var): New var. (comp-test-and-3-f): New function. 2020-11-12 Andrea Corallo Add initial nativecomp typeset and range propagation support This commit add an initial support for a better type propagation and integer range propagation. Each mvar can be now characterized by a set of types, a set of values and an integral range. * lisp/emacs-lisp/comp.el (comp-known-ret-types): Store into typeset and remove fixnum. (comp-known-ret-ranges, comp-type-predicates): New variables. (comp-ctxt): Remove supertype-memoize slot and add union-typesets-mem. (comp-mvar): Remove const-vld, constant, type slots. Add typeset, valset, range slots. (comp-mvar-value-vld-p, comp-mvar-value, comp-mvar-fixnum-p) (comp-mvar-symbol-p, comp-mvar-cons-p) (comp-mvar-type-hint-match-p, comp-func-ret-typeset) (comp-func-ret-range): New functions. (make-comp-mvar, make-comp-ssa-mvar): Update logic. (comp--typeof-types): New variable. (comp-supertypes, comp-common-supertype): Logic update. (comp-subtype-p, comp-union-typesets, comp-range-1+) (comp-range-1-, comp-range-<, comp-range-union) (comp-range-intersection): New functions. (comp-fwprop-prologue, comp-mvar-propagate) (comp-function-foldable-p, comp-function-call-maybe-fold) (comp-fwprop-insn, comp-call-optim-func, comp-finalize-relocs): Logic update. * src/comp.c (emit_mvar_rval, emit_call_with_type_hint) (emit_call2_with_type_hint): Logic update. * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Undo the add of fixnum and bignum as unnecessary. * test/src/comp-tests.el (comp-tests-mentioned-p-1, comp-tests-cond-rw-checker-val) (comp-tests-cond-rw-checker-type, cond-rw-1, cond-rw-2) (cond-rw-3, cond-rw-4, cond-rw-5): Update for new type interface. (range-simple-union, range-simple-intersection): New integer range tests. (union-types): New union type test. 2020-11-12 Andrea Corallo Rename two nativecomp functions * lisp/emacs-lisp/comp.el (comp-function-foldable-p): Rename from comp-function-optimizable-p. (comp-function-call-maybe-fold): Same from comp-function-call-maybe-fold. 2020-11-11 Eli Zaretskii Avoid crashes in the daemon due to user interaction * src/minibuf.c (read_minibuf): Avoid crashes in the daemon if the init file invokes some kind of minibuffer interaction, by not updating the selected frame if it's the initial frame. (Bug#44583) 2020-11-11 Juri Linkov In dired-query use read-char-from-minibuffer with bound help-char (bug#42708) * lisp/dired-aux.el (dired-query): Replace read-char-choice call with read-char-from-minibuffer. * lisp/subr.el (read-char-choice): Restore the previous version that uses read-key. (read-char-from-minibuffer): Bind help-char to help-form-show when help-form is non-nil. 2020-11-11 Eric Abrahamsen Remove unused "internal" gnus-search variables * lisp/gnus/gnus-search.el (gnus-search-memo-query, gnus-search-memo-server): No longer needed. 2020-11-11 Eric Abrahamsen Fix defgeneric name of gnus-search-index(ed)-extract * lisp/gnus/gnus-search.el (gnus-search-indexed-extract): Had the wrong name on the generic. 2020-11-11 Michael Albinus Some minor changes to Tramp, do not merge with master * lisp/net/tramp.el (tramp-handle-directory-files) (tramp-handle-directory-files-and-attributes): * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes): * lisp/net/tramp-rclone.el (tramp-rclone-handle-directory-files): * lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes): * lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Add _COUNT. Make the functions forward compatible. * lisp/net/tramp-gvfs.el (tramp-gvfs-enabled): Increase `max-specpdl-size' temporarily. * test/lisp/net/tramp-tests.el (tramp--test-share-p): New defun. (tramp-test05-expand-file-name-relative): Use it. 2020-11-11 Dario Gjorgjevski Fix python-font-lock-keywords-maximum-decoration performance regression * lisp/progmodes/python.el (python-font-lock-keywords-maximum-decoration): `symbol-name' should not be quantified by a `+' as it is redundant and performs very badly (bug#44572). 2020-11-11 Lars Ingebrigtsen Remove mention of global-cedet-m3-minor-mode * lisp/cedet/semantic.el (semantic-submode-list): (semantic-default-submodes): Remove mention of global-cedet-m3-minor-mode, which no longer exists, apparently (bug#44565). 2020-11-11 Dario Gjorgjevski Fix font lock of assignments with type hints in Python * lisp/progmodes/python.el (python-font-lock-keywords-maximum-decoration): Fix regular expressions for font lock of assignments with type hints (bug#44568). The font lock of assignments with type hints in Python is rather bad. Consider the following example: from typing import Mapping, Tuple, Sequence var1: int = 5 var2: Mapping[int, int] = {10: 1024} var3: Mapping[Tuple[int, int], int] = {(2, 5): 32} var4: Sequence[Sequence[int]] = [[1], [1, 2], [1, 2, 3]] var5: Sequence[Mapping[str, Sequence[str]]] = [ { 'red': ['scarlet', 'vermilion', 'ruby'], 'green': ['emerald green', 'aqua'] }, { 'sword': ['cutlass', 'rapier'] } ] As things stand right now, only ‘var1’ would be highlighted. To make things worse, the ‘Mapping’ type hint of ‘var2’ would also be highlighted, which is entirely incorrect. This commit makes all of ‘var1’ through ‘var5’ be highlighted correctly. 2020-11-11 Harald Jörg Cleanup of the test file for cperl-mode * test/lisp/progmodes/cperl-mode-tests.el (cperl--run-test-cases): New macro, factored out from various indentation / rewriting tests. Contains documentation of the format used by the cperl-mode-resources files. (cperl-test-bug-19709): Replace 'next-line' by 'forward-line'. (cperl-test-indent-exp), (cperl-test-indent-styles), (cperl-test-bug-30393): Use the new macro. (cperl-test-bug-19709): Make fit for Emacs 26. (cperl-test-indent-styles): Skip for Perl mode (bug#44561). 2020-11-11 Stefan Monnier * lisp/server.el: Refactor frame creation functions (server--create-frame): New function, extracted from `server-create-dumb-terminal-frame`. (server-create-window-system-frame, server-create-tty-frame): (server-create-dumb-terminal-frame): Use it. 2020-11-11 Eliza Velasquez * lisp/server.el: Fix frame creation on dumb terminals (bug#25547) (server-create-dumb-terminal-frame): New function. (server-process-filter): Use it. (server-delete-client): Don't delete tty terminal when it's not exclusive to this client. 2020-11-10 Juri Linkov Don't set file name variable in org-element-parse-secondary-string (bug#44524) * lisp/org/org-element.el (org-element-parse-secondary-string): Don't set buffer-local variables buffer-file-name and buffer-file-truename in temporary buffer. 2020-11-10 Juri Linkov * lisp/leim/quail/compose.el ("iso-transl"): New input method. * doc/emacs/basic.texi (Inserting Text): Mention transient input method "iso-transl". * lisp/leim/quail/latin-ltx.el: Use same Keywords as in other quail files. 2020-11-10 Eli Zaretskii New debugging command 'malloc-info' * src/alloc.c (Fmalloc_info) [GNU_LINUX]: New command. (syms_of_alloc): Defsubr it. (Bug#43389) 2020-11-10 Dmitry Gutov Clear the vc-state cache when returning nil * lisp/vc/vc-hg.el (vc-hg-registered): Clear the vc-state cache when returning nil. 2020-11-10 Tom Fitzhenry Remove extra process call from vc-hg-registered Prefer vc-state to benefit from its caching (bug#44534) This same technique is used in vc-git.el, per commit 2018-06-28 "Remove extra process call from vc-git-find-file-hook" 93c41ce6aa64b14fc9bd7bdd0d909915a79191cd. * lisp/vc/vc-hg.el (vc-hg-registered): Use vc-state rather than vc-hg-state. 2020-11-10 Eli Zaretskii Fix a recent change in image.c for MS-Windows * src/image.c: Fix DEF_DLL_FN of rsvg_handle_get_intrinsic_dimensions. Reported by Andy Moreton . 2020-11-10 Lars Ingebrigtsen Add more doc-view requirements * lisp/doc-view.el: Add more requirements. 2020-11-10 Steven Allen Only use nbutlast when we actually want to modify the original list * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-byte-array-to-string): Don't modify the byte array. * lisp/net/tramp-integration.el (tramp-eshell-directory-change): Don't modify the underlying exec-path. 2020-11-10 Andrew G Cohen Remove ephemeral group on error or null result * lisp/gnus/nnselect.el (nnselect-request-group): If an ephemeral group is empty, there is nothing to see, so remove the group. (nnselect-run): Catch and return an empty artlist on error. 2020-11-09 Alan Mackenzie CC Mode: fix many compiler warnings which would appear with lexical binding * lisp/progmodes/cc-align.el (three places) prefix langelem with a _. * lisp/progmodes/cc-cmds.el: * lisp/progmodes/cc-engine.el: Remove superfluous local variables. * lisp/progmodes/cc-defs.el (c-will-be-unescaped): Remove unused parameter end. * lisp/progmodes/cc-engine.el (c-looking-at-decl-block): Remove unused parameter containing-sexp. (c-looking-at-special-brace-list); Remove unused parameter lim. (c-add-class-syntax): Remove unused parameter paren-state. 2020-11-09 Philipp Stephani Fix undefined behavior when fetching glyphs from the display vector. You can trigger this rather obscure bug by enabling selective display if the second glyph in its display vector has an invalid face. For example, evaluate (set-display-table-slot standard-display-table 'selective-display [?A (?B . invalid)]) and then enable selective display. * src/xdisp.c (next_element_from_display_vector): Check whether next glyph code is valid before accessing it. 2020-11-09 Stefan Kangas Add test for substitute-command-keys with command remap * test/lisp/help-tests.el (help-tests-remap-map): New variable. (help-tests-substitute-command-keys/remap): New test. (help-tests-substitute-command-keys/keymaps) (help-tests-substitute-command-keys/undefined-map): Fix indentation. 2020-11-09 Brian Leung (tiny change) shortdoc: prefer seq-contains-p over seq-contains * lisp/emacs-lisp/shortdoc.el (sequence): use seq-contains-p instead of seq-contains, which is obsolete as of 27.1. (Bug#44536) 2020-11-09 Stefan Kangas Simplify getting value of text-quoting-style (Bug#44471) * src/doc.c (text_quoting_style): Remove function by merging it... (Ftext_quoting_style): ...here. Rename from Fget_quoting_style. (syms_of_doc): Update defsubr for Ftext_quoting_style. * src/lisp.h (enum text_quoting_style): Remove enum. * src/doprnt.c (doprnt): * src/editfns.c (styled_format): * lisp/help.el (substitute-command-keys): Update callers to use text-quoting-style. 2020-11-09 Philipp Stephani * lisp/disp-table.el (make-glyph-code): Remove obsolete comment. 2020-11-09 Mattias Engdegård Better warning suppression in rx-tests * test/lisp/emacs-lisp/rx-tests.el (rx-compat): Use with-no-warnings instead of with-suppressed-warnings which complains when running the test interactively. 2020-11-09 Mattias Engdegård Fix pcase rx form snag with '?' and '??' (bug#44532) This is a regression from Emacs 26. Reported by Phillip Stephani. * lisp/emacs-lisp/rx.el (rx--pcase-transform): Process ? and ?? correctly. * test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add test case. 2020-11-09 Alan Third Fix css length calculations * src/image.c (svg_css_length_to_pixels): Put in missing breaks where necessary. 2020-11-09 Lars Ingebrigtsen Make the SHOW parameter work again in `run-python' * lisp/progmodes/python.el (run-python): Make the SHOW parameter work again after the fix for 31398 (bug#44421). 2020-11-09 Protesilaos Stavrou Use a separate face for expanded log-view bodies * lisp/vc/log-view.el (log-view-commit-body): Define new face. (log-view-toggle-entry-display): Implement 'log-view-commit-body' face (bug#44424). 2020-11-09 Lars Ingebrigtsen Clarify Lisp warning about elements following other expressions * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Clarify warning in help text (bug#44482). 2020-11-09 Eli Zaretskii Fix compilation of image.c on MS-Windows This is a followup to last change in image.c. * src/image.c (rsvg_handle_get_intrinsic_dimensions): Define to call fn_rsvg_handle_get_intrinsic_dimensions. (svg_css_length_to_pixels): Compile only for librsvg >= 2.46.0, as RsvgLength type was not defined before. 2020-11-09 Lars Ingebrigtsen Update the doc-view header line 2020-11-09 Eli Zaretskii Avoid breaking Arabic shaping in 'window-text-pixel-size' * src/xdisp.c (CHAR_COMPOSED_P): If the bidi_p flag is not set, pass -1 to composition_reseat_it, so that the shaping engine will figure out the directionality of the text. This is important, e.g., when using move_it_* functions in some context that is not redisplay, such as 'window-text-pixel-size'. (Bug#44521) 2020-11-09 Alan Third Fix crash in ns_mouse_position (bug#44313) * src/nsterm.m (ns_destroy_window): Close the window before freeing the frame resources so we don't end up accessing the frame struct after it's been freed. 2020-11-09 Andrii Kolomoiets NS: Make s- to move to beginning/end of line * lisp/term/ns-win.el: Bind 's-' to 'move-beginning-of-line'; bind 's-' to 'move-end-of-line'. * etc/NEWS: Mention new bindings. 2020-11-09 Alan Third Calculate SVG image sizes more accurately (bug#44206) * src/image.c (svg_css_length_to_pixels): New function. (svg_load_image): Try more methods to work out the image size. 2020-11-09 Lars Ingebrigtsen doc-view.el comment clarification * lisp/doc-view.el: Make the commentary mention that it's not limited to a narrow range of file formats (bug#44504). 2020-11-09 Daniel Martín Update erc documentation about C-c C-b * doc/misc/erc.texi (Keystroke Summary): C-c C-b runs erc-switch-to-buffer, which is implemented in terms of read-buffer (bug#44498). 2020-11-09 Harald Jörg cperl-mode: Indentation of ')' follows customisation * lisp/progmodes/cperl-mode.el (cperl-style-alist): Add cperl-close-paren-offset to the settings for PBP style. * test/lisp/progmodes/cperl-mode-tests.el (cperl-bug19709): New test to verify correct indentation of closing parentheses (Bug#19709). * test/lisp/progmodes/cperl-mode-resources/cperl-bug-19709.pl: New test case with code from the bug report. * test/lisp/progmodes/cperl-mode-resources/cperl-indent-styles.pl: Add a new test clause for cperl-close-paren-offset. 2020-11-09 Akira Kyle (tiny change) Fix xwidget's webkitgtk widget overriding of Emacs SIGCHLD handler * src/xwidget.c (make-xwidget): Save and restore Emacs SIGCHLD signal handler since glib doesn't (but should) do this. 2020-11-09 Stefan Kangas Remove test for return value of set-keymap-parent * test/src/keymap-tests.el (keymap-keymap-set-parent/returns-parent): Remove test for the return value of set-keymap-parent. It is not clear that returning the value is a very good idea. Problem pointed out by Stefan Monnier . 2020-11-09 Eric Abrahamsen Add more protections to gnus-search query parsing * lisp/gnus/gnus-group.el (gnus-group-make-search-group, gnus-group-read-ephemeral-search-group): If the query is coming in via the old 'nnir-query-spec key, we know not to parse it. * lisp/gnus/gnus-search.el (gnus-search-make-query-string): Check if the query was sent in as '(query "query"), and not '(query . "query). (gnus-search-imap-search-keys): Add x-gm-raw to imap search keys. (gnus-search-prepare-query): If we know this query should be raw, don't even try parsing it, as it probably won't work. 2020-11-08 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix phi function. 2020-11-08 Juri Linkov * lisp/progmodes/project.el: Don't truncate the saved project list. * lisp/progmodes/project.el (project--write-project-list): Let-bind print-length and print-level to nil to not truncate the saved project list with unreadable ellipsis. 2020-11-08 Eric Abrahamsen Another backwards-compatibility fix for gnus-search * lisp/gnus/gnus-search.el (gnus-search-server-to-engine): Because of the way we've set up the obsolete variable alias for `nnir-method-default-engines', we may end up with its value in `gnus-search-default-engines'. Make the check for "old style" values general, so we catch them no matter where they came from. 2020-11-08 Alan Mackenzie Don't set the selected window to the miniwindow on a frame change. Intended to fix bug #44502. * src/minibuf.c (move_minibuffer_onto_frame): Remove the lines of code which set the selected window to the minibuffer. 2020-11-08 Dmitry Gutov Doc fix * lisp/vc/vc.el (vc-deduce-fileset): Doc fix (bug#44420). 2020-11-08 Dmitry Gutov Mention which exact file is already registered * lisp/vc/vc.el (vc-register): Mention which exact file is already registered (bug#44420). 2020-11-07 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-common-supertype-2): Fix null intersection 2020-11-07 Glenn Morris Merge from origin/emacs-27 f5d7fb3a2d (origin/emacs-27) Fix 'uudecode-decode-region-internal' in... d4242177da Fix 'send-string-to-terminal' writing very long strings 9da0f4026c * lisp/subr.el (read-char-from-minibuffer): Doc fix. (Bug... 9899f74e4e Merge branch 'emacs-27' of git.savannah.gnu.org:/srv/git/e... a6fcba783e Fix documentation of 'windmove-swap-states-default-keybind... f4acd7a924 Split windows evenly when 'min-margins' parameter was set ... 2020-11-07 Glenn Morris Merge from origin/emacs-27 53933cdf5c ; * lisp/international/mule.el (define-coding-system): Doc... e90ffcf759 * src/w32fns.c (Fw32_register_hot_key): Doc fix. (Bug#44456) 89740e9cb5 Prevent redisplay from moving point behind user's back 5932df7435 Document that the :match function for a widget takes an ex... 1b7ab9d0ac Don't render XML declaration of an HTML document (bug#44348) # Conflicts: # lisp/international/mule.el 2020-11-07 Eric Abrahamsen Various fixes and backward compatibility for gnus-search * lisp/gnus/gnus-group.el (gnus-group-make-search-group, gnus-group-read-ephemeral-search-group): Check for and accept the old nnir-* spec keys. * lisp/gnus/gnus-search.el (shared-initialize): Use generate-new-buffer instead of doing it ourselves. (gnus-search-server-to-engine): Raise an informative error explicitly if we can't find a search engine, rather than letting it fall through to something less helpful. (gnus-search-make-spec): Add `gnus-search--complete-key-data' to `completion-at-point-functions' locally, not globally. 2020-11-07 Andrea Corallo Allow for manually bumbing new native compiler ABI versions * src/comp.c (ABI_VERSION): Define macro. (hash_native_abi): Include ABI_VERSION in the hashing. (syms_of_comp): Tweak docstring. 2020-11-07 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-11-07 Stefan Monnier * lisp/emacs-lisp/lisp-mode.el: Avoid false-positive "hidden arg" in strings (lisp--match-hidden-arg): Don't misfire in strings and comments. Reported by: Andrii Kolomoiets 2020-11-07 Mauro Aranda Add test for recent change in enable-theme * test/lisp/custom-tests.el (custom-test-enable-theme-keeps-settings): Enabling a theme should not change the theme settings, so test for that. See https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00232.html 2020-11-07 Andrea Corallo Fix non native compiled build * lisp/emacs-lisp/advice.el (ad-add-advice): Do not try to install trampolines in vanilla builds. 2020-11-07 Andrea Corallo Allow for native compilation qualities to be specified per input file * lisp/emacs-lisp/bytecomp.el (byte-native-qualities): Define variable. (byte-compile-from-buffer): Spill compilation qualities. * lisp/emacs-lisp/comp.el (comp-speed, comp-debug): Make them file local variables. (comp-ctxt): Add `speed' and `debug' slots. (comp-spill-speed, comp-spill-lap-function): Make use of these. (comp-spill-lap-function): Spill qualities from `byte-native-qualities'. (comp-limplify-top-level): Do not use `comp-speed' but ctxt value unstead. (comp-final): Do not propagate qualities as they are already in the `comp-ctxt'. (comp--native-compile): Close on `byte-native-qualities'. * src/comp.c (comp_t): Add 'speed' and 'debug' fields. (emit_comment, emit_mvar_rval, emit_static_object) (emit_ctxt_code, Fcomp__init_ctxt): Use these instead of the global variables. (Fcomp__compile_ctxt_to_file): Set comp.speed and comp.debug and use them. 2020-11-07 Eli Zaretskii Don't leave lock files after 'replace-buffer-contents' * src/editfns.c (Freplace_buffer_contents): Unlock the buffer's file if no changes have been made. (Bug#44303) 2020-11-07 Andrea Corallo Handle type hierarchy in native compiler forward propagation * lisp/emacs-lisp/cl-preloaded.el (cl--typeof-types): Add fixnum and bignum. * lisp/emacs-lisp/comp.el (comp-ctxt): Add `supertype-memoize' slot. (comp-supertypes, comp-common-supertype-2) (comp-common-supertype): New functions. (comp-fwprop-insn): Make use of `comp-common-supertype' to identify the common supertype to be propagated. 2020-11-07 Kazuhiro Ito (tiny change) Fix 'uudecode-decode-region-internal' in multibyte buffers * lisp/mail/uudecode.el (uudecode-decode-region-internal): Fix inserting the decoded string into a multibyte buffer. Optimize by working with characters, not strings. (Bug#44411) 2020-11-07 Eli Zaretskii Fix 'send-string-to-terminal' writing very long strings * src/dispnew.c (Fsend_string_to_terminal): Prevent partial writes by blocking SIGIO while 'fwrite' runs. (Bug#44320) 2020-11-07 Eli Zaretskii * lisp/subr.el (read-char-from-minibuffer): Doc fix. (Bug#44451) 2020-11-07 Earl Hyatt Fix documentation of 'windmove-swap-states-default-keybindings' * doc/emacs/windows.texi (Window Convenience): Fix description of 'windmove-swap-states-default-keybindings' and related index entry. (Bug#44441) 2020-11-07 Eli Zaretskii Fix scrolling problems with misc-fixed fonts under Cairo * src/ftcrfont.c (ftcrfont_glyph_extents): Avoid rounding up the glyph ascent to a higher value than needed due to floating-point roundoff errors. (Bug#44284) 2020-11-07 Martin Rudalics Split windows evenly when 'min-margins' parameter was set (Bug#44483) * lisp/window.el (split-window): Make new window inherit any 'min-margins' parameter from WINDOW so that horizontal splits reliably produce windows of same width (Bug#44483). 2020-11-07 Stefan Kangas Delete outdated comment about C rewrite in apropos.el Maybe it made sense to rewrite apropos.el in C for speed in 1991, but today the speed increase would not outweigh the maintenance burden. * lisp/apropos.el: Delete outdated comment. 2020-11-07 Stefan Kangas Add some more tests for keymap.c * test/src/keymap-tests.el (keymap-make-keymap) (keymap-make-sparse-keymap, keymap-keymapp) (keymap-keymap-parent, keymap-keymap-set-parent/returns-parent) (keymap-copy-keymap/is-equal, keymap-copy-keymap/is-not-eq) (keymap-lookup-key, keymap-apropos-internal) (keymap-apropos-internal/predicate): New tests. (keymap-tests--make-keymap-test): New defun. 2020-11-06 Mattias Engdegård Rectify skip-set argument * lisp/gnus/gnus-search.el (gnus-search-query-end-of-input): Remove brackets that don't belong. Found by relint. 2020-11-06 Mattias Engdegård Fix javac message parsing column number off-by-one * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): 'javac': Column numbers are 1-based by default; remove subtraction and η-reduce. Translate regexp to rx (mechanised). * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data): Adapt 'javac' test cases to the change. 2020-11-06 Glenn Morris Fix --enable-check-lisp-object-type build * src/print.c (syms_of_print) : Fix type. 2020-11-06 Mattias Engdegård Update gdb-mi-tests * test/lisp/progmodes/gdb-mi-tests.el (gdb-mi-parse-value): Make test pass after the change in gdb-mi-decode-strings default value. 2020-11-06 Mattias Engdegård * lisp/gnus/gnus-search.el (gnus-search-contact-tables): Fix type. A more precise type is desirable but at it is now correct ('list' is not). 2020-11-06 Mattias Engdegård Change the default value of gdb-mi-decode-strings to t (bug#44173) This is likely to be a more commonly wanted default value today. * lisp/progmodes/gdb-mi.el (gdb-mi-decode-strings): Change default. * doc/emacs/building.texi (Source Buffers): Update manual. * etc/NEWS: Announce. 2020-11-06 Mattias Engdegård Reduce integer-output-format to print-integers-as-characters The variable now only controls whether characters are printed, not the radix. Control chars are printed in human-readable syntax only when special escapes such as ?\n are available. Spaces, formatting and combining chars are excluded (bug#44155). Done in collaboration with Juri Linkov. * src/character.c (graphic_base_p): * src/print.c (named_escape): New functions. (print_object): Change semantics as described above. (syms_of_print): Rename integer-output-format. Update doc string. * doc/lispref/streams.texi (Output Variables): * etc/NEWS: * test/src/print-tests.el (print-integers-as-characters): Rename and update according to new semantics. The test now passes. 2020-11-06 Mauro Aranda Go back to not using custom-push-theme when enabling a theme * lisp/custom.el (enable-theme): Relying on custom-push-theme to handle theme settings and prior user settings was a mistake. The theme settings haven't changed between loading the theme and enabling it, so we don't need all of what custom-push-theme does. However, we still need to save a user setting outside of Customize, in order to be able to get back to it, so do that in enable-theme itself. 2020-11-06 Eli Zaretskii Improve documentation of a recent change * doc/emacs/mule.texi (Select Input Method): Add an @anchor. * doc/emacs/search.texi (Special Isearch): Add cross-reference and improve wording. 2020-11-06 Juri Linkov Support transient input methods in Isearch mode (bug#44266) * doc/emacs/mule.texi (Select Input Method): Rename transient-input-method to activate-transient-input-method. * doc/emacs/search.texi (Special Isearch): Document isearch-transient-input-method. * lisp/international/isearch-x.el (isearch-transient-input-method): New function. (isearch-process-search-multibyte-characters): Call 'deactivate-transient-input-method' after 'read-string'. * lisp/international/mule-cmds.el (mule-menu-keymap): Remove duplicate menu item 'describe-input-method'. Add new menu item 'activate-transient-input-method'. (default-transient-input-method): Rename from transient-input-method. (current-transient-input-method) (previous-transient-input-method): New buffer-local variables. (deactivate-input-method): Don't add current-transient-input-method to input-method-history. (toggle-input-method): Call deactivate-transient-input-method when current-transient-input-method is non-nil. (activate-transient-input-method): Rename from transient-input-method. (deactivate-transient-input-method): New function with body from renamed function transient-input-method. * lisp/isearch.el (isearch-menu-bar-map): Add new menu item 'isearch-transient-input-method'. (isearch-mode-map): Bind 'C-x \' to isearch-transient-input-method. (isearch-forward): Add isearch-transient-input-method to docstring. (isearch-message-prefix): Use shorter string for narrowed buffer. 2020-11-06 Stefan Kangas Add more tests for where-is-internal * test/src/keymap-tests.el (keymap-where-is-internal) (keymap-where-is-internal/firstonly-t) (keymap-where-is-internal/menu-item) (keymap-where-is-internal/advertised-binding) (keymap-where-is-internal/advertised-binding-respect-remap) (keymap-where-is-internal/remap) (keymap-where-is-internal/shadowed): New tests. (keymap-where-is-internal/preferred-modifier-is-a-string): Rename from keymap-where-is-internal-test. 2020-11-06 Eric Abrahamsen Fixes and improvements to gnus-search * lisp/gnus/gnus-search.el (gnus-search-default-engines): Change type from a list of two-element lists, to alist. This matches nnir's old option type, and should make transition easier. (nnir-imap-default-search-key): Note that variable is obsolete. (gnus-search-transform-expression): Interpret the "attachment" key as "body" in imap searches. Allow specifying larger/smaller message size values in KB or MB units. (gnus-search-server-to-engine): Fix error in this function, and clarify somewhat. 2020-11-05 Katsumi Yamaoka * doc/misc/gnus.texi (Selection Groups): Delete excessive paren 2020-11-05 Mauro Aranda Enable/disable buttons, tool bar and menu items in Custom buffer (Bug#14398) * lisp/cus-edit.el (custom-reset-extended-menu): Keymap menu for the Revert... menu button. (custom-reset-menu): Keep for backward compatibility, but default to nil, so we prefer the keymap menu instead. (custom-reset): Pass the new keymap menu to widget-choose. (custom-commands): Add an element to each list item, to manage its enable/disable state. Add docstring. (custom-command-buttons): New variable, to hold the buttons that act on all options in a Custom buffer. (custom-buffer-create-internal): When creating the command buttons, add the optional :notify function to enable/disable them. Add the buttons to the new variable custom-command-buttons. (customize-menu-create): Notify the command buttons after creating the Custom buffer, so they are correctly enabled/disabled. (custom-redraw-magic, custom-notify): Notify the command buttons and update the tool bar when changing a widget to the modified state. 2020-11-05 Andrea Corallo A native compiler forward propagation fix * lisp/emacs-lisp/comp.el (comp-fwprop-insn): Fix `comp-mvar' `const-vld' slot left unset while propagating in phis. 2020-11-05 Basil L. Contovounesios Fix coding system in eww-display-pdf * lisp/net/eww.el (eww-display-pdf): Make *eww pdf* buffer unibyte before populating it to avoid conversions. The binding for coding-system-for-write is then no longer necessary, and can be delegated to the viewer invoked by mailcap-view-mime. Suggested by Stefan Monnier . (Bug#44338) 2020-11-05 Philipp Stephani * src/minibuf.c (move_minibuffer_onto_frame): Fix comparison 2020-11-05 Alan Mackenzie Allow minibuffer to stay in its original frame. Tidy up this area. * doc/emacs/mini.texi (Basic Minibuffer): Add an entry for minibuffer-follows-selected-frame. * doc/lispref/minibuf.texi (Minibuffer Misc): Describe the new parameter to minibufferp, LIVE. * etc/NEWS: Add an entry describing the new minibuffer strategy. * lisp/cus-start.el (minibuffer-prompt-properties--setter): Add an entry for minibuffer-follows-selected-frame. * lisp/minibuffer.el (minibuffer-message): Check for the current buffer being an _active_ minibuffer rather than merely a minibuffer. * src/frame.c (do_switch_frame): Call move_minibuffer_onto_frame. * src/lisp.h (Top level): Add prototypes for move_minibuffer_onto_frame and is_minibuffer. * src/minibuf.c (minibuf_follows_frame): New function which ignores local and let-bound values of minibuffer-follows-selected-frame. (choose_minibuf_frame): Reformulate this function to reuse a minibuffer window where possible, and to ensure no other frame has its minibuffer current, but only when `minibuffer-follows-selected-frame'. (move_minibuffer_onto_frame): New function. (live_minibuffer_p): New function. (Fminibufferp): Add a new &optional parameter LIVE. Reformulate, possibly calling live_minibuffer_p. (read_minibuf): move the incrementation of minibuf_level to before the call of choose_minibuf_frame. Empty the miniwindows of frames without an active minibuffer, rather than of all but the current frame. (is_minibuffer): New function. (read_minibuf_unwind): Note the miniwindow being restored and resize all other miniwindows to zero size. (minibuffer-follows-selected-frame): New configuration variable. * src/window.c (candidate_window_p): In some scenarios, check the miniwindow holds an active minibuffer. * src/xdisp.c (get_window_cursor_type): Suppress the cursor for non-active miniwindows, regardless of minibuf_level. 2020-11-05 Eli Zaretskii * src/w32fns.c (Fw32_register_hot_key): Doc fix. (Bug#44456) 2020-11-05 Basil L. Contovounesios Improve eww support for externally viewed PDFs The *eww pdf* buffer is only needed when viewing PDFs within Emacs, e.g., with doc-view-mode. External PDF viewers are called with a temporary file, so the buffer is not needed in that case. What's more, mailcap-view-mime erased the buffer and left it in fundamental-mode until now, so the user was left staring at a useless, empty buffer. To make things even worse, external viewers were invoked synchronously until now, so the user could not browse the PDF file and use Emacs simultaneously. * lisp/net/mailcap.el (mailcap--async-shell): New function. (mailcap-view-mime): Use it to invoke external viewers asynchronously. Mention erasure of current buffer in that case in docstring. Add a period between the temporary file name and its extension. * lisp/net/eww.el (eww-display-pdf): Simplify using insert-buffer-substring. Fix coding-system-for-write for a stream of raw bytes. Pop to *eww pdf* buffer only if it is used for displaying a document; otherwise kill it. (bug#44338) 2020-11-05 Michael Albinus Still fixes for Tramp directory-files-* * lisp/net/tramp.el (tramp-handle-directory-files): * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes): Fix COUNT. * lisp/net/tramp-crypt.el (tramp-crypt-handle-directory-files): Implement COUNT. * lisp/net/tramp-gvfs.el (tramp-gvfs-dbus-byte-array-to-string): * lisp/net/tramp-integration.el (tramp-eshell-directory-change): Use `nbutlast'. * lisp/net/tramp-rclone.el (tramp-rclone-handle-delete-directory) (tramp-rclone-handle-delete-file): Reorder cache flushing. (tramp-rclone-handle-directory-files): Use `tramp-compat-directory-files'. * lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes): Fix NOSORT and COUNT. * lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Fix NOSORT. * test/lisp/net/tramp-tests.el (tramp--test-share-p): New defun. (tramp-test05-expand-file-name-relative): Use it. (tramp-test16-directory-files) (tramp-test19-directory-files-and-attributes): Strengthen test. (tramp-test20-file-modes): Simplify check. 2020-11-05 Lars Ingebrigtsen Let pdf-view-mode take precedence over doc-view-mode * lisp/net/mailcap.el (mailcap-mime-data): Note the order, and let pdf-view-mode take precedence, since it's an optional package (bug#44338). 2020-11-05 Basil L. Contovounesios Sync biblatex entries and fields with v3.15 * lisp/textmodes/bibtex.el (bibtex-BibTeX-entry-alist): Fix abbreviation of PhD. (bibtex-biblatex-entry-alist, bibtex-biblatex-field-alist): Sync standard entry and field types with those described in the biblatex v3.15 manual of 2020-08-19 (bug#44322). 2020-11-04 Stephen Berman Improve display of tabulated list header line labels (bug#44068) * lisp/emacs-lisp/tabulated-list.el (tabulated-list-init-header): Ensure sort indicator appears after the label of any selected sortable column that is wide enough and enable label truncation when narrowing a column. * lisp/emacs-lisp/timer-list.el (timer-list-mode): Improve column alignment. (timer-list--function-predicate): Correct typo in doc string. 2020-11-04 Eli Zaretskii Prevent redisplay from moving point behind user's back * src/bidi.c (bidi_at_paragraph_end, bidi_find_paragraph_start): Bind inhibit-quit to a non-nil value around calls to fast_looking_at, to prevent breaking out of redisplay_window, which temporarily moves point in buffers shown in non-selected windows. (Bug#44448) 2020-11-04 Stefan Monnier * src/term.c (handle_one_term_event): Simplify. Remove the `hold_quit` argument which was never used. Streamline the control flow. Thanks to Jared Finder for pointing it out. * src/keyboard.c (tty_read_avail_input): Simplify accordingly. 2020-11-04 Eric Abrahamsen Avoid use of eieio-oset-default * lisp/gnus/gnus-search.el: Replace with an :initform tag on the slot definition. `symbol-value' is necessary, otherwise the defclass macro will treat the option as a quoted symbol. 2020-11-04 Stefan Monnier * lisp/emacs-lisp/lisp-mode.el: Fix missing highlight of "hidden" string arg * lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2) (lisp-cl-font-lock-keywords-2): Highlight "hidden arg" even if it already has another face. 2020-11-04 Manuel Uberti (tiny change) * lisp/progmodes/project.el (project--files-in-directory): Fix formatting 2020-11-04 Stefan Kangas Use lexical-binding in mule-charsets.el * admin/charsets/mule-charsets.el: Use lexical-binding. (mule-charsets-header): Rename from 'header' to silence byte-compiler. 2020-11-04 Reuben Thomas Remove unused variable in ispell.el (thanks, Stefan Kangas) * lisp/textmodes/ispell.el (ispell-check-version): Remove unused variable `speller'. 2020-11-04 Stefan Kangas Fix warnings in url-irc.el * lisp/url/url-irc.el (zenirc-server-alist, zenirc-buffer-name): Declare to fix warnings. (url-irc-rcirc): Silence warning by adding missing password argument to rcirc-connect. 2020-11-04 Stefan Kangas * lisp/obsolete/nnir.el: Add "Obsolete-since" header. * lisp/cedet/srecode.el: Use lexical-binding. 2020-11-04 Stefan Monnier Fix misuses of `make-local-variable` on hooks * lisp/vc/smerge-mode.el (smerge-ediff): * lisp/progmodes/python.el (python-pdbtrack-setup-tracking): * lisp/net/tramp-smb.el (tramp-smb-call-winexe): * lisp/net/secrets.el (secrets-mode): * lisp/mail/rmail.el (rmail-variables): * lisp/ielm.el (inferior-emacs-lisp-mode): * lisp/erc/erc-log.el (erc-log-setup-logging): Use `add-hook`. * lisp/eshell/em-unix.el (eshell/diff): * lisp/eshell/em-hist.el (eshell-hist-initialize): Don't `make-local-variable` on hooks. 2020-11-04 Eric Abrahamsen Remove gmane search engine Remove the gnus-search-gmane class and all associated methods. If search functionality is ever resurrected, then revert this commit. * lisp/gnus/gnus-search.el: Delete code, and remove from default value of `gnus-search-default-engines'. 2020-11-04 Eric Abrahamsen Move nnir.el to lisp/obsolete * lisp/obsolete/nnir.el: This is no longer used, but users might still be requiring it. 2020-11-04 Eric Abrahamsen New gnus-search library This library provides a fundamental reworking of the search functionality previously found in nnir.el. It uses class-based search engines to interface with external searching facilities, and a parsed search query syntax that can search multiple engines. * lisp/gnus/gnus-search.el: New library containing search functionality for Gnus. * doc/misc/gnus.texi: Document. * lisp/gnus/gnus-group.el (gnus-group-make-search-group, gnus-group-read-ephemeral-search-group): Remove references to nnir, change meaning of prefix argument, change values of nnselect-function and nnselect-args. * lisp/gnus/nnselect.el: Replace references to nnir (nnselect-request-article): Use gnus-search functions, and search criteria. (nnselect-request-thread, nnselect-search-thread): Use gnus-search thread search. (gnus-summary-make-search-group): Switch to use gnus-search function and arguments. * test/lisp/gnus/gnus-search-tests.el: Tests for new functionality. 2020-11-04 Stefan Monnier * lisp/progmodes/tcl.el: Use lexical-binding Remove redundant `:group` args. 2020-11-03 Eli Zaretskii Fix last change * lisp/mwheel.el (mwheel-scroll): Don't use passive tense in doc string. 2020-11-03 Juri Linkov Horizontal mouse wheel scrolling amount (bug#43568) * lisp/mwheel.el (mouse-wheel-scroll-amount-horizontal): New defcustom. (mwheel-scroll): Use it. * doc/emacs/frames.texi (Mouse Commands): Update doc about horizontal scrolling step. 2020-11-03 Michael Albinus Some Tramp fixes for directory-files-* and delete-* * lisp/files.el (delete-directory): Simplify check for trash. * lisp/net/ange-ftp.el (ange-ftp-delete-file): Implement TRASH. * lisp/net/tramp-compat.el (tramp-compat-directory-files) (tramp-compat-directory-files-and-attributes) (tramp-compat-directory-empty-p): New defaliases. * lisp/net/tramp.el (tramp-handle-directory-files-and-attributes) (tramp-skeleton-delete-directory): * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-delete-directory): Use them. * lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes): Implement COUNT. * test/lisp/net/tramp-tests.el (tramp-test14-delete-directory): Do not run trash test for ange-ftp. (tramp-test16-directory-files) (tramp-test19-directory-files-and-attributes): Check COUNT argument. 2020-11-03 Reuben Thomas Factor out some common code in ispell.el * lisp/textmodes/ispell.el (ispell-with-safe-default-directory): Add macro. (ispell-call-process, ispell-call-process-region): Use it. 2020-11-03 Reuben Thomas Simplify ispell-check-version’s use of -vv flag * lisp/textmodes/ispell.el (ispell-check-version): All supported spell checker programs accept -vv, including aspell for many years, so use it. 2020-11-03 Harald Jörg cperl-mode: Fix indentation for Emacs 26 * lisp/progmodes/cperl-mode.el (cperl-mode): Add a fix which is only required for Emacs versions older than 27. * test/lisp/progmodes/cperl-mode-tests.el (cperl-bug30393): Add a test to verify correct indentation (bug#30393). 2020-11-03 Mauro Aranda Fix customizing user options of type face * lisp/cus-edit.el (face): Move the %f escape after the tag, because otherwise customizing a face user option doesn't work: custom-variable-value-create thinks that everything up until the first ":" is part of the tag, and the item widget doesn't know how to handle the %f escape. 2020-11-03 Stefan Kangas Use lexical-binding in some url-*.el files * lisp/url/url-dired.el: * lisp/url/url-ftp.el: * lisp/url/url-irc.el: Use lexical-binding. 2020-11-03 Stefan Kangas Use lexical-binding in solitaire.el * lisp/play/solitaire.el: Use lexical-binding. Remove redundant :group args. 2020-11-03 Stefan Kangas Use lexical-binding in some of emulation/edt*.el * lisp/emulation/edt-vt100.el: * lisp/emulation/edt-pc.el: * lisp/emulation/edt-lk201.el: Use lexical-binding. 2020-11-03 Stefan Kangas Use lexical-binding in pcmpl-rpm.el * lisp/pcmpl-rpm.el: Use lexical-binding. Remove redundant :group args. (pcmpl-rpm-packages): Quote function symbol as such. 2020-11-03 Stefan Kangas Use lexical-binding in pcmpl-cvs.el * lisp/pcmpl-cvs.el: Use lexical-binding. (executable): Remove unnecessary require. (pcmpl-cvs-binary): Remove redundant :group arg. (pcmpl-cvs-tags): Quote function symbol as such. 2020-11-03 Stefan Kangas Fix exiting the finder-commentary buffer * lisp/finder.el (finder-exit): Fix exiting the finder-commentary buffer. (Bug#44384) (finder-buffer): New defconst. (finder-list-keywords): Use above new defconst. 2020-11-03 Harald Jörg cperl-mode: Skip a test for older Emacsen (preparing for ELPA) * test/lisp/progmodes/cperl-mode-tests.el (cperl-bug37127): Skip this test for older Emacsen. The bug has been fixed in Emacs, but outside of CPerl mode, and therefore will not be available for older versions via ELPA. 2020-11-03 Stefan Kangas Improve ert-resource-directory docstring * lisp/emacs-lisp/ert-x.el (ert-resource-directory): Improve docstring. 2020-11-02 Reuben Thomas Fix previous patch to ispell.el * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): with-current-buffer and with-output-to-string need to be the other way around. 2020-11-02 Reuben Thomas Fix previous code change to `ispell--call-enchant-lsmod' * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): Restore the use of with-current-buffer, to avoid enchant-lsmod’s output being dumped into the current buffer. 2020-11-02 Eli Zaretskii Explain last change * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): Explain the workaround with discarding stderr. (Bug#44318) 2020-11-02 Reuben Thomas Make ispell.el ignore warnings from enchant-lsmod (closes #44318) * lisp/textmodes/ispell.el (ispell--call-enchant-lsmod): Don’t capture stderr. Also remove unnecessary with-current-buffer wrapper. 2020-11-02 Mattias Engdegård Add missing argument to directory_files_internal calls * src/kqueue.c (kqueue_compare_dir_list, Fkqueue_add_watch): Pass the new seventh argument. 2020-11-02 Eli Zaretskii Fix a recent change in dired.c * src/dired.c (directory_files_internal): Fix type of integer variables to avoid overflow in 32-bit builds --with-wide-int. 2020-11-02 Eli Zaretskii Improve documentation of a recent commit * lisp/international/mule-cmds.el (transient-input-method): Doc fix. Add :version tag. (transient-input-method): Doc fix. * etc/NEWS: * doc/emacs/mule.texi (Select Input Method): Fix wording of the last change. 2020-11-02 Glenn Morris Merge from origin/emacs-27 4e6104ea0b ; * src/xdisp.c (display_string): Fix a typo in a comment. 7162228815 Improve indexing of check-declare d218b28ab5 ; * lisp/autoinsert.el (auto-insert-alist): Fix texinfo URL. 2020-11-02 Glenn Morris Merge from origin/emacs-27 1fc9de4b81 Improve reproducibility of generated -pkg.el files da6234e2df Make sure pixel sizes are zero when setting window size fo... 2d15296db1 Fix failure of 'emacs --daemon' on Cygwin 8abce5b0c6 CC Mode: Only recognize foo (*bar) as a function pointer w... 85d1d8d768 Fix NEWS entry for fix of Bug#44080 2443b15a91 * src/buffer.c (syms_of_buffer) : Improve doc... # Conflicts: # etc/NEWS 2020-11-02 Michael Albinus Fix some glitches in recent directory-files-* changes * doc/lispref/files.texi (Contents of Directories): Fix description of directory-files, directory-empty-p and directory-files-and-attributes. * etc/NEWS: Fix entry for directory-files-and-attributes. Fix typos. * lisp/dired.el (directory-empty-p): Move function from here ... * lisp/files.el (directory-empty-p): ... to here. * lisp/net/ange-ftp.el (ange-ftp-directory-files): Call `nreverse' later. * lisp/net/tramp.el (tramp-handle-directory-files): * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes): Do not call `nreverse'. * src/dired.c (Fdirectory_files) (Fdirectory_files_and_attributes): Fix docstrings. * test/src/dired-tests.el: Removed. Tests moved to test/lisp/dired-tests.el. * test/lisp/dired-tests.el (dired-test-bug27899): Tag it :unstable. (dired-test-directory-files) (dired-test-directory-files-and-attributes): New tests. 2020-11-02 João Távora Fix Elisp's elisp--documentation-one-liner (bug#43609) To be backward compatible, this function must return nil when there is a symbol at point but no documentation for it. Before this fixed it returned the string ": nil". * lisp/progmodes/elisp-mode.el (elisp--documentation-one-liner): Check callback actually produced non-nil doc. 2020-11-02 Lars Ingebrigtsen Fix mouse-1 on [Show] buttons in the *Help* buffer * lisp/descr-text.el (describe-text-sexp): Add a `follow-link' so that the [Show] buttons work correctly with mouse-1 (bug#44340). 2020-11-02 Yasuhiro KIMURA (tiny change) Recover the contents of the schemas.xml file * etc/schema/schemas.xml: Recover the file, which was apparently (mostly) removed by mistake by commit 165f738382 (bug#42851). 2020-11-02 Mauro Aranda Document that the :match function for a widget takes an external value * doc/misc/widget.texi (Basic Types): Document what an external value is. Document that a :match function expects the value to be in the external format. (Bug#8717) 2020-11-02 Stephen Berman Don't render XML declaration of an HTML document (bug#44348) * lisp/net/eww.el (eww--preprocess-html): Prevent converting the left angle bracket in the sequence " Add directory-empty-p and new argument COUNT for directory-files-* * doc/lispref/files.texi (Contents of Directories): Mention COUNT argument of directory-files. Add directory-empty-p. * etc/NEWS: Mention directory-empty-p and directory-files changes. * lisp/dired.el (directory-empty-p): New defun. * lisp/net/ange-ftp.el (ange-ftp-directory-files) (ange-ftp-directory-files-and-attributes): * lisp/net/tramp.el (tramp-handle-directory-files) (tramp-handle-directory-files-and-attributes): * lisp/net/tramp-adb.el (tramp-adb-handle-directory-files-and-attributes): * lisp/net/tramp-rclone.el (tramp-rclone-handle-directory-files): * lisp/net/tramp-sh.el (tramp-sh-handle-directory-files-and-attributes): * lisp/net/tramp-smb.el (tramp-smb-handle-directory-files): Add new COUNT argument. * src/dired.c (directory_files_internal): Implement new RETURN_COUNT argument. (Fdirectory_files, Fdirectory_files_and_attributes): Add new COUNT argument. * src/lisp.h (directory_files_internal): Add RETURN_COUNT to declaration. * src/sysdep.c (list_system_processes): Add Qnil to directory_files_internal call. * test/src/dired-tests.el (directory-files-and-attributes-tests): New file. 2020-11-02 Lars Ingebrigtsen Partially revert previous define-minor-mode change * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Only document the values we want to support, not the ones we actually support. (define-minor-mode): Partially revert to previous behaviour. 2020-11-01 Stefan Kangas Fix mistake in Lisp conversion of describe-map-tree * lisp/help.el (describe-map-tree): Fix mistake in conversion to Lisp from the C function describe_map_tree; make the condition match the now removed C code. (Bug#44360) 2020-11-01 Juri Linkov Transient input methods bound to 'C-x \' (bug#44266) * lisp/international/mule-cmds.el (ctl-x-map): Bind 'C-x \' to 'transient-input-method'. (input-method-function): New defcustom. (transient-input-method): New command. * doc/emacs/mule.texi (Select Input Method): Document transient-input-method. 2020-11-01 Juri Linkov * lisp/leim/quail/compose.el: New input method (bug#44267). 2020-11-01 Juri Linkov Show nobreak-space face for more blank characters in describe-char. * lisp/descr-text.el (describe-char): Handle more non-ASCII whitespace characters added in f018cffca0098ad1b82c51730a6d6cf146e3c488 (bug#44236) 2020-11-01 Stefan Kangas Improve indexing of check-declare * doc/lispref/functions.texi (Declaring Functions): Improve indexing. 2020-11-01 Stefan Kangas Don't auto-insert "@c file ends here" in .texi files * lisp/autoinsert.el (auto-insert-alist): Don't insert "@c file ends here" at the end of new .texi files. 2020-11-01 Stefan Kangas Don't bind standard-output in substitute-command-keys This fixes a regression with regards to the old C version of substitute-command-keys. * lisp/help.el (substitute-command-keys): Don't bind standard-output. See Bug#39149. * test/lisp/help-tests.el (help-tests--was-in-buffer): New variable. (help-substitute-command-keys/menu-filter-in-correct-buffer): New test. 2020-11-01 Glenn Morris * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Doc typo. 2020-11-01 Mattias Engdegård Add missing side-effect-free and error-free properties Any function that is pure is also side-effect-free and some are also error-free. Right now these have to be declared separately. * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add bool-vector-count-consecutive, bool-vector-count-population, bool-vector-subsetp, copysign, isnan, lax-plist-get, ldexp, memql, regexp-opt and string-to-syntax. (side-effect-and-error-free-fns): Add type-of. * lisp/subr.el (kbd, string-replace): Declare side-effect-free. 2020-11-01 Mattias Engdegård * lisp/emacs-lisp/byte-opt.el (pure-fns): Fix typos. 2020-11-01 Stefan Kangas Insert describe-map-tree header into original buffer * lisp/help.el (describe-map-tree): Insert header into the original buffer, not in standard-output. * test/src/keymap-tests.el (describe-buffer-bindings/header-in-current-buffer) (describe-buffer-bindings/returns-nil): New tests. Ref: https://debbugs.gnu.org/39149#31 2020-11-01 Andrea Corallo Fix 'comp-call-optim pass' for anonymous lambdas * lisp/emacs-lisp/comp.el (comp-call-optim-func): Remove anonymous lambdas gate. (comp-call-optim-form-call): Add the correct missing condition. 2020-11-01 Andrea Corallo * test/src/comp-tests.el (compile-forms): Fix missing lexical binding. 2020-11-01 Andrea Corallo Add some 'cond-rw' pass related tests * test/src/comp-tests.el (comp-tests-cond-rw-checked-function): Declare var. (comp-tests-cond-rw-checker-val): New function. (comp-tests-cond-rw-checker-type): Declare var. (comp-tests-cond-rw-checker-type): New function. (comp-tests-cond-rw-0-var): Declare var. (comp-tests-cond-rw-0, comp-tests-cond-rw-1, comp-tests-cond-rw-2) (comp-tests-cond-rw-3, comp-tests-cond-rw-4) (comp-tests-cond-rw-5): New testcases. 2020-11-01 Andrea Corallo Add new cond-rw pass to have forward propagation track cond branches Add a new pass to rewrite conditional branches. This is introducing and placing a new LIMPLE operator 'assume' in use by fwprop to propagate conditional branch test information on target basic blocks. * lisp/emacs-lisp/comp.el (comp-passes): Add `comp-cond-rw'. (comp-limple-assignments): Add `assume' operator. (comp-emit-assume, comp-cond-rw-target-slot, comp-cond-rw-func) (comp-cond-rw): Add new functions. (comp-fwprop-insn): Update to pattern match `assume' insns. * src/comp.c (emit_limple_insn): Add for `assume'. (syms_of_comp): Define 'Qassume' symbol. 2020-11-01 Lars Ingebrigtsen Make minor mode ARG work as documented * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Clarify when minor modes are switched on/off when called from lisp (bug#44341). (define-minor-mode): Make calls from Lisp switch the mode on/off as documented. 2020-11-01 Andrea Corallo Rework some native compiler test infrastructure * test/src/comp-tests.el (comp-tests-map-checker): New function returning a list holding checker results. (comp-tests-tco-checker, comp-tests-fw-prop-checker-1) (comp-tests-pure-checker-1, comp-tests-pure-checker-2): Make use of `comp-tests-map-checker'. 2020-11-01 Mauro Aranda Fix saving a face setting with Customize * lisp/cus-edit.el (custom-face-save): Make sure we back up into the :shown-value property what the user has edited so far, if we are going to recreate the custom-face widget. (Bug#44331) 2020-11-01 Yasuhiro KIMURA (tiny change) Recover the contents of the schemas.xml file * etc/schema/schemas.xml: Recover the file, which was apparently (mostly) removed by mistake by commit 165f738382 (bug#42851). 2020-11-01 Lars Ingebrigtsen Doc string clarification for cl-some * lisp/emacs-lisp/cl-extra.el (cl-some): Clarify the return value (bug#44330). 2020-11-01 Lars Ingebrigtsen custom-theme-set-variables more resilient against removed libraries * lisp/custom.el (custom-theme-set-variables): Don't bug out on settings that require a library that has been removed (bug#38843). 2020-11-01 Lars Ingebrigtsen Mention non-ASCII C-c LETTER bindings in the lispref manual * doc/lispref/tips.texi (Key Binding Conventions): Mention non-ASCII C-c LETTER (bug#15917). 2020-11-01 Lars Ingebrigtsen Mention the C-c LETTER keybinding convention * doc/emacs/custom.texi (Keymaps): Reintroduce the text about C-c LETTER (bug#15917), and clarify. 2020-11-01 Michael Albinus Trash remote files to local trash (Bug#44216) * doc/misc/tramp.texi (Frequently Asked Questions): Add trashing. * lisp/net/tramp-adb.el (tramp-adb-handle-delete-directory) (tramp-adb-handle-delete-file): * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-delete-directory) (tramp-gvfs-handle-delete-file): * lisp/net/tramp-sh.el (tramp-sh-handle-delete-directory) (tramp-sh-handle-delete-file): * lisp/net/tramp-smb.el (tramp-smb-handle-delete-directory) (tramp-smb-handle-delete-file): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-handle-delete-directory) (tramp-sudoedit-handle-delete-file): Implement local trash. (Bug#44216) * lisp/net/tramp-crypt.el (tramp-crypt-handle-delete-directory) (tramp-crypt-handle-delete-file): Do not trash. * lisp/net/tramp.el (tramp-skeleton-delete-directory): New defmacro. * test/lisp/net/tramp-tests.el (tramp-test07-file-exists-p) (tramp-test14-delete-directory): Add trashing. 2020-11-01 Michael Albinus * etc/NEWS: Add trashing of remote files. Fix typos. 2020-11-01 Lars Ingebrigtsen Fix error message in feedmail * lisp/mail/feedmail.el (feedmail-buffer-to-smtpmail): Remove superfluous %s in insert string 2020-11-01 Lars Ingebrigtsen Fix a segfault in the new svg code * src/image.c (svg_load_image): Don't pass in a NULL for the logical rect, because that will sometimes segfault. 2020-10-31 Juri Linkov New variable integer-output-format to print integers as characters (bug#44155) * doc/lispref/streams.texi (Output Variables): Add integer-output-format. * src/print.c (print_object): In case of Lisp_Int, print integers as characters when Vinteger_output_format is Qt, and in hex format when Vinteger_output_format is 16. (Vinteger_output_format): New variable. * test/src/print-tests.el (print-integer-output-format): New test. 2020-10-31 Mauro Aranda Give the scroll-bar face a non-trivial spec * lisp/faces.el (scroll-bar): Give it a non-trivial spec, so when resetting it to its face-defface-spec, we effectively reset it. (Bug#13476) 2020-10-31 Juri Linkov Improve goto-line in regard to narrowed buffers (bug#44294) * lisp/simple.el (goto-line): Rewrite to first find the position of the line where to go, then later don't widen the buffer when the found position is still inside narrowed part of buffer. * lisp/isearch.el (isearch-message-prefix): Warn about narrowed buffer in case of no more matches found. 2020-10-31 Juri Linkov Reimplement commit 46b3db5579e57b9daf16667914205adc99d3f104 (bug#44294) * lisp/progmodes/etags.el (etags-goto-tag-location): Revert change from commit 46b3db5579e57b9daf16667914205adc99d3f104. (xref-location-marker): Use the same change as was made in elisp-mode.el in commit 46b3db5579e57b9daf16667914205adc99d3f104 to widen before going to the found position. 2020-10-31 Stefan Kangas * test/README: Document TEST_BACKTRACE_LINE_LENGTH. 2020-10-31 Amin Bandali Replace irc.freenode.net with chat.freenode.net chat.freenode.net has been the preferred address for connecting to the freenode IRC network for years now. Replace the occurrences of irc.freenode.net with chat.freenode.net. 2020-10-31 Mattias Engdegård Fix eshell glob modifiers Modified globbing such as *.txt(W) for all world-writable files ending in .txt apparently never worked correctly. * lisp/eshell/em-pred.el (eshell-predicate-alist): Use correct elisp syntax for octal constants. (eshell-pred-file-mode): Return a boolean, not a number. 2020-10-31 Andreas Schwab wdired: fix error handling of set-file-modes * lisp/wdired.el (wdired-perms-to-number): Return decimal number. (wdired-do-perm-changes): Handle error from set-file-modes. (wdired-finish-edit): Remove `rename' from error message. (Bug#44343) 2020-10-31 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-10-31 Eli Zaretskii * etc/HELLO: Enlarge tab-width to account for "tofu". 2020-10-31 Mattias Engdegård 'assoc' is not side-effect-free; constprop its pure subset Since a supplied test function can do anything, assoc is not side-effect-free (bug#44018). However, with only two arguments it is pure and should be optimised accordingly. * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Remove 'assoc'. (byte-optimize-assoc): Constant-propagate through 2-arg assoc calls. * test/lisp/emacs-lisp/bytecomp-tests.el (byte-opt-testsuite-arith-data): Add test cases. 2020-10-31 Eli Zaretskii Improve support for displaying Javanese script * lisp/international/fontset.el (setup-default-fontset) (script-representative-chars): Add Javanese entries. * etc/HELLO: Fix the Javanese text. See https://omniglot.com/language/phrases/javanese.php for the source. 2020-10-31 Stefan Monnier * src/xdisp.c (syms_of_xdisp) <"scroll-minibuffer-conservatively">: New var Fix bug#44070, which causes the minibuffer display to jump upon minor edit (redisplay_window): Obey it. * lisp/simple.el (end-of-buffer): Obey it. * test/src/xdisp-tests.el (xdisp-tests--in-minibuffer): New macro, extracted from `xdisp-tests--minibuffer-resizing`. (xdisp-tests--minibuffer-resizing): Use it. (xdisp-tests--minibuffer-scroll): New test. 2020-10-31 Mattias Engdegård Trim and explain set of safe forms for 'unsafep' (bug#44018) * lisp/emacs-lisp/unsafep.el: Add comment explaining the policy for which forms can be considered 'safe' in the sense of unsafep. Remove ones that didn't make the cut: play-sound-file (large attack surface) catch, throw (alter program flow, inject data) replace-regexp-in-string (execute arbitrary code) error, signal (deceptive messages) * test/lisp/emacs-lisp/unsafep-tests.el (unsafep-tests--unsafe): Add test cases. * etc/NEWS: Announce the change. 2020-10-31 Mattias Engdegård Parse GDB/MI results directly instead of going via JSON (bug#44173) Translating GDB/MI into JSON is an unnecessary and fragile detour that made it hard to deal with octal escapes in strings correctly. Parse GDB/MI directly instead. * lisp/progmodes/gdb-mi.el (gdb-mi-decode-strings): Adjust doc string. (gdb-mi-decode, gud-gdbmi-marker-filter): Remove gdb-mi-decode. (gdb-jsonify-buffer): Remove. (gdb-mi--parse-tuple-or-list, gdb-mi--parse-c-string) (gdb-mi--parse-value, gdb-mi--parse-result-or-value) (gdb-mi--parse-results, gdb-mi--fix-key, gdb-mi--extend-fullname) (gdb-mi--c-string-from-string): New functions. (gdb-json-read-buffer, gdb-json-string, gdb-json-partial-output): Rename to gdb-mi--read-buffer, gdb-mi--from-string and gdb-mi--partial-output respectively. Remove useless FIX-LIST argument. FIX-KEY is now a symbol, not a string. All callers updated. (gdb-tooltip-print, gdbmi-bnf-log-stream-output, gdb-internals) (gdb-console, gdb-done-or-error, gdb-get-source-file-list) (gdb-get-prompt, gdb-get-source-file): Use gdb-mi--c-string-from-string instead of 'read'. * test/lisp/progmodes/gdb-mi-tests.el: New file. 2020-10-31 Eli Zaretskii * etc/HELLO: Add Egyptian Hieroglyphs. 2020-10-31 Eli Zaretskii Support prettified display of fractional numbers * lisp/composite.el (composition-function-table): Define an entry for U+2044 FRACTION SLASH, for prettier display of fractional numbers. 2020-10-31 Michael Albinus Check also for "DragonFly" remote systems in Tramp * lisp/net/tramp-sh.el (tramp-open-connection-setup-interactive-shell): Check also for "DragonFly". 2020-10-31 Eli Zaretskii Speed up ls-lisp This speeds up Dired by 25% in large directories. * lisp/ls-lisp.el (ls-lisp--time-locale): New defvar. (ls-lisp-format-time): calculate the locale for formatting times only once and cache the value in 'ls-lisp--time-locale'. (Bug#44273) 2020-10-31 Eli Zaretskii * doc/lispref/commands.texi (Key Sequence Input): Fix indexing. 2020-10-31 Jared Finder Updating docs with all special window prefix keys. * doc/lispref/commands.texi (Key Sequence Input): Add documentation for missing special window areas. Explicitly call out window or frame. 2020-10-31 Jared Finder Fix unit tests broken by changes to xt-mouse.el * test/lisp/xt-mouse-tests.el (xt-mouse-tracking-basic) (xt-mouse-tracking-utf-8): Update expected escape sequence. 2020-10-31 Eli Zaretskii Revert "Temporarily mark two failing tests" This reverts commit a8426f46726d94cdf21c0e6b3c85c0afe0064784. A proper fix for the test is about to be installed shortly. 2020-10-31 Thien-Thi Nguyen Make hideshow.el work with Mhtml mode Suggested by Ian Williams . * lisp/textmodes/mhtml-mode.el: Require ‘pcase’ when compiling. (mhtml-forward): New func. * lisp/progmodes/hideshow.el (hs-special-modes-alist): Add entry for ‘mhtml-mode’. 2020-10-31 Glenn Morris Improve reproducibility of generated -pkg.el files * lisp/emacs-lisp/package.el (package-generate-description-file): Don't include the full name of the source file in the header, since that varies non-reproducibly according to the build directory. https://bugs.debian.org/972861 Note that elpa.gnu.org's admin/archive-contents.el does this by hand and already only includes the nondirectory part. 2020-10-30 João Távora Shoosh byte-compilation warning in lisp/emacs-lisp/eldoc.el Per bug#43609, elisp-eldoc-documentation-function is again in master, but since it's now officially obsoleted, this backward compatibility shim in eldoc--eval-expression-setup shouldn't unnecessarily trigger warnings in master's code. * lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): Shoosh by-compilation warning. 2020-10-30 João Távora Don't make ElDoc doc buffer visible in buffer list by default (Bug#44334) * lisp/emacs-lisp/eldoc.el (eldoc-doc-buffer): No longer take INTERACTIVE arg. Show buffer if invisible. (eldoc--format-doc-buffer): Don't change buffer visibility. (eldoc-display-in-buffer): Show buffer if invisible if by calling eldoc-doc-buffer. 2020-10-30 João Távora Bring back elisp-eldoc-documentation-function, marked obsolete (Bug#43609) It's not useful for ElDoc's eldoc-mode mechanism in Elisp, and nothing in Emacs uses it, but it wasn't strictly marked internal, so it's best to bring it back. * lisp/progmodes/elisp-mode.el (elisp--documentation-one-liner): New helper. (elisp-eldoc-documentation-function): New function, with obsoletion warning. 2020-10-30 Stefan Monnier * lisp/simple.el (blink-matching-open): Fix bug#37127 Don't call `syntax-propertize` from within narrowing * lisp/progmodes/cperl-mode.el (cperl-forward-re): Revert last patch, since it is now redundant. * test/lisp/progmodes/cperl-mode-tests.el (cperl-bug37127): Remove unused var; fix test so it really catches the previous bug; tweak the code to use mode-agnostic commands so it also works in `perl-mode`. 2020-10-30 Michael Albinus Fix Bug#44289 * lisp/files.el (directory-listing-before-filename-regexp): Support DD-MMM-YYYY format. (Bug#44289) 2020-10-30 Lars Ingebrigtsen Tweak previous python-mode region fix * lisp/progmodes/python.el (python-shell-buffer-substring): Tweak the previous fix for bug#39398 to behave somewhat more like it used to. 2020-10-30 Lars Ingebrigtsen Revert "Adjust python tests after fix for bug#39398" This reverts commit c6fb23873a594b6a4fc57fa107869a2e82159d07. The code is tweaked to be more backwards-compatible. 2020-10-30 Lars Ingebrigtsen Fix copying symbolic links in eshell * lisp/eshell/em-unix.el (eshell-shuffle-files): Don't bug out when copying symbolic links (bug#38577). 2020-10-30 Dima Kogan Add a new command to regenerate a hunk in diff-mode * lisp/vc/diff-mode.el (diff-refresh-hunk): New function (bug#44312). (diff-mode-map): Bind C-c C-l. 2020-10-30 Lars Ingebrigtsen Fix fontifying of ::= in Makefiles * lisp/progmodes/make-mode.el (makefile-match-dependency): Don't fontify the POSIX immediate assignment operator ::= as a dependency (bug#44319). 2020-10-30 Harald Jörg Suppress a misleading message when closing a paren in a regex * lisp/progmodes/cperl-mode.el (cperl-forward-re): Suppress an error message about "End of string/RE not found" when we are at the end of a narrowed buffer where the end of a RE is temporarily unavailable (Bug#37127). * test/lisp/progmodes/cperl-mode-tests.el (cperl-bug37127): Add a test to verify that the message is suppressed when inappropriate, but appears when the RE *is* incomplete. 2020-10-30 Stefan Kangas Clarify point position after text-property-search * lisp/emacs-lisp/text-property-search.el (text-property-search-forward, text-property-search-backward): Doc fix to clarify placement of point after search. * test/lisp/emacs-lisp/text-property-search-tests.el (text-property-search--pos-test): New defun. (text-property-search-forward-point-at-beginning) (text-property-search-backward-point-at-end): New test. 2020-10-30 Lars Ingebrigtsen Tweak the gdb-mi error message * lisp/progmodes/gdb-mi.el (gdb--check-interpreter): Make the error message less misleading (bug#40279). 2020-10-30 Neil Roberts Use nobreak-space on all non-ASCII whitespace characters * doc/emacs/display.texi (Text Display): Document it. * src/xdisp.c (get_next_display_element): Use blankp to test whether to use the nobreak_space face (bug#44236). 2020-10-30 Lars Ingebrigtsen Make list-timers do sub-second times * lisp/emacs-lisp/timer-list.el (list-timers): Do sub-second times (bug#39956). 2020-10-30 Lars Ingebrigtsen `format-time' can now do sub-second times * doc/lispref/os.texi (Time Parsing): Document it. * lisp/calendar/time-date.el (format-seconds): Allow formatting sub-second times. 2020-10-30 Stefan Kangas Add shortdoc navigation commands * lisp/emacs-lisp/shortdoc.el (text-property-search): Require. (shortdoc-mode): New major mode. (shortdoc-mode-map): New variable. (shortdoc--goto-section): New macro. (shortdoc-next, shortdoc-previous, shortdoc-next-section) (shortdoc-previous-section): New commands. (shortdoc-display-group): Use new shortdoc-models. Propertize section header. (shortdoc--display-function): Propertize function header. 2020-10-30 Hugh Daschbach * test/lisp/net/dbus-tests.el (dbus-test09-get-managed-objects): Expand test. 2020-10-30 Stefan Monnier * lisp/mail/binhex.el (binhex-char-int): Add missing release 2020-10-30 Basil L. Contovounesios Remove Debbugs 'thanks' from submit-emacs-patch * lisp/mail/emacsbug.el (submit-emacs-patch): Remove unneeded 'thanks' following Debbugs pseudo-header, which leaves other pseudo-headers entered by the user unprocessed (bug#44322). 2020-10-30 Basil L. Contovounesios Modify only local send hook in submit-emacs-patch * lisp/mail/emacsbug.el (submit-emacs-patch): Don't modify global message-send-hook. 2020-10-29 Noah Friedman Make sure pixel sizes are zero when setting window size for ptys. * sysdep.c (set_window_size): Initialize data to zero to avoid passing any garbage from the stack to ioctl. 2020-10-29 Harald Jörg cperl-mode: Make timeout test more robust * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-test-bug-10483): Increase the timeout to 2 seconds and mark the test as expensive. Also, suppress it for Emacs versions below 28, where the test times out though the function works in manual tests. (Bug#44317) 2020-10-29 Basil L. Contovounesios Simplify some bibtex.el variable definitions * lisp/textmodes/bibtex.el (bibtex-include-OPTkey) (bibtex-user-optional-fields, bibtex-BibTeX-entry-alist) (bibtex-biblatex-entry-alist, bibtex-generate-url-list): Use :risky tag instead of risky-local-variable property. (bibtex-entry-format, bibtex-maintain-sorted-entries) (bibtex-sort-entry-class, bibtex-dialect) (bibtex-autokey-name-case-convert-function): Use :safe tag instead of safe-local-variable property. (bibtex-autokey-name-case-convert-function): Let custom function default to 'identity', not 'ignore'. (bibtex-strings, bibtex-reference-keys): Define with defvar-local instead of defvar+make-variable-buffer-local. 2020-10-29 Stefan Kangas * lisp/reposition.el: Use lexical-binding. 2020-10-29 Stefan Monnier * lisp/progmodes/tcl.el: Better match Tcl string formation rules (bug#39277) (tcl--word-delimiters): New const. (tcl--syntax-of-quote): New function. (tcl-syntax-propertize-function): Use them. (tcl-mode): Enable `syntax-propertize-multiline`. * test/manual/indent/tcl.tcl: New file. 2020-10-29 Michael Albinus Handle several children of PATH in dbus-managed-objects-handler * lisp/net/dbus.el (dbus-managed-objects-handler): Handle several children of PATH. (Bug#44298) * src/dbusbind.c (xd_signature, xd_append_arg): Check object path. * test/lisp/net/dbus-tests.el (dbus-test09-get-managed-objects): Tag it :expensive-test. Remove superfluous check. 2020-10-29 Stefan Kangas Fix CUA Mode menu entry to be less confusing Note that the old text was incorrect; shift-selection is controlled by the variable shift-select-mode. * lisp/menu-bar.el (menu-bar-options-menu): Make CUA Mode menu entry less confusing when cua-enable-cua-keys is nil. (Bug#43322) 2020-10-29 Ken Brown Fix failure of 'emacs --daemon' on Cygwin * src/emacs.c (DAEMON_MUST_EXEC): Define unconditionally on Cygwin, not just if HAVE_NTGUI is defined. This fixes the failure of 'emacs --daemon' to start on the non-w32 Cygwin builds. (Bug#44285) 2020-10-29 Lars Ingebrigtsen Tweak previous article-treat-ansi-sequences fix * lisp/gnus/gnus-art.el (article-treat-ansi-sequences): Redo the previous fix to avoid a compilation warning (bug#44299). 2020-10-29 Hugh Daschbach * test/lisp/net/dbus-tests.el (dbus-test09-get-managed-objects): New test. 2020-10-29 Andreas Schwab Don't spill ansi-color across parts in articles * lisp/gnus/gnus-art.el (article-treat-ansi-sequences): Reset ansi-color-context-region. (Bug#44299) 2020-10-29 Juri Linkov * lisp/bindings.el (narrow-map): Bind C-x n g to goto-line-relative (bug#9917) 2020-10-29 Juri Linkov Widen buffer before going to point found by xref-find-definitions (bug#44294) * lisp/progmodes/elisp-mode.el (xref-location-marker): Widen before going to the found position. * lisp/progmodes/etags.el (etags-goto-tag-location): Rerun after removing narrowing. * lisp/simple.el (goto-line-read-args): Use buffer-narrowed-p. 2020-10-28 Stefan Kangas Run substitute-command-keys on shortdoc section headings * lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Run substitute-command-keys on section headings before displaying. 2020-10-28 Stefan Kangas Extend the regexp shortdoc group * lisp/emacs-lisp/shortdoc.el (regexp): New section "Match Data"; add save-match-data. New section "The `rx' Structured Regexp Notation". 2020-10-28 Lars Ingebrigtsen Document all parameters on `indent-relative' * doc/lispref/text.texi (Relative Indent): Mention the FIRST-ONLY parameter (bug#39330). 2020-10-28 Lars Ingebrigtsen Disable mml-sec-tests on MacOS * test/lisp/gnus/mml-sec-tests.el (test-conf): Disable tests on MacOS (bug#44259). 2020-10-28 Alan Mackenzie CC Mode: Only recognize foo (*bar) as a function pointer when followed by ( * lisp/progmodes/cc-engine.el (c-forward-over-decl-or-cast-1): (after CASE 2) test variables got-suffix-after-parens and at-decl-end before invoking c-fdoc-shift-type-backward. 2020-10-28 Lars Ingebrigtsen Display times in a more human-readable way in list-timers * lisp/emacs-lisp/timer-list.el (list-timers): Format the intervals in a more human-readable way (bug#39956). 2020-10-28 Stefan Kangas * lisp/net/hmac-def.el: Use lexical-binding. 2020-10-28 Lars Ingebrigtsen Adjust python tests after fix for bug#39398 2020-10-28 Stefan Kangas * lisp/net/eudc-vars.el: Use lexical-binding. 2020-10-28 Stefan Kangas Use lexical-binding in netrc.el and add tests * lisp/net/netrc.el: Use lexical-binding. (netrc-file): Remove redundant :group arg. * test/lisp/net/netrc-resources/authinfo: * test/lisp/net/netrc-resources/services: * test/lisp/net/netrc-tests.el: New files. 2020-10-28 Stefan Kangas Warn against using the MD4 hash function * lisp/md4.el (md4): Warn against using it, since its security is non-existent and it has been declared obsolete. It should probably only be used by our NTLM support. Point users to secure-hash instead. 2020-10-28 Dmitry Gutov css--complete-property-value: Limit the backward search * lisp/textmodes/css-mode.el (css--complete-property-value): Don't search back when ppss-innermost-start is nil (bug#44214). 2020-10-28 Stefan Kangas Remove Emacs 20 compat code from ede/files.el * lisp/cedet/ede/files.el (ede--put-inode-dir-hash) (ede--get-inode-dir-hash, ede-project-directory-remove-hash) (ede--directory-project-from-hash) (ede--directory-project-add-description-to-hash): Remove Emacs 20 compat code. 2020-10-28 Stefan Kangas Remove some compat code from feedmail.el * lisp/mail/feedmail.el (feedmail-message-action-help-blat) (feedmail-run-the-queue, feedmail-queue-send-edit-prompt-inner) (feedmail-send-it-immediately): Remove compat code for XEmacs, Emacs 19 and 20. 2020-10-27 Stefan Kangas Remove some Emacs 20 compat code from speedbar.el * lisp/speedbar.el (speedbar-easymenu-definition-trailer): Remove Emacs 20 compat code. 2020-10-27 Lars Ingebrigtsen Tweak how `C-c C-r' computes the region in python-mode * lisp/progmodes/python.el (python-shell-buffer-substring): Don't extend the region to the start of the line (bug#39398), but allow sending the actual region as marked. 2020-10-27 Lars Ingebrigtsen Make gnus-output-to-rmail appending work better * lisp/gnus/gnus-util.el (gnus-output-to-rmail): Ensure we have a blank line before the next line when using mbox format (bug#39580). 2020-10-27 Lars Ingebrigtsen Fix intermittent rmail-summary-delete-forward problem * lisp/mail/rmailsum.el (rmail-summary-delete-forward): `rmail-delete-message' may apparently clear `rmail-current-message' sometimes, so save the message number before deleting (bug#39612). 2020-10-27 Mattias Engdegård gdb-mi: use lexical lambdas * lisp/progmodes/gdb-mi.el (gdb-tooltip-print-1, gud-watch) (gdb-var-list-children, gdb-edit-value) (gdb-bind-function-to-buffer, gdb-place-breakpoints) (gdb-preempt-existing-or-display-buffer): Expose lambdas to the compiler as lexical closures instead of building them the old-fashioned way. Remove #' before lambda. 2020-10-27 Mattias Engdegård Remove unused function in gdb-mi.el * lisp/progmodes/gdb-mi.el (gdb-var-evaluate-expression-handler): Remove. (It was left behind in an old code reorganisation.) 2020-10-27 Lars Ingebrigtsen Revert "Fontify strings in {} better in tcl-mode" This reverts commit 7f32224dc324b0ee0f1b512c8d8b19aeb80141c1. The changes led to things like proc foo5 () { return 6 } being fontified as a string, which is wrong. 2020-10-27 Mauro Aranda Small fix to the new link for inherited faces in Customize * lisp/cus-edit.el (cus--face-link): Link to the current value of the widget, rather than to the widget's value upon creation (bug#44154). 2020-10-27 Clemens Radermacher Fix NEWS entry for fix of Bug#44080 2020-10-27 Eli Zaretskii * src/buffer.c (syms_of_buffer) : Improve doc string. 2020-10-27 Mattias Engdegård gdb-mi: Don't use bindat for field access Replace uses of bindat-get-field with a simpler accessor, since nothing here uses the bindat machinery in any way. * lisp/progmodes/gdb-mi.el (gdb-mi--field): New. (gdb-get-many-fields): Remove. (gdb-var-create-handler, gdb-var-list-children-handler) (gdb-var-update-handler, gdb-current-buffer-frame) (gdb-update-gud-running, gdb-thread-exited, gdb-thread-selected) (gdb-running, gdb-stopped, gdb-breakpoints-list-handler-custom) (gdb-place-breakpoints, gdb-thread-list-handler-custom) (def-gdb-thread-buffer-simple-command, gdb-select-thread) (def-gdb-thread-buffer-gud-command, gdb-read-memory-custom) (gdb-invalidate-disassembly, gdb-disassembly-handler-custom) (gdb-disassembly-place-breakpoints, gdb-toggle-breakpoint) (gdb-delete-breakpoint, gdb-goto-breakpoint, gdb-frame-location) (gdb-stack-list-frames-custom, gdb-select-frame) (gdb-edit-locals-value, gdb-locals-handler-custom) (gdb-registers-handler-custom, gdb-changed-registers-handler) (gdb-register-names-handler, gdb-frame-handler): Use gdb-mi--field. 2020-10-27 Glenn Morris Temporarily mark two failing tests * test/lisp/xt-mouse-tests.el (xt-mouse-tracking-basic) (xt-mouse-tracking-utf-8): Currently failing. 2020-10-27 Glenn Morris Merge from origin/emacs-27 e0de9f3295 (origin/emacs-27) Don't skip empty lines when fitting mini... a4ec03fa9b ; * etc/tutorials/TUTORIAL.de: Fix grammar (Bug#44246) 20c02e628c Improve documentation of display-fill-column-indicator e2005f1f2a * INSTALL: Mention efaq.texi for installation of intlfonts. 71661b2872 Use WebKit sandboxing # Conflicts: # etc/NEWS 2020-10-27 Glenn Morris Merge from origin/emacs-27 c847d5998f Merge branch 'emacs-27' of git.sv.gnu.org:/srv/git/emacs i... 2020-10-27 Glenn Morris Merge from origin/emacs-27 8b87ea6844 Recommend lexical-binding in Coding Conventions e29cace60a Avoid rare crashes while producing line numbers 2020-10-27 Simen Heggestøyl Complete property values in multi-line CSS declarations * lisp/textmodes/css-mode.el (css--complete-property-value): Complete property values even when preceded by a newline (bug#44214). 2020-10-27 Lars Ingebrigtsen Fix history problem in `M-x shell' when started twice * lisp/comint.el (comint-input-ring-file-name): Avoid having this variable being killed on mode restart while the other ring variables aren't (bug#39667). This would mean that `M-x shell'/`C-d'/`M-x shell' didn't save commands entered after the second `M-x shell'. 2020-10-27 Mattias Engdegård ERT: escape control characters in pretty-printed error output * lisp/emacs-lisp/ert.el (ert--pp-with-indentation-and-newline): Escape control characters which would otherwise be blasted directly to the terminal (when running noninteractively) with unpleasant results. 2020-10-27 Mattias Engdegård Fix sunrise and sunset calculation (bug#44237) * lisp/calendar/solar.el (solar-moment): Use initial values for binary search that won't end the loop prematurely and yield incorrect answers. * test/lisp/calendar/solar-tests.el: New file. 2020-10-27 Mattias Engdegård Don't rely on bignums in ntlm.el Since ntlm.el is distributed as a separate package in GNU ELPA and should be able to run on older Emacs versions without bignums, we cannot make use of them here. See discussion at https://lists.gnu.org/archive/html/emacs-devel/2020-10/msg01665.html. Instead, we add a small poor man's bignum implementation. * lisp/net/ntlm.el (ntlm--bignat-of-int, ntlm--bignat-add) (ntlm--bignat-shift-left, ntlm--bignat-mul-byte, ntlm--bignat-mul) (ntlm--bignat-of-string, ntlm--bignat-of-digits) (ntlm--bignat-to-int64): New. (ntlm--time-to-timestamp): Use the ntlm--bignat- functions instead of Lisp integers. * test/lisp/net/ntlm-tests.el: New file. 2020-10-27 Lars Ingebrigtsen Make edit-abbrevs parsing less brittle * lisp/abbrev.el (define-abbrevs): Make the parsing less brittle -- allow more blank lines (bug#42611). 2020-10-27 Stefan Kangas * lisp/net/sieve-mode.el: Use lexical-binding. 2020-10-27 Lars Ingebrigtsen Add a link to inherited faces in Customize * lisp/cus-edit.el (cus--face-link): New function (bug#44154). (face): Use the function to format the link. 2020-10-27 Lars Ingebrigtsen Don't do compilation-transform-file-match-alist if there's no file name * lisp/progmodes/compile.el (compilation-error-properties): There may not be a file name (bug#40111). In that case, don't do the `compilation-transform-file-match-alist' thing. 2020-10-27 Clemens Radermacher Don't skip empty lines when fitting mini frame to buffer (Bug#44080) * lisp/window.el (fit-mini-frame-to-buffer, window--resize-mini-frame, fit-frame-to-buffer, fit-frame-to-buffer-1): By default, fit a mini frame without skipping its buffer's leading or trailing empty lines. * src/frame.c (resize-mini-frames): Update doc-string. * lisp/cus-start.el (resize-mini-frames): Update for customize. * doc/lispref/minibuf.texi (resize-mini-frames): Update description. 2020-10-27 Paul Pogonyshev Don't leak result of nested byte-compilation to outer level * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Bind `byte-compiler-error-flag' instead of setting it (bug#41065). This fixes a problem of "leaking" the flag when compiling something that then compiles something that errors out (i.e., an "inner" compile). 2020-10-27 mvar (tiny change) Fontify strings in {} better in tcl-mode * lisp/progmodes/tcl.el (tcl-syntax-propertize-function): Propertize {} forms after commands as strings (bug#39277). (tcl-set-font-lock-keywords): Fontify as strings. This allows things like puts {"foo} to be fontified correctly. 2020-10-27 Lars Ingebrigtsen `g' in *Help* doesn't require confirmation * lisp/help-mode.el (help-mode-revert-buffer): Don't require confirmation before reverting (bug#44202). This mimics how most other non-file reverting functions work. 2020-10-27 Nicolas Graner Define backtab in text fields in eww * lisp/net/eww.el (eww-text-map): (eww-textarea-map): Define backtab, as in the main mode map (bug#44247). 2020-10-27 Stefan Kangas * lisp/mail/mail-prsvr.el: Use lexical-binding. * lisp/mail/mail-parse.el: Use lexical-binding. 2020-10-27 Stefan Kangas Allow pcomplete/gzip to complete on files in subdirectories * lisp/pcmpl-gnu.el (pcmpl-gnu-zipped-files): Allow "gzip" to complete on files in subdirectories. (Bug#30271) 2020-10-27 Boruch Baum Add some missing docstrings in cua-rect.el * lisp/emulation/cua-rect.el (cua--rectangle) (cua--last-rectangle, cua--restored-rectangle) (cua--rectangle-overlays, cua--rectangle-operation) (cua--tabify-start, cua--tabify-start, cua--insert-rectangle): Add docstrings, in several cases by converting existing comments. (Bug#30085) (cua--last-killed-rectangle): Update comment. 2020-10-27 Stefan Kangas Use lexical-binding in tool-bar.el * lisp/tool-bar.el: Use lexical-binding. (tool-bar-add-item, tool-bar-add-item-from-menu): Quote function symbols as such. 2020-10-27 Stefan Kangas Don't use obsolete variable write-contents-hooks * lisp/mh-e/mh-show.el (mh-display-msg): * lisp/textmodes/rst.el: Don't use obsolete variable write-contents-hooks. Problem reported by Stefan Monnier . 2020-10-27 Stefan Kangas Remove XEmacs compat code from hashcash.el * lisp/mail/hashcash.el (hashcash-point-at-bol) (hashcash-point-at-eol): Make obsolete. (hashcash-token-substring): Don't use the above now obsolete aliases. 2020-10-26 Stephen Berman Fix an unbound variable in html skeletons * lisp/skeleton.el (skeleton-internal-list): Fix an unbound variable in html skeletons (bug#44157). 2020-10-26 Dmitry Gutov vc-git-root: Remove unnecessary caching * lisp/vc/vc-git.el (vc-git-root): Simplify (bug#42966). 2020-10-26 Lars Ingebrigtsen Make vc-responsible-backend choose the most specific backend * lisp/vc/vc.el (vc-responsible-backend): Search through all the VC backends instead of the first one, and choose the one that's most specific (bug#42966). 2020-10-26 Lars Ingebrigtsen Fix time-test error on machines with mail * test/lisp/time-tests.el (time-tests-display-time-update): There may be mail on the machine (bug#44241). 2020-10-26 Lars Ingebrigtsen Make the -modes variable autoloaded * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Make the -modes variable be autoloaded. 2020-10-26 Lars Ingebrigtsen Tweak where global-display-fill-column-indicator-modes is on * lisp/display-fill-column-indicator.el (global-display-fill-column-indicator-mode): Don't switch on in special-mode buffers (bug#44232). 2020-10-26 Lars Ingebrigtsen Implement a :predicate parameter for globalized minor modes * doc/lispref/modes.texi (Defining Minor Modes): Describe the new :predicate keyword (bug#44232). * lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Allow a new :predicate keyword. (easy-mmode--globalized-predicate-p): New function. 2020-10-26 Lars Ingebrigtsen Make delete-selection-helper more resilient * lisp/delsel.el (delete-selection-helper): Don't bug out on `C-g' (bug#40357). 2020-10-26 Lars Ingebrigtsen Tweak how shortdocs are displayed * lisp/emacs-lisp/shortdoc.el (shortdoc-example): Removed. (shortdoc-section): Remove colors. (shortdoc-separator): New face. (shortdoc-display-group, shortdoc--display-function): Don't use background colours, because that makes things harder to read. Separate with a horizontal line instead. 2020-10-26 Andrea Corallo Make native compiler tollerant to redefined primitives (bug#44221). * lisp/emacs-lisp/comp.el (comp-emit-set-call-subr): Rework based on the fact that the subr can now be redefined. * test/src/comp-tests.el (primitive-redefine-compile-44221): New testcase. 2020-10-26 Eli Zaretskii Avoid segfaults due to using fonts that were closed * src/composite.c (composition_gstring_cache_clear_font): New function. * src/composite.h (composition_gstring_cache_clear_font): Add prototype. * src/font.c (font_clear_cache): When we are about to close a font, remove from the gstring cache any lgstring that uses this font. (Bug#42943) 2020-10-26 Mattias Engdegård Revert "Don't consider play-sound-file to be a 'safe' function (bug#44018)" This reverts commit cdb3c9d662c772ce25ea4d803eccd2c9e6a6ae99. 2020-10-26 Eli Zaretskii Improve documentation of display-fill-column-indicator * lisp/display-fill-column-indicator.el (display-fill-column-indicator-mode): Mention the globalized version in the doc string. * doc/emacs/display.texi (Displaying Boundaries): Improve and clarify the documentation of display-fill-column-indicator. Suggest using the minor mode as the primary means for turning the feature on. * src/xdisp.c (syms_of_xdisp) : Doc fix. (Bug#44226) 2020-10-26 Mattias Engdegård Don't consider play-sound-file to be a 'safe' function (bug#44018) While there are currently no known security holes in play-sound-file, the attack surface is considerable and historically audio file processing has had more than its share of security problems; the benefit to risk ratio is low. * lisp/emacs-lisp/unsafep.el: Don't mark play-sound-file as safe. 2020-10-25 Andrea Corallo Fix defsubst effectiveness (bug#44209) * lisp/emacs-lisp/byte-run.el (defsubst): Fix macro definition. * test/src/comp-tests.el (comp-test-defsubst): New testcase. * test/src/comp-test-funcs.el (comp-test-defsubst-f): New function. 2020-10-25 Andrea Corallo Fix a function for native compilation in cc-bytecomp.el * lisp/progmodes/cc-bytecomp.el (cc-bytecomp-compiling-or-loading): Update for native compilation. 2020-10-25 Stefan Kangas Add section "Replacing Match" to the regexp shortdoc group * lisp/emacs-lisp/shortdoc.el (regexp): New section "Replacing Match". 2020-10-25 Stefan Kangas Remove some Emacs 19 compat code and references * lisp/progmodes/sql.el: * lisp/mh-e/mh-show.el (mh-display-msg): Remove Emacs 19 compat code. * lisp/emacs-lisp/edebug.el (edebug-mark-marker): Make into obsolete alias for mark-marker. (edebug--display-1, edebug-bounce-point) (edebug-outside-excursion): Adjust callers. * lisp/net/snmp-mode.el: * lisp/forms.el: Remove references to Emacs 19. (forms-use-text-properties): Doc fix. 2020-10-25 Eli Zaretskii Improve support for shaping Egyptian Hieroglyphs * src/composite.c (composition_gstring_lookup_cache): Renamed from gstring_lookup_cache and made external. All callers changed. * src/composite.h (composition_gstring_lookup_cache): Add prototype. * src/font.c (Ffont_shape_gstring): Call composition_gstring_lookup_cache and return the cached composition if it is already in the cache. * lisp/language/misc-lang.el (egyptian-shape-grouping): New function. (composition-function-table): Use egyptian-shape-grouping in setting up compositions for Egyptian Hieroglyphs. Fix the composition setup for horizontal and vertical joiners. 2020-10-25 Andrea Corallo Fix ELC+ELN vs ELC prefix while building non AoT native compiled files * lisp/Makefile.in (am__v_ELC_0): Set it correctly when NATIVE_DISABLED is 1. 2020-10-25 Mattias Engdegård Better file name in dynvars-check example * doc/lispref/variables.texi (Converting to Lexical Binding): Don't suggest an aggregate file name that matches the glob used when generating it. 2020-10-25 Andrea Corallo Report warnings and errors from native asynchronous compilation (bug#44168) * lisp/emacs-lisp/comp.el (comp-last-scanned-async-output): New buffer local variable. (comp-accept-and-process-async-output): New function. (comp-run-async-workers): Use `comp-accept-and-process-async-output'. 2020-10-25 Lars Ingebrigtsen Fix syntax error in message-add-openpgp-header * lisp/gnus/message.el (message-add-openpgp-header): Remove redundant (and syntactically wrong) check. 2020-10-25 Lars Ingebrigtsen Fix problem when replacing the final char in checkdoc * lisp/emacs-lisp/checkdoc.el (checkdoc-autofix-ask-replace): Ensure that the end-of-doc-string marker is really at the end, even if we replace the final " char in the string (bug#44201). 2020-10-25 Michael Albinus * INSTALL: Mention efaq.texi for installation of intlfonts. 2020-10-25 Andrea Corallo Fix `comp-dry-run' effectiveness * lisp/emacs-lisp/comp.el (comp-compile-ctxt-to-file): Remove `comp-dry-run' guard. (comp-final): And move it here so is effective for interactive sessions and non. 2020-10-25 Philipp Stephani Revert commit 1f44a776729adf9c6468a76f8310616fde62eeaa for XRef. XRef supports Emacs versions back to Emacs 26.3, so it can’t use newer functions such as ‘ert-resource-directory’. * test/lisp/progmodes/xref-tests.el (xref-tests-data-dir): Don’t use ‘ert-resource-directory’ 2020-10-25 Philipp Stephani Revert commit 1f44a776729adf9c6468a76f8310616fde62eeaa for Flymake. Flymake supports all Emacs versions back to 26.1, so it can’t use ‘ert-resource-file’. * test/lisp/progmodes/flymake-tests.el (flymake-tests-data-directory): Recreate. (flymake-tests--call-with-fixture): Stop using ‘ert-resource-file’. 2020-10-25 Paul Eggert (tiny change) Qiantan Hong Use WebKit sandboxing * src/xwidget.c (Fmake_xwidget): Enable sandboxing if WebKit 2.26 or later. Do this early, as required for sandboxing (Bug#43071). 2020-10-25 Stefan Kangas Add shortdoc group for alist * lisp/emacs-lisp/shortdoc.el (alist): New shortdoc group. 2020-10-25 Stefan Kangas Add shortdoc group for hash-table * lisp/emacs-lisp/shortdoc.el (hash-table): New shortdoc group. 2020-10-24 Paul Eggert Minor doprnt cleanup: remove memchr call * src/doprnt.c (doprnt): Remove unnecessary call to memchr. 2020-10-24 Paul Eggert Rename doprnt_nul to doprnt_non_null_end * src/doprnt.c (doprnt_non_null_end): Rename from doprnt_nul, as the old name was misleading (left over from a previous proposal). Caller changed. 2020-10-24 Paul Eggert Improve doprnt performance This patch implements some of my suggestions in Bug#8545, with further changes suggested by Eli Zaretskii (Bug#43439). * src/doprnt.c: Improve comments. (SIZE_BOUND_EXTRA): Now at top level, for parse_format_integer. (parse_format_integer): New static function, containing some of the old doprnt. Fix a bug that caused doprnt to infloop on formats like "%10s" that Emacs does not use. We could simplify doprnt further if we dropped support for these never-used formats. (doprnt_nul): New function. (doprnt): Use it. Change doprnt API to exit when either it finds NUL or reaches the character specified by FORMAT_END. In the typical case where FORMAT_END is null, take just one pass over FORMAT, not two. Assume C99 to make code clearer. Do not use malloc or alloca to allocate a copy of the format FMTCPY; instead, use a small fixed-size array FMTSTAR, and use '*' in that array to represent width and precision, passing them as separate int arguments. Use eassume to pacify GCC in switch statements. 2020-10-24 Mauro Aranda Warn about a bad default value in restricted-sexp widget * lisp/wid-edit.el (restricted-sexp widget): New :value-to-external function. If value is not in the internal format, then we might be dealing with a bad default value for the widget, so display a warning about that (bug#25152). 2020-10-24 João Távora Rework semantics of eldoc-echo-are-use-multiline-p Per bug#43543. Now uses logical lines, not visual lines. * lisp/emacs-lisp/eldoc.el (eldoc-echo-area-use-multiline-p): Rework semantics. (eldoc--echo-area-substring): New helper. (eldoc--echo-area-prefer-doc-buffer-p): New helper. (eldoc-display-in-echo-area): Rework using new helpers. 2020-10-24 João Távora Rename ElDoc user option controlling display of truncation notice The new name makes it consistent with other variables controlling the display of ElDoc documentation in the echo area. Per bug#43543. * etc/NEWS (Eldoc): Rename eldoc-display-truncation-message to eldoc-echo-area-display-truncation-message. * lisp/emacs-lisp/eldoc.el (eldoc-echo-area-display-truncation-message): Rename from eldoc-display-truncation-message. (eldoc-display-in-echo-area): Use new variable name. 2020-10-24 João Távora Rework eldoc-echo-area-prefer-doc-buffer (bug#42532) * lisp/emacs-lisp/eldoc.el: (eldoc-echo-area-prefer-doc-buffer): Rename from eldoc-echo-area-prefer-doc-buffer (eldoc-display-in-echo-area): Rework to honour eldoc-echo-area-prefer-doc-buffer. 2020-10-24 João Távora Introduce eldoc-display-functions See bug#43609. * lisp/emacs-lisp/eldoc.el (eldoc--request-state): Add comment. (eldoc--last-request-state): No longer buffer-local. (eldoc--request-docs-p): Delete. (eldoc-display-functions): New user variable. (eldoc--doc-buffer-docs): New variable. (eldoc-display-message-p): Rework. (eldoc--format-doc-buffer): Rework from eldoc--handle-docs. (eldoc-display-in-echo-area, eldoc-display-in-buffer): New user-visible function. (eldoc--invoke-strategy): Take INTERACTIVE arg. Invoke eldoc-display-in-buffer (eldoc-print-current-symbol-info): Simplify. (Version): Bump to 1.11.0 * etc/NEWS: Mention eldoc-display-functions. 2020-10-24 Stefan Kangas Re-introduce variable for world clock timer * lisp/time.el (world-clock--timer): New variable. (world-clock): Save timer to above variable when it is started. (world-clock-cancel-timer): Delete timer saved in variable instead of searching for the function name. 2020-10-24 Stefan Kangas Use lexical-binding in several language support libraries * lisp/language/burmese.el: * lisp/language/cham.el: * lisp/language/czech.el: * lisp/language/georgian.el: * lisp/language/greek.el: * lisp/language/khmer.el: * lisp/language/romanian.el: * lisp/language/sinhala.el: * lisp/language/slovak.el: * lisp/language/tai-viet.el: * lisp/language/vietnamese.el: Use lexical-binding. 2020-10-24 Michael Albinus Accept nil COMMAND in tramp-sh-handle-make-process (Bug#44151) * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Accept nil COMMAND. (Bug#44151) * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process): Extend test. 2020-10-24 Stefan Kangas Revert "Use lexical-binding in bindat.el" This reverts commit a497b8e4a41e3223089654da4b36d0fdd51ce555. This conversion to lexical-binding broke the eval specification, documented in the ELisp manual. We will probably want to add tests for that before we can confidently convert this to lexical-binding. Problem reported by Mattias Engdegård . 2020-10-24 Stefan Kangas Use lexical-binding in most term libraries * lisp/term/AT386.el: * lisp/term/internal.el: * lisp/term/iris-ansi.el: * lisp/term/lk201.el: * lisp/term/news.el: * lisp/term/rxvt.el: * lisp/term/sun.el: * lisp/term/tvi970.el: * lisp/term/wyse50.el: Use lexical-binding. 2020-10-24 Stefan Kangas Use lexical-binding in copyright.el and add tests * lisp/emacs-lisp/copyright.el: Use lexical-binding. Remove redundant :group args. * test/lisp/emacs-lisp/copyright-tests.el: New file. 2020-10-24 Stefan Kangas * test/manual/image-transforms-tests.el: Use lexical-binding. 2020-10-24 Stefan Kangas Move faces.el test data to follow our conventions * test/lisp/faces-tests.el (ert-x): Require. (faces--test-data-dir): Remove variable. (faces--test-extend-with-themes): Use ert-resource-directory. * test/lisp/faces-resources/*: Moved from test/data/themes/*. 2020-10-24 Michael Albinus Fix tramp-sh-handle-make-process; don't merge with master * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Accept nil COMMAND. (Bug#44151) * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process): Extend test. 2020-10-24 Jared Finder Fix a bug where the wrong menu would be triggered by mouse For layouts such as the following, clicking the "l" in Tools with the right window focused would trigger the File menu, not the Tools menu. This is because the event would have window coordinate (1 . 0). Similarly, clicking the "p" in Help would trigger the Edit menu. Example Emacs frame: +--------------------------------------------------------+ |File Edit Options Buffers Tools Help | |;; This buffer is for text$|;; This buffer is for text $| |;; To create a file, visit$|;; To create a file, visit $| | | | | | | |-UUU:----F1 *scratch* |-UUU:----F1 *scratch* | | | +--------------------------------------------------------+ * lisp/menu-bar.el (menu-bar-open-mouse): Reject clicks not on the menu bar. *lisp/xt-mouse.el (xterm-mouse-event): Pass the current frame to 'posn-at-x-y', to make the effect consistent with other mouse-handling features. 2020-10-24 Jared Finder Enable TTY menus with xterm-mouse-mode * lisp/tmm.el: No need to bind 'tmm-menubar-mouse' to mouse clicks on the menu bar. * lisp/menu-bar.el (global-map): Bind 'menu-bar-open-mouse' to mouse click on menu bar. This is needed in xt-mouse. * etc/NEWS: Announce TTY menu support in xterm-mouse-mode. 2020-10-24 Jared Finder Make TTY menus work with xterm-mouse-mode * src/term.c (mouse_get_xy): Call 'mouse_position' passing it the value of 'tty-menu-calls-mouse-position-function' as the argument. (syms_of_term) : New DEFVAR_BOOL. * src/frame.c (mouse_position): New function, with most of the code from Fmouse_position, but call 'mouse-position-function' only if called with non-zero argument. (Fmouse_position): Call 'mouse_position' to do the job. * lisp/xt-mouse.el (xterm-mouse-translate-1): Respect 'track-mouse'. (xterm-mouse-mode): Set 'tty-menu-calls-mouse-position-function' when setting 'mouse-position-function'. (xterm-mouse-tracking-enable-sequence): Use SET_ANY_EVENT_MOUSE (0x1003) so that mouse movement can be reported even if no buttons are pressed. Doc fix. * lisp/menu-bar.el (menu-bar-define-mouse-key): New function. (tty-menu-navigation-map): Call it. * doc/lispref/frames.texi (Mouse Position): Document 'tty-menu-calls-mouse-position-function'. * etc/NEWS: Announce 'tty-menu-calls-mouse-position-function'. 2020-10-24 Jared Finder Adding mouse controls to menu-bar.el. * lisp/isearch.el (tmm-menubar-keymap): Remove declare-function. * lisp/menu-bar.el (menu-bar-open-mouse, menu-bar-keymap) (menu-bar-current-active-maps, menu-bar-item-at-x): New functions. *lisp.tmm.el (tmm-menubar-keymap, tmm-get-keybind): Functions deleted. (tmm-menubar): Call 'menu-bar-item-at-x'. 2020-10-24 Eli Zaretskii Fix last change in image.c for MS-Windows * src/image.c [LIBRSVG_CHECK_VERSION (2, 46, 0)]: Define prototype for rsvg_handle_get_geometry_for_layer. (init_svg_functions) [LIBRSVG_CHECK_VERSION (2, 46, 0)]: Load rsvg_handle_get_geometry_for_layer from the DLL, instead of rsvg_handle_get_dimensions. (rsvg_handle_get_geometry_for_layer) [LIBRSVG_CHECK_VERSION (2, 46, 0)]: Define macro. (Bug#44065) 2020-10-24 Stefan Kangas Fix a broken unsafep test * test/lisp/emacs-lisp/unsafep-tests.el (test-unsafep/message): Fix test case. (unsafep-tests--safe): Rename from testcover-unsafep-safe. (unsafep-tests--unsafe): Rename from testcover-unsafep-unsafe. (test-unsafep/safe, test-unsafep/unsafe): Doc fix. Adjust usage of above renamed variables. 2020-10-24 Stefan Kangas Move epg.el test data to follow our conventions * test/lisp/epg-tests.el (ert-x): Require. (epg-tests-data-directory): Remove variable. (with-epg-tests): Use ert-resource-file. * test/lisp/epg-resources/*: Moved from test/data/epg/. 2020-10-24 Stefan Kangas Move shr.el test data to follow our conventions * test/lisp/net/shr-tests.el (ert, ert-x): Require. (shr-tests--datadir): Remove variable. (shr-test, rendering): Use ert-resource-directory. * test/lisp/net/shr-resources/*: Move from test/data/shr/. 2020-10-24 Stefan Kangas Move mml-sec.el test data to follow our conventions * test/lisp/gnus/mml-sec-tests.el (ert-x): Require. (mml-secure-test-fixture, mml-sec-test--kill-gpg-agent): Use ert-resource-directory. * test/lisp/gnus/mml-sec-resources/*: Moved from test/data/mml-sec/. * .gitignore: Update location of moved file "random_seed". 2020-10-23 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-10-23 Stefan Kangas Move more test data to follow our conventions * test/data/minibuffer-test-cttq$tion: Move from here... * test/lisp/minibuffer-resources/data/minibuffer-test-cttq$tion: ...to here. * test/lisp/minibuffer-resources/lisp/cedet/semantic-utest-c.test: * test/lisp/minibuffer-resources/lisp/cedet/semantic-utest.test: New files. * test/lisp/minibuffer-tests.el (ert, ert-x): Require. (completion-table-test-quoting): Use ert-resource-directory. * test/data/net/cert.pem: * test/data/net/key.pem: Move from here... * test/lisp/net/network-stream-resources/cert.pem: * test/lisp/net/network-stream-resources/key.pem: ...to here. * test/lisp/net/network-stream-tests.el (ert, ert-x): Require. (network-stream-tests--datadir): Remove variable. (make-tls-server): Use ert-resource-file. * test/data/vc/diff-mode/hello_emacs.c: * test/data/vc/diff-mode/hello_emacs_1.c: * test/data/vc/diff-mode/hello_world.c: * test/data/vc/diff-mode/hello_world_1.c: Move from here... * test/lisp/vc/diff-mode-resources/hello_emacs.c: * test/lisp/vc/diff-mode-resources/hello_emacs_1.c: * test/lisp/vc/diff-mode-resources/hello_world.c: * test/lisp/vc/diff-mode-resources/hello_world_1.c: ...to here. * test/lisp/vc/diff-mode-tests.el (ert, ert-x): Require. (diff-mode-tests--datadir): Remove variable. (diff-mode-test-font-lock-syntax-one-line) (diff-mode-test-font-lock): Use ert-resource-directory. * test/data/xdg/l10n.desktop: * test/data/xdg/malformed.desktop: * test/data/xdg/mimeapps.list: * test/data/xdg/mimeinfo.cache: * test/data/xdg/test.desktop: Move from here... * test/lisp/xdg-resources/l10n.desktop: * test/lisp/xdg-resources/malformed.desktop: * test/lisp/xdg-resources/mimeapps.list: * test/lisp/xdg-resources/mimeinfo.cache: * test/lisp/xdg-resources/test.desktop: ...to here. * test/lisp/xdg-tests.el (ert-x): Require. (xdg-tests-data-dir): Remove variable. (xdg-desktop-parsing, xdg-mime-associations): Use ert-resource-file. 2020-10-23 Michael Albinus Fix error in tramp-sh-handle-make-process * lisp/net/tramp-sh.el (tramp-sh-handle-make-process): Don't use heredoc script whent the argument contains a string. 2020-10-23 Stefan Kangas Move some test data to follow our conventions * test/data/emacs-module/mod-test.c: Move from here... * test/src/emacs-module-resources/mod-test.c: ...to here. * test/src/emacs-module-tests.el (ert-x): Require. (mod-test-file, module/describe-function-1): * test/Makefile.in (test_module_dir): Adjust for move. * test/data/files-bug18141.el.gz: Move from here... * test/lisp/files-resources/files-bug18141.el.gz: ... to here. * test/lisp/files-tests.el (ert-x): Require. (files-test-bug-18141-file): Use ert-resource-file. * test/data/mailcap/mime.types: Move from here... * test/lisp/net/mailcap-resources/mime.types: ...to here. * test/lisp/net/mailcap-tests.el (ert-x): Require. (mailcap-tests-path): Use ert-resource-file. * test/data/somelib.el: * test/data/somelib2.el: Move from here... * test/src/lread-resources/somelib.el: * test/src/lread-resources/somelib2.el: ...to here. * test/src/lread-tests.el (ert, ert-x): Require. (lread-test-bug26837): Use ert-resource-directory. * test/data/syntax-comments.txt: Move from here.... * test/src/syntax-resources/syntax-comments.txt: ...to here. * test/src/syntax-tests.el (ert-x): Require. (syntax-comments, syntax-br-comments, syntax-pps-comments): Use ert-resource-file. * test/data/xref/file1.txt: * test/data/xref/file2.txt: Move from here... * test/lisp/progmodes/xref-resources/file1.txt: * test/lisp/progmodes/xref-resources/file2.txt: ...to here. * test/lisp/progmodes/xref-tests.el (ert, ert-x): Require. (xref-tests-data-dir): Use ert-resource-directory. 2020-10-23 Eli Zaretskii Set up composition-function-table for Egyptian * lisp/language/misc-lang.el (composition-function-table): Set up for Egyptian Hieroglyphs. 2020-10-23 Eli Zaretskii Remove most of charset markup from etc/HELLO For the reasons, see the discussion that started in https://lists.gnu.org/archive/html/emacs-devel/2018-12/msg00407.html and its conclusion in https://lists.gnu.org/archive/html/emacs-devel/2019-01/msg00144.html. The only markup left is in the preamble, just to show the example of this facility. 2020-10-23 Olivier Certner (tiny change) ERC: Fix ERC's IBuffer format "crash" on killed server buffer * lisp/erc/erc-ibuffer.el (erc-server-name): Fix a crash when displaying (or updating) an IBuffer buffer using ERC's first IBuffer format. This happens when one ERC buffer has its associated server buffer killed, e.g., voluntarily or automatically after server disconnection when `erc-kill-server-buffer-on-quit' is set to t. The culprit is the "Server" column, which returns nil in this case. Display "(closed)" instead (bug#44156). 2020-10-23 Ruthra Kumar Add support for squashfs files in archive mode * lisp/arc-mode.el (archive-squashfs-extract): New variable (bug#43827). (archive-find-type): Identify squashfs. (archive-squashfs-summarize, archive-squashfs-extract-by-stdout): New functions to parse/extract squashfs. * lisp/files.el (auto-mode-alist): Add squashfs. 2020-10-23 Ulf Jasper Move icalendar test data to test/lisp/calendar/icalendar-resources * test/lisp/calendar/icalendar-tests.el (ert-x): Required for 'ert-resource-file'. (icalendar-tests--data-dir): Removed. (icalendar-tests--get-file-contents): Use 'ert-resource-file' for finding test data files. * test/data/icalendar/*: Moved to test/lisp/calendar/icalendar-resources/. * test/lisp/calendar/icalendar-resources/*: Moved from test/data/icalendar. 2020-10-23 Stefan Kangas Clean up temporary files after package tests * test/lisp/emacs-lisp/package-tests.el (with-package-test): Remove temporary files after test. (Bug#43359) 2020-10-23 Mattias Engdegård Use lexical binding in ffap.el * lisp/ffap.el (ffap-search-backward-file-end): Remove binding for variable shadowing an optional (and never used) argument. (ffap--gopher-var-on-line): Remove unused variable. 2020-10-23 Stefan Kangas * lisp/emacs-lisp/pcase.el: Add "extensions" to keyword header. Merge branch 'scratch/substitute-command-keys' 2020-10-22 Juri Linkov * etc/HELLO: Use JavaScript for Javanese script (bug#43887) 2020-10-22 Alan Third Fix SVG image dimension calculations (bug#44065) * src/image.c (svg_load_image): Calculate the image size by using the viewBox size and applying it to the image. * etc/PROBLEMS: Describe the problem with librsvg 2.45 and below. 2020-10-22 Alan Third Fix crash when no face is defined (bug#44058, bug#43973) * src/nsterm.m (ns_clear_under_internal_border): If face is null, don't try drawing anything. 2020-10-22 Stefan Kangas Remove incorrect use of decode-coding-string * test/lisp/emacs-lisp/bindat-tests.el (bindat-test-pack/multibyte-string-fails) (bindat-test-unpack/multibyte-string-fails): Don't use decode-coding-string. Problem pointed out by Stefan Monnier . 2020-10-22 Stefan Kangas Recommend lexical-binding in Coding Conventions * doc/lispref/tips.texi (Coding Conventions, Library Headers): Recommend using lexical-binding. 2020-10-22 Andreas Schwab eww: don't add keymap to without href * lisp/net/eww.el (eww-tag-a): Only add keymap if the href attribute is present. (Bug#44147) 2020-10-22 Stefan Kangas Add missed file needed by time-tests.el * test/lisp/time-resources/non-empty: New file. This file is needed by time-tests.el but was missed when it was committed. 2020-10-22 Mattias Engdegård Remove useless uses of bindat-get-field * lisp/progmodes/gdb-mi.el (gdb-var-list-children-handler) (gdb-edit-register-value): bindat-get-field with a single argument is identity; remove. 2020-10-22 Stefan Kangas Add tests for perl-mode.el * test/lisp/progmodes/perl-mode-tests.el: New file. 2020-10-22 Ulf Jasper Move test data for icalendar tests to separate files. * test/lisp/calendar/icalendar-tests.el (icalendar-tests--data-dir, icalendar-tests--get-file-contents): New. (icalendar-tests--test-import, icalendar-tests--do-test-import): Read input and expected results from files. (icalendar-import-non-recurring, icalendar-import-rrule) (icalendar-import-duration, icalendar-import-bug-6766) (icalendar-import-bug-24199, icalendar-import-bug-33277) (icalendar-import-multiple-vcalendars, icalendar-import-with-uid) (icalendar-import-with-timezone, icalendar-real-world): Move test data (input and expected result) to separate files. * test/calendar/icalendar/* New files containing test data for icalendar tests. 2020-10-22 Stefan Kangas Use lexical-binding in time-date.el and expand tests * lisp/calendar/time-date.el: Use lexical-binding. * test/lisp/calendar/time-date-tests.el (test-obsolete-with-decoded-time-value) (test-obsolete-encode-time-value, test-format-seconds) (test-days-to-time, test-seconds-to-string): New tests. (test-days-in-month, test-time-since, test-time-decoded-period): Expand test with a few more values. 2020-10-22 Mauro Aranda Make State button interaction less confusing * lisp/cus-edit.el (custom-variable-current-value): New function. (custom-variable-backup-value): Use it. (custom-variable-set, custom-variable-mark-to-reset-standard): Check that old value is different than the new one. If it is, make a backup. This way, we avoid offering the Set to Backup Value unnecessarily. (custom-variable-reset-saved): Reset the variable-comment property for the variable, to help custom-variable-state be more correct. Also check if we should backup old value. (custom-variable-state): If a variable was set to the standard value, say its state is standard rather than set, which is more correct. Getting the right variable state is important for menu options to be enabled/disabled, and for displaying the right message to the user (bug#12864). 2020-10-22 Lars Ingebrigtsen Use HTTP instead of Tramp for the ffap rfc path (and also fix it) * lisp/ffap.el (ffap-rfc-path): Use an URL instead of an FTP tramp file, since that's more widely supported (bug#41663). 2020-10-22 Lars Ingebrigtsen Comment JSX lines using JSX syntax * lisp/progmodes/js.el (js-jsx--comment-region): New function (bug#41696). (js-jsx-mode): Use it. 2020-10-22 Stefan Kangas Test for error with multibyte strings in bindat.el * test/lisp/emacs-lisp/bindat-tests.el (bindat-test-pack/multibyte-string-fails) (bindat-test-unpack/multibyte-string-fails): New tests. 2020-10-22 Mauro Aranda Pretty print restricted sexp values too * lisp/wid-edit.el (restricted-sexp widget): Use widget-sexp-value-to-internal to pretty print the widget's value, when it is a valid one (bug#7524). 2020-10-22 Stefan Kangas Remove reference HP-UX 8.0 and 9.x bug from FAQ * doc/misc/efaq.texi (Meta key does not work in xterm): Remove section about a bug on HP-UX 8.0 and 9.x. Support for these platforms were removed in 23.1. 2020-10-22 Stefan Kangas Remove two references to Emacs 21 from the FAQ * doc/misc/efaq.texi (Turning on syntax highlighting): Remove some references to Emacs 21 and older. 2020-10-22 Mauro Aranda Allow moving members of editable-list widget, via delete+insert * etc/NEWS (Widget): Announce the feature (bug#6419). * lisp/wid-edit.el (widget-editable-list-delete-at): Save into a new widget property, :last-deleted, the WIDGET to be deleted. Add docstring. (widget-editable-list-insert-before): If there is a recently deleted child for the editable list, insert that one, instead of a new default widget. Add docstring. (insert-button widget): Make :help-echo a function to avoid the help-echo string become too long. (delete-button widget): Tweak the :help-echo string, to document this behavior. * test/lisp/wid-edit-tests.el (widget-test-moving-editable-list-item): Test the feature. 2020-10-22 Pip Cet Handle Cairo errors in ftcrfont_open * src/ftcrfont.c (ftcrfont_open): Handle Cairo errors (bug#41627). 2020-10-22 Mattias Engdegård Use lexical binding in fortran.el * lisp/progmodes/fortran.el: Use lexical binding. (fortran-make-syntax-propertize-function): Hoist use of lexical variable to outside the 'eval' call. 2020-10-22 Mattias Engdegård * lisp/progmodes/cpp.el: Use lexical binding. 2020-10-22 Werner Lemberg Update TUTORIAL.de This also includes the minor fix for bug #44123. 2020-10-21 Štěpán Němec unload-feature: Correct doc string to match info manual and reality 'unload-feature' doesn't try to "undo any additions the library has made" to hooks, it tries to remove functions defined by the library from hooks, no matter how they got there. * lisp/loadhist.el (unload-feature): Correct the doc string. * doc/lispref/loading.texi (Unloading): Clarify, fix typo. 2020-10-21 Štěpán Němec unload-feature: Handle local hooks (bug#5293) Buffer-local hooks were introduced in 1994-09-30T20:47:13+00:00!rms@gnu.org 0e4d378b32 (add-hook): Initialize default value and local value. but 'unload-feature' has not been updated to handle them. * lisp/loadhist.el (unload-feature): Handle local hooks (bug#5293). 2020-10-21 Štěpán Němec unload-feature: Improve logic (don't repeat computation) * lisp/loadhist.el (unload-feature): Don't do the same computation twice. 2020-10-21 Mattias Engdegård Convert artist.el to lexical binding * lisp/textmodes/artist.el (artist-system, (artist-flood-fill): Remove binding of the obsolete variables binary-process-input, binary-process-output and input-queue. (artist-down-mouse-1): Fix mistyped 'echo-keystrokes'; bind it to 0. (artist-fill-rect, artist-fill-square, artist-pen-set-arrow-points) (artist-spray-clear-circle, artist-spray-set-radius) (artist-draw-ellipse-with-0-height, artist-fill-ellipse) (artist-ff-is-topmost-line, artist-ff-is-bottommost-line) (artist-set-arrow-points-for-2points, artist-key-undraw-continously) (artist-key-undraw-poly, artist-key-undraw-1point) (artist-key-undraw-2points, artist-key-do-continously-1point) (artist-key-set-point-1point, artist-shift-has-changed) (artist-mouse-draw-continously, artist-mouse-draw-1point) (artist-submit-bug-report): Suppress warnings about unused parameters which are there for function signature commonality. Remove unused variables. 2020-10-21 Eli Zaretskii Avoid rare crashes while producing line numbers * src/xdisp.c (maybe_produce_line_number): Prevent freeing of realized faces for as long as we are using lnum_face_id and current_lnum_face_id for producing glyphs. (Bug#44111) 2020-10-21 Stefan Kangas Tweak two time.el tests * test/lisp/time-tests.el (time-tests-display-time-update--load) (time-tests-display-time-update): Tweak tests. 2020-10-21 Stefan Kangas * lisp/time.el: Use lexical-binding. 2020-10-21 Stefan Kangas Add tests for time.el * lisp/time.el (display-time-update--load) (display-time-update--mail): Extract from... (display-time-update): ...here. * test/lisp/time-tests.el: New file. 2020-10-21 Stefan Kangas Use lexical-binding in bindat.el * lisp/emacs-lisp/bindat.el: Use lexical-binding. (bindat-raw, bindat-idx, bindat-unpack, bindat-pack): Adjust for lexical-binding. (bindat--unpack-group, bindat--length-group): Fix byte-compiler warning about unused variables last and vlen. (bindat--unpack-group, bindat--length-group, bindat--pack-group) (bindat-format-vector): Quote function symbols as such. 2020-10-21 Stefan Kangas Remove some compat code from uudecode.el and binhex.el * lisp/mail/uudecode.el (uudecode-char-int): Make obsolete. (uudecode-decode-region-internal): Adjust callers. * lisp/mail/binhex.el (binhex-char-int): Make obsolete. (binhex-string-big-endian, binhex-string-little-endian) (binhex-header): Adjust callers. 2020-10-21 Stefan Kangas Declare old compat aliases in tcl.el obsolete * lisp/progmodes/tcl.el (tcl-uncomment-region) (tcl-indent-for-comment, add-log-tcl-defun, indent-tcl-exp) (calculate-tcl-indent, tcl-beginning-of-defun, tcl-end-of-defun) (tcl-mark-defun, tcl-mark): Make obsolete. 2020-10-21 Stefan Kangas Add some top level domains * lisp/mail/mail-extr.el (mail-extr-all-top-level-domains): Add some geographic domains. 2020-10-21 Lars Ingebrigtsen Revert "Add emoji to etc/HELLO" This reverts commit a1fcdeec25be87e8f97ac5c14e6fbf6a4d1eb2d4. There was already an emoji in there. 2020-10-21 Stefan Kangas * test/lisp/vc/vc-bzr-tests.el: Use lexical-binding. 2020-10-21 Stefan Kangas Use lexical-binding in files-x-tests.el * test/lisp/files-x-tests.el: Use lexical-binding. (remote-null-device): Declare. 2020-10-21 Stefan Kangas Use lexical-binding in iso-ascii.el * lisp/international/iso-ascii.el: Use lexical-binding. Remove redundant :group args. 2020-10-21 Stefan Kangas Use lexical-binding in hfy-cmap.el and add tests * lisp/hfy-cmap.el: Use lexical-binding. (hfy-cmap--parse-buffer): Extract from... (htmlfontify-load-rgb-file): ...here. * test/lisp/hfy-cmap-resources/rgb.txt: * test/lisp/hfy-cmap-tests.el: New files. 2020-10-21 Lars Ingebrigtsen Add emoji to etc/HELLO 2020-10-21 Michael Albinus * etc/HELLO: Keep Javanese System.out.println(""); 2020-10-21 Stefan Monnier * lisp/outline.el: Use lexical-binding Remove redundant `group` arguments. (outline-level): Move before first use. (outline-mode): Use `setq-local`. (outline-isearch-open-invisible-function): Give it a non-nil default. 2020-10-20 Andrea Corallo Sanitize eln filename when native compiling single functions * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Fix temporary eln name generation. * test/src/comp-tests.el (free-fun-silly-name): New testcase. 2020-10-20 Andrea Corallo Have `native-compile' do not expose `with-late-load' parameter This is really for internal use only by deferred compilation. * lisp/emacs-lisp/comp.el (comp-trampoline-compile) (comp-run-async-workers): Make use of `comp--native-compile'. (comp--native-compile): New function. (native-compile, batch-native-compile): Make use of `comp--native-compile'. 2020-10-20 Stefan Kangas Use lexical-binding in m4-mode.el * lisp/progmodes/m4-mode.el: Use lexical-binding. Remove redundant :group args. * lisp/progmodes/m4-mode.el (m4-m4-buffer, m4-m4-region): Quote function symbols as such. 2020-10-20 Stefan Kangas Make more load-hooks obsolete (Bug#21563) * lisp/progmodes/dcl-mode.el (dcl-mode): * lisp/progmodes/idlw-complete-structtag.el: Recommend with-eval-after-load instead of load-hooks. * lisp/calc/calc-ext.el (calc-ext-load-hook): * lisp/emacs-lisp/bytecomp.el (bytecomp-load-hook): * lisp/emacs-lisp/cl-extra.el (cl-extra-load-hook): * lisp/emacs-lisp/cl-macs.el (cl-macs-load-hook): * lisp/emacs-lisp/cl-seq.el (cl-seq-load-hook): * lisp/gnus/message.el (message-load-hook): * lisp/gnus/nnheader.el (nnheader-load-hook): * lisp/gnus/nnmail.el (nnmail-load-hook): * lisp/progmodes/dcl-mode.el (dcl-mode-load-hook): * lisp/textmodes/tex-mode.el (tex-mode-load-hook): * lisp/whitespace.el (whitespace-load-hook): Obsolete for with-eval-after-load. Note that these variables are never declared, but the byte-compiler will still warn about them if used. 2020-10-20 Stefan Kangas byte-compile-file: Make optional LOAD argument obsolete * lisp/emacs-lisp/bytecomp.el (byte-compile-file): Declare optional LOAD argument obsolete. Adjust callers. (Bug#38072) (byte-recompile-file): Declare optional LOAD argument obsolete. * doc/lispref/compile.texi (Compilation Functions): Update documentation to reflect above obsoletion. * etc/NEWS: Announce above obsoletion. 2020-10-20 Basil L. Contovounesios Simplify regexp in last change to woman.el * lisp/woman.el (woman-decode-region): Use simpler character alternative instead of alternation. 2020-10-20 Basil L. Contovounesios Simplify syntax of shortdoc face specs * lisp/emacs-lisp/shortdoc.el: Remove unused dependency. (shortdoc-section, shortdoc-example): Use newer (DISPLAY . PLIST) face spec syntax. 2020-10-20 Stefan Kangas Tweak test data for signed package installation * test/lisp/emacs-lisp/package-resources/signed/signed-bad-1.0.el: * test/lisp/emacs-lisp/package-resources/signed/signed-good-1.0.el: Use lexical-binding. * test/lisp/emacs-lisp/package-resources/signed/update-signatures.sh: New file. * test/lisp/emacs-lisp/package-resources/key.pub: * test/lisp/emacs-lisp/package-resources/key.sec: Add new key. * test/lisp/emacs-lisp/package-resources/signed/signed-good-1.0.el.sig: * test/lisp/emacs-lisp/package-resources/signed/archive-contents.sig: Update signatures using new key. 2020-10-20 Mattias Engdegård * lisp/textmodes/picture.el: Use lexical binding. 2020-10-20 Eli Zaretskii Avoid assertion violations in malformed Unicode escapes * src/lread.c (read_escape): Produce better diagnostic for malformed \u Unicode escapes, while avoiding assertion violation when READCHAR returns -1 because the input is exhausted. (Bug#44084) 2020-10-20 Stefan Kangas * lisp/language/utf-8-lang.el: Use lexical-binding. 2020-10-20 Lars Ingebrigtsen Tweak the documentation for define-obsolete-variable-alias * doc/lispref/variables.texi (Variable Aliases): Actually describe the macro parameters (bug#44088). * lisp/emacs-lisp/byte-run.el (define-obsolete-variable-alias): Ditto (bug#44088). 2020-10-20 Masahiro Nakamura Fix some mpc.el updating quirks * lisp/mpc.el (mpc-songs-jump-to): Update the status buffer. * lisp/mpc.el (mpc-stop): M-x mpc-stop clears playlist queue. So updating *MPC-Songs* buffer is useful. * lisp/mpc.el (mpc-cmd-delete): I noticed M-x mpc-playlist-delete always messages “Deleted 1 songs” even if playlist queue has more than one songs. This is because mpc-cmd-delete’s sort modifies songs-poss by side effect. Using copy-sequence fixes this (bug#44093). * lisp/mpc.el (mpc-cmd-move): Ditto. 2020-10-20 Jim Blandy Man highlighting: Don't occasionally bold entire sections. * lisp/ansi-color.el (ansi-color-apply-on-region): Always save a restart position in ansi-color-context-region if the region ends with highlighting active. 2020-10-20 Lars Ingebrigtsen Preserve all `eval' elements from both .dir-locals files * lisp/files.el (dir-locals-read-from-dir): Preserve all `eval' elements from both .dir-locals files (bug#44066). 2020-10-20 Stefan Kangas * lisp/image-file.el: Use lexical-binding. 2020-10-20 Stefan Kangas Make a bookmark test more robust * test/lisp/bookmark-tests.el (bookmark-tests-insert-annotation): Make test more robust by not being timing dependent. 2020-10-19 Stefan Kangas Add command package-menu-filter-upgradable * lisp/emacs-lisp/package.el (package-menu-filter-upgradable): New command. (Bug#41436) (package-menu-mode-map): Bind the new command. * doc/emacs/package.texi (Package Menu): Document the new command. 2020-10-19 Stefan Monnier * lisp/progmodes/python.el: Bump version to release the f-string support 2020-10-19 Stefan Monnier * lisp/mail/rfc2231.el (rfc2231-decode-encoded-string): Fix match data error Get (match-string 3 string) earlier, in case `mm-charset-to-coding-system` clobbers the match data. Also, check that `string-match` succeeded before using its match data. 2020-10-19 Protesilaos Stavrou Fix documentation of the Modus Themes (Bug#43944) * doc/misc/modus-themes.texi (Installation): Remove reference to MELPA. (Top) (Install from the archives, GNU Guix) (Load at a given time or at sunset/sunrise) (Configure options prior to loading, Command prompts) (Headings' font, Will NOT be supported): Fix spelling, wording, markup. (Acknowledgements): Spell contributor's surname correctly. 2020-10-19 Stefan Kangas Make auto-revert-mode tests run faster * test/lisp/autorevert-tests.el (auto-revert--timeout): Make into defun and shorten timeout by a factor 10. (auto-revert--wait-for-revert): Cut timeouts in half. (with-auto-revert-test): New macro to set timeout to 0.1. (auto-revert-tests--write-file): New defun. (auto-revert-test00-auto-revert-mode) (auto-revert-test01-auto-revert-several-files) (auto-revert-test02-auto-revert-deleted-file) (auto-revert-test03-auto-revert-tail-mode) (auto-revert-test04-auto-revert-mode-dired) (auto-revert-test05-global-notify) (auto-revert-test06-write-file): Adapt test to run faster. Remove :expensive-test marks. This was discussed in: https://lists.gnu.org/r/emacs-devel/2020-10/msg01233.html 2020-10-19 Michael Albinus Further clarification of directory-files* doc * doc/lispref/files.texi (Contents of Directories): Precise description of MATCH-REGEXP of directory-files. Add directory-files-no-dot-files-regexp. * lisp/files.el (directory-files-no-dot-files-regexp): Revert last fix. * src/dired.c (Fdirectory_files) (Fdirectory_files_and_attributes): Fix wording in docstring. 2020-10-19 Mattias Engdegård Keep track of matching rules in compilation-mode When matching messages in compilation-mode, keep track of the rule employed for each match. This facilitates debugging and allows us to verify that each test case really exercises the rule that we expect it to. Naturally this uncovered several test cases that didn't check what the author thought they did; the rules affixed to compile-tests--test-regexps-data are those actually used, so that the tests still pass. * lisp/progmodes/compile.el (compilation--message): Add 'rule' slot. (compilation-directory-properties, compilation-error-properties) (compilation-internal-error-properties, compilation-parse-errors) (compilation--compat-parse-errors): Set the rule slot. * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data) (compile-tests--grep-regexp-testcases) (compile-tests--grep-regexp-tricky-testcases): Add rules to test cases. (compile--test-error-line): Check that the rule matches what we expect. (compile-test-grep-regexps): Adapt to test case format. Remove now superfluous ert-info. 2020-10-19 Mattias Engdegård Hoist some loop-invariant variable bindings in compile.el * lisp/progmodes/compile.el (compilation-parse-errors): Hoist the binding of case-fold-search and a memq call out of the loop, eliminating a minor but unnecessary quadratic term. 2020-10-19 Stefan Kangas * lisp/info.el: Remove redundant :group args. 2020-10-19 Stefan Kangas Improve Info-streamline-headings defaults * lisp/info.el (Info-streamline-headings): Improve defaults. These produce somewhat more consistent results on my system, and seems slightly more in line with current GNU practices. For example, gcc uses the "Software development" heading instead of "Programming". 2020-10-19 dickmao `ffap-gopher-at-point' interminable without newlines * lisp/ffap.el (ffap-gopher-at-point): Stop when we get to the end of the buffer. * test/lisp/ffap-tests.el (ffap-test-no-newlines): Ensure termination for corner case (bug#44048). 2020-10-19 Robert Pluim Explain difference between Unicode and Emacs scripts * doc/lispref/nonascii.texi (Character Properties): Document that Emacs' scripts and Unicode's scripts do not necessarily correspond. 2020-10-19 Harald Jörg cperl-mode: Delete a misleading comment, add tests for verification * lisp/progmodes/cperl-mode.el: Delete a comment which explains a bug which has been fixed a long time ago (bug#44073). * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-fontify-punct-vars): Add regression tests to verify that fontification of punctuation variables doesn't start strings. 2020-10-19 Yuan Fu Handle "Before first headings" error in outline-cycle * lisp/outline.el (outline-before-first-heading): New error. (outline-back-to-heading): Signal the new error. (outline-cycle): Ignore the error. (outline-cycle-buffer): Simply pass 1 to 'outline-hide-sublevels' (bug#41130). 2020-10-19 Lars Ingebrigtsen Ffunction doc string clarification * src/eval.c (Ffunction): Mention that `function' isn't quite like `quote' in non-bytecompile circumstances, too (bug#41864). 2020-10-19 Michael Albinus * src/dired.c (Fdirectory_files, Fdirectory_files_and_attributes): Adapt docstring. 2020-10-19 Michael Albinus * lisp/files.el (directory-files-no-dot-files-regexp): Adapt docstring. 2020-10-18 Juri Linkov Add new choice 'keep' to next-error-message-highlight (bug#32676) * lisp/simple.el (next-error-message-highlight): Add new choice 'keep'. (next-error-message-highlight): Don't delete overlay when option is 'keep'. 2020-10-18 Juri Linkov * etc/HELLO: Add Belarusian and use Javanese script for Javanese (bug#43887) 2020-10-18 Stefan Kangas Add "Old-" prefix to "Version" header in more cases These version numbers are historical accidents and not relevant today. Ref: https://lists.gnu.org/r/emacs-devel/2020-03/msg00080.html 2020-10-18 Stefan Kangas Prefer Lisp version of describer in help--describe-vector * src/keymap.c (Fhelp__describe_vector): * lisp/help.el (describe-map): Use Lisp versions of describe_command and describe_translation. * src/keymap.c (describe_command, describe_translation): Remove. (describe_vector_basic): New function. 2020-10-18 Stefan Kangas Remove C version of substitute-command-keys * src/doc.c (Fsubstitute_command_keys_old): Remove. (syms_of_doc): Remove defsubr for Fsubstitute_command_keys_old. * src/keymap.c (describe_map, describe_map_tree) (describe_map_compare, describe_map_elt): Remove. * src/keymap.h: Remove 'describe_map_tree'. * test/lisp/help-tests.el (with-substitute-command-keys-test) (help-tests-substitute-command-keys/compare) (help-tests-substitute-command-keys/compare-all): Don't test the C version of 'substitute-command-keys' removed above. 2020-10-18 Stefan Kangas Prefer Lisp version of describe-map-tree This is a prerequisite to remove the old C functions, and gives a measured 3 ms slowdown on my machine, from 0.27s to 0.30s per call to describe-buffer-bindings (average over 50 calls). * src/keymap.c (Fdescribe_buffer_bindings): Call Lisp function describe-map-tree instead of C function describe_map_tree. 2020-10-18 Stefan Kangas Improve substitute-command-keys performance The previous conversion of describe_vector from C to Lisp for the keymap and char table case lead to an unacceptable performance hit. Moving back to the C version, as we do here, makes this function around 50 times faster. The Lisp version of `substitute-command-keys' was benchmarked using the form `(documentation 'dired-mode)', which now takes less than 8 ms on my machine. This is around 16 times slower than the previous C version. Thanks to Stefan Monnier for helpful pointers on benchmarking. * src/keymap.c (Fhelp__describe_vector): New defun to expose describe_vector to Lisp for keymaps and char tables. (syms_of_keymap): New defsubr for Fhelp__describe_vector. * lisp/help.el (describe-map): Use above defun instead of Lisp version. (help--describe-vector): Remove defun; keep it commented out for now. 2020-10-18 Stefan Kangas Translate describe_vector to Lisp * lisp/help.el (help--describe-vector): New Lisp implementation of describe_vector. * src/keymap.c (Fdescribe_vector_internal): Remove defun. (syms_of_keymap): Remove defsubr for Fdescribe_vector_internal. 2020-10-18 Stefan Kangas Translate describe_map to Lisp Third step in converting substitute-command-keys to Lisp. * lisp/help.el (describe-map): New Lisp version of describe_map. (help--describe-map-compare, help--describe-translation) (help--describe-command, help--shadow-lookup): New helper functions for describe-map. (help--keymaps-seen, help--previous-description-column): New variables. * src/keymap.c (Fkeymap__get_keyelt): New defun to expose get_keyelt to Lisp. (Fdescribe_map_tree_old, Fdescribe_map): Remove defuns. (Fdescribe_vector_internal): New defun to expose describe_vector to Lisp in a way usable by describe-map. (syms_of_keymap): New defsubrs for Fkeymap__get_keyelt and Fdescribe_vector_internal. Remove defsubrs for Fdescribe_map_tree_old and Fdescribe_map. Remove 'help--keymaps-seen'. * test/lisp/help-tests.el (help-tests-substitute-command-keys/shadow): Extend test. (help-tests-substitute-command-keys/test-mode) (help-tests-substitute-command-keys/compare-all) (help-tests-describe-map-tree/no-menu-t) (help-tests-describe-map-tree/no-menu-nil) (help-tests-describe-map-tree/mention-shadow-t) (help-tests-describe-map-tree/mention-shadow-nil) (help-tests-describe-map-tree/partial-t) (help-tests-describe-map-tree/partial-nil): New tests. 2020-10-18 Stefan Kangas Translate describe_map_tree to Lisp This is the second step in converting substitute-command-keys to Lisp. * lisp/help.el (describe-map-tree): New Lisp version of describe_map_tree. (substitute-command-keys): Update to use above function. * src/keymap.c (Fdescribe_map): New defun to expose describe_map to Lisp. * src/keymap.c (syms_of_keymap): New variable 'help--keymaps-seen'; a temporary kludge planned for removal. New defsubr for Fdescribe_map. 2020-10-18 Stefan Kangas Add new Lisp implementation of substitute-command-keys This is only the first step towards a full Lisp implementation, and does not remove the old C code. On the contrary, it is partly based on using the old C code, which is to be replaced in steps. This also makes it easy to test that it produces the same output as the old. * src/doc.c (Fsubstitute_command_keys_old): Rename from Fsubstitute_command_keys. (Fget_quoting_style): New defun to expose text_quoting_style to Lisp. (syms_of_doc): Expose above symbols. * lisp/help.el (substitute-command-keys): New Lisp version of substitute-command-keys. (Bug#8951) * src/keymap.c (Fdescribe_map_tree): New defun to expose describe_map_tree to Lisp. (syms_of_keymap): New defsubr for Fdescribe_map_tree. * src/keyboard.c (help_echo_substitute_command_keys): * src/doc.c (Fdocumentation, Fdocumentation_property): * src/print.c (print_error_message): * src/syntax.c (Finternal_describe_syntax_value): Fix calls to use new Lisp implementation of substitute-command-keys. * test/src/doc-tests.el: Remove file. * test/lisp/help-tests.el: Add tests for substitute-command-keys copied from above file. 2020-10-18 Mattias Engdegård Strengthen js-mode indentation tests Test not only that the indentation engine is idempotent but that it will indent a file to the expected shape from scratch. * test/lisp/progmodes/js-tests.el (js-tests--remove-indentation): New. (js-deftest-indent): Extend test. 2020-10-18 Lars Ingebrigtsen Fix a misleading comment in Freplace_match * src/search.c (Freplace_match): Fix a misleading comment (bug#42424). 2020-10-18 Lars Ingebrigtsen Document the new smiley value * doc/misc/gnus.texi (Smileys): Document the emoji smiley value. 2020-10-18 Lars Ingebrigtsen Fix up smiley emoji application to make it reversible * lisp/gnus/smiley.el (smiley-region): Use text properties for the emojis instead of rewriting the message. 2020-10-18 Adam Sjøgren Add support for emojis i smiley.el * lisp/gnus/smiley.el (smiley-style): Add emoji tag. (smiley-emoji-regexp-alist): New defcustom. (smiley-update-cache, smiley-region): Support emoji (non-image) replacement (bug#43889). 2020-10-18 Stefan Kangas Make nxml-newline-and-indent argument optional * lisp/nxml/nxml-mode.el (nxml-newline-and-indent): Make argument optional to conform to 'comment-line-break-function'. (Bug#40193) 2020-10-18 Stefan Kangas Minor improvements to emacsclient man page * doc/man/emacsclient.1: Make flag descriptions into full sentences to be more consistent. 2020-10-18 Stefan Kangas Convert manual js indent tests to unit tests * test/lisp/progmodes/js-tests.el (ert-x): Require. (js-deftest-indent): New macro. Use it to define tests for indenting the below files. * test/manual/indent/js-chain.js: * test/manual/indent/js-indent-align-list-continuation-nil.js: * test/manual/indent/js-indent-init-dynamic.js: * test/manual/indent/js-indent-init-t.js: * test/manual/indent/js.js: * test/manual/indent/jsx-align-gt-with-lt.jsx: * test/manual/indent/jsx-comment-string.jsx: * test/manual/indent/jsx-indent-level.jsx: * test/manual/indent/jsx-quote.jsx: * test/manual/indent/jsx-self-closing.jsx: * test/manual/indent/jsx-unclosed-1.jsx: * test/manual/indent/jsx-unclosed-2.jsx: * test/manual/indent/jsx.jsx: Move from here... * test/lisp/progmodes/js-resources/js-chain.js: * test/lisp/progmodes/js-resources/js-indent-align-list-continuation-nil.js: * test/lisp/progmodes/js-resources/js-indent-init-dynamic.js: * test/lisp/progmodes/js-resources/js-indent-init-t.js: * test/lisp/progmodes/js-resources/js.js: * test/lisp/progmodes/js-resources/jsx-align-gt-with-lt.jsx: * test/lisp/progmodes/js-resources/jsx-comment-string.jsx: * test/lisp/progmodes/js-resources/jsx-indent-level.jsx: * test/lisp/progmodes/js-resources/jsx-quote.jsx: * test/lisp/progmodes/js-resources/jsx-self-closing.jsx: * test/lisp/progmodes/js-resources/jsx-unclosed-1.jsx: * test/lisp/progmodes/js-resources/jsx-unclosed-2.jsx: * test/lisp/progmodes/js-resources/jsx.jsx: ...to here. 2020-10-18 Stefan Kangas * lisp/progmodes/ld-script.el: Use lexical-binding. * lisp/progmodes/mixal-mode.el: Fix typos. 2020-10-18 Jose A Ortega Ruiz Set jao@gnu.org as maintainer of mixal-mode.el * lisp/progmodes/mixal-mode.el: Set jao@gnu.org as maintainer of mixal-mode.el. (Bug#44037) 2020-10-18 Stefan Kangas Use lexical-binding in mixal-mode.el * lisp/progmodes/mixal-mode.el: Use lexical-binding. (Bug#44037) 2020-10-17 Juri Linkov Extend next-error-message face to the edge of the window (bug#32676) * lisp/simple.el (next-error-message): Add ':extend t' to this face. (next-error-message-highlight): Put overlay over the newline as well. 2020-10-17 J. Scott Berg (tiny change) Fix bad dimensions of initial frame on VcXsrv * src/xterm.c (handle_one_xevent) [USE_GTK]: Don't obey ConfigureNotify events if the frame is not visible. (Bug#44002) 2020-10-17 Glenn Morris Merge from origin/emacs-27 18c0e20bea (origin/emacs-27) Improve documentation of 'Info-hide-note... 2020-10-17 Glenn Morris Merge from origin/emacs-27 65078e0a76 * lisp/info.el (Info-hide-note-references): Doc fix. (Bug... 30305b543d Make lisp/progmodes/js.el dependent on CC Mode in the Make... c37b2a9b42 Yet another fix for 'set-minibuffer-message' 72dd911981 Fix posn-at-x-y in builds --without-x ace25f2066 Clarify the seq-reduce documentation 7d598e281d Make tramp-completion-reread-directory-timeout obsolete (B... 2c31ce18ea Fix 'message' when there's active minibuffer on another frame # Conflicts: # doc/misc/tramp.texi # etc/NEWS 2020-10-17 Mattias Engdegård * etc/NEWS: Mention new lexical binding conversion aid. 2020-10-17 Protesilaos Stavrou Update Modus themes' NEWS entry * etc/NEWS: Reword entry about new 'modus-operandi' and 'modus-vivendi' themes. Include reference to their manual. 2020-10-17 Jose A. Ortega Ruiz mixal-mode: add missed instructions Synchronises with latest released GNU MDK 1.2.11 * lisp/progmodes/mixal-mode.el (mixal-operation-codes-alist): Add missed instructions: SLB,SRB,JAE,JAO,JXE,JXO. 2020-10-17 Stefan Kangas Base bookmark-bmenu-mode on tabulated-list-mode (Bug#39293) Rewriting bookmark-bmenu-mode to be based on 'tabulated-list-mode' allows us to greatly simplify the code in several cases. In addition, we get some features for free, such as sorting by column. The only functional step backwards is that we no longer support the optional "inline" header line, a bookmark.el-specific feature to have a header without using 'header-line-format'. This feature is believed to be not very useful or widely used. * lisp/bookmark.el (tabulated-list): Require. (bookmark-bmenu-mode): Inherit from 'tabulated-list-mode' instead of 'special-mode' and make the necessary changes to support that. (bookmark-bmenu-mode-map): Inherit from 'tabulated-list-mode-map' instead of 'special-mode-map'. Remove now duplicate key bindings. (bookmark-bmenu--revert): New function to show the bookmark list using 'tabulated-list-mode'. (bookmark-bmenu-list): Simplify by using above new function. (bookmark-bmenu-bookmark): Adapt to 'tabulated-list-mode'. (bookmark-bmenu--name-predicate) (bookmark-bmenu--file-predicate): New functions used by 'tabulated-list-mode' to sort. (bookmark-bmenu-set-header): Redefine as obsolete function alias for 'tabulated-list-init-header'. (bookmark-bmenu-toggle-filenames, bookmark-bmenu-show-filenames) (bookmark-bmenu-hide-filenames, bookmark-bmenu-mark) (bookmark-bmenu-mark-all, bookmark-bmenu-unmark-all) (bookmark-bmenu-delete-all, bookmark-bmenu-unmark) (bookmark-bmenu-delete, bookmark-bmenu-delete-backwards): Simplify now that we can depend on 'tabulated-list-mode' to do more work. (bookmark-bmenu-use-header-line) (bookmark-bmenu-inline-header-height): Declare variables relating to the now unsupported "inline" header obsolete. (bookmark-bmenu-ensure-position) (bookmark-bmenu-execute-deletions): Remove code to handle "inline" header. * test/lisp/bookmark-tests.el (bookmark-test-bmenu-edit-annotation/show-annotation) (bookmark-test-bmenu-unmark, bookmark-test-bmenu-mark): Update tests for minor changes when using 'tabulated-list-mode'. 2020-10-17 Mattias Engdegård Add aid for finding missing dynamic variable declarations Find lexical use of variables that are dynamically declared in other files by recording 'defvar' declarations in files that can be read in by the compiler in a second compilation. This is particularly useful when converting code to use lexical-binding. The facility is controlled by setting environment variables: EMACS_GENERATE_DYNVARS -- set to non-empty to generate a .dynvars file corresponding to each .elc. EMACS_DYNVARS_FILE -- set to the name of a .dynvars file to use as defvar information during compilation, enabling the new warnings. * lisp/emacs-lisp/bytecomp.el (byte-compile--known-dynamic-vars) (byte-compile--seen-defvars): New variables. (byte-compile-warning-types): Add lexical-dynamic warning. (byte-compile--load-dynvars, byte-compile--warn-lexical-dynamic): New functions. * lisp/emacs-lisp/bytecomp.el (byte-compile-file, byte-compile--declare-var) (byte-compile-lambda, byte-compile-bind): Add dynamic variable loads, dumps and checks. * doc/lispref/variables.texi (Converting to Lexical Binding): Document. 2020-10-17 Stefan Kangas * test/lisp/mail/rfc822-tests.el: New file. * lisp/url/url-vars.el: Use lexical-binding. 2020-10-17 Eli Zaretskii Improve documentation of 'Info-hide-note-references' in info.texi * doc/misc/info.texi (Help-Xref): Improve the wording. (Emacs Info Variables): Update the documentation of 'Info-hide-note-references'. (Bug#44043) 2020-10-17 Pierre Neidhardt New shell-mode command to narrow to the command under point * lisp/shell.el (shell--prompt-end-position) (shell--prompt-begin-position): Helper functions. * lisp/shell.el (shell-narrow-to-prompt): New command and keystroke (bug#41784). 2020-10-17 Lars Ingebrigtsen Make woman ignore the new groff kerning operators * lisp/woman.el (woman-decode-region): Ignore the new groff kerning operators (bug#42219). 2020-10-17 Lars Ingebrigtsen Fix `browse-url-of-dired' * lisp/net/browse-url.el (browse-url-emacs): Make the `browse-url-of-dired' command work again after the browse-emacs changes (bug#42429). 2020-10-17 Lars Ingebrigtsen Avoid infloop in which-function-mode when a vc file has changed * lisp/vc/diff-mode.el (diff-find-source-location): Avoid warnings when called from which-function-mode and the file has changed (bug#42818). 2020-10-17 Stefan Kangas * admin/release-process: Add note to update files from upstream. (cherry picked from commit 86dd9d12aa5a273da2efd4ce8c6e35ae343f1494) 2020-10-17 Lars Ingebrigtsen Fix narrow-to-defun in f90-mode * lisp/progmodes/f90.el (f90-beginning-of-subprogram): Make narrow-to-defun work better (bug#44042). 2020-10-17 Eli Zaretskii * lisp/info.el (Info-hide-note-references): Doc fix. (Bug#44043) 2020-10-17 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-10-17 Stefan Kangas * admin/release-process: Add note to update files from upstream. 2020-10-16 Stefan Monnier * doc/lispref/variables.texi (Converting to Lexical Binding): New section Extract it from `Using Lexical Binding` and extend it a bit. 2020-10-16 Stefan Monnier * lisp/progmodes/python.el: Teach f-strings to `font-lock` (python--f-string-p, python--font-lock-f-strings): New functions. (python-font-lock-keywords-maximum-decoration): Use them. 2020-10-16 Alan Mackenzie Make lisp/progmodes/js.el dependent on CC Mode in the Makefile. This will prevent version mismatches between compile time and runtime versions. This fixes bug #43037. * lisp/Makefile.in: Make js.el dependent on cc-{defs,engine,mode}.elc. 2020-10-16 Lars Ingebrigtsen indent-rigidly doc string clarification * lisp/indent.el (indent-rigidly): Note that the command deactivates the mark (bug#42842). 2020-10-16 Lars Ingebrigtsen Make erc expand the final abbrev * lisp/erc/erc.el (erc-send-current-line): Expand abbrevs at the end of lines (bug#42854). 2020-10-16 Michael Albinus Make last change in tramp-archive-tests.el backward compatible * test/lisp/net/tramp-archive-tests.el (ert-resource-directory-format) (ert-resource-directory-trim-left-regexp) (ert-resource-directory-trim-right-regexp, ert-resource-directory) (ert-resource-file): Define if they don't exist. 2020-10-16 Eli Zaretskii Fix documentation of Modus Themes * doc/misc/modus-themes.texi (Install from the archives) (No mixed fonts): Remove references to MELPA. (How do the themes look like) (Enable and load, Load automatically) (Configure options prior to loading, Customisation Options) (No mixed fonts, Command prompts, Mode line, Completion UIs) (Fringes, Line highlighting, Matching parentheses, Diffs) (Org mode blocks, Heading styles, Tweak colors (DIY)) (Org user faces (DIY), Supported packages) (Will NOT be supported, Note for ERC escaped color sequences) (Note on shr colors, Note for Helm grep) (Note on vc-annotate-background-mode, Sources of the themes): Fix spelling, wording, and markup. 2020-10-16 Eli Zaretskii Revert "* doc/emacs/ack.texi (Acknowledgments): Remove now deleted files." This reverts commit 731a26bb50aabeb2c0512f0e45b3cda76029a590. We don't support rewriting history! People who contributed to Emacs development should have their contributions remain acknowledged forever, even if the files to which they contributed are deleted at some point. 2020-10-16 Eli Zaretskii Fix file-name problems in several tests * test/lisp/saveplace-tests.el (saveplace-test-forget-unreadable-files): Use file-truename, to avoid false negatives when file names are not 'equal' as strings, but point to the same file. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-with-normal-env) (edebug-tests-run-macro): * test/lisp/emacs-lisp/testcover-tests.el (testcover-tests-markup-region, testcover-tests-run-test-case): Bind find-file-suppress-same-file-warnings to a non-nil value, to avoid warnings about "same-file-names", at least on MS-Windows, due to 8+3 aliases. 2020-10-16 Stefan Kangas Remove some Emacs 19 compat code * lisp/type-break.el (type-break-time-stamp): Remove Emacs 19 compat code. 2020-10-16 Stefan Kangas Remove some references to Emacs 18 and 19 * doc/misc/forms.texi (Modifying Forms Contents, Error Messages): * lisp/arc-mode.el: * lisp/emacs-lisp/edebug.el (edebug-temp-display-freq-count): * lisp/type-break.el: Remove some references to Emacs 18 and 19. 2020-10-16 Stefan Kangas * doc/emacs/ack.texi (Acknowledgments): Remove now deleted files. This is in line with an ack.texi comment that says to "Remove things that are no longer distributed." Most files in this list were removed many years ago. 2020-10-16 Stefan Kangas Fix building modus-themes Info manual * doc/misc/Makefile.in (INFO_COMMON): Add modus-themes. * doc/misc/modus-themes.texi: Adapt to fit Emacs conventions. 2020-10-16 Protesilaos Stavrou Update modus-operandi, modus-vivendi to 0.13.0 * etc/themes/modus-operandi-theme.el: Update to version 0.13.0. * etc/themes/modus-vivendi-theme.el: Update to version 0.13.0. * doc/misc/modus-themes.texi: Include new texinfo documentation for modus-operandi and modus-vivendi themes. (Bug#43944) 2020-10-16 Mattias Engdegård * lisp/emacs-lisp/backquote.el: Use lexical binding. 2020-10-16 Stefan Kangas Use new resource directory macros in tests (Bug#43792) * test/lisp/bookmark-tests.el (bookmark-tests-data-dir): * test/lisp/calendar/todo-mode-tests.el (todo-test-data-dir): * test/lisp/net/dbus-tests.el (dbus--tests-dir): * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-sample-code-file): * test/lisp/emacs-lisp/package-tests.el (package-test-fake-contents-file): * test/lisp/emacs-lisp/shadow-tests.el (shadow-tests-data-directory): * test/lisp/emacs-lisp/testcover-tests.el (testcover-tests-file-dir, testcover-tests-test-cases): * test/lisp/mail/uudecode-tests.el (uudecode-tests-data-dir): * test/lisp/net/tramp-archive-tests.el (tramp-archive-test-resource-directory): * test/lisp/pcmpl-linux-tests.el (pcmpl-linux-tests-data-dir): * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-tests-data-directory): * test/lisp/progmodes/flymake-tests.el (flymake-tests-data-directory): * test/lisp/progmodes/ruby-mode-tests.el (ruby-mode-tests-data-dir): * test/lisp/saveplace-tests.el (saveplace-tests-dir): * test/lisp/textmodes/css-mode-tests.el (css-mode-tests-data-dir): Remove. * test/lisp/bookmark-tests.el (bookmark-tests-bookmark-file) (bookmark-tests-example-file, bookmark-tests-bookmark-file-list): * test/lisp/calendar/todo-mode-tests.el (todo-test-file-1) (todo-test-archive-1, with-todo-test, todo-test--add-file): * test/lisp/custom-tests.el (custom--test-theme-variables): * test/lisp/net/dbus-tests.el (dbus--test-introspect): * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-setup-code-file): * test/lisp/emacs-lisp/package-tests.el (package-test-data-dir) (package-test-desc-from-buffer, package-test-install-single) (package-test-macro-compilation) (package-test-install-prioritized) (package-test-install-multifile, package-test-update-archives) (package-test-update-archives-async) (package-test-update-archives/ignore-nil-entry) (package-test-signed, package-x-test-upload-buffer) (package-x-test-upload-new-version): * test/lisp/emacs-lisp/shadow-tests.el (shadow-case-insensitive): * test/lisp/emacs-lisp/testcover-tests.el (testcover-tests-build-test-cases): * test/lisp/mail/uudecode-tests.el (uudecode-tests-encoded-str) (uudecode-tests-decoded-str): * test/lisp/net/tramp-archive-tests.el (tramp-archive-test-file-archive) (tramp-archive-test-directory): * test/lisp/pcmpl-linux-tests.el (pcmpl-linux-test-fs-types) (pcmpl-linux-test-mounted-directories): * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-test-bug-10483) (cperl-mode-test-indent-styles): * test/lisp/progmodes/flymake-tests.el (flymake-tests--call-with-fixture): * test/lisp/progmodes/ruby-mode-tests.el (ruby--indent/converted-from-manual-test): * test/lisp/saveplace-tests.el (saveplace-test-save-place-to-alist/dir) (saveplace-test-load-alist-from-file): * test/lisp/textmodes/css-mode-tests.el (css-mode-test-indent): Adjust to use new resource directory macros. 2020-10-16 Stefan Kangas Add ert macros to get resource file names (Bug#43792) * lisp/emacs-lisp/ert-x.el (subr-x): Require. (ert-resource-dir, ert-resource-file): New macros to get the file name of the resource directory belonging to a test. (ert-resource-dir-format, ert-resource-dir-trim-left-regexp) (ert-resource-dir-trim-right-regexp): New variables. 2020-10-16 Lars Ingebrigtsen Fix previous gnus-icalendar sanitization * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-ical): Fix previous change -- respect nil values passed in. 2020-10-16 Stephen Berman Adjust some tests so that they work in symlinked environs * test/lisp/help-fns-tests.el (help-fns-test-lisp-macro) (help-fns-test-lisp-defsubst): * test/lisp/emacs-lisp/cl-generic-tests.el (cl-generic-tests--method-files--finds-methods): Adjust test so that they work in a symlinked environment (bug#43004). (cl-generic-tests--method-files--finds-methods): Use file-truename so that this works in a symlinked environment (bug#43004). 2020-10-16 Lars Ingebrigtsen Sanitize ical data in gnus-icalendar-event-from-ical * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event-from-ical): Sanitise the data before passing it on to the constructor. This avoids backtraces on icals with extra, unknown slots (bug#43057). 2020-10-16 Basil L. Contovounesios Substitute command keys in button help-echo values * lisp/button.el (button--help-echo): Pass resulting string through substitute-command-keys for consistency with show-help-function. * test/lisp/button-tests.el (button-tests--map): New test keymap. (button--help-echo-string, button--help-echo-form) (button--help-echo-function): Use it to test command key substitution in help-echo strings (bug#43070). 2020-10-16 Eli Zaretskii Yet another fix for 'set-minibuffer-message' * lisp/minibuffer.el (set-minibuffer-message): Handle the case of separate minibuffer-only frame. Suggested by Gregory Heytings . 2020-10-16 Lars Ingebrigtsen Make package-install-from-buffer maybe refresh the quickstart file * lisp/emacs-lisp/package.el (package-install-from-buffer): Refresh the quickstart file (bug#43237). This makes this command more consistent with package-install. 2020-10-16 Eli Zaretskii Fix posn-at-x-y in builds --without-x * src/keyboard.c (make_lispy_position): Don't exclude the window_or_frame = frame case from TTY-only builds. Reported by Jared Finder . * doc/lispref/commands.texi (Click Events): Document the format of POSITION in click events on the frame's internal border. 2020-10-16 Lars Ingebrigtsen diff-update-on-the-fly doc string clarification * lisp/vc/diff-mode.el (diff-update-on-the-fly): Mention what the nil value does (bug#43297). 2020-10-16 Lars Ingebrigtsen Restore vc-revision-other-window buffer-changing behaviour * lisp/vc/vc.el (vc-revision-other-window): This function used to change the current buffer, but this was changed in the previous patch for indirect buffer support. Ensure that it still does this, because this is what the callers expect (bug#44026). 2020-10-16 Lars Ingebrigtsen Doc string clarification for keep-lines * lisp/replace.el (keep-lines): Note that REND isn't optional if RSTART is given (bug#44021). 2020-10-16 Lars Ingebrigtsen Add a new variable to control Gnus Agent caching * doc/misc/gnus.texi (Agent Variables): Document it. * lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Ditto. * lisp/gnus/gnus-async.el (gnus-async-article-callback): Use it. * lisp/gnus/gnus.el (gnus-agent-eagerly-store-articles): New variable. Includes work from Madhu . 2020-10-16 Richard M Stallman Add way to prevent asking "increase specpdl size?" * net/shr.el (shr-offer-extend-specpdl): New option, default t. (shr-descend): If shr-offer-extend-specpdl is nil, don't even ask whether to extend the specpdl, just signal error. 2020-10-15 Stefan Monnier * lisp/emacs-lisp/warnings.el (display-warning): Don't be so negative 2020-10-15 Lars Ingebrigtsen Don't display the warning buttons in bytecomp buffers * lisp/emacs-lisp/warnings.el (display-warning): Don't do the buttons in bytecomp buffers. 2020-10-15 Lars Ingebrigtsen Make hi-lock-face-buffer more resilient * lisp/hi-lock.el (hi-lock-face-buffer): If given a face name a string, convert it to a symbol first, as later usage of this expects a symbol and not a string (bug#43339). 2020-10-15 Lars Ingebrigtsen Add some references to the microdocs in the comments in cperl-mode * lisp/progmodes/cperl-mode.el: Tell the people reading the comments how to read the docs explicitly (bug#1621). 2020-10-15 David Engster Search harder for file name matches in *compilation* buffers * lisp/progmodes/compile.el (compilation-find-file): Use it (bug#14411). (compilation-search-all-directories): New variable. 2020-10-15 Lars Ingebrigtsen Make `C-x C-e' work more like `C-M-x' on defvar etc * doc/emacs/building.texi (Lisp Eval): Document it. * lisp/emacs-lisp/pp.el (pp-eval-last-sexp): Ditto. * lisp/progmodes/elisp-mode.el (elisp--eval-last-sexp): Work more like `eval-defun': Re-evaluate defvar/defcustom/defface forms. 2020-10-15 Stefan Kangas * doc/misc/efaq.texi: Remove reference to FTP. 2020-10-15 Stefan Kangas Remove some references to "in Emacs 21 or later" * doc/misc/efaq.texi (Colors on a TTY, Disabling backups) (Errors with init files, Backspace invokes help) (Backspace invokes help): Remove some references to "in Emacs 21 or later". Now everyone can be assumed to use at least that version. 2020-10-15 Stefan Kangas Move emacsclient.1 file history further down * doc/man/emacsclient.1: Move file history further down; it doesn't need to be prominently displayed in the introductory paragraph. 2020-10-15 Lars Ingebrigtsen Fix undefined function in project-compile * lisp/progmodes/project.el (project-compile): Require compile.el before using functions from the file (bug#44009). 2020-10-15 Andrea Corallo Do not check eln timestamp as superseded by source hashing (bug#43532) * src/lread.c (maybe_swap_for_eln): Remove eln file timestamp check given is now unnecessary. (openp): Update for new 'maybe_swap_for_eln' signature. 2020-10-15 Mattias Engdegård Remove dynamic declaration of 'save-match-data-internal' * lisp/subr.el: Remove defvar which has no relevance today; it can very well be a lexical variable. 2020-10-15 Jeff Walsh Fix segfault in xwidget when there is no title * src/xwidget.c (Fxwidget_webkit_title): Pass empty string when no title is returned (bug#43989). 2020-10-15 Lars Ingebrigtsen Clarify the seq-reduce documentation * doc/lispref/sequences.texi (Sequence Functions): Ditto. * lisp/emacs-lisp/seq.el (seq-reduce): Clarify the order of the arguments (bug#43995). 2020-10-15 Lars Ingebrigtsen Fix problem with next-error-message-highlight in *Occur* * lisp/simple.el (next-error-message-highlight): This function is called directly, so clean up the code a bit (bug#32676). (next-error-found): Pass in the error buffer. 2020-10-15 Lars Ingebrigtsen Fix NEWS item for C-h R 2020-10-15 Lars Ingebrigtsen Make Gnus more liberal when interpreting Face headers again * lisp/gnus/gnus-fun.el (gnus-convert-face-to-png): Do it. * lisp/gnus/gnus-util.el (gnus-base64-repad): Allow not checking anything, but just repadding. 2020-10-15 Richard M Stallman Clarify wording Clarify doc string of line-to-top-of-window. 2020-10-15 Richard M Stallman Handle retrying of MIME failure messages * lisp/mail/rmail.el (rmail-retry-failure): Handle retrying of MIME failure messages. 2020-10-15 Richard M Stallman Handle encrypting mime parts * lisp/epa-mail.el (epa-mail-encrypt): Insert any encoded mime parts that are queued up to insert before sending the message. 2020-10-15 Stefan Monnier * lisp/calc: Fix a few issues introduced by lexical scoping Fix a few places I missed, where we incorrectly used lexical scoping on a var that needed dynamic scoping. These were detected thanks to a bit of footwork by Mattias Engdegård! * lisp/calc/calc-ext.el (math-read-big-lines): Declare as dynbound. (math-read-big-bigp): Bind it inside a `let`. * lisp/calc/calc-graph.el (math-arglist): Declare as dynbound. * lisp/calc/calc-map.el (math-arglist): Declare as dynbound. * lisp/calc/calc-misc.el (math-trunc-prec): Declare as dynbound. (math-trunc): Bind it inside a `let`. (math-floor-prec): Declare as dynbound. (math-floor): Bind it inside a `let`. * lisp/calc/calc-nlfit.el (calc-curve-varnames, calc-curve-coefnames): Declare as dynbound. * lisp/calc/calc-sel.el (math-comp-sel-tag): Declare as dynbound. * lisp/calc/calcsel2.el (calc-sel-reselect): Declare as dynbound. 2020-10-14 Andreas Schwab Fix layout of custom-face-edit widget * lisp/cus-edit.el (custom-face-edit): Add :format to group widget. (Bug#43977) 2020-10-14 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-10-14 Andrea Corallo Use form native compilation in `comp-trampoline-compile' * lisp/emacs-lisp/comp.el (comp-trampoline-sym): Remove function. (comp-trampoline-filename): As we are introducing an ABI change in the eln trampoline format change the trampoline filename to disambiguate. (comp-trampoline-search): Rename from `comp-search-trampoline' and return directly the trampoline. (comp-trampoline-compile): Rework to use native form compilation in place of un-evaluating a function and return directly the trampoline. (comp-subr-trampoline-install): Update for `comp-trampoline-search' and `comp-trampoline-compile' new interfaces. * src/comp.c (Fcomp__install_trampoline): Store the trampoline itself as value in `comp-installed-trampolines-h'. (syms_of_comp): Doc update `comp-installed-trampolines-h'. 2020-10-14 Andrea Corallo Add a test to verify form native compilation. * test/src/comp-tests.el (comp-deftest): Fix typo. (compile-forms): New test. 2020-10-14 Andrea Corallo Rework `native-compile' interface so it can return compiled functions * lisp/emacs-lisp/comp.el (native-compile): Return the compiled function when the input is a symbol or a form. * test/src/comp-tests.el (free-fun, tco, fw-prop): Update tests for new `native-compile' interface. 2020-10-14 Andrea Corallo Have `native-elisp-load' return the last registerd function * lisp/emacs-lisp/comp.el (comp-emit-for-top-level): Synthesize 'top_level_run' so it returns the last value returned by `comp--register-subr'. * src/comp.c (load_comp_unit): Return what 'top_level_run' returns. (Fnative_elisp_load): Return what 'load_comp_unit' returns. * src/comp.h (load_comp_unit): Update signature. 2020-10-14 Andrea Corallo Allow for lambda forms as native compilation input * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Add new specialized method for compiling a lambda form. 2020-10-14 Andrea Corallo Move context output computation in `comp-spill-lap-function' * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Move output filename computation here. (native-compile): From here. 2020-10-14 Juri Linkov Highlight regexp sub-expressions in query-replace * lisp/replace.el (query-replace-highlight-submatches): New defcustom. (replace-submatches-overlays): New variable. (replace-highlight): Use query-replace-highlight-submatches. (replace-dehighlight): Use query-replace-highlight-submatches. * doc/emacs/search.texi (Query Replace): Add documentation for query-replace-highlight-submatches. Suggested by Drew Adams in bug#43702. 2020-10-14 Juri Linkov * lisp/progmodes/grep.el: More fixes for 'lgrep' (bug#23590) * lisp/progmodes/grep.el (grep-expand-template): Add new arg 'more-opts'. (grep-use-directories-skip): New variable. (lgrep): Set 'grep-use-directories-skip' to the result of 'grep-probe'. Use "--directories=skip" when 'grep-use-directories-skip' is t. 2020-10-14 Ernesto Alfonso Add option to highlight the 'next-error' error message * lisp/simple.el (next-error-message-highlight): (next-error-message): New faces (bug#32676). (next-error--message-highlight-overlay): New internal variable. (next-error-message-highlight): New function. (next-error-found): Call the function. 2020-10-14 Alex Branham Add a new variable tab-first-completion * doc/emacs/indent.texi (Indent Convenience): Mention it. * doc/lispref/text.texi (Mode-Specific Indent): Document it. * lisp/indent.el (tab-first-completion): New variable (bug#34787). (indent-for-tab-command): Use it. 2020-10-14 Lars Ingebrigtsen Rename dired-filename-at-point to avoid confusion * lisp/dired-x.el (dired-x-guess-filename-at-point): Rename (bug#43961). (dired-filename-at-point): Made into an obsolete alias, since the name can be confused with the unrelated dired-file-name-at-point function. 2020-10-14 Philipp Klaus Krause (tiny change) Mark the return value from strerror as a constant * src/emacs.c (main): Mark the return from strerror as a constant, since it shouldn't be changed (bug#43982). * lib-src/movemail.c (pfatal_and_delete): Ditto. 2020-10-14 Masahiro Nakamura Improve package install/delete button action * lisp/emacs-lisp/package.el (package-install-button-action) (package-delete-button-action): Run describe-package instead of revert-buffer in order to use newer package-desc (bug#43983). 2020-10-14 Lars Ingebrigtsen Fix name of the module .h files in the comments * src/emacs-module.c: Fix the name of the .h file in the comments. 2020-10-14 Lars Ingebrigtsen Move the new module unibyte function to the correct module-env.h file * src/module-env-28.h: Moved here from the -25.h file. 2020-10-13 Mattias Engdegård * etc/NEWS (Calc): Note new precedence of '/' in TeX input mode. 2020-10-13 Paul Eggert nnimap MODSEQ cleanup * lisp/gnus/nnimap.el (nnimap-parse-flags): Remove old hack that deletes MODSEQ entries in the buffer, as Emacs now has bignums and so won't misparse MODSEQs (Bug#38938). 2020-10-13 Paul Eggert eql doc improvements * doc/lispref/numbers.texi (Comparison of Numbers): Copy some useful text from eql help string. * src/fns.c (Feql): In doc string, say that eql also compares integers by value. 2020-10-13 Eli Zaretskii Fix documentation of Outline cycling commands * lisp/outline.el (outline-mode-map): Fix wording of a comment. * doc/emacs/text.texi (Outline Visibility): Fix wording and markup of a recently added paragraph. Improve indexing. * etc/NEWS: Fix whitespace of a recently added entry. 2020-10-13 Eli Zaretskii * etc/NEWS: Mention 'make_unibyte_string'; reformat modules entries. 2020-10-13 Mattias Engdegård Calc: allow infinite binary word size (bug#43764) Setting the word size ("b w") to 0 removes the word size clipping for all bit operations (effectively as if a word size of -∞ had been set). Rotation is disallowed; logical and arithmetic shifts behave identically. After a suggestion by Vincent Belaïche. * lisp/calc/calc-bin.el (calc-word-size, math-binary-arg) (math-binary-modulo-args, calcFunc-lsh, calcFunc-ash, calcFunc-rot) (math-clip, math-format-twos-complement): Allow a word size of 0, meaning -∞. * test/lisp/calc/calc-tests.el (calc-tests--not, calc-tests--and, calc-tests--or, calc-tests--xor) (calc-tests--diff): New functions. (calc-tests--clip, calc-tests--rot, calc-shift-binary): Extend to cover word size 0. (calc-bit-ops): New test. * doc/misc/calc.texi (Binary Functions): Update manual. * etc/NEWS: Announce the change. 2020-10-13 Mattias Engdegård Calc: revert to old precedence of '/' in (La)TeX input mode Make the '/' precedence higher than that of '+' and '-' again, partially reverting fda9b316f84 (bug#43902). * lisp/calc/calc-lang.el (tex): Change precedence of '/'. * test/lisp/calc/calc-tests.el (calc-latex-input): New test. 2020-10-13 Mattias Engdegård Calc: make tests less chatty * test/lisp/calc/calc-tests.el (calc-extract-units, calc-convert-units) (calc-matrix-determinant, calc-choose): Remove "Working..." messages. (calc-tests--check-choose, calc-tests--explain-choose): Eliminate. 2020-10-13 Lars Ingebrigtsen Allow creating unibyte strings from Emacs modules * doc/lispref/internals.texi (Module Values): Document make_unibyte_string (bug#34873). * src/emacs-module.c (module_make_unibyte_string): New function. (initialize_environment): Export it. * src/module-env-25.h: Define it. * test/data/emacs-module/mod-test.c (Fmod_test_return_unibyte): Test it. * test/src/emacs-module-tests.el (module/unibyte): Test it. 2020-10-13 Lars Ingebrigtsen Partially revert previous patch to emacs.service * etc/emacs.service (ExecStop): Partially revert previous patch for bug#37847, since: "This appears to break packages that rely on `invocation-name' to be executable." 2020-10-13 Yuan Fu Add cycling commands to outline * lisp/outline.el (outline--cycle-state, outline-has-subheading-p) (outline-cycle, outline-cycle-buffer): New functions. (outline-mode-map): Add key bindings for the two new commands. (outline--cycle-buffer-state): New variable. * doc/emacs/text.texi (Outline Visibility): Add 'outline-cycle' and 'outline-cycle-buffer'. * etc/NEWS (Outline): Record the change (bug#41130). 2020-10-13 Lars Ingebrigtsen Make read-char-choice less modal * lisp/subr.el (read-char-choice): Use `read-char-from-minibuffer' here (bug#42708) so that we're not as modal (and users can copy the help buffer, if they should so want). 2020-10-13 Lars Ingebrigtsen Make diary fontify headers correctly (if the date has been customized) * lisp/calendar/diary-lib.el (diary-fancy-display): Insert the heading with the correct face, so that it doesn't have to be re-matched later (which is generally impossible) (bug#13072). (diary-fancy-date-pattern, diary-fancy-date-matcher): Make obsolete. (diary-fancy-font-lock-keywords): Don't use. (diary-fancy-font-lock-fontify-region-function): Don't use. 2020-10-13 Mauro Aranda Don't bind sort-fold-case when saving the custom-file * lisp/cus-edit.el (custom-save-variables, custom-save-faces): These functions sort a list, not buffer text, so they don't need to use sort-fold-case at all. Remove the let-binding for sort-fold-case (bug#43919). 2020-10-13 Lars Ingebrigtsen Have header-line-highlight inherit from mode-line-highlight * lisp/faces.el (header-line-highlight): Inherit from mode-line-highlight instead of highlight (bug#43926). This is consistent with header-line inheriting from mode-line. 2020-10-13 Lars Ingebrigtsen message-insert-signature doc fix * lisp/gnus/message.el (message-insert-signature): Clarify what FORCE means. 2020-10-13 Boruch Baum Add a keybinding to the help menu to display manuals * lisp/help.el (help-for-help-internal): Add a keybinding to prompt for and display a manual (bug#43956). 2020-10-12 Juri Linkov * lisp/isearch.el (isearch-search): Set isearch-match-data in the right place. 2020-10-12 Brian Leung Fix some compilation warnings in non nativecomp build (bug#43892) * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Declare function. * lisp/emacs-lisp/find-func.el (comp-eln-to-el-h): Declare variable. * lisp/emacs-lisp/nadvice.el (comp-subr-trampoline-install): Declare function. * lisp/files.el (comp-eln-to-el-h): Declare variable. * lisp/help.el (subr-native-lambda-list): Declare function. 2020-10-12 Andrea Corallo Revert "Fix some compilation warnings in non nativecomp build (bug#43892)" This reverts commit 6606ec8e313bf48a1ac7b63c52bfeb64c4257107. 2020-10-12 Andrea Corallo Fix some compilation warnings in non nativecomp build (bug#43892) * lisp/emacs-lisp/advice.el (comp-subr-trampoline-install): Declare function. * lisp/emacs-lisp/find-func.el (comp-eln-to-el-h): Declare variable. * lisp/emacs-lisp/nadvice.el (comp-subr-trampoline-install): Declare function. * lisp/files.el (comp-eln-to-el-h): Declare variable. * lisp/help.el (subr-native-lambda-list): Declare function. 2020-10-12 Stefan Kangas Fix man page title lines and timestamps * doc/man/ebrowse.1: * doc/man/emacs.1.in: * doc/man/emacsclient.1: * doc/man/etags.1: Update date to match last significant change. Set file local variable time-stamp-pattern. Fix title line to match the recommendations in "man man-pages". Ref: https://lists.gnu.org/r/emacs-devel/2020-09/msg01002.html 2020-10-12 Michael Albinus Make tramp-completion-reread-directory-timeout obsolete (Bug#43932) * doc/misc/tramp.texi (File name completion, Frequently Asked Questions): Remove `tramp-completion-reread-directory-timeout'. (Bug#43932) * etc/NEWS: Mention tramp-completion-reread-directory-timeout as obsolete. * lisp/net/tramp.el (tramp-completion-reread-directory-timeout): Make it obsolete. 2020-10-12 Hugh Daschbach Add interface arg to D-Bus PropertiesChanged signal. * lisp/net/dbus.el (dbus-register-property, dbus-property-handler): Fix signal generation. (Bug#43936) * test/lisp/net/dbus-tests.el (dbus-test06-register-property-emits-signal): Fix test. 2020-10-12 Stefan Monnier * lisp/proced.el: Fix behavior with variable-pitch `header-line` face Also, use lexical-scoping. Remove redundant `:group` args. (proced-process-alist, proced-header-line): Use `defvar-local` (proced-header-line): Put :align-to on spaces to improve result with variable-pitch header-line face. (proced-filter, proced-format): Use a closure instead of `(lambda ...). 2020-10-12 Lars Ingebrigtsen Add a reference to the shortdoc command in the Emacs manual * doc/emacs/help.texi (Name Help): Mention shortdoc. 2020-10-12 Lars Ingebrigtsen Add a shortdoc menu entry * lisp/menu-bar.el (menu-bar-describe-menu): Add a shortdoc menu entry. 2020-10-11 Lars Ingebrigtsen Fix error in file shortdoc group * lisp/emacs-lisp/shortdoc.el (number): Add some more numeric stuff (and clean up some arglists). 2020-10-11 Stefan Monnier * lisp/hexl.el: Fix behavior with variable-pitch `header-line` face (hexl-ascii-region): Don't inherit from the `header-line`. (hexl-font-lock-keywords): Fix text alignment. (hexl-mode): Set `font-lock-extra-managed-props` accordingly. 2020-10-11 Alan Third Fix GNUstep build Fix mistakes made when removing Cocoa code from nsfont.m. * src/nsfont.m (nsfont_draw): Remove spurious #ifdef. (ns_uni_to_glyphs): The #if/#endif was removed from this code, but the code itself not removed. Remove it now. 2020-10-11 Stefan Kangas * lisp/tooltip.el: Remove redundant :group args. * lisp/tooltip.el: Use lexical-binding. 2020-10-11 Gregory Heytings (tiny change) Fix 'message' when there's active minibuffer on another frame * lisp/minibuffer.el (set-minibuffer-message): Don't reuse the active minibuffer for displaying messages unless the active minibuffer is on the same frame as the selected window. 2020-10-11 Eli Zaretskii Improve documentation of shortdoc features * lisp/help-fns.el (help-fns-describe-function-functions): Doc fix. * lisp/emacs-lisp/shortdoc.el (define-short-documentation-group) (shortdoc-display-group, shortdoc-add-function): Doc fixes. * doc/lispref/help.texi (Documentation Groups): Improve the recently-added documentation and the indexing. 2020-10-11 Stefan Kangas * lisp/url/url-domsuf.el: Use lexical-binding. 2020-10-11 Stefan Kangas Convert url-domsuf.el tests to ert * lisp/url/url-domsuf.el: Move commented out tests from here... * test/lisp/url/url-domsuf-tests.el: ...to this new file. 2020-10-11 Stefan Kangas Update publicsuffix.txt from upstream * etc/publicsuffix.txt: Update from https://publicsuffix.org/list/public_suffix_list.dat dated 2020-10-09 08:23:34 UTC. 2020-10-11 Lars Ingebrigtsen Add more numeric shortdocs * lisp/emacs-lisp/shortdoc.el (shortdoc-section) (shortdoc-example): Lighten up colours on light backgrounds. 2020-10-11 Lars Ingebrigtsen Tweak shortdoc colours on light backgrounds * lisp/emacs-lisp/shortdoc.el (shortdoc-section) (shortdoc-example): Lighten up colours on light backgrounds. 2020-10-11 Lars Ingebrigtsen Autoload shortdoc command and adjust NEWS * lisp/emacs-lisp/shortdoc.el (shortdoc-display-group): Autoload. 2020-10-11 Lars Ingebrigtsen Use Unicode arrows in shortdoc results * lisp/emacs-lisp/shortdoc.el (shortdoc--display-function): Use Unicode arrows if possible. 2020-10-11 Lars Ingebrigtsen Don't boldify the flyspell language indicator in the mode line * lisp/textmodes/flyspell.el (flyspell-mode): Don't boldify the language part -- it draws too much attention in the minor mode list. 2020-10-11 Stephen Berman Allow killing files with C-k in wdired if -F is used * lisp/wdired.el (wdired-change-to-wdired-mode): Add hook to restore properties. (wdired-change-to-wdired-mode): Adjust check for symlinks. (wdired-preprocess-files): Fix parsing when using the -F flag. (wdired-get-filename): Fix parsing of symlinks when using the -F flag. (wdired--restore-properties): Renamed, and restore more properties (bug#18475). 2020-10-11 Lars Ingebrigtsen Add support for displaying short documentation for function groups * doc/lispref/help.texi (Documentation Groups): Document it. * lisp/help-fns.el (help-fns--mention-shortdoc-groups): Output references to the shortdocs. * lisp/emacs-lisp/shortdoc.el: New file. 2020-10-11 Juri Linkov Make C-w worth in isearch when at the last match in the buffer * lisp/isearch.el (isearch-yank-internal): Make C-w work when at the last match in the buffer (bug#22118). 2020-10-11 Noam Postavsky Clarify how to set single-function hooks * doc/lispref/modes.texi (Hooks): Clarify the difference between normal hooks and single-function "hooks" (bug#25581). 2020-10-11 Lars Ingebrigtsen Fix link in previous display.texi change * doc/lispref/display.texi (Fontsets): Link to the correct node in the Elisp manual, not in the Emacs manual. 2020-10-11 Robert Weiner Make posn-set-point work on frame events * lisp/subr.el (event-start): Mention the frame part of the events. (posn-window): Ditto. (posn-set-point): Make this work if the event is a frame event (bug#28621). 2020-10-11 Robert Pluim Fix the documentation of char-displayable-p * doc/lispref/display.texi (Fontsets): Make the documentation of char-displayable-p less incorrect (bug#35230). 2020-10-10 Rasmus gnus-icalendar.el: Fix bug in gnus-icalendar-identities * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event--find-attendee): (gnus-icalendar-identities) `gnus-ignored-from-addresses' and `message-alternative-emails' may be functions. This is not supported by `gnus-icalendar-event--find-attendee' (bug#43908). 2020-10-10 Stefan Monnier * lisp/calc/: Use lexical scoping in all the files Includes the following pervasive changes: - Move some defvars earlier in the file so they cover earlier let-bindings - Change dynamically scoped `calc-FOO` or `math-FOO` function arguments to just FOO and then let-bind the `calc-FOO` or `math-FOO` variable explicitly in the body of the function. In some cases, the beginning of the function was changed to refer to FOO so as to delay the binding to a nearby `let` when I could ensure that it did not make a difference. - Add an underscore in front of unused vars or comment them out altogether. - Replace unused `err` arg to `condition-case` with nil. Plus the additional itemized changes below. * lisp/calc/calc-map.el (calcFunc-reducer): * lisp/calc/calc-arith.el (math-setup-declarations): * lisp/calc/calc-help.el (calc-full-help, calc-help-index-entries) (calc-full-help): Use `ignore-errors`. * lisp/calc/calc-embed.el (calc-embedded-modes-change): Declare `the-language` and `the-display-just` as dynamically scoped. * lisp/calc/calc-forms.el (math-setup-year-holidays): Use `dolist`. * lisp/calc/calc-graph.el (calc-graph-set-styles): Use `symbol-value` rather than `eval.` (calc-graph-delete-temps, calc-graph-set-styles): Use ignore-errors. * lisp/calc/calc-macs.el (calc-with-trail-buffer): Add artificial use of `save-buf` to silence compiler warnings in all the cases where `body` doesn't make use of it. * lisp/calc/calc-math.el (math-largest-emacs-expt) (math-smallest-emacs-expt, math-use-emacs-fn): Use ignore-errors. * lisp/calc/calc-mode.el (calc-total-algebraic-mode): Remove "P" from interactive spec since it's not used anyway. * lisp/calc/calc-rewr.el (calc-match): Simplify. * lisp/calc/calc.el (calc-buffer): Give it a global nil value, so it's automatically declared dynbound in any file that requires `calc`. (calcDigit-nondigit): Adjust accordingly. * lisp/calc/calcalg2.el (calcFunc-table): Declare `var-dummy` as dynbound. (math-scan-for-limits): Comment out dead code. * lisp/calc/calcalg3.el (math-general-fit): Declare `var-YVAL` and `var-YVALX` as dynbound. 2020-10-10 Andrea Corallo * lisp/help.el (help-function-arglist): Fix non nativecomp builds (bug#43914) 2020-10-10 Andrea Corallo As edges are indexed store them in an hash table * lisp/emacs-lisp/comp.el (comp-edge): Update doc for 'number' slot. (comp-func): Rename 'edges' slot into 'edges-h'. (comp-log-edges): Update logic for edges in an hash table. (comp-clean-ssa, comp-compute-edges): Likewise. 2020-10-10 Andrea Corallo Add into phi l-value args basic block names * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): Clean-up a leftover space. (comp-finalize-phis): Cons the blasic block name providing the mvar together with the mvar itself while forming the phi. (comp-fwprop-insn): Destructure correctly the phi. 2020-10-10 Andrea Corallo Provide feature nativecomp and make use of it * lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Use `featurep' to identify if the native compiler is available. * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. * lisp/emacs-lisp/package.el (package--delete-directory): Likewise. * lisp/loadup.el: Likewise. * src/comp.c (syms_of_comp): Provide feature nativecomp. 2020-10-10 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-func): Fix doc for blocks slot. 2020-10-10 Stefan Monnier * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Doc tweak Try and clarify the meaning of `init-value`. 2020-10-10 Glenn Morris Merge from origin/emacs-27 c00606171f (origin/emacs-27) A better fix for bug#43886 3196fd44c3 Avoid crashes when a theme is loaded with one frame suspended 0407b15500 Removed an incorrectly placed extra word in the semantic docs 040dcbe53e Fix current-line hscrolling when overlays change c56eeba2ce Extend tests for shell-command-dont-erase-buffer 2020-10-10 Glenn Morris Merge from origin/emacs-27 b6704d58e8 ; * src/xdisp.c (Fwindow_text_pixel_size): Doc fix. 2020-10-10 Glenn Morris Merge from origin/emacs-27 acc9b46153 Fix merging of region face for non-ASCII characters c2a13969e4 Make drag and drop on NS open all URLs (bug#43470) 2020-10-10 Andrea Corallo Fix LIMPLE latch block name coloring in "*Native-compile-Log*" * lisp/emacs-lisp/comp.el (comp-limple-lock-keywords): Fix latch block name coloring. 2020-10-10 Brian Leung Various typo fixes in native compiler related files * lisp/emacs-lisp/comp.el (native-compiler-error-dyn-func) (comp-func, comp-func-l) (comp-func-d, comp-ensure-native-compiler, comp-type-hint-p) (comp-func-unique-in-cu-p, comp-alloc-class-to-container) (comp-limple-mode, comp-loop-insn-in-block) (comp-lex-byte-func-p, comp-c-func-name, comp-decrypt-arg-list) (comp-spill-lap-function, comp-intern-func-in-ctxt) (comp-spill-lap-function, comp-spill-lap, comp-emit-handler) (comp-prepare-args-for-top-level): Various typo fixes. * src/comp.c (Fcomp_el_to_eln_filename): Fix typo in error message. 2020-10-10 Mattias Engdegård Improve coverage of Calc bit shift test * test/lisp/calc/calc-tests.el (calc-tests--rsh, calc-tests--rash) (calc-shift-binary): Test with negative word sizes. 2020-10-10 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-10-10 Andrea Corallo Fix failure when compiling a trampoline with no eln-cache dir (bug#43875) * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Try to create the eln-cache dir if this is not existing, if fails to do that move on to the next one. 2020-10-10 Andrew Whatson * Fix typo name plus make error homogeneous in `comp-trampoline-compile' * lisp/emacs-lisp/comp.el (comp-trampoline-compile): Fix typo renaming `comp-tampoline-compile' -> `comp-trampoline-compile'. Change error to be consistent. (comp-subr-trampoline-install): Use `comp-trampoline-compile'. 2020-10-10 Eli Zaretskii A better fix for bug#43886 * src/xfaces.c (load_color2, Fcolor_distance): Revert last change. * src/term.c (clear_tty_hooks): Don't clear defined_color_hook. 2020-10-10 Torsten Hilbrich Fix dictionary tooltip mode * lisp/net/dictionary.el (dictionary-tooltip-mode): Add mouse movement binding and use tooltip-functions instead of tooltip-hook There were some changes in Emacs since testing it the last time. I had to add keybinding for mouse movement and enable track-mouse to get the mode working again. 2020-10-09 Eli Zaretskii Avoid crashes when a theme is loaded with one frame suspended * src/xfaces.c (load_color2, Fcolor_distance): Don't try to call the frame's defined_color_hook if the frame is suspended. (Bug#43886) 2020-10-09 Torsten Hilbrich Adding details page for dictionary * lisp/net/dictionary.el (dictionary-display-dictionary-line): Allow getting more details on a dictionary by clicking the "(Details)" link. I had the functionality to query the dictionary information but no mechanism to invoke it. So just add a button after the short description of the dictionary to get more information. 2020-10-09 Torsten Hilbrich Dictionary now uses button * lisp/net/dictionary-link.el: Removed now obsolete file * lisp/net/dictionary.el: Use insert-button and make-button * lisp/net/dictionary.el (dictionary-mode-map): Now defined using defvar I had to add a conversion function as parameter for the button 'action as I need to be able to pass nil data to my function. This is not possible with the regular button 'action function and the 'button-data value. The functionality of searching a link in all dictionaries has been removed for now. It might appear again once I have an idea how to implement it. 2020-10-09 Eli Zaretskii Add Euro Sign to Latin language input methods * lisp/leim/quail/latin-post.el ("danish-postfix") ("finnish-postfix", "french-postfix", "german-postfix") ("icelandic-postfix", "italian-postfix", "norwegian-postfix") ("scandinavian-postfix", "spanish-postfix", "swedish-postfix"): Add "E=" for the Euro Sign. (Bug#43866) 2020-10-09 Mattias Engdegård Calc: fix arithmetic right shift sign bit detection Arithmetic right shift didn't compute the bit to shift in correctly. For example, #x600000000 right-shifted 8 steps (with 32 bit word size) resulted in #xff000000 rather than 0. (Bug#43764) * lisp/calc/calc-bin.el (calcFunc-ash): Fix condition. * test/lisp/calc/calc-tests.el (calc-tests--clip, calc-tests--lsh) (calc-tests--rsh, calc-tests--ash, calc-tests--rash, calc-tests--rot): New. (calc-shift-binary): New test. 2020-10-09 Nick Gasson (tiny change) Match OpenBSD doas password prompt in comint * lisp/comint.el (comint-password-prompt-regexp): match OpenBSD doas password prompt. OpenBSD 5.8 replaced sudo with doas in the base install. * test/lisp/comint-tests.el (comint-testsuite-password-strings): test that the doas password prompt is matched (bug#43846). 2020-10-09 Lars Ingebrigtsen message-signature doc fix * lisp/gnus/message.el (message-signature): Mention message-signature-insert-empty-line (bug#43853). 2020-10-09 Pankaj Jangid (tiny change) Removed an incorrectly placed extra word in the semantic docs * doc/misc/semantic.texi (Parser code): Copy edit (bug#43861). 2020-10-09 Lars Ingebrigtsen Clarify define-minor-mode hooks * doc/lispref/modes.texi (Defining Minor Modes): Note that the code (and the hook) is run both when the mode is enabled and disabled (bug#43868). 2020-10-09 Lars Ingebrigtsen Revert "Don't eagerly store articles in the Agent by default" This reverts commit def34a20766ea5179afd5e5ed090a2b86fcccb5e. This made storing articles in the Agent very slow. 2020-10-09 Lars Ingebrigtsen Only skip directories in lgrep, not the other grep commands * lisp/progmodes/grep.el (lgrep): Do the directory ignores here (bug#23590). (grep-compute-defaults): ... instead of here, because this would affect all grep commands, not just lgrep. 2020-10-08 Torsten Hilbrich Don't check for existence of defface * lisp/net/dictionary.el: defface has been available in Emacs for quite some time now. No need to check it before using it. 2020-10-08 Torsten Hilbrich Don't check coding-system-list for existence * lisp/net/dictionary.el (dictionary-coding-systems-for-dictionaries): Don't check for coding-system-list before using it. It check no longer be necessary. 2020-10-08 Torsten Hilbrich Add :version tag to defcustom statement * lisp/net/dictionary.el: Add :version tag to all defcustom statements Suggested-By: Robert Pluim 2020-10-08 Alan Mackenzie CC Mode: Move the handling of keyword auto into type handling for C++. This should allow auto, const, static, ... to be in any order. * lisp/progmodes/cc-engine.el (c-forward-type): New return value 'no-id for when auto precludes the parsing of a type identifier. Adapt processing for this. (c-forward-decl-or-cast-1): Use the new facility from c-forward-type. * lisp/progmodes/cc-langs.el (c-type-modifier-prefix-kwds): Insert the value of c-no-type-kwds into the value. (c-no-type-kwds, c-no-type-key): New lang consts/vars, basically "auto". (c-typeless-decl-kwds, c-modifier-kwds): Remove "auto" from the C++ value. 2020-10-08 Stefan Monnier * src/ftcrfont.c (ftcrfont_open): Initialize the `max_width` field On a 32bit build, Emacs can otherwise crash with a !FIXNUM_OVERFLOW_P assertion in `Ffont_info` by simply doing `emacs -Q` and then `C-s`. * src/font.c: Try and detect uninitialized `max_width` fields. (font_make_object): Set max_width to a silly value. (Ffont_info): Check the value is not silly any more. 2020-10-08 Stefan Monnier * lisp/doc-view.el: Fix "can't resize root window" error (doc-view-fit-window-to-page): Change approach to detect when the frame needs to be resized. 2020-10-08 Eli Zaretskii Fix current-line hscrolling when overlays change * src/xdisp.c (redisplay_internal): Disable "optimization 1" when auto-hscrolling current line and we're redisplaying the selected window. (Bug#43835) 2020-10-08 Michael Albinus Extend tests for shell-command-dont-erase-buffer * test/lisp/simple-tests.el (simple-tests-shell-command-dont-erase-buffer): Extend test. * test/lisp/net/tramp-tests.el (tramp-test32-shell-command-dont-erase-buffer): Adapt test. Tag it :unstable. 2020-10-08 Torsten Hilbrich Removed some compatibility parts in dictionary * lisp/net/dictionary.el: Use cl-lib, remove defface and defgroup checks, remove xemacs-related code. * lisp/net/dictionary-link.el: Remove xemacs-related code. 2020-10-08 Torsten Hilbrich Renamed link.el * lisp/net/link.el: Renamed to connection-link.el, also prefixing all functions with "dictionary-" prefix * lisp/net/dictionary.el: Adapt to renamed functions 2020-10-08 Torsten Hilbrich Renamed connection.el * lisp/net/connection.el: Renamed to dictionary-connection.el, also prefixing all functions with "dictionary-" prefix * lisp/net/dictionary.el: Adapt to renamed functions 2020-10-08 Torsten Hilbrich Importing dictionary module * lisp/net: Adding files connection.el, link.el, dictionary.el, imported from https://github.com/myrkr/dictionary-el.git 2020-10-08 Dmitry Gutov Mention two more functions in the commentary * lisp/progmodes/project.el: Mention two more functions in the commentary (bug#43595). 2020-10-07 Andrea Corallo Fix failure when eln-cache is removed (introduced by 4a1bb46260) * src/comp.c (make_directory_wrapper, make_directory_wrapper_1): New functions. (Fcomp_el_to_eln_filename): If base_dir is not specified and we are searching across `comp-load-path' try to create a directory if does not exists. 2020-10-07 Andrea Corallo Fix some nits in comp.el * lisp/emacs-lisp/comp.el (comp-spill-lap-function): Use `cl-defmethod' where correct in place of `cl-defgeneric'. (comp-tampoline-compile): Add missing #. 2020-10-07 Eli Zaretskii Improve documentation of 'isearch-group-N' faces * etc/NEWS: * doc/emacs/search.texi (Search Customizations): Improve and clarify the wording of the 'isearch-group-N' faces description. * lisp/isearch.el (search-highlight-submatches): Doc fix. 2020-10-07 Eli Zaretskii Fix last change in frame.el. * lisp/frame.el (frame-set-background-mode): Fix last change: yet another place where FRAME was not taken into account, using the selected frame instead. (Bug#43837) 2020-10-07 Hong Xu Clarify what ``chrooted environment means'' for TRAMP * doc/misc/tramp.texi (Frequently Asked Questions): Clarify what ``chrooted environment means'' for TRAMP (bug#43839). 2020-10-07 Eli Zaretskii Fix face recalculation when frame's background mode changes * lisp/frame.el (frame-set-background-mode): Use the FRAME argument instead of the selected frame, when calling 'face-spec-match-p'. (Bug#43837) 2020-10-07 Andrea Corallo Do use echo area for async compilation started/finished messages * lisp/emacs-lisp/comp.el (comp-run-async-workers) (native-compile-async): Do not write into the echo area. 2020-10-07 Andrea Corallo Better libgccjit related error messaging during configure * configure.ac: Distinguish the case when libgccjit is missing, its headers are missing, or libgccjit is broken. Message the user based on that. 2020-10-07 Lars Ingebrigtsen Remove mention of the obsolete cust-print.el from the manual * doc/lispref/edebug.texi (Printing in Edebug): Remove mention of the obsolete cust-print.el (bug#37956) and adjust the text a bit. 2020-10-07 Lars Ingebrigtsen Update documentation on this-command-keys to reflect new behavior * doc/lispref/commands.texi (Command Loop Info): `this-command-keys' does not include the C-u any more, so remove that from the description and the example (bug#22107). * src/keyboard.c (Fthis_single_command_keys): Don't say that `this-command-keys' returns the C-u prefix (bug#22111). 2020-10-07 Alex Gramiak Default the grep commands to skip directories * lisp/progmodes/grep.el (grep-compute-defaults): Skip directories (bug#23590). 2020-10-07 Lars Ingebrigtsen Make artist-mode work when display-line-numbers-mode is on * lisp/textmodes/artist.el (artist--adjust-x): New function. (artist-mouse-draw-continously, artist-mouse-draw-poly) (artist-mouse-draw-1point, artist-mouse-draw-2points): Use it to take `display-line-numbers-mode' widths into account. 2020-10-07 Lars Ingebrigtsen Remove reference to outdated Gnus variable from the manual * doc/misc/gnus.texi (Startup Variables): Remove reference to gnus-use-backend-marks, which was removed in 2011 (bug#43833). 2020-10-07 Lars Ingebrigtsen alist-get doc string further clarification * lisp/subr.el (alist-get): Mention generalized variables again for easier cross-referencing (bug#43836). 2020-10-07 Hong Xu Clarify what ``chrooted environment means'' for TRAMP * doc/misc/tramp.texi (Frequently Asked Questions): Clarify what ``chrooted environment means'' for TRAMP (bug#43839). 2020-10-07 Mauro Aranda Make the State button in Custom use extended menus * lisp/cus-edit.el (custom-actioned-widget): New variable. Dynamically hold the widget for which to show the menu. (custom-variable-extended-menu, custom-face-extended-menu) (custom-group-extended-menu): Keymap menus for the State menu. Use custom-actioned-widget for the :enable and :selected forms. Make related items radio buttons. (Bug#4787) (custom-variable-menu, custom-face-menu, custom-group-menu): Keep for backward compatibility, but default to nil, so we prefer the keymap menus instead. (custom-variable-action, custom-face-action, custom-group-action): Pass the keymap menu to widget-choose when the simplified menus are nil. 2020-10-07 Stefan Monnier * test/lisp/progmodes/ruby-mode-tests.el: Fix obsolete warnings 2020-10-06 Juri Linkov Add match-data to isearch state and repeat faces to highlight group matches * lisp/isearch.el (isearch-match-data): New variable. (isearch-mode): Set isearch-match-data to nil. (isearch-update): Call isearch-highlight with isearch-match-data. (isearch--state): Add isearch-match-data. (isearch--set-state): Restore isearch-match-data. (with-isearch-suspended): Preserve isearch-match-data. (isearch-search): Set isearch-match-data to integers. (isearch-group-1): Rename from isearch-group-odd and adjust colors. (isearch-group-2): Rename from isearch-group-even and adjust colors. (isearch-highlight): Add optional arg 'match-data'. Rewrite search-highlight-submatches part to recycle faces. * doc/emacs/search.texi (Search Customizations): Amend the documentation for isearch-group faces. (bug#6227, bug#43702) 2020-10-06 Alan Third Fix crash when creating new NS frame (bug#43812) * src/nsterm.m (ns_clear_under_internal_border): Check the frame is live. 2020-10-06 Juri Linkov Add check for bound and true 'ido-everywhere' in multi-occur--prompt * lisp/replace.el (multi-occur--prompt): Check if 'ido-everywhere' is bound and true (bug#41633). 2020-10-06 Juri Linkov Fix args of truncate-string-to-width in ibuffer-compile-make-substring-form * lisp/ibuffer.el (ibuffer-compile-make-substring-form): Fix args of truncate-string-to-width call (bug#41250) 2020-10-06 Andrea Corallo Native compiling do not target a directory with no write permission * src/comp.c (Fcomp_el_to_eln_filename): Check for write permission while choosing the output directory in `comp-eln-load-path'. 2020-10-06 Stefan Monnier * lisp/international/mule.el (define-coding-system): Revert accidental change This was accidentally included in a9f147af716aa026ec7778202901c4cb4bd5487d "Use the full name of the null byte/character, not its abbreviation". 2020-10-06 Stefan Monnier * lisp/international/mule-util.el: Revert bug#41250 workaround (truncate-string-ellipsis): Use the '…' character itself since it should work now and is more readable. 2020-10-06 Stefan Monnier * lisp/international/ja-dic-cnv.el: Attempt to fix bug#41250 (skkdic-convert): Only bind `coding-system-for-read` where needed. 2020-10-06 Mattias Engdegård Suppress obsoletion warning in test of obsolete rx function * test/lisp/emacs-lisp/rx-tests.el (rx-compat): Add byte-compilation warning suppression. 2020-10-06 Mattias Engdegård Fix last change * lisp/international/mule-util.el (truncate-string-ellipsis): Use Unicode hex escapes instead of named escapes here, because \N{...} is not available during bootstrapping. (Bug#41250) 2020-10-06 Eli Zaretskii Fix last change * lisp/international/mule-util.el (truncate-string-ellipsis): Add a FIXME comment that explains the last change. (Bug#41250) 2020-10-06 Juri Linkov Don't use the character '…' literally in mule-util.el (bug#41250) * lisp/international/mule-util.el (truncate-string-ellipsis): Replace the character '…' with its Unicode name. 2020-10-06 Lars Ingebrigtsen Fix animate test that somehow changed recently 2020-10-06 Lars Ingebrigtsen Fix mule-util-tests after recent truncation changes * test/lisp/international/mule-util-tests.el: Fix truncation checks. 2020-10-06 Daniel Martín Add missing full stop in MS-DOS processes documentation * doc/emacs/msdos-xtra.texi (MS-DOS Processes): Minor copy edig (bug#43820). 2020-10-06 Harald Jörg cperl-mode: Fix a test to ensure cperl-mode is active * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-test-indent-exp): Make sure that cperl-mode is active for testing 'cperl-indent-exp', also skip this test under perl-mode. * test/lisp/progmodes/cperl-mode-resources/cperl-indent-exp.pl: Eliminate dependency on unrelated customizable variables (bug#10483). 2020-10-05 Andrea Corallo Fix a test in test/lisp/subr-tests.el * test/lisp/subr-tests.el (subr-tests-bug22027): Redefine `read-string' with a lambda with the same number of arguments. 2020-10-05 Andrea Corallo Add a test for primitive redefinition * test/src/comp-tests.el (primitive-redefine): New test. * test/src/comp-test-funcs.el (comp-test-primitive-redefine-f): New function. 2020-10-05 Andrea Corallo Make primitive redefinition effective through trampoline synthesis * lisp/loadup.el (dump-mode): Set `comp-enable-subr-trampolines' when finished bootstrap. * src/data.c (Ffset): Call `comp-enable-subr-trampolines' when redefining a subr. * src/comp.c (syms_of_comp): Define `comp-subr-trampoline-install' symbol. (syms_of_comp): Define `comp-enable-subr-trampolines' variable. 2020-10-05 Andrea Corallo Rename comp-subr-safe-advice -> comp-subr-trampoline-install 2020-10-05 Andrea Corallo Revert "Use `advice-flet' in place of `cl-letf' to avoid primitive... This reverts commit 825e85b393a3d78ba43176ecc5bc1a9595d0fbea. 2020-10-05 Andrea Corallo Revert "Add `advice-flet' macro" This reverts commit d07d7ab1a0e321ced62ebe5dd9db27eb7e93430e. 2020-10-05 Andreas Schwab Use the full name of the null byte/character, not its abbreviation * lisp/subr.el (inhibit-nul-byte-detection): Make it an obsolete alias. * src/coding.c (setup_coding_system): Use original name. (detect_coding): Rename nul_byte_found => null_byte_found. (detect_coding_system): Use original name. Rename nul_byte_found => null_byte_found. (Fdefine_coding_system_internal): Use original name. (syms_of_coding): Rename inhibit-nul-byte-detection to inhibit-null-byte-detection. * src/w16select.c (get_clipboard_data): Rename nul_char to null_char. * src/json.c (check_string_without_embedded_nulls): Rename from check_string_without_embedded_nuls. (Fjson_parse_string): Adjust accordingly. * src/coding.h (enum define_coding_undecided_arg_index) (enum coding_attr_index): Rename ...nul_byte... to ...null_byte.... * lisp/info.el (info-insert-file-contents, Info-insert-dir): * lisp/international/mule.el (define-coding-system): * lisp/vc/vc-git.el (vc-git--call): * doc/lispref/nonascii.texi (Lisp and Coding Systems): Use original name. 2020-10-05 Michael Albinus * src/dbusbind.c (xd_signature): Better type check for array elements. * test/lisp/net/dbus-tests.el (dbus-test01-compound-types): Extend test. 2020-10-05 Eli Zaretskii Fix merging of region face for non-ASCII characters * src/xdisp.c (extend_face_to_end_of_line): Restore the correct original face used by the iterator on this line, not the ASCII face. (Bug#43363) 2020-10-05 Jared Finder Sort items in tmm properly, and allow clicking the final item * lisp/tmm.el (tmm-menubar-keymap): Sort the final items properly. (tmm-menubar): Allow clicking the final menu item (bug#43756). 2020-10-05 Juri Linkov Use … in Gnus mode lines (when shortening them) * lisp/gnus/gnus-sum.el (gnus-set-mode-line): Defer ellipsis creation to `truncate-string-to-width' (bug#41250). This uses … by default. 2020-10-05 Andrea Corallo * configure.ac (lispdirrel): Fix value for MacOS build. 2020-10-05 Nathan Moreau Improve support for using vc commands in indirect buffers * lisp/vc/vc.el (vc-deduce-fileset-1): New defun. (vc-deduce-fileset): Adapt. (vc-maybe-buffer-sync): New defun. (vc-diff): Adapt. (vc-ediff): Adapt. (vc-root-diff): Adapt. (vc-revision-other-window): Adapt (bug#40967). 2020-10-05 Eli Zaretskii Fix the documentation parts of a recent commit * lisp/international/mule-util.el (truncate-string-ellipsis): Doc fix. * doc/lispref/display.texi (Size of Displayed Text): Improve wording and accuracy of the documentation of 'truncate-string-to-width'. Document the function 'truncate-string-ellipsis'. * etc/NEWS: Improve the wording of the entry for 'truncate-string-to-width'. 2020-10-05 Stefan Monnier * src/xdisp.c (syms_of_xdisp): New var `redisplay_skip_initial_frame`. This makes it possible to run most of the redisplay code (tho not the actual drawing since there's nowhere to draw) even when there's no real frame at hand, as is the case in batch mode. This makes `xdisp-tests--minibuffer-resizing` work even in batch. (redisplay_internal): Obey it. (init_xdisp): Set `echo_area_window` even in noninteractive mode. * src/dispnew.c (update_frame): Skip the initial frame. * src/frame.c (make_frame): Use 80x25 as the default initial size. * test/src/xdisp-tests.el (xdisp-tests--minibuffer-resizing): Use the new var and fix use of `executing-kbd-macro`. 2020-10-04 Andrea Corallo * configure.ac : Fix typo for MacOS nativecomp introduced by afb765ab3c 2020-10-04 Juri Linkov Use '…' for ellipsis in truncate-string-to-width by default (bug#41250) * lisp/international/mule-util.el (truncate-string-ellipsis): Change the default value to nil. (truncate-string-ellipsis): New function. (truncate-string-to-width): Use the value returned from the function 'truncate-string-ellipsis'. * lisp/tab-bar.el (tab-bar-tab-name-truncated): * lisp/tab-line.el (tab-line-tab-name-ellipsis): Take advantage of the improvement of the ellipsis default value in truncate-string-to-width and truncate-string-ellipsis. * doc/lispref/display.texi (Size of Displayed Text): Improve description of truncate-string-ellipsis. 2020-10-04 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-10-04 Andrea Corallo Make filename hashing compatible with self contained builds (bug#43532) * Makefile.in (lispdirrel): Add replace template. (epaths-force): Form correctly 'PATH_REL_LOADSEARCH' into epath.h * configure.ac (lispdirrel): Define variable (relative path of the lisp files from the installation directory). * src/comp.c (Fcomp_el_to_eln_filename): Update algorithm not to rely on 'PATH_DUMPLOADSEARCH' but on 'PATH_REL_LOADSEARCH'. * src/epaths.in (PATH_REL_LOADSEARCH): Add macro template. 2020-10-04 Andrea Corallo * configure.ac: Better HAVE_NATIVE_COMP description 2020-10-04 Andrea Corallo Fix function description message for native compiled lisp functions * lisp/help-fns.el (help-fns-function-description-header): Fix message. 2020-10-04 Andrea Corallo Fix two tests in help-fns-tests.el for native code * test/lisp/help-fns-tests.el (help-fns-test-lisp-defun) (help-fns-test-lisp-defsubst): Fix description string for native compiled functions. 2020-10-04 Michael Albinus Make dbus-unregister-object work for monitors * doc/misc/dbus.texi (Monitoring Messages): Rename from "Monitoring Events". (Register Objects, Monitoring Messages): Mention returned object. * lisp/net/dbus.el (dbus-unregister-object): Adapt docstring. (dbus-unregister-object): Delete monitor if needed. (dbus-register-monitor): Return proper object. * src/dbusbind.c (dbus-registered-objects-table): Adapt docstring. * test/lisp/net/dbus-tests.el (dbus--test-signal-handler): Adapt docstring. (dbus-test08-register-monitor): New test. 2020-10-04 Lars Ingebrigtsen Make update-file-autoloads respect generated-autoload-file * lisp/emacs-lisp/autoload.el (update-file-autoloads): Make update-file-autoloads respect `generated-autoload-file', as documented. 2020-10-03 Eli Zaretskii Avoid segfaults in lookup_image when faces were freed * src/image.c (lookup_image): Make sure the frame's face cache exists and has at least the basic faces. If FACE_ID is not a basic face, and is no longer cached, fall back on the 'default' face. (Bug#43700) 2020-10-03 Mauro Aranda Support extended menus in widget-choose * doc/misc/widget.texi (Utilities): Document widget-choose. * etc/NEWS: Document the feature (bug#4787). * lisp/wid-edit.el (widget--simplify-menu): New function, to convert extended menus into simplified menus when using the menu to prompt through the minibuffer. (widget-choose): Accept a keymap menu. When not using x-popup-menu, simplify the menu with widget--simplify-menu. Document the changes in the docstring. 2020-10-03 Alan Third Daniel Martín Make drag and drop on NS open all URLs (bug#43470) * lisp/term/ns-win.el (ns-drag-n-drop): Merge generic and copy actions. 2020-10-02 Alan Mackenzie Enhance syntax-tests.el to test comments in parse-partial-sexp This now tests the interface between parse-partial-sexp and the low level comment function in syntax.c * test/src/syntax-tests.el (syntax-comments-midpoint): New function. (syntax-pps-comments): New macro. (top level): Two new syntax-br-comments tests and five new syntax-pps-comments tests. * test/data/syntax-comments.txt (top level): Amend some test fragments and add some more. 2020-10-02 Mattias Engdegård Calc: fix formatting and parsing Unix time (bug#43759) The number of days from epoch to Jan 1, 1970 that was used in parsing and formatting Unix time was incorrect. The previous fix (in e368697ce36) was incomplete. Reported by Vincent Belaïche. * lisp/calc/calc-forms.el (math-unix-epoch): New constant. (math-format-date-part, math-parse-standard-date, calcFunc-unixtime): Use math-unix-epoch instead of a constant that is sometimes wrong. * test/lisp/calc/calc-tests.el (calc-unix-date): New test. 2020-10-02 Andrea Corallo Use `advice-flet' in place of `cl-letf' to avoid primitive redefinition * test/lisp/time-stamp-tests.el (with-time-stamp-system-name): Use `advice-flet' to advice primitive avoiding redefinition. * test/lisp/tempo-tests.el (tempo-p-element-test) (tempo-P-element-test, tempo-r-element-test) (tempo-s-element-test, tempo-r>-element-test): Likewise. * test/lisp/subr-tests.el (subr-tests-bug22027): Likewise. * test/lisp/shadowfile-tests.el (shadow-test00-clusters) (shadow-test01-sites, shadow-test06-literal-groups) (shadow-test07-regexp-groups): Likewise. * test/lisp/replace-tests.el (replace-tests-with-undo): Likewise. * test/lisp/play/dissociate-tests.el (dissociate-tests-dissociated-press): Likewise. * test/lisp/net/tramp-tests.el (tramp-test10-write-region) (tramp-test21-file-links): Likewise. * test/lisp/kmacro-tests.el (kmacro-tests-call-macro-hint-and-repeat) (kmacro-tests-repeat-on-last-key) (kmacro-tests-repeat-view-and-run) (kmacro-tests-bind-to-key-with-key-sequence-in-use): Likewise. * test/lisp/files-tests.el (files-tests-read-file-in-~): Likewise. * test/lisp/emacs-lisp/rmc-tests.el (test-read-multiple-choice): Likewise. * test/lisp/bookmark-tests.el (bookmark-test-bmenu-locate): Likewise. * test/lisp/abbrev-tests.el (inverse-add-abbrev-skips-trailing-nonword) (inverse-add-abbrev-skips-trailing-nonword/positive-arg) (inverse-add-abbrev-skips-trailing-nonword/negative-arg): Likewise. 2020-10-02 Andrea Corallo Add `advice-flet' macro The testsuite does large use of primitive redefinition, to avoid that we define `advice-flet' to use instead as an easy `cl-letf' replacement. * lisp/emacs-lisp/nadvice.el (advice-flet): New macro. 2020-10-02 Alan Mackenzie Enhance syntax-tests.el to test comments in scan-lists This now tests the interface between scan_lists and the comment functions. * test/src/syntax-tests.el (syntax-br-comments): New macro. ({-in, ;-in, /*-in): Set parse-sexp-ignore-comments to t. (top level): Add 15 tests for comments inside brace lists. * test/data/syntax-comments.txt (top level): Amend some test fragments. 2020-10-02 Glenn Morris Merge from origin/emacs-27 78eacf31e8 ; Fix many typos in symbols in docs and comments d5d12707d6 * doc/misc/flymake.texi (Using Flymake): Fix a typo. (Bug... # Conflicts: # lisp/allout.el # lisp/progmodes/ebrowse.el 2020-10-02 Glenn Morris Merge from origin/emacs-27 41dcbeccf3 Make aliases introduced in previous patch obsolete 4997032c05 Restore some public debugging functions removed in Emacs 27 2020-10-02 Glenn Morris Merge from origin/emacs-27 2af6b3147d Clarification in Tramp manual 8fbaca7d41 Check Emacs version used for Tramp compilation 90e5549f02 Don't signal an error when saving files on WdebDAV volumes 6f73cc3579 ; * lisp/net/eww.el (eww-search-words): Doc fix. ce0842a165 * lisp/hi-lock.el (hi-lock-find-patterns): Autoload it. (... 2020-10-02 Lars Ingebrigtsen Fix electric-buffer-list buffer selection * lisp/ebuff-menu.el (electric-buffer-list): Ensure that point is restored, which isn't always the case if global-display-line-numbers-mode (bug#43755). This enables selecting buffers again. 2020-10-02 Andrea Corallo When advising search in `comp-eln-load-path' the first writable dir * lisp/emacs-lisp/comp.el (comp-tampoline-compile): Do not crash if we can't write in the first entry in `comp-eln-load-path' but search for another one. 2020-10-02 Andrea Corallo Fix 'incoherent dumped eln file' error when DUMP-METHOD=pbootstrap * src/Makefile.in ($(bootstrap_pdmp)): Add missing --bin-dest --eln-dest flags. 2020-10-02 Andrea Corallo * src/pdumper.c (dump_do_dump_relocation): Better error for incoherent eln. 2020-10-02 Eli Zaretskii * doc/misc/flymake.texi (Using Flymake): Fix a typo. (Bug#43758) 2020-10-02 Stefan Monnier CC Mode: Convert the handling of c-special-indent-hook to standard usage * lisp/progmodes/cc-styles.el (c-set-style): Use kill-local-variable rather than copying the hook's global value to the local binding. (c-make-styles-buffer-local): Remove redundant make-variable-buffer-local. 2020-10-02 Robert Pluim Don't error if no GPG signing key configured * lisp/gnus/mml-sec.el (mml-secure-epg-sign): Partially revert "Make mml-secure-epg-sign bug out if we can't find an identity". It causes signing to fail for people who have not set up mml-secure-{smime,openpgp}-sign-with-sender, which is a regression from Emacs-26 (Bug#40118). In such a situation gpg will use its default key. Do not merge to master. On master Emacs will query the user. 2020-10-02 Mattias Engdegård Calc: fix business days calculation (bug43677) The calculation of business days was broken in 2012 (probably 310e60d9454fe2 or thereabouts) when the date representation changed epoch so that Jan 1, 1 AD became day number 1 instead of 0. Repair this, along with an unrelated bug that prevented arbitrary holiday weekdays from working. Reported by Aaron Zeng. * lisp/calc/calc-forms.el (math-to-business-day) (math-from-business-day): Correct calculation of weekdays using Calc's current (Rata Die) chronology. Modify loop condition to cope with odd sets of holiday weekdays. * test/lisp/calc/calc-tests.el (calc-business-days): New test. 2020-10-02 Andrea Corallo Clean-up testsuite for vanilla builds Tag all native compiler tests and skip them in vanilla builds * test/Makefile.in (SELECTOR_DEFAULT, SELECTOR_EXPENSIVE) (SELECTOR_ALL): Define selectors for vanilla or nativecomp builds. * test/src/comp-tests.el: Do not native compile test files on vanilla. (comp-deftest): New macro to define tests tagging as :nativecomp. 2020-10-02 Lars Ingebrigtsen Fix electric-buffer-list buffer selection * lisp/ebuff-menu.el (electric-buffer-list): Ensure that point is restored, which isn't always the case if global-display-line-numbers-mode (bug#43755). This enables selecting buffers again. 2020-10-02 Dmitry Gutov Make xref work better on variables in shell-script-mode * lisp/progmodes/sh-script.el (sh-mode-syntax-table): Classify "/" as punctuation so that `M-.' on $foo/bar works on the $foo part (bug#25585). 2020-10-02 Lars Ingebrigtsen Make `C-c C-e' in Python buffers work * lisp/progmodes/python.el (python-shell-send-statement): Don't send a cookie, because that leads to the naked expression not being evaled (bug#43450). (python-shell-send-region): Allow not sending a cookie. (python-shell-buffer-substring): Ditto. 2020-10-02 Per Starbäck python-shell-send-defun doesn't find the (whole) definition * lisp/progmodes/python.el (python-shell-send-defun): Fix C-M-x for definitions like @property\ndef bar(): (bug#37828). 2020-10-02 Robert Pluim Make setting verify-hostname-error not make connections fail * lisp/net/gnutls.el (gnutls-boot-parameters): If verify-hostname-error was set, this would make verify-error a non-proper list (bug#38602). 2020-10-02 Lars Ingebrigtsen Stop using a dynamically bound 'generated-autoload-file' variable * doc/lispref/loading.texi (Autoload): Document change of name (bug#39823). * lisp/emacs-lisp/autoload.el (autoload-find-generated-file): Pass the file name in. (autoload-generated-file): Ditto. (autoload-file-load-name): Ditto. (generate-file-autoloads): Ditto. (autoload--setup-output): Ditto. (autoload-generate-file-autoloads): Ditto, and alter doc string to reflect when `generated-autoload-file' is heeded. (update-file-autoloads): Pass outfile in to functions. (autoload-find-destination): Ditto. (update-directory-autoloads): Make into an obsolete shim around `make-directory-autoloads'. (make-directory-autoloads): Renamed from `update-directory-autoloads' with new semantics. (batch-update-autoloads): Adjust caller. * lisp/emacs-lisp/package.el (package-generate-autoloads): Adjust caller. 2020-10-02 Shohei YOSHIDA Fix --with-json message * configure.ac (WIDE_EMACS_INT): Fix --with-json help message (bug#43754). 2020-10-02 Trevor Murphy Fix check for derived modes in display-buffer-reuse-mode-window * lisp/window.el (display-buffer-reuse-mode-window): Make the check for derived modes actually work (bug#38677). 2020-10-01 Tino Calancha Fix wdired-do-perm-changes when over Tramp * lisp/wdired.el (wdired-do-perm-changes) Use set-file-modes instead of external program (bug#39284). This fixes the problem of passing the wrong argument to the external chmod. 2020-10-01 Tino Calancha Fix bug in wdired-get-filename * lisp/wdired.el (wdired-get-filename): Acknowledge the first argument (bug#39280). * test/lisp/wdired-tests.el (wdired-test-bug39280): Add test. 2020-10-01 Alan Mackenzie Enhance syntax-tests.el to test some comment character handling. * test/src/syntax-tests.el: Add a new section testing some aspects of comment handling in syntax.c. This needs further enhancement. It uses .... * test/data/syntax-comments.txt: A new test file. 2020-10-01 Juri Linkov Use new faces isearch-group-odd and isearch-group-even (bug#43702) * lisp/isearch.el (isearch-group-odd, isearch-group-even): New faces instead of isearch-group-1 .. isearch-group-9. (isearch-highlight): Use new faces. 2020-10-01 Allen Li Make recentf daily cleanup repeat * lisp/recentf.el (recentf-auto-cleanup): Fix wording. * lisp/recentf.el (recentf-auto-cleanup): Make timer repeat, update docstring. * etc/NEWS: Update news (bug#39638). 2020-10-01 Michael R. Mauger * lisp/progmodes/sql.el (sql-add-product): Re-correct argument spec. Previous change was due to my mistake; I have resolved back to the prior behavior (Bug#39960). * test/lisp/progmodes/sql-tests.el (sql-test-add-product): Added test to insure I don't make the same mistake again. 2020-10-01 Boruch Baum command-execute doc string clarification * lisp/simple.el (command-execute): Doc string clarification (bug#43749). 2020-10-01 Lars Ingebrigtsen Make aliases introduced in previous patch obsolete * lisp/emacs-lisp/debug.el (debugger-toggle-locals): (debug-help-follow): Make reinstated aliases obsolete. 2020-10-01 Gemini Lasswell Restore some public debugging functions removed in Emacs 27 * lisp/emacs-lisp/backtrace.el (backtrace--to-string): New function. (backtrace-to-string): Use it. Fix whitespace (bug#40728). * lisp/emacs-lisp/debug.el (debugger-insert-backtrace): New function. Mark it as obsolete. (debugger-toggle-locals, debug-help-follow): New aliases. 2020-10-01 Lars Ingebrigtsen Fix loading WSDL data again * lisp/net/soap-client.el (soap-make-wsdl): Change the WSDL namespace back again. 2020-10-01 Lars Ingebrigtsen Fix restoring data in visual-line-mode * lisp/simple.el (visual-line-mode): Only save values once, even if the mode is switched on twice (bug#43730). This makes both previously set local values for variables like truncate-lines, as well as default values for truncate-lines restorable. * lisp/emulation/cua-base.el (cua-mode): Ditto. 2020-10-01 Andrea Corallo * test/src/comp-tests.el (comp-tests-bootstrap): Tag it as expensive. 2020-10-01 Stefan Kangas Silence byte-compiler in two tests * test/lisp/obsolete/cl-tests.el (require): * test/lisp/simple-tests.el (simple-test-count-words-bug-41761): Silence byte-compiler. 2020-10-01 Stefan Kangas Remove some obsolete URLs * lisp/net/newst-backend.el (newsticker--raw-url-list-defaults): Remove some obsolete URLs. 2020-10-01 Stefan Kangas Don't quote lambdas in several places * admin/find-gc.el (find-gc-unsafe): * lisp/align.el (align-rules-list): * lisp/comint.el (comint-arguments): * lisp/double.el (isearch-mode-map): * lisp/ehelp.el (electric-help-command-loop): * lisp/emacs-lisp/cl-macs.el (cl-defstruct): * lisp/emulation/cua-rect.el (cua--copy-rectangle-as-kill) (cua-copy-rectangle-as-text): * lisp/eshell/esh-var.el (eshell-parse-variable-ref): * lisp/hexl.el (hexl-insert-multibyte-char): * lisp/international/titdic-cnv.el (tsang-quick-converter) (ziranma-converter): * lisp/language/tibet-util.el (tibetan-decompose-precomposition-alist): * lisp/mail/mailalias.el (mail-get-names): * lisp/mh-e/mh-e.el (mh-auto-fields-list, mh-identity-default): * lisp/mouse.el (mouse-buffer-menu-map, mouse-buffer-menu-alist): * lisp/play/gametree.el (gametree-make-heading-function): * lisp/shell.el (shell--command-completion-data): * lisp/talk.el (talk-update-buffers): * lisp/tempo.el (tempo-insert-template, tempo-is-user-element) (tempo-build-collection): * lisp/term.el (term-input-filter, term-pager-help): * lisp/textmodes/table.el (table-delete-column): * lisp/url/url-cache.el (url-cache-create-filename-human-readable): * lisp/textmodes/tex-mode.el (latex-imenu-create-index): Don't quote lambdas. 2020-10-01 Stefan Kangas Don't recommend quoting lambdas * doc/misc/calc.texi (Symbolic Lisp Functions): * doc/misc/cl.texi (Obsolete Lexical Binding): * lisp/master.el: * lisp/progmodes/sql.el (sql-interactive-mode): * lisp/textmodes/flyspell.el (flyspell-mode): * lisp/textmodes/ispell.el (ispell-message): * lisp/textmodes/table.el: Doc fixes; don't recommend quoting lambdas. 2020-10-01 Michael Albinus Clarification in Tramp manual * doc/misc/tramp.texi: Harmonize "Git" spelling. (Frequently Asked Questions): Describe Emacs version mismatch. 2020-10-01 Michael Albinus Check Emacs version used for Tramp compilation * lisp/net/tramp-compat.el (tramp-compat-emacs-compiled-version): New defconst. Raise a warning, when it is not equal to the Emacs version. 2020-10-01 Michael Albinus Use Fkeywordp in dbusbind.c, again * src/dbusbind.c (XD_KEYWORDP): New macro. (XD_DBUS_TYPE_P, Fdbus__init_bus, xd_read_queued_messages): Use it. 2020-10-01 Michael Albinus Revert last change in dbusbind.c * src/dbusbind.c (XD_DBUS_TYPE_P, Fdbus__init_bus) (xd_read_queued_messages): Revert last change. (Bug#43724) 2020-10-01 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-c-func-name): Add autoload cookie. 2020-10-01 Lars Ingebrigtsen Remove mml-sec-test that assumes the first signature This is no longer supported; the user is asked for what signature to use. 2020-10-01 Lars Ingebrigtsen Make mml-sec-tests not hang waiting for input * lisp/gnus/mml-sec.el (mml-secure-epg-sign): Only query if we're running interactively. This makes a test not hang. 2020-10-01 Pip Cet Don't optimize away star patterns in minibuffer file name completion * lisp/minibuffer.el (completion-pcm--optimize-pattern): Keep 'star in the pattern (bug#41705). 2020-10-01 Lars Ingebrigtsen Fix the end-of-query prompt in multi-occur and multi-isearch when fido * lisp/misearch.el (multi-isearch-read-buffers): Ditto. * lisp/replace.el (multi-occur--prompt): New function (bug#41633). (multi-occur): Use it. 2020-10-01 Alex Bochannek Make gnus-base64-repad a bit stricter again * lisp/gnus/gnus-util.el (gnus-base64-repad): Make the code a bit stricter again. 2020-10-01 Robert Pluim Query for the signer when sending signed mail (with unknown signer) * lisp/gnus/mml-sec.el (mml-secure-sender-sign-query): New function (bug#40118). (mml-secure-epg-sign): Use it to determine the signer (bug#40118). * lisp/gnus/mml-sec.el (mml-secure-allow-signing-with-unknown-recipient): Remove. 2020-10-01 martin rudalics Fix segfault in some cases when restoring a selected window * src/xdisp.c (restore_selected_window): Fix the more grave problems caused by a function deleting the previously selected frame or window (bug#39977). 2020-10-01 Boruch Baum Split auto-revert-buffers into several functions * lisp/autorevert.el (auto-revert--buffer-candidates) (auto-revert-buffer): Refactor out... (auto-revert-buffers): ... from here. 2020-10-01 Lars Ingebrigtsen Fix up previous window excursion patch in epa--select-keys * lisp/epa.el (epa--select-keys): Use save-window-excursion instead of open-coding the macro. 2020-10-01 Stefan Monnier * lisp/term.el: Make C-/ undo in a nested Emacs subprocess (term-send-C-_): New function. (term-raw-map): Use it for `C-/`, as is done in xterm and friends. 2020-10-01 Stefan Monnier * doc/emacs/basic.texi (Basic Undo): Explain the C-/ situation in xterm AFAICT, in ttys you can send a `C-_` to Emacs either by pressing `C-/` (e.g. xterm, uxterm, rxvt, xfce4-terminal, gnome-terminal) or by pressing `C--` (e.g. rxvt, Linux console). 2020-10-01 Richard M Stallman When recipient has no public key, make offer to skip it optional. * lisp/epa-mail.el (epa-mail-offer-skip): New option. (epa-mail-encrypt): If epa-mail-offer-skip is nil, don't offer to skip a keyless recipient, just cause error. 2020-10-01 Richard M Stallman Clarify previous undo keys change Clarify which terminals allow C-/ and which make C-_ easy to type. 2020-09-30 Lars Ingebrigtsen Further doc fixes for dotimes about RESULT * lisp/subr.el (dotimes): Be even more explicit about RESULT (bug#16206). 2020-09-30 Eli Zaretskii Minor documentation copyedits * etc/NEWS: * doc/emacs/dired.texi (Dired Enter): Fix wording, punctuation, and typos in doc of 'dired-switches-in-mode-line'. 2020-09-30 Vladimir Nikishkin (tiny change) Fix problem with parsing . as a symbol in bovine * lisp/cedet/semantic/bovine/scm.el (semantic-lex-scheme-symbol): Symbols do not have to start with a word-constituent character (bug#40034). In particular, symbols like : and . are valid. 2020-09-30 Drew Adams Allow controlling the Dired switches shown in the mode line * doc/emacs/dired.texi (Dired Enter): Document it (bug#41250). * lisp/dired.el (dired-switches-in-mode-line): New variable (bug#41250). (dired-sort-set-mode-line): Use it. 2020-09-30 Lars Ingebrigtsen Fix problem of having the wrong window selected after saving foo.gpg * lisp/epa.el (epa--select-keys): Restore the window configuration after selecting the key to use (bug#43703). This also ensures that the buffer we were editing ends up as the current buffer after saving it, instead of selecting a different window. 2020-09-30 Andrea Corallo Improve some docstring in src/comp.c * src/comp.c (Fcomp_el_to_eln_filename) (Fcomp__compile_ctxt_to_file): Improve docstring. (Fcomp__compile_ctxt_to_file): Rename 'file_name' -> 'filename'. (Fnative_comp_available_p): Improve docstring. 2020-09-30 Eli Zaretskii Fix 'move-to-column' when invisible text follows a TAB * src/indent.c (scan_for_column): Accept 2 more arguments, and report through them the position corresponding to PREVCOL. All callers changed. (Fmove_to_column): Use the prev_col's position to test for a TAB instead of assuming that the TAB is just before point (which is false when there's invisible text around). (Bug#43587) * test/src/indent-tests.el: New file. 2020-09-30 Lars Ingebrigtsen Clarify the "Forgot to expand macro" message * lisp/emacs-lisp/bytecomp.el (byte-compile-form): Make the define-after-use warning for macros clearer (bug#43678). 2020-09-30 Andrea Corallo * .gitlab-ci.yml: Uncomment some testing to align with master. 2020-09-30 Eli Zaretskii Minor fixes of recent changes * lisp/emacs-lisp/generic.el (define-generic-mode): Fix typos. * etc/NEWS: Adjust an entry due to recent changes. 2020-09-30 Michael Albinus Stricter checks for D-Bus compound types. * src/dbusbind.c (XD_DBUS_TYPE_P, Fdbus__init_bus) (xd_read_queued_messages): Use Fkeywordp instead of SYMBOLP. (xd_signature): Stricter checks for compound types. * test/lisp/net/dbus-tests.el (dbus-test01-compound-types): Extend test. 2020-09-30 Michael Albinus Minor code cleanup in dbus-tests.el * test/lisp/net/dbus-tests.el (dbus--tests-dir): Make it a defconst. (dbus--test-method-reentry-handler): Mark args as unused. (dbus-test04-method-reentry): Tag it :expensive-test. Fix typo. (dbus-test06-property-types): Remove duplicate test. (dbus--test-introspect): Use `insert-file-contents-literally'. (dbus--test-validate-property): Mark expected-annotations as unused. (dbus--test-validate-m-or-s): Remove superfluous le-clause. 2020-09-30 Hugh Daschbach Add D-Bus method-call reentrant test * test/lisp/net/dbus-tests.el (dbus--tests-method-reentry-handler): New defun. (dbus-test04-method-reentry): New test. (Bug#43251) 2020-09-30 Hugh Daschbach * test/lisp/net/dbus-tests.el: Add timeout tests. (dbus-test04-call-method-timeout, dbus-test07-introspection-timeout): New tests. 2020-09-30 Hugh Daschbach Add D-Bus introspection tests * lisp/net/dbus.el (dbus-annotation-deprecated): New defconst. * test/lisp/net/dbus-tests.el (dbus--tests-dir): New defvar. (dbus--test-introspect, dbus--test-validate-interface) (dbus--test-validate-annotations, dbus--test-validate-property) (dbus--test-validate-m-or-s, dbus--test-validate-signal) (dbus--test-validate-method): New defuns. (dbus-test07-introspection): New test. * test/lisp/net/dbus-resources/org.gnu.Emacs.TestDBus.xml: New test data. 2020-09-30 Hugh Daschbach * test/lisp/net/dbus-tests.el: Add property tests. (Bug#43252) (dbus--test-run-property-test, dbus--test-property): New defuns. (dbus-test06-property-types): New test for property registration, set, get. 2020-09-30 Andrea Corallo Merge remote-tracking branch 'savannah/master' into clean-up 2020-09-30 Stefan Monnier Don't have C-x = bug out in a "C" locale with non-ASCII chars * lisp/simple.el (what-cursor-position): Ensure that we always have a coding system here, even if the locale is "C" (bug#40702). 2020-09-30 Lars Ingebrigtsen Fix whitespace regexp in gnus-base64-repad * lisp/gnus/gnus-util.el (gnus-base64-repad): Fix the whitespace regexp. 2020-09-30 Lars Ingebrigtsen Fix gnus-base64-repad test failures 2020-09-30 Stefan Monnier * lisp/emacs-lisp/cl-macs.el (hash-table): Define the type's typep test 2020-09-30 Lars Ingebrigtsen Fix isearch-group-* colours on low-colour displays * lisp/isearch.el (isearch-group-1): On low-colour displays, just use the normal isearch colour (bug#43702). (isearch-group-2 etc): Ditto. 2020-09-30 Lars Ingebrigtsen define-generic-mode doc string fix * lisp/emacs-lisp/generic.el (define-generic-mode): Say what a generic mode is (bug#43713). 2020-09-30 Lars Ingebrigtsen Give better error feedback on wrong password in .gpg files * lisp/epa-file.el (epa-file--find-file-not-found-function): Do a user-error when there's a wrong password (bug#43704). (epa--wrong-password-p): New function. (epa-file-insert-file-contents): Use it, and stash the error away for later signalling. * lisp/emacs-lisp/subr-x.el (if-let): Autoload. 2020-09-30 Thomas Fitzsimmons soap-client: Bump version to 3.2.0 * lisp/net/soap-client.el: Bump version to 3.2.0. 2020-09-30 Thomas Fitzsimmons soap-client: Remove FIXME comment * lisp/net/soap-client.el (soap-encode-attributes): Remove cl-defmethod FIXME comment; continue supporting Emacs 24.1. 2020-09-30 Thomas Fitzsimmons Paul Eggert soap-client: Update soap-decode-date-time * lisp/net/soap-client.el (soap-decode-date-time): Add support for Emacs versions that support fractional seconds. Make DATATYPE optional. Remove FIXME comment. 2020-09-29 Michael Albinus More strict D-Bus type checking * lisp/net/dbus.el (dbus-register-monitor): Register proper key. (dbus-monitor-handler): Adapt docstring. Use grave text-quoting-style. * src/dbusbind.c (xd_signature, xd_append_arg): More strict tests. (syms_of_dbusbind): Adapt docstring. * test/lisp/net/dbus-tests.el (dbus-test01-basic-types): Extend test. 2020-09-29 Eli Zaretskii Don't signal an error when saving files on WdebDAV volumes * src/w32.c (acl_get_file): If get_file_security raises the ERROR_ACCESS_DENIED error, treat that like unsupported ACLs. 2020-09-29 Andrea Corallo Some clean-up in comp.el * lisp/emacs-lisp/comp.el (comp-emit-cond-jump, comp-emit-switch) (comp-limplify-block, comp-compute-edges) (comp-ssa-rename, comp-fwprop*, comp-effective-async-max-jobs) (comp-run-async-workers): Respect max 80 columns. (batch-byte-native-compile-for-bootstrap): Improve doc + remove some now unnecessary error handling. 2020-09-29 Lars Ingebrigtsen Fix emacsclient -c foo.txt behaviour with many frames * lisp/server.el (server-execute): Pass in whether we opened a new frame or not (bug#43645). (server-switch-buffer): Use this to switch to the requested buffer in the new frame if we have "emacsclient -c foo.txt", and retain the old behaviour if it's "emacsclient foo.txt". 2020-09-29 Lars Ingebrigtsen Make M-x compile skip the header when looking for errors etc * lisp/progmodes/compile.el (compilation--ensure-parse): Skip the header when parsing (bug#43651). (compilation-start): Mark the end. 2020-09-29 Lars Ingebrigtsen Fix space parsing in gnus-base64-repad * lisp/gnus/gnus-util.el (gnus-base64-repad): Get the separator regexp right -- there will often be spaces around the newlines. 2020-09-29 Mattias Engdegård * lisp/gnus/smime.el (smime-openssl-program): Allow nil value. 2020-09-29 Mattias Engdegård Fix custom-tests with non-GNU grep * admin/cus-test.el (cus-test-get-lisp-files): Add path argument required by standard grep (BSD, for instance). 2020-09-29 Stefan Monnier * src/eval.c (Fapply): Simplify last change 2020-09-28 Andrea Corallo Rename in docstrings "non nil" into "non-nil" * lisp/emacs-lisp/comp.el: Rename non nil -> non-nil in doc. * src/comp.c: Likewise. 2020-09-28 Andrea Corallo * src/lisp.h: Remove a newline diff left over master. 2020-09-29 Andrea Corallo Clean-up some now unnecessary diff against master * lisp/emacs-lisp/autoload.el (update-directory-autoloads): .eln files have been moved so remove the '.eln' match. * lisp/emacs-lisp/bytecomp.el (byte-compile-refresh-preloaded): Likewise. * lisp/emacs-lisp/find-func.el (find-library-suffixes): Clean-up as '.eln' is no more in `load-suffixes'. * lisp/help-fns.el (find-lisp-object-file-name): Clean-up as `symbol-file' will return the '.elc' file. * src/lread.c (Fget_load_suffixes): Remove logic as '.eln' is not anymore in load-suffixes. (openp): Two spaces. 2020-09-28 Michael Albinus Improve D-Bus monitor * lisp/net/dbus.el (dbus-monitor-method-call) (dbus-monitor-method-return, dbus-monitor-error) (dbus-monitor-signal): New defconsts. (dbus-monitor-goto-serial): New defun. (dbus-monitor-handler): Use them. Add timestamp. Make also links between D-Bus messages with the same serial. 2020-09-28 Earl Suggest region contents in highlight-regexp when region active * lisp/hi-lock.el (hi-lock-face-buffer): Use the region in the prompt if the region is active in transient-mark-mode (bug#43641). 2020-09-28 Harald Jörg cperl-mode: Add compatibility for Emacs 26.1 * lisp/progmodes/cperl-mode.el (cperl--time-convert): New compatibility helper for time-convert (available in Emacs 27.1) (cperl--format-prompt): New compatibility helper for format-prompt (available in Emacs 28) (cperl-info-on-command): use cperl--format-prompt (cperl-perldoc): use cperl--format-prompt (cperl-time-fontification): use cperl--time-convert (bug#43652) 2020-09-28 Alex Bochannek Repad the Face header in Gnus * lisp/gnus/gnus-fun.el (gnus-convert-face-to-png): Use it. * lisp/gnus/gnus-util.el (gnus-base64-repad): New function (bug#43441). 2020-09-28 Jan Tatarik Fix Gnus parsing of weekly recurring icalendar events * lisp/gnus/gnus-icalendar.el (gnus-icalendar-event:recurring-interval): Fix parsing of weekly recurring events (bug#43669). Example: in the absence of explicit INTERVAL value in the calendar event, a weekly event with occurrences scheduled for Mondays and Wednesdays should receive the default recurring interval of "1" and the org mode timestamp repeater should be "+1w". Due to a bug in the current code we receive "WEEKLY" and "+WEEKLYw" instead. The patch fixes the issue. 2020-09-28 Eli Zaretskii * lisp/hi-lock.el (hi-lock-find-patterns): Autoload it. (Bug#43670) 2020-09-28 Stefan Monnier Fix pcomplete completion of things like `xargs` and `sudo` (bug#16197) * lisp/pcmpl-unix.el (pcomplete/xargs): Don't `pcomplete-this` around `pcomplete-command-completion-function`. (pcomplete/sudo): Make it an alias for `pcomplete/xargs`. * lisp/shell.el (shell-command-completion-function): Return the names from `exec-path` when the command name has no `/`. 2020-09-27 Michael Albinus Document D-Bus monitoring * doc/misc/dbus.texi: Replace "symbol" by "keyword" where appropriate. (Alternative Buses): Adapt dbus-init-bus description. (Errors and Events): Adapt dbus-event structure. New defuns dbus-event-destination-name, dbus-event-handler and dbus-event-arguments. (Monitoring Events): New node. * lisp/net/dbus.el: Replace "symbol" by "keyword" where appropriate. (cl-lib): Require. (dbus-register-monitor): Adapt the argument list. (dbus-monitor-handler): Extend. (dbus-init-bus): Adapt docstring. * test/lisp/net/dbus-tests.el (dbus-test01-compound-types): Skip if needed. Extend test. 2020-09-27 Glenn Morris Merge from origin/emacs-27 0b78785a9b (origin/emacs-27) Minor copyedits in the Emacs user manual 0dfc6fdc1f Followup to a recent change in menu-bar.el 767713682c Enable "Continue Tags Search" menu item only when it can b... 4bb7532163 Fix soap-client URL 2020-09-27 Glenn Morris Merge from origin/emacs-27 f31c6792ab Fix support for Zip64 zip files ba635a19fb * lisp/hi-lock.el (hi-lock-auto-select-face): Doc fix. (B... cc8fef2bdd Avoid infinite recursion with 'relative' line numbers display 395f10cb98 ; Fix more trivial typos bf4accb65e ; Fix some trivial typos # Conflicts: # etc/NEWS # lisp/arc-mode.el 2020-09-27 Pip Cet Fix more single-byte accesses caused by bytepos/charpos confusion * src/cmds.c (internal_self_insert): Use FETCH_BYTE, not FETCH_CHAR, for a decremented byte position (bug#41520). * src/xdisp.c (Fwindow_text_pixel_size, trailing_whitespace_p): Ditto. 2020-09-27 Pip Cet Handle single-argument `apply' consistently (bug#40968) * src/eval.c (Fapply): Handle (apply nil) without crashing. Document single-argument form. * lisp/emacs-lisp/byte-opt.el (byte-optimize-apply): Don't attempt to optimize single-argument apply. * doc/lispref/functions.texi (Calling Functions): Document single-argument apply. Provide example (bug#40968). 2020-09-27 Pip Cet Avoid 1s sleep-for before sending the startfile to a comint process * lisp/comint.el (comint-exec): Simplify startup file code. (Bug#41640). 2020-09-27 Simon Lang Add a new grep-match-regexp variable * doc/emacs/building.texi (Grep Searching): Document it. * lisp/progmodes/grep.el (grep-match-regexp): New variable (bug#41766). (grep-filter): Use it. 2020-09-27 Mattias Engdegård Minor string-search optimisations (bug#43598) * src/fns.c (Fstring_search): Perform cheap all-ASCII checks before more expensive ones. Use a faster loop when searching for non-ASCII non-raw bytes. * test/src/fns-tests.el (string-search): Add more test cases. 2020-09-27 Mattias Engdegård Improve accuracy in string-replace description (bug#43598) * doc/lispref/searching.texi (Search and Replace): More careful description; string-replace does not necessarily return a copy. 2020-09-27 Eli Zaretskii Minor copyedits in the Emacs user manual * doc/emacs/emacs.texi (Top): Remove "real-time" from the Emacs description; add "advanced", to be consistent with what we say in the Introduction section. (Bug#43633) 2020-09-27 Eli Zaretskii Improve documentation of the 'abbrev-suggest' feature * lisp/abbrev.el (abbrev-suggest, abbrev-suggest-hint-threshold) (abbrev-suggest-show-report): Improve wording of the doc strings. * doc/emacs/abbrevs.texi (Abbrevs Suggestions): Fix the typo in the node name. Improve wording. * doc/emacs/emacs.texi (Top): Add the new node in the @detailmenu section. * etc/NEWS: Improve wording of the NEWS entry for 'abbrev-suggest'. 2020-09-27 Eli Zaretskii Improve display of raw bytes in the echo-area * src/print.c (print_object): When printing a unibyte string, convert non-ASCII bytes to their character code, before sending them to 'printchar'. (Bug#43632) 2020-09-27 Lars Ingebrigtsen Fix searching for multibyte needles in unibyte haystacks * src/fns.c (Fstring_search): Make this work better when searching unibyte haystacks for multibyte needles (bug#43598). 2020-09-27 Lars Ingebrigtsen Make dired-replace-in-string obsolete * lisp/dired.el (dired-insert-directory): * lisp/dired-aux.el (dired-rename-subdir, dired-rename-subdir-2) (dired-insert-subdir): Adjust callers. * lisp/dired.el (dired-replace-in-string): Make obsolete. 2020-09-27 Lars Ingebrigtsen Add tiny optimization for string-search * src/fns.c (Fstring_search): Add tiny optimization for needles that are longer than the haystack (bug#43598). 2020-09-27 Lars Ingebrigtsen Rename replace-in-string to string-replace * doc/lispref/searching.texi (Search and Replace): Update. * lisp/bindings.el (mode-line-position): Update callers. * lisp/subr.el (string-replace): Rename from replace-in-string since that clashes with XEmacs' replace-in-string which is equivalent to the Emacs replace-regexp-in-string (bug#43598). 2020-09-27 Lars Ingebrigtsen Fix gnus-faq example * doc/misc/gnus-faq.texi (FAQ 6-2): replace-in-string was the XEmacs name for the function. 2020-09-27 Lars Ingebrigtsen Slight replace-in-string optimization * lisp/subr.el (replace-in-string): Optimize to return the original string if nothing was replaced (bug#43598). 2020-09-26 Mathias Dahl Abbrev suggestions helps users remember to use defined abbrevs * lisp/abbrev.el (abbrev-suggest): New defcustom. (abbrev-suggest-hint-threshold): New defcustom. (abbrev--suggest-get-active-tables-including-parents): New defun. (abbrev--suggest-get-active-abbrev-expansions): New defun. (abbrev--suggest-count-words): New defun. (abbrev--suggest-get-previous-words): New defun. (abbrev--suggest-above-threshold): New defun. (abbrev--suggest-saved-recommendations): New defvar. (abbrev--suggest-inform-user): New defun. (abbrev--suggest-shortest-abbrev): New defun. (abbrev--suggest-maybe-suggest): New defun. (abbrev--suggest-get-totals): New defun. (abbrev-suggest-show-report): New defun. (expand-abbrev): If the previous word was not an abbrev, maybe suggest an abbrev to the user. * doc/emacs/abbrevs.texi (Abbrev suggestions): New section. * etc/NEWS: Announce abbrev suggestions. 2020-09-26 Lars Ingebrigtsen Fix the patch tagging in submit-emacs-patch * lisp/mail/emacsbug.el (submit-emacs-patch): Put the tags in the debbugs pseudo-headers because X-Debbugs-Tags is not a thing that exists. 2020-09-26 Eli Zaretskii Followup to a recent change in menu-bar.el * lisp/fileloop.el (fileloop--operate-function): Mention in a comment that menu-bar.el relies on the default value. 2020-09-26 Lars Ingebrigtsen message-add-action doc string fix * lisp/gnus/message.el (message-add-action): Document types. 2020-09-26 Mauro Aranda Display some character widget values in a more user-friendly way * lisp/wid-edit.el (widget-character--escape-sequences-alist): New variable. (widget-character--change-character-display): New function. Use the new variable. (widget-character-notify): New function, to keep track of the changes in the character widget, and display characters like tab, newline and spaces better. (character widget): Use widget-character-notify as the notify function. Use widget-character--change-character-display for the internal representation of value (bug#15925). 2020-09-26 Lars Ingebrigtsen Make macroexpand of `push' slightly less confusing * lisp/subr.el (push): Use a symbol with a different name to make macroexpand look slightly less confusing (bug#43601). 2020-09-26 Lars Ingebrigtsen Fix defcustom types of some variables defined in C * lisp/cus-start.el (standard): Fix the defcustom type of a number of variables defined in C (bug#43611). 2020-09-26 Lars Ingebrigtsen Fix mouse highlighting in Customize buffers * lisp/wid-edit.el (widget-button-click): Remove a newly-introduced check that made mouse highlights no longer work (bug#43612). It's unclear what the check was trying to fix. 2020-09-26 Harald Jörg cperl-mode: Delete conditional code where conditions evaluate to nil * lisp/progmodes/cperl-mode.el (cperl-force-face): This macro's single effect is now inlined, and the macro is gone. (cperl-problems): The reference to choose-color.el, which is no longer available for download, is deleted. (no function): A list of unnecessary empty variable definitions is gone. They were needed for Emacs v19 and below. (cperl-init-faces-weak): This function does no longer do anything and is therefore deleted. (cperl-init-faces): Some bodies of conditional code is deleted because as of today the conditions evaluate to constants. The face cperl-nonoverridable-face is no longer available as variable and needs to be doubly-quoted in one place (bug#43622). 2020-09-26 Andrea Corallo Always set 'Vexec_path' before 'Vinvocation_directory' (bug#43137) Do this as depending on the OS if argv0 is not populated 'Vexec_path' is used to infer 'Vinvocation_directory'. * src/pdumper.c (pdumper_load): Invoke 'init_vars_for_load' instead of 'set_invocation_vars'. * src/lisp.h: Extern 'init_vars_for_load' instead of 'set_invocation_vars' . * src/emacs.c (set_invocation_vars): Make it static and remove double invocation guard. (init_vars_for_load): Wrap 'init_callproc_1' and 'set_invocation_vars' calls + add double invocation guard. (init_cmdargs): Move out 'set_invocation_vars' invocation. (main): Call 'init_vars_for_load' instead of 'init_callproc_1'. 2020-09-26 Andrea Corallo * lisp/emacs-lisp/cl-macs.el (cl--optimize): Add a FIXME. Merge remote-tracking branch 'savannah/master' into HEAD 2020-09-26 Stefan Kangas Silence some byte-compiler warnings * test/lisp/arc-mode-tests.el (arc-mode-test-archive-int-to-mode): * test/lisp/custom-tests.el (cus-test-opts): * test/lisp/help-fns-tests.el (foo-test-map) (help-fns-test--describe-keymap-foo): * test/src/fns-tests.el (w32-collate-ignore-punctuation) (fns-tests-func-arity): Silence byte-compiler warnings. 2020-09-26 Stefan Kangas Repurpose libxml test for obsolete argument * test/src/xml-tests.el (libxml-tests): Move half this test for the recently obsoleted fourth argument to libxml-parse-xml-region... * test/lisp/xml-tests.el (xml-tests--remove-comments): ...to a new test here for xml-remove-comments. * test/src/xml-tests.el (libxml-tests--data-comments-discarded): Move test data from here... * test/lisp/xml-tests.el (xml-tests--data-with-comments): ...to here. 2020-09-26 Michael Albinus * etc/NEWS: Add new D-Bus monitor functionality. Fix typos. 2020-09-26 Michael Albinus Add D-Bus monitor * lisp/net/dbus.el (dbus-interface-monitoring): New defconst. (dbus-call-method, dbus-call-method-asynchronously) (dbus-send-signal, dbus-method-return-internal) (dbus-method-error-internal, dbus-check-arguments): Accept also :system-private and :session-private. (dbus-check-event, dbus-event-path-name) (dbus-event-interface-name) (dbus-event-member-name, dbus-property-handler) (dbus-handle-bus-disconnect): Adapt according to new structure. (dbus-handle-event): Handle also monitor events. (dbus-event-destination-name, dbus-event-handler) (dbus-event-arguments, dbus-register-monitor, dbus-monitor-handler): New defuns. * src/dbusbind.c (XD_DBUS_VALIDATE_BUS_ADDRESS, xd_remove_watch) (Fdbus__init_bus): Accept also :system-private and :session-private. (xd_read_message_1): Add destination and error_name to dbus-event. Handle monitor events. (syms_of_dbusbind): Declare QCsystem_private, QCsession_private and QCmonitor. (dbus-registered-objects-table): Fix docstring. 2020-09-26 Eli Zaretskii Enable "Continue Tags Search" menu item only when it can be used * lisp/menu-bar.el (menu-bar-search-menu) : Enable only when there was a previous tags search. (Bug#43569) (menu-bar-replace-menu) : Enable only when there was a previous tags-replace. 2020-09-26 Stefan Kangas Fix byte-compiler warning in CEDET * lisp/cedet/semantic/lex.el (semantic-lex-catch-errors): Fix byte-compiler warning by removing obsolete variable. 2020-09-26 Paul Eggert Fix soap-client URL * lisp/net/soap-client.el (soap-create-envelope): Fix URL that I broke in 2019-09-23T06:53:30Z!eggert@cs.ucla.edu. Problem reported by Thomas Fitzsimmons. 2020-09-26 Thomas Fitzsimmons soap-client.el: Prevent some invalid encoding warnings * lisp/net/soap-client.el (soap-encode-xs-complex-type): Do not warn about missing non-nillable slot if type itself is optional. 2020-09-25 Glenn Morris Fix out-of-tree make check * test/lisp/custom-tests.el (custom-test-admin-cus-test): New const. (check-for-wrong-custom-types): Use it. 2020-09-25 Alan Third Tidy up NS color handling * src/nsimage.m (COLORSPACE_NAME): New macro to find the current colorspace. ([EmacsImage initFromXBM:width:height:fg:bg:reverseBytes:]): ([EmacsImage initForXPMWithDepth:width:height:]): Use the current colorspace. * src/nsterm.h (NSAppKitVersionNumber10_7): (NSAppKitVersionNumber10_10): Define for macOS version checks. * src/nsterm.m ([NSColor colorForEmacsRed:green:blue:alpha:]): Tidy up the version checking. ([NSColor colorUsingDefaultColorSpace]): Tidy the version checking and use [NSColor colorUsingColorSpace:] with GNUstep. 2020-09-25 Alan Third Remove obsolete macOS support for NS font backend The ns font backend is has been disabled on macOS for a long time and doesn't work correctly even if re-enabled. * src/nsfont.m: (ns_char_width): (ns_ascii_average_width): (ns_get_covering_families): (nsfont_open): (nsfont_close): (nsfont_draw): (ns_uni_to_glyphs): (ns_glyph_metrics): (EmacsGlyphStorage): Remove all Cocoa only code. * src/nsterm.h (EmacsGlyphStorage): Remove. (struct nsfont_info): Make GNUstep only. * src/nsterm.m (ns_compute_glyph_string_overhangs): Remove GNUstep only code from Cocoa builds. 2020-09-25 Alan Third Implement internal border colors on NS (bug#41071) * src/nsterm.m (ns_clear_under_internal_border): New function. (ns_after_update_window_line): Use the correct background color. (ns_redisplay_interface): Add ns_clear_under_internal_border. 2020-09-25 Mattias Engdegård string-search robustness and documentation improvement (bug#43598) * src/fns.c (Fstring_search): Check START-POS argument range. Simplify logic. Improve doc string. * test/src/fns-tests.el (string-search): Add test cases. * doc/lispref/strings.texi (Text Comparison): Elaborate. * lisp/emacs-lisp/byte-opt.el (pure-fns): Mark string-search as pure. 2020-09-25 Eli Zaretskii Fix support for Zip64 zip files * lisp/arc-mode.el (archive-zip-summarize): Fix detection of Zip64 central directory. Support 64-bit file size field used by Zip64. (Bug#43597) 2020-09-25 Noam Postavsky * CONTRIBUTE: Don't recommend action stamps * CONTRIBUTE: Remove mention of the "action stamp" thing (bug#20609). 2020-09-25 Lars Ingebrigtsen Partially revert previous prolog.el cleanup * lisp/progmodes/prolog.el (prolog-font-lock-keywords): Partially revert previous patch -- we want the prolog-warning-face symbol, not its value. 2020-09-25 Lars Ingebrigtsen Fix defcustom type in sql.el for sql-postgres-login-params * lisp/progmodes/sql.el (sql-login-params): Fix defcustom type to match sql-postgres-login-params value. 2020-09-25 Lars Ingebrigtsen Fix a defcustom type in gdb-mi.el * lisp/progmodes/gdb-mi.el (gdb-display-source-buffer-action): Fix defcustom type to match the value. 2020-09-25 Lars Ingebrigtsen Fix defcustom type in whitespace.el * lisp/whitespace.el (whitespace-space-after-tab-regexp) (whitespace-indentation-regexp): The first string here isn't a regexp, it's a string (that's expanded with format to be a regexp). 2020-09-25 Lars Ingebrigtsen Fix the defcustom type fix in python.el * lisp/progmodes/python.el (python-pdbtrack-exit-command): Fix defcustom type (bug#30990). 2020-09-25 Lars Ingebrigtsen Fix some defcustom types * lisp/whitespace.el (whitespace-style): * lisp/gnus/message.el (message-screenshot-command): * lisp/progmodes/compile.el (compilation-transform-file-match-alist): * lisp/progmodes/gdb-mi.el (gdb-default-window-configuration-file): * lisp/progmodes/python.el (python-pdbtrack-exit-command): Fix the defcustom types. * lisp/progmodes/sql.el (sql-password-wallet): Fix the value. 2020-09-25 Lars Ingebrigtsen Add an expensive test for defcustom types * admin/cus-test.el (cus-test-opts): Return the tests. * test/lisp/custom-tests.el (check-for-wrong-custom-types): Test custom types (bug#30990). 2020-09-25 Lars Ingebrigtsen Mark string-search as being side effect free * lisp/emacs-lisp/byte-opt.el (side-effect-free-fns): Add string-search. 2020-09-25 Noam Postavsky Make the Man completion code work better if man -k fails * lisp/man.el (Man-completion-table): Check the return code for "man -k" and assume it failed if there's a non-zero exit code (bug#16722). 2020-09-25 Tino Calancha Use the char history in zap-up-to-char * lisp/misc.el (zap-up-to-char): Use read-char-from-minibuffer (bug#39154). 2020-09-25 Mattias Engdegård Fix replace-in-string infloop with empty pattern string (bug#43598) * lisp/subr.el (replace-in-string): Raise an error if FROMSTRING is empty. * test/lisp/subr-tests.el (replace-in-string): Add test case. 2020-09-25 Lars Ingebrigtsen Tweak updating the process mark in set-process-buffer * src/process.c (Fset_process_buffer): Only update the process mark if we actually change the buffer. 2020-09-25 Eli Zaretskii * lisp/hi-lock.el (hi-lock-auto-select-face): Doc fix. (Bug#43600) 2020-09-25 Lars Ingebrigtsen Remove more compat code from prolog.el * lisp/progmodes/prolog.el (prolog-font-lock-keywords): Remove compat test for a face that's always defined. 2020-09-25 Eli Zaretskii Avoid infinite recursion with 'relative' line numbers display * src/xdisp.c (display_count_lines_visually): Bind 'display-line-numbers' to 'relative' around 'start_display' as well, since that can invoke 'move_it_to' internally, thus causing infinite recursion. (Bug#43589) 2020-09-25 Stefan Monnier * lisp/progmodes/ruby-mode.el (ruby-use-smie): Declare obsolete (ruby-mode-map, ruby-mode-menu): Don't use ruby-for/backward-sexp any more. (ruby-mode-variables): Always setup SMIE navigation. Still obey `ruby-use-smie` for indentation. (ruby-forward-sexp, ruby-backward-sexp): Mark as obsolete. 2020-09-25 Lars Ingebrigtsen Remove some XEmacs compat code from prolog.el * lisp/progmodes/prolog.el (prolog-replace-in-string): Remove XEmacs compat code and make obsolete. (prolog-guess-fill-prefix): Adjust callers. (prolog-uncomment-region): Make obsolete. (prolog-mode-syntax-table): syntax-propertize-rules is always defined. (prolog-syntax-propertize-function): Ditto. (prolog-face-name-p): Make into obsolete alias. (prolog-font-lock-keywords): Adjust callers. 2020-09-25 Lars Ingebrigtsen Clean up replace-in-string slightly * lisp/subr.el (replace-in-string): Clean up previous fix slightly. 2020-09-25 Lars Ingebrigtsen Fix previous replace-in-string rewrite * lisp/subr.el (replace-in-string): Fix logic errors in previous patch. 2020-09-25 Lars Ingebrigtsen Fix replace-in-string multibyteness problems with string-search * lisp/subr.el (replace-in-string): Simplify by using the new string-search function (bug#43598). 2020-09-25 Lars Ingebrigtsen Add a new function 'string-search' * doc/lispref/strings.texi (Text Comparison): Document it. * src/fns.c (Fstring_search): New function. 2020-09-25 Stefan Monnier * lisp/help-fns.el (help-fns--first-release): Use etc/NEWS as well 2020-09-24 Glenn Morris Update a failing lisp test * test/lisp/emacs-lisp/lisp-tests.el (up-list-no-cross-string): Update for recent "Don't signal scan-error" change. 2020-09-24 Juri Linkov Horizontal scrolling for mouse wheel with Shift modifier (bug#43568) * lisp/mwheel.el (mouse-wheel-scroll-amount): Change 'shift' default value from 5 to 'hscroll'. Add new option "Scroll horizontally" for 'hscroll'. (mwheel-scroll): Handle value 'hscroll' and call mwheel-scroll-left-function or mwheel-scroll-right-function. * doc/emacs/frames.texi (Mouse Commands): Update for horizontal scrolling with Shift modifier. 2020-09-24 Theodor Thornhill Set mwheel default scroll value to 1 (bug#43380) * lisp/mwheel.el (mouse-wheel-scroll-amount): Change default value 5 to 1 and shift default value from 1 to 5. Default value is changed as discussed in etc/TODO. 2020-09-24 Juri Linkov * lisp/simple.el (goto-line-read-args): More relevant default line number. 2020-09-24 Glenn Morris Add skip condition for some dbus tests * test/lisp/net/dbus-tests.el (dbus-test01-type-conversion) (dbus-test01-basic-types): Add skip for hydra.nixos.org failures. 2020-09-24 Lars Ingebrigtsen Make set-process-buffer also update the process mark * src/process.c (Fset_process_buffer): Update the process mark (bug#43573). 2020-09-24 Lars Ingebrigtsen Refactor process mark setting * src/process.c (update_process_mark): Make into its own function. (Fmake_process, Fmake_pipe_process, Fmake_serial_process) (connect_network_socket): Use it. 2020-09-24 dickmao Add sanity check for Gnus groups that belong to no topic * lisp/gnus/gnus-topic.el (gnus-topic-change-level): Do not change gnus-topic-alist when group is outside "topology" (bug#43582). 2020-09-24 Eli Zaretskii Fix last change in resize_mini_window * src/xdisp.c (resize_mini_window): Prevent recentering the mini-window once its start position is computed. (Bug#43572) 2020-09-24 Lars Ingebrigtsen Fix recent simple.el compilation warning * lisp/simple.el (goto-line-relative): Suppress byte compilation warning about goto-line. 2020-09-24 Michael Albinus Minor Tramp cleanup * doc/misc/tramp.texi: Some stylistic changes. (Frequently Asked Questions): Mention ProxyCommand and ProxyJump. * lisp/net/tramp-sh.el (tramp-use-ssh-controlmaster-options): Fix docstring. 2020-09-24 Andrea Corallo Rename comp--subr-safe-advice -> comp-subr-safe-advice * lisp/emacs-lisp/comp.el (comp-subr-safe-advice): Rename comp--subr-safe-advice -> comp-subr-safe-advice. * lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise. * lisp/emacs-lisp/advice.el (ad-add-advice): Likewise. 2020-09-24 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-body-eff): Improve style. 2020-09-24 Andrea Corallo Do not install a subr trampoline twice * src/comp.c (syms_of_comp): Define and initialize 'Vcomp_installed_trampolines_h'. (Fcomp__install_trampoline): Fill 'Vcomp_installed_trampolines_h' * lisp/emacs-lisp/comp.el (comp--subr-safe-advice): Make use of `comp-installed-trampolines-h' to guard against installing a trampoline twice. 2020-09-24 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-never-optimize-functions): Clean-up. 2020-09-24 Andrea Corallo Add a test for primitive advicing effectiveness * test/src/comp-test-funcs.el (comp-test-primitive-advice-f): New function. * test/src/comp-tests.el (comp-test-primitive-advice): New test. 2020-09-24 Andrea Corallo Call `comp--subr-safe-advice' from the advice machinery * lisp/emacs-lisp/nadvice.el (advice--add-function): Call `comp--subr-safe-advice' when necessary. * lisp/emacs-lisp/advice.el (ad-add-advice): Likewhise. 2020-09-24 Andrea Corallo Add `comp--subr-safe-advice' entry point Add a Lisp side entry-point to be called to make primitive adivicing effective. * lisp/emacs-lisp/comp.el (comp-trampoline-sym) (comp-trampoline-filename): New substs. (comp-make-lambda-list-from-subr, comp-search-trampoline) (comp-tampoline-compile): New functions 2020-09-24 Eric Abrahamsen Write Gnus active files with quotes around group names * lisp/gnus/gnus-util.el (gnus-write-active-file): In case of group names with spaces in them (see Bug#42823). Names are later read with `read', so this should be quite robust. 2020-09-23 Juri Linkov New command goto-line-relative (bug#5042, bug#9917) * lisp/simple.el (goto-line-read-args): New function with code from goto-line. (goto-line): New arg RELATIVE. Also use 'widen-automatically' to leave all lines accessible in the narrowed buffer. (goto-line-relative): New command. * lisp/info.el (Info-mode-map): Remap 'goto-line' to 'goto-line-relative'. * doc/emacs/basic.texi (Moving Point): * doc/emacs/display.texi (Optional Mode Line): Mention goto-line-relative. 2020-09-23 Andrea Corallo Add `comp--install-trampoline' machinery * src/comp.c (Fcomp__install_trampoline): New function to install a subr trampoline into the function relocation table. Once this is done any call from native compiled Lisp to the related primitive will go through the `funcall' trampoline making advicing effective. 2020-09-23 Andrea Corallo Make CHECK_SUBR public * src/data.c (CHECK_SUBR): Move from here to... * src/lisp.h (CHECK_SUBR): ...to here. 2020-09-23 Stefan Kangas Remove TODO to convert files to unit tests * test/lisp/textmodes/css-mode-tests.el: * test/lisp/progmodes/ruby-mode-tests.el: Remove TODO to convert test files into unit tests. The files are still useful for debugging. Ref: https://lists.gnu.org/r/emacs-devel/2020-09/msg01906.html 2020-09-23 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-final): Log when interactively invoked. * lisp/emacs-lisp/comp.el (native-compile): Add OUTPUT parameter. 2020-09-23 Stefan Kangas Convert some completion.el tests to ERT * test/lisp/completion-tests.el: New file. * lisp/completion.el: Move commented out tests to completion-tests.el. 2020-09-23 Stefan Kangas Convert allout unit tests to ERT * test/lisp/allout-tests.el: New file. * lisp/allout.el (allout-run-unit-tests-on-load) (allout-run-unit-tests): Remove. (allout-tests-obliterate-variable) (allout-tests-globally-unbound, allout-tests-globally-true) (allout-tests-locally-true, allout-test-resumptions): Move to allout-tests.el * test/lisp/allout-widgets-tests.el: New file. * lisp/allout-widgets.el (allout-widgets-run-unit-tests-on-load) (allout-widgets-run-unit-tests): Remove. (allout-test-range-overlaps): Move to allout-widgets-tests.el. 2020-09-23 Stefan Kangas * lisp/repeat.el: Remove obsolete comment. 2020-09-23 Michael Albinus * test/lisp/net/dbus-tests.el (dbus-test01-basic-types): Adapt test. 2020-09-23 Mattias Engdegård Don't signal scan-error when moving by sexp interactively * lisp/emacs-lisp/lisp.el (forward-sexp, backward-sexp, forward-list) (backward-list, down-list, up-list, mark-sexp, kill-sexp) (backward-kill-sexp): Remove unsightly scan-error when running interactively and no further movement by sexp can be made (bug#43489). 2020-09-23 Mauro Aranda Allow the newline character in the character widget (Bug#15925) * lisp/wid-edit.el (widget-specify-field): Extend check for adding the boundary overlay. Plus, a minor comment indentation fix. (character widget): Tweak the valid-regexp to allow the newline character. * test/lisp/wid-edit-tests.el (widget-test-character-widget-value) (widget-test-editable-field-widget-value): New tests (bug#15925). 2020-09-23 Andrew G Cohen Improve mark handling in gnus nnselect * lisp/gnus/nnselect.el (numbers-by-group, nnselect-request-update-info, nnselect-push-info): Handle all three mark types ('tuple, 'range, 'list) and general speedups. 2020-09-23 Alan Mackenzie Handle escaped comment enders correctly in syntax.c, fixing bug #43558 This fixes forward-comment, scan-lists, and parse-partial-sexp. * src/syntax.c (forw_comment): Detect and skip an escaped comment ender (e.g. \*/ in C) when comment-end-can-be-escaped is non-nil. 2020-09-23 Andrew G Cohen Run gnus-parse-headers-hook when retrieving nnselect headers * lisp/gnus/nnselect.el (nnselect-retrieve-headers): Run the gnus-parse-headers-hook when retrieving headers in nnselect, just like in a real group. 2020-09-23 Stefan Monnier test/src/xdisp-tests.el: New file 2020-09-23 Andrew G Cohen Use gnus-extra-headers in nnselect header parsing * lisp/gnus/nnselect.el (nnselect-retrieve-headers): Bind nnmail-extra-headers to gnus-extra-headers before parsing retrieved headers. 2020-09-22 Lars Ingebrigtsen Ensure that the game directory exists before trying to write to it * lisp/play/gamegrid.el (gamegrid-add-score-insecure): Make the directory if it doesn't exist (bug#37836). 2020-09-22 martin rudalics Make delete-pair only delete pairs that are part of insert-pair-alist * lisp/emacs-lisp/lisp.el (delete-pair): Only delete pairs that are part of `insert-pair-alist' (bug#4136). 2020-09-22 Lars Ingebrigtsen Fix off-by-one error in eldoc--handle-docs * lisp/emacs-lisp/eldoc.el (eldoc--handle-docs): We have one extra line to use if we don't show the truncation message (bug#43543). 2020-09-22 Lars Ingebrigtsen Speed up shr-insert slightly * lisp/net/shr.el (shr-insert): Speed up regularising spaces -- the vast majority of the spaces are already OK, so transforming " " to " " just takes time. 2020-09-22 Lars Ingebrigtsen Fix filling problem in shr due to zero-width id tagging * lisp/net/shr.el (shr-descend): Fix problem with filling lines that have a zero-width ID tag at the start. 2020-09-22 Eli Zaretskii Fix cursor display in mini-window under icomplete-mode * src/xdisp.c (resize_mini_window): When we show only part of the mini-window's contents, make sure the window-start position is at the beginning of a screen line. (Bug#43519) 2020-09-22 Andrea Corallo Fix MacOS Emacs.app installation (bug#43532) * src/comp.c (Fcomp_el_to_eln_filename): Adapt the filename hashing algorithm to allow for producing a MacOS self-contained Emacs.app. 2020-09-22 David Reitter Fix font-panel on NS (bug#43480) * lisp/term/ns-win.el (ns-respond-to-change-font): Set the font using customize. 2020-09-22 Stefan Kangas Remove broken compat code from EDE * lisp/cedet/ede/detect.el: Remove broken Emacs 24.1 compat code. This would never have worked, since the fallback library is missing. 2020-09-22 Stefan Kangas Fix shellcheck warning * build-aux/update-subdirs: Fix issue indicated by the shellcheck linter (warning SC2046). 2020-09-22 Stefan Kangas Support shellcheck in compilation-mode * lisp/progmodes/compile.el (compilation-error-regexp-alist-alist): Add shellcheck regexp. * test/lisp/progmodes/compile-tests.el (compile-tests--test-regexps-data): (compile-test-error-regexps): Add test for shellcheck. * etc/compilation.txt: Add shellcheck example. * etc/NEWS: Announce the change. foo 2020-09-22 Stefan Kangas Remove Emacs 23 compat code from cedet * lisp/cedet/ede/proj-elisp.el (project-compile-target): * lisp/cedet/semantic/bovine/grammar.el (bovine-grammar-expand-form): * lisp/cedet/semantic/ede-grammar.el (project-compile-target): Remove Emacs 23 compat code. 2020-09-22 Stefan Kangas Remove some Emacs 20 compat code * lisp/apropos.el (apropos-local-value): * lisp/progmodes/antlr-mode.el (antlr-mode-menu): * lisp/progmodes/idlwave.el (idlwave-attach-classes): * lisp/textmodes/artist.el (artist-replace-chars): Remove Emacs 20 compat code. 2020-09-22 Stefan Kangas Remove some unnecessary compat code * test/lisp/emacs-lisp/ert-x-tests.el (ert-test-describe-test): * test/lisp/wdired-tests.el (wdired-test-unfinished-edit-01): Remove unnecessary compat code; these tests should never need to run on older versions of Emacs. 2020-09-22 Stefan Kangas Fix thinko in dired-change-marks * lisp/dired.el (dired-change-marks): Fix my previous broken attempt to declare advertised-calling-convention. 2020-09-21 Andrea Corallo Make use of use of `subr-primitive-p' in `find-function-library' * lisp/emacs-lisp/find-func.el (find-function-library): Use `subr-primitive-p'. 2020-09-21 Andrea Corallo Sandbox synchronous libgccjit invocation on interactive sessions Avoid unnecessary memory fragmentation/leakeage * lisp/emacs-lisp/comp.el (comp-final1): New function. (comp-final): Invoke `comp-final1' in a child process if in an interactive session or directly otherwise. 2020-09-21 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-09-21 Stefan Kangas Move several completions from eshell to pcomplete (Bug#10585) * lisp/eshell/em-unix.el (eshell-complete-hostname) (pcomplete/ftp, pcomplete/ncftp, pcomplete/ping) (pcomplete/rlogin, pcomplete/telnet, pcomplete/rsh): Move from here... * lisp/pcmpl-unix.el (pcmpl-unix-complete-hostname) (pcomplete/ftp, pcomplete/ncftp, pcomplete/ping) (pcomplete/rlogin, pcomplete/telnet, pcomplete/rsh): ...to here. Make old names into aliases. * lisp/eshell/esh-util.el (eshell-hosts-file) (eshell-host-names, eshell-host-timestamp) (eshell-read-hosts-file, eshell-read-hosts) (eshell-read-host-names): Move from here... * lisp/pcomplete.el (pcomplete-hosts-file) (pcomplete--host-name-cache) (pcomplete--host-name-cache-timestamp) (pcomplete-read-hosts-file, pcomplete-read-hosts) (pcomplete-read-host-names): ...to here. Make old names into aliases. * lisp/eshell/em-unix.el (eshell-complete-host-reference): Update caller. 2020-09-21 Stefan Kangas Move pcomplete/bcc32 from eshell to pcmpl-x (Bug#10585) * lisp/eshell/em-xtra.el (pcomplete/bcc32, pcomplete/bcc): Move from here... * lisp/pcmpl-x.el (pcomplete/bcc32, pcomplete/bcc): ...to here. 2020-09-21 Stefan Kangas Convert a manual test for nxml-mode to unit test * test/manual/indent/nxml.xml: Delete file. * test/lisp/nxml/nxml-mode-tests.el (nxml-mode-test-comment-bug-17264): New test based on deleted file. 2020-09-21 Stefan Kangas Convert manual indent test for ruby-mode into unit test * test/manual/indent/ruby.rb: Move from here... * test/lisp/progmodes/ruby-mode-resources/ruby.rb: ...to here. * test/lisp/progmodes/ruby-mode-tests.el (ruby-mode-tests-data-dir): New variable. (ruby--indent/converted-from-manual-test): New test. 2020-09-21 Stefan Kangas Convert manual indent test for scheme-mode into unit test * test/manual/indent/scheme.scm: Delete file. * test/lisp/progmodes/scheme-tests.el: New file with unit test for scheme-mode based on deleted file. 2020-09-21 Stefan Kangas Convert manual indent test for ps-mode into unit test * test/manual/indent/ps-mode.ps: Delete file. * test/lisp/progmodes/ps-mode-tests.el (ps-mode-test-indent): New unit test based on deleted file. 2020-09-21 Sam Steingold (json-encode-string): Strip properties to fix bug#43549 2020-09-21 Lin Sun Fix problem with ede-mode bugging out on non-existent files * lisp/cedet/ede/emacs.el: Check whether the directory exists in ede-emacs-find-in-directories before using it (bug#43547). 2020-09-21 Lars Ingebrigtsen Fix recent change to window-max-chars-per-line * lisp/window.el (window-max-chars-per-line): line-number-display-width can return a floating point number, but we want an integer (bug#43548). 2020-09-21 Lars Ingebrigtsen Doc string fix for gnus-summary-hide-thread * lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Remove text from doc string apparently copy-pasted from the function above. 2020-09-21 dickmao Remove a misleading message in gnus-summary-hide-thread * lisp/gnus/gnus-sum.el (gnus-summary-hide-thread): Jump past invisible thread instead of begging off with an out-of-band diagnostic (bug#43538). 2020-09-21 Stefan Kangas Convert manual indent test for opascal-mode into unit test * test/manual/indent/opascal.pas: Delete file. * test/lisp/progmodes/opascal-tests.el: New file with unit test for oposcal-mode based on deleted file. 2020-09-21 Stefan Kangas Convert manual indent test for lisp-mode into unit test * test/manual/indent/lisp.lisp: Delete file. * test/lisp/emacs-lisp/lisp-mode-tests.el (lisp-indent-defun): New unit test based on deleted file. 2020-09-21 Stefan Kangas Convert manual indent test for elisp-mode into unit test * test/manual/indent/elisp.el: Delete file. * test/lisp/progmodes/elisp-mode-tests.el (elisp-indent-basic): New unit test based on deleted file. 2020-09-21 Stephen Berman Fix check in `newline' for blank lines * lisp/simple.el (newline): Clarify doc string and fix check for blank lines (bug#13810). 2020-09-21 Lars Ingebrigtsen Fix line width in M-x term on -nw with line numbers * lisp/window.el (window-max-chars-per-line): Make the line width more correct in the presence of display-line-numbers-mode (bug#34513). 2020-09-21 Lars Ingebrigtsen Add more isearch submatch faces * doc/emacs/search.texi (Search Customizations): Adjust documentation. * lisp/isearch.el (search-highlight-submatches): Be a boolean. (isearch-group-{6-9}): New faces. (isearch-highlight): Use the variable as a boolean. 2020-09-21 Juri Linkov Tweak how Man selects the previous window on failure * lisp/man.el (Man-bgproc-sentinel): Ensure that we select the correct previous window (bug#38164). 2020-09-21 Lars Ingebrigtsen Allow disabling the verbose eldoc truncation message * doc/emacs/programs.texi (Lisp Doc): Document it. * lisp/emacs-lisp/eldoc.el (eldoc-display-truncation-message): New variable (bug#43543). (eldoc--handle-docs): Use it. 2020-09-21 Nicolas Graner (tiny change) Fix default value in checkboxes in eww * lisp/net/eww.el (eww-submit): Checked checkboxes need a default value (bug#43542). 2020-09-21 Michael Albinus Add D-Bus tests * doc/misc/dbus.texi (Type Conversion): Precise basic type values. * lisp/net/dbus.el (dbus-register-property): Send signal directly. * src/dbusbind.c (xd_signature): Accept non-nil objects for DBUS_TYPE_BOOLEAN. * test/lisp/net/dbus-tests.el (dbus-test01-basic-types) (dbus-test01-compound-types): New tests. 2020-09-21 Glenn Morris Merge from origin/emacs-27 02a31c9632 (origin/emacs-27) Minor improvement in the ELisp manual's ... f750def778 Mention in PROBLEMS the problems with fonts and Uniscribe 082d8a21b1 Minor copyedits in 'line-height' documentation 5b23393bcc ; * src/frame.c (syms_of_frame) : ... 2020-09-21 Glenn Morris Merge from origin/emacs-27 df04f3e755 Fix a rare segfault in syntax.c fd1fe1e1ec Add doc to syntax-propertize-function saying it must do a ... fcd599bbea Minor copyedits of doc of 'with-silent-modifications' 759399cdb1 Improve documentation of 'max-mini-window-height' 3223302aa2 Use modern constant names for the NS pasteboard 985703d380 Fix doc string of 'toggle-menu-bar-mode-from-frame' 184a4977c7 Make vc-bzr tests work with brz 3.1 (bug#43314) # Conflicts: # lisp/emacs-lisp/syntax.el # src/syntax.c 2020-09-21 Glenn Morris Merge from origin/emacs-27 694acda5f2 Fix compilation on TERMINFO platforms with GCC 10 f3373901e5 Fix the font-lock-debug-fontify NEWS entry # Conflicts: # etc/NEWS 2020-09-21 Lars Ingebrigtsen Fix infloop when folding difficult headers in Message * lisp/mail/rfc2047.el (rfc2047-fold-field): Return the end point. * lisp/gnus/message.el (message--fold-long-headers): Use that to reliably achieve progress. 2020-09-21 Lars Ingebrigtsen Allow not selecting messages in Gnus before resending * lisp/gnus/gnus-msg.el (gnus-summary-resend-message): Allow not selecting messages. This is faster when resending huge spam messages. 2020-09-20 Lars Ingebrigtsen Make xterm-mouse-event check whether the click event is valid * lisp/xt-mouse.el (xterm-mouse-event): Defensively check against a situation that shouldn't happen (but does) (bug#17378). 2020-09-20 Alan Mackenzie C++ Mode: Modernize the fontification of "using" Since "using" is now used in three distinct ways in C++, write a special function to handle these rather than attempting to adapt the old regular expressions. * lisp/progmodes/cc-fonts.el (c-font-lock-declarators): Amend to allow the argument TYPES to be a face. This face is given to the declarator being processed. (c-font-lock-single-decl): Make an argument to c-font-lock-declarators nil or t, not merely nil or non-nil. (c-complex-decl-matchers): Include c-font-lock-c++-using in the C++ value of this variable. (c-font-lock-c++-using): New function. * lisp/progmodes/cc-langs.el (c-using-kwds, c-using-key): New lang consts/vars. (c-modifier-kwds): Remove "using" from the C++ value. 2020-09-20 Lars Ingebrigtsen Restore the previous minimum-width specs in the line/column mode lines * lisp/bindings.el (mode-line-position-line-format) (mode-line-position-column-format) (mode-line-position-column-line-format, mode-line-position): Restore the previous min-width specs (bug#28648). 2020-09-20 Lars Ingebrigtsen Make (let ((:key 'foo)) :key) signal an error in lexical elisp, too * src/lread.c (intern_sym): Mark keywords as special (bug#38872). 2020-09-20 Lars Ingebrigtsen Fix typo in dbus.texi * doc/misc/dbus.texi (Type Conversion): Remove spurious { character. 2020-09-20 Michael Albinus Make D-Bus properties type safe * doc/misc/dbus.texi (Properties and Annotations): Precise dbus-get-property and dbus-set-property. (Type Conversion): Explain :byte and :boolean type conversion. (Errors and Events): dbus-ignore-errors returns nil when there is a D-Bus error. Remove dbus-show-dbus-errors. * etc/NEWS: Some D-Bus relevant changes. * lisp/net/dbus.el (dbus-show-dbus-errors): Remove. (dbus-ignore-errors): Replay implementation without that variable. (dbus-check-arguments): New defun. (dbus-list-activatable-names, dbus-list-names) (dbus-list-queued-owners, dbus-get-name-owner, dbus-introspect) (dbus-get-all-properties, dbus-get-all-managed-objects): Don't debug. (dbus-get-property, dbus-set-property): Propagate errors. (dbus-register-property): Check for valid VALUE. (dbus-property-handler): Simplify. * src/dbusbind.c (Fdbus_message_internal): Adapt docstring. Handle DBUS_MESSAGE_TYPE_INVALID. * test/lisp/net/dbus-tests.el (dbus-show-dbus-errors): Don't declare. (dbus-test06-register-property) (dbus-test06-register-property-emits-signal): Adapt tests. 2020-09-20 Eli Zaretskii Minor improvement in the ELisp manual's Introduction * doc/lispref/intro.texi (Printing Notation): Clarify what "execute code" means in this context. (Bug#43463) 2020-09-20 Eli Zaretskii Improve documentation of a recently-added feature * lisp/isearch.el (search-highlight-submatches): Improve the doc string. * doc/emacs/search.texi (Search Customizations): Improve the documentation of 'search-highlight-submatches'. * etc/NEWS: Minor change of the entry for 'search-highlight-submatches'. 2020-09-20 Juri Linkov Highlight regexp sub-expressions * doc/emacs/search.texi (Search Customizations): Document it. * lisp/isearch.el (search-highlight-submatches): New variable. (isearch-group-1, isearch-group-2, isearch-group-3) (isearch-group-4, isearch-group-5): New faces. (isearch-highlight): Use them. (isearch-dehighlight): Ditto (bug#6227). 2020-09-20 Kévin Le Gouguec Tweak dired warning about "wildcard" characters * lisp/dired-aux.el (dired-isolated-string-re): Use explicitly numbered groups. (dired--star-or-qmark-p): Add START parameter. Make sure to return the first isolated match. (dired--need-confirm-positions, dired--mark-positions) (dired--highlight-no-subst-chars, dired--no-subst-explain) (dired--no-subst-ask, dired--no-subst-confirm): New functions. (dired-do-shell-command): Use them (bug#28969, bug#35564). * test/lisp/dired-aux-tests.el (dired-test-bug27496): Adapt to new prompt. (dired-test--check-highlighting): New test helper. (dired-test-highlight-metachar): New tests. 2020-09-20 Eli Zaretskii Mention in PROBLEMS the problems with fonts and Uniscribe * etc/PROBLEMS: Mention font-related problems with Uniscribe on MS-Windows. (Bug#39340) 2020-09-20 Lars Ingebrigtsen Fix bug out when indenting inserted images in shr * lisp/net/shr.el (shr-fill-line): We may not have a shr-indentation text property here. In that case, default to the dynamically bound value. 2020-09-20 Lars Ingebrigtsen Remove code checked in to lread.c by mistake * src/lread.c (intern_sym): Remove code under development inadvertently checked in. 2020-09-20 dickmao Terminate `comint-password-function' tests * test/lisp/comint-tests.el (comint-test-no-password-function) (comint-test-password-function-with-value) (comint-test-password-function-with-nil): refactor (comint-tests/test-password-function): actually test `comint-send-invisible' and inhibit inadvertent interactive query (bug#38825). 2020-09-20 Lars Ingebrigtsen Tweak a hash table print test 2020-09-20 Pip Cet Fix printing of hash tables with removed elements * src/print.c (print_vectorlike): Keep track of the actual number of elements printed rather than attempting to use hash bucket indices (bug#38892). 2020-09-20 Dmitry Gutov Don't have vc-git-stash-list bug out on the .git directory * lisp/vc/vc-git.el (vc-git-stash-list): Don't bug out when running on the .git directory itself (bug#39285). 2020-09-20 Earl Add new tab command `C-x t C-r' * doc/emacs/misc.texi (FFAP): Document new commands (bug#43503). * lisp/ffap.el (ffap-read-only-other-tab): New command. * lisp/tab-bar.el (find-file-read-only-other-tab): New command and keystroke. 2020-09-20 Noam Postavsky Fix slow python-mode inserts when there's a lot of strings * lisp/progmodes/python.el (python-info-docstring-p): Doing more than two repetitions here doesn't improve indentation (bug#39598). 2020-09-20 Mauro Aranda New command: revert-buffer-with-fine-grain * doc/emacs/files.texi (Reverting): Document the new command and the new variable. * etc/NEWS: Mention the new command and the new variable. * lisp/files.el (revert-buffer-with-fine-grain): New command. Revert a buffer trying to be non-destructive, by using replace-buffer-contents. (revert-buffer-insert-file-contents-delicately): New function, alternative to revert-buffer-insert-file-contents-function--default-function. (revert-buffer-with-fine-grain-max-seconds): New variable. Passed as argument MAX-SECS of replace-buffer-contents. * test/lisp/files-tests.el (files-tests-lao files-tests-tzu): Helper variables, taken from diffutils manual, to test reverting a buffer. (files-tests-revert-buffer) (files-tests-revert-buffer-with-fine-grain): New tests (bug#18). 2020-09-20 Nick Roberts Make a gud error message more informative * lisp/progmodes/gud.el (gud-jdb-marker-filter): Make the error message more informative (bug#1282). 2020-09-20 Peder O. Klingenberg Extend process-lines to allow exit status handling * lisp/subr.el (process-lines-handling-status): Extension of the old process-lines, with more flexible handling of the exit status. (process-lines): Old API implemented using the new function. (process-lines-ignore-status): Another use of the new function - return the output lines regardless of the exit status (bug#1321). 2020-09-19 Eli Zaretskii Minor copyedits in 'line-height' documentation * doc/lispref/display.texi (Line Height): Describe the possible values of the 'line-height' property in a more consistent format. 2020-09-19 Lars Ingebrigtsen Add a new variable 'gnus-global-groups' * doc/misc/gnus.texi (HTML): Document it. * lisp/gnus/gnus-art.el (gnus-global-groups): New variable. (gnus-block-private-groups): Use it. 2020-09-19 bug-gnu-emacs@gnu.org Honor make-pointer-invisible on macOS * src/nsterm.m ([EmacsView keyDown:]): Call [NSCursor setHiddenUntilMouseMoves:] with the correct argument, depending on variable make-pointer-invisible. 2020-09-19 Gregor Zattler * doc/misc/eww.texi: Document the `w' key's double function * doc/misc/eww.texi (Basics): Describe what the `w' command does in eww (bug#43517). 2020-09-19 Gregor Zattler * doc/misc/eww.texi: Document the `w' key's double function * doc/misc/eww.texi (Basics): Describe what the `w' command does in eww (bug#43517). 2020-09-19 Daniel Martín Put files in mhtml-mode when they have Fix problem with spurious extra paragraphs in shr * lisp/net/shr.el (shr-ensure-paragraph): Don't regard
(empty placeholders) as occupying any space (bug#43510). 2020-09-19 Eli Zaretskii Fix a rare segfault in syntax.c * src/syntax.c (Fforward_comment): Prevent the loop for COUNT < 0 from going outside the valid range of character/byte positions. (Bug#43499) * doc/lispref/syntax.texi (Syntax Class Table): Mention the "comment-fence" and "string-fence" as alternative names of 2 syntax classes. 2020-09-19 Alan Mackenzie Add doc to syntax-propertize-function saying it must do a 100% job and cannot be combined with other ways of applying syntax-table text properties. * lisp/emacs-lisp/syntax.el (syntax-propertize-function): Amend doc string. * doc/lispref/syntax.texi (Syntax Properties): Amend the description of the variable. 2020-09-19 Lars Ingebrigtsen * lisp/menu-bar.el (menu-bar-showhide-fringe-menu): Adjust caller. (menu-bar-search-options-menu): Ditto. (menu-bar-options-menu): Ditto. (menu-bar-options-menu): Ditto. * lisp/progmodes/gdb-mi.el (menu): Ditto. * lisp/emacs-lisp/find-func.el (find-function-regexp): Add menu-bar-make-toggle-command. * lisp/menu-bar.el (menu-bar-make-toggle): Compatibility wrapper. 2020-09-19 Drew Adams * lisp/menu-bar.el (menu-bar-make-toggle-command): Add doc string and allow setting all keywords (bug#17954). 2020-09-19 Lennart Borgman Allow reveal mode to not automatically re-hide revealed text * lisp/reveal.el (reveal-hide-revealed): New command (bug#7101). (reveal-auto-hide): New defcustom. (reveal-post-command): Use it. 2020-09-19 Lars Ingebrigtsen Allow customizing hooks defined via define-minor-mode * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Allow using Customize on the hooks (bug#10773). 2020-09-19 Alex Bochannek Fix gnus-summary-catchup-from-here edge case * lisp/gnus/gnus-sum.el (gnus-summary-catchup-from-here): Make the command work in the final line in the buffer, too (bug#43496). 2020-09-19 Lars Ingebrigtsen Document Gnus body matching quirks * doc/misc/gnus.texi (Summary Score Commands): Document body match quirks (bug#43502). 2020-09-19 Lars Ingebrigtsen Display the language in the Flyspell mode line * lisp/textmodes/flyspell.el (flyspell-mode): Display the language in the mode line (bug#14957). 2020-09-19 Eli Zaretskii Minor copyedits of doc of 'with-silent-modifications' * doc/lispref/text.texi (Changing Properties): * doc/lispref/buffers.texi (Buffer Modification): Improve documentation and indexing of 'with-silent-modifications'. 2020-09-18 Eli Zaretskii Improve documentation of 'max-mini-window-height' * src/xdisp.c (syms_of_xdisp): * doc/lispref/minibuf.texi (Minibuffer Windows): More accurate wording in the documentation of 'max-mini-window-height', to clarify the meaning of an integer value. 2020-09-18 Daniel Martín Use modern constant names for the NS pasteboard Use the same pasteboard constant names defined in ns_drag_types. (Bug#43470). * src/nsterm.m: Rename NSURLPboardType to NSPasteboardTypeURL, NSStringPboardType to NSPasteboardTypeString, and NSTabularTextPboardType to NSPasteboardTypeTabularText 2020-09-18 Stefan Kangas Fix typo in project-kill-buffers * lisp/progmodes/project.el (project-kill-buffers): Fix typo. Reported by Manuel Uberti 2020-09-18 Andrii Kolomoiets Save and restore point in ewoc-invalidate * lisp/emacs-lisp/ewoc.el (ewoc--refresh-node): Save and restore point line and column offset. (eowc-map) (ewoc--invalidate) (ewoc-set-hf): Don't use save-excursion * lisp/vc/vc-dir.el (vc-dir-update): Don't save/restore point on calling 'ewoc-invalidate'. 2020-09-18 Adam Sjøgren Make emacs-uptime insert at point with prefix arg * lisp/time.el (emacs-uptime): Insert at point when called with prefix argument. (Bug#20112) 2020-09-18 Stefan Kangas Doc fix in directory-free-space-program * lisp/files.el (directory-free-space-program): Doc fix; there is no need to repeat that its obsolete here since it will be shown by customize, describe-variable, etc. automatically. 2020-09-18 Lars Ingebrigtsen Fix the defcustom type of eww-retrieve-command * lisp/net/eww.el (eww-retrieve-command): The type is a list of strings. 2020-09-18 Lars Ingebrigtsen Use a widget for the face link in Customize buffers * doc/lispref/customize.texi (Common Keywords): Document it. * lisp/cus-edit.el (custom-face-value-create): Use a widget instead of a button so that TAB works (bug#20664). * lisp/wid-edit.el (face-link): New widget. (widget-face-link-action): New action. 2020-09-18 Michael Albinus Fix error in D-Bus test * test/lisp/net/dbus-tests.el (dbus-test04-register-method): Do not check for error message text. (dbus--test-signal-handler): Fix docstring. (dbus--test-timeout-handler): New defun. (dbus-test05-register-signal) (dbus-test06-register-property-emits-signal): Use it. 2020-09-18 Michael Albinus * lisp/progmodes/cperl-mode.el (cperl-set-style): Fix docstring. 2020-09-18 Dmitry Gutov Fix typo, reported by Manuel Uberti * lisp/progmodes/project.el (project-kill-buffer-conditions): Fix typo. 2020-09-18 Eli Zaretskii Minor cleanup of last change * src/termchar.h (struct tty_display_info): * src/term.c (turn_on_face, tty_capable_p): Reformat new code. 2020-09-18 Mike Hamrick TTY Support for ECMA-48 strike-through graphic rendition * src/term.c: Support strike-through in capable terminals. (no_color_bit): Replace unused NC_INVIS with NC_STRIKE_THROUGH. (turn_on_face): Output via TS_enter_strike_through_mode if available. (turn_off_face): Handle strike-through case. (tty_capable_p, init_tty): Support strike-through. * src/termchar.h (struct tty_display_info): Add field for strike-through. * src/xfaces.c (tty_supports_face_attributes_p, realize_tty_face): Handle strike-through case. * src/dispextern.h: Add TTY_CAP_STRIKE_THROUGH definition. (struct face): Add field tty_strike_through_p. 2020-09-18 James N. V. Cash (tiny change) * lisp/tab-bar.el (tab-bar-new-tab-to): Fix tabs not reappearing (bug#42052) 2020-09-18 Eli Zaretskii Update TUTORIAL.he * etc/tutorials/TUTORIAL.he: Adapt to latest changes in the English TUTORIAL. 2020-09-18 Richard Stallman Document easy ways of typing undo key on TTY frames * doc/emacs/basic.texi (Basic Undo): Document the easiest way to type the undo key. * etc/tutorials/TUTORIAL: Describe typing C-_ without the Shift key. 2020-09-18 Lars Ingebrigtsen Revert "Make delete-pair only delete pairs that are part of insert-pair-alist" This reverts commit 82de8ecc080d91dd05f2432d2d07feb2955aeec4. This patch breaks doing `M-x delete-pair' on "foo" in text-mode. 2020-09-18 Lars Ingebrigtsen Remove mention of C-u M-. from the refcards The "find next tags" command no longer exists, as the machinery has been replaced by xref. 2020-09-17 Mauro Aranda Fix recent change in wid-edit * lisp/wid-edit.el (widget-button--check-and-call-button): Record the ending position of event, because we might need it when the :mouse-down-action function returns non-nil (bug#20664). 2020-09-17 Lars Ingebrigtsen Doc string typo fix for mode-line-position-column-format * lisp/bindings.el (mode-line-position-column-format): Fix typo in doc string. 2020-09-17 Oleh Krehel Make face names clickable in Customize buffers * lisp/cus-edit.el (custom-face-value-create): Make the face name a clickable button (bug#20664). 2020-09-17 Lars Ingebrigtsen Refactor a very long wid-edit function and add additional checking * lisp/wid-edit.el (widget-button--check-and-call-button): Factor out a too-long condition/call... (widget-button-click): From here. 2020-09-17 Juri Linkov Allow binding keys in `query-replace-map' * lisp/replace.el (perform-replace): Allow binding keys in `query-replace-map' (bug#20687). 2020-09-17 Lars Ingebrigtsen Fix up previous autoload-find-generated-file change * lisp/emacs-lisp/autoload.el (autoload-find-generated-file): Use the correct name for find-file-hook. 2020-09-17 Lars Ingebrigtsen Make package install not bug out on weird stuff in find-file-hooks * lisp/emacs-lisp/autoload.el (autoload-find-generated-file): Users may have read-only-mode in find-file-hooks (bug#43460) so just disable all the hooks here. 2020-09-17 Harald Jörg cperl-mode: Add new value "PBP" for 'cperl-set-style' * lisp/progmodes/cperl-mode.el (cperl-style-alist) (cperl-set-style): Add indentation style recommended by Damian Conway's book "Perl Best Practices". * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-test-indent-styles): Add a test to verify indentation and unraveling of conditionals (bug#43457). 2020-09-17 Eli Zaretskii Fix documentation of a recent change * src/keyboard.c (update_recent_keys): Fix commentary. (Flossage_size): Fix doc string. * etc/NEWS: Move and fix wording of the recently added entry. 2020-09-17 Masahiro Nakamura etc/refcards/refcard.tex: Fix some grouping regexps * etc/refcards/refcard.tex (section{Regular Expressions}): Fix the shy/numbered grouping examples (bug#43429). 2020-09-17 Michael Albinus Work on D-Bus properties etc * lisp/net/dbus.el (seq, subr-x): Require. (dbus-error-disconnected, dbus-error-service-unknown): New defconst. (dbus-set-property, dbus-register-property): Use `keywordp'. Fix proper value sending a signal. * test/lisp/net/dbus-tests.el (dbus-test04-register-method): Extend test. (dbus--test-signal-received): New defvar. (dbus--test-signal-handler): New defun. (dbus-test05-register-signal) (dbus-test06-register-property-emits-signal): New tests. (dbus-test06-register-property) (dbus-test06-register-property-several-paths): Rename tests. 2020-09-17 Alex Bochannek Allow user-defined scoring in Gnus * lisp/gnus/gnus-score.el (gnus-score-func): New function (bug#43413). * doc/misc/gnus.texi (Score File Format): Document it. 2020-09-17 martin rudalics Make delete-pair only delete pairs that are part of insert-pair-alist * lisp/emacs-lisp/lisp.el (delete-pair): Only delete pairs that are part of `insert-pair-alist' (bug#4136). 2020-09-17 Tino Calancha Give Lisp control on the lossage size Add a command 'lossage-size' to set the maximum number or recorded keystrokes (Bug#38796). * src/keyboard.c (lossage_limit): Static variable with the current lossage size limit. (MIN_NUM_RECENT_KEYS): Renamed from NUM_RECENT_KEYS. Set it as 100 and use it as the minimum value for lossage_limit. Keep the same default for the vector size as before (300). (lossage-size): New command. (update_recent_keys): Helper function. (command_loop_1) (record_char) (recent-keys) (syms_of_keyboard): Use lossage_limit as the vector size. * lisp/help.el (view-lossage): Mention the new command in the docstring. * etc/NEWS (Changes in Emacs 28.1): Announce this change. * doc/emacs/help.texi (Misc Help): Update manual. * test/src/keyboard-tests.el (keyboard-lossage-size): Add test. 2020-09-17 Lars Ingebrigtsen Fix up previous change for column/line spec mechanism in the mode line * lisp/bindings.el (column-number-indicator-zero-based): Make obsolete (bug#28648). (mode-line-position-column-line-format): New variable. (mode-line-position--column-line-properties): New const. (mode-line-position): Use it. 2020-09-17 Andreas Schwab Remove pointless use of intern * lisp/mwheel.el (mouse-wheel-left-event) (mouse-wheel-right-event): Replace use of intern with quoted symbol. * lisp/profiler.el (profiler-calltree-build-unified): Likewise. * lisp/vc/ediff-util.el (ediff-debug-info): Likewise. 2020-09-16 Eli Zaretskii Fix doc string of 'toggle-menu-bar-mode-from-frame' * lisp/menu-bar.el (toggle-menu-bar-mode-from-frame): Improve the wording of the doc string. (Bug#43383) 2020-09-16 Michael Albinus D-Bus: keep type information in D-Bus events * doc/misc/dbus.texi (Errors and Events): * etc/NEWS: D-Bus events keep the type information of their arguments. * lisp/net/dbus.el (dbus-check-event): Fix docstring. (dbus-delete-types, dbus-flatten-types): New defuns. (dbus-handle-event, dbus-register-property, dbus-property-handler): Handle type information. (dbus-set-property): Fix thinko. * src/dbusbind.c (XD_BASIC_DBUS_TYPE): Simplify. (xd_dbus_type_to_symbol): New function. (xd_retrieve_arg): Return type information for the arguments. (xd_read_message_1): Return type information for the error name. (dbus-registered-objects-table): Fix docstring. 2020-09-16 Lars Ingebrigtsen Fix problem with previous dired.el change * lisp/dired.el (dired-get-filename): dired-current-directory can't be called before the dired buffer has been set up. (add-hook 'dired-mode-hook 'dired-sort-toggle) calls dired-get-filename in a way that exposes this problem, so avoid it. 2020-09-16 Lars Ingebrigtsen Tweak previous report-emacs-bug-hook change * lisp/mail/emacsbug.el (report-emacs-bug-hook): Add to the hook locally so sending stuff from Message afterwards won't trigger the same question. 2020-09-15 Lars Ingebrigtsen Make sgml-validate not bug out from buffers not visiting a file * lisp/textmodes/sgml-mode.el (sgml-validate): Don't bug out when running from a buffer that's not visiting a file (bug#22906). 2020-09-15 Lars Ingebrigtsen Use a square root character in calc displays * lisp/calc/calccomp.el (math-compose-sqrt): Use a square root character, if possible (bug#22919). Suggested by Zephyr Pellerin . 2020-09-15 Eli Zaretskii Avoid aborts in display_mode_element * src/xdisp.c (display_mode_element): Use parse_str_as_multibyte, not multibyte_chars_in_text, to determine whether mode-line spec shall be displayed as a multibyte or unibyte string. We cannot use multibyte_chars_in_text here because it aborts when it finds raw bytes in the spec string. (Bug#43409) 2020-09-15 Robert Pluim Stop querying for fonts as soon as a match is found Scanning through fonts can be very slow, especially with the 'x' font backend, and the result is almost always not used. Stop looking for a font as soon as one is found rather than scanning all the backends. * src/font.c (font_list_entities): Stop scanning through the font backends as soon as we find a match unless 'query-all-font-backends is set (Bug#43177). (syms_of_font): New variable 'query-all-font-backends', default false. 2020-09-15 Lars Ingebrigtsen Fix up previous replace-in-string commit * lisp/subr.el (replace-in-string): Fix thinko in implementation. 2020-09-15 Lars Ingebrigtsen Allow controlling the look of the line/column indicators * doc/lispref/modes.texi (Mode Line Variables): Document them. * lisp/bindings.el (mode-line-position-line-format): New variable (bug#28648). (mode-line-position-column-format): Ditto. (mode-line-position): Use them. * lisp/simple.el (column-number-mode): Mention them. (line-number-mode): Ditto. 2020-09-15 Lars Ingebrigtsen Add new, simple `replace-in-string' function * lisp/subr.el (replace-in-string): New, side-effect-free function. * doc/lispref/searching.texi (Search and Replace): Document it. 2020-09-15 Stefan Kangas * lisp/window.el: Add provide statement * lisp/window.el (window): Put a `provide' form to help with the popular `use-package' external package (bug#37053). 2020-09-15 Eli Zaretskii Fix MS-Windows compilation of Gnulib with old versions of MinGW * nt/inc/ms-w32.h (_WIN32_WINNT_WIN2K, _WIN32_WINNT_WINXP) (_WIN32_WINNT_WS03, _WIN32_WINNT_VISTA, _WIN32_WINNT_WIN7, _WIN32_WINNT_WIN8, _WIN32_WINNT_WINBLUE, _WIN32_WINNT_WIN10) [__MINGW32__]: Define if any of these is not defined. Reported by martin rudalics . 2020-09-15 Jimmy Aguilar Mena Merge branch 'feature/uniquify-as-function' into master Document use of uniquify-buffer-name-style as a function. 2020-09-15 Jimmy Aguilar Mena Enable uniquify-buffer-name-style to be a function. * lisp/uniquify.el (uniquify-buffer-name-style) : Add "Other" custom option (uniquify-get-proposed-name) : Add condition for when uniquify-buffer-name-style is a function. 2020-09-15 Lars Ingebrigtsen Fix mailclient-send-it after recent browse-url rewrite * lisp/mail/mailclient.el (mailclient-send-it): Make this function work again after the browse-url machinery was changed to use browse-url-default-handlers instead. 2020-09-15 Lars Ingebrigtsen Fix regression in non-querying about mail addresses in "emacs -Q" * lisp/mail/emacsbug.el (report-emacs-bug-hook): Don't query about the mail address if using an external mailer (bug#43386). 2020-09-15 Daniel Martín Check that the buffer in diff-buffer-with-file is visiting a file * lisp/vc/diff.el (diff-buffer-with-file): Signal a specific error when the buffer passed to diff-buffer-with-file is not visiting a file (bug#43401). 2020-09-15 Andrea Corallo Better error handling after calling 'gcc_jit_context_compile_to_file' Typically errors are catched in 'compile_function' but in case libgccjit throw an error only afterwards while compiling the whole compilation unit we have to report it correctly. * src/comp.c (Fcomp__compile_ctxt_to_file): Catch libgccjit errors after calling 'gcc_jit_context_compile_to_file'. 2020-09-14 Andrea Corallo * test/src/comp-tests.el (comp-tests-bootstrap): Print compilation time. 2020-09-14 Andrea Corallo Fix free function compilation load process. * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Do not crash if the eln filename is not canonical (tmp file or manual load). 2020-09-14 Andrea Corallo Add gv-setters for compiler hints * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Add gv-setters so type hinted expressions can be used as places. Read we can now have like: '(cl-incf (cl-the fixnum x))'. 2020-09-14 Andrea Corallo * lisp/emacs-lisp/comp.el (comp-sp): Better style gv-setter declaration. 2020-09-14 Andrea Corallo Remove type check emission from type hints low level primitives These have to be emitted by higher level primitives as `cl-the'. * lisp/emacs-lisp/comp.el (comp-hint-fixnum, comp-hint-cons): Do not emit type checks. 2020-09-14 Andrea Corallo * lisp/emacs-lisp/cl-macs.el: Define fixnum and bignum. Define fixnum so `cl-typep' recognize it and the type check emitted by `cl-the' is effective. 2020-09-14 Andrea Corallo Add 'cl-optimize' as function declaration * lisp/emacs-lisp/cl-macs.el: Register cl-optimize into `defun-declarations-alist' and `macro-declarations-alist'. (cl--optimize): New function to serve 'cl-optimize' declaration. 2020-09-14 Andrea Corallo * lisp/emacs-lisp/cl-macs.el (cl-the): Emit compiler hints when native. 2020-09-14 Stefan Monnier * test/lisp/emacs-lisp/find-func-tests.el: New file (for bug#43393) * lisp/emacs-lisp/ert-x.el (ert-simulate-keys): New macro. * test/lisp/international/mule-tests.el (mule-cmds--test-universal-coding-system-argument): Use it and enable the test also in batch mode. 2020-09-14 Kevin Ryde Tweak the `C-x v =' command when done from a diff buffer * lisp/vc/vc.el (vc-diff): Offer to save the relevant buffer(s) when doing `C-x v =' from a diff buffer (bug#5773). 2020-09-14 Pip Cet Don't retry reading after receiving EINVAL * src/process.c (wait_reading_process_output): Don't retry reading from an fd after an unknown error (bug#6074). 2020-09-14 Stephen Berman Fix problem of marking files with hidden subdirs * lisp/dired.el (dired-unhide-subdir): (dired-subdir-hidden-p): (dired-subdir-min): Moved from subr-x. (dired-get-filename): Get the correct filename when directories are hidden (bug#8484). 2020-09-14 Lars Ingebrigtsen Allow preserving (some) text properties from completion tables * doc/lispref/minibuf.texi (Text from Minibuffer): Document it. * lisp/minibuffer.el (completion--replace): Preserve text properties on completed items (bug#43218). 2020-09-14 Lars Ingebrigtsen Allow hitting RET on info node names with multiple whitespace chars * lisp/info.el (info--node-canonicalize-whitespace): New function (bug#10784). (Info-extract-menu-node-name): Use it. (Info-find-node): Use it. 2020-09-14 Lars Ingebrigtsen Revert "Fix completion in `read-library-name'" This reverts commit ed44217d3245ddc8f2cf75c9499d5bb37848cfd7. This commit broke the use case of `M-x load-library RET o/or TAB' to expand to org/org. 2020-09-14 Lars Ingebrigtsen Further fixups in minibuffer-default--in-prompt-regexps * lisp/minibuf-eldef.el (minibuffer-default--in-prompt-regexps): Really allow shortening the default prompt format to [foo] (if requested) (bug#12443). 2020-09-14 Lars Ingebrigtsen Support build of Emacs on ARM Macos machines * configure.ac: Add support for aarch64-* on Macos (i.e., 64-bit ARM) (bug#43369). 2020-09-14 Mattias Engdegård Calc: fix binomial coefficients for negative arguments (bug#16999) For some values outside integers 0≤k≤n, (n choose k) gave wrong results, entered infinite recursion or used unreasonably amounts of stack space. This change fixes that and extends the function to all integer arguments using the definitions from M. J. Kronenburg (https://arxiv.org/abs/1105.3689). * lisp/calc/calc-comb.el (calcFunc-choose): Fix sign error to prevent infinite recursion and extend function to handle all integer arguments. (math-choose-iter, math-choose-float-iter): Rewrite in iterative form; no TCO in elisp yet. * test/lisp/calc/calc-tests.el (calc-tests--fac, calc-tests--choose) (calc-tests--check-choose, calc-tests--explain-choose) (calc-tests--calc-to-number): New helper functions. (calc-choose): New test. 2020-09-14 Mattias Engdegård * lisp/simple.el (undo-redo): Rephrase error message. 2020-09-14 Glenn Morris Fix builds without modules * src/data.c (Finteractive_form): * src/eval.c (Fcommandp): Fix builds without modules. 2020-09-14 Lars Ingebrigtsen Fix up report-emacs-bug action on invalid From headers * lisp/mail/emacsbug.el (report-emacs-bug-hook): Move point to the From header if the user has to edit the From header. 2020-09-14 akater (tiny change) Fix compilation-mode-map doc string * lisp/progmodes/compile.el (compilation-mode-map): Remove mention of compilation-minor-mode-map (bug#43382). As the comment in the body says: ;; Don't inherit from compilation-minor-mode-map, ;; because that introduces a menu bar item we don't want. ;; That confuses C-down-mouse-3. and the map actually inherits from special-mode-map. 2020-09-13 Philipp Stephani Add facility to make module functions interactive (Bug#23486). * src/module-env-28.h: Add field for 'make_interactive' function. * src/emacs-module.c (Lisp_Module_Function): Add new field holding the interactive form. (allocate_module_function): Adapt to structure layout change. (module_make_interactive, module_function_interactive_form): New functions. (initialize_environment): Use them. * src/eval.c (Fcommandp): * src/data.c (Finteractive_form): Also handle interactive module functions. * test/data/emacs-module/mod-test.c (Fmod_test_identity): New test function. (emacs_module_init): Create two interactive module test functions. * test/src/emacs-module-tests.el (module/interactive/return-t) (module/interactive/return-t-int, module/interactive/identity): New unit tests. * doc/lispref/internals.texi (Module Functions): Document new function. Rework paragraph about wrapping module functions, as the example no longer applies. * etc/NEWS: Document new facility. 2020-09-13 Reuben Thomas Escape ampersand in table.el LaTeX output * lisp/textmodes/table.el (table--generate-source-scan-lines): Add ampersand '&' to the list of characters to escape in LaTeX output. 2020-09-13 Andrea Corallo Fix defsbust declare effectiveness introduced by 80d7f710 (Bug#43280). * lisp/emacs-lisp/byte-run.el (defsubst): Do not add a speed declaration as this breaks a pre existing ones if present but rather calls directly `byte-run--set-speed'. 2020-09-13 Lars Ingebrigtsen Further fixups of the variable-pitch eww header line change * lisp/net/eww.el (eww-update-header-line-format): Protect against :url not being set. 2020-09-13 Stefan Kangas Improve wording of cua-mode menu entry * lisp/menu-bar.el (menu-bar-options-menu): Improve wording of the cua-mode menu entry. (Bug#43323) 2020-09-13 Stefan Kangas Improve frame-title-format and icon-title-format * src/xdisp.c (syms_of_xdisp): Replace 'invocation-name' with the text "%b - GNU Emacs" and replace "@" with " at ". (Bug#41147) * etc/NEWS: Announce the above change. 2020-09-13 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-09-13 Eli Zaretskii Fix punctuation in EWW manual * doc/misc/eww.texi (Advanced): Fix punctuation of a recent change. 2020-09-13 Lars Ingebrigtsen Make diff--refine-hunk bug out less on broken patches * lisp/vc/diff-mode.el (diff--refine-hunk): Don't bug out on broken patches where we can't find the middle. 2020-09-13 Lars Ingebrigtsen Make the eww header work again even if the title is nil * lisp/net/eww.el (eww-update-header-line-format): Don't bug out if the title isn't set at all. 2020-09-13 Dario Gjorgjevski Make ERC desktop notifications lenient to invalid XML characters * lisp/xml.el (xml-invalid-characters-re): New constant. * lisp/erc/erc-desktop-notifications.el (erc-notifications-notify): Strip IRC control codes and invalid XML characters before notifying (bug#43328). 2020-09-13 Lars Ingebrigtsen Don't eagerly store articles in the Agent by default * lisp/gnus/gnus-agent.el (gnus-agent-store-article): Made obsolete. * lisp/gnus/gnus-art.el (gnus-request-article-this-buffer): Don't call it. * lisp/gnus/gnus-async.el (gnus-async-article-callback): Ditto (bug#43356). This partially reverts f3b146e943cd733fb716c75048f24b73826e5f30, which in was response to what appears to be an erroneous feature-request - bug#8502. Instead this should be done instead: “If I read an article while plugged, do they get entered into the Agent?” *No*. If you want this behavior, add ‘gnus-agent-fetch-selected-article’ to ‘gnus-select-article-hook’. 2020-09-13 Lars Ingebrigtsen Kill gpg-agents started by mml-sec-tests (bug#43358) 2020-09-13 Brian Leung (tiny change) Update .gitignore with ccls files * .gitignore: Ignore files used by ccls, a language server for C (bug#43365). 2020-09-13 Lars Ingebrigtsen Doc string clarification in file-directory-p * src/fileio.c (Ffile_directory_p): Mention that "" is a special case (bug#43375). 2020-09-13 Kiso Katsuyuki (tiny change) Clarify when tab-line-switch-cycling is used * lisp/tab-line.el (tab-line-switch-cycling): Clarify when the variable is used. 2020-09-13 Stefan Kangas * lisp/time.el (display-time-world): Make obsolete. 2020-09-13 Stefan Kangas Make M-x show what aliases point to (Bug#43300) * lisp/simple.el (read-extended-command--annotation): Show an annotation for aliases saying what it points to. 2020-09-13 Stefan Kangas Make M-x show obsolete commands (Bug#43300) * lisp/simple.el (read-extended-command): Don't hide obsolete commands. (read-extended-command--annotation): Show an annotation for obsolete commands that says what their new name is. 2020-09-13 Lars Ingebrigtsen Revert "Use format-prompt in read-file-name calls that have a default" This reverts commit de4f347901adffd07bc9bff028dc073fb3c6df33. read-file-name already displays a long path when given a default (like INITIAL in many other prompting functions), so using format-prompt here is superfluous. 2020-09-13 Lars Ingebrigtsen Make `ascii' a coding system alias for `us-ascii' * lisp/international/mule-conf.el (ascii): Define `ascii' as a coding system alias to `us-ascii' (bug#43351). 2020-09-13 Michael Albinus Fix a conversion failure in tramp-archive-tests (Bug#43353) * test/lisp/net/tramp-archive-tests.el (tramp-archive-test-file-archive-hexlified): New defun. (tramp-archive-test02-file-name-dissect): Use it. (Bug#43353) 2020-09-13 Glenn Morris Don't force LC_ALL=C upon make check (bug#43353) * test/Makefile.in (TEST_LOCALE): Remove. (emacs): Don't force LC_ALL=C, since it causes problems with non-ascii directories. This mirrors a 7-year old lisp/Makefile change. 2020-09-13 Glenn Morris Mark some diff tests as failing in nonascii directories * test/lisp/vc/diff-mode-tests.el (diff-mode-test-font-lock) (diff-mode-test-font-lock-syntax-one-line): Expect failure in non-ascii directories. 2020-09-13 Lars Ingebrigtsen Clean up eww error buffer * lisp/net/eww.el (eww-retrieve): Clean up error buffer after exiting. 2020-09-13 Lars Ingebrigtsen Fix up example code from previous eww.texi commit * doc/misc/eww.texi (Advanced): Simplify example command (and "--virtual-time-budget=3000" makes Chromium unstable). 2020-09-13 Lars Ingebrigtsen Add a way to use an external command to download HTML in eww * doc/misc/eww.texi (Advanced): Document it. * lisp/net/eww.el (eww-retrieve): New function. (eww-reload): Use it. (eww): Ditto. (eww-retrieve-command): New variable. 2020-09-12 Glenn Morris Adapt some tests for Emacs's excitingly variable quoting format * test/lisp/subr-tests.el (subr-test-version-parsing): * test/lisp/emacs-lisp/gv-tests.el (gv-dont-define-expander-other-file): * test/src/callint-tests.el (call-interactively/incomplete-multibyte-sequence): * test/src/emacs-module-tests.el (module/describe-function-1): Don't fail if curly quotes are in use, as they can be if LC_ALL != C. 2020-09-12 Michael Albinus Cleanup in dbus.el, dbus-tests.el * lisp/net/dbus.el (dbus-error-no-reply): New defconst. (dbus-call-method): Use it. (dbus-call-method-asynchronously, dbus-register-signal): Fix docstring. (dbus-unregister-object): Obey :serial entries in `dbus-registered-objects-table'. * test/lisp/net/dbus-tests.el (dbus-test04-register-method) (dbus-test05-register-property): Extend tests. 2020-09-12 Glenn Morris Make vc-bzr tests work with brz 3.1 (bug#43314) * test/lisp/vc/vc-bzr-tests.el (vc-bzr-test-bug9726) (vc-bzr-test-bug9781, vc-bzr-test-faulty-bzr-autoloads): Make them work with brz 3.1. 2020-09-12 Alan Mackenzie C++ Mode: handle __attribute__,etc. inside constructor argument lists This corrects both the fontification and indentation of these things, fixing bug #42270. * lisp/progmodes/cc-engine.el (c-do-declarators): Skip over "hangon keys" and noise macros whilst scanning a putative C++ function. (c-forward-decl-or-cast-1): When checking for typeless functions, skip over "hangon keys" and noise macros. * lisp/progmodes/cc-mode.el (c-fl-decl-end): Deal with certain invalid "nested declarators" by scanning over them with a recursive call of c-fl-decl-end. * lisp/progmodes/cc-vars.el (c-noise-macro-names) (c-noise-macro-with-parens-names): State in the doc strings that if either of these is a regexp, it must have a submatch 1 which matches the noise macro exactly. 2020-09-12 Glenn Morris Small Texinfo markup fixes * doc/misc/dbus.texi (Register Objects): * doc/misc/gnus.texi (Searching): Texinfo markup fixes. 2020-09-12 Lars Ingebrigtsen Fix compilation warning in cl-font-lock * lisp/progmodes/cl-font-lock.el (cl-font-lock-built-in-mode): Put in the tools group to avoid a compilation warning. 2020-09-12 Lars Ingebrigtsen Fix compilation warning in obsolete/complete.el * lisp/obsolete/complete.el (completion-base-size): Avoid compilation warning. 2020-09-12 Lars Ingebrigtsen Fix compilation warning in cl-lib.el * lisp/emacs-lisp/cl-lib.el (cl-old-struct-compat-mode): Put the minor mode in the tools group (to avoid a compilation warning). 2020-09-12 Lars Ingebrigtsen dired-omit-mode may not be defined in dired-jump * lisp/dired.el (dired-jump): dired-omit-mode is in dired-x, so it may not be defined in dired. 2020-09-12 Alex Bochannek Support scoring on article age interactively in Gnus * lisp/gnus/gnus-score.el (gnus-summary-score-entry): Support scoring on article age in interactive scoring (bug#43270). 2020-09-12 Glenn Morris Default Emacs to UTF-8 instead of Latin-1 * doc/emacs/mule.texi (File Name Coding): Document it. * lisp/international/mule-cmds.el (reset-language-environment): Default to utf-8 instead of latin-1. * lisp/mail/sendmail.el (default-sendmail-coding-system): Ditto. * lisp/mh-e/mh-comp.el (mh-send-letter): Ditto. 2020-09-12 Martin Rudalics Fix toggle-frame-fullscreen on w32 builds * src/w32term.c (w32_read_socket): Set 'fullscreen' to 'maximized' if Windows sends SIZE_MAXIMIZED and either the top or the left of the frame is outside the screen. (Bug#25542) 2020-09-12 Lars Ingebrigtsen Further diff-no-select doc string clarification * lisp/vc/diff.el (diff-no-select): Doc string clarification. 2020-09-12 Eli Zaretskii Avoid unneeded recentering when header-line is used * src/xdisp.c (try_window): Account for header-line height only in the scroll-margin at the window's top, but not at its bottom. (Bug#42653) 2020-09-12 Eli Zaretskii Fix compilation on TERMINFO platforms with GCC 10 * src/terminfo.c [TERMINFO]: Don't redefine UP, BC, and CP, as that could cause linking errors due to multiple definitions. (Bug#43195) 2020-09-12 Stefan Kangas Move dired-jump from dired-x to dired (Bug#21981) * lisp/dired-x.el (dired-bind-jump): Change into defvar and make obsolete. (dired-extra-startup): Doc fix. (dired-jump, dired-jump-other-window): Move from here... * lisp/dired.el (dired-jump, dired-jump-other-window): ...to here. * lisp/bindings.el (ctl-x-map, ctl-x-4-map): Bind 'C-j' to 'dired-jump' and 'dired-jump-other-window'. * doc/misc/dired-x.texi (Features, Installation) (Miscellaneous Commands): Remove documentation of 'dired-jump'. * doc/emacs/dired.texi (Dired Enter): Document 'dired-jump' and dired-jump-other-window. * etc/NEWS: Announce the above changes. * test/lisp/dired-tests.el (dired-autoload): Adjust test. 2020-09-11 Stefan Kangas Add some eshell completion patterns * lisp/eshell/em-cmpl.el (eshell-command-completions-alist): Add 'gunzip', 'bunzip2' and 'unxz'. 2020-09-11 Stefan Kangas Remove cedet items obsolete since 23.2 * lisp/cedet/semantic.el (semantic-toplevel-bovine-table) (semantic-toplevel-bovine-cache) (semantic-before-toplevel-bovination-hook) (semantic-after-toplevel-bovinate-hook, semantic-init-hooks) (semantic-init-mode-hooks, semantic-init-db-hooks) (semantic-bovination-working-type, semantic-bovinate-toplevel) (semantic-bovinate-region-until-error) (semantic-bovinate-from-nonterminal-full): * lisp/cedet/semantic/db-mode.el (semanticdb-mode-hooks): * lisp/cedet/semantic/decorate/mode.el (semantic-decorate-pending-decoration-hooks): * lisp/cedet/semantic/edit.el (semantic-edits-incremental-reparse-failed-hooks): * lisp/cedet/semantic/fw.el (define-mode-overload-implementation): * lisp/cedet/semantic/idle.el (semantic-before-idle-scheduler-reparse-hooks) (semantic-after-idle-scheduler-reparse-hooks): (semantic-eldoc-current-symbol-info) * lisp/cedet/semantic/imenu.el (semantic-imenu-expand-type-parts) (semantic-imenu-bucketize-type-parts) (semantic-imenu-expandable-token): * lisp/cedet/semantic/java.el (semantic-java-prototype-nonterminal): * lisp/cedet/semantic/lex.el (semantic-flex-token-start) (semantic-flex-token-end, semantic-flex-token-text) (semantic-flex-make-keyword-table, semantic-flex-keyword-p) (semantic-flex-keyword-put, semantic-flex-keyword-get) (semantic-flex-map-keywords, semantic-flex-keywords) (semantic-flex-buffer, semantic-flex-list, semantic-flex): * lisp/cedet/semantic/tag-file.el (semantic-find-nonterminal) (semantic-find-dependency): * lisp/cedet/semantic/tag-ls.el (semantic-nonterminal-full-name) (semantic-nonterminal-protection, semantic-nonterminal-abstract) (semantic-nonterminal-leaf): * lisp/cedet/semantic/tag.el (semantic-token-type-parent) (semantic-tag-make-assoc-list, semantic-expand-nonterminal): * lisp/cedet/semantic/util.el (semantic-file-token-stream) (semantic-something-to-stream): * lisp/cedet/semantic/wisent.el (wisent-lex-make-token-table): Delete many items obsolete since Emacs 23.2. * lisp/cedet/semantic.el (semantic--set-buffer-cache) (semantic-fetch-tags): Don't run removed hooks 'semantic-after-toplevel-bovinate-hook' and 'semantic-before-toplevel-bovination-hook'. * lisp/cedet/semantic/bovine/el.el: Remove reference to obsolete variable 'define-mode-overload-implementation'. * lisp/cedet/semantic/doc.el (semantic-doc-snarf-comment-for-tag): Don't bind removed variable 'semantic-ignore-comments'. * lisp/cedet/semantic/fw.el (semantic-overload-symbol-from-function) (semantic-alias-obsolete, semantic-varalias-obsolete): Declare obsolete in favor of standard Emacs 'define-obsolete-*-alias'. * lisp/cedet/semantic/grammar.el (semantic-grammar-ASSOC): Don't use obsolete names. * lisp/cedet/semantic/tag-ls.el (semantic-tag-full-package) (semantic-tag-full-name): Doc fixes. * lisp/cedet/semantic/util.el (semantic-describe-buffer): Don't bind removed variable 'semantic-after-toplevel-bovinate-hook'. * lisp/cedet/semantic/lex.el (semantic-flex-tokens) (semantic-flex-unterminated-syntax-end-function) (semantic-flex-extensions, semantic-flex-syntax-modifications) (semantic-ignore-comments, semantic-flex-enable-newlines) (semantic-flex-enable-whitespace, semantic-flex-enable-bol) (semantic-number-expression, semantic-flex-depth): Make unused variables obsolete. 2020-09-11 Lars Ingebrigtsen Guard against faulty flow-filled emails * lisp/mail/flow-fill.el (fill-flowed): Don't bug out if there's a space at the end of the buffer. This is probably not allowed in the flow-fill specification, but has been observed in the wild. 2020-09-11 Alan Mackenzie CC Mode: Fix minor bugs in the string handling functions These sometimes gave rise to the tail of a buffer being "stringed out". * lisp/progmodes/cc-defs.el (c-will-be-unescaped): New macro. * lisp/progmodes/cc-mode.el (c-before-change-check-unbalanced-strings) (c-after-change-mark-abnormal-strings): Fix bugs in the handling of string fence syntax-table text properties. 2020-09-11 Eli Zaretskii Improve help-echo of Undo and Redo menu items * lisp/menu-bar.el (undo-redo, undo): Improve the wording of help-echo strings. 2020-09-11 Lars Ingebrigtsen Tweak previous mailcap patch (for external viewers) * lisp/net/mailcap.el (mailcap-view-mime): Delete contents of the buffer in the external case, too. 2020-09-11 Michael Albinus D-Bus: Implement other compound types of properties * doc/misc/dbus.texi (Errors and Events): * etc/NEWS: Mention dbus-show-dbus-errors. * lisp/net/dbus.el (dbus-compound-types): New defconst. (dbus): New defgroup. (dbus-show-dbus-errors): New defcustom. (dbus-ignore-errors): Use it. (dbus-set-property): Simplify. (dbus-property-handler): Implement other compound types of properties. * test/lisp/net/dbus-tests.el (dbus--test-register-service) (dbus-test05-register-property): Extend tests. 2020-09-11 Andrea Corallo * src/comp.c (emit_static_object): Make use of ARRAYELTS. 2020-09-11 Andrea Corallo Make use of new 'gcc_jit_global_set_initializer' entry point Use this brand new entry point to avoid the current workaround and its load-time memcpys. * src/comp.c (gcc_jit_global_set_initializer): Add to the dynamic load machinery. (static_obj_t): Remove const qualifier from the data field. (emit_static_object): Make use of 'gcc_jit_global_set_initializer' when available. (load_static_obj): Use the blob for loading if that was emitted. 2020-09-11 Lars Ingebrigtsen Fix up eldef shortening of the minibuffer * lisp/minibuf-eldef.el (minibuffer-default--in-prompt-regexps): Don't include the ": " bit in the portion to be replaced (bug#12443). 2020-09-11 Lars Ingebrigtsen Improve diff-no-select doc string * lisp/vc/diff.el (diff-no-select): Improve the doc string somewhat. 2020-09-11 Lars Ingebrigtsen Fix viewing PDFs from eww with external viewers * lisp/net/mailcap.el (mailcap-view-mime): Most MIME viewers can't take input on stdin (and in any case, "-" is not how many of them designate stdin) (bug#43318). So rewrite to put the data on a file and feed the file name to the viewer. 2020-09-11 Mattias Engdegård Calc: regularise test names * test/lisp/calc/calc-tests.el (calc-remove-units, calc-extract-units) (calc-convert-units, calc-bug-23889, calc-trig, calc-format-radix) (calc-calendar, calc-solve-linear-system): Use a uniform naming convention (calc- prefix) to simplify test running. 2020-09-11 Mattias Engdegård Simplify big integer constants in Calc * lisp/calc/calc-comb.el (math-small-factorial-table): * lisp/calc/calc-funcs.el (math-bernoulli-b-cache): * lisp/calc/calc.el (math-2-word-size, math-half-2-word-size): No need for math-read-number-simple. 2020-09-11 Mattias Engdegård Fix calc tests when running noninteractively This error was introduced in 8e1376a39125c3ffc0484077b502444d853eca79. * lisp/calc/calc.el (calc--header-line): Prevent size from being negative. 2020-09-11 Andrea Corallo Update gitlab CI yml file * .gitlab-ci.yml (test-native-bootstrap-speed0) (test-native-bootstrap-speed1, test-native-bootstrap-speed2): Update for new make invocation. 2020-09-11 Andrea Corallo By default when building native compile only what's part of the dump image To Ahead of Time compile the whole Emacs distro define NATIVE_FULL_AOT when invoking make ex: 'make NATIVE_FULL_AOT=1'. * lisp/Makefile.in (NATIVE_SKIP_NONDUMP): New variable. (compile-main): Use it + rename NATIVE_DISABLE -> NATIVE_DISABLED. * lisp/emacs-lisp/comp.el (batch-byte-native-compile-for-bootstrap): Rename NATIVE_DISABLE -> NATIVE_DISABLED. 2020-09-11 Eli Zaretskii * lisp/simple.el (undo-redo): Doc fix. 2020-09-11 Andrew G Cohen Allow an info structure as argument for gnus-group-get-parameter * lisp/gnus/gnus.el (gnus-group-get-parameter): Allow the group argument to be either a group name or a group info structure. This is then parallel to gnus-group-set-parameter. 2020-09-11 Stefan Monnier * lisp/loadup.el ("button"): Move to after loaddefs.el 2020-09-11 Andrew G Cohen Clean up group-finding in Gnus nnir search This is part of removing code from nnir.el that isn't related to searching backends and therefore belongs somewhere else. * lisp/gnus/gnus-group.el (gnus-group-make-search-group) (gnus-group-read-ephemeral-search-group): Put the logic for determining the groups to search here, rather than in nnir. Improve documentation. * lisp/gnus/gnus-int.el (gnus-server-get-active): Renamed from 'nnir-get-active. * lisp/gnus/nnir.el (nnir-run-imap, nnir-run-find-grep): Use it. (nnir-get-active): Remove. (nnir-make-specs): Make obsolete. * lisp/gnus/nnselect.el (nnselect-group-server): Make obsolete in favor of 'gnus-group-server. 2020-09-11 Andrew G Cohen Allow editing articles in Gnus nnselect groups * lisp/gnus/nnselect.el (nnselect-request-replace-article): New function. 2020-09-11 Elad Lahav (tiny change) Fix QNX build * configure.ac: The __NO_EXT_QNX flag is no longer needed, and is masking the declaration of memset_s() (bug#43234). 2020-09-10 Boruch Baum Use a header line in calc mode instead of a regular in-buffer line * lisp/calc/calc.el (calc-trail-here): Use a header line. (calc--header-line): New function. (calc-trail-mode): Use a header line. 2020-09-10 Lars Ingebrigtsen Tweak how `M-RET' in Message mode fills paragraphs * lisp/gnus/message.el (message-newline-and-reformat): Pick up any longer white-space prefix before starting to fill (bug#43299). This fixes the problem of hitting M-RET on a line that's just ">". 2020-09-10 Lars Ingebrigtsen Doc fix for diff-no-select * lisp/vc/diff.el (diff-no-select): Document the BUF argument (bug#43307). 2020-09-10 Caio Henrique (tiny change) Add a "Redo" entry to the menu * lisp/menu-bar.el (menu-bar-edit-menu): Add "Redo" under "Undo" in the Edit menu (bug#43315). 2020-09-10 Lars Ingebrigtsen Fix the font-lock-debug-fontify NEWS entry * etc/NEWS: Fix the name of `font-lock-debug-fontify' (bug#43319). 2020-09-10 Stefan Kangas * lisp/textmodes/artist.el: Remove obsolete comments. 2020-09-10 Stefan Kangas Convert indent test for css-mode into automatic test * test/lisp/textmodes/css-mode-tests.el (css-mode-test-indent): New test. (css-mode-tests-data-dir): New variable. * test/manual/indent/css-mode.css: Move from here... * test/lisp/textmodes/css-mode-resources/test-indent.css: ...to here. 2020-09-10 Stefan Kangas Mark some tests as expensive * test/lisp/autorevert-tests.el (auto-revert-test00-auto-revert-mode) (auto-revert-test03-auto-revert-tail-mode) (auto-revert-test04-auto-revert-mode-dired): * test/lisp/cedet/semantic-utest-c.el (semantic-test-c-preprocessor-simulation): * test/lisp/cedet/srecode-utest-getset.el (srecode-utest-getset-output): * test/lisp/emacs-lisp/cl-seq-tests.el (cl-seq-test-bug24264): * test/lisp/emacs-lisp/package-tests.el (package-test-update-archives-async): * test/lisp/filenotify-tests.el (file-notify-test03-events) (file-notify-test04-autorevert) (file-notify-test05-file-validity, file-notify-test08-backup): * test/lisp/net/gnutls-tests.el (test-gnutls-005-aead-ciphers): * test/lisp/shadowfile-tests.el (shadow-test00-clusters) (shadow-test09-shadow-copy-files): 2020-09-10 Stefan Kangas Use lexical-binding in mml-sec-tests.el * test/lisp/gnus/mml-sec-tests.el: Use lexical-binding. (mml-secure-test-mail-fixture) (mml-secure-test-en-decrypt-with-passphrase): Fix warnings. 2020-09-10 Stefan Kangas * test/lisp/org/org-tests.el: Use lexical-binding. 2020-09-10 Stefan Kangas Use lexical-binding in url-future-tests.el * test/lisp/url/url-future-tests.el: Use lexical-binding. (url-future-tests--saver): New variable. (url-future-tests): Use new variable. 2020-09-10 Stefan Kangas Use lexical-binding in semantic-utest-c.el * test/lisp/cedet/semantic-utest-c.el: Use lexical-binding. (semantic-test-gcc-output-parser): Fix warning. 2020-09-10 Michael Albinus Implement D-Bus properties with compound type. * lisp/net/dbus.el (dbus-set-property): Fix thinko. (dbus-register-property, dbus-property-handler): Support compound properties. * src/dbusbind.c (dbus-registered-objects-table): Fix docstring. * test/lisp/net/dbus-tests.el (dbus--test-interface): Make it different to `dbus--test-service'. (dbus-test05-register-property) (dbus-test05-register-property-several-paths): Adapt tests. 2020-09-10 Nick Savage (tiny change) Open describe-function NEWS links in view-mode * lisp/help-mode.el (help-news): Open describe-function NEWS links in view-mode (Bug#39912) 2020-09-10 Alex Bochannek (tiny change) Fix up < and > "date" scoring rules in Gnus * lisp/gnus/gnus-score.el (gnus-score-date): The previous < and > "date" scoring rules (added in the previous patch) had reversed logic (bug#43270). 2020-09-10 Mauro Aranda Fix :match function for the file widget * lisp/wid-edit.el (file widget): Return nil if value is not a string (bug#25678). 2020-09-10 Lars Ingebrigtsen Revert back to using ESC as viper-ESC-key again * lisp/emulation/viper-keym.el (viper-ESC-key): Revert back to using ESC instead of `escape' (bug#18182). This allows using `C-[' again on terminals for ESC. The key should be mapped back to `escape' by `function-key-map'. 2020-09-10 Andrew G Cohen Fix new summary-line after editing an article in Gnus * lisp/gnus/gnus-sum.el (gnus-summary-edit-article-done): Strip ^M from the ends of lines after saving an edited article. Otherwise the new header isn't always parsed properly, resulting in an incorrect subject line in the summary buffer. 2020-09-10 Andrea Corallo Guard against trying to rename files into eln sys directory * src/comp.c (file_in_eln_sys_dir): New function. (Fnative_elisp_load): Make use of. 2020-09-10 Andrea Corallo Merge remote-tracking branch 'savannah/master' into HEAD 2020-09-10 Andrea Corallo Fix rename file error when reloading the same file from an sys eln dir. * src/comp.c (Fnative_elisp_load): Don't rename files we don't have the permission for. 2020-09-10 Andrea Corallo Revert "* src/comp.c (Fcomp__compile_ctxt_to_file): Don't cleanup caches at bootstrap." This reverts commit 15acd27d1c0de8b56bab61daa0a8fcd4fef0fdc4. 2020-09-10 Amin Bandali Set `generated-autoload-file' in erc-status-sidebar.el * lisp/erc/erc-status-sidebar.el: Set `generated-autoload-file' to ERC's dedicated "erc-loaddefs.el", since we don't need this file's autoloaded functions to be available before ERC itself is loaded. 2020-09-09 Kiso Katsuyuki (tiny change) Introduce a new variable tab-line-switch-cycling If it is set t, enable cycling tab switch. Default is nil. 2020-09-09 Kiso Katsuyuki (tiny change) Suppress errors of tab-line-switch functions Target errors occurs when tab-line-switch-to-prev-tab or tab-line-switch-to-next-tab is invoked in a buffer which is not in tabs 2020-09-09 João Távora Fix up fix for bug#19032 * lisp/icomplete.el (icomplete-ret): Call minibuffer-icomplete-and-exit, not minibuffer-exit. 2020-09-09 Stefan Kangas Minor clean ups and doc fixes in find-dired * lisp/find-dired.el (find-ls-option, find-dired): Doc fixes. (find-dired, kill-find): Minor clean ups. 2020-09-09 Stefan Kangas Make flyspell-prog-text-faces into defcustom * lisp/textmodes/flyspell.el (flyspell-prog-text-faces): Make into defcustom. (Bug#32136) 2020-09-09 Naoya Yamashita Add gv-define-expander for plist-get It is necessary to make plist-get as a generalized variable, and this definition allows user to use setf and other useful functions on plist-get. * lisp/emacs-lisp/gv.el: Add gv-define-expander for plist-get * test/lisp/emacs-lisp/gv-tests.el: Add new tests for plist-get 2020-09-09 Stefan Monnier * lisp/dnd.el: Use lexical-binding. Remove redundant :group (dnd--unescape-uri): Mark it internal, but don't mark it inlinable. * lisp/cus-edit.el (dnd): Move the group to dnd.el. 2020-09-09 Stefan Monnier (define-minor-mode): Don't compute a default :group (bug#41145) * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Rely on the `defcustom`s own defaulting for the :group. * lisp/display-fill-column-indicator.el (global-display-fill-column-indicator-mode): Remove now redundant :group. * lisp/cus-dep.el (custom--get-def): New function. (custom-make-dependencies): Use it. 2020-09-09 Michael Albinus Adapt Tramp doc * doc/misc/tramp.texi (Remote shell setup): Mention password-word-equivalents. * lisp/net/tramp.el (tramp-password-prompt-regexp): Fix docstring. 2020-09-09 Glenn Morris Merge from origin/emacs-27 366a97c980 (origin/emacs-27) Avoid crashes when trying to load bad GI... 7938713105 C++ Mode: handle comma separated brace initializers. 2b95300cf8 * lisp/display-fill-column-indicator.el: Fix bug#41145 2020-09-09 Glenn Morris Merge from origin/emacs-27 9b35b0c99c ; * lisp/man.el (Man-mode): Fix formatting. abca75d2e9 ; Fix typos; change "Emacs-Lisp" to "Emacs Lisp" 2020-09-09 Glenn Morris Merge from origin/emacs-27 302f71e55d Fix help message with help-window-select 0fb3fc92b3 Remove obsolete "Wide Characters" section of Gnus manual 2020-09-09 Michael Albinus Fix thinko in dbus.el * doc/misc/dbus.texi (Register Objects): Rename from "Receiving Method Calls". Add reference to D-Bus API Design document. * lisp/net/dbus.el (dbus-managed-objects-handler): Fix thinko. * test/lisp/net/dbus-tests.el (dbus-test05-register-property) (dbus-test05-register-property-several-paths): Extend tests. 2020-09-09 Lars Ingebrigtsen Add the (hopefully) correct debbugs header for patches * lisp/mail/emacsbug.el (submit-emacs-patch): Mark the submission as a patch. 2020-09-09 Lars Ingebrigtsen Implement a new `submit-emacs-patch' command * doc/emacs/trouble.texi (Checklist): Mention the new command. * doc/lispref/intro.texi (Caveats): Ditto. * lisp/mail/emacsbug.el (emacs-bug--system-description): Factor out into own function. (report-emacs-bug): ... from here. (submit-emacs-patch): New command. 2020-09-09 Lars Ingebrigtsen Make the button navigation commands available via a minor mode * lisp/button.el (button-mode): New minor mode. * doc/lispref/display.texi (Button Buffer Commands): Mention it. 2020-09-09 Andrew G Cohen Make Gnus cache work with nnselect * lisp/gnus/gnus-cache.el (gnus-cache-possibly-enter-article) (gnus-cache-possibly-remove-articles) (gnus-cache-possibly-remove-article): Use originating article info for nnselect groups. 2020-09-09 Andrew G Cohen Add Gnus function to make a persistent group from a search result * lisp/gnus/gnus-sum.el (gnus-summary-make-group-from-search): New command (bound to C-c C-p in summary buffers). * doc/misc/gnus.texi (What is nnir?): Document it. Correct previous errors. * etc/NEWS (Gnus): Mention it. 2020-09-08 Lars Ingebrigtsen Allow DEFAULT in format-prompt to be a list * doc/lispref/minibuf.texi (Text from Minibuffer): Document it. * lisp/minibuffer.el (format-prompt): Allow DEFAULT to be a list (and use the first element). This is how many of the prompting functions interpret their default parameters. 2020-09-08 Win Treese Fix crash from clicking on menu bar (bug#34762, bug#26982) * src/nsmenu.m (ns_update_menubar): Remove extraneous use of autorelease pool. 2020-09-08 Lars Ingebrigtsen Revert "Use format-prompt in calls to read-from-minibuffer with default value" This reverts commit 1921d2176bb9127d2483a1c8a470abfc3f4eec33. The DEFAULT-VALUE here isn't really a default value (since READ is nil), so don't say there's a default. 2020-09-08 Lars Ingebrigtsen Doc string update for tramp-password-prompt-regexp * lisp/net/tramp.el (tramp-password-prompt-regexp): Mention password-word-equivalents in the doc string. 2020-09-08 Daniel Martín Use mouse-wheel-up-event in mwheel-tests.el Enabling mouse-wheel-mode binds two different mouse events, depending on the operating system. The correct way to check for those events is by checking mouse-wheel-up-event, as explained in the ELisp manual. * test/lisp/mwheel-tests.el (mwheel-test-enable/disable): Check mouse-wheel-up-event instead of mouse-4 to make the test work irrespective of the platform it's running. 2020-09-08 Eli Zaretskii Avoid crashes when trying to load bad GIF files * src/image.c (gif_load): Handle the case when GifErrorString returns NULL. (Bug#43281) 2020-09-08 Glenn Morris Skip failing cperl test on hydra * test/lisp/progmodes/cperl-mode-tests.el (cperl-mode-test-bug-10483): Skip on hydra.nixos.org. 2020-09-08 Michael Albinus * etc/NEWS: Add D-Bus changes. 2020-09-08 Michael Albinus Implement typed D-Bus properties (Bug#43252) * doc/misc/dbus.texi (Properties and Annotations) (Receiving Method Call): Document optional type symbol in `dbus-set-property' and `dbus-register-property'. * lisp/net/dbus.el (dbus-error-unknown-interface) (dbus-error-unknown-method, dbus-error-unknown-object) (dbus-error-unknown-property): New defconsts. (dbus-peer-handler): Improve error handling. (dbus-introspect-get-signature): Handle also properties. (dbus-set-property, dbus-register-property): Allow optional TYPE symbol for VALUE. (Bug#43252) (dbus-property-handler): Implement property types. Improve error handling. * src/dbusbind.c (dbus-message-internal, dbus-registered-objects-table): Fix docstring. * test/lisp/net/dbus-tests.el (dbus-test05-register-property): Extend test. (dbus-test05-register-property-several-paths): New test. 2020-09-08 Andrea Corallo * src/comp.c (Fcomp__compile_ctxt_to_file): Don't cleanup caches at bootstrap. 2020-09-08 Lars Ingebrigtsen Revert "Explain in the tab-always-indent doc how to make TAB insert a TAB" This reverts commit 4b2371631167e509668b6268334e324fdd2f0327. overriding-terminal-local-map should apparently not be used for minor stuff like this. 2020-09-08 Alex Bochannek Introduce a new Gnus scoring method (for article age) * doc/misc/gnus.texi (Score File Format): Document it. * lisp/gnus/gnus-score.el (gnus-score-check-syntax): Add support for the new date methods < and > (bug#43270). (gnus-score-date): Allow scoring on dates by age. 2020-09-08 João Távora Change icomplete-show-matches-on-no-input behaviour for Icomplete only (Bug#19032), bug#43120 Previous fixes to bug#19032 introduced bugs in Fido mode. This fix relies on a new command bound to RET. * etc/NEWS (Miscellaneous): Mention icomplete-show-matches-on-no-input. * lisp/icomplete.el (icomplete-show-matches-on-no-input): Add comment. (icomplete-minibuffer-map): Rebind minibuffer-complete-and-exit to icomplete-ret. (icomplete-ret): New command. 2020-09-08 João Távora Revert two commits for bug#19032 This reverts: - commit 585fe00557489e49188b6a301f001ef01ff15dcb, which is titled "Fix up previous icomplete-show-matches-on-no-input change" - commit 1b8d369c381b5a63e40529d0d95dfa75d94b8e09, which is titled "Change icomplete-show-matches-on-no-input behavior". A simpler, less intrusive fix follows shortly after this commit. 2020-09-08 Amin Bandali * etc/NEWS: Mention the new erc-status-sidebar.el * lisp/erc/erc-status-sidebar.el: Fix header and make small tweaks 2020-09-08 Andrew Barbarello * lisp/erc/erc-status-sidebar.el: New file Taken from commit 87210a3ccc16a86e6b5992744b68daabed3b2d11 of https://github.com/drewbarbs/erc-status-sidebar. 2020-09-08 Andrea Corallo Name temp eln files as .eln.tmp so we can't clean-up them mistakenly. * src/comp.c (Fcomp__compile_ctxt_to_file): Postfix temporary eln files as .eln.tmp. 2020-09-07 Andrea Corallo Do not crash compilation if user eln-cache wasn't already created. * lisp/emacs-lisp/comp.el (comp-clean-up-stale-eln): Guard against calling `directory-files' on non existent directories. 2020-09-07 Lars Ingebrigtsen Use format-prompt in read-file-name calls that have a default * lisp/xwidget.el (xwidget-webkit-save-as-file): * lisp/vc/vc.el (vc-backend-for-registration, vc-delete-file) (vc-rename-file): * lisp/vc/ediff-ptch.el (ediff-prompt-for-patch-file): * lisp/vc/diff-mode.el (diff-tell-file-name): * lisp/progmodes/etags.el (visit-tags-table) (visit-tags-table-buffer): * lisp/misearch.el (multi-isearch-read-files): * lisp/mail/rmailmm.el (rmail-mime-save): * lisp/help-fns.el (doc-file-to-man, doc-file-to-info): * lisp/gnus/gnus-bookmark.el (gnus-bookmark-load): * lisp/files.el (write-file, basic-save-buffer): * lisp/dired.el (dired-read-dir-and-switches): * lisp/bookmark.el (bookmark-save, bookmark-load): * lisp/abbrev.el (write-abbrev-file, abbrev-edit-save-to-file): Use format-prompt in read-file-name calls that have a default. 2020-09-07 Reuben Thomas Fix Enchant dictionary finding routine * lisp/textmodes/ispell.el (ispell-find-enchant-dictionaries): Don’t pass `buffer-string' to enchant-lsmod. Remove zero-length substrings from the split output of `enchant-lsmod`, as the output ends with a separator. Pass the current language to `ispell--get-extra-word-characters', so we get the result for the current language, not the default language. (Patch from Jorge P. de Morais Neto.) 2020-09-07 Juri Linkov * lisp/char-fold.el (char-fold-to-regexp): Handle lax-whitespace (bug#38539) 2020-09-07 Lars Ingebrigtsen Fix test failure in custom--test-theme-variables * test/lisp/custom-tests.el (custom--test-theme-variables): "make check" in the main directory didn't work because the path was wrong. Use EMACS_TEST_DIRECTORY to find the test directory instead. 2020-09-07 Lars Ingebrigtsen Require ert in the cperl tests, since it's reloading itself 2020-09-07 Viktor Slavkovikj (tiny change) Use auth-source for passwords in rmail * lisp/mail/rmail.el (rmail-get-remote-password): Use auth-source for passwords (bug#24274). (rmail-parse-url): Pass in user/host. 2020-09-07 Daniel Martín (tiny change) Add support for horizontal scrolling in tab-line * lisp/tab-line.el ([tab-line wheel-left]): Bind left and right tab line scrolling to the 'wheel-left' and 'wheel-right' mouse events. ([tab-line S-wheel-right]): Analogous change for the functions that switch tabs. * etc/NEWS: Announce the new feature (bug#43224). 2020-09-07 Lars Ingebrigtsen Show the status of signed + encrypted S/MIME messages in Gnus * lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt): Use the data to tell the caller (i.e., Gnus) something about the validation of signed + encrypted S/MIME messages. * lisp/gnus/mm-view.el (mm-view-pkcs7-verify): Pass along details about whether we could validate the signature or not (bug#42637). 2020-09-07 João Távora Better explain behaviour of icomplete--sorted-completions * lisp/icomplete.el (icomplete--sorted-completions): Overhaul comment 2020-09-07 Lars Ingebrigtsen Remove debugging code inadvertently checked in * lisp/gnus/gnus-fun.el (gnus-face-from-file): Remove debugging code inadvertently checked in. 2020-09-07 Andrew G Cohen Add aliases for recent Gnus nnselect changes * lisp/org/ol-gnus.el (org-gnus-store-link): Change 'nnir to 'nnselect. * lisp/gnus/gnus-group.el: Define obsolete function alias for 'gnus-group-make-nnir-group to 'gnus-group-read-ephemeral-search-group. * lisp/gnus/gnus-sum.el: Define obsolete variable alias for 'gnus-refer-thread-use-nnir to 'gnus-refer-thread-use-search. * lisp/gnus/nnselect.el: Define obsolete variable alias for 'nnir-retrieve-headers-override-function to 'nnselect-retrieve-headers-override-function. * lisp/gnus/nnir.el: Restore definition of 'nnir-summary-line-format and mark obsolete. 2020-09-07 Lars Ingebrigtsen Use variable-pitch fonts in the eww headers * lisp/net/eww.el (eww--limit-string-pixelwise) (eww--pixel-column): New functions. (eww-update-header-line-format): Use variable pitch fonts in the header line. 2020-09-07 Lars Ingebrigtsen Add edebug form to subr--with-wrapper-hook-no-warnings * lisp/subr.el (subr--with-wrapper-hook-no-warnings): Add a debug form to allow edebugging some stuff. 2020-09-07 Reuben Thomas Add enchant-2 to list of default spelling checker programs * lisp/textmodes/ispell.el (ispell-program-name): Check `enchant-2', as it is likely to be a suitable version. 2020-09-07 Philip K Allow CSS completion with multiple rules on one line * lisp/textmodes/css-mode.el (css--complete-property-value): Check for semi-colon when completing property values (bug#43242). 2020-09-06 Lars Ingebrigtsen Use format-prompt in some read-string calls * lisp/progmodes/prolog.el (prolog-help-on-predicate): * lisp/cmuscheme.el (scheme-trace-procedure): * lisp/calendar/todo-mode.el (todo-convert-legacy-files): Use format-prompt in some read-string calls (that have default values). * lisp/printing.el (pr-interactive-regexp): No need to use "" as the default value, because that's the default default value. (pr-interactive-n-up): Use read-number instead of read-string and then parsing the string. 2020-09-06 dickmao Make list-processes--refresh work for pipe processes, too * lisp/simple.el (list-processes--refresh): Don't bug out in the presence of a `pipe' process (bug#43202). 2020-09-06 Lars Ingebrigtsen Use format-prompt in calls to read-from-minibuffer with default value * lisp/tab-bar.el (tab-bar-rename-tab) (tab-bar-rename-tab-by-name): * lisp/simple.el (next-matching-history-element): Use format-prompt in calls to read-from-minibuffer with at default value. 2020-09-06 Lars Ingebrigtsen Use format-prompt in read-string calls (that have default values) * lisp/vc/vc-annotate.el (vc-annotate): * lisp/vc/log-edit.el (log-edit-comment-search-backward) (log-edit-comment-search-forward): * lisp/textmodes/rst.el (rst-insert-list-new-item): * lisp/server.el (server-force-delete): * lisp/mpc.el (mpc): * lisp/frame.el (set-frame-name): * lisp/emulation/cua-rect.el (cua-sequence-rectangle): * lisp/cedet/semantic/symref/list.el (semantic-symref-regexp): * lisp/calendar/todo-mode.el (todo-read-time): Use `format-prompt' in `read-string' calls that have defaults. 2020-09-06 Stefan Kangas Add autoload cookie to eshell-bookmark-jump * lisp/eshell/esh-mode.el (eshell-bookmark-jump): Add autoload cookie, so we can jump to bookmarks before having used eshell. Problem noted by Stefan Monnier. 2020-09-06 Michael Albinus More work on D-Bus error messages * lisp/net/dbus.el (dbus-get-property): Adapt docstring. (dbus-set-property): Handle case of `:write' access type. (dbus-get-other-registered-properties): Rename from `dbus-get-other-registered-property'. (dbus-property-handler): Fix thinkos. * src/dbusbind.c (xd_read_message_1): Add error_name to event args in case of DBUS_MESSAGE_TYPE_ERROR. * test/lisp/net/dbus-tests.el (dbus--test-enabled-session-bus) (dbus--test-enabled-system-bus): Make them defconst. (dbus--test-service, dbus--test-path, dbus--test-interface): New defconst. Replace all occurrences of `dbus-service-emacs' by `dbus--test-service'. (dbus--test-method-handler): New defun. (dbus-test04-register-method, dbus-test05-register-property): New tests. 2020-09-06 Lars Ingebrigtsen Use format-prompt in calls to completing-read with a default value * lisp/textmodes/rst.el (rst-insert-list-new-item): * lisp/tab-bar.el (tab-bar-switch-to-tab): * lisp/profiler.el (profiler-start): * lisp/frame.el (set-frame-font): * lisp/erc/erc.el (erc-join-channel): * lisp/emacs-lock.el (emacs-lock--set-mode): * lisp/emacs-lisp/elp.el (elp-set-master): * lisp/emacs-lisp/checkdoc.el () (checkdoc-this-string-valid-engine): * lisp/calendar/todo-mode.el (todo-find-filtered-items-file): * lisp/calendar/calendar.el (calendar-set-date-style): Use `format-prompt' in calls to completing-read that has a default value, but didn't mention that in the prompt. 2020-09-06 Lars Ingebrigtsen Use a popup menu for