]> git.eshelyaron.com Git - emacs.git/log
emacs.git
2 years agoAdd mechanism for escaping shorthand substitution feature/shorthand-namespacing
João Távora [Wed, 22 Sep 2021 22:53:15 +0000 (23:53 +0100)]
Add mechanism for escaping shorthand substitution

* src/lread.c (read1): Add skip_shorthand variable.  Add a '#\'
case.  Sometimes call oblookup instead of
oblookup_considering_shorthand.

2 years agoConsider shorthands in Elisp's elisp-completion-at-point
João Távora [Tue, 21 Sep 2021 21:20:17 +0000 (22:20 +0100)]
Consider shorthands in Elisp's elisp-completion-at-point

* lisp/progmodes/elisp-mode.el : new helper.
(elisp-completion-at-point): Use new helpers.
(elisp--completion-local-symbols)
(elisp--fboundp-considering-shorthands)
(elisp--bboundp-considering-shorthands): New helpers

* src/lread.c (intern_driver): Nullify Qobarray_cache.
(syms_of_lread): Add Qobarray_cache.

* test/lisp/progmodes/elisp-resources/magnars-string-user.el: New
file to play around with `magnars-string` library.

2 years ago* lisp/emacs-lisp/magnars-string.el: New file.
João Távora [Tue, 21 Sep 2021 17:31:21 +0000 (18:31 +0100)]
* lisp/emacs-lisp/magnars-string.el: New file.

2 years agoAdjust C style and add comments to shorthand code
João Távora [Sat, 2 Jan 2021 14:04:17 +0000 (14:04 +0000)]
Adjust C style and add comments to shorthand code

* src/lread.c (oblookup_considering_shorthand): Adjust
declaration.
(read1, Fintern_soft): Adjust C style.
(oblookup_considering_shorthand): Adjust C style.  Add comments.

2 years agoRework docstring of hack-elisp-shorthands
João Távora [Wed, 23 Dec 2020 21:23:30 +0000 (21:23 +0000)]
Rework docstring of hack-elisp-shorthands

* lisp/international/mule.el (hack-elisp-shorthands): Rework
docstring.

2 years agoRework elisp-shorthands to only allow only prefix substitution
João Távora [Wed, 23 Dec 2020 19:57:27 +0000 (19:57 +0000)]
Rework elisp-shorthands to only allow only prefix substitution

This simplification in requirements makes for more complex C code but
that code is much less wasteful in Lisp strings than the previous
implementation.

* src/lread.c (read1): Rework.
(Fintern): Rework.
(Fintern_soft): Rework.
(Funintern): Rework.
(oblookup_considering_shorthand): Rewrite.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string): Use new format of
shorthand-longhand-.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el (f-test)
(f-test2, f-test3): Use new form of elisp-shorthands.

2 years agoAdd a test for byte-compilation
João Távora [Mon, 21 Sep 2020 15:58:46 +0000 (16:58 +0100)]
Add a test for byte-compilation

* test/lisp/progmodes/elisp-mode-tests.el
(elisp-shorthand-byte-compile-a-file): New test.
(elisp-shorthand-load-a-file): Simplify.

2 years agoIntegrate shorthand functionality into elisp-mode.el
João Távora [Sun, 20 Sep 2020 20:21:32 +0000 (21:21 +0100)]
Integrate shorthand functionality into elisp-mode.el

Also rename the main variable to elisp-shorthands, from the
silly pleonastic shorthand-shorthands.

For some reason, I had to stick the new source-file loading functions
in lisp/international/mule.el, otherwise lisp/loadup.el wouldn't see
them.  This should probably be fixed.

* lisp/shorthand.el: Remove.

* lisp/progmodes/elisp-mode.el (elisp--shorthand-load-wrapper):
Move here.

* src/lread.c (oblookup_considering_shorthand, syms_of_lread):
Rename variable elisp-shorthand, from shorthand-shorthands.

* test/lisp/shorthand-tests.el: Remove.

* test/lisp/progmodes/elisp-mode-tests.el (elisp-shorthand-read-buffer)
(elisp-shorthand-read-from-string)
(elisp-shorthand-load-a-file): New tests.

* test/lisp/progmodes/elisp-resources/simple-shorthand-test.el: New file

* lisp/loadup.el (load-source-file-function): Set to
  load-with-shorthands-and-code-conversion.

* lisp/international/mule.el (hack-elisp-shorthands): Move here.
(load-with-shorthands-and-code-conversion): And here.

2 years agoRobustify checking of shorthand-shorthands
João Távora [Sun, 20 Sep 2020 11:01:05 +0000 (12:01 +0100)]
Robustify checking of shorthand-shorthands

* src/lread.c (oblookup_considering_shorthand): Maybe warn when we
find fishy shorthand-shorthands.

2 years agoMove most of the shorthand implementation to C code
João Távora [Sat, 19 Sep 2020 21:16:38 +0000 (22:16 +0100)]
Move most of the shorthand implementation to C code

This very likely isn't the final form of the implementation.  For one,
the reader is much slower and allocates a Lisp string for every atom
read, regardless if its already interned or not, which perhaps has the
potential to be catastrophic in terms of GC.

But it passes the tests.

The solution to this, is probably to simplify the semantics of
shorthand-shorthands.  Instead of making it a regexp-to-longhand
alist, make it just prefix-to-longhand.  Then we wouldn't need to call
Fstring_match in oblookup_considering_shorthand, meaning we wouldn't
need a Lisp string there.

* lisp/shorthand.el (shorthand-shorthands): Move to C code.
(shorthand--expand-shorthand): Remove.
(shorthand-read-wrapper): Remove.
(shorthand-intern-soft-wrapper): Remove.
(read, intern-soft): No longer advise.

* src/lread.c:
(read1, Fintern, Fintern_soft, Funintern): Use
oblookup_considering_shorthand.
(oblookup_considering_shorthand): New helper.
(syms_of_lread): Declare shorthand-shorthands.

2 years agoFirst Elisp version of lisp/shorthand.el, failing some tests
João Távora [Wed, 26 Aug 2020 20:29:15 +0000 (21:29 +0100)]
First Elisp version of lisp/shorthand.el, failing some tests

* lisp/shorthand.el: New file

* test/lisp/shorthand-tests.el: New file

2 years agoUpdate comments warning about GC-resistant C programming
Eli Zaretskii [Wed, 22 Sep 2021 07:07:25 +0000 (10:07 +0300)]
Update comments warning about GC-resistant C programming

* src/eval.c: Remove an outdated comment about protection from GC.
* src/buffer.h:
* src/lisp.h: Add warnings about using 'char *' pointers to text
of Lisp strings and buffer text in code that could GC.  Reported by
Po Lu <luangruo@yahoo.com>

2 years agoNative compilation on macOS: libgccjit not found
Daniel Fleischer [Sat, 18 Sep 2021 21:17:49 +0000 (00:17 +0300)]
Native compilation on macOS: libgccjit not found

* etc/PROBLEMS: Describe the problem with libgccjit setup on
macOS.  (Bug#50411)

2 years ago; * doc/misc/mh-e.texi (Scan Line Formats): Fix typo, an extra "the".
Stephen Gildea [Wed, 22 Sep 2021 05:28:29 +0000 (22:28 -0700)]
; * doc/misc/mh-e.texi (Scan Line Formats): Fix typo, an extra "the".

2 years agoSpeed up `replace-match' slightly
Lars Ingebrigtsen [Wed, 22 Sep 2021 05:22:17 +0000 (07:22 +0200)]
Speed up `replace-match' slightly

* src/search.c (Freplace_match): Speed up non-literal (but
actually literal) common case.

This makes

(benchmark-run 1000000
  (replace-regexp-in-string
  "a+" "foo"
  "ogihdipofdhookfdohkfdpokhpokhfdpokfdhpokfdhkdfkhgoadfphokfkhpofdkhkdpokf"))

about 10% faster.

2 years agoMigrate MH-E functional tests from SourceForge
Stephen Gildea [Wed, 22 Sep 2021 05:01:03 +0000 (22:01 -0700)]
Migrate MH-E functional tests from SourceForge

* test/lisp/mh-e/mh-limit-tests.el:
* test/lisp/mh-e/mh-utils-tests.el:
* test/lisp/mh-e/mh-xface-tests.el:
Import the functional tests from src/mh-unit.el.

mh-unit.el is from the old SourceForge mh-e repository, last changed
in 2017.  To this are applied unmerged patches Mike Kupfer wrote in
2018 ("Refactor mh-unit into functional and release tests" and
"Fix the functional tests").

All tests have been converted to run under Emacs's ERT framework.

Some tests for mh-utils use MH programs to examine mail folders.
These tests require an MH variant to be installed on the system; for
these, added both a mock harness that pretends the needed files and MH
programs do exist, and a wrapper that creates the necessary mail files.

New function 'mh-test-utils-setup-with-variant' bears some resemblance
to 'mh-test-folders-set-up' from the original tests.  New function
'mh-test-utils-setup-with-mocks' is new functionality for these tests.

2 years agoChange how thread-first/thread-last indent the first argument
Lars Ingebrigtsen [Wed, 22 Sep 2021 03:57:48 +0000 (05:57 +0200)]
Change how thread-first/thread-last indent the first argument

* lisp/doc-view.el (doc-view--current-cache-dir): Reindent.

* lisp/emacs-lisp/subr-x.el (thread-first):
(thread-last): Change indentation to match examples.
(internal--build-binding): Reindent.

* test/lisp/emacs-lisp/subr-x-tests.el
(subr-x-test-thread-first-function-names-are-threaded):
(subr-x-test-thread-first-examples):
(subr-x-test-thread-last-function-names-are-threaded):
(subr-x-test-thread-last-examples): Reindent.

2 years agoMake global-auto-revert-non-file-buffers work better
Lars Ingebrigtsen [Tue, 21 Sep 2021 21:09:34 +0000 (23:09 +0200)]
Make global-auto-revert-non-file-buffers work better

* lisp/autorevert.el (global-auto-revert-mode): Always switch on
the non-file tracking.
(auto-revert--global-possibly-adopt-current-buffer): New function
to respect dynamically changing `global-auto-revert-non-file-buffers'.

2 years ago(etc-authors-mode--hide-local-variables): Obfuscate more efficiently
Stefan Monnier [Tue, 21 Sep 2021 20:53:25 +0000 (16:53 -0400)]
(etc-authors-mode--hide-local-variables): Obfuscate more efficiently

2 years ago; * etc/NEWS: Improve wording of an item.
Stefan Kangas [Tue, 21 Sep 2021 20:17:14 +0000 (22:17 +0200)]
; * etc/NEWS: Improve wording of an item.

* lisp/emacs-lisp/hierarchy.el: Improve wording of package description.

2 years agoFix warning in etc-authors-mode.el
Stefan Kangas [Tue, 21 Sep 2021 20:09:09 +0000 (22:09 +0200)]
Fix warning in etc-authors-mode.el

* lisp/textmodes/etc-authors-mode.el
(etc-authors-mode--hide-local-variables): Avoid warning.

2 years agoDon't quote nil and t in doc strings and comments
Lars Ingebrigtsen [Tue, 21 Sep 2021 20:11:43 +0000 (22:11 +0200)]
Don't quote nil and t in doc strings and comments

* test/src/minibuf-tests.el (test-try-completion-ignore-case):
* test/lisp/url/url-auth-tests.el
(url-auth-test-digest-auth-retrieve-cache):
* test/lisp/subr-tests.el (subr-tests-add-hook-depth):
* test/lisp/so-long-tests/so-long-tests.el
(so-long-tests-invisible-buffer-function):
* test/lisp/emacs-lisp/tabulated-list-test.el (tabulated-list-sort):
* src/xfaces.c:
* src/process.c (Finterrupt_process):
(syms_of_process):
* src/minibuf.c (Fread_from_minibuffer):
(Fcompleting_read):
(syms_of_minibuf):
* src/dispnew.c (syms_of_display):
* src/data.c:
* lisp/so-long.el (so-long--hack-local-variables):
* lisp/progmodes/elisp-mode.el (elisp--xref-find-definitions):
(elisp--xref-find-definitions):
* lisp/org/ox-html.el (org-html-htmlize-output-type):
* lisp/org/org-agenda.el (org-agenda-do-in-region):
* lisp/net/tramp.el:
* lisp/minibuffer.el (set-minibuffer-message):
* lisp/isearch.el (isearch-wrap-pause):
(isearch-repeat-on-direction-change):
* lisp/emacs-lisp/timer.el (timer):
* lisp/emacs-lisp/package.el (package-read-archive-contents):
* lisp/emacs-lisp/faceup.el (faceup-next-property-change):
* lisp/emacs-lisp/comp.el (comp-func):
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-empty-p):
* lisp/emacs-lisp/cl-macs.el (cl-do):
(cl-do*):
(cl--self-tco):
* lisp/emacs-lisp/bytecomp.el (byte-compile-unresolved-functions):
(byte-compile-cond-jump-table): Don't quote t and nil.

2 years agoDocument isearch-wrap-pause
Lars Ingebrigtsen [Tue, 21 Sep 2021 20:01:28 +0000 (22:01 +0200)]
Document isearch-wrap-pause

* doc/emacs/search.texi (Repeat Isearch): Document
`isearch-wrap-pause'.

2 years agoNew major mode with font-locking for etc/AUTHORS
Stefan Kangas [Sun, 19 Sep 2021 13:46:44 +0000 (15:46 +0200)]
New major mode with font-locking for etc/AUTHORS

* lisp/textmodes/etc-authors-mode.el: New file.  (Bug#50674)
* etc/AUTHORS (mode): Add "mode: etc-authors" to local variables.
* admin/authors.el (authors): Add "mode: etc-authors" to local
variables of the generated AUTHORS file.

2 years ago; * doc/lispref/windows.texi (Cyclic Window Ordering): Fix typo.
Stefan Kangas [Tue, 21 Sep 2021 19:07:37 +0000 (21:07 +0200)]
; * doc/lispref/windows.texi (Cyclic Window Ordering): Fix typo.

2 years agoImprove recently added documentation
Eli Zaretskii [Tue, 21 Sep 2021 18:51:38 +0000 (21:51 +0300)]
Improve recently added documentation

* doc/lispref/lists.texi (Building Lists):
* lisp/subr.el (ensure-list): Avoid passive tense in documenting
'ensure-list'.

2 years agoAdd new function `ensure-list'
Lars Ingebrigtsen [Tue, 21 Sep 2021 18:30:57 +0000 (20:30 +0200)]
Add new function `ensure-list'

* doc/lispref/lists.texi (Building Lists): Document it.

* lisp/subr.el (ensure-list): New function.

* lisp/emacs-lisp/shortdoc.el (list): Mention it.

2 years agoMerge branch 'master' of git.sv.gnu.org:/srv/git/emacs
Michael Albinus [Tue, 21 Sep 2021 18:27:48 +0000 (20:27 +0200)]
Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs

2 years agoFix tramp-compat-temporary-file-directory implementation
Michael Albinus [Tue, 21 Sep 2021 18:26:59 +0000 (20:26 +0200)]
Fix tramp-compat-temporary-file-directory implementation

* lisp/net/tramp-archive.el
(tramp-archive-handle-temporary-file-directory):
Use `tramp-compat-temporary-file-directory-function'.

* lisp/net/tramp-compat.el (tramp-compat-temporary-file-directory):
Make it a defconst.

* lisp/net/tramp.el (tramp-get-debug-buffer, tramp-get-debug-file-name)
(tramp-debug-message, tramp-file-name-handler, tramp-parse-file)
(tramp-parse-shostkeys-sknownhosts)
(tramp-handle-expand-file-name, tramp-handle-make-process)
(tramp-local-host-p, tramp-call-process)
(tramp-call-process-region, tramp-process-lines)
(tramp-read-passwd):
* lisp/net/tramp-adb.el (tramp-adb-maybe-open-connection):
* lisp/net/tramp-compat.el (tramp-compat-make-temp-name)
(tramp-compat-make-temp-file);
* lisp/net/tramp-crypt.el (tramp-crypt-file-name-for-operation)
(tramp-crypt-maybe-open-connection, tramp-crypt-send-command)
(tramp-crypt-do-encrypt-or-decrypt-file-name):
* lisp/net/tramp-fuse.el (tramp-fuse-mount-point, tramp-fuse-mounted-p)
(tramp-fuse-unmount):
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band)
(tramp-sh-handle-expand-file-name)
(tramp-sh-handle-file-local-copy, )
(tramp-sh-handle-write-region, tramp-maybe-open-connection):
* lisp/net/tramp-smb.el (tramp-smb-maybe-open-connection): Use it.

2 years ago; * lisp/emacs-lisp/checkdoc.el: Fix warnings.
Stefan Kangas [Tue, 21 Sep 2021 18:17:46 +0000 (20:17 +0200)]
; * lisp/emacs-lisp/checkdoc.el: Fix warnings.

2 years agoMinor clean-up and fixes in checkdoc
Stefan Kangas [Tue, 21 Sep 2021 17:23:17 +0000 (19:23 +0200)]
Minor clean-up and fixes in checkdoc

* lisp/emacs-lisp/checkdoc.el: Minor doc fixes.  Remove unnecessary
space at the end of 'y-or-n-p' prompts.  Move obsolete definitions to
the end of the file.
(checkdoc-symbol-words, checkdoc-common-verbs-wrong-voice): Add
some more common words.

2 years agocheckdoc: New defvars to disable some warnings
Stefan Kangas [Tue, 21 Sep 2021 17:20:48 +0000 (19:20 +0200)]
checkdoc: New defvars to disable some warnings

* lisp/emacs-lisp/checkdoc.el (checkdoc--argument-missing-flag)
(checkdoc--disambiguate-symbol-flag)
(checkdoc--interactive-docstring-flag): New defvars to disable some
warnings.  These are intended for use with Emacs itself rather than
with third-party libraries.
(checkdoc-this-string-valid, checkdoc-this-string-valid-engine):
Respect above new variables.

2 years agoAdd new command 'checkdoc-dired'
Stefan Kangas [Tue, 21 Sep 2021 17:18:50 +0000 (19:18 +0200)]
Add new command 'checkdoc-dired'

* lisp/emacs-lisp/checkdoc.el (checkdoc-dired): New command.
(checkdoc--dired-skip-lines-re): New constant.

2 years agoMore NEWS tagging
Lars Ingebrigtsen [Tue, 21 Sep 2021 17:55:11 +0000 (19:55 +0200)]
More NEWS tagging

2 years agoDo some NEWS tagging
Lars Ingebrigtsen [Tue, 21 Sep 2021 17:52:23 +0000 (19:52 +0200)]
Do some NEWS tagging

2 years agoDocument `window-bump-use-time'
Lars Ingebrigtsen [Tue, 21 Sep 2021 17:47:57 +0000 (19:47 +0200)]
Document `window-bump-use-time'

* doc/lispref/windows.texi (Cyclic Window Ordering): Mention
window-bump-use-time.

2 years ago* lisp/tab-bar.el: Preserve all existing tab parameters when switching tabs.
Juri Linkov [Tue, 21 Sep 2021 17:45:38 +0000 (20:45 +0300)]
* lisp/tab-bar.el: Preserve all existing tab parameters when switching tabs.

* lisp/tab-bar.el (tab-bar--tab, tab-bar--current-tab-make):
Copy other possible tab parameters.
https://lists.gnu.org/archive/html/emacs-devel/2021-09/msg01544.html

2 years agoDocument completions-detailed
Lars Ingebrigtsen [Tue, 21 Sep 2021 17:43:03 +0000 (19:43 +0200)]
Document completions-detailed

* doc/emacs/help.texi (Name Help): Document completions-detailed.
* lisp/minibuffer.el (completions-detailed): Give an example in
the doc string.

2 years ago; * etc/NEWS: Refile recent addition (bug#50690).
Basil L. Contovounesios [Tue, 21 Sep 2021 17:14:11 +0000 (18:14 +0100)]
; * etc/NEWS: Refile recent addition (bug#50690).

2 years agoMake dired-do-compress-to work in inserted subdirectories
Michalis V [Tue, 21 Sep 2021 17:13:35 +0000 (19:13 +0200)]
Make dired-do-compress-to work in inserted subdirectories

* lisp/dired-aux.el (dired-do-compress-to): Make this work in file
in inserted subdirectories (bug#46913).

2 years agoRevert "Make dired-compress-file query for a directory to uncompress to"
Lars Ingebrigtsen [Tue, 21 Sep 2021 17:05:15 +0000 (19:05 +0200)]
Revert "Make dired-compress-file query for a directory to uncompress to"

This reverts commit 7e395a59b025c7f4be49294ad806addf5b1a25c9.

The behaviour change isn't good for the majority of tar files.

2 years agoRevert "Make recent dired tests check for external executables"
Lars Ingebrigtsen [Tue, 21 Sep 2021 17:04:46 +0000 (19:04 +0200)]
Revert "Make recent dired tests check for external executables"

This reverts commit 98a17f30b8314e40a1edefac3d542d3e105c7bd6.

Reverting parent commit.

2 years agoRestore some of the previous behaviour in whitespace-display-window
Lars Ingebrigtsen [Tue, 21 Sep 2021 16:54:41 +0000 (18:54 +0200)]
Restore some of the previous behaviour in whitespace-display-window

* lisp/whitespace.el (whitespace-display-window): Emulate previous
behaviour (bug#50716).  Code from martin rudalics <rudalics@gmx.at>.

2 years ago; Stylistic docfixes in htmlfontify.el found by checkdoc
Stefan Kangas [Tue, 21 Sep 2021 16:12:07 +0000 (18:12 +0200)]
; Stylistic docfixes in htmlfontify.el found by checkdoc

2 years agoDon't use `format' on strings without % format directives
Lars Ingebrigtsen [Tue, 21 Sep 2021 15:52:53 +0000 (17:52 +0200)]
Don't use `format' on strings without % format directives

* lisp/vc/ediff-init.el (ediff-BAD-INFO):
* lisp/url/url-ldap.el (url-ldap):
* lisp/url/url-http.el (url-http--user-agent-default-string):
* lisp/textmodes/reftex.el (reftex-access-parse-file):
* lisp/textmodes/reftex-index.el (reftex-index-phrases-info):
* lisp/textmodes/ispell.el (ispell-create-debug-buffer):
* lisp/term.el (serial-read-speed):
* lisp/progmodes/verilog-mode.el (verilog-scan-debug):
* lisp/progmodes/idlwave.el (idlwave-find-module):
* lisp/progmodes/compile.el (compilation-revert-buffer):
* lisp/org/org-agenda.el (org-search-view):
* lisp/net/telnet.el (telnet-revert-buffer):
* lisp/net/soap-inspect.el (soap-sample-value-for-xs-simple-type):
* lisp/net/newst-backend.el (newsticker--cache-read):
* lisp/mh-e/mh-seq.el (mh-msg-is-in-seq):
* lisp/mail/smtpmail.el (smtpmail-via-smtp):
* lisp/mail/emacsbug.el (report-emacs-bug):
* lisp/jsonrpc.el (jsonrpc-error):
* lisp/help-fns.el (describe-variable):
* lisp/gnus/mm-decode.el (mm-possibly-verify-or-decrypt):
* lisp/gnus/gnus.el (gnus-group-startup-message):
(gnus-group-startup-message):
* lisp/gnus/gnus-group.el (gnus-group-restart):
* lisp/frame.el (make-frame-on-display):
* lisp/emulation/viper-ex.el (ex-help):
* lisp/calendar/icalendar.el (icalendar--convert-ical-to-diary):
(icalendar--add-diary-entry):
* lisp/calendar/cal-tex.el (cal-tex-end-document):
* lisp/calc/calcalg3.el (math-ninteg-romberg): Don't use `format'
on strings that have no % format directives in them.

2 years agoFix usage of `format' in mm-uu-pgp-encrypted-extract
Lars Ingebrigtsen [Tue, 21 Sep 2021 15:47:55 +0000 (17:47 +0200)]
Fix usage of `format' in mm-uu-pgp-encrypted-extract

* lisp/gnus/mm-uu.el (mm-uu-pgp-encrypted-extract): Use
`substring' instead of `format' to ensure a fresh string.

2 years agoFix usage of `format' in `article-verify-x-pgp-sig'
Lars Ingebrigtsen [Tue, 21 Sep 2021 15:46:10 +0000 (17:46 +0200)]
Fix usage of `format' in `article-verify-x-pgp-sig'

* lisp/gnus/gnus-art.el (article-verify-x-pgp-sig): Use
`substring' instead of `format' to ensure a fresh string.

2 years agoFix PGP verification buttons (which would have cached results)
Lars Ingebrigtsen [Tue, 21 Sep 2021 15:41:26 +0000 (17:41 +0200)]
Fix PGP verification buttons (which would have cached results)

* lisp/gnus/mm-uu.el (mm-uu-pgp-signed-extract): `format' was used
here to guarantee a new, fresh string (since it's destructively
modified), but that's apparently not the case any more.  Use
`substring' instead, which is documented to do this.

2 years agoDon't inhibit redisplay in the mml* functions
Lars Ingebrigtsen [Tue, 21 Sep 2021 15:39:02 +0000 (17:39 +0200)]
Don't inhibit redisplay in the mml* functions

* lisp/gnus/mml-smime.el (inhibit-redisplay): Removed.
(mml-smime-epg-encrypt):
(mml-smime-epg-verify): Don't inhibit.

* lisp/gnus/mml1991.el (mml1991-epg-sign): Ditto.

* lisp/gnus/mml2015.el (inhibit-redisplay): Removed
(mml2015-epg-decrypt):
(mml2015-epg-clear-decrypt):
(mml2015-epg-verify):
(mml2015-epg-clear-verify):
(mml2015-epg-sign):
(mml2015-epg-encrypt): Don't bind `inhibit-redisplay', because it
makes debugging very odd, and doesn't seem to help much with anything.

2 years ago* python.el (python-syntax-stringify): Extend comment about last change
Stefan Monnier [Tue, 21 Sep 2021 15:39:24 +0000 (11:39 -0400)]
* python.el (python-syntax-stringify): Extend comment about last change

2 years agoFix emoji-zwj.awk dolist
Robert Pluim [Tue, 21 Sep 2021 15:32:20 +0000 (17:32 +0200)]
Fix emoji-zwj.awk dolist

* admin/unidata/emoji-zwj.awk: Fix typo, the dolist should end
after the first set-char-table-range.

2 years agoMake recent dired tests check for external executables
Glenn Morris [Tue, 21 Sep 2021 15:14:01 +0000 (08:14 -0700)]
Make recent dired tests check for external executables

* test/lisp/dired-aux-tests.el (dired-test-bug47058-tar)
(dired-test-bug47058-zip): Add skip conditions.

2 years agoRename project-remove-known-project to project-forget-project
Dmitry Gutov [Tue, 21 Sep 2021 13:07:39 +0000 (16:07 +0300)]
Rename project-remove-known-project to project-forget-project

* doc/emacs/maintaining.texi (Managing Projects): Ditto.

* etc/NEWS: Update accordingly.

* lisp/progmodes/project.el (project-forget-project):
Rename from 'project-remove-known-project', for consistency with
'project-remember-project' (discussed in bug#50297).

2 years agoConsistently test alist keys with equal in map.el
Basil L. Contovounesios [Tue, 14 Sep 2021 23:17:26 +0000 (00:17 +0100)]
Consistently test alist keys with equal in map.el

* etc/NEWS: Announce new default behavior of map-elt and map-delete
on alists.

* lisp/emacs-lisp/map.el: Bump to version 3.2.
(map-elt): Test alist keys with equal by default.  Betray a little
bit more information in the docstring on which functions are used
for which map types.  (Bug#47368)
(map-put): Update docstring accordingly.
(map--plist-delete): Consistently test plist keys with eq.
(map-delete): Consistently test alist keys with equal.

* test/lisp/emacs-lisp/map-tests.el (test-map-elt-testfn): Update
for new map-elt behavior.
(test-map-put!-alist, test-map-delete-alist): New tests.

2 years agoRemove the emoji script overrides for U+2xxx codepoints
Robert Pluim [Tue, 21 Sep 2021 11:50:41 +0000 (13:50 +0200)]
Remove the emoji script overrides for U+2xxx codepoints

* admin/unidata/blocks.awk: Remove the overrides for U+261D, U+26F9,
U+270C..U+270D, and U+2764.  They don't belong in the emoji script.

2 years agoFix the UK flag sequence composition regexp
Robert Pluim [Tue, 21 Sep 2021 11:50:10 +0000 (13:50 +0200)]
Fix the UK flag sequence composition regexp

* admin/unidata/emoji-zwj.awk: Fix the regexp for UK flags.
Thanks to Mattias Engdegård <mattiase@acm.org> and his magic
regexp checker.

2 years agoSilence byte-compiler warning for network-stream-tests.el
Robert Pluim [Tue, 21 Sep 2021 08:20:10 +0000 (10:20 +0200)]
Silence byte-compiler warning for network-stream-tests.el

The api specifically requires a symbol here, so we can't just replace
nowait with nil.

* test/lisp/net/network-stream-tests.el
(open-gnutls-stream-old-api-wait): Add explicit value for nowait
to silence byte-compiler warning due to Bug#47080.

2 years agoAvoid double argument evaluation in vc-call macro
Basil L. Contovounesios [Sun, 19 Sep 2021 21:39:20 +0000 (22:39 +0100)]
Avoid double argument evaluation in vc-call macro

* lisp/vc/vc-hooks.el (vc-call): Ensure second argument is evaluated
only once (bug#50690).
* etc/NEWS (Change Logs and VC): Announce this change in behavior.

2 years agoMake syntax-ppss more accurate for Python triple quotes (bug#49518)
João Távora [Sun, 19 Sep 2021 10:42:20 +0000 (11:42 +0100)]
Make syntax-ppss more accurate for Python triple quotes (bug#49518)

By putting delimiter syntax on the last character of Python
triple-quoted strings, this makes syntax-ppss be more accurate.

Previously:

    emacs -Q something.py
    type two single quotes
    M-: (nth 3 (syntax-ppss))
    notice how the return value says you're outside a string, correctly
    type another quote
    M-: (nth 3 (syntax-ppss))
    notice how the return value says you're inside a string, correctly
    backspace the quote just entered
    M-: (nth 3 (syntax-ppss))
    notice how the return value says you're inside a string, incorrectly

With this patch the last step is corrected.  This helps things like
electric-pair-mode.  Also, the test
python-syntax-after-python-backspace now passes, again.

* lisp/progmodes/python.el (python-syntax-stringify): Put
delimiter syntax in "inner" of the surrouding triple quotes.

* test/lisp/progmodes/python-tests.el
(python-syntax-after-python-backspace): Passes again.

2 years agoExpand and improve electric-pair-mode and Python testing (bug#49518)
João Távora [Sun, 19 Sep 2021 16:08:41 +0000 (17:08 +0100)]
Expand and improve electric-pair-mode and Python testing (bug#49518)

In python-tests.el, the triple-quote pairing tests are passing
incorrectly, i.e. the auto-pairing functionality they purport to guard
isn't really working for users trying it interactively.  Added a new
failing test, soon to be fixed.

In electric-tests.el, added tests for Python, too.

* test/lisp/electric-tests.el (define-electric-pair-test): Also run
main tests for python-mode.  (pair-some-quotes-skip-others): Test
another slightly different pairing.

* test/lisp/progmodes/python-tests.el
(python-triple-double-quote-pairing): Rename from
python-triple-quote-pairing.
(python-triple-single-quote-pairing): New test.

2 years agoAdd docstring for 'electric-pair-p-s-i-f' and minor refactor
João Távora [Sun, 19 Sep 2021 15:16:31 +0000 (16:16 +0100)]
Add docstring for 'electric-pair-p-s-i-f' and minor refactor

Extract the "open newline between pairs behaviour" into its own
function, electric-pair-open-newline-between-pairs-psif.

* lisp/elec-pair.el (electric-pair-post-self-insert-function): Add
docstring.
(electric-pair-open-newline-between-pairs-psif): New function.
(electric-pair-mode): Add/remove electric-pair-open-newline-between-pairs-psif

2 years agoSpeed up test/lisp/electric-tests.el when run interactively
João Távora [Sun, 19 Sep 2021 09:25:36 +0000 (10:25 +0100)]
Speed up test/lisp/electric-tests.el when run interactively

'blink-paren-function' and its timers could sometimes interfere with
the tests and slow them down significantly.

* test/lisp/electric-tests.el (call-with-saved-electric-modes):
Bind blink-paren-function to nil.

2 years ago; Minor checkdoc fixes in url/*.el
Stefan Kangas [Tue, 21 Sep 2021 09:14:14 +0000 (11:14 +0200)]
; Minor checkdoc fixes in url/*.el

2 years agoFix whitespace-report window creation
Lars Ingebrigtsen [Tue, 21 Sep 2021 05:29:55 +0000 (07:29 +0200)]
Fix whitespace-report window creation

* lisp/whitespace.el (whitespace-display-window): Avoid creating
many buffers if called many times (bug#50716).

2 years agoUse `special-mode' for whitespace-report
Lars Ingebrigtsen [Tue, 21 Sep 2021 05:23:09 +0000 (07:23 +0200)]
Use `special-mode' for whitespace-report

* lisp/whitespace.el (whitespace-report-region): Use
`special-mode' instead of `fundamental-mode' (bug#50715).

2 years agoInhibit warning in mm-inline-wash-with-file from previous change
Lars Ingebrigtsen [Tue, 21 Sep 2021 05:16:37 +0000 (07:16 +0200)]
Inhibit warning in mm-inline-wash-with-file from previous change

* lisp/gnus/mm-view.el (mm-inline-wash-with-file): Inhibit warning
about previous lexical fixup.

2 years agoFix problems with non-ASCII non-encoded PGP names
Lars Ingebrigtsen [Tue, 21 Sep 2021 05:12:35 +0000 (07:12 +0200)]
Fix problems with non-ASCII non-encoded PGP names

* lisp/epg.el (epg-signature-to-string): User IDs may be
non-encoded, non-ASCII (bug#50706).

2 years agoFix typo in tex--prettify-symbols-alist
Lars Ingebrigtsen [Tue, 21 Sep 2021 04:48:44 +0000 (06:48 +0200)]
Fix typo in tex--prettify-symbols-alist

* lisp/textmodes/tex-mode.el (tex--prettify-symbols-alist): Fix
varsigma typo (bug#50710).

2 years agoFix lexical fallout in mm-inline-wash-with-file
Lars Ingebrigtsen [Tue, 21 Sep 2021 04:43:16 +0000 (06:43 +0200)]
Fix lexical fallout in mm-inline-wash-with-file

* lisp/gnus/mm-view.el (mm-inline-wash-with-file): This is only
called from the `links' handler, and it passes in `file' expecting
that to be dynamically bound.  Which is a very, very confusing
interface, but make that work again, anyway.

2 years agoMake dired-compress-file query for a directory to uncompress to
Michalis V [Tue, 21 Sep 2021 04:30:58 +0000 (06:30 +0200)]
Make dired-compress-file query for a directory to uncompress to

* lisp/dired-aux.el (dired-compress-file-suffixes): Specify the
directory in the tar targets.
(dired-uncompress-file): New function (bug#47058).  This asks what
directory to uncompress to.
(dired-compress-file): Use it.

2 years agoClear netrc cache in auth-source test
Lars Ingebrigtsen [Tue, 21 Sep 2021 03:59:11 +0000 (05:59 +0200)]
Clear netrc cache in auth-source test

* test/lisp/auth-source-tests.el
(auth-source-test-netrc-create-secret): Clear the netrc cache, too.

2 years agoOnly search netrc in the netrc tests
Lars Ingebrigtsen [Tue, 21 Sep 2021 03:28:40 +0000 (05:28 +0200)]
Only search netrc in the netrc tests

* test/lisp/auth-source-tests.el
(auth-source-test-netrc-create-secret): Only search netrc.

2 years agoRemove some last calls to Gnus group name encoding
Eric Abrahamsen [Tue, 21 Sep 2021 01:13:10 +0000 (18:13 -0700)]
Remove some last calls to Gnus group name encoding

This should have been part of cb12a84f2c

* lisp/gnus/gnus-msg.el (gnus-summary-resend-message-insert-gcc,
gnus-inews-do-gcc): Don't encode group names.

2 years ago; Mention it in NEWS too
Dmitry Gutov [Tue, 21 Sep 2021 01:01:21 +0000 (04:01 +0300)]
; Mention it in NEWS too

2 years agoNew command: project-find-dir
Dmitry Gutov [Tue, 21 Sep 2021 00:34:00 +0000 (03:34 +0300)]
New command: project-find-dir

* doc/emacs/maintaining.texi (Project File Commands):
Mention the new command and update the bindings information.

* lisp/progmodes/project.el (project-find-dir):
New command (bug#43153).
(project-prefix-map): Use 'd' as its binding.
Move 'project-dired' to 'D'.
(project-switch-commands):
Replace 'project-dired' with 'project-find-dir'.

3 years agoSupport for Unicode emoji sequences
Robert Pluim [Mon, 20 Sep 2021 10:41:15 +0000 (12:41 +0200)]
Support for Unicode emoji sequences

This covers both sequences using Zero-Width-Joiner codepoints and
those without. Bug#39799, I hope.

* .gitignore: Add emoji-zwj.el
* admin/notes/unicode: Add emoji-zwj-sequences.txt and
emoji-sequences.txt references.  Describe how to test after updating
to a newer Unicode version.
* admin/unidata/Makefile.in (all): add emoji-zwj.el as a dependency.
(emoji-zwj.el): Add target plus rules for building.
(gen-clean): Add emoji-zwj.el.
* admin/unidata/README: Add emoji-zwj-sequences.txt and
emoji-sequences.txt references.
* admin/unidata/blocks.awk: Force emoji script to be used for certain
codepoints that are used by the Unicode sequences.
* admin/unidata/emoji-sequences.txt: New file.
* admin/unidata/emoji-zwj-sequences.txt: New file.
* admin/unidata/emoji-zwj.awk: New file.  Derives
composition-function-table rules from emoji-zwj-sequences.txt, plus
hardcodes some derived manually from emoji-sequences.txt.
* etc/NEWS: Announce change.
* lisp/international/characters.el: Load the generated emoji-zwj.el
* src/Makefile.in (emoji-zwj): New target.
(temacs): Add emoji-zwj as a dependency.

3 years agoNo longer raise error when http authentication failed
Jonas Bernoulli [Thu, 16 Sep 2021 18:24:30 +0000 (20:24 +0200)]
No longer raise error when http authentication failed

* lisp/url/url-http.el (url-http-handle-authentication): Return t
instead of raising an error, instructing the caller to invoke the
request specific error handler (bug#50511).

3 years ago; admin/unidata/README: remove mistaken addition of local file
Glenn Morris [Mon, 20 Sep 2021 17:47:02 +0000 (10:47 -0700)]
; admin/unidata/README: remove mistaken addition of local file

3 years agoAdd a note about testing out-of-tree builds
Robert Pluim [Mon, 20 Sep 2021 15:18:40 +0000 (17:18 +0200)]
Add a note about testing out-of-tree builds

* CONTRIBUTE: Ask contributors to test out-of-tree builds when
making build system changes.

3 years agoBase emoji script membership on Emoji_Presentation
Robert Pluim [Sun, 19 Sep 2021 19:07:36 +0000 (21:07 +0200)]
Base emoji script membership on Emoji_Presentation

The Emoji property describes which codepoints can be displayed as
emoji, but Emoji_Presentation governs which are displayed as emoji by
default.

* admin/notes/unicode: Adjust check-emoji-coverage to look in the
Emoji_Presentation sections of emoji-data.txt
* admin/unidata/blocks.awk: Assign emoji script using the
Emoji_Presentation section.

3 years ago; admin/unidata/README: sort entries
Glenn Morris [Mon, 20 Sep 2021 15:43:10 +0000 (08:43 -0700)]
; admin/unidata/README: sort entries

3 years ago; admin/unidata/README: update file dates
Glenn Morris [Mon, 20 Sep 2021 15:41:56 +0000 (08:41 -0700)]
; admin/unidata/README: update file dates

I'm not sure how useful it is to keep this information in the README.
Also, add missing EastAsianWidth.txt.

3 years agoFix VC repo URL detection in bug-reference-mode
Basil L. Contovounesios [Sun, 19 Sep 2021 20:13:17 +0000 (21:13 +0100)]
Fix VC repo URL detection in bug-reference-mode

* lisp/progmodes/bug-reference.el (bug-reference-try-setup-from-vc):
Pass file or directory name in question as the first argument to the
backend's repository-url implementation (bug#50689).  Use when-let
and seq-some to flatten nested conditionals.

3 years agoFix assertion violation with zero-width :box attributes
Eli Zaretskii [Mon, 20 Sep 2021 12:22:07 +0000 (15:22 +0300)]
Fix assertion violation with zero-width :box attributes

* src/xfaces.c (merge_face_ref): Don't allow :box attribute with a
zero value.  (Bug#50699)

3 years agoRemove superfluous skip in auth-source-tests.el
Michael Albinus [Mon, 20 Sep 2021 08:21:30 +0000 (10:21 +0200)]
Remove superfluous skip in auth-source-tests.el

* test/lisp/auth-source-tests.el
(auth-source-test-netrc-create-secret): Remove superfluous skip.

3 years agoDump with `lexical-binding` bound to nil
Mattias Engdegård [Sun, 19 Sep 2021 18:07:11 +0000 (20:07 +0200)]
Dump with `lexical-binding` bound to nil

* lisp/loadup.el (dump-mode): Temporarily bind `lexical-binding` to
nil while dumping.  Otherwise, it will be t in Emacs by default
and that is not our intention (yet).

3 years ago; * src/keyboard.c (Frecursive_edit): Minor fixes of the doc string.
Eli Zaretskii [Mon, 20 Sep 2021 07:50:53 +0000 (10:50 +0300)]
; * src/keyboard.c (Frecursive_edit): Minor fixes of the doc string.

3 years ago* lisp/tab-bar.el (tab-bar-new-tab): Add optional arg 'from-number'.
Juri Linkov [Mon, 20 Sep 2021 07:20:32 +0000 (10:20 +0300)]
* lisp/tab-bar.el (tab-bar-new-tab): Add optional arg 'from-number'.

(tab-bar-mouse-context-menu): Use tab-number as an arg for
'tab-bar-duplicate-tab'.
(tab-bar-duplicate-tab): Add optional arg 'from-number'.

3 years agoAdd support for url-retrieve-synchronously to eww-retrieve-command (bug#50680)
Juri Linkov [Mon, 20 Sep 2021 07:16:09 +0000 (10:16 +0300)]
Add support for url-retrieve-synchronously to eww-retrieve-command (bug#50680)

* doc/misc/eww.texi (Advanced): Mention url-retrieve-synchronously
for eww-retrieve-command.

* lisp/net/eww.el (eww-retrieve-command): Add choice 'sync' for
url-retrieve-synchronously.
(eww-retrieve): Use value 'sync' for url-retrieve-synchronously.
(eww-isearch-next-buffer): Let-bind eww-retrieve-command to 'sync'.

3 years agoImprove documentation of exiting recursive editing
Miha Rihtaršič [Mon, 20 Sep 2021 06:00:08 +0000 (08:00 +0200)]
Improve documentation of exiting recursive editing

* doc/lispref/commands.texi (Recursive Editing): Mention what happens
when throwing a string or any other value to 'exit.
* src/keyboard.c (Frecursive_edit): Document throwing a function
to 'exit (bug#49700).

3 years agoRefactor minibuffer aborting
Miha Rihtaršič [Mon, 20 Sep 2021 05:59:29 +0000 (07:59 +0200)]
Refactor minibuffer aborting

* lisp/minibuffer.el (minibuffer-quit-recursive-edit): New optional
argument to specify how many levels of recursion to quit.

* src/eval.c (internal_catch): Remove special handling of 'exit
tag (bug#49700).
* src/minibuf.c (Fabort_minibuffers): Use
minibuffer-quit-recursive-edit to quit multiple levels of minibuffer
recursion.

3 years agoFix dolist-with-progress-reporter behaviour
Philip Kaludercic [Mon, 12 Jul 2021 15:26:43 +0000 (17:26 +0200)]
Fix dolist-with-progress-reporter behaviour

* subr.el (dolist-with-progress-reporter): Use the length of list
  argument as maximal value the reporter with reach

3 years agoRevert "Flag checkdoc-symbol-words as a :safe variable"
Stefan Kangas [Sun, 19 Sep 2021 20:28:46 +0000 (22:28 +0200)]
Revert "Flag checkdoc-symbol-words as a :safe variable"

There was no need for this change, as this variable was already marked
as :safe.

This reverts commit 222a7a1a8afdf6921e5981133c605c2d695e9281.

3 years agoAvoid segfaults due to 'bug-reference-mode'
Eli Zaretskii [Sun, 19 Sep 2021 18:39:18 +0000 (21:39 +0300)]
Avoid segfaults due to 'bug-reference-mode'

* src/xdisp.c (handle_fontified_prop): Set the frame's
inhibit_clear_image_cache flag around calls to
'fontification-functions', to avoid Lisp triggering the clearing
of image and/or face caches behind redisplay's back.  (Big#50571)

3 years agoFix blocks.awk wrt to Emoji characters
Eli Zaretskii [Sun, 19 Sep 2021 18:33:02 +0000 (21:33 +0300)]
Fix blocks.awk wrt to Emoji characters

* admin/unidata/blocks.awk: Fix emoji-data.txt processing for
older Awks.

3 years agoDo not save empty passwords in auth-source-search
Michael Albinus [Sun, 19 Sep 2021 17:59:05 +0000 (19:59 +0200)]
Do not save empty passwords in auth-source-search

* lisp/auth-source.el (auth-source-netrc-create)
(auth-source-secrets-create): Set :save-function only for non
empty passwords.

* lisp/net/tramp.el (tramp-read-passwd): Don't save empty passwords.

* test/lisp/auth-source-tests.el
(auth-source-test-secrets-create-secret): Adapt test.
(auth-source-test-netrc-create-secret): New test.

3 years agoBe explicit about missing sections in eshell manual
Stefan Kangas [Sun, 19 Sep 2021 16:33:35 +0000 (18:33 +0200)]
Be explicit about missing sections in eshell manual

* doc/misc/eshell.texi (Writing a module, Module testing)
(Directory handling, Key rebinding, Smart scrolling)
(Terminal emulation): Explicitly say that these sections remain to
be written.  (Bug#49306)

3 years ago* lisp/progmodes/elisp-mode.el (elisp-context-menu): Improve menu items.
Juri Linkov [Sun, 19 Sep 2021 16:21:27 +0000 (19:21 +0300)]
* lisp/progmodes/elisp-mode.el (elisp-context-menu): Improve menu items.

3 years agoFix build with native compilation on Cygwin
Ken Brown [Sat, 18 Sep 2021 18:03:41 +0000 (14:03 -0400)]
Fix build with native compilation on Cygwin

* src/Makefile.in (emacs$(EXEEXT)) [CYGWIN]: Rebase the *.eln
files after they are all created, to avoid fork problems later
in the build.  (Bug#50666)

3 years ago; Fix typo in package.el doc string
王滋涵 Zephyr Wang [Sun, 19 Sep 2021 15:39:26 +0000 (17:39 +0200)]
; Fix typo in package.el doc string

* lisp/emacs-lisp/package.el (package-archive-column-width): Fix
copy-paste in doc string (bug#50678).

Copyright-paperwork-exempt: yes