Commit graph

4660 commits

Author SHA1 Message Date
Phillip Lord
feadec307d Improve error signalling for seq-subseq.
The existing behaviour for seq-subseq is to error when indexes are too
large, but to silently ignore numbers which are too negative for lists.
String and vector handling errors in both cases. This has been
regularlised.

Error signalling behaviour has been explicitly added to the docstring of
seq-subseq, and also to cl-subseq which largely defers to
seq-subseq (and is therefore also impacted by this change).

Tests have been added for these exceptional cases, as well as one non
exceptional base case.
2015-08-07 22:12:59 +01:00
Artur Malabarba
0aec2aaccd * lisp/emacs-lisp/package.el: Simplify describe-package-1
(package-help-section-name-face): New face.
(package--print-help-section): New function.
(describe-package-1): Refactor section printing.

(package-make-button): Use face instead of font-lock-face, which
doesn't work on buttons.
2015-08-06 11:27:37 +01:00
Artur Malabarba
1be349c628 * lisp/emacs-lisp/package.el: Define custom faces
(package-name-face, package-description-face)
(package-status-built-in-face, package-status-external-face)
(package-status-available-face, package-status-new-face)
(package-status-held-face, package-status-disabled-face)
(package-status-installed-face, package-status-dependency-face)
(package-status-unsigned-face, package-status-incompat-face)
(package-status-avail-obso-face): New faces.
(package-menu--print-info-simple): Use them.
2015-08-06 11:27:37 +01:00
Artur Malabarba
8a4b8ae32f * lisp/emacs-lisp/package.el (package-menu-mode-map): Convert menu
definitions to `easy-menu-define', improve a couple to account for
async, and add a couple of new commands.
2015-08-04 00:39:04 +01:00
Paul Eggert
bd3b426ebb Substitute some customization etc. doc strings
These changes apply substitute-command-keys to some
doc strings that were going through untranslated
when creating customization or other widgets.
* lisp/cus-edit.el (custom-group-value-create):
* lisp/wid-edit.el (widget-default-create):
(widget-push-button-value-create):
Treat the widget tag as a doc string.
* lisp/emacs-lisp/cl-extra.el (cl--describe-class-slot):
Treat the :documentation value as a doc string.
* lisp/wid-edit.el (widget-choose):
Treat the choice names as doc strings.
(widget-default-create): Treat the :doc value as a doc string.
(widget-toggle-value-create): Treat the :on and :off values
as doc strings.
(widget-documentation-string-value-create):
Substitute the doc string.
2015-08-02 00:05:25 -07:00
Glenn Morris
073ad26d36 ; Auto-commit of loaddefs files. 2015-08-01 06:18:42 -04:00
Paul Eggert
eb0f65b4fb Don't overflow if computing approximate percentage
* lisp/align.el (align-region):
* lisp/cedet/semantic.el (semantic-repeat-parse-whole-stream):
* lisp/cedet/semantic/wisent.el (wisent-parse-region):
* lisp/cus-edit.el (custom-buffer-create-internal):
* lisp/emacs-lisp/checkdoc.el (checkdoc-interactive-ispell-loop)
(checkdoc-message-interactive-ispell-loop, checkdoc-next-error)
(checkdoc-next-message-error):
* lisp/emacs-lisp/eieio-opt.el (eieio-display-method-list):
* lisp/epa.el (epa-progress-callback-function):
* lisp/erc/erc-dcc.el (erc-dcc-do-LIST-command):
* lisp/ffap.el (ffap-menu-rescan):
* lisp/gnus/nnbabyl.el (nnbabyl-retrieve-headers):
* lisp/gnus/nndiary.el (nndiary-retrieve-headers):
* lisp/gnus/nneething.el (nneething-retrieve-headers):
* lisp/gnus/nnmbox.el (nnmbox-retrieve-headers):
* lisp/gnus/nnmh.el (nnmh-retrieve-headers):
* lisp/gnus/nnml.el (nnml-retrieve-headers):
* lisp/gnus/nnspool.el (nnspool-retrieve-headers):
* lisp/gnus/nntp.el (nntp-retrieve-headers)
(nntp-retrieve-articles):
* lisp/imenu.el (imenu--relative-position):
* lisp/international/ja-dic-cnv.el (skkdic-collect-okuri-nasi)
(skkdic-convert-okuri-nasi):
* lisp/net/ange-ftp.el (ange-ftp-process-handle-hash):
* lisp/nxml/rng-valid.el (rng-compute-mode-line-string):
* lisp/org/org-list.el (org-update-checkbox-count):
* lisp/org/org.el (org-table-map-tables)
(org-update-parent-todo-statistics):
* lisp/play/decipher.el (decipher-insert-frequency-counts)
(decipher-analyze-buffer):
* lisp/profiler.el (profiler-format-percent):
* lisp/progmodes/cc-cmds.el (c-progress-update):
* lisp/progmodes/cpp.el (cpp-highlight-buffer):
* lisp/progmodes/idlwave.el (idlwave-convert-xml-system-routine-info)
(idlwave-list-load-path-shadows):
* lisp/progmodes/opascal.el (opascal-step-progress):
* lisp/progmodes/vhdl-mode.el (vhdl-update-progress-info)
(vhdl-scan-directory-contents):
* lisp/textmodes/bibtex.el (bibtex-progress-message):
* lisp/textmodes/flyspell.el (flyspell-small-region)
(flyspell-external-point-words):
* lisp/textmodes/table.el (table-recognize):
Prefer (floor (* 100.0 NUMERATOR) DENOMINATOR) when calculating
progress-report percentages and the like.  This avoids problems
if (* 100 NUMERATOR) would overflow.
* lisp/gnus/gnus-registry.el (gnus-registry-import-eld):
* lisp/gnus/registry.el (registry-reindex):
Use (* 100.0 ...) rather than (* 100 ...) to avoid int overflow issues.
* lisp/descr-text.el (describe-char):
* lisp/org/org-colview.el (org-nofm-to-completion):
* lisp/ps-print.el (ps-plot):
* lisp/simple.el (what-cursor-position):
Prefer (round (* 100.0 NUMERATOR) DENOMINATOR) to a
more-complicated and less-accurate approximation.
2015-07-31 10:13:38 -07:00
Artur Malabarba
8d332aecca * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print): Fix bug
When updating the very last entry, tabulated-list-print would
erase it and then try to look at the next one (which obviously
isn't there).
2015-07-31 12:51:22 +01:00
Stephen Leake
fed091f7c2 add file name to autoload error messages.
* lisp/emacs-lisp/autoload.el (autoload-save-buffers): add condition-case
  to add file name to error message.
2015-07-22 04:31:44 -05:00
Stefan Monnier
5abadebc35 (advice--called-interactively-skip): Fix inf-loop (bug#21083)
* lisp/emacs-lisp/nadvice.el (advice--called-interactively-skip):
Fix inf-loop (bug#21083).
2015-07-21 19:09:12 -04:00
Dmitry Gutov
7f58daf816 Make eldoc timer non-repeatable
* lisp/emacs-lisp/eldoc.el (eldoc-schedule-timer): Make the timer
non-repeatable.  Since it's on post-command hook, that just wasted
CPU cycles.
2015-07-21 16:58:14 +03:00
Artur Malabarba
6413c10131 * lisp/emacs-lisp/package.el: Fix warnings 2015-07-17 23:51:32 +01:00
Artur Malabarba
86814e7a80 * lisp/emacs-lisp/package.el (package-buffer-info):
Add author and maintainers to `package-buffer-info'.
2015-07-17 23:44:39 +01:00
Artur Malabarba
ca66737c53 * lisp/emacs-lisp/package.el: Many small changes
Replace all instances of 'face with 'font-lock-face.
(describe-package-1): Improve some strings and move the summary up the
list.
(package-install-file): Update docstring.
(package-menu-hide-package): Bind to `H'.
2015-07-17 23:42:16 +01:00
Artur Malabarba
e276b42800 * lisp/emacs-lisp/package.el (package--with-work-buffer-async):
Fix error handling.
2015-07-17 23:42:16 +01:00
Nicolas Petton
5509e2f93e Add support for gv.el in map.el
* lisp/emacs-lisp/map.el (map-elt, map-delete): Declare a gv-expander.
* lisp/emacs-lisp/map.el (map-put): Refactor using `setf' and `map-elt'.
* test/automated/map-tests.el: Update tests to work with the new
implementations of map-elt and map-put.
2015-07-09 19:49:47 +02:00
Glenn Morris
2a1591f4d4 * lisp/emacs-lisp/debug.el (debug-help-follow): Use describe-symbol. 2015-07-09 13:18:57 -04:00
Stefan Monnier
8fb09416ac (gv-setter, gv-synthetic-place, gv-delay-error): New funs/macros
* lisp/emacs-lisp/gv.el (gv-setter): New function.
(gv-invalid-place): New error.
(gv-get): Use them.
(gv-synthetic-place, gv-delay-error): New places.
* lisp/emacs-lisp/cl-generic.el (cl--generic-setf-rewrite): Remove.
(cl-defgeneric, cl-defmethod): Use gv-setter.
2015-07-07 11:37:04 -04:00
Artur Malabarba
1ffd9abcd7 * lisp/emacs-lisp/package.el (package-compute-transaction): Bug fix
Fix void variable due to `found-something' being in the wrong `let'.
2015-07-07 14:59:47 +01:00
Stefan Monnier
59b5723c9b Add online-help support to describe types
* lisp/help-fns.el (describe-symbol-backends): Move to help-mode.el.
(describe-symbol): Improve the selection of default.

* lisp/help-mode.el: Require cl-lib.
(describe-symbol-backends): Move from help-fns.el.
(help-make-xrefs): Use it.

* lisp/emacs-lisp/cl-extra.el (describe-symbol-backends): Add entry
for types.
(cl--typedef-regexp): New const.
(find-function-regexp-alist): Add entry for types.
(cl-help-type, cl-type-definition): New buttons.
(cl-find-class): New function.
(cl-describe-type): New command.
(cl--describe-class, cl--describe-class-slot)
(cl--describe-class-slots): New functions, moved from eieio-opt.el.

* lisp/emacs-lisp/cl-generic.el (cl--generic-method-documentation)
(cl--generic-all-functions, cl--generic-specializers-apply-to-type-p):
New functions.  Moved from eieio-opt.el.
(cl--generic-class-parents): New function, extracted from
cl--generic-struct-specializers.
(cl--generic-struct-specializers): Use it.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Use pcase-dolist.
Improve constructor's docstrings.
(cl-struct-unknown-slot): New error.
(cl-struct-slot-offset): Use it.

* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Record the type
definition in current-load-list.

* lisp/emacs-lisp/eieio-core.el (eieio--known-slot-names): New var.
(eieio--add-new-slot): Set it.
(eieio-defclass-internal): Use new name for current-load-list.
(eieio-oref): Add compiler-macro to warn about unknown slots.
* lisp/emacs-lisp/eieio.el (defclass): Update eieio--known-slot-names
as compile-time as well.  Improve constructor docstrings.

* lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
(eieio--help-print-slot, eieio-help-class-slots): Move to cl-extra.el.
(eieio-class-def): Remove button.
(eieio-help-constructor): Use new name for load-history element.
(eieio--specializers-apply-to-class-p, eieio-all-generic-functions)
(eieio-method-documentation): Move to cl-generic.el.
(eieio-display-method-list): Use new names.

* lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression):
Add "define-linline".
(lisp-fdefs): Remove "defsubst".
(el-fdefs): Add "defsubst", "cl-defsubst", and "define-linline".

* lisp/emacs-lisp/macroexp.el (macroexp--warned): New var.
(macroexp--warn-and-return): Use it to avoid inf-loops.
Add `compile-only' argument.
2015-07-07 02:14:16 -04:00
Stefan Monnier
2a8dca13a7 (eieio-persistent-save): Don't ignore `file' arg (bug#20972)
* lisp/emacs-lisp/eieio-base.el (eieio-persistent-save): Don't ignore
`file' arg.  Always use utf-8-emacs.  Use with-temp-buffer and cl-letf.
2015-07-06 11:55:37 -04:00
Stefan Monnier
a0010db41c * lisp/emacs-lisp/eieio-core.el (eieio--class-v): Remove
* lisp/emacs-lisp/eieio-core.el, lisp/emacs-lisp/eieio.el,
  lisp/emacs-lisp/eieio-opt.el, lisp/emacs-lisp/eieio-compat.el:
Use cl--find-class instead.
2015-07-02 10:59:32 -04:00
Nicolas Richard
145f28f814 * lisp/emacs-lisp/seq.el (seq-difference): Fix typo in docstring 2015-07-02 00:58:16 +02:00
Stefan Monnier
87464d637a (cl--copy-slot-descriptor): Copy the `props' alist as well
* lisp/emacs-lisp/cl-preloaded.el (cl--copy-slot-descriptor-1):
Rename from cl--copy-slot-descriptor.
(cl--copy-slot-descriptor): New function.  Copy the alist (bug#20914).
2015-07-01 09:31:25 -04:00
Paul Eggert
cc7acdbd0e Spelling fixes 2015-06-30 19:47:29 -07:00
Paul Eggert
3213d77070 In strings, prefer plain and ' to \ and \'
* lisp/allout.el (allout-insert-listified):
* lisp/emacs-lisp/easy-mmode.el (define-globalized-minor-mode):
* lisp/ls-lisp.el (ls-lisp-UCA-like-collation)
(ls-lisp-string-lessp):
* lisp/menu-bar.el (menu-bar-open):
* lisp/obsolete/otodo-mode.el (todo-top-priorities):
* lisp/progmodes/compile.el (compile):
* lisp/progmodes/etags.el (tags-loop-scan):
* lisp/progmodes/make-mode.el (makefile-browser-insert-continuation):
* lisp/subr.el (posn-actual-col-row):
* lisp/term/pc-win.el (x-list-fonts):
* lisp/textmodes/texinfmt.el (texinfmt-version):
* lisp/textmodes/texnfo-upd.el (texinfo-master-menu):
* lisp/time.el (display-time-world-list):
* lisp/tmm.el (tmm-menubar):
* src/buffer.c (syms_of_buffer):
* src/fileio.c (syms_of_fileio):
Omit unnecessary and confusing backslash before quote.
* lisp/erc/erc.el (erc-cmd-LASTLOG):
* lisp/progmodes/flymake.el (flymake-fix-file-name):
* lisp/progmodes/vhdl-mode.el (vhdl-in-extended-identifier-p):
Fix string that was intended to escape a backslash and not a quote.
2015-06-30 15:08:02 -07:00
Glenn Morris
5200c2baef Improve reproducibility of generated loaddefs file.
* lisp/emacs-lisp/autoload.el (autoload-generate-file-autoloads):
Make the return value the modtime of the input file (if no autoloads).
(update-directory-autoloads): In the "no autoloads" section,
use "most recent modtime" rather than "current time".

; http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00688.html
2015-06-30 14:59:04 -04:00
Artur Malabarba
0dfea4562e * lisp/emacs-lisp/package.el (package--remove-hidden): Fix logic
(Bug#20930)
2015-06-30 19:20:12 +01:00
Nicolas Petton
b1047c3b42 Add seq-min and seq-max
Bump version number.

* lisp/emacs-lisp/seq.el (seq-min, seq-max): New functions.
* test/automated/seq-tests.el: Add tests for seq-min and seq-max.
2015-06-30 18:40:19 +02:00
Artur Malabarba
8d3b910213 * lisp/emacs-lisp/package.el (package-compute-transaction):
Don't assume version sorting.
2015-06-30 10:47:25 +01:00
Artur Malabarba
d0a5162fd8 * lisp/emacs-lisp/package.el (package--save-selected-packages):
Don't save before init time, to avoid overwriting configurations.
(Bug#20855)
2015-06-30 10:19:15 +01:00
Artur Malabarba
23d00d4cdd * lisp/emacs-lisp/tabulated-list.el (tabulated-list-print):
Don't block remember-pos if buffer isn't displayed.  (Bug#20921)
2015-06-29 10:11:16 +01:00
Nicolas Richard
6689b537c8 * package.el (describe-package): Use symbol-at-point as additional guess 2015-06-29 09:14:58 +02:00
Nicolas Richard
a4760a347e * package.el (describe-package): Convert the guess to a string 2015-06-29 09:14:47 +02:00
Paul Eggert
da5e0050ac cl-extra fixes for most-negative-fixnum
* lisp/emacs-lisp/cl-extra.el (cl-gcd, cl-lcm, cl-random):
Don't mishandle an argument equal to most-negative-fixnum,
whose absolute value equals itself.
(cl-gcd, cl-lcm): Use dolist rather than doing it by hand.
2015-06-27 12:19:22 -07:00
Paul Eggert
efc262f5f8 Initialize cl--gensym-counter to 0
Previously it was initialized to a random value, which made it
harder to reproduce earlier Emacs runs.  The need for a random
value went away when Emacs introduced and used the #: syntax for
uninterned symbols (Bug#20862).
* doc/misc/cl.texi (Creating Symbols, Common Lisp Compatibility):
Document that cl--gensym-counter now starts with 0.
* lisp/emacs-lisp/cl-lib.el (cl--gensym-counter): Remove.
(cl--random-time): Move to near only remaining use.
* lisp/emacs-lisp/cl-macs.el (cl--gensym-counter): Initialize to 0.
2015-06-27 10:59:08 -07:00
Paul Eggert
5e3fde03b4 Improve docstring for macroexp-let2
* lisp/emacs-lisp/macroexp.el (macroexp-let2):
Improve as per suggestion by RMS in:
http://lists.gnu.org/archive/html/emacs-devel/2015-06/msg00621.html
Also, rename args to match new doc string.
2015-06-27 08:35:13 -07:00
Leo Liu
1546c6f2b3 Fix indentation for with-output-to-string
* lisp/emacs-lisp/cl-indent.el: Fix indentation for
  `with-output-to-string' in elisp.

  Revert "lisp/emacs-lisp/cl-indent.el: Fix indent of with-output-to-string"
  This reverts commit 659199f2ca.
2015-06-26 18:03:30 +08:00
Oleh Krehel
659199f2ca lisp/emacs-lisp/cl-indent.el: Fix indent of with-output-to-string
* lisp/emacs-lisp/cl-indent.el (common-lisp-indent-function):
  `with-output-to-string' should have the same indent as `progn'.
  This is in line with the declaration of `with-output-to-string'.
2015-06-25 13:17:30 +02:00
Artur Malabarba
567bf811dc * lisp/emacs-lisp/package.el: Exclude packages by name
(package-hidden-regexps): New variable.
(package-menu--refresh): Use it.
(package-menu-hide-package): New command.
2015-06-22 19:02:08 +01:00
Artur Malabarba
a9d9b66ebb * lisp/emacs-lisp/package.el: Rename hide-obsolete to toggle-hiding 2015-06-22 19:02:08 +01:00
Dmitry Gutov
0cee2fbc7d Make find-function-on-key use the current window
* lisp/emacs-lisp/find-func.el (find-function-on-key-do-it):
Extract from `find-function-on-key', add a second argument.
(find-function-on-key): Use it (bug#19679).
(find-function-on-key-other-window)
(find-function-on-key-other-frame): New commands.
2015-06-22 03:25:38 +03:00
Nicolas Petton
fa52edd4c4 Revert "Define `map-elt' as a generalized variable"
This reverts commit 8b6d82d3ca.
2015-06-21 23:44:50 +02:00
Paul Eggert
38bb9ff0f4 Fix some “nested” quoting confusion in doc strings
* lisp/emacs-lisp/advice.el (ad-map-arglists):
* lisp/kermit.el (kermit-clean-on):
* lisp/mh-e/mh-comp.el (mh-repl-group-formfile):
* src/keyboard.c (Frecursive_edit):
Use curved quotes when quoting text containing apostrophe,
so that the apostrophe isn't curved in the output.
2015-06-21 12:38:08 -07:00
Nicolas Petton
8b6d82d3ca Define `map-elt' as a generalized variable
* lisp/emacs-lisp/map.el (map-elt): Define a gv-expander.

* lisp/emacs-lisp/map.el (map--dispatch): Tighten the code.

* lisp/emacs-lisp/map.el (map-put): Redefine it as a function using a
`setf' with `map-elt'.

* test/automated/map-tests.el: Comment out `test-map-put-literal'.
2015-06-21 20:49:16 +02:00
Nicolas Petton
a94202b78a Reuse `alist-get' in map.el
* lisp/emacs-lisp/map.el (map-elt): Use `alist-get' to retrieve alist
elements.
2015-06-21 20:26:52 +02:00
Glenn Morris
06d503faeb ; Auto-commit of loaddefs files. 2015-06-19 06:20:41 -04:00
Paul Eggert
c4151ebe15 Improve the optional translation of quotes
Fix several problems with the recently-added custom variable
help-quote-translation where the code would quote inconsistently
in help buffers.  Add support for quoting 'like this', which
is common in other GNU programs in ASCII environments.  Change
help-quote-translation to use more mnemonic values: values are now the
initial quoting char, e.g., (setq help-quote-translation ?`) gets the
traditional Emacs help-buffer quoting style `like this'.  Change the
default behavior of substitute-command-keys to match what's done in
set-locale-environment, i.e., quote ‘like this’ if displayable,
'like this' otherwise.
* doc/lispref/help.texi (Keys in Documentation): Document
new behavior of substitute-command-keys, and document
help-quote-translation.
* doc/lispref/tips.texi (Documentation Tips):
Mention the effect of help-quote-translation.
* etc/NEWS: Mention new behavior of substitute-command-keys,
and merge help-quote-translation news into it.
When talking about doc strings, mention new ways to type quotes.
* lisp/cedet/mode-local.el (overload-docstring-extension):
Revert my recent change to this function, which shouldn't be
needed as the result is a doc string.
* lisp/cedet/mode-local.el (mode-local-print-binding)
(mode-local-describe-bindings-2):
* lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
* lisp/cus-theme.el (describe-theme-1):
* lisp/descr-text.el (describe-text-properties-1, describe-char):
* lisp/emacs-lisp/cl-generic.el (cl--generic-describe):
* lisp/emacs-lisp/eieio-opt.el (eieio-help-class)
(eieio-help-constructor):
* lisp/emacs-lisp/package.el (describe-package-1):
* lisp/faces.el (describe-face):
* lisp/help-fns.el (help-fns--key-bindings)
(help-fns--compiler-macro, help-fns--parent-mode)
(help-fns--obsolete, help-fns--interactive-only)
(describe-function-1, describe-variable):
* lisp/help.el (describe-mode):
Use substitute-command-keys to ensure a more-consistent quoting
style in help buffers.
* lisp/cus-start.el (standard):
Document new help-quote-translation behavior.
* lisp/emacs-lisp/lisp-mode.el (lisp-fdefs):
* lisp/help-mode.el (help-xref-symbol-regexp, help-xref-info-regexp)
(help-xref-url-regexp):
* lisp/international/mule-cmds.el (help-xref-mule-regexp-template):
* lisp/wid-edit.el (widget-documentation-link-regexp):
Also match 'foo', in case we're in a help buffer generated when
help-quote-translation is ?'.
* src/doc.c: Include disptab.h, for DISP_CHAR_VECTOR.
(LEFT_SINGLE_QUOTATION_MARK, uLSQM0, uLSQM1, uLSQM2, uRSQM0)
(uRSQM1, uRSQM2, LSQM, RSQM): New constants.
(Fsubstitute_command_keys): Document and implement new behavior.
(Vhelp_quote_translation): Document new behavior.
2015-06-19 00:38:45 -07:00
Artur Malabarba
711e14ddad * lisp/emacs-lisp/package.el: Don't always propagate async errors
(package--with-work-buffer-async): Only propagate the error if the
callback returns non-nil.
(package--download-one-archive): Return nil on the signature
checking callback if we accept unsigned.
(package--download-and-read-archives): Return non-nil on the
archive download callback.
2015-06-18 14:28:03 +01:00
Artur Malabarba
517ab6238a * lisp/emacs-lisp/package.el (package-menu--perform-transaction):
Properly delete packages.  (Bug#20836)
2015-06-18 09:24:36 +01:00