Paul Eggert [Fri, 1 Jan 2021 09:13:56 +0000 (01:13 -0800)]
Update copyright year to 2021
Run "TZ=UTC0 admin/update-copyright".
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.
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.
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".
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.
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.
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.
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.
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.
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
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.
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.
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
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.
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.
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.
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.
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).
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).
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).
Lars Ingebrigtsen [Thu, 31 Dec 2020 04:00:45 +0000 (05:00 +0100)]
Add test for add-to-ordered-list
Daniel Martín [Thu, 31 Dec 2020 03:31:22 +0000 (04:31 +0100)]
Add some tests to find-func.el
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.
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.
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.
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.
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.
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.
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
Philipp Stephani [Wed, 30 Dec 2020 21:16:26 +0000 (22:16 +0100)]
; * test/src/process-tests.el: Fix comment style.
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.
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.
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.
Mattias Engdegård [Wed, 30 Dec 2020 12:04:26 +0000 (13:04 +0100)]
; * src/nsmenu.m: Undo unintentional change
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.
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>
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)
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.
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
Michael Albinus [Wed, 30 Dec 2020 09:49:48 +0000 (10:49 +0100)]
* src/dbusbind.c (XD_BASIC_DBUS_TYPE): Fix error in declaration.
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.
Stefan Kangas [Wed, 30 Dec 2020 09:06:07 +0000 (10:06 +0100)]
; * etc/NEWS: Move entry to correct heading.
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.
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.
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.
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.
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.
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).
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.
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.
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.
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.
Artem Loenko [Tue, 29 Dec 2020 19:41:14 +0000 (20:41 +0100)]
* src/Makefile.in (DO_CODESIGN): Fix architecture for Apple Silicon
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).
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)
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.
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.
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.
Michael Albinus [Tue, 29 Dec 2020 17:40:23 +0000 (18:40 +0100)]
Instrument process-tests.el for timeouts on emba
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.
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.
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.
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.
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.
Lars Ingebrigtsen [Tue, 29 Dec 2020 07:38:17 +0000 (08:38 +0100)]
Add some tests for align.el
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.
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.
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).
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.
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.
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.
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).
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).
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).
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).
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
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.
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>.
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:.
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.
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.
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.
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.
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.
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.
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.
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).
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.
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).
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;
}
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.
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).
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'.
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
Stefan Monnier [Sun, 27 Dec 2020 22:31:07 +0000 (17:31 -0500)]
* lisp/emacs-lisp/package.el (package-archives): Add NonGNU ELPA
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.
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.
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.
Štěpán Němec [Sun, 27 Dec 2020 10:43:19 +0000 (11:43 +0100)]
; Fix the recent `length' doc string addition
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.