1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-30 12:21:25 -08:00
Commit graph

7740 commits

Author SHA1 Message Date
Jim Porter
673c906a5b Improve evaluation of conditional Eshell forms
This simplifies the logic for building these forms and also fixes an
issue where a subcommand in a "&&" or "||" conditional had its output
suppressed.

* lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Make
obsolete.
(eshell-silence-test-command): New function...
(eshell-rewrite-while-command, eshell-rewrite-if-command): ... use it,
and make the command form ourselves.
(eshell-parse-pipeline): Use 'and' and 'or' to make the conditional
command sequence.
(eshell-command-success): New macro.
(eshell-do-eval): Add support for 'and' and 'or' forms.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/and-operator/output)
(esh-cmd-test/or-operator/output): New tests.
2024-11-01 11:41:21 -07:00
Stephen Gildea
ffda8dfe84 ; time-stamp: Reformat some long doc strings for clarity.
* lisp/time-stamp.el (time-stamp-format, time-stamp-pattern): Reformat
doc strings for clarity.
(group time-stamp): is a subgroup of "files", not "data".
The "data" group seems to be for editing non-text files.
* test/lisp/time-stamp-tests.el: Fix tense of some doc strings.
2024-11-01 09:36:07 -07:00
Jim Porter
9682d385c1 Improve correctness of Eshell globs when using escape characters
This new implementation opts *in* to treating characters as glob
characters, rather than opting out.  This reduces the need to coordinate
with other parts of Eshell and should be harder to break (bug#74033).

* lisp/eshell/em-glob.el (eshell-parse-glob-chars): Return the
propertized globbing character directly.
(eshell--propertize-glob, eshell--glob-char-p)
(eshell--contains-glob-char-p, eshell--all-glob-chars-p): New functions.
(eshell-glob-p): Make obsolete.
(eshell-glob-regexp, eshell-glob-convert-1, eshell-glob-convert): Check
for 'eshell-glob-char' property.
(eshell-extended-glob): Remove text properties when returning no match.
(eshell--glob-anything): New constant.
(eshell-glob-entries): Propertize "*" to treat it as a glob.

* lisp/eshell/em-ls.el (eshell-ls--expand-wildcards): New function...
(eshell-ls--insert-directory): ... use it.

* test/lisp/eshell/em-glob-tests.el: Use 'eshell--propertize-glob' in
tests.
(em-glob-test/convert/literal-characters)
(em-glob-test/convert/mixed-literal-characters): New tests.

* lisp/eshell/em-glob.el (eshell-expand-glob): Rename from
'eshell-extended-glob'.  Update callers.
(eshell-extended-glob): New function to expand a GLOB that hasn't been
propertized yet, for use outside of Eshell command forms.
(eshell-parse-glob-chars): Return the propertized globbing character
directly.
(eshell-parse-glob-string, eshell--glob-char-p)
(eshell--contains-glob-char-p, eshell--all-glob-chars-p): New functions.
(eshell-glob-regexp, eshell-glob-convert-1, eshell-glob-convert): Check
for 'eshell-glob-char' property.
(eshell-glob-p): Make obsolete.
(eshell--glob-anything): New constant...
(eshell-glob-entries): ... use it.

* lisp/eshell/em-ls.el (eshell-ls--expand-wildcards): New function...
(eshell-ls--insert-directory): ... use it.

* test/lisp/eshell/em-glob-tests.el: Use 'eshell-parse-glob-string in
tests.
(em-glob-test/convert/literal-characters)
(em-glob-test/convert/mixed-literal-characters): New tests.
2024-10-31 22:38:10 -07:00
Jim Porter
98e24e369a Fix and improve behavior of 'eshell/clear'
* lisp/eshell/esh-mode.el (eshell-clear): New function.
(eshell/clear): Fix incorrect behavior, and do the right thing when
'eshell-scroll-show-maximum-output' is nil.
(eshell/clear-scrollback): Call 'eshell/clear'.

* test/lisp/eshell/esh-mode-tests.el
(esh-mode-test/clear/eshell-command)
(esh-mode-test/clear/eshell-command/erase)
(esh-mode-test/clear/emacs-command)
(esh-mode-test/clear/emacs-command/erase): New tests.

* etc/NEWS: Mention the new 'eshell-command' (bug#73722).
2024-10-31 22:36:16 -07:00
Dmitry Gutov
94a9e40e82 project-tests: Add test assertion for bug#73801
* test/lisp/progmodes/project-tests.el
(project-vc-extra-root-markers-supports-wildcards): End with a
check that we didn't cache a wrong value for parent (bug#73801).
2024-11-01 02:32:10 +02:00
Stephen Berman
f6c359cb66 Fix bugs in dabbrev-expand (bug#74090)
* lisp/dabbrev.el (dabbrev-expand): Use the buffer where the
expansion was found when setting the internal variables used to
determine the next expansion or a replacement expansion.

* test/lisp/dabbrev-tests.el (ert-x): Require for
'ert-with-temp-directory', 'ert-resource-directory' and
'ert-resource-file'.
(with-dabbrev-test): New macro.
(dabbrev-expand-test-same-buffer-{1,2,3,4})
(dabbrev-expand-test-other-buffer-{1,2,3,4})
(dabbrev-expand-test-minibuffer-{1,2,3,4}): New tests.

* test/lisp/dabbrev-resources/dabbrev-expand.el:
* test/lisp/dabbrev-resources/INSTALL_BEGIN: New test resources.
2024-10-31 10:46:27 +01:00
Michael Albinus
1bf1753d79 Tramp: Use when-let*', if-let*' and `and-let*' consequently
* lisp/net/tramp-adb.el:
* lisp/net/tramp-androidsu.el:
* lisp/net/tramp-cache.el:
* lisp/net/tramp-cmds.el:
* lisp/net/tramp-compat.el:
* lisp/net/tramp-container.el:
* lisp/net/tramp-crypt.el:
* lisp/net/tramp-ftp.el:
* lisp/net/tramp-fuse.el:
* lisp/net/tramp-gvfs.el:
* lisp/net/tramp-integration.el:
* lisp/net/tramp-message.el:
* lisp/net/tramp-rclone.el:
* lisp/net/tramp-sh.el:
* lisp/net/tramp-smb.el:
* lisp/net/tramp-sshfs.el:
* lisp/net/tramp-sudoedit.el:
* lisp/net/tramp.el:
* test/lisp/net/tramp-tests.el:
Use `when-let*', `if-let*' and `and-let*' consequently.  (Bug#73441)
2024-10-30 10:39:02 +01:00
Alan Mackenzie
41f347c1d1 elisp-mode-tests.el: Add test for the added fix
* test/lisp/progmodes/elisp-mode-tests.el
(elisp-completes-functions-after-empty-let-bindings):
New test (bug#73880).
2024-10-29 01:51:05 +02:00
Eli Zaretskii
aeaeccbe32 Merge from origin/emacs-30
c78b4d2b31 Fix doc string of 'wdired-use-dired-vertical-movement'
b0aaee93fd Update the documentation of void functions
299a1f2407 ; * lisp/vc/log-edit.el (log-edit-diff-function): Grammar...
67a27ff53b ; Fix typos
2024-10-27 08:23:06 -04:00
Stefan Kangas
67a27ff53b ; Fix typos 2024-10-27 07:49:32 +01:00
Jim Porter
523aade3ea Fix Eshell incompatibility with "[" command when eshell-pred is disabled
* lisp/eshell/em-pred.el (eshell-pred-initialize): Ensure that
'eshell-parse-arg-modifier' is called before 'eshell-parse-glob-chars'.

* lisp/eshell/em-glob.el (eshell-glob-initialize): Use a number for hook
depth to be clearer.
(eshell-parse-glob-chars): Simplify; since eshell-pred's hook now runs
first, the extra code is no longer necessary.

* test/lisp/eshell/em-glob-tests.el
(em-glob-test/test-command-without-pred): New test.
2024-10-26 14:50:20 -07:00
Jim Porter
d6fe32e531 ; Ensure 'eshell-split-filename' doesn't expand the filename first
* lisp/eshell/esh-util.el (eshell-split-filename): Never expand the
filename.

* lisp/eshell/em-glob.el (eshell-glob-p): A leading "~" isn't a globbing
character.

* test/lisp/eshell/esh-util-tests.el
(esh-util-test/split-filename/absolute)
(esh-util-test/split-filename/relative)
(esh-util-test/split-filename/user)
(esh-util-test/split-filename/remote-absolute)
(esh-util-test/split-filename/remote-relative)
(esh-util-test/split-filename/remote-user): New tests.
2024-10-26 14:24:39 -07:00
Michael Albinus
3f94b979d8 ; Remove proced-tests.el instrumentation (Do not merge with master) 2024-10-26 18:55:46 +02:00
Stefan Monnier
d44b94a63d cond*: Add support for Pcase patterns
* lisp/emacs-lisp/cond-star.el (cond*): Adjust docstring.
(match*): Prefer `_VAR` syntax.
(cond*-convert-condition): Add support for `pcase*`.
* doc/lispref/control.texi (cond* Macro): Document `pcase*`.
* test/lisp/emacs-lisp/cond-star-tests.el: New file.
2024-10-25 22:26:06 -04:00
Sean Whitton
8903106bb7 Mark if-let and when-let obsolete
* lisp/subr.el (if-let*, when-let*, if-let, when-let): Mark
if-let and when-let obsolete (bug#73853 and elsewhere).  Move
docstring text around so that if-let* and when-let* descriptions
no longer refer to if-let and when-let.

* etc/NEWS: Announce the change.

* admin/admin.el (reminder-for-release-blocking-bugs):
* doc/misc/erc.texi (display-buffer):
* lisp/ansi-color.el (ansi-color-apply)
(ansi-color--face-vec-face):
* lisp/ansi-osc.el (ansi-osc-apply-on-region)
(ansi-osc-hyperlink):
* lisp/arc-mode.el (archive-goto-file)
(archive-next-file-displayer):
* lisp/auth-source-pass.el (auth-source-pass-search)
(auth-source-pass--parse-data)
(auth-source-pass--find-match-many):
* lisp/autorevert.el (auto-revert-notify-rm-watch):
* lisp/buff-menu.el (Buffer-menu-unmark-all-buffers)
(Buffer-menu-group-by-root):
* lisp/calendar/parse-time.el (parse-iso8601-time-string):
* lisp/cedet/pulse.el (pulse-tick):
* lisp/comint.el (comint--fontify-input-ppss-flush-indirect)
(comint--intersect-regions):
* lisp/completion-preview.el (completion-preview--try-table)
(completion-preview--capf-wrapper, completion-preview--update):
* lisp/cus-edit.el (setopt--set)
(custom-dirlocals-maybe-update-cons, custom-dirlocals-validate):
* lisp/custom.el (load-theme):
* lisp/descr-text.el (describe-char):
* lisp/desktop.el (desktop--emacs-pid-running-p):
* lisp/dired-x.el (menu):
* lisp/dired.el (dired-font-lock-keywords)
(dired-insert-directory, dired--insert-disk-space, dired-mode):
* lisp/dnd.el (dnd-handle-multiple-urls):
* lisp/dom.el (dom-remove-attribute):
* lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker):
* lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare):
* lisp/emacs-lisp/comp-common.el (comp-function-type-spec):
* lisp/emacs-lisp/comp-cstr.el (comp--all-classes)
(comp-cstr-set-range-for-arithm, comp--cstr-union-1-no-mem)
(comp-cstr-intersection-no-mem, comp-cstr-fixnum-p)
(comp-cstr-type-p):
* lisp/emacs-lisp/comp-run.el (comp-subr-trampoline-install)
(native--compile-async):
* lisp/emacs-lisp/comp.el (comp--get-function-cstr)
(comp--function-pure-p, comp--intern-func-in-ctxt)
(comp--addr-to-bb-name, comp--emit-assume, comp--maybe-add-vmvar)
(comp--add-call-cstr, comp--compute-dominator-tree)
(comp--dom-tree-walker, comp--ssa-rename)
(comp--function-call-maybe-fold, comp--fwprop-call)
(comp--call-optim-func):
* lisp/emacs-lisp/edebug.el (edebug-global-prefix)
(edebug-remove-instrumentation):
* lisp/emacs-lisp/eieio.el (initialize-instance):
* lisp/emacs-lisp/ert-x.el (ert-resource-directory):
* lisp/emacs-lisp/ert.el (ert--expand-should-1)
(ert-test-location, ert-write-junit-test-report)
(ert-test--erts-test):
* lisp/emacs-lisp/icons.el (icon-complete-spec, icon-string)
(icons--create):
* lisp/emacs-lisp/lisp-mode.el (lisp--local-defform-body-p):
* lisp/emacs-lisp/loaddefs-gen.el
(loaddefs-generate--make-autoload)
(loaddefs-generate--parse-file):
* lisp/emacs-lisp/multisession.el
(multisession-edit-mode--revert, multisession-edit-value):
* lisp/emacs-lisp/package-vc.el (package-vc--read-archive-data)
(package-vc--version, package-vc--clone):
* lisp/emacs-lisp/package.el (package--reload-previously-loaded):
* lisp/emacs-lisp/pp.el (pp--insert-lisp):
* lisp/emacs-lisp/subr-x.el (add-display-text-property):
* lisp/emacs-lisp/tabulated-list.el (tabulated-list-print):
* lisp/emacs-lisp/timer.el (run-at-time):
* lisp/emacs-lisp/vtable.el (vtable-goto-table)
(vtable-goto-column, vtable-update-object, vtable--insert-line)
(vtable--compute-widths, vtable--make-keymap):
* lisp/emacs-lisp/warnings.el (display-warning):
* lisp/epa-file.el (epa-file-insert-file-contents):
* lisp/epa.el (epa-show-key):
* lisp/erc/erc-backend.el (erc--split-line, erc--conceal-prompt)
(PRIVMSG, erc--get-isupport-entry):
* lisp/erc/erc-button.el (erc-button-add-nickname-buttons)
(erc--button-next):
* lisp/erc/erc-common.el (erc--find-group):
* lisp/erc/erc-fill.el (erc-fill, erc-fill-static)
(erc-fill--wrap-escape-hidden-speaker)
(erc-fill--wrap-unmerge-on-date-stamp)
(erc-fill--wrap-massage-initial-message-post-clear)
(erc-fill-wrap, erc-fill--wrap-rejigger-region):
* lisp/erc/erc-goodies.el (erc--scrolltobottom-all)
(erc--keep-place-indicator-on-window-buffer-change)
(keep-place-indicator, erc--keep-place-indicator-adjust-on-clear)
(erc-keep-place-move, erc--command-indicator-display):
* lisp/erc/erc-ibuffer.el (erc-members):
* lisp/erc/erc-join.el (erc-join--remove-requested-channel)
(erc-autojoin--join):
* lisp/erc/erc-networks.el
(erc-networks--id-qualifying-init-parts, erc-networks--id-reload)
(erc-networks--id-ensure-comparable)
(erc-networks--reclaim-orphaned-target-buffers)
(erc-networks--server-select):
* lisp/erc/erc-nicks.el (erc-nicks-invert)
(erc-nicks--redirect-face-widget-link, erc-nicks--highlight)
(erc-nicks--highlight-button)
(erc-nicks--list-faces-help-button-action, erc-nicks-list-faces)
(erc-nicks-refresh, erc-nicks--colors-from-faces)
(erc-nicks--track-prioritize)
(erc-nicks--remember-face-for-track):
* lisp/erc/erc-notify.el (querypoll, erc--querypoll-get-next)
(erc--querypoll-on-352, erc--querypoll-send):
* lisp/erc/erc-sasl.el (erc-sasl--read-password):
* lisp/erc/erc-services.el
(erc-services-issue-ghost-and-retry-nick):
* lisp/erc/erc-speedbar.el (erc-speedbar--ensure, nickbar)
(erc-speedbar-toggle-nicknames-window-lock)
(erc-speedbar--compose-nicks-face):
* lisp/erc/erc-stamp.el (erc-stamp--recover-on-reconnect)
(erc-stamp-prefix-log-filter, erc--conceal-prompt)
(erc--insert-timestamp-left, erc-insert-timestamp-right)
(erc-stamp--defer-date-insertion-on-post-modify)
(erc-insert-timestamp-left-and-right)
(erc-stamp--redo-right-stamp-post-clear)
(erc-stamp--reset-on-clear, erc-stamp--dedupe-date-stamps):
* lisp/erc/erc-status-sidebar.el (bufbar)
(erc-status-sidebar-prefer-target-as-name)
(erc-status-sidebar-default-allsort, erc-status-sidebar-click):
* lisp/erc/erc-track.el (erc-track--shortened-names-get)
(erc-track--setup, erc-track--select-mode-line-face)
(erc-track-modified-channels, erc-track--collect-faces-in)
(erc-track--switch-buffer, erc-track--replace-killed-buffer):
* lisp/erc/erc-truncate.el (erc-truncate--setup)
(erc-truncate-buffer):
* lisp/erc/erc.el (erc--ensure-query-member)
(erc--ensure-query-members, erc--remove-channel-users-but)
(erc--cusr-change-status, erc--find-mode, erc--update-modules)
(erc-log-irc-protocol, erc--refresh-prompt)
(erc--restore-important-text-props)
(erc--order-text-properties-from-hash, erc-send-input-line)
(erc-cmd-IGNORE, erc--unignore-user, erc-cmd-QUERY)
(erc-cmd-BANLIST, erc--speakerize-nick)
(erc--format-speaker-input-message, erc-channel-receive-names)
(erc-send-current-line, erc-format-target-and/or-network)
(erc-kill-buffer-function, erc-restore-text-properties)
(erc--get-eq-comparable-cmd):
* lisp/eshell/em-alias.el (eshell-maybe-replace-by-alias--which)
(eshell-maybe-replace-by-alias):
* lisp/eshell/em-glob.el (eshell-glob-convert):
* lisp/eshell/em-pred.el (eshell-pred-user-or-group)
(eshell-pred-file-time, eshell-pred-file-type)
(eshell-pred-file-mode, eshell-pred-file-links)
(eshell-pred-file-size):
* lisp/eshell/em-prompt.el (eshell-forward-paragraph)
(eshell-next-prompt):
* lisp/eshell/esh-arg.el (eshell-resolve-current-argument):
* lisp/eshell/esh-cmd.el (eshell-do-eval, eshell/which)
(eshell-plain-command--which, eshell-plain-command):
* lisp/eshell/esh-io.el (eshell-duplicate-handles)
(eshell-protect-handles, eshell-get-target, eshell-close-target):
* lisp/eshell/esh-proc.el (eshell-sentinel):
* lisp/eshell/esh-var.el (eshell-parse-variable-ref)
(eshell-get-variable, eshell-set-variable):
* lisp/faces.el (face-at-point):
* lisp/ffap.el (ffap-in-project):
* lisp/filenotify.el (file-notify--rm-descriptor):
* lisp/files-x.el (read-dir-locals-file)
(connection-local-update-profile-variables)
(connection-local-value):
* lisp/files.el (file-remote-p, abbreviate-file-name)
(set-auto-mode, hack-local-variables)
(revert-buffer-restore-read-only):
* lisp/find-dired.el (find-dired-sort-by-filename):
* lisp/font-lock.el (font-lock--filter-keywords):
* lisp/gnus/gnus-art.el (article-emojize-symbols):
* lisp/gnus/gnus-int.el (gnus-close-server):
* lisp/gnus/gnus-search.el (gnus-search-transform)
(gnus-search-indexed-parse-output, gnus-search-server-to-engine):
* lisp/gnus/gnus-sum.el (gnus-collect-urls, gnus-shorten-url):
* lisp/gnus/gnus.el (gnus-check-backend-function):
* lisp/gnus/message.el (message-send-mail):
* lisp/gnus/mml.el (mml-generate-mime, mml-insert-mime-headers):
* lisp/gnus/nnatom.el (nnatom--read-feed, nnatom--read-article)
(nnatom--read-article-or-group-authors, nnatom--read-publish)
(nnatom--read-update, nnatom--read-links):
* lisp/gnus/nnfeed.el (nnfeed--read-server, nnfeed--write-server)
(nnfeed--parse-feed, nnfeed--group-data, nnfeed-retrieve-article)
(nnfeed-retrieve-headers, nnfeed--print-part)
(nnfeed-request-article, nnfeed-request-group)
(nnfeed-request-list, nnfeed--group-description)
(nnfeed-request-group-description)
(nnfeed-request-list-newsgroups, nnfeed-request-rename-group):
* lisp/gnus/nnmh.el (nnmh-update-gnus-unreads):
* lisp/help-fns.el (help-find-source)
(help-fns--insert-menu-bindings, help-fns--mention-first-release)
(help-fns--mention-shortdoc-groups)
(help-fns--customize-variable-version)
(help-fns--face-custom-version-info, describe-mode):
* lisp/help-mode.el (help-make-xrefs):
* lisp/help.el (help-key-description, help--describe-command):
* lisp/hfy-cmap.el (htmlfontify-load-rgb-file):
* lisp/ibuf-ext.el (ibuffer-jump-to-filter-group)
(ibuffer-kill-filter-group, ibuffer-kill-line)
(ibuffer-save-filter-groups, ibuffer-save-filters, filename)
(basename, file-extension, ibuffer-diff-buffer-with-file-1)
(ibuffer-mark-by-file-name-regexp)
(ibuffer-mark-by-content-regexp):
* lisp/ibuf-macs.el (ibuffer-aif, ibuffer-awhen):
* lisp/ibuffer.el (ibuffer-mouse-toggle-mark)
(ibuffer-toggle-marks, ibuffer-mark-interactive)
(ibuffer-compile-format, process, ibuffer-map-lines):
* lisp/image.el (image--compute-map)
(image--compute-original-map):
* lisp/image/exif.el (exif-parse-buffer):
* lisp/image/image-converter.el (image-convert-p, image-convert)
(image-converter--find-converter):
* lisp/image/image-dired-util.el
(image-dired-file-name-at-point):
* lisp/image/image-dired.el (image-dired-track-original-file)
(image-dired--on-file-in-dired-buffer)
(image-dired--with-thumbnail-buffer)
(image-dired-jump-original-dired-buffer)
(image-dired--slideshow-step, image-dired-display-image):
* lisp/image/wallpaper.el (wallpaper--init-action-kill)
(wallpaper--find-setter, wallpaper--find-command)
(wallpaper--find-command-args, wallpaper--x-monitor-name):
* lisp/info-look.el (info-lookup-interactive-arguments)
(info-complete)::(:mode):
* lisp/info.el (info-pop-to-buffer, Info-read-node-name-1):
* lisp/international/emoji.el (emoji--adjust-displayable-1)
(emoji--add-recent):
* lisp/jsonrpc.el (jsonrpc--call-deferred)
(jsonrpc--process-sentinel, jsonrpc--remove):
* lisp/keymap.el (keymap-local-lookup):
* lisp/mail/emacsbug.el (report-emacs-bug-hook)
(submit-emacs-patch):
* lisp/mail/ietf-drums.el (ietf-drums-parse-addresses):
* lisp/mail/mailclient.el (mailclient-send-it):
* lisp/mail/rfc6068.el (rfc6068-parse-mailto-url):
* lisp/mail/undigest.el (rmail-digest-parse-mixed-mime):
* lisp/minibuffer.el (completion-metadata-get)
(completions--after-change)
(minibuffer-visible-completions--filter):
* lisp/net/browse-url.el (browse-url-url-at-point)
(browse-url-file-url, browse-url-emacs):
* lisp/net/dbus.el (dbus-byte-array-to-string)
(dbus-monitor-goto-serial):
* lisp/net/dictionary.el (dictionary-search):
* lisp/net/eww.el (eww--download-directory)
(eww-auto-rename-buffer, eww-open-in-new-buffer, eww-submit)
(eww-follow-link, eww-read-alternate-url)
(eww-copy-alternate-url):
* lisp/net/goto-addr.el (goto-address-at-point):
* lisp/net/mailcap.el (mailcap-mime-info):
* lisp/net/rcirc.el (rcirc, rcirc-connect, rcirc-send-string)
(rcirc-kill-buffer-hook, rcirc-print, rcirc-when)
(rcirc-color-attributes, rcirc-handler-NICK)
(rcirc-handler-TAGMSG, rcirc-handler-BATCH):
* lisp/net/shr.el (shr-descend, shr-adaptive-fill-function)
(shr-correct-dom-case, shr-tag-a):
* lisp/net/sieve.el (sieve-manage-quit):
* lisp/outline.el (outline-cycle-buffer):
* lisp/pcmpl-git.el (pcmpl-git--tracked-file-predicate):
* lisp/proced.el (proced-auto-update-timer):
* lisp/progmodes/bug-reference.el
(bug-reference-try-setup-from-vc):
* lisp/progmodes/c-ts-common.el (c-ts-common--fill-paragraph):
* lisp/progmodes/c-ts-mode.el (c-ts-mode--preproc-offset)
(c-ts-mode--anchor-prev-sibling, c-ts-mode-indent-defun):
* lisp/progmodes/compile.el (compilation-error-properties)
(compilation-find-file-1):
* lisp/progmodes/eglot.el (eglot--check-object)
(eglot--read-server, eglot-upgrade-eglot)
(eglot-handle-notification, eglot--CompletionParams)
(eglot-completion-at-point, eglot--sig-info)
(eglot-register-capability):
* lisp/progmodes/elisp-mode.el
(emacs-lisp-native-compile-and-load)
(elisp-eldoc-var-docstring-with-value):
* lisp/progmodes/erts-mode.el (erts-mode--goto-start-of-test):
* lisp/progmodes/flymake.el (flymake--update-eol-overlays)
(flymake-eldoc-function):
* lisp/progmodes/gdb-mi.el (gdb-breakpoints-list-handler-custom)
(gdb-frame-handler):
* lisp/progmodes/go-ts-mode.el (go-ts-mode-docstring)
(go-ts-mode--comment-on-previous-line-p)
(go-ts-mode--get-test-regexp-at-point)
(go-ts-mode-test-this-file):
* lisp/progmodes/grep.el (lgrep, rgrep-default-command)
(grep-file-at-point):
* lisp/progmodes/perl-mode.el (perl--end-of-format-p):
* lisp/progmodes/php-ts-mode.el
(php-ts-mode--anchor-prev-sibling, php-ts-mode--indent-defun):
* lisp/progmodes/project.el (project--other-place-command)
(project--find-default-from, project--transplant-file-name)
(project-prefixed-buffer-name, project--remove-from-project-list)
(project-prompt-project-name, project-remember-projects-under)
(project--switch-project-command)
(project-uniquify-dirname-transform, project-mode-line-format):
* lisp/progmodes/python.el
(python-font-lock-keywords-maximum-decoration)
(python--treesit-fontify-union-types)
(python-shell-get-process-name, python-shell-restart)
(python-shell-completion-at-point, python-ffap-module-path)
(python-util-comint-end-of-output-p, python--import-sources)
(python-add-import, python-remove-import, python-fix-imports):
* lisp/progmodes/xref.el (xref--add-log-current-defun):
* lisp/repeat.el (repeat-echo-message-string):
* lisp/saveplace.el (save-place-dired-hook):
* lisp/server.el (server-save-buffers-kill-terminal):
* lisp/shadowfile.el (shadow-make-fullname)
(shadow-contract-file-name, shadow-define-literal-group):
* lisp/shell.el (shell-highlight-undef-mode):
* lisp/simple.el (command-completion-using-modes-p)
(command-execute, file-user-uid, file-group-gid)
(first-completion, last-completion, switch-to-completions):
* lisp/startup.el (startup--load-user-init-file):
* lisp/tab-line.el (tab-line-tabs-buffer-group-by-project):
* lisp/tar-mode.el (tar-goto-file, tar-next-file-displayer):
* lisp/term/android-win.el (android-encode-select-string)
(gui-backend-set-selection):
* lisp/term/haiku-win.el (haiku-dnd-convert-string)
(haiku-select-encode-xstring, haiku-select-encode-utf-8-string):
* lisp/textmodes/emacs-news-mode.el (emacs-news--buttonize):
* lisp/textmodes/ispell.el (ispell-completion-at-point):
* lisp/textmodes/sgml-mode.el (sgml-validate)
(html-mode--complete-at-point):
* lisp/textmodes/tex-mode.el (tex-recenter-output-buffer)
(xref-backend-references):
* lisp/thingatpt.el (thing-at-point-file-at-point)
(thing-at-point-face-at-point):
* lisp/thread.el (thread-list--get-status):
* lisp/time.el (world-clock-copy-time-as-kill, world-clock):
* lisp/touch-screen.el (touch-screen-handle-touch):
* lisp/treesit.el (treesit-language-at, treesit-node-at)
(treesit-node-on, treesit-buffer-root-node)
(treesit-node-field-name, treesit-local-parsers-at)
(treesit-local-parsers-on, treesit--cleanup-local-range-overlays)
(treesit-font-lock-recompute-features)
(treesit-font-lock-fontify-region, treesit-transpose-sexps)
(treesit-add-log-current-defun, treesit-major-mode-setup)
(treesit--explorer-refresh, treesit-install-language-grammar):
* lisp/url/url.el (url-retrieve-synchronously):
* lisp/vc/smerge-mode.el (smerge-diff):
* lisp/vc/vc-dir.el (vc-dir):
* lisp/vc/vc-dispatcher.el (vc-do-async-command):
* lisp/vc/vc-git.el (vc-git-dir--branch-headers)
(vc-git-dir--stash-headers, vc-git--log-edit-summary-check)
(vc-git-stash-list):
* lisp/vc/vc.el (vc-responsible-backend, vc-buffer-sync-fileset)
(vc-clone):
* lisp/visual-wrap.el (visual-wrap--apply-to-line):
* lisp/wid-edit.el (widget-text)
(widget-editable-list-insert-before):
* lisp/window-tool-bar.el
(window-tool-bar--keymap-entry-to-string):
* lisp/window.el (display-buffer, display-buffer-full-frame)
(window-point-context-set, window-point-context-use)
(window-point-context-use-default-function):
* lisp/xdg.el (xdg-current-desktop):
* lisp/xwidget.el (xwidget-webkit-callback):
* lisp/yank-media.el (yank-media--get-selection)
(yank-media-types):
* test/lisp/comint-tests.el
(comint-tests/test-password-function):
* test/lisp/completion-preview-tests.el
(completion-preview-tests--capf):
* test/lisp/cus-edit-tests.el (with-cus-edit-test):
* test/lisp/erc/erc-scenarios-base-local-modules.el
(-phony-sblm-):
* test/lisp/erc/erc-scenarios-stamp.el
(erc-scenarios-stamp--on-post-modify):
* test/lisp/erc/erc-services-tests.el
(erc-services-tests--asp-parse-entry):
* test/lisp/erc/erc-tests.el (erc-modules--internal-property)
(erc--find-mode, erc-tests--update-modules):
* test/lisp/erc/resources/erc-d/erc-d-i.el
(erc-d-i--parse-message):
* test/lisp/erc/resources/erc-d/erc-d-t.el
(erc-d-t-kill-related-buffers, erc-d-t-with-cleanup):
* test/lisp/erc/resources/erc-d/erc-d-tests.el
(erc-d-i--parse-message--irc-parser-tests):
* test/lisp/erc/resources/erc-d/erc-d-u.el
(erc-d-u--read-exchange-slowly):
* test/lisp/erc/resources/erc-d/erc-d.el (erc-d--expire)
(erc-d--finalize-done, erc-d--command-handle-all):
* test/lisp/erc/resources/erc-scenarios-common.el
(erc-scenarios-common-with-cleanup):
* test/lisp/erc/resources/erc-tests-common.el
(erc-tests--common-display-message)
(erc-tests-common-create-subprocess):
* test/lisp/ibuffer-tests.el (ibuffer-test-Bug25058):
* test/lisp/international/mule-tests.el
(mule-cmds-tests--ucs-names-missing-names):
* test/lisp/progmodes/python-tests.el
(python-tests-get-shell-interpreter)
(python-tests--get-interpreter-info):
* test/lisp/progmodes/ruby-ts-mode-tests.el
(ruby-ts-resource-file):
* test/lisp/replace-tests.el (replace-tests-with-undo):
* test/src/emacs-tests.el (emacs-tests--seccomp-debug):
* test/src/process-tests.el (process-tests--emacs-command)
(process-tests--emacs-binary, process-tests--dump-file):
* test/src/treesit-tests.el (treesit--ert-test-defun-navigation):
Replace use of the now-obsolete if-let and when-let.
2024-10-24 16:50:07 +08:00
Sean Whitton
95f89c736f Merge from origin/emacs-30
f5451b6a06 ; Improve comment from last change
09e05f7ee4 Document and-let* vs. when-let* usage convention
b7a375f5c4 Fix error when splicing Eshell globs and a glob expands t...
2289e16226 * etc/package-keyring.gpg: Update expiration and add new key
48024096fe Avoid crashes when scrolling images under winner-mode
c35d6ba9f0 ; * doc/lispref/display.texi (Fontsets): Clarify wording.
88a1a32fc5 ; * doc/lispref/display.texi (Fontsets): Fix typo.
6be47058cd ; Add indexing for 'use-default-font-for-symbols'
681f70ea04 * src/lread.c (READ_AND_BUFFER): Reject negative chars (b...
ac4151e002 * test/Makefile.in: Do not show emacs-module-tests.log by...
4e0cb960db Fix 'php-ts-mode': better indentation and font locking
2024-10-24 12:13:20 +08:00
Michael Albinus
75584a3a96 ; * test/lisp/proced-tests.el (proced--within-buffer): Instrument macro.
Do not merge with master
2024-10-23 17:01:08 +02:00
Jim Porter
b7a375f5c4 Fix error when splicing Eshell globs and a glob expands to itself
This could happen when 'eshell-extended-glob' determines that a "glob"
is not really a glob.  This mainly happens for remote file names with a
"~" in them, like "/ssh:remote:~/file.txt".

* lisp/eshell/em-glob.el (eshell-extended-glob): Return a list when
'eshell-glob-splice-results' is non-nil.
* test/lisp/eshell/em-glob-tests.el
(em-glob-test/expand/splice-results)
em-glob-test/expand/no-splice-results): Extend tests.
2024-10-22 09:43:00 -07:00
Jim Porter
183c5efc0f Be more careful about applying spliced arguments
Previously, this could 'nonc' to a list that shouldn't be modified.

* lisp/eshell/esh-cmd.el (eshell-rewrite-named-command): Use 'append'
instead of 'nconc'.

* test/lisp/eshell/esh-var-tests.el (esh-var-test/interp-var-splice):
(esh-var-test/quoted-interp-var-splice): New tests.
2024-10-20 18:03:45 -07:00
Michael Albinus
ac4151e002 * test/Makefile.in: Do not show emacs-module-tests.log by default. 2024-10-20 11:35:06 +02:00
Lin Sun
545c54aea1 Enhance the auto-revert to avoid revert a buffer in short time
* lisp/autorevert.el (auto-revert--last-time): New defvar.
(auto-revert-handler, auto-revert-notify-handler): Use it.
* test/lisp/autorevert-tests.el (with-auto-revert-test): Set
`auto-revert--lockout-interval' correctly.
2024-10-20 10:05:19 +02:00
Jim Porter
43d5b7a04c Lazily convert numeric strings to Lisp numbers in Eshell
This should reduce the number of issues with Eshell converting strings
to numbers too aggressively and losing information (e.g. "001" -> 1)
while still allowing almost all of the beneficial uses, like summing a
list of numeric strings with '+'.

* lisp/eshell/esh-util.el (eshell--do-mark-numeric-string): New
function.
(eshell-convert-to-number): Make obsolete in favor of...
(eshell-mark-numeric-string): ... this.  Update callers.

* lisp/eshell/esh-arg.el (eshell--numberlike-p): New function...
(eshell-concat-1): ... use it.

* test/lisp/eshell/esh-util-tests.el:  Reimplement type conversion tests
to use 'eshell-convertible-to-number-p' instead.

* test/lisp/eshell/esh-var-tests.el
(esh-var-test/interp-var-splice-concat, esh-var-test/interp-concat-cmd)
(esh-var-test/interp-convert-var-split-indices)
(esh-var-test/interp-convert-quoted-var-split-indices)
(esh-var-test/interp-convert-cmd-multiline)
(esh-var-test/interp-convert-cmd-split-indices): Adjust tests to check
the new behavior.

* doc/misc/eshell.texi (Type Conversion): New section.
(Expansion): Clarify concatenation behavior.
2024-10-19 12:01:10 -07:00
Eli Zaretskii
d0be0965ca Fix etags tagging by multiline regexps
* lib-src/etags.c (regex_tag_multiline): Fix off-by-one error in
determining the end of the tag matched by a multiline regexp.
(Bug#73771)

* test/manual/etags/ETAGS.good_4:
* test/manual/etags/ETAGS.good_5:
* test/manual/etags/ETAGS.good_6: Adjust test results to the above
change.
2024-10-19 11:18:45 +03:00
Álvaro Ramírez
7cbca90569 Hide default-directory absolute file name in dired-hide-details-mode
* lisp/dired.el (dired-hide-details-hide-absolute-location):
New user option.
(dired-insert-directory, dired-build-subdir-alist): Use it to
hide absolute file name of the directory.
(dired-hide-details-mode): Update doc string.
* test/lisp/dired-tests.el
(dired-test-hide-absolute-location-enabled)
(dired-test-hide-absolute-location-disabled): New tests

* etc/NEWS: Announce the new feature.

Bug#72272
2024-10-19 10:51:34 +03:00
Morgan Willcock
9dcc32f10c Add Speedbar tests (bug#73533)
Add Speedbar tests which test the operation of
'speedbar-expand-line-descendants'.
* test/lisp/speedbar-tests.el (speedbar-tests-container)
(eieio-speedbar-object-children, speedbar-tests-item)
(speedbar-tests--make-object, speedbar-tests--setup-strings)
(speedbar-tests--object-hierarchy, speedbar-tests--base-items)
(speedbar-tests--clean-up, speedbar-tests--initialize)
(speedbar-tests--object-name-expanded)
(speedbar-tests--object-name-function)
(speedbar-tests--objects-as-strings)
(speedbar-tests--state-test)
(speedbar-tests--expand-descendants-single)
(speedbar-tests--expand-descendants-nested)
(speedbar-tests--expand-descendants-nested-wide)
(speedbar-tests--expand-descendants-of-first)
(speedbar-tests--expand-descendants-of-first-expanded)
(speedbar-tests--expand-descendants-of-last)
(speedbar-tests--expand-descendants-of-last-expanded)
(speedbar-tests--expand-descendants-of-middle)
(speedbar-tests--expand-descendants-of-middle-expanded):
New tests, test 'speedbar-expand-line-descendants'.
2024-10-19 10:14:37 +03:00
F. Jason Park
be3318badd Move experimental module querypoll to erc-notify
* etc/ERC-NEWS: Announce migration of misplaced `querypoll' module from
erc-goodies.el to erc-notify.el.
* lisp/erc/erc-goodies.el: Move all definitions associated with
experimental module `querypoll' to erc-notify.
* lisp/erc/erc-notify.el (erc--querypoll-ring)
(erc--querypoll-timer, erc-querypoll-exclude-regexp)
(erc-querypoll-mode, erc-querypoll-enable, erc-querypoll-disable)
(erc--queries-current-p, erc-querypoll-period-params)
(erc--querypoll-compute-period, erc--querypoll-target-in-chan-p)
(erc--querypoll-get-length, erc--querypoll-get-next)
(erc--querypoll-subscribe, erc--querypoll-on-352)
(erc--querypoll-send): Move here from erc-goodies.
* test/lisp/erc/erc-goodies-tests.el (erc--querypoll-compute-period)
(erc--querypoll-target-in-chan-p, erc--querypoll-get-length)
(erc--querypoll-get-next): Move to new file erc-notify-tests.el.
* test/lisp/erc/erc-notify-tests.el: New file.  The `querypoll' module
was first introduced as part of bug#70928 in ERC 5.6.
2024-10-18 18:37:58 -07:00
F. Jason Park
a5b2de8b54 Fix trailing args bug in erc-d-i--parse-message
* test/lisp/erc/resources/erc-d/erc-d-i.el: Require `subr-x'.
(erc-d-i--parse-message): Populate `contents' slot when lone trailing
arg lacks a preceding colon.
* test/lisp/erc/resources/erc-d/erc-d-tests.el (erc-d-i--parse-message):
Fix expected result.
(erc-d-i--parse-message/privmsg): New test.
2024-10-18 18:37:58 -07:00
F. Jason Park
b00f400d1d ; Undo erroneous change in ERC's sample configuration
* doc/misc/erc.texi (Sample Configuration): Remove `erc-modules' from
the `:custom' section of the `use-package' declaration for feature `erc'
because its presence there depends on `:defer' being non-nil, and this
configuration is supposed to be `:defer' agnostic.  This reverts part of
3f1ce47f "; Add face customization to ERC's sample config".
* etc/ERC-NEWS: Mention `erc-modules' no longer being autoloaded.
* lisp/erc/erc-match.el (erc-text-matched-hooks): Explain expected
format of non-NUH matches.
* test/lisp/erc/erc-match-tests.el (test/lisp/erc/erc-match-tests.el):
Inhibit messages when running non-interactively.
2024-10-18 18:37:57 -07:00
Michael Albinus
674ad2ba7f Merge from origin/emacs-30
78e6328faf ; (select-safe-coding-system-interactively): Say "safely ...
c5eba443ae ; * lisp/icomplete.el (icomplete-in-buffer): Doc fix (bug...
569186c36e ; * doc/lispref/display.texi (Face Attributes): Fix typo ...
d5723fc4f0 * lisp/progmodes/c-ts-mode.el (treesit-node-eq): Declare ...
0085e48f91 * admin/notes/emba: Docker builds do not run in a worktree.
3d30905b02 * lisp/calc/calc-ext.el (math-approx-sqrt-e): Doc fix (bu...
94d0e9c401 : Revert a mistaken change
4d90a1d820 ; * doc/emacs/search.texi (Word Search): Spelling fixes.
c154047c46 Fix c-ts-mode--anchor-prev-sibling (bug#73661)
b87fda63dd Fix formatting of long keyboard macros by 'list-keyboard-...
ae75ea6232 ; * src/fileio.c (Ffile_newer_than_file_p): Fix wording (...
b120397868 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ...
de54d922b5 * doc/emacs/mini.texi (Passwords): Mention password visib...
0f8f077318 ; * doc/emacs/search.texi (Word Search): Document 'dictio...
fb155bcfb6 ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Doc fix.
6dbe4e99ac ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Improve...
d664227f81 ; More accurate documentation of 'file-newer-than-file-p'
e49b479f86 Fix c-ts-mode indentation for initializer lists (bug#73661)
f520008744 Avoid segfaults in Rmail-MIME
6a5c2edd84 Eglot: use :immediate t when resolving completions (bug#7...
cd36e070c2 Eglot: minor changes to doc and docstrings
1ea0d9b891 Revert "Set treesit-primary-parser for tree-sitter modes"
52746ceb62 Remove duplicate indent rules in elixir-ts-mode
ed57faafc7 Set treesit-primary-parser for tree-sitter modes
37a6c859b0 ; * lisp/emacs-lisp/cl-macs.el (cl-once-only): Fix capita...
2d4d6dc43a Delete XIE X extension from TODO
b68b9f291c ; * lisp/progmodes/csharp-mode.el (treesit-query-compile)...
688201ef18 ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): D...
ba44fc9a44 Restore comment/string check for 'electric-layout-mode'
5a462948e1 Update Arni Magnusson's email address
6b1271b169 Fix python-ts-mode-map docstring
aaaafddc94 Normalize "Commentary" section in eudc.el
d656be9794 Expand email abbrevs in X-Debbugs-Cc header.
e9dcf0c57d Fix 'list-tags' when invoked from a non-file buffer
51ef05f684 count-windows: Fix reference to walk-windows
5eaf0c784b * lisp/info-look.el (mapc): Add use-package manual's index.
705a5a1a9e ; * ChangeLog.4: Fix attribution of one change.
bf26ff0dc8 Update csharp-ts-mode font-lock (bug#73369)
4c866abab9 ; * doc/lispref/variables.texi (Creating Buffer-Local): F...
d42d7d474f ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docst...
f46f476bb8 ; * admin/MAINTAINERS: Take VC subsystem, add note about ...
d68e6d2689 ; rcirc-update-activity-string: Justify some existing beh...
e6a37869c8 Fix inconsistency in value of rcirc-activity-string
108b3179bd Revert "; Minor clarification in variables.texi"
44156c2140 ; Minor clarification in variables.texi
63058e1153 Tag interactive commands in 'lua-ts-mode'
84bea20eba ; * lisp/info-look.el: Add two more links.
96b87ad536 Mention LSP acronym in eglot defgroup docstring
9c904e8cea Change :group of 'eglot' defgroup to 'tools'
fd1a1b0780 Remove out-of-date documentation from python.el
11e3e0cadd Fix executing commands in Eshell using "env" with no loca...
c0ef8a9a1b Fix a typo in the calendar manual
36ff7138fe ; Fix a thinko in sieve-manage.el
7abecbcd63 ; * nt/INSTALL: Update MinGW notes URL.  (Bug#73528)
e2b01d164c ; Fix last changes in php-ts-mode.el
e8830015b0 Require ert-x for use by 'ert-font-lock-deftest-file'
a1841b4d8e ; * admin/authors.el (authors-aliases): Don't ignore "one...
69d8f9d1b7 Fix php-ts-mode font-lock for latest PHP grammar (bug#73516)
68f53e4348 eieio.texi: Fix bug#73505
53c887fdf6 ; cperl-mode.el: Fix an invalid face specification
f5cd5585f4 ; Recommend GNU Find for 'find-dired'
65e589698e ; * lisp/filesets.el (filesets-homepage): Fix URL.
1f243a9780 Delete duplicated line in Viper refcard
2024-10-18 17:56:08 +02:00
Jim Porter
fada04cfc7 Add support for chaining conditionals in Eshell
* lisp/eshell/esh-cmd.el (eshell-structure-basic-command): Check for the
presence of the conditional.  Allow any number of BODY forms.
(eshell-rewrite-if-command): Add support for 'else' keyword and chained
conditionals.

* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/if-else-statement):
Test 'else' keyword.
(esh-cmd-test/if-else-statement-chain): New test.

* doc/misc/eshell.texi (Control Flow): Document this change.

* etc/NEWS: Announce this change.
2024-10-16 21:48:36 -07:00
Jim Porter
40ffacb34b Improve correctness of Eshell sub-forms
This makes sure that we treat Eshell sub-forms (whether Lisp or command
forms) as values when appropriate, or as regular invocations.  This
requires a bit more explicit work, but helps to resolve some of the
surprising differences between Lisp and command forms in complex Eshell
statements.

* lisp/eshell/esh-cmd.el (eshell-subcommand-arg-values): Make obsolete.
(eshell-parse-lisp-argument): Don't add 'eshell-command-to-value' here.
(eshell-rewrite-sexp-command): Don't check for 'eshell-command-to-value
here'; instead check for 'eshell-lisp-command'.
(eshell-structure-basic-command): Check for 'eshell-lisp-command'.
(eshell-term-as-value): New function...
(eshell-rewrite-named-command, eshell-rewrite-for-command): ... call it.

* lisp/eshell/esh-arg.el (eshell-parse-special-reference):
* lisp/eshell/esh-io.el (eshell-strip-redirections):
* lisp/eshell/esh-var.el (eshell-prepare-indices): Call
'eshell-term-as-value'.

* test/lisp/eshell/esh-arg-tests.el
(esh-arg-test/special-reference/command-form):
* test/lisp/eshell/esh-cmd-tests.el (esh-cmd-test/for-loop-lisp-body)
(esh-cmd-test/while-loop-lisp-body)
(esh-cmd-test/if-else-statement-lisp-body): New tests.

* test/lisp/eshell/esh-var-tests.el
(esh-var-test/interp-var-indices-subcommand): Add another command to
test.

* doc/misc/eshell.texi (Control Flow): Update documentation.
2024-10-16 21:48:35 -07:00
Michael Albinus
6213ca44d4 Use debian:bookworm for tests on emba
* test/infra/Dockerfile.emba (emacs-base): Derive from debian:bookworm.
(emacs-eglot, emacs-tree-sitter): Derive from emacs-base.
(emacs-native-comp): Install libgccjit-12-dev.
2024-10-16 17:26:44 +02:00
Andrea Corallo
cd739d3644 Fix comp branch-optim pass (bug#73270)
* test/src/comp-tests.el (comp-test-73270-1): Define new test.
* test/src/comp-resources/comp-test-funcs.el (comp-test-73270-base)
(comp-test-73270-child1, comp-test-73270-child2)
(comp-test-73270-child3, comp-test-73270-child4)
(comp-test-73270-1-f): Define.
* lisp/emacs-lisp/comp-cstr.el (comp-cstr-type-p): Fix it for nil cstrs.
2024-10-15 22:13:08 +02:00
Yuan Fu
c154047c46
Fix c-ts-mode--anchor-prev-sibling (bug#73661)
* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--anchor-prev-sibling):  Fix parentheses and use a
slightly more efficient function.
* test/lisp/progmodes/c-ts-mode-resources/indent.erts: Replace
the tab in the test code with spaces.
2024-10-14 20:23:15 -07:00
Michael Albinus
19f929aaa3 Adapt gitlab-ci.yml
* test/infra/gitlab-ci.yml (variables): Set GIT_DEPTH: 0.
(.job-template): Remove cache:policy.
(.build-template): Add needs and cache:policy.
(.test-template): Add cache:policy.
(.tree-sitter-template): Add files in changes.
2024-10-13 15:40:42 +02:00
Pengji Zhang
c3600916b6 Improve tests for flow-fill
* test/lisp/mail/flow-fill-tests.el
(fill-flow-tests-fill-flowed-decode): Remove debug message.
(fill-flow-tests-fill-flowed-encode): Actually test function
`fill-flowed-encode', which requires `use-hard-newline' to be
non-nil.  Also adjust test input to check behavior of the
function under different cases.  (Bug#72870)
2024-10-12 15:30:05 +03:00
Eli Zaretskii
bb5b25181e Merge from origin/emacs-30
0f8f077318 ; * doc/emacs/search.texi (Word Search): Document 'dictio...
fb155bcfb6 ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Doc fix.
6dbe4e99ac ; * lisp/emacs-lisp/chart.el (chart-bar-quickie): Improve...
d664227f81 ; More accurate documentation of 'file-newer-than-file-p'
e49b479f86 Fix c-ts-mode indentation for initializer lists (bug#73661)
f520008744 Avoid segfaults in Rmail-MIME
6a5c2edd84 Eglot: use :immediate t when resolving completions (bug#7...
cd36e070c2 Eglot: minor changes to doc and docstrings
1ea0d9b891 Revert "Set treesit-primary-parser for tree-sitter modes"
52746ceb62 Remove duplicate indent rules in elixir-ts-mode
ed57faafc7 Set treesit-primary-parser for tree-sitter modes
37a6c859b0 ; * lisp/emacs-lisp/cl-macs.el (cl-once-only): Fix capita...
2d4d6dc43a Delete XIE X extension from TODO
2024-10-12 05:53:27 -04:00
F. Jason Park
9bddb264ba Add baseline test coverage for erc-match
* lisp/erc/erc-match.el (erc-pal-highlight-type)
(erc-fool-highlight-type, erc-dangerous-host-highlight-type): Clarify
some areas in doc strings.
* test/lisp/erc/erc-match-tests.el: Require `erc-test-common' library.
(erc-match-tests--assert-face-absent)
(erc-match-tests--assert-face-present)
(erc-match-tests--assert-speaker-highlighted)
(erc-match-tests--assert-speaker-only-highlighted)
(erc-match-tests--perform)
(erc-match-tests--hl-type-nick): New functions.
(erc-match-message/pal/nick, erc-match-message/fool/nick)
(erc-match-message/dangerous-host/nick): New tests.
(erc-match-tests--hl-type-message): New function.
(erc-match-message/pal/message)
(erc-match-message/fool/message)
(erc-match-message/dangerous-host/message): New tests.
(erc-match-tests--hl-type-all): New function.
(erc-match-message/pal/all, erc-match-message/fool/all)
(erc-match-message/dangerous-host/all): New tests.
(erc-match-tests--hl-type-nick-or-keyword): New function.
(erc-match-message/current-nick/nick-or-keyword): New test.
(erc-match-tests--hl-type-keyword): New function.
(erc-match-message/keyword/keyword): New test.
(erc-match-tests--log-matches): New function.
(erc-log-matches): New test.
* test/lisp/erc/resources/erc-tests-common.el: Require `erc-d-i'.
(erc-tests-common-add-cmem, erc-tests-common-parse-line)
(erc-tests-common-simulate-line)
(erc-tests-common-simulate-privmsg): New functions.
2024-10-11 16:13:09 -07:00
F. Jason Park
9906e34f97 Crystallize erc-nicks-track-faces behavior
* etc/ERC-NEWS: Mention changes to `erc-track-faces-normal-list' and
`erc-track-faces-priority-list'.  Also mention new choice variant for
option `erc-nicks-track-faces', although that's arguably just a bug fix
because it makes good on previously unrealized behavior implied by the
doc strings.
* lisp/erc/erc-nicks.el (erc-nicks-skip-faces): Remove faces applied by
the `match' module, namely, `erc-current-nick-face', `erc-pal-face', and
`erc-fool-face'.  That module runs its hooks after `button' on
`erc-insert-modify-hook', and because `nicks' piggybacks on `button', it
can never encounter those faces while assaying.
(erc-nicks-track-faces): Update doc, and introduce new `t' value choice.
(erc-nicks-mode, erc-nicks-disable): Update removals from
`erc-track--alt-normals-function' to reflect recent renamings.
(erc-nicks--reject-uninterned-faces): Use helper.
(erc-nicks--oursp, erc-nicks--ours-p): Rename former to latter to
respect project style guidelines regarding predicates.
(erc-nicks-track-normal-max-rank): New variable.
(erc-nicks--check-normals, erc-nicks--assess-track-faces): Rename former
to latter, and change purpose to checking for "normals" membership,
ranks position, and incumbent face ownership.  Remove unused CONTENDERS
parameter.  Additionally, change behavior to consider replacing the
current mode-line face when it's not `nicks' owned if it's explicitly
ranked lower than `erc-default-face'.
(erc-nicks--track-prioritize, erc-nicks--track-always): New
complementary functions implementing the t and `prioritize' variants of
`erc-nicks-track-faces'.  Both make use of the factored-out
`erc-nicks--check-normals' logic.
(erc-nicks--setup-track-integration): Add `erc-nicks--track-always' to
`erc-track--alt-normals-function' when `erc-track-normal-faces' is t.
* lisp/erc/erc-track.el (erc-track--massage-nick-button-faces): Change
type of symbol property `erc-track--obsolete-faces' for options
`erc-track-faces-priority-list' and friends from a boolean to an alist.
(erc-track-faces-priority-list): Add new face for buttonized speakers.
(erc-track-faces-normal-list): Add new face for buttonized speakers.
Also add `erc-notice-face'.
(erc-track--priority-faces): New local variable to cache ranked faces
and complement `erc-track--normal-faces'.
(erc-track--setup): Initialize new `erc-track--priority-faces' variable,
and refactor.
(erc-track--alt-normals-function): Doc.
(erc-track--select-mode-line-face): Update expected type of `ranks'
parameter.
(erc-track-modified-channels): Fix wrong-type bug occurring when
`erc-track-ignore-normal-contenders-p' and
`erc-track-priority-faces-only' are both non-nil.  Also fix subtle
compatibility oversight regarding an empty face list returned by
`erc-track--collect-faces-in'.
* test/lisp/erc/erc-nicks-tests.el: Load helpers and fixtures library.
(erc-nicks-tests--track-faces): New function.
(erc-nicks-track-faces/prioritize, erc-nicks-track-faces/defer)
(erc-nicks-track-faces/nil, erc-nicks-track-faces/t): New tests.
* test/lisp/erc/erc-track-tests.el
(erc-track-tests--select-mode-line-face): Update expected type of mocked
parameter.
(erc-track-tests--modified-channels/baseline): New function.
(erc-track-modified-channels/baseline)
(erc-track-modified-channels/baseline/mention)
(erc-track-modified-channels/baseline/ignore)
(erc-track-modified-channels/baseline/mention/ignore)
(erc-track-modified-channels/priority-only-all/baseline)
(erc-track-modified-channels/priority-only-all/sans-notice): New tests.
* test/lisp/erc/resources/erc-tests-common.el
(erc-tests-common-track-modified-channels)
(erc-tests-common-track-modified-channels-sans-setup): New functions.
(Bug67767)
2024-10-11 16:13:09 -07:00
Jørgen Kvalsvik
e49b479f86
Fix c-ts-mode indentation for initializer lists (bug#73661)
The intentation behavior differed between c-mode/c++-mode
and *-ts-mode for initializer lists where the first element was
not at beginning-of-line.  The anchor-prev-sibling function gave
up and returned nil, but it should (probably) anchor on the
first element in the initializer list, such as this:

return { v1, v2, ...,
         y1, y2, ... };

c-ts-mode behaved better and figured out how to align, but I
added a test for a similar compound literal to prevent
regressions.

* lisp/progmodes/c-ts-mode.el (c-ts-mode--anchor-prev-sibling):
Anchor at first sibling unless bol is found.

* test/lisp/progmodes/c-ts-mode-resources/indent.erts: New
initializer list and compound literal test.

Copyright-paperwork-exempt: yes
2024-10-10 00:05:42 -07:00
Eli Zaretskii
339ffd7986 New command-line options for 'etags'
This adds '--no-fallback-lang' and '--no-empty-file-entries'
options, and their opposites '--fallback-lang' and
'--empty-file-entries'.
* lib-src/etags.c (fallback_lang, empty_files): New toggles.
(main): Initialize them to 'true'.
(longopts) [!CTAGS]: Add the '--(no-)fallback-lang' and
'--(no-)empty-file-entries' options.
(find_entries): If 'fallback_lang' is false, don't attempt Fortran
and C/C++ fallbacks.
(print_help): Add help for new options.
(main): If 'empty_files' is false, don't output file entries for
files that have no tags.  (Bug#73484)

* doc/emacs/maintaining.texi (Create Tags Table):
* etc/NEWS:
* doc/man/etags.1: Document the new options.

* test/manual/etags/Makefile (check): Add test for new options.
* test/manual/etags/ETAGS.good_7: New file.
2024-10-08 15:39:33 +03:00
Eli Zaretskii
7949452350 Merge from origin/emacs-30
b68b9f291c ; * lisp/progmodes/csharp-mode.el (treesit-query-compile)...
688201ef18 ; * lisp/window.el (switch-to-prev-buffer-skip-regexp): D...
ba44fc9a44 Restore comment/string check for 'electric-layout-mode'
5a462948e1 Update Arni Magnusson's email address
6b1271b169 Fix python-ts-mode-map docstring
aaaafddc94 Normalize "Commentary" section in eudc.el
d656be9794 Expand email abbrevs in X-Debbugs-Cc header.
e9dcf0c57d Fix 'list-tags' when invoked from a non-file buffer
51ef05f684 count-windows: Fix reference to walk-windows
5eaf0c784b * lisp/info-look.el (mapc): Add use-package manual's index.
705a5a1a9e ; * ChangeLog.4: Fix attribution of one change.
bf26ff0dc8 Update csharp-ts-mode font-lock (bug#73369)
4c866abab9 ; * doc/lispref/variables.texi (Creating Buffer-Local): F...
d42d7d474f ; * lisp/doc-view.el (doc-view-svg-face): Copy-edit docst...
f46f476bb8 ; * admin/MAINTAINERS: Take VC subsystem, add note about ...
d68e6d2689 ; rcirc-update-activity-string: Justify some existing beh...
e6a37869c8 Fix inconsistency in value of rcirc-activity-string
108b3179bd Revert "; Minor clarification in variables.texi"
44156c2140 ; Minor clarification in variables.texi
63058e1153 Tag interactive commands in 'lua-ts-mode'
84bea20eba ; * lisp/info-look.el: Add two more links.
96b87ad536 Mention LSP acronym in eglot defgroup docstring
9c904e8cea Change :group of 'eglot' defgroup to 'tools'
fd1a1b0780 Remove out-of-date documentation from python.el
11e3e0cadd Fix executing commands in Eshell using "env" with no loca...
c0ef8a9a1b Fix a typo in the calendar manual
36ff7138fe ; Fix a thinko in sieve-manage.el
7abecbcd63 ; * nt/INSTALL: Update MinGW notes URL.  (Bug#73528)

# Conflicts:
#	admin/MAINTAINERS
2024-10-05 07:41:22 -04:00
Daniel Colascione
5e0935d991 Fix term.el tests; refine previous change
Fix the term.el tests by making them match the new expected output.

* test/lisp/term-tests.el: defvar - defconst
(ansi-test-strings): remove unwanted text properties from
expectations

* lisp/term.el:
(term--handle-colors-list): further shrink common-case face list
2024-10-04 00:56:37 -04:00
Michael Albinus
042eee61ee ; Fix last change in gitlab-ci.yml 2024-10-03 16:41:40 +02:00
Michael Albinus
748f76c5b3 ; Minor changes in gitlab-ci.yml
* test/infra/gitlab-ci.yml (.job-template): Comment test prints.
(.test-template): Adapt paths:
2024-10-03 09:26:24 +02:00
Stefan Kangas
67e807d897 ; Fix thinko in my last change
* lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare): Fix thinko.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-test-defcustom-local): Update test.
2024-10-02 12:03:45 +02:00
Stefan Kangas
fb42a253bd Warn about bad defcustom :local keyword at compile time
* lisp/emacs-lisp/bytecomp.el (bytecomp--custom-declare): Warn about
invalid values for the defcustom :local keyword.
* test/lisp/emacs-lisp/bytecomp-tests.el
(bytecomp-test-defcustom-local): New test.
2024-10-02 02:28:52 +02:00
Stefan Kangas
9ad73f9261 New value 'permanent-only' for defcustom :local keyword
* lisp/custom.el (custom-declare-variable): Make the :local keyword
accept the symbol 'permanent-local', meaning that the variable is
permanent but not marked as automatically buffer-local.
(defcustom):
* doc/lispref/customize.texi (Variable Definitions): Document the
above change.

* test/lisp/custom-tests.el
(custom-tests-defcustom-:local-keyword): New test.
2024-10-02 01:25:50 +02:00
Jim Porter
11e3e0cadd Fix executing commands in Eshell using "env" with no local variables
* lisp/eshell/esh-var.el (eshell/env): Throw 'eshell-replace-command' as
needed.

* test/lisp/eshell/esh-var-tests.el
(esh-var-test/local-variables/env/no-locals): New test (bug#73479).
2024-09-29 18:22:45 -07:00
F. Jason Park
e3c45b9d70 Remove erc-fill binding for cycling visual movement
* etc/ERC-NEWS: Announce removal of troublesome key binding first
introduced in ERC 5.6 as part of the `erc-fill-wrap' module.
* lisp/erc/erc-fill.el (erc-fill-wrap-mode-map): Remove key binding for
`erc-fill-wrap-cycle-visual-movement'.
* test/lisp/erc/erc-fill-tests.el (erc-fill-wrap-visual-keys--body)
(erc-fill-wrap-visual-keys--prompt): Replace "C-c a" key simulations.
(Bug#73553)
2024-09-29 16:43:39 -07:00