1. 23 Dec, 2019 2 commits
    • Eli Zaretskii's avatar
      Bump Emacs version to 28.0.50 · 64fe67be
      Eli Zaretskii authored
      * README:
      * configure.ac:
      * nt/README.W32:
      * msdos/sed2v2.inp:
      * src/msdos.c (internal_terminal_init):
      * etc/refcards/ru-refcard.tex: Bump Emacs version to 28.0.50.
      * lisp/cus-edit.el (customize-changed-options-previous-release):
      Bump up the value to 26.3.
      * etc/NEWS.27: Renamed from NEWS.
      * etc/NEWS: New file for Emacs 28.
    • Michael R. Mauger's avatar
      Added `comint-password-function' hook · 3df7d06d
      Michael R. Mauger authored
      * etc/NEWS:
      * lisp/comint.el (comint-password-function): New variable.
        (comint-send-invisible): Use it.
      * test/lisp/comint-tests.el (comint-test-no-password-function,
        comint-test-password-function-with-nil): Test new variable.
  2. 22 Dec, 2019 1 commit
    • Eli Zaretskii's avatar
      Fix wording of recent documentation changes · d7ab4edd
      Eli Zaretskii authored
      * src/xdisp.c (syms_of_xdisp):
      * lisp/minibuffer.el (minibuffer-message-clear-timeout):
      * etc/NEWS:
      * doc/lispref/display.texi (Displaying Messages): Minor
      changes of wording of a recent commit.  (Bug#38457)
  3. 21 Dec, 2019 4 commits
    • Juri Linkov's avatar
      New variable set-message-function to show message at the end of the minibuffer · 485b423e
      Juri Linkov authored
      * doc/lispref/display.texi (Displaying Messages): Document
      set-message-function and clear-message-function.
      * lisp/minibuffer.el (minibuffer-message-clear-timeout): New defcustom.
      (minibuffer-message-timer, minibuffer-message-overlay): New variables.
      (set-minibuffer-message, clear-minibuffer-message): New functions.
      (set-message-function, clear-message-function): Set variables to
      set-minibuffer-message and clear-minibuffer-message respectively.
      * src/keyboard.c (read_char): Call clear_message when
      Vclear_message_function is a function.
      * src/xdisp.c (set_message): Call Vset_message_function when it's a function.
      (clear_message): Call Vclear_message_function when it's a function.
      (syms_of_xdisp): New variables set-message-function and clear-message-function
    • Stephen Gildea's avatar
      backup-by-copying-when-privileged-mismatch applies to file gid, too. · 678a71ea
      Stephen Gildea authored
      * lisp/files.el (backup-by-copying-when-privileged-mismatch):  In addition
      to checking the file uid, a second test is added: if the file gid is not
      greater than backup-by-copying-when-privileged-mismatch,
      backup-by-copying-when-mismatch will also be forced on.
      * doc/emacs/files.texi, doc/lispref/backups.texi: Updated documentation.
      Also fixed a typo in the Emacs reference manual, changing "higher" to
      "no greater" so that the limit is no longer documented reversed.
    • lin.sun's avatar
      Add new function `python-shell-send-statement' · 9b7f3b0f
      lin.sun authored
      * lisp/progmodes/python.el (python-shell-send-statement): New function.
      (python-mode-map): Bind it to key "C-c C-e", and define a python-menu
      item for it.  (Bug#38426)
    • Eli Zaretskii's avatar
      Allow control of data amount read from subprocess in one chunk · cc78faee
      Eli Zaretskii authored
      * src/process.c (syms_of_process) <read-process-output-max>:
      New variable.
      (read_process_output): Use it instead of the hard-coded
      constant 4096.  (Bug#38561)
      Use SAFE_ALLOCA to support large buffers for reading process
      * etc/NEWS: Mention 'read-process-output-max'.
  4. 15 Dec, 2019 2 commits
    • Juri Linkov's avatar
      Revert aa89c84e (bug#38457) · 7254b634
      Juri Linkov authored
      * src/editfns.c (Fmessage): Don't use minibuffer-message.
      (Fmessage_in_echo_area): Remove function message-in-echo-area.
      (syms_of_editfns): Remove variable message-in-echo-area.
      * lisp/isearch.el (isearch--momentary-message): Remove message-in-echo-area.
      * lisp/minibuffer.el (minibuffer-message): Don't record message
      in the *Messages* buffer.
      (minibuffer-completion-help): Remove message-in-echo-area.
      * lisp/subr.el (do-after-load-evaluation): Remove discard-input (bug#38560)
    • Phil Sainty's avatar
      New command 'diff-buffers' · 9b7f0de6
      Phil Sainty authored
      * lisp/vc/diff.el (diff-buffers): New command.
      (diff, diff-no-select, diff-file-local-copy): Improve docstrings.
      * doc/emacs/files.texi:
      * etc/NEWS: Document new command, and the previously-undocumented
      ability for 'diff' to compare buffers.
  5. 13 Dec, 2019 1 commit
    • Mattias Engdegård's avatar
      Allow characters and single-char strings in rx charsets · 82b4e48c
      Mattias Engdegård authored
      The `not' and `intersection' forms, and `or' inside these forms,
      now accept characters and single-character strings as arguments.
      Previously, they had to be wrapped in `any' forms.
      This does not add expressive power but is a convenience and is easily
      * doc/lispref/searching.texi (Rx Constructs): Amend the documentation.
      * etc/NEWS: Announce the change.
      * lisp/emacs-lisp/rx.el (rx--charset-p, rx--translate-not)
      (rx--charset-intervals, rx): Accept characters and 1-char strings in
      more places.
      * test/lisp/emacs-lisp/rx-tests.el (rx-not, rx-charset-or)
      (rx-def-in-charset-or, rx-intersection): Test the change.
  6. 12 Dec, 2019 2 commits
    • Mattias Engdegård's avatar
      Use `or' instead of `union' for charset union in rx · f16766a0
      Mattias Engdegård authored
      Design change suggested by Stefan Monnier.
      * doc/lispref/searching.texi (Rx Constructs):
      * etc/NEWS: Document.
      * lisp/emacs-lisp/rx.el (rx--translate-or): Detect charset arguments.
      (rx--charset-p): New.
      (rx--translate-not, rx--charset-intervals, rx--translate-union):
      Change from `union' to `or'.
      (rx--translate-form, rx--builtin-forms, rx): Remove `union'.
      * test/lisp/emacs-lisp/rx-tests.el (rx-union, rx-def-in-union)
      (rx-intersection): Rename tests and change `union' to `or' and `|'.
    • Stefan Monnier's avatar
      * lisp/gnus/message.el (message-expand-name-standard-ui): New option · 47a767c2
      Stefan Monnier authored
      (message--old-style-completion-functions): New var.
      (message-completion-function): Allow functions on
      `message-completion-alist` to follow the capf protocol.
      (message-completion-alist): Adjust docstring accordingly.
      Simplify regexps and make them apply more liberally.
      (message-expand-group): Use the capf protocol.
      (completion-category-defaults): Use 'substring' completion style by
      default for email addresses.
      (message--bbdb-query-with-words, message--name-table): New functions.
      (message-expand-name): Use them to obey `message-expand-name-standard-ui`.
  7. 11 Dec, 2019 1 commit
  8. 10 Dec, 2019 4 commits
    • Mattias Engdegård's avatar
      Add `union' and `intersection' to rx (bug#37849) · ea93326c
      Mattias Engdegård authored
      These character set operations, together with `not' for set
      complement, improve the compositionality of rx, and reduce duplication
      in complicated cases.  Named character classes are not permitted in
      set operations.
      * lisp/emacs-lisp/rx.el (rx--translate-any): Split into multiple
      (rx--foldl, rx--parse-any, rx--generate-alt, rx--intervals-to-alt)
      (rx--complement-intervals, rx--intersect-intervals)
      (rx--union-intervals, rx--charset-intervals, rx--charset-union)
      (rx--charset-all, rx--charset-intersection, rx--translate-union)
      (rx--translate-intersection): New.
      (rx--translate-not, rx--translate-form, rx--builtin-forms, rx):
      Add `union' and `intersection'.
      * test/lisp/emacs-lisp/rx-tests.el (rx-union ,rx-def-in-union)
      (rx-intersection, rx-def-in-intersection): New tests.
      * doc/lispref/searching.texi (Rx Constructs):
      * etc/NEWS:
      Document `union' and `intersection'.
    • Eli Zaretskii's avatar
    • Paul Eggert's avatar
      Spelling fixes · d1a791f8
      Paul Eggert authored
    • Dmitry Gutov's avatar
      Make ':extend' inherited from default spec unless overridden · 58fb4c3e
      Dmitry Gutov authored
      * lisp/faces.el (face-spec-recalc): Handle the :extend attribute
      specially and always inherit it from the default spec unless
      overwritten in a theme (bug#37774).
      * test/lisp/faces-tests.el (faces--test-data-dir): New variable.
      (faces--test-extend-with-themes): Use test themes instead of ones
      from etc/themes.  Update expected values.
      * test/data/themes/faces-test-dark-theme.el: New file.
      * test/data/themes/faces-test-light-theme.el: New file.
      * doc/lispref/display.texi (Face Attributes):
      Update the description of ':extend'.
      * etc/NEWS: Update the entry for ':extend'.
      * etc/themes/adwaita-theme.el:
      * etc/themes/deeper-blue-theme.el:
      * etc/themes/dichromacy-theme.el:
      * etc/themes/leuven-theme.el:
      * etc/themes/light-blue-theme.el:
      * etc/themes/manoj-dark-theme.el:
      * etc/themes/misterioso-theme.el:
      * etc/themes/tango-dark-theme.el:
      * etc/themes/tango-theme.el:
      * etc/themes/tsdh-dark-theme.el:
      * etc/themes/tsdh-light-theme.el:
      * etc/themes/wheatgrass-theme.el:
      * etc/themes/wombat-theme.el: Remove the now-redundant ':extend'
      attribute in all the themes.
  9. 08 Dec, 2019 3 commits
  10. 07 Dec, 2019 1 commit
    • Juri Linkov's avatar
      * lisp/man.el (Man-width-max): New defcustom (bug#32536, bug#9385) · 7e387c9e
      Juri Linkov authored
      (Man-columns): New buffer-local variable.
      (Man-columns): New function.
      (Man-start-calling): Call Man-columns and set buffer-local Man-columns.
      (Man--window-state-change-timer): New internal variable.
      (Man--window-state-change): New internal function.
      (Man-fit-to-window): New function.
      (Man-mode): Add Man--window-state-change to local hook
      * lisp/image-mode.el (image-fit-to-window): Add window arg to
      window-buffer call.
  11. 05 Dec, 2019 2 commits
    • Eli Zaretskii's avatar
      Minor copyedits of 'jit-lock-antiblink-grace's docs · 21790e54
      Eli Zaretskii authored
      * lisp/jit-lock.el (jit-lock-antiblink-grace):
      * etc/NEWS (value): Reword the NEWS entry and the doc string.
    • Federico Tedin's avatar
      Make HIST arg of read-from-minibuffer work with buffer-local vars · 3586fef2
      Federico Tedin authored
      * lisp/simple.el (minibuffer-history-values): New function, should be
      used to access the minibuffer input history variable when the
      minibuffer might be active.  If the variable is buffer-local, the
      previous buffer's value will be used.
      (goto-history-element): Use the new function to access the minibuffer
      (minibuffer-history-isearch-wrap): Use the new function to access the
      minibuffer history.
      * src/minibuf.c (read_minibuf): Switch to previous buffer temporarily
      before updating history list (Bug#38317).
      (read-from-minibuffer): Extend documentation to mention that the
      result of using the command will be added to the history list by
      * doc/lispref/minibuf.texi (Minibuffer History): Mention the
      possibility of using a buffer-local variable as history.
      * etc/NEWS: Announce changes.
  12. 04 Dec, 2019 2 commits
    • Juri Linkov's avatar
      * lisp/windmove.el (windmove-display-new-tab): New command. · f336ae77
      Juri Linkov authored
      (windmove-display-default-keybindings): Bind it to '?t'.
      (windmove-display-in-direction): Call tab-bar-new-tab when 'dir' is 'new-tab'.
    • João Távora's avatar
      New jit-lock-antiblink-grace feature · 5b45c269
      João Távora authored
      * lisp/jit-lock.el (jit-lock-antiblink-grace): New defcustom.
      (jit-lock--antiblink-string-or-comment): New variables
      (jit-lock--antiblink-post-command): New helper.
      (jit-lock-mode): Tweak post-command-hook and
      * etc/NEWS: Mention jit-lock-antiblink-grace
  13. 30 Nov, 2019 2 commits
    • Juri Linkov's avatar
      Use run-with-idle-timer instead of debounce for responsive image scaling. · d64ea182
      Juri Linkov authored
      * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): Revert macro addition.
      * lisp/image.el (image-increase-size, image-decrease-size):
      Use run-with-idle-timer.
      (image--change-size): Rename back from image--change-size-function.
      * lisp/image-mode.el (image-mode--setup-mode): Remove hooks
      window-size-change-functions and window-selection-change-functions (bug#32672)
      (image-fit-to-window): Rename from image--window-change-function.
      (image--window-state-change): Rename from image--window-change.
      Use run-with-idle-timer.
    • Andrii Kolomoiets's avatar
      vc-hg: prompt for branch to merge · 561840b5
      Andrii Kolomoiets authored
      * lisp/vc/vc-hg.el (vc-hg-merge-branch): Prompt for revision to merge.
      (vc-hg-revision-table): Use branches, tags and bookmarks as competion
      * etc/NEWS: Mention changes of vc-hg.el
      * doc/emacs/maintaining.texi (Switching Branches): Mention 'hg update'
      (Merging): Mention 'hg merge' command.
      This fixes bug#22860
  14. 29 Nov, 2019 1 commit
    • Eli Zaretskii's avatar
      Improve documentation and UI of 'C-x v L' · 6e41b08e
      Eli Zaretskii authored
      * lisp/vc/vc.el (vc-print-root-log): Improve the wording of
      the doc string and of the prompt for the root directory.
      * etc/NEWS: Improve and expand the wording of the changes in
      'C-x v L'.
      * doc/emacs/maintaining.texi (VC Change Log): Improve and
      clarify wording of the 'C-x v L' description.
  15. 28 Nov, 2019 2 commits
    • Noam Postavsky's avatar
      Improve errors & warnings due to fancy quoted vars (Bug#32939) · b2790db0
      Noam Postavsky authored
      Add some hints to the message for byte compiler free & unused variable
      warnings, and 'void-variable' errors where the variable has confusable
      quote characters in it.
      * lisp/help.el (uni-confusables), uni-confusables-regexp): New
      (help-command-error-confusable-suggestions): New function, added to
      (help-uni-confusable-suggestions): New function.
      * lisp/emacs-lisp/bytecomp.el (byte-compile-variable-ref):
      * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Use it.
      * lisp/emacs-lisp/lisp-mode.el
      (lisp--match-confusable-symbol-character): New function.
      (lisp-fdefs): Use it to fontify confusable characters with
      font-lock-warning-face when they occur in symbol names.
      * doc/lispref/modes.texi (Faces for Font Lock):
      * doc/lispref/objects.texi (Basic Char Syntax): Recommend backslash
      escaping of confusable characters, and mention new fontification.
      * etc/NEWS: Announce the new fontification behavior.
      * test/lisp/emacs-lisp/lisp-mode-tests.el (lisp-fontify-confusables):
      New test.
    • Noam Postavsky's avatar
      Stop signaling an error when reading "smart quotes" in symbols · 85f586f3
      Noam Postavsky authored
      Revert commits from 2018-01-28 "Fix round tripping of read->print for
      symbols with strange quotes", and 2017-07-22 "Signal error for symbol
      names with strange quotes (Bug#2967)".
      * etc/NEWS: Remove corresponding entries.
      * src/character.c (confusable_symbol_character_p):
      * test/src/lread-tests.el (lread-tests--old-style-backquotes): Remove.
      * src/lread.c (read1): Don't signal error on confusable character.
      * src/print.c (print_object): Don't escape confusable characters.
  16. 27 Nov, 2019 5 commits
    • Juri Linkov's avatar
      Menu bar rearrangements, move Print menu items to submenu, etc. (bug#37594) · 79218117
      Juri Linkov authored
      * lisp/menu-bar.el (menu-bar-print-menu): New defvar.
      (menu-bar-file-menu): Move print entries to submenu.
      Add menu entries for tab-new, tab-close, make-frame-on-monitor.
      (menu-bar-showhide-menu): Add menu entry for global-tab-line-mode.
      Don't add toggle-tab-bar-mode-from-frame on ns where it's unavailable.
      (menu-bar-tools-menu): Add rgrep.
      * lisp/bindings.el (next-buffer, previous-buffer): Advertise bindings
      'C-x right' and 'C-x left' instead of 'XF86Forward' and 'XF86Back'.
    • Juri Linkov's avatar
      'C-1 C-x v L' asks for revision and shows its log entry with diff (bug#38044) · f655967b
      Juri Linkov authored
      * doc/emacs/maintaining.texi (VC Change Log): Explain the numeric prefix arg
      of 'C-x v L' (vc-print-root-log).
      * lisp/vc/vc-git.el (vc-git-print-log): Add command line option "-p"
      when vc-log-view-type is 'with-diff'.
      (vc-git-log-view-mode): Use long style when vc-log-view-type is 'with-diff'.
      * lisp/vc/vc.el (vc-print-log-internal): Add optional arg 'type'.
      (vc-log-internal-common): Use 'region-history-mode' when type is
      'with-diff' and backend supports 'region-history-mode'.
      (vc-print-root-log): Add optional arg 'revision'.  In interactive spec
      read a revision when current-prefix-arg is 1.  Use current-prefix-arg
      "as is" when it is a number.  Show revision in long style with diff
      when limit is 1 and revision is non-nil.
    • Juri Linkov's avatar
      * lisp/image-mode.el: Resize image on window resizing (bug#32672) · b31a966e
      Juri Linkov authored
      * lisp/image-mode.el (image--window-change): New function.
      (image--window-change-function): New variable.
      (image-mode--setup-mode): Add buffer-local hook image--window-change
      to window-size-change-functions, window-state-change-functions,
    • Mattias Engdegård's avatar
      Mouse rectangular region selection (bug#38013) · 4eb7db5d
      Mattias Engdegård authored
      Make it possible to select a rectangular region using the mouse.
      The standard binding is C-M-mouse-1.
      * lisp/mouse.el (mouse-scroll-subr): Add ADJUST argument.
      (mouse-drag-region-rectangle): New.
      * lisp/rect.el (rectangle--reset-point-crutches): New.
      (rectangle--reset-crutches): Use 'rectangle--reset-point-crutches'.
      * src/xdisp.c (remember_mouse_glyph, syms_of_xdisp):
      Add 'mouse-fine-grained-tracking'.
      * doc/lispref/commands.texi (Motion Events):
      Document 'mouse-fine-grained-tracking'.
      * doc/emacs/frames.texi (Mouse Commands):
      * doc/emacs/killing.texi (Rectangles):
      * etc/NEWS: Document rectangular selection with the mouse.
    • Mattias Engdegård's avatar
      Fine-grained NS modifier key settings (bug#38296) · 215f678c
      Mattias Engdegård authored
      For the ns-KEY-modifier and ns-right-KEY-modifier variables, KEY
      being 'control', 'command', 'alternate' and 'function', allow
      values on the form (:ordinary SYMBOL :function :SYMBOL :mouse SYMBOL),
      so that the key can be used for different modifiers (or none) in
      different contexts.  This is particularly useful for using the macOS
      Option key for extended character entry while still using it as an
      Emacs modifier for function keys and mouse clicks.
      * src/nsterm.m (mod_of_kind, right_mod, nil_or_none): Helper functions.
      (EV_MODIFIERS2): Add KIND argument.
      (EV_MODIFIERS): Adapt call to EV_MODIFIERS2.
      (ns_get_shifted_character): Use correct event kind for modifiers.
      (ns-alternate-modifier, ns-right-alternate-modifier)
      (ns-command-modifier, ns-right-command-modifier)
      (ns-control-modifier, ns-right-control-modifier)
      (ns-function-modifier): Rewrite doc strings for new data format.
      (QCordinary, QCfunction, QCmouse): Define symbols.
      * lisp/cus-start.el: Conform to new data types.
      * doc/emacs/macos.texi (Mac / GNUstep Basics)
      (Mac / GNUstep Customization): Improved documentation.
      * etc/NEWS: Mention the change.
  17. 26 Nov, 2019 5 commits
    • Juri Linkov's avatar
      message uses minibuffer-message in the active minibuffer (bug#17272 bug#19064) · aa89c84e
      Juri Linkov authored
      * doc/lispref/display.texi (Displaying Messages): Explain the
      behavior of using minibuffer-message if the minibuffer is active.
      * src/editfns.c (Fmessage_in_echo_area): New function with body
      copied from Fmessage.
      (Fmessage): Call minibuffer-message in the active minibuffer,
      otherwise call Fmessage_in_echo_area.
      (message-in-echo-area): New variable.
      * lisp/isearch.el (isearch--momentary-message, isearch-message):
      * lisp/minibuffer.el (minibuffer-message, minibuffer-completion-help):
      Use 'message-in-echo-area' instead of 'message' where necessary.
      * lisp/autorevert.el (auto-revert-handler):
      * lisp/man.el (Man-bgproc-sentinel):
      * lisp/subr.el (do-after-load-evaluation):
      Revert recent changes that replaced 'message' with 'minibuffer-message'.
      This is not needed anymore since 'message' uses 'minibuffer-message'
      in the active minibuffer.
    • Juanma Barranquero's avatar
      Fix previous change to (next|previous)-buffer · 75b41a38
      Juanma Barranquero authored
      * lisp/window.el (next-buffer, previous-buffer): If no other
      buffer is available, signal 'user-error' only when called
    • Juanma Barranquero's avatar
      (next|previous)-buffer no longer fail silently (bug#38384) · e495dbea
      Juanma Barranquero authored
      * lisp/window.el (next-buffer, previous-buffer):
      Signal 'user-error' if there is no buffer to switch to.
      * etc/NEWS: Document it.
    • Martin Rudalics's avatar
      2019-11-26 Martin Rudalics <rudalics@gmx.at> · 261b060f
      Martin Rudalics authored
      * lisp/window.el (switch-to-visible-buffer): Declare obsolete.
      (switch-to-prev-buffer-skip): New option.
      (switch-to-prev-buffer, switch-to-next-buffer): Obey
      * doc/lispref/windows.texi (Window History): Remove
      description of 'switch-to-visible-buffer'.  Describe new
      option 'switch-to-prev-buffer-skip'
      * etc/NEWS: Mention switch from 'switch-to-visible-buffer' to
    • Robert Pluim's avatar
      Extend network-interface-list to return IPv6 and network info · 650a514e
      Robert Pluim authored
      * src/process.c (Fnetwork_interface_list): Extend argument list to
      allow requesting full network info and/or IPv4/IPv6 info.
      (network_interface_list) [HAVE_GETIFADDRS]: Use getifaddrs to retrieve
      interface IP addresses.
      * src/process.h: Update prototype of network_interface_list.
      * src/w32.c (g_b_init_get_adapters_addresses): New init flag.
      (globals_of_w32): Initialize it.
      (GetAdaptersAddresses_Proc): New function typedef.
      (get_adapters_addresses): New wrapper function.
      (init_winsock): Load htonl and ntohl.
      (sys_htonl, sys_ntohl): New wrapper functions.
      (network_interface_list): Implement in terms of
      * nt/inc/sys/socket.h: Add sys_htonl and sys_ntohl prototypes.
      * etc/NEWS: Announce IPv4/IPv6 changes in network-interface-list.
      * doc/lispref/processes.texi (Misc Network): Document updated arglist
      and return values for network-interface-list.