summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* Convert unsafep tests to ertStefan Kangas2020-08-291-140/+0
| | | | | | * lisp/emacs-lisp/tcover-unsafep.el: Move from here... * test/lisp/emacs-lisp/unsafep-tests.el: ...to here, and convert to use ert instead of tcover.
* Prevent ElDoc blinking when eldoc-documentation-enthusiast is usedJoão Távora2020-08-291-2/+3
| | | | | | | | | | This eldoc-documentation-strategy function didn't always obey protocol since it returned nil sometimes, which the eldoc engine took it as a hint for the "old" protocol to clear the echo area. * lisp/emacs-lisp/eldoc.el (eldoc-documentation-enthusiast): Return t. (Version): Bump to 1.9.0
* ; Bump seq version to 2.22Stefan Kangas2020-08-291-1/+1
|
* Make XEmacs compat aliases obsolete in warnings.elStefan Kangas2020-08-281-2/+4
| | | | | | * lisp/emacs-lisp/warnings.el (display-warning-minimum-level) (log-warning-minimum-level): Make XEmacs compat aliases into obsolete aliases for 'warning-minimum-level' and 'warning-minimum-log-level'.
* Use lexical-binding in warnings.el and add testsStefan Kangas2020-08-281-5/+1
| | | | | | | * lisp/warnings.el: Use lexical-binding. Remove redundant :group args. * test/lisp/warnings-tests.el: New file.
* New eieio-persistent-make-instance generic functionEric Abrahamsen2020-08-281-41/+39
| | | | | | | | | | This allows override of the read process for eieio-persistent objects, providing the possibility of matching read/write customization for eieio-persistent subclasses. * lisp/emacs-lisp/eieio-base.el (eieio-persistent-make-instance): New generic function for constructing instances from object data written to disk. Previously known as eieio-persistent-convert-list-to-object.
* Remove redundant slot validation in eieio-persistent-readEric Abrahamsen2020-08-281-148/+63
| | | | | | | | | | | | | | Actual object creation (in `make-instance') will later run all slot values through cl-typep, which does a better job of validation. This validation is redundant, and slows the read process down. * lisp/emacs-lisp/eieio-base.el (eieio-persistent-fix-value): Rename from `eieio-persistent-validate/fix-slot-value', as we no longer validate, and we don't care about the slot definition. (eieio-persistent-slot-type-is-class-p): Delete function. (eieio-persistent-convert-list-to-object): Still call `eieio--full-class-object', to trigger an autoload if necessary, but discard the return value.
* ; Fix license statements.Stefan Kangas2020-08-271-3/+5
|
* Preserve setf semantics in 'substring', 'cons', 'logand' expandersŠtěpán Němec2020-08-252-8/+17
| | | | | | | * doc/lispref/variables.texi (Adding Generalized Variables): Fix example. * lisp/emacs-lisp/cl-lib.el (substring) * lisp/emacs-lisp/gv.el (cons, logand): Return the value being assigned, as specified for 'setf'. (bug#35546)
* Merge from origin/emacs-27Michael Albinus2020-08-251-24/+28
|\ | | | | | | | | | | | | | | | | | | 44104a607a Fix error in GMP test e26e63444d Add Feature testing for Windows binaries 4e2caef384 ; * src/character.c (str_as_multibyte): Fix the commentary. d3a4ce8420 Revert "; * etc/NEWS: Remove temporary note on documentati... 16f00e36dc * admin/admin.el (set-version): Trap yet another NEWS error. 121be3e118 ; * etc/NEWS: Remove temporary note on documentation. (Bu... 5fcb97dabd Fix cond jump table compilation (bug#42919)
| * Fix cond jump table compilation (bug#42919)Mattias Engdegård2020-08-191-24/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This bug affected compilation of (cond ((member '(some list) variable) ...) ...) While equal is symmetric, member is not; in the latter case the arguments must be a variable and a constant list, in that order. Reported by Ikumi Keita. * lisp/emacs-lisp/bytecomp.el (byte-compile--cond-switch-prefix): Don't treat equality and member predicates in the same way; only the former are symmetric in their arguments. * test/lisp/emacs-lisp/bytecomp-tests.el (byte-opt-testsuite-arith-data): Add test cases.
* | Change how #:uninterned symbols are font-locked in Lisp modeLars Ingebrigtsen2020-08-241-3/+1
| | | | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp-fdefs): Font-lock #:uninterned symbols as a single entity instead of #: and uninterned separately (bug#43001).
* | Avoid some uses of obsolete function interactive-pStefan Kangas2020-08-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | * doc/lispref/help.texi (Accessing Documentation): * lisp/cedet/data-debug.el: * lisp/emacs-lisp/edebug.el (edebug-wrap-def-body): * lisp/simple.el (append-next-kill): * test/manual/cedet/cedet-utests.el (cedet-utest, pulse-test): * test/manual/cedet/semantic-tests.el (semantic-lex-spp-write-utest) (semantic-symref-test-count-hits-in-tag): Use 'called-interactively-p' instead of obsolete function 'interactive-p'.
* | Remove many items obsolete since Emacs 23.2 and 23.3Stefan Kangas2020-08-241-3/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/allout.el (allout-init): * lisp/emacs-lisp/shadow.el (shadows-compare-text-p): * lisp/ffap.el (ffap-version): * lisp/filecache.el (file-cache-choose-completion): * lisp/help.el (print-help-return-message): * lisp/image-mode.el (image-mode-maybe): * lisp/imenu.el (imenu-example--name-and-position): * lisp/international/mule-cmds.el (princ-list): * lisp/mail/rmail.el (rmail-highlight-face): * lisp/minibuffer.el (read-file-name-predicate): * lisp/mouse.el (mouse-choose-completion): * lisp/progmodes/cc-cmds.el (c-forward-into-nomenclature): * lisp/progmodes/xscheme.el (advertised-xscheme-send-previous-expression): * lisp/simple.el (completion-base-size) (choose-completion-delete-max-match, exchange-dot-and-mark): * lisp/subr.el (eval-next-after-load): * lisp/term.el (term-dynamic-simple-complete): Remove items, obsolete since Emacs 23.2 and 23.3. * doc/misc/cc-mode.texi (Movement Commands): Doc fix. * doc/lispref/help.texi (Accessing Documentation): * lisp/emacs-lisp/edebug.el (edebug-wrap-def-body): * lisp/comint.el (comint-dynamic-list-completions): * lisp/progmodes/idlwave.el (idlwave-make-modified-completion-map-xemacs) (idlwave-make-modified-completion-map-emacs) (idlwave-choose-completion): * lisp/progmodes/vhdl-mode.el: * lisp/term.el (term-dynamic-list-completions): Remove references to 'mouse-choose-completion'. * lisp/image-mode.el (image-mode-to-text): Remove reference to 'image-mode-maybe'. * lisp/mail/rmail.el (rmail-highlight-headers): Use 'rmail-highlight' face instead of 'rmail-highlight-face'. * lisp/progmodes/antlr-mode.el (antlr-mode-map, antlr-mode-menu): Remove reference to 'c-forward-into-nomenclature'. * lisp/simple.el (choose-completion, choose-completion-string) (completion-list-mode, completion-setup-function): Don't use 'completion-base-size'. ; * etc/NEWS: List removed items. This was discussed in https://lists.gnu.org/archive/html/emacs-devel/2020-08/msg00400.html
* | Minor mode doc string clarificationLars Ingebrigtsen2020-08-211-1/+4
| | | | | | | | | | | | * lisp/emacs-lisp/easy-mmode.el (easy-mmode--arg-docstring): Clarify that the minor mode hook is called both when enabling and disabling the mode (bug#34073).
* | Fix #'(lambda ...) font lockingAnders Lindgren2020-08-191-1/+3
| | | | | | | | | | * lisp/emacs-lisp/lisp-mode.el (lisp--el-non-funcall-position-p): Fontize #'(lambda ...) better (bug#23465).
* | Remove some compat code from chart.elLars Ingebrigtsen2020-08-181-3/+1
| | | | | | | | | | * lisp/emacs-lisp/chart.el (chart-face-list): set-face-background-pixmap is always defined.
* | Merge from origin/emacs-27Glenn Morris2020-08-181-2/+2
|\| | | | | | | | | cf0ee6f49b ; spelling fixes 16f4f26632 Fix startup working dir bug on NeXTSTEP
| * ; spelling fixesPaul Eggert2020-08-131-2/+2
| |
* | Fix ert ability to peek inside structures when comparing unequal valuesClément Pit-Claudel2020-08-181-1/+8
| | | | | | | | | | * lisp/emacs-lisp/ert.el (ert--explain-equal-rec): Treat records as arrays (bug#40562). Also add support for cl-structs.
* | Make Emacs 20 compat code in derived.el obsoleteStefan Kangas2020-08-141-0/+1
| | | | | | | | | | * lisp/emacs-lisp/derived.el (derived-mode-setup-function-name): Declare obsolete. This was for compatibility with Emacs 20 or older.
* | Remove many items obsolete since Emacs 23.1Stefan Kangas2020-08-143-18/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Emacs 23.1 was five major releases and over a decade ago. This list can be reviewed before to the next release, but for now hopefully this motivates any needed external updates. Ref: https://lists.gnu.org/archive/html/emacs-devel/2020-05/msg02198.html * lisp/abbrev.el (pre-abbrev-expand-hook): * lisp/bookmark.el (bookmark-read-annotation-text-func) (bookmark-jump-noselect): * lisp/buff-menu.el (buffer-menu-mode-hook): * lisp/cus-edit.el (custom-mode-hook, custom-mode): * lisp/dirtrack.el (dirtrack-debug-toggle, dirtrack-debug): * lisp/emacs-lisp/crm.el (crm-minibuffer-complete) (crm-minibuffer-completion-help) (crm-minibuffer-complete-and-exit): * lisp/emacs-lisp/easymenu.el (easy-menu-precalculate-equivalent-keybindings): * lisp/emacs-lisp/lisp-mode.el (lisp-mode-auto-fill): * lisp/epa.el (epa-display-verify-result): * lisp/epg.el (epg-passphrase-callback-function): * lisp/eshell/eshell.el (eshell-report-bug): * lisp/ffap.el (ffap-bug, ffap-submit-bug): * lisp/files.el (locate-file-completion): * lisp/hi-lock.el (hi-lock-face-history, hi-lock-regexp-history): * lisp/hilit-chg.el (highlight-changes-initial-state) (highlight-changes-active-string) (highlight-changes-passive-string, global-highlight-changes): * lisp/international/mule-cmds.el (nonascii-insert-offset) (nonascii-translation-table): * lisp/international/mule-diag.el (non-iso-charset-alist): * lisp/international/mule-util.el (detect-coding-with-priority): * lisp/international/mule.el (charset-id, charset-bytes) (charset-list, char-valid-p, generic-char-p) (char-coding-system-table, make-coding-system) (set-coding-priority) * lisp/mail/rmail.el (rmail-message-filter): * lisp/minibuffer.el (complete-in-turn, dynamic-completion-table) (completion-common-substring) (minibuffer-local-must-match-filename-map): * lisp/mouse.el (mouse-major-mode-menu, mouse-popup-menubar) (mouse-popup-menubar-stuff): * lisp/net/newst-treeview.el (newsticker-groups-filename): * lisp/obsolete/tpu-edt.el (tpu-have-ispell, GOLD-map): * lisp/password-cache.el (password-read-and-add): * lisp/shell.el (shell-dirtrack-toggle): * lisp/subr.el (forward-point, redisplay-end-trigger-functions) (process-filter-multibyte-p, set-process-filter-multibyte): * lisp/t-mouse.el (t-mouse-mode): * lisp/term/w32-win.el (w32-focus-frame, w32-select-font): * lisp/textmodes/ispell.el (ispell-aspell-supports-utf8): * lisp/textmodes/remember.el (remember-buffer): * lisp/tooltip.el (tooltip-hook): * lisp/url/url-util.el (url-generate-unique-filename): * lisp/url/url-vars.el (url-temporary-directory): * lisp/vc/vc-hooks.el (vc-workfile-version) (vc-default-working-revision): * lisp/vc/vc-mtn.el (vc-mtn-command): * lisp/vc/vc.el (vc-revert-buffer): * lisp/vcursor.el (vcursor-toggle-vcursor-map): Remove items, obsolete since Emacs 23.1. * lisp/abbrev.el (expand-abbrev): * lisp/epg.el (epg-context): Change 'epg-passphrase-callback-function' call to 'epa-' alternative. * lisp/eshell/em-rebind.el (eshell-cannot-leave-input-list): Don't refer to removed function 'forward-point'. * test/manual/etags/c-src/abbrev.c (Fexpand_abbrev): (syms_of_abbrev): Don't run removed hook 'pre-abbrev-expand-hook'. * lisp/international/mule.el (transform-make-coding-system-args): Declare obsolete. * lisp/progmodes/idlwave.el: Update reference to removed function 'char-valid-p'. * lisp/gnus/mml2015.el (epg-encrypt-string): * lisp/gnus/mml1991.el (epg-make-context): * lisp/gnus/mml-smime.el (autoload): Remove autoload of removed 'epg-passphrase-callback-function'. * lisp/minibuffer.el (completion-extra-properties): Remove support for `completion-common-substring'. * lisp/obsolete/tpu-edt.el (tpu-toggle-overwrite-mode) Remove support for removed `spell' package. * src/coding.c (syms_of_coding): * doc/misc/efaq.texi: * doc/emacs/frames.texi (Menu Mouse Clicks): * doc/misc/url.texi (Customization): Doc fixes. ; * etc/NEWS: List removed items.
* | Handle nil load-path element in read-library-nameTobias Zawada2020-08-131-2/+3
| | | | | | | | | | | | | | * lisp/emacs-lisp/find-func.el (read-library-name): Fix handling of nil 'load-path' element. (Bug#41998) Copyright-paperwork-exempt: yes
* | ; * lisp/emacs-lisp/autoload.el: Begin summary line with three semicolons.Jonas Bernoulli2020-08-131-1/+1
| |
* | Merge two conditions and fix indentationJonas Bernoulli2020-08-131-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The motivation behind this change is that the indentation of some lines was outright wrong. If we address that issue, then we might as well also address the issue that some code is needlessly nested an additional level. That we can fix by merging the conditions. By doing these two changes in on commit we have to change the fewest lines. Even though we are moving to using just spaces for indentation of the modified lines, other lines in the same function are left alone and continue to us tabs+spaces for indentation. That is not "wrong", but just the style we are slowly migrating away from when touching lines for other reasons. Discussed in bug#42397. * lisp/emacs-lisp/eldoc.el (eldoc-minibuffer-message): Merge two conditions and fix indentation.
* | Remove Emacs 23 compat code from checkdoc.elStefan Kangas2020-08-121-9/+4
| | | | | | | | | | | | | | * lisp/emacs-lisp/checkdoc.el (checkdoc-run-hooks): Redefine as obsolete function alias for 'run-hook-with-args-until-success'. (checkdoc-this-string-valid-engine) (checkdoc-file-comments-engine): Adjust callers.
* | Remove compat code from autoload.elLars Ingebrigtsen2020-08-111-3/+2
| | | | | | | | | | | | * lisp/emacs-lisp/autoload.el (autoload--make-defs-autoload): register-definition-prefixes is in subr.el, so it shouldn't be necessary to check whether it's defined.
* | Fix (end-of-defun N) for N >= 2Noam Postavsky2020-08-111-1/+2
| | | | | | | | | | | | | | * lisp/emacs-lisp/lisp.el (end-of-defun): Only skip to next line when after end of defun when ARG is 1 or less. * test/lisp/emacs-lisp/lisp-tests.el (end-of-defun-twice): New test (bug#24427).
* | Add the new library hierarchy.elDamien Cassou2020-08-091-0/+579
| | | | | | | | * lisp/emacs-lisp/hierarchy.el: New file.
* | Make the name column in 'list-buffers' have a dynamic widthLars Ingebrigtsen2020-08-081-0/+1
| | | | | | | | | | | | | | | | | | * lisp/buff-menu.el (Buffer-menu--dynamic-name-width): New function (bug#30692). (Buffer-menu-name-width): Default to using it. (list-buffers--refresh): Call it. * lisp/emacs-lisp/seq.el (seq-max): Add autoload cookie.
* | Clean up and improve compilation of arithmetic (bug#42597)Mattias Engdegård2020-08-072-60/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-associative-math) (byte-optimize-min-max): Transform 3-arg min/max call into two 2-arg calls, which is faster. * lisp/emacs-lisp/bytecomp.el (byte-compile-associative): Rename to... (byte-compile-variadic-numeric): ...this function and simplify, fixing incorrect comments. The 3-arg strength reduction is now always done in the optimisers and is no longer needed here. (byte-compile-min-max): New function. (byte-compile-minus): Simplify, remove incorrect comment, and use byte-compile-variadic-numeric. (byte-compile-quo): Simplify and fix comment.
* | Fix byte-compilation of (+ -0.0) (bug#42597)Mattias Engdegård2020-08-071-3/+3
| | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/bytecomp.el (byte-compile-associative): Translate numerical identity expressions, such as (+ x) and (* x), into (* x 1) since the previous translation (+ x 0) gets it wrong for x = -0.0. * test/lisp/emacs-lisp/bytecomp-tests.el (byte-opt-testsuite-arith-data): Add test cases.
* | Tweak the autoloads scrape output slightlyLars Ingebrigtsen2020-08-061-2/+2
| | | | | | | | | | | | * lisp/emacs-lisp/autoload.el (batch-update-autoloads--summary): Output " ..." at the end of the non-concluding lines to signify that the output continues.
* | Make the loaddefs scraping compilation output look more regularLars Ingebrigtsen2020-08-061-1/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/Makefile.in ($(lisp)/loaddefs.el): Don't output the directories here. * lisp/emacs-lisp/autoload.el (batch-update-autoloads--summary): New function. (batch-update-autoloads): Use it to output the directories we're scraping. This changes the compilation output from: Directories for loaddefs: . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic ./cedet/semantic/analyze ./cedet/semantic/bovine ./cedet/semantic/decorate ./cedet/semantic/symref ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation ./erc ./eshell ./gnus ./image ./international ./language ./leim ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play ./progmodes ./textmodes ./url ./vc (but all on one long line) To: SCRAPE . ./calc ./calendar ./cedet ./cedet/ede ./cedet/semantic SCRAPE ./cedet/semantic/analyze ./cedet/semantic/bovine SCRAPE ./cedet/semantic/decorate ./cedet/semantic/symref SCRAPE ./cedet/semantic/wisent ./cedet/srecode ./emacs-lisp ./emulation SCRAPE ./erc ./eshell ./gnus ./image ./international ./language ./leim SCRAPE ./leim/ja-dic ./leim/quail ./mail ./mh-e ./net ./nxml ./org ./play SCRAPE ./progmodes ./textmodes ./url ./vc Compilation output with very long lines can be mistaken for errors when they scroll by fast in the compilation output. Making it look more like normal informational output avoids this confusion.
* | Make 'byte-compile-info*' functions more logicalLars Ingebrigtsen2020-08-061-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-run.el (byte-compile-info): New function that's more flexible that replaces 'byte-compile-info-string' and 'byte-compile-info-message'. (byte-compile-info-string): Make obsolete. (byte-compile-info-message): Ditto. * lisp/international/ja-dic-cnv.el (skkdic-convert-okuri-ari) (skkdic-convert-postfix, skkdic-convert-prefix) (skkdic-collect-okuri-nasi, skkdic-set-okuri-nasi): * lisp/finder.el (finder-compile-keywords): * lisp/cus-dep.el (custom-make-dependencies): Adjust callers to use the new function.
* | Avoid duplicate Edebug symbols when backtracking (Bug#42701)Philipp Stephani2020-08-031-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When Edebug backtracks, it nevertheless generates definitions for the non-matching branches, see Bug#41988 and Bug#42701. This should be fixed eventually (probably by deferring the definition until a branch is known to match), but for now add a band-aid to avoid these duplicate symbols, at least for anonymous forms. * lisp/emacs-lisp/edebug.el (edebug-make-enter-wrapper): Regenerate anonymous names. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-duplicate-symbol-backtrack): New regression test.
* | Improve Edebug symbols for inlined secondary methods (Bug#42671)Philipp Stephani2020-08-021-1/+1
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Include qualifiers in Edebug symbol name. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-defgeneric/edebug/method): Adapt unit test.
* | Add a workaround for Bug#42672Philipp Stephani2020-08-021-1/+10
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Work around Bug#42672 by uniquifying inline method names. * test/lisp/emacs-lisp/cl-generic-tests.el (cl-defgeneric/edebug/method): New regression test.
* | Avoid duplicate Edebug symbols when using ‘cl-flet’ (Bug#41989)Philipp Stephani2020-08-022-1/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-match-:unique): Add a new ‘:unique’ specifier to generate unique names. * lisp/emacs-lisp/cl-macs.el (cl-flet): Use it. This requires inlining the ‘cl-defun’ specification. * test/lisp/emacs-lisp/edebug-tests.el (edebug-tests-cl-flet): New unit test. * doc/lispref/edebug.texi (Specification List): Document new ‘:unique’ construct.
* | Don’t generate duplicate symbols for secondary CL methods (Bug#42671)Philipp Stephani2020-08-022-3/+14
| | | | | | | | | | | | | | | | | | | | | | * lisp/emacs-lisp/edebug.el (edebug-match-cl-generic-method-qualifier): Add matcher for ‘cl-defmethod’ qualifier. * lisp/emacs-lisp/cl-generic.el (cl-defmethod): Use it. * test/lisp/emacs-lisp/edebug-tests.el (edebug-cl-defmethod-qualifier): New unit test.
* | ; Maintainer header updatesGlenn Morris2020-07-311-0/+1
| |
* | * lisp/emacs-lisp/byte-opt.el: Minor simplificationsStefan Monnier2020-07-311-77/+45
| | | | | | | | | | | | | | | | | | (byte-optimize-form-code-walker): Use `byte-optimize-form` after inlining, so optimizations are also applied to the top level call. Simplify the code for `pure` functions using `byte-optimize-constant-args`. (byte-optimize-all-constp): Remove, not used any more. (byte-optimize-1+, byte-optimize-1-): Remove, they are redundant with the `pure` annotation.
* | Declare some ancient compat aliases obsolete (Bug#41328)Stefan Kangas2020-07-311-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | * lisp/comint.el (comint-read-noecho): * lisp/emacs-lisp/edebug.el (edebug-all-defuns): * lisp/man.el (manual-entry): * lisp/vc/log-edit.el (vc-log-mode-map, vc-log-entry-mode): Declare ancient backwards-compatibility aliases and functions obsolete. The oldest in this list was added in 1992, and the most recent in 2004. * lisp/net/telnet.el (telnet-initial-filter): Don't use `comint-read-noecho'.
* | Simplify and streamline optimizer clausesMattias Engdegård2020-07-281-14/+9
| | | | | | | | | | | | | | | | * lisp/emacs-lisp/byte-opt.el (byte-optimize-form-code-walker): Remove clause for 'with-output-to-temp-buffer', since it is a macro and will have been expanded before reaching this point. Move clauses for 'lambda' and 'closure' to avoid splitting a cond jump table.
* | Make newer ElDoc versions are compatible with Emacs < 28João Távora2020-07-271-6/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: bug#42563 For some time, Eldoc has has some Elisp-specific code that shouldn't live there, but in elisp-mode.el. This can be fixed in Emacs master, but since ElDoc is distributed in GNU Elpa and is meant to work with Emacs 26 and 27, this means that that elisp-specific code must still be distributed with eldoc.el and kept up to date. * lisp/emacs-lisp/eldoc.el (eldoc--eval-expression-setup): Ensure implementation is compatible with Emacs < 28. (Version): Bump to 1.8
* | Bring back ElDoc's eldoc-display-message-p, but obsolete itJoão Távora2020-07-271-1/+7
| | | | | | | | | | | | | | | | | | Like others, this is an implementation detail that third parties could be relying on. Better not remove it outright just now, since its implementation is very simple anyway. * lisp/emacs-lisp/eldoc.el (Version): Bump to 1.7.0 (eldoc-display-message-p): Bring back, but obsolete.
* | Optimise 3-arg +, - and *Mattias Engdegård2020-07-251-0/+10
| | | | | | | | | | | | | | | | | | | | Turn (+ a b c) into (+ (+ a b) c), and do the same for - and *. The 2-arg operations have their own bytecode which results in a 1.5× speed-up. Furthermore, the transform enables other optimisations; for example, (+ a 1 b) -> (+ (1+ a) b). * lisp/emacs-lisp/byte-opt.el (byte-optimize-plus, byte-optimize-minus) (byte-optimize-multiply): Transform (OP a b c) into (OP (OP a b) c).
* | Don't needlessly request docs from ElDoc functionsJoão Távora2020-07-231-19/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes: bug#42421 Do this conservatively for now: if the ElDoc helper buffer (as returned by eldoc--doc-buffer) is visible and showing documentation for the very same "situation" (as computed by the the new eldoc--request-state helper), don't request that documentation from sources again. Before this change, not only was that request inefficient but if the user invoked scroll-other-window to see more of the helper buffer, that would eventually cause it to be reformatted and unexpectedly recentered. Later on, when a customizable list of documentation "sinks" is offered to the user, say, something like eldoc-display-functions, this process must be consolidated. In those circumstances, as soon as one of those sinks signals that it doesn't have up-to-date documentation for the state computed by eldoc--request-state, documentation will have to be requested anew from eldoc-documentation-functions via eldoc--invoke-strategy. * lisp/emacs-lisp/eldoc.el (eldoc--request-docs-p): Rework from eglot-display-message-p. (eldoc--last-request-state): New variable. (eldoc--request-state): New helper. (eldoc--handle-docs): Memorize state of request in doc buffer. (eldoc-print-current-symbol-info): Pass a token to eldoc--request-docs-p. (Version): Bump to 1.6.0
* | Fix ElDoc bugs around eldoc-echo-area-use-multiline-p.João Távora2020-07-191-9/+13
| | | | | | | | | | | | | | | | | | | | If the value is 'truncate-sym-name-if-fit andthe single docstring doesn't fit in the echo area even when the symbol name is elided, that step shouldn't be attempted. Also if the value is nil, really ensure that only the first line is shown. * lisp/emacs-lisp/eldoc.el (eldoc--handle-docs): Rework 'truncate-sym-name-if-fit case of eldoc-echo-area-use-multiline-p.
* | ; Reword bits of ElDoc internal documentationJoão Távora2020-07-191-66/+66
| | | | | | | | | | * lisp/emacs-lisp/eldoc.el (eldoc--invoke-strategy): Rewrite docstring. (eldoc--invoke-strategy): Fix formatting and rewrite comments