* lisp/emacs-lisp/copyright.el (copyright-regexp)
(copyright-years-regexp, copyright-update-year)
(copyright-fix-years): Also include en dash.
* test/lisp/emacs-lisp/copyright-tests.el (copyright-tests--data): New
test cases.
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'.
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.
* test/lisp/progmodes/project-tests.el (project-tests--trivial)
(project-root, project-ignores): New test project type.
(project-ignores): New unit test.
* 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.
* 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.
* 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.
* 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.
* 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.
This doesn't work on Windows. Instead, use the EMACS_TEST_DIRECTORY
environment variable to find the BPF files.
* test/src/emacs-tests.el (emacs-tests--lib-src): New constant.
(emacs-tests/seccomp/allows-stdout)
(emacs-tests/seccomp/forbids-subprocess)
(emacs-tests/bwrap/allows-stdout): Use it.
* 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.
* 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'.
* 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).
* 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).
* 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.
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.
* test/src/comp-tests.el (comp-test-src,
comp-test-dyn-src) (comp-tests-bootstrap, comp-tests-pure,
comp-test-src): Use `expand-file-name' in place of `concat'.