The previous fix introduced a regression in the case when there's only a
single line in the block comment. In that case we don't want to add a
start at the second line:
/* foo foo foo */ should => /* foo foo
foo */
rather than /* foo foo
* foo */
This commit fixes that.
* lisp/progmodes/c-ts-common.el:
(c-ts-common--fill-block-comment): Don't mask the /*.
(c-ts-common--adaptive-fill-prefix): New function.
(c-ts-common-comment-setup): Don't set adaptive-regexp, change
adaptive-fill-first-line-regexp to work with the new
adaptive-fill-function.
* test/lisp/progmodes/c-ts-mode-resources/filling.erts: New tests
See bug#72220.
* lisp/eshell/esh-cmd.el (eshell-with-handles): New macro...
(eshell-commands): ... use it.
(eshell-with-copied-handles): Remove STEAL-P and allow multiple body
forms (this is an incompatible change, but the macro is currently
internal despite the name).
(eshell-parse-command, eshell-do-pipelines)
(eshell-do-pipelines-synchronously, eshell--invoke-command-directly-p):
Remove handle stealing.
(eshell-structure-basic-command, eshell-do-command)
(eshell-lisp-command): Remove 'eshell-close-handles'.
(eshell-protect): Make obsolete.
(eshell-rewrite-for-command, eshell-rewrite-while-command)
(eshell-rewrite-if-command, (eshell-parse-pipeline): Remove
'eshell-protect'.
* lisp/eshell/esh-io.el (eshell-duplicate-handles): Make STEAL-P
obsolete.
* lisp/eshell/esh-proc.el (eshell-gather-process-output): Call
'eshell-protect-handles' one more time. Remove 'eshell-close-handles'.
* lisp/eshell/esh-var.el (eshell-parse-variable-ref): Reimplement
$<COMMAND> form using 'eshell-with-handles'.
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/command-not-found/pipeline): New test.
* test/lisp/eshell/em-tramp-tests.el
(em-tramp-test/should-replace-command): Adjust check for
'eshell-with-copied-handles'.
* lisp/progmodes/cperl-mode.el (cperl-find-pods-heres): Prevent a
movement of point from bleeding into a following clause.
* test/lisp/progmodes/cperl-mode-tests.el (cperl-test-bug-72296):
Add a test for the flip-flop operator with code from the report.
* src/data.c (set_internal): Signal error if a BLV with a
redirect or a forwarded symbol is being unbound.
* test/src/data-tests.el (binding-test-makunbound-built-in): New
test.
Previously, the exit info in Eshell was that of the last command that
finished, rather than the last command in a pipeline.
* lisp/eshell/esh-cmd.el (eshell-exec-lisp)
(eshell-lisp-command): Check whether the command is being piped.
* lisp/eshell/esh-proc.el (eshell-gather-process-output): Record whether
the command is being piped...
(eshell-sentinel): ... and do the right thing with that info.
* test/lisp/eshell/esh-proc-tests.el
(esh-proc-test/sigpipe-exits-process): Check the exit status to ensure
we don't report the first process's SIGPIPE exit.
* lisp/eshell/esh-proc.el (eshell/kill): Fix handling of commands like
"kill 123". Use REMOTE when signalling PIDs in remote directories.
Signal using process objects when possible. Report errors when failing
to signal.
* test/lisp/eshell/esh-proc-tests.el (esh-proc-test/kill/process-id)
(esh-proc-test/kill/process-object): New tests (bug#72013).
Now, we use the 'eshell-deferrable' wrapper to wrap a form that returns
a process (or list thereof). This improves upon the old method, which
failed to handle 'eshell-replace-command' correctly. In that case,
Eshell would fail to unmark commands as deferrable when necessary
(e.g. for commands in pipelines).
* lisp/eshell/esh-cmd.el (eshell-deferrable-commands): Make into a
defvar.
(eshell-deferrable): New function...
(eshell-structure-basic-command): ... use it.
(eshell-trap-errors): Rename to...
(eshell-do-command): ... this, and use 'eshell-deferrable'. Update
callers.
(eshell--unmark-deferrable): Remove. Update callers.
(eshell-execute-pipeline): Remove 'eshell-process-identity'.
(eshell-process-identity, eshell-named-command*, eshell-lisp-command*):
Make obsolete.
* test/lisp/eshell/esh-cmd-tests.el (eshell-test-replace-command): New
function.
(esh-cmd-test/pipeline/replace-command): New test.
The tailwindcss-language server issues patterns like this:
**/{tailwind,tailwind.config,tailwind.*.config,\
tailwind.config.*}.{js,cjs,ts,mjs}
Notive the nested "*" blob inside the the {} group.
Eglot used to reject them in 'workspace/didChangeWatchedFiles' requests,
responding with "Internal Error". This could confuse some servers. Now
I've done some changes to the state machine generation and it supports
them.
* lisp/progmodes/eglot.el (eglot--glob-parse): Relax parser.
(eglot--glob-fsm): New helper.
(eglot--glob-compile, eglot--glob-emit-{}): Use it.
* test/lisp/progmodes/eglot-tests.el (eglot-test-glob-test):
Uncomment some test cases.
Github-reference: https://github.com/joaotavora/eglot/issues/1403
a7b68c2564 Fix intermittent failure of dired-test-bug27243-02
fc25b4d837 * etc/TODO: Refer to Bug#72127 for Magit assignments.
17c62c1242 Rename treesitter test
* test/lisp/dired-tests.el (dired-test-bug27243-02): Exclude free disk
space from dired listing in this test, in case it changes while it's
running and confuses the result. (Bug#72120)
* test/lisp/wdired-tests.el (wdired-test-unfinished-edit-01):
Don't modify the random directory name if, by chance, it happens
to contain the substring "foo" anywhere but immediately after the
slash. (Bug#72073)
a5ef9e2568 Document means of executing Emacs from unrelated Android ...
0de0056fd6 Don't emit a prompt in Eshell when a background command i...
ec1e300a21 Fix reference from buffer-stale-function docstring
* lisp/eshell/esh-cmd.el (eshell-resume-command): Check for
background-ness before resetting the prompt.
* test/lisp/eshell/esh-cmd-tests.el
(esh-cmd-test/background/simple-command): Make the regexp a bit
stricter.
(esh-cmd-test/background/kill): New test.
* lisp/emacs-lisp/comp.el (comp--spill-lap-single-function): New function.
(comp--spill-lap-function): Make use of and do not accept
'(closure ...' as input.
(comp--spill-lap-function): Specialize on interpreted functions as
well.
(native-compile): Update doc.
* test/src/comp-tests.el (compile-interpreted-functions): New test.
* lisp/net/tramp.el (tramp-host-with-port-regexp): Declare.
(tramp-set-syntax): Set also `tramp-host-with-port-regexp'.
(tramp-build-host-with-port-regexp): New defun.
(tramp-host-with-port-regexp): Make it a defvar. (Bug#71972)
* test/lisp/net/tramp-tests.el (tramp-test01-file-name-syntax)
(tramp-test01-file-name-syntax-simplified)
(tramp-test01-file-name-syntax-separate): Adapt tests.
99e510977b Correct JNI string error checking and miscellaneous corre...
bbe95a8cea Correctly highlight SYMTAB in `awk-mode`
9625e4af99 Fix formatting of tables with thead/tfoot but no tbody
Correctly handle formatting of tables containing thead and/or tfoot, but
without any tbody, to prevent including thead/tfoot content twice within
the table's derived body.
* lisp/net/shr.el (shr--fix-tbody): Omit 'thead' and 'tfoot' from
implicit body. (Bug#71685)
* test/lisp/net/shr-resources/table.html:
* test/lisp/net/shr-resources/table.txt: New tests for table rendering.
Provide the same functionality as 'async-shell-command-buffer' but for
'eshell-command'.
Co-Authored-By: Jim Porter <jporterbugs@gmail.com>
* lisp/eshell/eshell.el (eshell-command-async-buffer): New option...
(eshell-command): ... use it.
* lisp/eshell/esh-proc.el (eshell-sentinel): Check for buffer liveness
in 'finish-io'.
* test/lisp/eshell/eshell-tests.el
(eshell-test/eshell-command/output-buffer/async-kill): New test.
* etc/NEWS: Announce this change (bug#71554).
Make the indentation of the code right after an open paren/brace
use the same rule as already used to indent the corresponding
matching paren/brace.
* lisp/progmodes/perl-mode.el (perl-calculate-indent):
Use `perl-indent-new-calculate`s "virtual" indentation instead of
approximating it with `current-indentation`.