summaryrefslogtreecommitdiff
path: root/test/lisp
Commit message (Collapse)AuthorAgeFilesLines
* Add test for Tramp password handlingMichael Albinus2022-04-252-7/+62
| | | | | | | | | | | | | | * lisp/net/tramp.el (tramp-error-show-message-timeout): New defvar. (tramp-error-with-buffer, tramp-user-error): Use it. * test/lisp/net/tramp-tests.el (tramp-error-show-message-timeout): Set it to nil. (tramp-test46-read-password): New test. (tramp-test47-auto-load, tramp-test47-delay-load) (tramp-test47-recursive-load, tramp-test47-remote-load-path) (tramp-test48-unload): * test/lisp/net/tramp-archive-tests.el (tramp-archive-test47-auto-load) (tramp-archive-test47-delay-load): Rename.
* Fix elc.gz loading test some moreLars Ingebrigtsen2022-04-231-0/+2
|
* Add a failing test case for bug#12598Lars Ingebrigtsen2022-04-232-0/+40
| | | | Author:
* Further doc string quoting fixesLars Ingebrigtsen2022-04-221-1/+1
| | | | | | | | | | | | | | | * test/lisp/progmodes/cperl-mode-tests.el (cperl--run-test-cases): * lisp/simple.el (undo-equiv-table): * lisp/shell.el (shell-mode): (shell-mode): * lisp/recentf.el (recentf-mode): * lisp/org/ob-table.el (org-sbe): * lisp/net/eudc.el (eudc-rfc5322-cctext-token): * lisp/mail/ietf-drums-date.el (ietf-drums-date--slot-ranges): * lisp/faces.el (color-luminance-dark-limit): * lisp/erc/erc.el (erc-tls): * lisp/emacs-lisp/pcase.el (pcase-setq): Further quoting fixes in doc strings.
* Audit quoting the quote character in doc stringsLars Ingebrigtsen2022-04-224-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test/src/regex-emacs-tests.el (regex-tests-compare): (regex-tests-compare): (regex-tests-match): * test/lisp/xml-tests.el (xml-parse-tests--qnames): * test/lisp/mh-e/mh-thread-tests.el (mh-thread-tests-before-from): * test/lisp/cedet/srecode-utest-template.el (srecode-utest-map-reset): * test/lisp/calc/calc-tests.el (calc-tests-equal): * lisp/window.el (get-lru-window): (get-mru-window): (get-largest-window): (quit-restore-window): (display-buffer): * lisp/vc/vc-rcs.el (vc-rcs-consult-headers): * lisp/url/url-auth.el (url-digest-auth-build-response): * lisp/tutorial.el (tutorial--find-changed-keys): * lisp/transient.el (transient-suffix-object): * lisp/textmodes/rst.el (rst-insert-list-new-item): * lisp/textmodes/bibtex.el (bibtex-clean-entry): * lisp/tab-bar.el (tab-bar--key-to-number): (toggle-frame-tab-bar): * lisp/ses.el (ses-recalculate-cell): (ses-define-local-printer): (ses-prin1): * lisp/progmodes/xref.el (xref--find-ignores-arguments): * lisp/progmodes/verilog-mode.el (verilog-single-declaration-end): * lisp/progmodes/tcl.el (tcl-mode-hook): * lisp/progmodes/gdb-mi.el (gdb-get-buffer-create): * lisp/progmodes/elisp-mode.el (elisp--xref-make-xref): * lisp/play/dunnet.el (dun-room-objects): * lisp/outline.el (outline--cycle-state): * lisp/org/ox-publish.el (org-publish-find-property): * lisp/org/ox-html.el (org-html--unlabel-latex-environment): * lisp/org/org-table.el (org-table-collapse-header): * lisp/org/org-plot.el (org--plot/prime-factors): * lisp/org/org-agenda.el (org-agenda--mark-blocked-entry): (org-agenda-set-restriction-lock): * lisp/org/ob-lua.el (org-babel-lua-read-string): * lisp/org/ob-julia.el (org-babel-julia-evaluate-external-process): (org-babel-julia-evaluate-session): * lisp/org/ob-core.el (org-babel-default-header-args): * lisp/obsolete/mouse-sel.el (mouse-select): (mouse-select-secondary): * lisp/net/tramp.el (tramp-methods): * lisp/net/eww.el (eww-accept-content-types): * lisp/net/dictionary-connection.el (dictionary-connection-status): * lisp/minibuffer.el (completion-flex--make-flex-pattern): * lisp/mh-e/mh-mime.el (mh-have-file-command): * lisp/mh-e/mh-limit.el (mh-subject-to-sequence): (mh-subject-to-sequence-threaded): (mh-subject-to-sequence-unthreaded): * lisp/mail/feedmail.el (feedmail-queue-buffer-file-name): (feedmail-vm-mail-mode): * lisp/ls-lisp.el (ls-lisp--sanitize-switches): * lisp/keymap.el (key-valid-p): * lisp/international/ccl.el (ccl-compile-branch-blocks): * lisp/image/image-converter.el (image-convert): * lisp/gnus/spam.el (spam-backend-check): * lisp/gnus/nnselect.el (nnselect-generate-artlist): * lisp/gnus/nnmairix.el (nnmairix-widget-other): * lisp/gnus/message.el (message-mailto): * lisp/gnus/gnus-sum.el (gnus-collect-urls-from-article): * lisp/gnus/gnus-search.el (gnus-search-prepare-query): * lisp/frame.el (frame-size-history): * lisp/eshell/esh-var.el (eshell-parse-variable-ref): * lisp/eshell/em-dirs.el (eshell-expand-multiple-dots): * lisp/erc/erc-backend.el (erc-bounds-of-word-at-point): * lisp/emulation/cua-rect.el (cua--rectangle-operation): * lisp/emacs-lisp/text-property-search.el (text-property-search-forward): * lisp/emacs-lisp/package.el (package-desc-suffix): * lisp/emacs-lisp/faceup.el (faceup-test-explain): * lisp/emacs-lisp/comp.el (comp-curr-allocation-class): (comp-alloc-class-to-container): (comp-add-cstrs): (comp-remove-type-hints-func): (batch-byte+native-compile): * lisp/emacs-lisp/cl-macs.el (cl--optimize): * lisp/elec-pair.el (electric-pair--syntax-ppss): * lisp/doc-view.el (doc-view-doc-type): * lisp/cedet/semantic/symref.el (semantic-symref-tool-alist): (semantic-symref-hit-to-tag-via-db): (semantic-symref-hit-to-tag-via-buffer): * lisp/cedet/semantic/lex-spp.el (semantic-lex-spp-get-overlay): * lisp/cedet/semantic/java.el (semantic-java-doc-keywords-map): * lisp/cedet/semantic/find.el (semantic-brute-find-tag-by-function): * lisp/cedet/semantic/db.el (semanticdb-project-predicate-functions): * lisp/cedet/semantic.el (semantic-working-type): * lisp/cedet/ede/files.el (ede-flush-directory-hash): * lisp/calc/calc.el (calc--header-line): * lisp/auth-source.el (auth-source-pick-first-password): (auth-source--decode-octal-string): * etc/themes/modus-themes.el (modus-themes--paren): (modus-themes--agenda-habit): * admin/cus-test.el (cus-test-vars-with-changed-state): Fix quoting in doc strings. In code examples, the ' character is quoted with \\=, and regularize 'foo to `foo', and quote strings like "foo" instead of 'foo'.
* Fix problem with (narrow-to-page 1) with point at point-maxLars Ingebrigtsen2022-04-221-0/+12
| | | | | * lisp/textmodes/page.el (forward-page): Make this work more consistently if point is on bol (bug#20663).
* ; Fix repeated lambda argnames in files-tests.el.Basil L. Contovounesios2022-04-201-2/+2
|
* Fix regression with multiple mode: entries in the prop lineLars Ingebrigtsen2022-04-192-0/+5
| | | | | | * lisp/files.el (hack-local-variables--find-variables): Use the final mode: line (which is the same as having several mode: bits in the header line.
* Allow several mode: elements in the local variable sectionLars Ingebrigtsen2022-04-192-0/+9
| | | | | | | * etc/NEWS (mode): Fall back on outline-mode in older Emacsen. * lisp/files.el (hack-local-variables--find-variables): Use the final mode: line (which is the same as having several mode: bits in the header line.
* Fix major-mode setting regression when there's a mode: cookieLars Ingebrigtsen2022-04-182-0/+10
| | | | | * lisp/files.el (hack-local-variables): Fix regression in setting the major mode when there are mode: cookies in the file (bug#54993).
* Fix Eshell predicate tests when running from 'make check'Jim Porter2022-04-171-3/+3
| | | | | * test/lisp/eshell/em-pred-tests.el (eshell-partial-let-func): Get original function after macro-expansion.
* Add a new command `restart-emacs'Lars Ingebrigtsen2022-04-171-1/+1
| | | | | | | | | | | | | | | | | | | * doc/lispref/os.texi (Killing Emacs): Document it. * lisp/files.el (save-buffers-kill-emacs): Add new RESTART parameter. (restart-emacs): New function. * src/emacs.c (terminate_due_to_signal, Fkill_emacs): Take an optional RESTART parameter. * test/lisp/files-tests.el (files-tests-save-buffers-kill-emacs--confirm-kill-processes): * src/xterm.c (x_connection_closed): * src/xsmfns.c (Fhandle_save_session): * src/keyboard.c (Fcommand_error_default_function, command_loop) (command_loop_1, read_menu_command, read_event_from_main_queue) (read_key_sequence, quit_throw_to_read_char): * src/eval.c (process_quit_flag): Adjust Fkill_emacs callers.
* Add 'G' argument predicate in EshellJim Porter2022-04-171-0/+8
| | | | | | | | | | * lisp/eshell/em-pred.el (eshell-predicate-alist): Add 'G' predicate. (eshell-predicate-help-string): Document it. (Bug#54470) * test/lisp/eshell/em-pred-tests.el (em-pred-test/predicate-effective-gid): New test. * doc/misc/eshell.text (Argument Predication): Document 'G' predicate.
* Add unit tests and documentation for Eshell predicates/modifiersJim Porter2022-04-171-0/+521
| | | | | | | | | | | | | | | | | | | | | * lisp/eshell/esh-cmd.el (eshell-eval-argument): New function. * lisp/eshell/esh-util.el (eshell-file-attributes): Pass original value of FILE to 'file-attributes'. * lisp/eshell/em-pred.el (eshell-predicate-alist): Change socket char to '=', since 's' conflicts with setuid. (eshell-modifier-alist): Fix 'E' (eval) modifier by using 'eshell-eval-argument'. Also improve performance of 'O' (reversed sort) modifier. (eshell-modifier-help-string): Fix documentation of global substitution modifier. (eshell-pred-substitute): Fix infinite loop in some global substitutions. (eshell-join-members): Fix joining with implicit " " delimiter. (Bug#54470) * test/lisp/eshell/em-pred-tests.el: New file. * doc/misc/eshell.texi (Argument Predication): New section.
* Add unit tests and documentation for Eshell pattern-based globsJim Porter2022-04-171-0/+171
| | | | | | | | | | * lisp/eshell/em-glob.el (eshell-extended-glob): Fix docstring. (eshell-glob-entries): Refer to '**/' in error (technically, '**' can end a glob, but it means the same thing as '*'). (Bug#54470) * test/lisp/eshell/em-glob-tests.el: New file. * doc/misc/eshell.texi (Globbing): Document pattern-based globs.
* Merge from origin/emacs-28Eli Zaretskii2022-04-161-22/+25
|\ | | | | | | | | | | | | | | | | 84a2857722 Fix scrolling of the stack window in Calc 9dd44505b1 ; * src/window.c (Fset_window_start): Clarify the effect o... 24a6c7c8c0 Update and fix instructions and scripts for updating the W... 886339747b Extend tramp-archive-test45-auto-load ff997ad786 Ensure local `default-directory' in Tramp when needed 4f27588a16 Clarify "idleness" in the ELisp manual
| * Extend tramp-archive-test45-auto-loadMichael Albinus2022-04-081-22/+25
| | | | | | | | | | * test/lisp/net/tramp-archive-tests.el (tramp-archive-test45-auto-load): Extend test.
| * Merge with Tramp 2.5.2.3 (Do not merge with master)Michael Albinus2022-04-071-145/+365
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Archive file names): Explicitly say how to open an archive with Tramp (Bug#25076). * doc/misc/trampver.texi: * lisp/net/trampver.el: Change version to "2.5.3-pre". * lisp/net/tramp-adb.el (tramp-adb-handle-process-file) * lisp/net/tramp-sh.el (tramp-sh-handle-process-file): * lisp/net/tramp-smb.el (tramp-smb-handle-process-file): * lisp/net/tramp-sshfs.el (tramp-sshfs-handle-process-file): Improve implementation. (Bug#53854) * lisp/net/tramp-adb.el (tramp-adb-tolerate-tilde): * lisp/net/tramp-sshfs.el (tramp-sshfs-tolerate-tilde): New defuns. Advice `shell-mode' with them. * lisp/net/tramp.el (tramp-register-autoload-file-name-handlers): * lisp/net/tramp-archive.el (tramp-register-archive-file-name-handler): Check, whether the real file name handler is already registered. rules. (Bug#54542) * lisp/net/tramp.el (tramp-autoload-file-name-handler) (tramp-register-autoload-file-name-handlers) (tramp-unload-file-name-handlers, tramp-unload-tramp): * lisp/net/tramp-archive.el (tramp-archive-autoload-file-name-regexp) (tramp-archive-autoload-file-name-handler) (tramp-register-archive-file-name-handler): Add `tramp-autoload' property. * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): * lisp/net/tramp-rclone.el (tramp-rclone-file-name-handler-alist): * lisp/net/tramp-sudoedit.el (tramp-sudoedit-file-name-handler-alist): * lisp/net/tramp-sshfs.el (tramp-sshfs-file-name-handler-alist): Use `tramp-handle-file-notify-add-watch', `tramp-handle-file-notify-rm-watch' and `tramp-handle-file-notify-valid-p'. * lisp/net/tramp-crypt.el (tramp-crypt-file-name-handler-alist): Use `tramp-handle-insert-file-contents'. * lisp/net/tramp-gvfs.el (tramp-gvfs-maybe-open-connection): * lisp/net/tramp-rclone.el (tramp-rclone-maybe-open-connection): * lisp/net/lisp/net/tramp-sshfs.el (tramp-sshfs-maybe-open-connection): * tramp-sudoedit.el (tramp-sudoedit-maybe-open-connection): Do not set "lock-pid" connection-property. (tramp-sudoedit-handle-delete-file): Use "rm -f". * lisp/net/tramp-gvfs.el (tramp-gvfs-handle-file-executable-p): * lisp/net/tramp-sh.el (tramp-sh-handle-file-executable-p): Check also for setuid/setgid bit. (tramp-gvfs-handle-expand-file-name): Respect `tramp-tolerate-tilde'. * lisp/net/tramp-sh.el (tramp-sh-handle-insert-directory): * lisp/net/tramp-smb.el (tramp-smb-handle-insert-directory): Do not modify disk space information when `dired--insert-disk-space' is available. (Bug#54512) * lisp/net/tramp-sh.el (tramp-maybe-open-connection): Extend suppression (tramp-get-remote-dev-tty): New defun. (tramp-sh-handle-make-process): Use it. * lisp/net/tramp-sshfs.el (tramp-methods) <sshfs>: Add "-t -t" to `tramp-login-args'. Add "-o dir_cache=no" to `tramp-mount-args'. (Bug#54126) Add "-o transform_symlinks" to `tramp-mount-args'. (tramp-sshfs-file-name-handler-alist): Use `tramp-sshfs-handle-file-writable-p'. (tramp-sshfs-handle-file-writable-p): New defun. (Bug#54130) (tramp-sshfs-handle-write-region): Set file modification time. (Bug#54016) (tramp-sshfs-file-name-handler-alist): Use `tramp-sshfs-handle-set-file-times'. (tramp-sshfs-handle-set-file-times): New defun. * test/lisp/net/tramp-tests.el (tramp--test-expensive-test-p): Rename from `tramp--test-expensive-test'. Make it a defun. Adapt all callees. (tramp-test07-file-exists-p, tramp-test14-delete-directory) (tramp-test18-file-attributes, tramp-test20-file-modes) (tramp-test28-process-file, tramp-test29-start-file-process) (tramp-test30-make-process, tramp-test32-shell-command) (tramp-test33-environment-variables, tramp--test-check-files) (tramp--test-special-characters, tramp-test46-unload): Adapt tests. (tramp-test39-detect-external-change): New test. (tramp-test29-start-file-process) (tramp--test--deftest-direct-async-process) (tramp-test30-make-process, tramp-test31-interrupt-process) (tramp-test34-explicit-shell-file-name) (tramp-test44-asynchronous-requests): Add :tramp-asynchronous-processes tag. (tramp--test-asynchronous-processes-p): New defun. (tramp--test-hpux-p, tramp--test-macos-p): Protect against errors.
* | Port new tests to leap seconds or (TICKS . HZ)Paul Eggert2022-04-141-33/+15
| | | | | | | | | | | | * test/lisp/mail/ietf-drums-date-tests.el (ietf-drums-date-tests): Don’t assume leap seconds are ignored, or that timestamps are in (HI LO) format.
* | Make list-times not include zero elementsLars Ingebrigtsen2022-04-131-2/+7
| | | | | | | | | | | | | | | | | | * doc/lispref/os.texi (Time Parsing): Mention %x. * lisp/calendar/time-date.el (format-seconds): Accept a new %x spec that removes trailing zeros (bug#54904). * lisp/emacs-lisp/timer-list.el (list-timers): Don't display trailing zero bits.
* | Adapt macOS defaults in Tramp's process-attributes implementationMichael Albinus2022-04-121-0/+45
| | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Remote processes): Mention tramp-connection-local-darwin-ps-* constants. * lisp/net/tramp-integration.el (tramp-connection-local-darwin-ps-variables): Fix docstring. (top): Simplify setting local profiles. * test/lisp/net/tramp-tests.el (tramp-test31-list-system-processes) (tramp-test31-process-attributes): New tests.
* | Recognise hybrid IPv6/IPv4 addresses in textsec (bug#54624)Mattias Engdegård2022-04-111-1/+4
| | | | | | | | | | | | | | | | | | * lisp/international/textsec.el (textsec--ipvx-address-p): Recognise hybrid addresses like "::ffff:129.55.2.201". Combine to a single regexp and translate to rx. Remove some regexp ambiguity (relint complaint). * test/lisp/international/textsec-tests.el (test-suspiction-domain): Add test cases.
* | ses-test Prefix used symbols by ses--Vincent Belaïche2022-04-101-37/+37
| | | | | | | | | | * test/lisp/ses-tests.el: Rename cell symbols of renamed cells so that they are in the SES namespace, as recommended by Stefan.
* | OClosure: New function `function-documentation`Stefan Monnier2022-04-071-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As mentioned in the original OClosure commit, OClosures (ab)use the bytecode's docstring slot to hold the OClosure's type. This currently prevents OClosures from having their own docstring. Introduce a new generic function `function-documentation` to fetch the docstring of a function, which can then be implemented in various different ways depending on the OClosure's type. * lisp/simple.el (function-documentation): New generic function. (bad-package-check): Strength-reduce `eval` to `symbol-value`. * src/doc.c (Fdocumentation): Use it. * lisp/emacs-lisp/oclosure.el (oclosure--accessor-docstring): New function. * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test): Add test for accessor's docstrings.
* | Fix ses-tests.elVincent Belaïche2022-04-061-37/+44
| | | | | | | | | | | | | | | | * lisp/ses.el (ses-jump-cell-name-function): Docstring typo. * test/lisp/ses-tests.el (ses--cells, foo, bar, B2, toto): Do not do any outer defvar, but set the defvar only under the with-suppressed-warnings directive to silence the byte-compiler.
* | * test/lisp/ses-tests.el: Require ert-x, for ert-simulate-keys.Glenn Morris2022-04-051-0/+1
| |
* | * test/lisp/replace-tests.el: New tests for query-replace (bug#54733)Juri Linkov2022-04-051-0/+66
| | | | | | | | | | | | * test/lisp/replace-tests.el (query-replace-tests): New defconst. (query-replace--perform-tests): New function. (query-replace-tests, query-replace-search-function-tests): New ert-deftest.
* | OClosure: add support for `slot-value`Stefan Monnier2022-04-041-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/oclosure.el (oclosure--slot-index) (oclosure--slot-value, oclosure--set-slot-value): New functions. * lisp/emacs-lisp/eieio-core.el (eieio-oset, eieio-oref): Consolidate the type test. Use `oclosure--(set-)slot-value`. (eieio--validate-slot-value, eieio--validate-class-slot-value): Don't presume `class` is an EIEIO class. (eieio--class): Fix bogus `:type` info. (eieio--object-class): Simplify. (eieio--known-slot-name-p): New function. (eieio-oref, eieio-oref-default, eieio-oset-default): Use it. * test/lisp/emacs-lisp/oclosure-tests.el: Require `eieio`. (oclosure-test): Make `name` field mutable. (oclosure-test-slot-value): New test.
* | SES with case insensitive cell names for jumping.Vincent Belaïche2022-04-041-0/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/ses.texi (The Basics): Document that ses-jump may be customized. (Customizing @acronym{SES}): Document new customisations for ses-jump. * lisp/ses.el (ses-jump-cell-name-function) (ses-jump-prefix-function): New defcustoms. (ses-jump-prefix): New defun. (ses-jump): Make ses-jump use the new defcustoms. * test/lisp/ses-tests.el (ses-jump-B2-prefix-arg) (ses-jump-B2-lowcase, ses-jump-B2-lowcase-keys) (ses-jump-B2-symbol, ses-jump-B2-renamed): New tests.
* | test/lisp/edmacro-tests.el: Adjust to recent changesStefan Monnier2022-04-041-13/+14
| |
* | Fix handling of '\\' inside double-quotes in EshellJim Porter2022-04-031-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, Eshell would get confused and think the following command was unterminated due to the second double-quote looking like it was escaped: echo "\\" * lisp/eshell/esh-util.el (eshell-find-delimiter): Correct docstring and treat '\' as an escapeable character when using backslash escapes. * test/lisp/eshell/eshell-tests.el (eshell-test/escape-special-quoted): Adapt test.
* | ; Pacify obsoletion warnings in image-tests.el.Basil L. Contovounesios2022-04-021-3/+4
| |
* | em-extpipe: Catch eshell-incomplete thrown while parsingSean Whitton2022-04-021-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/eshell/em-extpipe.el (em-extpipe--or-with-catch): New macro. (eshell-parse-external-pipeline): Use new macro to treat `eshell-incomplete' as a failure of the parse function to move us forward (Bug#54603). Thanks to Jim Porter <jporterbugs@gmail.com> for the report and for help isolating the problem. * test/lisp/eshell/eshell-tests.el (eshell-test/lisp-command-with-quote): New test for Bug#54603, thanks to Jim Porter <jporterbugs@gmail.com> (bug#54603).
* | kmacro: Represent it as an OClosureStefan Monnier2022-04-011-3/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Merge the old lambda+list into a single OClosure object which plays both roles at the same time. Take advantage of it to provide a `cl-print-object` method so kmacro objects print nicely using the `key-parse` syntax. Also replace the old `kmacro-lambda-form` with a new `kmacro` constructor which takes a `key-parse` syntax, so that the code inserted with `insert-kbd-macro` is now more readable. * lisp/kmacro.el (kmacro): New OClosure type. (kmacro-ring-head): Use `kmacro` constructor. (kmacro-push-ring): Convert `elt` from old representation if needed. (kmacro-split-ring-element, kmacro-view-ring-2nd, kmacro-view-macro): Adapt to new representation. (kmacro-exec-ring-item): Turn into obsolete alias. (kmacro-call-ring-2nd, kmacro-end-or-call-macro): Adjust accordingly. (kmacro-start-macro): Simplify call to `kmacro-push-ring`. (kmacro): New constructor function. Replaces `kmacro-lambda-form`. (kmacro-lambda-form): Use it and declare obsolete. (kmacro-extract-lambda): Rewrite and declare obsolete. (kmacro-p): Rewrite. (cl-print-object): New method. (kmacro-bind-to-key, kmacro-name-last-macro): Simplify. * lisp/macros.el (macro--string-to-vector): New function. (insert-kbd-macro): Use it. Generate code using the `kmacro` constructor. * test/lisp/kmacro-tests.el (kmacro-tests-kmacro-bind-to-single-key): Silence warning. (kmacro-tests-name-last-macro-bind-and-rebind): Strengthen the test a bit. (kmacro-tests--cl-print): New test.
* | OClosure: Add support for defmethod dispatchStefan Monnier2022-04-011-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/oclosure.el (oclosure--class): Add slot `allparents`. (oclosure--class-make): Add corresponding arg `allparents`. (oclosure, oclosure--build-class): Pass the new arg to the constructor. (oclosure--define): Make the predicate function understand subtyping. * lisp/emacs-lisp/cl-preloaded.el (cl--class-allparents): Move from `cl-generic.el`. * lisp/emacs-lisp/cl-generic.el (cl--generic-class-parents): Move to `cl-preloaded.el` and rename to `cl--class-allparents`. Adjust all callers. (cl--generic-oclosure-tag, cl-generic--oclosure-specializers): New functions. (cl-generic-generalizers) <oclosure-struct>: New generalizer. * test/lisp/emacs-lisp/oclosure-tests.el (oclosure-test-gen): New generic function. (oclosure-test): Add test for dispatch on oclosure types.
* | Extend signal-process and proced.elMichael Albinus2022-03-301-0/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/lispref/processes.texi (Signals to Processes): Document changes in signal-process. * etc/NEWS: Mention changes in proced.el and signal-process. * lisp/proced.el (proced-signal-function): Declare it obsolete. (proced-remote-directory): New user option. (proced-mode): Adapt docstring. (proced-send-signal, proced-renice): Handle interactive prefix argument. * lisp/net/tramp.el (tramp-signal-process): New defun. Add it to `signal-process-functions'. * src/process.c (Finternal_default_signal_process): New defun, providing the hitherto existing implementation of Fsignal_process. (Fsignal_process): Loop through Vsignal_process_functions. (Vsignal_process_functions): New defvar. (Qinternal_default_signal_process, Qsignal_process_functions): Declare symbols. (Sinternal_default_signal_process): Declare subroutine. * test/lisp/net/tramp-tests.el (tramp-test31-signal-process): New test.
* | Handle process property `remote-command' in TrampMichael Albinus2022-03-291-39/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/misc/tramp.texi (Remote processes): New subsection "Process properties of asynchronous remote processes". * lisp/net/tramp.el (tramp-handle-make-process): * lisp/net/tramp-adb.el (tramp-adb-handle-make-process): * lisp/net/tramp-smb.el (tramp-smb-handle-start-file-process): * lisp/net/tramp-sh.el (tramp-sh-handle-make-process) Set `remote-command' process property. (tramp-scp-direct-remote-copying): Rename connection property. * test/lisp/net/tramp-tests.el (tramp-test29-start-file-process) (tramp-test30-make-process, tramp-test31-interrupt-process) (tramp--test-async-shell-command): Check process property `remote-command'.
* | ipv6 addresses aren't suspiciousLars Ingebrigtsen2022-03-291-1/+10
| | | | | | | | | | | | | | * lisp/international/textsec.el (textsec--ipvx-address-p): New function. (textsec-domain-suspicious-p): Use it to say that ipv6 addresses aren't suspicious (bug#54624).
* | Add tests for Eshell's umask commandJim Porter2022-03-291-0/+71
| | | | | | | | | | | | | | 'em-basic-test/umask-set' fails when passing an actual number to the command, but this is fixed in the subsequent commit. test/lisp/eshell/em-basic-tests.el: New file.
* | Add OClosures, a cross between functions and structsStefan Monnier2022-03-281-0/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We here just add the new type. It is not fully self-contained. It requires cooperation from `cconv.el` on the one hand, and it hijacks the docstring info to hold the type of OClosure objects. This does imply that OClosures can't have docstrings, tho this limitation will be lifted in subsequent patches. * lisp/emacs-lisp/oclosure.el: New file. * test/lisp/emacs-lisp/oclosure-tests.el: New file. * doc/lispref/functions.texi (OClosures): New section. * src/eval.c (Ffunction): Accept symbols instead of strings for docstrings. * src/doc.c (store_function_docstring): Avoid overwriting an OClosure type. * lisp/emacs-lisp/cconv.el (cconv--convert-function): Tweak ordering of captured variables. (cconv-convert): Add case for `oclosure--fix-type`.
* | ; Fix filename in undigest-tests.el headerMauro Aranda2022-03-241-1/+1
| |
* | Load desktop without prompting if process is deadStefan Kangas2022-03-241-0/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * doc/emacs/misc.texi (Saving Emacs Sessions): Document the new 'check' value. * etc/NEWS: Announce the change (bug#1474). * lisp/desktop.el (desktop-load-locked-desktop): Add new value 'check' to load desktop file without prompting if locking Emacs process does not exist on the local machine. (Bug#1474) (desktop-read): Extract function from here... (desktop--load-locked-desktop-p): ...to here. New function handles the semantics of 'desktop-load-locked-desktop', including above new value 'check'. (desktop--emacs-pid-running-p): New function. * test/lisp/desktop-tests.el: New file with tests for the above.
* | Make undigest work with multipart/mixed messagesMauro Aranda2022-03-231-0/+354
| | | | | | | | | | | | | | | | | | | | * test/lisp/mail/undigest.el: New test file (bug#12873). * lisp/mail/undigest.el (rmail-digest-methods): Install rmail-digest-parse-mixed-mime. (rmail-content-type-boundary): New function, to get a specific Content-type boundary. (rmail-digest-parse-mixed-mime): New function, to search for a multipart/digest message inside a multipart/mixed message.
* | Fix hl-line testsPo Lu2022-03-231-3/+6
| | | | | | | | | | | | | | * lisp/hl-line.el (hl-line-mode): Restore old setter. * test/lisp/hl-line-tests.el (hl-line-tests-verify): Don't rely `cl-some' always returning t on success. (hl-line-tests-sticky-across-frames): Use correct global variable.
* | Restore hl-line--buffer trackingdickmao2022-03-221-24/+84
| | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/hl-line.el (hl-line-overlay, hl-line-overlay-buffer): Correct replacement variable. (hl-line--overlay): Clearer doc. (hl-line--buffer): Nee hl-line-overlay-buffer (hl-line-sticky-flag): Custom initialization is unfathomable. (hl-line-mode, hl-line-unhighlight): Orthogonalize sticky. (hl-line-highlight): Remove highlight from previous buffer. * test/lisp/hl-line-tests.el (hl-line-sticky, hl-line-tests-verify): (hl-line-tests-sticky-across-frames, hl-line-tests-sticky): Test (bug#54481).
* | Fix color-lighten-hsl logicLars Ingebrigtsen2022-03-221-7/+7
| | | | | | | | | | | | * lisp/color.el (color-lighten-hsl): Lighten by percentage, instead of just adding the specified number to the luminance element (bug#54514).
* | Revert todo-mode tests failing after todo-mode reversionLars Ingebrigtsen2022-03-221-5/+5
| |
* | Rewrite hl-line-modedickmao2022-03-212-5/+56
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The fashion of dual global and minor modes, each managing a replica of state, has long been outmoded by globalized minor modes (nee easy-mmode-define-global-mode) around the turn of the century. * lisp/calendar/todo-mode.el (todo-toggle-item-highlighting, todo-hl-line-range, todo-modes-set-2): Adapt to new hl-line-highlight-hook. * lisp/hl-line.el (hl-line-overlay): Rename hl-line--overlay. (global-hl-line-overlay, global-hl-line-overlays, global-hl-line-sticky-flag, hl-line-overlay-buffer, hl-line-range-function): Obsolesce. (hl-line--overlay): Erstwhile hl-line-overlay. (hl-line, hl-line-face): Consolidate. (hl-line-sticky-flag): Say less (Gen Z Hospital). (hl-line-overlay-priority): Make this a custom. (hl-line-highlight-hook): Prefer hook over specialized hl-line-range-function. (hl-line-mode): Say less (Gen Z Hospital). (hl-line-make-overlay): Remove (hl-line-highlight, hl-line-unhighlight): Rewrite. (hl-line-maybe-unhighlight): Remove. (hl-line-turn-on): Necessary for globalized minor mode. (global-hl-line-mode, global-hl-line-highlight, global-hl-line-highlight-all, global-hl-line-unhighlight, global-hl-line-maybe-unhighlight, global-hl-line-unhighlight-all): Prefer globalized minor mode. (hl-line-move, hl-line-unload-function): Remove. * test/lisp/calendar/todo-mode-tests.el (todo-test-item-highlighting, todo-test-done-items-separator06-bol, todo-test-done-items-separator06-eol, todo-test-done-items-separator07): Adapt to consolidated face.
* | Support indentation of Ruby pattern matching expressionsDmitry Gutov2022-03-211-0/+8
| | | | | | | | | | | | | | | | * lisp/progmodes/ruby-mode.el (ruby-smie-grammar, ruby-smie-rules) (ruby-block-mid-keywords): Treat 'in' token similarly to 'when'. * test/lisp/progmodes/ruby-mode-resources/ruby.rb: Add indentation example.
* | ; * test/lisp/erc/erc-tests.el (erc--switch-to-buffer): Fix test failure.F. Jason Park2022-03-191-1/+3
| |