1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-04 06:31:13 -08:00
Commit graph

2376 commits

Author SHA1 Message Date
Philipp Stephani
63e4ed1c8f Recreate symptom of Bug#42701.
The fix to Bug#48489 (commit 9676d41b83)
has masked the symptom of Bug#42701 for 'if-let'.  Create a helper
macro that still exemplifies the bug.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests--duplicate-symbol-backtrack): New helper macro.
(edebug-tests-duplicate-symbol-backtrack): Use it instead of 'if-let'.
2021-05-18 18:43:11 +02:00
Mattias Engdegård
be9db2b94d Fix pcase 'rx' patterns with a single named submatch (bug#48477)
pcase 'rx' patterns with a single named submatch, like

  (rx (let x "a"))

would always succeed because of an over-optimistic transformation.
Patterns with 0 or more than 1 named submatches were not affected.

Reported by Philipp Stephani.

* lisp/emacs-lisp/rx.el (rx--pcase-macroexpander):
Special case for a single named submatch.
* test/lisp/emacs-lisp/rx-tests.el (rx-pcase): Add tests.
2021-05-18 12:34:30 +02:00
Philipp Stephani
e477b5ee12 Add a unit test to reproduce Bug#48471.
* test/lisp/progmodes/project-tests.el (project-tests--trivial)
(project-root, project-ignores): New test project type.
(project-ignores): New unit test.
2021-05-17 10:43:54 +02:00
Dario Gjorgjevski
069c2fb17a Add more completion tests
* test/lisp/minibuffer-tests.el (completion--pcm-score)
(completion--pcm-first-difference-pos): New helpers.
(completion-pcm-test-1, completion-pcm-test-2)
(completion-pcm-test-3, completion-pcm-test-4)
(completion-pcm-test-5, completion-pcm-test-6)
(completion-substring-test-1, completion-substring-test-2)
(completion-substring-test-3, completion-substring-test-4)
(completion-flex-test-1, completion-flex-test-2)
(completion-flex-test-3): New tests (bug#42149)
2021-05-16 15:50:41 +02:00
Michael Albinus
4f510f63a8 Fix handling of stderr buffer in Tramp's make-process (Bug#47861)
* lisp/net/tramp-sh.el (tramp-sh-handle-make-process):
Reimplement stderr buffer handling.  (Bug#47861)
(tramp-maybe-open-connection): Improve traces.

* test/lisp/net/tramp-tests.el (tramp-test30-make-process):
Rework for stderr buffer.
2021-05-16 12:08:09 +02:00
Dmitry Gutov
b6e0b66e0e Update CSS completion tests
* test/lisp/textmodes/css-mode-tests.el (css-test-complete-pseudo-class)
(css-test-complete-pseudo-element): Update the tests for recent changes.
2021-05-15 23:46:30 +03:00
Michael Albinus
c9773379c1 Improve Tramp traces
* lisp/net/tramp-cmds.el (tramp-list-tramp-buffers):
List also trace buffers.

* lisp/net/tramp.el (tramp-buffer-name):
Add `tramp-suppress-trace' property.
(tramp-get-debug-file-name): Fix docstring.
(tramp-trace-buffer-name): New defun.
(tramp-trace-functions): New defvar.
(tramp-debug-message): Obey also `tramp-trace-functions'.

* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case):
Handle trace buffer accordingly.
2021-05-13 16:46:17 +02:00
Eli Zaretskii
98e5639c3c Fix the tests for 'string-limit'
* test/lisp/emacs-lisp/subr-x-tests.el (subr-string-limit-coding):
Fix the expected results of string-limit when encoding with
UTF-16.  Add tests for UTF-8 with BOM.  (Bug#48324)

* lisp/emacs-lisp/subr-x.el (string-limit): Add FIXME comment
about the current implementation, which is faulty by design.
2021-05-12 16:41:03 +03:00
Jim Porter
d2034296a9 Abbreviate rgrep command on MS Windows (bug#48302)
* lisp/progmodes/grep.el (grep-mode-font-lock-keywords):
Adapt regexp to match MS Windows-style shell-quoting.

* test/lisp/progmodes/grep-tests.el: New file.
2021-05-12 10:47:07 +02:00
Mauro Aranda
779c615f33 Avoid saving session customizations in the custom-file
* lisp/custom.el (custom-theme-recalc-variable): Only stash theme
settings for void variables.
(custom-declare-variable): After initializing a variable, unstash a
theme setting, if present.
(disable-theme): When disabling a theme, maybe unstash a theme
setting.

* test/lisp/custom-resources/custom--test-theme.el: Add two settings
for testing the fix.
2021-05-10 13:33:32 +02:00
Lars Ingebrigtsen
5bedbe6b1d Always heed the `lexical-binding' local variable
* doc/lispref/variables.texi (File Local Variables): Document
`permanently-enabled-local-variables'.

* lisp/files.el (enable-local-variables): Mention the new variable.
(set-auto-mode): Always call `hack-local-variables'.
(hack-local-variables): Factor out the variable gathering into its
own function, and respect the new variable (bug#47843).
(hack-local-variables--find-variables): Factored out from
`hack-local-variables'.
(permanently-enabled-local-variables): New variable.
2021-05-10 12:40:11 +02:00
Michael Albinus
515cac0dc0 Cleanups for Tramp out-of-band methods on MS Windows
* doc/misc/tramp.texi (Frequently Asked Questions):
tramp-use-ssh-controlmaster-options is nil on MS Windows.

* lisp/net/tramp.el (tramp-unquote-shell-quote-argument): Revert previous
change, it worked (not as expected but) properly.

* test/lisp/net/tramp-tests.el (tramp-test17-dired-with-wildcards):
Don't skip on MS Windows.
(tramp--test-windows-nt-and-scp-p): Remove.
(tramp--test-special-characters): Skip for out-of-band methods on
MS Windows, sometimes.
2021-05-09 15:37:37 +02:00
Michael Albinus
9457d4f20f Tramp: Fix file name quoting on MS Windows
* lisp/net/tramp-sh.el (tramp-make-copy-program-file-name):
Use `tramp-unquote-shell-quote-argument'.

* lisp/net/tramp.el (tramp-unquote-shell-quote-argument):
Adapt for MS Windows.

* test/lisp/net/tramp-tests.el (tramp--test-special-characters):
Adapt for MS Windows.
2021-05-07 17:25:49 +02:00
Michael Albinus
70bfcbcdd3 Tune Tramp traces
* doc/misc/tramp.texi (Traces and Profiles): Describe call traces.

* lisp/net/tramp-compat.el: Add `tramp-suppress-trace' property for all
functions.

* lisp/net/tramp.el (tramp-verbose): Adapt docstring.
(tramp-file-name-method, tramp-file-name-user)
(tramp-file-name-domain, tramp-file-name-host)
(tramp-file-name-port, tramp-file-name-localname)
(tramp-file-name-hop, tramp-file-name-user-domain)
(tramp-file-name-host-port, tramp-file-name-port-or-default)
(tramp-tramp-file-p, tramp-find-method, tramp-find-user)
(tramp-find-host, tramp-dissect-file-name)
(tramp-dissect-hop-name, tramp-debug-buffer-name)
(tramp-debug-outline-level, tramp-get-debug-buffer)
(tramp-get-debug-file-name, tramp-read-passwd)
(tramp-clear-passwd): Add `tramp-suppress-trace' property.
(tramp-debug-message): Activate call traces.

* test/lisp/net/tramp-tests.el (tramp--test-instrument-test-case): Simplify.
2021-05-07 13:04:28 +02:00
Mattias Engdegård
8b7495a722 ; * test/lisp/image-tests.el: fix previous commit 2021-05-06 17:27:14 +02:00
Michael Albinus
b6f5da3240 In Tramp, use scp "-T" argument if available
* lisp/net/tramp-sh.el (tramp-scp-strict-file-name-checking): New defvar.
(tramp-scp-strict-file-name-checking): New defun.
(tramp-do-copy-or-rename-file-out-of-band): Use it.
(tramp-methods) <scp, scpx>: Use "%x".
(tramp-make-copy-program-file-name): Use local quoting.
(tramp-sh-handle-make-process): Don't call
`tramp-maybe-open-connection', this happens implicitly by
`tramp-send-command'.

* lisp/net/tramp.el (tramp-methods): Adapt docstring.

* test/lisp/net/tramp-tests.el (tramp-test40-special-characters)
(tramp-test40-special-characters-with-stat)
(tramp-test40-special-characters-with-perl)
(tramp-test40-special-characters-with-ls): Don't skip for
`tramp--test-windows-nt-and-scp-p'.
2021-05-06 17:15:30 +02:00
Mattias Engdegård
c3d029c923 Don't fail image-tests if JPEG format isn't compiled in
* test/lisp/image-tests.el (image-type/from-filename):
Make jpeg test conditional.  Test pbm (always present).
2021-05-06 15:53:57 +02:00
Matt Armstrong
49aebfe93c Add tests for `map-elt'
* test/lisp/emacs-lisp/map-tests.el: Add (failing) tests for `map-elt'
(bug#47572).
2021-05-06 13:32:04 +02:00
Harald Jörg
9e0fc5321b cperl-mode: Eliminate bad interpretation of ?foo?
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Delete
?? from the allowed bare regexp delimiters.
(cperl-short-docs): Delete ?...? from the documentation.

* test/lisp/progmodes/cperl-mode-tests.el (cperl-bug-47598):
Add tests for good, bad, and ambiguous use of ? as regex
delimiter (bug#47598).
2021-05-06 12:33:40 +02:00
Andrea Corallo
40736357b8 Rename feature nativecomp' into native-compile'
* test/src/comp-tests.el : Rename feature `nativecomp' into
	`native-compile'.
	* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun): Likewise.
	* src/comp.c (syms_of_comp): Likewise.
	* lisp/startup.el (normal-top-level): Likewise.
	* lisp/loadup.el: Likewise.
	* lisp/help.el (help-function-arglist): Likewise.
	* lisp/emacs-lisp/package.el (package--native-compile-async)
	(package--delete-directory): Likewise.
	* lisp/emacs-lisp/nadvice.el (advice--add-function): Likewise.
	* lisp/emacs-lisp/comp.el (comp-ensure-native-compiler): Likewise.
	* lisp/emacs-lisp/advice.el (ad-add-advice): Likewise.
2021-05-05 22:27:29 +02:00
Andrea Corallo
31f64d862b * test/lisp/help-fns-tests.el (help-fns-test-lisp-defsubst): Fix (bug#48221). 2021-05-05 17:12:54 +02:00
Andrea Corallo
3481903d13 * Better identify native compiler presence in two tests.
* test/lisp/help-fns-tests.el (help-fns-test-lisp-defun)
	(help-fns-test-lisp-defsubst): Better identify native-comp
	presence.
2021-05-05 17:01:56 +02:00
Michael Albinus
824d1a57ec Fix unquoting of file names in subprocesses (Bug#48177)
* lisp/files.el (file-name-non-special):
Improve handling of inhibit-file-name-handlers.

* src/callproc.c (Fcall_process, call_process): Unquote infile,
error_file and output_file.  (Bug#48177)

* test/lisp/files-tests.el (files-tests-file-name-non-special--subprocess)
(files-tests-file-name-non-special-file-name-all-completions)
(files-tests-file-name-non-special-file-name-completion): Adapt tests.
2021-05-03 16:52:18 +02:00
Peter Oliver
a9fc30e6c2 Add tests
* test/lisp/progmodes/ruby-mode-tests.el (ruby-with-temp-file): New helper.
(ruby--set-encoding-when-ascii, ruby--set-encoding-when-utf8)
(ruby--set-encoding-when-latin-15): Tests for the previous commit (bug#48043).
2021-04-28 05:18:40 +03:00
Andrea Corallo
4e1e0b9dec Have `comp-cstr-intersection-no-mem' intersect pos neg value sets
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-intersection-no-mem):
	intersect pos and neg value sets
	* test/lisp/emacs-lisp/comp-cstr-tests.el
	(comp-cstr-typespec-tests-alist): Add two tests and fix some
	test number.
2021-04-27 22:58:41 +02:00
Mattias Engdegård
7133a67dcd Calc: control digits after decimal point (bug#47302)
Calc normally displays a trailing decimal point for floats with no
fractional part, like '12.'. Some uses require at least one digit
after the point; add the governing variable calc-digit-after-point.

* lisp/calc/calc.el (calc-digit-after-point): New variable.
(math-format-number): Use it.
* test/lisp/calc/calc-tests.el (calc-display-digit-after-point):
New test.
2021-04-27 18:10:01 +02:00
Lars Ingebrigtsen
bd5aebce03 Fix failing subr test
* test/lisp/subr-tests.el (subr-tests-bug22027): Fix mocked
signature of `read-string' (bug#48022).
2021-04-27 01:31:52 +02:00
Lars Ingebrigtsen
e1562bbab3 Fix failing auth-source test
* test/lisp/auth-source-tests.el
(auth-source-test-secrets-create-secret): Fix test failing because
the mocked `read-string' had the wrong interface.
2021-04-27 01:27:58 +02:00
Andrea Corallo
edf42af2cc Rework where `comp-ctxt' is defined.
* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Remove
	`comp-ctxt' definition.
	* lisp/emacs-lisp/comp.el (comp-ctxt): Likewise.
	* lisp/emacs-lisp/comp-cstr.el (comp-ctxt): Define it here.
2021-04-26 23:01:39 +02:00
Andrea Corallo
a390a4965f * Fix comp-cstr tests for vanilla build (bug#48021)
* test/lisp/emacs-lisp/comp-cstr-tests.el (comp-ctxt): Fix tests
	for vanilla build (bug#48021)
2021-04-26 16:52:10 +02:00
Glenn Morris
b7c22fab7d ; Add 2021 to copyright years 2021-04-25 17:24:48 -07:00
Andrea Corallo
289000eee7 Merge branch 'feature/native-comp' into into trunk 2021-04-25 20:06:22 +02:00
Daniel Mendler
86d1b4d88f (completion-all-sorted-completions): Fix history use with boundaries
Preprocess the history (and the default) through the new function
`minibuffer--sort-preprocess-history` to filter out the completion
base for completion tables with boundaries (in particular the file
completion table).

* lisp/minibuffer.el (minibuffer--sort-preprocess-history_: New function.
(completion-all-sorted-completions): Use it.
* test/lisp/minibuffer-tests.el (completion-all-sorted-completions):
Add tests for various combinations of with/without history/base/default.
2021-04-24 18:15:24 -04:00
Philipp Stephani
3806d2168b Fix small bug in 'completion-table-subvert'.
Even for a trivial underlying completion table (where the 'boundaries'
action returns nil), we need to provide nontrivial boundaries so that
they match the behavior of 'all-completions'.

* lisp/minibuffer.el (completion-table-subvert): Return boundaries
even for trivial underlying completion table.
* test/lisp/minibuffer-tests.el (completion-table-subvert-test):
Amend unit test to also test boundaries.  While there, also test
the other completion functions.
2021-04-23 12:52:51 +02:00
Harald Jörg
c4c9a60c13 cperl-mode: Avoid abbrev expansion in variable names
* lisp/progmodes/cperl-mode.el (cperl-electric-else): Don't expand
scalar variables like '$continue' as keywords.  (Bug#47902)
* test/lisp/progmodes/cperl-mode-tests.el
(cperl-test-hyperactive-electric-else): Verify that keywords are
expanded but variable names aren't.
2021-04-20 22:47:13 +02:00
Andrea Corallo
b5c76530fa Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-19 18:46:50 +02:00
Stefan Kangas
0a4dc70830 ; Normalize and add missing first and last lines 2021-04-19 12:21:01 +02:00
Philipp Stephani
454fd39782 ; * test/lisp/progmodes/xref-tests.el: Add footer. 2021-04-18 22:05:59 +02:00
Philipp Stephani
652b0f4c74 Factor out a helper macro to create a temporary directory.
This is a useful abstraction, and saves a few levels of indentation in
the test body.

* test/lisp/progmodes/project-tests.el
(project-tests--with-temporary-directory): New helper macro.
(project/quoted-directory): Use it.
2021-04-18 21:59:25 +02:00
Philipp Stephani
6ebc6e12cf Add quoted filename support to 'project-find-regexp' (Bug#47799).
This is only a band-aid; it would be better to fix xref.el to work
with quoted filenames as well.

* lisp/progmodes/project.el (project--find-regexp-in-files): Unquote
filenames before passing them to 'xref-matches-in-files'.
* test/lisp/progmodes/project-tests.el (project/quoted-directory):
Also test 'project-find-regexp'.
2021-04-18 21:59:25 +02:00
Philipp Stephani
55b22bff6d Extend project test so that 'project-current' works.
* test/lisp/progmodes/project-tests.el (project/quoted-directory):
Verify that 'project-current' returns the right project.
2021-04-18 21:59:25 +02:00
Philipp Stephani
d91e1a5701 Skip a unit test that requires an external program if necessary.
* test/lisp/progmodes/project-tests.el (project/quoted-directory):
Skip if the 'find' program isn't available.  The 'project-files'
function uses 'find' to obtain the list of project files.
2021-04-18 21:59:25 +02:00
Philipp Stephani
157bfc1812 Improve project support for quoted directory names (Bug#47799)
* lisp/progmodes/project.el (project--files-in-directory): Unquote
directory name before passing it to 'find'.
(project--remote-file-names): Requote local filenames if the original
directory is quoted.
* test/lisp/progmodes/project-tests.el (project/quoted-directory): New
unit test.
2021-04-15 18:41:04 +02:00
Mattias Engdegård
7893945cc8 Add condition-case success handler (bug#47677)
Allow a condition-case handler on the form (:success BODY) to be
specified as the success continuation of the protected form, with
the specified variable bound to its result.

* src/eval.c (Fcondition_case): Update the doc string.
(internal_lisp_condition_case): Implement in interpreter.
(syms_of_eval): Defsym :success.
* lisp/emacs-lisp/bytecomp.el (byte-compile-condition-case):
Implement in byte-compiler.
* lisp/emacs-lisp/cl-macs.el (cl--self-tco): Allow self-TCO
from success handler.
* doc/lispref/control.texi (Handling Errors): Update manual.
* etc/NEWS: Announce.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases)
(bytecomp-condition-case-success):
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs--labels):
Add test cases.
2021-04-15 15:41:13 +02:00
Michael Albinus
8aaf13eae6 Rearrange argument handling in Tramp scp calls.
* lisp/net/tramp-sh.el (tramp-do-copy-or-rename-file-out-of-band):
Use `start-process' instead of `start-process-shell-command'.
(tramp-make-copy-program-file-name): Do not quote `localname'.

* test/lisp/net/tramp-tests.el (tramp-method-out-of-band-p): Declare.
(tramp--test-windows-nt-and-batch-p)
(tramp--test-windows-nt-and-pscp-psftp-p): Remove, and also all callees.
(tramp--test-windows-nt-and-out-of-band-p)
(tramp--test-windows-nt-and-scp-p): New defuns.
(tramp-test17-dired-with-wildcards)
(tramp-test40-special-characters)
(tramp-test40-special-characters-with-stat)
(tramp-test40-special-characters-with-perl)
(tramp-test40-special-characters-with-ls, tramp-test41-utf8)
(tramp-test41-utf8-with-stat, tramp-test41-utf8-with-perl)
(tramp-test41-utf8-with-ls): Use them.
2021-04-14 13:25:36 +02:00
Andrea Corallo
b064ddd3f6 Merge remote-tracking branch 'savannah/master' into native-comp 2021-04-13 12:06:23 +02:00
Andrea Corallo
2d23f19e7d * Fix two comp-cstr tests
* test/lisp/emacs-lisp/comp-cstr-tests.el
	(comp-cstr-typespec-tests-alist): Fix test 53 70.
2021-04-13 12:05:33 +02:00
Eli Barzilay
686c366f8a Fix calculator-string-to-number yet again (bug#47694)
* lisp/calculator.el (calculator-string-to-number):
The last bugfix changed the code to just blindly replace ".e".  This
has some minor problems like making "-." parse as 0.0 instead of -0.0,
and ".1.e1" is parsed as 1 instead of 0.1.  Instead, replace the first
"." that is followed by a non-digit with ".0".  Since this has had
several problems over the years, add some tests too.  (Also, restore
the original if-indentation style.)
2021-04-11 14:00:09 +02:00
Mattias Engdegård
01a513bf0b Fix typo in cconv
* lisp/emacs-lisp/cconv.el (cconv-convert): Typo.
* test/lisp/emacs-lisp/bytecomp-tests.el (bytecomp-tests--test-cases):
Add test case.
2021-04-11 12:41:21 +02:00
Philipp Stephani
53dfd85a7f Edebug: Disable backtracking when hitting a &define keyword.
Edebug doesn't deal well with backtracking out of definitions, see
Bug#41988.  Rather than trying to support this rare situation (e.g. by
implementing a multipass parser), prevent it by adding an implicit
gate.

* lisp/emacs-lisp/edebug.el (edebug--match-&-spec-op): Disable
backtracking when hitting a &define keyword.

* test/lisp/emacs-lisp/edebug-tests.el
(edebug-tests-duplicate-&define): New unit test.
(edebug-tests--duplicate-&define): New helper macro.

* doc/lispref/edebug.texi (Backtracking): Mention &define in the list
of constructs that disable backtracking.

* etc/NEWS: Document new behavior.
2021-04-10 18:19:49 +02:00