emacs.git
4 years agoUpdate copyright year to 2021
Paul Eggert [Fri, 1 Jan 2021 09:13:56 +0000 (01:13 -0800)]
Update copyright year to 2021

Run "TZ=UTC0 admin/update-copyright".

4 years agoFix some mistaken shell delinting
Paul Eggert [Fri, 1 Jan 2021 09:12:04 +0000 (01:12 -0800)]
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.

4 years agoRevert recent add-to-ordered-list changes
Lars Ingebrigtsen [Fri, 1 Jan 2021 04:48:02 +0000 (05:48 +0100)]
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.

4 years agoCC Mode: increment version numbers to 5.35 due to standalone release
Alan Mackenzie [Thu, 31 Dec 2020 20:32:14 +0000 (20:32 +0000)]
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".

4 years agoruby-mode: Optimize expression expansion too
Dmitry Gutov [Thu, 31 Dec 2020 18:59:00 +0000 (20:59 +0200)]
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.

4 years agoruby-syntax-propertize: Optimize two rules a little
Dmitry Gutov [Thu, 31 Dec 2020 17:50:48 +0000 (19:50 +0200)]
ruby-syntax-propertize: Optimize two rules a little

* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Optimize two rules a little.

4 years agoruby-mode: Recognize setter symbols
Dmitry Gutov [Thu, 31 Dec 2020 16:39:22 +0000 (18:39 +0200)]
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.

4 years agoFix type declaration of two Flymake customization variables
João Távora [Thu, 31 Dec 2020 16:04:32 +0000 (16:04 +0000)]
Fix type declaration of two Flymake customization variables

* lisp/progmodes/flymake.el (flymake-mode-line-format)
(flymake-mode-line-counter-format): Fix type declaration.

4 years agoFix process-tests on MS-Windows
Eli Zaretskii [Thu, 31 Dec 2020 14:50:19 +0000 (16:50 +0200)]
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.

4 years agoMust explicitly create unpropertized strings in mode-line
João Távora [Thu, 31 Dec 2020 13:40:09 +0000 (13:40 +0000)]
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

4 years agoMake Flymake mode-line indicator customizable (bug#33740)
João Távora [Thu, 31 Dec 2020 13:14:26 +0000 (13:14 +0000)]
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.

4 years agoProtect elisp-flymake-checkdoc against boundless diagnostics
João Távora [Thu, 31 Dec 2020 13:24:32 +0000 (13:24 +0000)]
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.

4 years ago* test/src/process-tests.el: Let timeouts fail the tests. Fix some docstrings
Michael Albinus [Thu, 31 Dec 2020 14:00:41 +0000 (15:00 +0100)]
* test/src/process-tests.el: Let timeouts fail the tests.  Fix some docstrings

4 years agoCC Mode. Fix AWK Mode fontification bug, remove some unused variables
Alan Mackenzie [Thu, 31 Dec 2020 12:14:54 +0000 (12:14 +0000)]
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.

4 years agoUnbreak process tests if 'errno' is not installed.
Philipp Stephani [Thu, 31 Dec 2020 12:17:11 +0000 (13:17 +0100)]
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.

4 years agoFix some shellcheck linter warnings
Stefan Kangas [Thu, 31 Dec 2020 11:11:31 +0000 (12:11 +0100)]
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.

4 years agoMinor cleanup in doc.c
Stefan Kangas [Wed, 30 Dec 2020 19:52:43 +0000 (20:52 +0100)]
Minor cleanup in doc.c

* src/doc.c (get_doc_string, Fdocumentation)
(Fdocumentation_property, store_function_docstring):
Minor cleanup.

4 years agoAdd lexical-binding cookie to autoload files
Stefan Kangas [Thu, 31 Dec 2020 05:35:49 +0000 (06:35 +0100)]
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).

4 years agoFix duplicated entry in gnus-mime-action-alist
Daniel Martín [Thu, 31 Dec 2020 05:00:24 +0000 (06:00 +0100)]
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).

4 years agoAllow add-to-ordered-list to use a test predicate
Lars Ingebrigtsen [Thu, 31 Dec 2020 04:28:47 +0000 (05:28 +0100)]
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).

4 years agoAdd test for add-to-ordered-list
Lars Ingebrigtsen [Thu, 31 Dec 2020 04:00:45 +0000 (05:00 +0100)]
Add test for add-to-ordered-list

4 years agoAdd some tests to find-func.el
Daniel Martín [Thu, 31 Dec 2020 03:31:22 +0000 (04:31 +0100)]
Add some tests to find-func.el

4 years agoMinor improvements to FD_SETSIZE overflow checks.
Philipp Stephani [Wed, 30 Dec 2020 21:36:07 +0000 (22:36 +0100)]
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.

4 years agoManually limit file descriptors that we select on to FD_SETSIZE.
Philipp Stephani [Wed, 30 Dec 2020 22:43:07 +0000 (23:43 +0100)]
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.

4 years agoFix a potential unit test breakage on GNU/Linux.
Philipp Stephani [Wed, 30 Dec 2020 23:05:14 +0000 (00:05 +0100)]
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.

4 years agoFix an incorrect Edebug specification.
Philipp Stephani [Wed, 30 Dec 2020 22:13:19 +0000 (23:13 +0100)]
Fix an incorrect Edebug specification.

* test/src/process-tests.el (process-tests--with-many-pipes): Fix
incorrect Edebug specification.

4 years agoConsistently check for FD_SETSIZE overflow.
Philipp Stephani [Wed, 30 Dec 2020 21:33:22 +0000 (22:33 +0100)]
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.

4 years agoExtend and overhaul FD_SETSIZE overflow tests.
Philipp Stephani [Wed, 30 Dec 2020 21:28:06 +0000 (22:28 +0100)]
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.

4 years ago* src/nsterm.m (ns_select): Fix off-by-one error, and add assertion
Philipp Stephani [Wed, 30 Dec 2020 21:17:52 +0000 (22:17 +0100)]
* src/nsterm.m (ns_select): Fix off-by-one error, and add assertion

4 years ago; * test/src/process-tests.el: Fix comment style.
Philipp Stephani [Wed, 30 Dec 2020 21:16:26 +0000 (22:16 +0100)]
; * test/src/process-tests.el: Fix comment style.

4 years agoCC Mode: correct the handling of empty strings
Alan Mackenzie [Wed, 30 Dec 2020 18:31:56 +0000 (18:31 +0000)]
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.

4 years agoFix Help menu on macOS
Alan Third [Wed, 30 Dec 2020 15:39:26 +0000 (15:39 +0000)]
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.

4 years agoUse standard key symbols in NS menu entries
Mattias Engdegård [Wed, 30 Dec 2020 12:06:47 +0000 (13:06 +0100)]
Use standard key symbols in NS menu entries

* src/nsmenu.m (skipspc): Remove.
(key_symbols, prettify_key): New.
([EmacsMenu fillWithWidgetValue:]): Call prettify_key.

4 years ago; * src/nsmenu.m: Undo unintentional change
Mattias Engdegård [Wed, 30 Dec 2020 12:04:26 +0000 (13:04 +0100)]
; * src/nsmenu.m: Undo unintentional change

4 years agoRemove redundant 'function's around lambda in align.el
Stefan Kangas [Wed, 30 Dec 2020 12:06:27 +0000 (13:06 +0100)]
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.

4 years agoAdd 'project-relative' as value for 'xref-file-name-display'
Dmitry Gutov [Wed, 30 Dec 2020 11:48:45 +0000 (13:48 +0200)]
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'.

Co-authored-by: Tobias Rittweiler <trittweiler@gmail.com>
4 years agoFix some over-wide docstrings
Stefan Kangas [Wed, 30 Dec 2020 11:38:20 +0000 (12:38 +0100)]
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)

4 years agoPlug NS memory leaks (bug#45502)
Mattias Engdegård [Wed, 30 Dec 2020 10:33:42 +0000 (11:33 +0100)]
Plug NS memory leaks (bug#45502)

* src/nsmenu.m ([EmacsMenu addItemWithWidgetValue:attributes:]):
Mark allocated and owned objects for autorelease.

4 years agoAdd variables read-char-choice-use-read-key and y-or-n-p-use-read-key
Juri Linkov [Wed, 30 Dec 2020 09:54:01 +0000 (11:54 +0200)]
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

4 years ago* src/dbusbind.c (XD_BASIC_DBUS_TYPE): Fix error in declaration.
Michael Albinus [Wed, 30 Dec 2020 09:49:48 +0000 (10:49 +0100)]
* src/dbusbind.c (XD_BASIC_DBUS_TYPE): Fix error in declaration.

4 years agoIn Isearch bind 'C-s M-y' to isearch-yank-pop-only with old code (bug#45483)
Juri Linkov [Wed, 30 Dec 2020 09:30:57 +0000 (11:30 +0200)]
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.

4 years ago; * etc/NEWS: Move entry to correct heading.
Stefan Kangas [Wed, 30 Dec 2020 09:06:07 +0000 (10:06 +0100)]
; * etc/NEWS: Move entry to correct heading.

4 years agoMinor cleanup in keymap.c
Stefan Kangas [Wed, 30 Dec 2020 08:43:38 +0000 (09:43 +0100)]
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.

4 years agoAlso count symbol plists in memory-report
Lars Ingebrigtsen [Wed, 30 Dec 2020 07:29:06 +0000 (08:29 +0100)]
Also count symbol plists in memory-report

* lisp/emacs-lisp/memory-report.el (memory-report--symbol-plist):
New function.
(memory-report): Use it.

4 years agoRevert "Switch add-to-ordered-list to eql"
Lars Ingebrigtsen [Wed, 30 Dec 2020 07:07:27 +0000 (08:07 +0100)]
Revert "Switch add-to-ordered-list to eql"

This reverts commit b4fd857ead728a06380250c5336c1ab94a7c2f7a.

I misunderstood the purposed of the function.

4 years ago; Fix my previous commit
Stefan Kangas [Wed, 30 Dec 2020 07:36:04 +0000 (08:36 +0100)]
; Fix my previous commit

* test/src/chartab-tests.el (chartab-test-char-table-extra-slot): Fix
test.

4 years agoAdd some char-table tests
Stefan Kangas [Wed, 30 Dec 2020 07:29:38 +0000 (08:29 +0100)]
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.

4 years agoSwitch add-to-ordered-list to eql
Lars Ingebrigtsen [Wed, 30 Dec 2020 03:48:13 +0000 (04:48 +0100)]
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).

4 years agoImprove the `long' computation of `mode-line-compact'
Lars Ingebrigtsen [Wed, 30 Dec 2020 02:34:17 +0000 (03:34 +0100)]
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.

4 years agoAdd caveat about the `long' `mode-line-compact' setting
Lars Ingebrigtsen [Wed, 30 Dec 2020 02:30:56 +0000 (03:30 +0100)]
Add caveat about the `long' `mode-line-compact' setting

* doc/lispref/modes.texi (Mode Line Basics): Elaborate on the
`long' setting.

4 years agoMinor refactoring of xref-tests
Tobias Rittweiler [Tue, 8 Dec 2020 08:59:15 +0000 (09:59 +0100)]
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.

4 years agoDon't calculate macOS menu data for GNUstep (bug#45502)
Alan Third [Tue, 29 Dec 2020 20:29:00 +0000 (20:29 +0000)]
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.

4 years ago* src/Makefile.in (DO_CODESIGN): Fix architecture for Apple Silicon
Artem Loenko [Tue, 29 Dec 2020 19:41:14 +0000 (20:41 +0100)]
* src/Makefile.in (DO_CODESIGN): Fix architecture for Apple Silicon

4 years agoUse explicit "--color=auto" in grep mode to support both GNU grep and ripgrep
Juri Linkov [Tue, 29 Dec 2020 19:41:24 +0000 (21:41 +0200)]
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).

4 years ago* lisp/x-dnd.el (x-dnd-get-drop-x-y): Add safer check for top/left (bug#45277)
Juri Linkov [Tue, 29 Dec 2020 19:37:31 +0000 (21:37 +0200)]
* lisp/x-dnd.el (x-dnd-get-drop-x-y): Add safer check for top/left (bug#45277)

4 years agoA better fix for process-tests on MS-Windows
Eli Zaretskii [Tue, 29 Dec 2020 19:30:59 +0000 (21:30 +0200)]
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.

4 years agoFix process-tests on MS-Windows
Eli Zaretskii [Tue, 29 Dec 2020 18:41:46 +0000 (20:41 +0200)]
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.

4 years agoxref-show-definitions-completing-read: Tune up completion
Dmitry Gutov [Tue, 29 Dec 2020 18:24:46 +0000 (20:24 +0200)]
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.

4 years agoInstrument process-tests.el for timeouts on emba
Michael Albinus [Tue, 29 Dec 2020 17:40:23 +0000 (18:40 +0100)]
Instrument process-tests.el for timeouts on emba

4 years agoAdd a regression test for Bug#24325.
Philipp Stephani [Tue, 29 Dec 2020 17:18:28 +0000 (18:18 +0100)]
Add a regression test for Bug#24325.

* test/src/process-tests.el (process-tests/fd-setsize-no-crash): New
unit test.

4 years agoMore readable keys in NS menu entries (bug#45502)
Mattias Engdegård [Mon, 28 Dec 2020 14:24:08 +0000 (15:24 +0100)]
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.

4 years agoSync with Tramp 2.5.0
Michael Albinus [Tue, 29 Dec 2020 14:36:38 +0000 (15:36 +0100)]
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.

4 years agoRevert "Allow the flymake mode line indicator to be customized"
João Távora [Tue, 29 Dec 2020 14:07:03 +0000 (14:07 +0000)]
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.

4 years agoFix crash in NS menu code
Alan Third [Tue, 29 Dec 2020 13:45:30 +0000 (13:45 +0000)]
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.

4 years agoAdd some tests for align.el
Lars Ingebrigtsen [Tue, 29 Dec 2020 07:38:17 +0000 (08:38 +0100)]
Add some tests for align.el

4 years ago* src/xdisp.c (display_mode_line): I guess FALSE should be false.
Glenn Morris [Tue, 29 Dec 2020 05:36:47 +0000 (21:36 -0800)]
* src/xdisp.c (display_mode_line): I guess FALSE should be false.

4 years agoRevert the previous display_string change
Lars Ingebrigtsen [Tue, 29 Dec 2020 05:07:44 +0000 (06:07 +0100)]
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.

4 years agoFix compact mode line text properties
Lars Ingebrigtsen [Tue, 29 Dec 2020 04:59:42 +0000 (05:59 +0100)]
Fix compact mode line text properties

* src/xdisp.c (display_mode_line): Display the compact mode
correctly (with text properties) (bug#45520).

4 years agoAdd a parameter to display_string to allow not ignoring text props
Lars Ingebrigtsen [Tue, 29 Dec 2020 04:16:25 +0000 (05:16 +0100)]
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.

4 years agoIntroduce new variable mode-line-compact
Lars Ingebrigtsen [Tue, 29 Dec 2020 03:53:03 +0000 (04:53 +0100)]
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.

4 years agoAllow the flymake mode line indicator to be customized
Lars Ingebrigtsen [Tue, 29 Dec 2020 02:10:00 +0000 (03:10 +0100)]
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.

4 years agoAdd a SPLIT parameter to `format-spec'
Lars Ingebrigtsen [Tue, 29 Dec 2020 02:04:51 +0000 (03:04 +0100)]
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).

4 years agoReword a long docstring in cc-langs.el
Basil L. Contovounesios [Tue, 29 Dec 2020 01:19:07 +0000 (01:19 +0000)]
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).

4 years agoAdd a reference between the Strings node and Search/Replace
Lars Ingebrigtsen [Tue, 29 Dec 2020 01:19:03 +0000 (02:19 +0100)]
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).

4 years agoAllow mixing attributes and comments in the diary file
Lars Ingebrigtsen [Tue, 29 Dec 2020 01:01:57 +0000 (02:01 +0100)]
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).

4 years agoRobustify completion match scoring for optimized patterns
João Távora [Mon, 28 Dec 2020 09:20:17 +0000 (09:20 +0000)]
Robustify completion match scoring for optimized patterns

Fixes: 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 <dario.gjorgjevski@gmail.com>

* lisp/minibuffer.el (completion-pcm--hilit-commonality):
Simplify.  Add docstring.

* lisp/minibuffer.el (completion-pcm--hilit-commonality): Add
docstring

4 years agoCC Mode: Add newish AWK Mode facilities, as used in gawk-4.
Alan Mackenzie [Mon, 28 Dec 2020 20:42:25 +0000 (20:42 +0000)]
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.

4 years ago* lisp/minibuffer.el: Avoid consecutive `any` in completion patterns
Stefan Monnier [Mon, 28 Dec 2020 19:58:39 +0000 (14:58 -0500)]
* 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 <dario.gjorgjevski@gmail.com>.

4 years agoFix package tests for tetris no longer existing as a package
Glenn Morris [Mon, 28 Dec 2020 19:03:30 +0000 (11:03 -0800)]
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:.

4 years agoFix crash in NS menu code
Alan Third [Mon, 28 Dec 2020 15:02:39 +0000 (15:02 +0000)]
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.

4 years agoMinor cleanups in tetris.el
Stefan Kangas [Mon, 28 Dec 2020 06:51:05 +0000 (07:51 +0100)]
Minor cleanups in tetris.el

* lisp/play/tetris.el: Remove redundant :group args.
(tetris-get-tick-period): Drop unnecessary check.
(tetris): Stylistic doc fixes.

4 years ago* lisp/ps-print.el (ps-message-log-max): Remove XEmacs compat code.
Stefan Kangas [Mon, 28 Dec 2020 06:47:59 +0000 (07:47 +0100)]
* lisp/ps-print.el (ps-message-log-max): Remove XEmacs compat code.

4 years agoRemove redundant 'function's around lambda in vhdl-mode.el
Stefan Kangas [Mon, 28 Dec 2020 06:31:44 +0000 (07:31 +0100)]
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.

4 years agoFix too-long feedmail-sendmail-f-doesnt-sell-me-out doc string
Lars Ingebrigtsen [Mon, 28 Dec 2020 05:42:06 +0000 (06:42 +0100)]
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.

4 years agoFill some auto-generated docstrings
Stefan Kangas [Thu, 10 Dec 2020 21:36:18 +0000 (22:36 +0100)]
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.

4 years agoMake byte-compiler warn about wide docstrings
Stefan Kangas [Sun, 6 Dec 2020 11:44:19 +0000 (12:44 +0100)]
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.

4 years agoMake octave-send-region be asynchronous
Lars Ingebrigtsen [Mon, 28 Dec 2020 03:24:01 +0000 (04:24 +0100)]
Make octave-send-region be asynchronous

* lisp/progmodes/octave.el (octave-send-region): Send things
asynchronously to the inferior process (bug#24492).

4 years agoMake XIM to work with non-CJK locales
Yichao Yu [Mon, 28 Dec 2020 03:17:43 +0000 (04:17 +0100)]
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.

4 years agoFix background mode on Gnome 3.38 terminals
Lars Ingebrigtsen [Mon, 28 Dec 2020 03:09:51 +0000 (04:09 +0100)]
Fix background mode on Gnome 3.38 terminals

* lisp/term/xterm.el (xterm--version-handler): Adjust to Gnome
3.38 (bug#43891).

4 years agoFix alignment of Java String[] and the like
Lars Ingebrigtsen [Mon, 28 Dec 2020 01:47:25 +0000 (02:47 +0100)]
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;
}

4 years agoDocument the text property limitations in mode lines
Lars Ingebrigtsen [Mon, 28 Dec 2020 01:18:16 +0000 (02:18 +0100)]
Document the text property limitations in mode lines

* doc/lispref/modes.texi (Properties in Mode, Mode Line Basics):
Mention the special text property limitations.

4 years agoAllow remember-notes to use the *scratch* buffer
Lars Ingebrigtsen [Mon, 28 Dec 2020 01:03:56 +0000 (02:03 +0100)]
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).

4 years agoRename and document the built-in xref-show-definitions-function's
Dmitry Gutov [Mon, 28 Dec 2020 00:30:09 +0000 (02:30 +0200)]
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'.

4 years agoDo not output two spaces for non-autoloaded ieieo constructor functions
Tim Landscheidt [Sun, 27 Dec 2020 23:37:51 +0000 (00:37 +0100)]
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).

Copyright-paperwork-exempt: yes

4 years ago* lisp/emacs-lisp/package.el (package-archives): Add NonGNU ELPA
Stefan Monnier [Sun, 27 Dec 2020 22:31:07 +0000 (17:31 -0500)]
* lisp/emacs-lisp/package.el (package-archives): Add NonGNU ELPA

4 years ago* lisp/textmodes/rst.el (rst-mode): Don't touch global hook
Stefan Monnier [Sun, 27 Dec 2020 22:16:54 +0000 (17:16 -0500)]
* lisp/textmodes/rst.el (rst-mode): Don't touch global hook

(rst-re): η-reduce.

4 years agoRemove NS menu synthesized events (bug#44333)
Alan Third [Wed, 23 Dec 2020 20:12:02 +0000 (20:12 +0000)]
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.

4 years ago; Fix recent shortdoc.el and fns.c additions
Basil L. Contovounesios [Sun, 27 Dec 2020 13:14:30 +0000 (13:14 +0000)]
; Fix recent shortdoc.el and fns.c additions

* lisp/emacs-lisp/shortdoc.el (list): Fix typos.
* src/fns.c (Flength_equal): Fix docstring.

4 years ago; Fix the recent `length' doc string addition
Štěpán Němec [Sun, 27 Dec 2020 10:43:19 +0000 (11:43 +0100)]
; Fix the recent `length' doc string addition

4 years agoFix up length_internal with degenerate length inputs
Lars Ingebrigtsen [Sun, 27 Dec 2020 08:22:02 +0000 (09:22 +0100)]
Fix up length_internal with degenerate length inputs

* src/fns.c (length_internal): Protect against edge conditions.