summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
Commit message (Collapse)AuthorAgeFilesLines
* Fix cursor-sensor--detect when current buf != selected window's bufFederico Tedin2020-02-211-3/+4
| | | | | | * lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Avoid trying to read text properties from position taken from another buffer. (Bug#38740)
* Correct default regexp in 'package-menu-hide-package'Pieter van Oostrum2020-02-151-1/+2
| | | | | | * lisp/emacs-lisp/package.el (package-menu-mode-menu): Correct default regexp, so it only selects the package at point. (Bug#39436)
* Remove obsolete menu entry "Redisplay buffer"Pieter van Oostrum2020-02-151-2/+1
| | | | | | | | * lisp/emacs-lisp/package.el (package-menu-mode-menu): Remove obsolete menu entry "Redisplay buffer". (package-menu-mode-menu): Menu entry "Refresh Package List": make the doc string more accurate. (Bug#39436)
* Remove the optional KEEP-ORDER argument to regexp-optMattias Engdegård2020-02-131-34/+9
| | | | | | | | | | | | | This argument was added for the 'or' clause in rx, but it turned out to be a bad idea (bug#37659), and there seems to be little other use for it. * lisp/emacs-lisp/regexp-opt.el (regexp-opt): Remove KEEP-ORDER. * doc/lispref/searching.texi (Regexp Functions): * etc/NEWS: Remove it from the documentation. * test/lisp/emacs-lisp/regexp-opt-tests.el (regexp-opt-test--match-all) (regexp-opt-test--check-perm, regexp-opt-test--explain-perm) (regexp-opt-keep-order, regexp-opt-longest-match): Simplify test.
* rx: Use longest match for all-string 'or' forms (bug#37659)Mattias Engdegård2020-02-121-1/+1
| | | | | | | | | | | | | | | | | Revert to the Emacs 26 semantics that always gave the longest match for rx 'or' forms with only string arguments. This guarantee was never well documented, but it is useful and people likely have come to rely on it. For example, prior to this change, (rx (or ">" ">=")) matched ">" even if the text contained ">=". * lisp/emacs-lisp/rx.el (rx--translate-or): Don't tell regexp-opt to preserve the matching order. * doc/lispref/searching.texi (Rx Constructs): Document the longest-match guarantee for all-string 'or' forms. * test/lisp/emacs-lisp/rx-tests.el (rx-or): Update test.
* Correct "different than" to "different from" where appropriateAlan Mackenzie2020-02-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | (doc/emacs/screen.texi) (doc/lispintro/emacs-lisp-intro.texi) (doc/misc/calc.texi) (doc/misc/gnus.texi) (doc/misc/sc.texi) (lisp/align.el) (lisp/allout-widgets.el) (lisp/allout.el) (lisp/emacs-lisp/gv.el) (lisp/font-lock.el) (lisp/gnus/mm-util.el) (lisp/mail/feedmail.el) (lisp/mail/sendmail.el) (lisp/mail/supercite.el) (lisp/org/org-attach.el) (lisp/progmodes/cc-langs.el) (lisp/progmodes/idlw-shell.el) (lisp/ps-print.el) (lisp/simple.el) (src/cmds.c) (src/editfns.c) (src/frame.h) (src/regex-emacs.c) (src/xfaces.c): Replace "different than" by "different from".
* More accurate documentation of 'package-menu-hide-package'Eli Zaretskii2020-02-081-3/+4
| | | | | | | | | | * doc/emacs/package.texi (Package Menu): Improve the description of the 'H' command. * lisp/emacs-lisp/package.el (package-menu-mode-menu): More accurate wording of the help-echo string. (package-menu-hide-package): Make the doc string more accurate. (Bug#39436)
* Revert "Signal user-error on duplicate package refresh"Stefan Kangas2020-02-061-4/+1
| | | | | | | | That commit caused errors when the connection was dropped in the middle of a package refresh. To avoid any further issues this close to the pretest, we simply remove this feature. (Bug#39187) Don't merge to master, where we will instead try to fix the bug.
* * lisp/emacs-lisp/debug.el (debug): Merge the non-interactive casesPaul Pogonyshev2020-01-311-150/+142
| | | | | | bug#38927 (cherry picked from commit 502059433ce0e9699eb73d21656ce6e9e127d63b)
* Doc fixes in package.elStefan Kangas2020-01-191-3/+9
| | | | | | | | * lisp/emacs-lisp/package.el (package-process-define-package) (package-generate-description-file): Doc fixes. (package-generate-autoloads, package--write-file-no-coding) (package--archive-file-exists-p, package-desc-status): Add doc strings.
* ; spelling fixesPaul Eggert2020-01-171-1/+1
|
* Fix wording and punctuation of a recent commitEli Zaretskii2020-01-171-2/+2
| | | | | | * lisp/textmodes/ispell.el (ispell-correct-p): Doc fix. * lisp/emacs-lisp/checkdoc.el (checkdoc-ispell-init): Fix capitalization and punctuation of comments.
* Add unattended spell-checking to checkdocDamien Cassou2020-01-171-50/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit makes checkdoc capable of spell-checking even when the user isn't using it interactively. When TAKE-NOTES is non-nil, checkdoc will run spell-checking (with ispell) and report spelling mistakes. Fixes: (bug#38583). * lisp/textmodes/ispell.el (ispell-word): Extract part of it to `ispell--run-on-word`. (ispell--run-on-word): New function, extracted from `ispell-word`. (ispell-error-checking-word): New function. (ispell-correct-p): New function. Use `ispell--run-on-word` and `ispell-error-checking-word`. * lisp/emacs-lisp/checkdoc.el (checkdoc-current-buffer): Pass TAKE-NOTES to `checkdoc-start`. (checkdoc-continue): Pass TAKE-NOTES to `checkdoc-this-string-valid`. (checkdoc-this-string-valid): Add optional argument TAKE-NOTES and pass it to `checkdoc-this-string-valid-engine`. (checkdoc-this-string-valid-engine): Add optional argument TAKE-NOTES and pass it to `checkdoc-ispell-docstring-engine`. (checkdoc-ispell-init): Call `ispell-set-spellchecker-params` and `ispell-accept-buffer-local-defs`. These calls are required to properly use ispell. The problem went unnoticed until now because checkdoc was only using ispell through the high-level command `ispell-word` which takes care of all the initialization for the user. (checkdoc-ispell-docstring-engine): Add optional argument TAKE-NOTES to force reporting of spell-checking errors. Throw error when (checkdoc-ispell-init) fails configuring ispell. Replace a few (if cond nil body) with (unless cond body). Replace (let ((var nil))) with (let (var)). Replace (if (not (eq checkdoc-autofix-flag 'never)) body) with just body because `checkdoc-autofix-flag` is checked at the beginning of the function. (cherry picked from commit 25adbc4a5ecc3e16625c0171607e3153bbdf7ab1)
* Move “Fix some broken conditional forms” to masterPaul Eggert2020-01-051-4/+4
| | | | | | | Revert 2020-01-04T19:17:12Z!eggert@cs.ucla.edu which recently I installed into the emacs-27 branch by mistake. These patches are now on master instead (via merging). Do not merge to master.
* Fix some broken conditional formsPaul Eggert2020-01-041-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Problem reported by Mattias Engdegård in: https://lists.gnu.org/r/emacs-devel/2020-01/msg00088.html * lisp/cedet/ede/cpp-root.el (ede-create-lots-of-projects-under-dir): Remove this quick hack, which didn’t do anything anyway. * lisp/cedet/ede/pconf.el (ede-proj-configure-test-required-file): * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print-col): * lisp/net/nsm.el (nsm-check-tls-connection): Use ‘when’ rather than bypassing it. This doesn’t affect behavior and is better style. * lisp/cedet/srecode/semantic.el (srecode-semantic-handle-:tag): Fix typo that suppressed an error. * lisp/filesets.el (filesets-run-cmd): Fix typo that mishandled spacing. * lisp/gnus/gnus-cloud.el (gnus-cloud-update-newsrc-data): Fix typo that caused “GROUP has older different info in the cloud as of DATE, update it here?” prompt result to always be treated as “yes”. * lisp/gnus/mml-smime.el (mml-smime-openssl-encrypt): Simplify, since smime-encrypt-buffer signals error on failure. * lisp/international/titdic-cnv.el (tsang-quick-converter): Simplify. The conversion of this file to utf-8-emacs in 2019-01-08T02:18:40Z!monnier@iro.umontreal.ca removed the distinction between Big5 and CNS fulltitles in the generated docstring. * lisp/org/org-agenda.el (org-agenda-show-and-scroll-up): * lisp/textmodes/table.el (table--generate-source-cell-contents): Simplify by removing useless code. * lisp/org/ox-odt.el (org-odt--format-timestamp): Fix typo that always output time-of-day even when the timestamp lacked it.
* Fix copyright years by handPaul Eggert2020-01-011-1/+1
| | | | These are dates that admin/update-copyright did not update.
* Update copyright year to 2020Paul Eggert2020-01-0188-88/+88
| | | | Run "TZ=UTC0 admin/update-copyright $(git ls-files)".
* Avoid unbounded growth of cl-random-state components (bug#38753)Mattias Engdegård2019-12-291-1/+1
| | | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl-random): Perform the modulo 2**23 operation before updating the state instead of after. The result is always the same, but it prevents the state from growing into arbitrary large bignums. Patch from Christopher Wellons.
* Fix documentation of define-obsolete-* functionsEli Zaretskii2019-12-281-6/+6
| | | | | | | | | | | * doc/lispref/functions.texi (Obsolete Functions): Make documentation of functions that obsolete symbols match the advertised calling conventions. * lisp/emacs-lisp/byte-run.el (define-obsolete-function-alias) (define-obsolete-variable-alias, define-obsolete-face-alias): State in the doc strings that WHEN is a mandatory argument, to be consistent with the advertised calling convention. (Bug#38675)
* Trivial docstring fixesJuanma Barranquero2019-12-242-6/+7
| | | | | | | | | | | | | | | | | * ChangeLog.3: * lisp/emacs-lisp/cl-macs.el (cl-flet): * lisp/filesets.el (filesets-menu-ensure-use-cached): * lisp/progmodes/compile.el (compilation-context-lines): * lisp/progmodes/prolog.el (prolog-paren-indent): * lisp/progmodes/sql.el (sql-password-search-wallet-function): Fix typos in docstrings. * lisp/cedet/semantic/analyze.el (semantic-analyze-push-error): Doc fix. * lisp/emacs-lisp/map.el (map-put, map-info): Refill docstring. (map-contains-key): Fix typo. (map-every-p): Doc fix.
* More precise 'regexp-opt' documentationMattias Engdegård2019-12-181-5/+5
| | | | | | | | * lisp/emacs-lisp/regexp-opt.el (regexp-opt): * doc/lispref/searching.texi (Regexp Functions): Be more specific about how the KEEP-ORDER argument actually works. If nil, the regexp guarantees a longest match; this is the behaviour that many callers implicitly rely on.
* Allow characters and single-char strings in rx charsetsMattias Engdegård2019-12-131-6/+20
| | | | | | | | | | | | | | | | The `not' and `intersection' forms, and `or' inside these forms, now accept characters and single-character strings as arguments. Previously, they had to be wrapped in `any' forms. This does not add expressive power but is a convenience and is easily understood. * doc/lispref/searching.texi (Rx Constructs): Amend the documentation. * etc/NEWS: Announce the change. * lisp/emacs-lisp/rx.el (rx--charset-p, rx--translate-not) (rx--charset-intervals, rx): Accept characters and 1-char strings in more places. * test/lisp/emacs-lisp/rx-tests.el (rx-not, rx-charset-or) (rx-def-in-charset-or, rx-intersection): Test the change.
* Add prefix to help.el uni-confusable* varsNoam Postavsky2019-12-131-1/+1
| | | | | | | | | * lisp/help.el (help-uni-confusables, help-uni-confusables-regexp): Rename from uni-confusable and uni-confusables-regexp, respectively. (help-uni-confusable-suggestions): Use ngettext. Use new variable name. * lisp/emacs-lisp/lisp-mode.el (lisp--match-confusable-symbol-character): Use new variable name.
* * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Use 'user-error'.Juri Linkov2019-12-131-1/+1
|
* Use `or' instead of `union' for charset union in rxMattias Engdegård2019-12-121-15/+26
| | | | | | | | | | | | | | Design change suggested by Stefan Monnier. * doc/lispref/searching.texi (Rx Constructs): * etc/NEWS: Document. * lisp/emacs-lisp/rx.el (rx--translate-or): Detect charset arguments. (rx--charset-p): New. (rx--translate-not, rx--charset-intervals, rx--translate-union): Change from `union' to `or'. (rx--translate-form, rx--builtin-forms, rx): Remove `union'. * test/lisp/emacs-lisp/rx-tests.el (rx-union, rx-def-in-union) (rx-intersection): Rename tests and change `union' to `or' and `|'.
* * lisp/emacs-lisp/debug.el (debug-on-entry): Allow undefined functionsStefan Monnier2019-12-111-1/+1
| | | | | | Allow placing debug-on-entry on a function not-yet-defined, which is convenient when the problem you're investigating happens while the relevant files are loaded.
* Add `union' and `intersection' to rx (bug#37849)Mattias Engdegård2019-12-101-95/+214
| | | | | | | | | | | | | | | | | | | | | | These character set operations, together with `not' for set complement, improve the compositionality of rx, and reduce duplication in complicated cases. Named character classes are not permitted in set operations. * lisp/emacs-lisp/rx.el (rx--translate-any): Split into multiple functions. (rx--foldl, rx--parse-any, rx--generate-alt, rx--intervals-to-alt) (rx--complement-intervals, rx--intersect-intervals) (rx--union-intervals, rx--charset-intervals, rx--charset-union) (rx--charset-all, rx--charset-intersection, rx--translate-union) (rx--translate-intersection): New. (rx--translate-not, rx--translate-form, rx--builtin-forms, rx): Add `union' and `intersection'. * test/lisp/emacs-lisp/rx-tests.el (rx-union ,rx-def-in-union) (rx-intersection, rx-def-in-intersection): New tests. * doc/lispref/searching.texi (Rx Constructs): * etc/NEWS: Document `union' and `intersection'.
* Spelling fixesPaul Eggert2019-12-092-2/+2
|
* * lisp/emacs-lisp/map-ynp.el (read-answer): Use [remap self-insert-command]Juri Linkov2019-12-101-1/+1
| | | | | | This reverts the last change that replaced [remap self-insert-command] with [t]. The user should have freedom of using any command in the minibuffer. (bug#32738)
* * lisp/emacs-lisp/map-ynp.el (read-answer): Allow more SHORT-ANSWER types.Juri Linkov2019-12-091-5/+18
| | | | | | | Treat SHORT-ANSWER as a character is characterp returns non-nil. Otherwise, use key-description to print it. Use catch-all [t] in keymap instead of [remap self-insert-command]. (bug#32738)
* Don't use the return value of 'push'Mattias Engdegård2019-12-041-1/+1
| | | | | | | Although 'push' returns the modified list, it isn't actually documented to do so, so don't rely on it. * lisp/emacs-lisp/rx.el (rx--translate-any): Add progn.
* Avoid duplicated character classes in rxMattias Engdegård2019-12-031-1/+3
| | | | | | | | For example, (any digit digit) should produce "[[:digit:]]", not "[[:digit:][:digit:]]". * lisp/emacs-lisp/rx.el (rx--translate-any): Deduplicate character classes. * test/lisp/emacs-lisp/rx-tests.el (rx-any): Add test case.
* New functions window-state-buffers and tab-bar-get-buffer-tab (bug#38354)Juri Linkov2019-12-031-0/+1
| | | | | | | | | | * lisp/window.el (window-state-buffers): New function. * lisp/tab-bar.el (tab-bar-get-buffer-tab): New function. * lisp/emacs-lisp/seq.el (seq-some): Add autoload cookie. * lisp/desktop.el (desktop-buffers-not-to-save-function): New variable. (desktop-save-buffer-p): Use it.
* Use run-with-idle-timer instead of debounce for responsive image scaling.Juri Linkov2019-11-301-44/+0
| | | | | | | | | | | | | | | * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): Revert macro addition. https://lists.gnu.org/archive/html/emacs-devel/2019-11/msg01133.html * lisp/image.el (image-increase-size, image-decrease-size): Use run-with-idle-timer. (image--change-size): Rename back from image--change-size-function. * lisp/image-mode.el (image-mode--setup-mode): Remove hooks window-size-change-functions and window-selection-change-functions (bug#32672) (image-fit-to-window): Rename from image--window-change-function. (image--window-state-change): Rename from image--window-change. Use run-with-idle-timer.
* Improve errors & warnings due to fancy quoted vars (Bug#32939)Noam Postavsky2019-11-283-5/+29
| | | | | | | | | | | | | | | | | | | | | | | | Add some hints to the message for byte compiler free & unused variable warnings, and 'void-variable' errors where the variable has confusable quote characters in it. * lisp/help.el (uni-confusables), uni-confusables-regexp): New constants. (help-command-error-confusable-suggestions): New function, added to `command-error-function'. (help-uni-confusable-suggestions): New function. * lisp/emacs-lisp/bytecomp.el (byte-compile-variable-ref): * lisp/emacs-lisp/cconv.el (cconv--analyze-use): Use it. * lisp/emacs-lisp/lisp-mode.el (lisp--match-confusable-symbol-character): New function. (lisp-fdefs): Use it to fontify confusable characters with font-lock-warning-face when they occur in symbol names. * doc/lispref/modes.texi (Faces for Font Lock): * doc/lispref/objects.texi (Basic Char Syntax): Recommend backslash escaping of confusable characters, and mention new fontification. * etc/NEWS: Announce the new fontification behavior. * test/lisp/emacs-lisp/lisp-mode-tests.el (lisp-fontify-confusables): New test.
* Use new macro debounce-reduce to make mouse scaling of images more responsiveJuri Linkov2019-11-241-0/+44
| | | | | | | | | | * lisp/emacs-lisp/timer.el (debounce, debounce-reduce): New macros. * lisp/image.el (image-increase-size, image-decrease-size): Use funcall to call image--change-size-function. (image--change-size-function): Move code from defun of image--change-size to defvar that has the value of lambda returned from debounce-reduce. (Bug#38187)
* Fix edebug instrumentation removing from advised functionsMichael Heerdegen2019-11-231-6/+22
| | | | | * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Handle advised functions correctly.
* Refix conditional step clauses in cl-loopdickmao2019-11-221-59/+37
| | | | | | | | | | | | | * lisp/emacs-lisp/cl-macs.el (cl--loop-bindings, cl--loop-symbol-macs, cl-loop): Add cl--loop-conditions, remove cl--loop-guard-cond. (cl--push-clause-loop-body): Apply clause to both cl--loop-conditions and cl--loop-body (cl--parse-loop-clause): Use cl--push-clause-loop-body. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-macs-loop-and-assignment): Use docstring. (cl-macs-loop-for-as-arith): Removed expected failure. (cl-macs-loop-conditional-step-clauses): Add some tests (bug#29799).
* Fix uses of inhibit-message in package.elEli Zaretskii2019-11-221-5/+1
| | | | | | | | * lisp/emacs-lisp/package.el (package-generate-autoloads) (package--compile, package--save-selected-packages): Don't use 'inhibit-message' to bind 'noninteractive' and 'save-silently', since 'inhibit-message' already disables all messages. (Bug#38264)
* * lisp/emacs-lisp/smie.el (smie-next-sexp): Fix bug#38255Stefan Monnier2019-11-211-1/+5
| | | | | | Handle the case where the token is not in `smie-grammar`, either because the caller is making an error, or because it's a paren-like token that's not handled in the grammar but directly via the syntax tables.
* Make pp-buffer into a commandLars Ingebrigtsen2019-11-211-0/+1
| | | | * lisp/emacs-lisp/pp.el (pp-buffer): Make into a command (bug#38306).
* Make with-suppressed-warnings work for macros, tooLars Ingebrigtsen2019-11-201-1/+1
| | | | | | * lisp/emacs-lisp/macroexp.el (macroexp-macroexpand): Pass the macro/alias symbol on to byte-compile-warning-enabled-p so that with-suppressed-warnings works for macros, too.
* Fix cl-prettyexpand in the non-FULL caseLars Ingebrigtsen2019-11-181-9/+7
| | | | | | | | * lisp/emacs-lisp/cl-extra.el (cl-prettyexpand): This function has apparently not worked for at least a couple of decades (bug#38206) unless supplied with a FULL parameter. Make the FULL parameter obsolete and make the function always work as it did with a non-nil FULL.
* Make edebug-remove-instrumentation remove macro instrumentationLars Ingebrigtsen2019-11-151-2/+3
| | | | | | * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Macros can also have edebug instrumentation, so remove that as well (bug#38195).
* Allow using edebug-remove-instrumentation more fine-grainedLars Ingebrigtsen2019-11-141-17/+31
| | | | | | * lisp/emacs-lisp/edebug.el (edebug-remove-instrumentation): Prompt the user for what functions to remove instrumentation from a la cancel-edebug-on-entry (bug#38195).
* * lisp/emacs-lisp/easymenu.el (easy-menu-make-symbol): Fix last changeStefan Monnier2019-11-121-1/+1
|
* Fix some quoting glitches in doc stringsPaul Eggert2019-11-111-3/+3
|
* Document Lisp floats a bit betterPaul Eggert2019-11-101-9/+7
| | | | | | | | | | | | | * doc/lispref/numbers.texi (Float Basics): * doc/misc/cl.texi (Implementation Parameters): * lisp/emacs-lisp/cl-lib.el (cl-most-positive-float) (cl-least-positive-float) (cl-least-positive-normalized-float, cl-float-epsilon) (cl-float-negative-epsilon): Document IEEE floating point better. Don’t suggest that Emacs might use some floating-point format other than IEEE format, as Emacs currently assumes IEEE in several places and there seems little point in removing those assumptions.
* * lisp/autorevert.el: Use 'minibuffer-message' to not obscure the prompt.Juri Linkov2019-11-101-1/+1
| | | | | | | | | | | * lisp/autorevert.el (auto-revert-handler): Use 'minibuffer-message' instead of 'message'. Call it from the original window's buffer that in case of the minibuffer should be current, so minibuffer-message could add a message to it. (Bug#34614) * lisp/emacs-lisp/ert-x.el (ert--make-message-advice): Add nil to the list of values to not use for format-message, because minibuffer-message calls 'message' with nil argument, and tests fail.
* Add CHARS arg to read-char-from-minibuffer compatible with read-char-choice.Juri Linkov2019-11-101-3/+3
| | | | | | | | | | | | | | | * lisp/simple.el (read-char-history): Rename from read-char-from-minibuffer-history. (Bug#38076) (read-char-from-minibuffer-insert-char): Rename from read-char-from-minibuffer-self-insert. (read-char-from-minibuffer-map-hash): New defconst. (read-char-from-minibuffer-insert-other): New command. (read-char-from-minibuffer): Add optional args CHARS and HISTORY. (zap-to-char): Use 'read-char-history as HISTORY arg of read-char-from-minibuffer. * lisp/emacs-lisp/map-ynp.el (read-answer): Use sit-for instead of sleep-for. Replace short answer history yes-or-no-p-history with read-char-history.