Commit graph

4746 commits

Author SHA1 Message Date
Stefan Monnier
be81cc2707 * lisp/emacs-lisp/smie.el: Use declare' for pure'
(smie-precs->prec2, smie-merge-prec2s, smie-bnf->prec2, smie-prec2->grammar):
Use `declare'.
2015-10-29 10:35:08 -04:00
Stefan Monnier
aa1c4ae271 * lisp/emacs-lisp/cl-generic.el: Accomodate future changes
(cl--generic-generalizer): Add `name' field.
(cl-generic-make-generalizer): Add corresponding `name' argument.
(cl-generic-define-generalizer): New macro.
(cl--generic-head-generalizer, cl--generic-eql-generalizer)
(cl--generic-struct-generalizer, cl--generic-typeof-generalizer)
(cl--generic-t-generalizer): Use it.
(cl-generic-ensure-function): Add `noerror' argument.
(cl-generic-define): Use it so we don't follow aliases.
(cl-generic-define-method): Preserve pre-existing ordering of methods.
(cl--generic-arg-specializer): New function.
(cl--generic-cache-miss): Use it.
(cl-generic-generalizers): Only fset a temporary definition
during bootstrap.
(cl--generic-struct-tag, cl--generic-struct-specializers):
Allow extra arguments.

* lisp/emacs-lisp/eieio-compat.el (eieio--generic-static-symbol-generalizer)
(eieio--generic-static-object-generalizer): Use cl-generic-define-generalizer.
(eieio--generic-static-symbol-specializers): Allow extra arguments.

* lisp/emacs-lisp/eieio-core.el (eieio--generic-generalizer)
(eieio--generic-subclass-generalizer): Use cl-generic-define-generalizer.
(eieio--generic-subclass-specializers): Allow extra arguments.
2015-10-29 10:33:36 -04:00
Stefan Monnier
c0d866dd69 * lisp/emacs-lisp/bytecomp.el (compile-defun): Add defvars in scope. 2015-10-29 10:31:40 -04:00
Stefan Monnier
d7a67c5a2f (internal--syntax-propertize): Save match-data here (bug#21766)
* lisp/emacs-lisp/syntax.el (internal--syntax-propertize): Save match-data.
* lisp/simple.el (delete-trailing-whitespace): Undo last change.
2015-10-28 22:18:47 -04:00
Stefan Monnier
d5ee655c17 * lisp/emacs-lisp/macroexp.el: Tweak macroexp-if optimizations
(macroexp-unprogn): Make sure we never return an empty list.
(macroexp-if): Remove unused (and unsafe) optimization.
Optimize (if A T (if B T E)) into (if (or A B) T E) instead, which does
occur occasionally.
2015-10-28 13:59:42 -04:00
Artur Malabarba
7dfe247864 * lisp/emacs-lisp/seq.el (seq-mapn): New function
* doc/lispref/sequences.texi (Sequence Functions): Document seq-mapn
2015-10-28 15:40:23 +00:00
Nicolas Petton
61b63f460d * lisp/emacs-lisp/thunk.el (thunk-delay): Fix the macro. 2015-10-28 09:56:03 +01:00
Nicolas Petton
22579baf62 * lisp/emacs-lisp/map.el: Better docstrings. 2015-10-26 22:23:02 +01:00
Nicolas Petton
5a9842c933 * lisp/emacs-lisp/seq.el: Better docstrings. 2015-10-26 22:17:41 +01:00
Nicolas Petton
7637849321 * lisp/emacs-lisp/seq.el: Rename all seq argumentss to sequence. 2015-10-26 22:17:41 +01:00
Phillip Lord
5c86118b4b * lisp/emacs-lisp/ert.el: Print results without newline escaping 2015-10-26 20:27:16 +00:00
Nicolas Petton
8b47daab5c * lisp/emacs-lisp/thunk.el: Better documentation. 2015-10-23 18:06:54 +02:00
Stephen Leake
4d3a595d8d `load-path' should contain only directory names
* lisp/emacs-lisp/package.el (package-autoload-ensure-default-file):
`load-path' should contain only directory names
2015-10-23 08:54:17 -05:00
Nicolas Petton
0f443a1236 New library thunk.el
thunk.el is extracted from stream.el in ELPA, with additional tests.

* lisp/emacs-lisp/thunk.el: New file.
* test/automated/thunk-tests.el: New file.
* etc/NEWS: Add information about thunk.el
2015-10-23 13:22:21 +02:00
Paul Eggert
e9af822ac3 (/ N) now returns the reciprocal of N
This is more compatible with Common Lisp and XEmacs (Bug#21690).  See:
http://lists.gnu.org/archive/html/emacs-devel/2015-10/msg01053.html
* lisp/color.el (color-hue-to-rgb, color-hsl-to-rgb)
(color-xyz-to-srgb, color-xyz-to-lab):
* lisp/emacs-lisp/cl-extra.el (cl-float-limits):
* lisp/net/shr-color.el (shr-color-hue-to-rgb)
(shr-color-hsl-to-rgb-fractions):
Exploit the change to simplify the code a bit.
* lisp/emacs-lisp/bytecomp.el (byte-compile-quo):
Don’t complain about single-argument calls to ‘/’.
* src/data.c (arith_driver, float_arith_driver):
Implement the change.
2015-10-20 18:22:48 -07:00
Nicolas Petton
04d604e055 New function seq-position
* lisp/emacs-lisp/seq.el (seq-position): New function.
* test/automated/seq-tests.el: New tests for seq-position.
* doc/lispref/sequences.texi: Add documentation for `seq-position'.
2015-10-20 00:39:27 +02:00
Mark Oteiza
59c67f8181 * lisp/emacs-lisp/eldoc.el: Add back-to-indentation to the command list 2015-10-17 11:49:36 -04:00
Artur Malabarba
8868b83402 * emacs-lisp/package.el: Reload archive-contents if priorities change
(package--old-archive-priorities): New variable.
(package-read-all-archive-contents, package-menu--refresh): Use it
to decide when the `package-archive-contents' needs to be read
again.
2015-10-16 23:55:26 +01:00
Nicolas Petton
17d4f60b55 Fix typos in docstrings
* lisp/emacs-lisp/map.el:
* lisp/emacs-lisp/seq.el: Fix typos in the docstrings of the pcase
  macros.
2015-10-14 17:57:32 +02:00
Nicolas Petton
b5e2d74950 Better docstrings in seq.el and map.el
* lisp/emacs-lisp/map.el:
* lisp/emacs-lisp/seq.el: Improve the docstring for the pcase patterns.
2015-10-14 09:40:10 +02:00
Artur Malabarba
e60a1e2717 * lisp/emacs-lisp/tabulated-list.el (tabulated-list-sort):
Check if column can be sorted before trying.  (Bug#21639)
2015-10-07 15:13:07 +01:00
Aaron Ecay
81558130c1 lisp/emacs-lisp/package.el (package-install): Fix name error
* lisp/emacs-lisp/package.el (package-install): Fix error when pkg is
  not a package-desc object.  Also clarify documentation.  (Bug#21625)
2015-10-06 19:38:11 +01:00
Paul Eggert
dd6346e00c Fix a few problems with directed quotes
This is in response to a problem report by Kaushal Modi in:
http://bugs.gnu.org/21588#25
* lisp/cedet/mode-local.el (describe-mode-local-overload):
* lisp/emacs-lisp/bytecomp.el (byte-compile-fix-header):
* lisp/info-xref.el (info-xref-check-all-custom):
* lisp/mail/emacsbug.el (report-emacs-bug-hook):
Prefer directed to undirected single quotes in diagnostics.
2015-10-01 21:44:35 -07:00
Stefan Monnier
1fea2f3b74 * lisp/emacs-lisp/lisp-mode.el (let-when-compile): Work like let* 2015-09-29 15:08:55 -04:00
Dmitry Gutov
166a6556d0 ; Remove extraneous "coding: utf-8" specifications in Elisp files 2015-09-29 01:39:46 +03:00
Nicolas Petton
f0b71429b9 Better documentation for seq-some
* doc/lispref/sequences.texi:
* lisp/emacs-lisp/seq.el: Update the documentation of seq-some to
guarantee that the returned value is the first non-nil value that
resulted from applying the predicate.
2015-09-28 21:15:58 +02:00
Alan Mackenzie
feddb99afd Resurrect edebug-set-initial-mode, repurposing it to set the global mode.
lisp/emacs-lisp/edebug.el (edebug-initial-mode-alist): Uncomment, and
amend to match current modes and functions.
(edebug-set-initial-mode): Uncomment and change from setting a defun's
`edebug-initial-mode''s property to setting the variable
`edebug-initial-mode'.
(top level): Create new binding C-x C-a C-m for
`edebug-set-initial-mode'.

doc/lispref/edebug.texi (Edebug Execution Modes): document
`edebug-set-initial-mode' and its new key binding.
(Edebug Options): Mention the new command in the pertinent place.

etc/NEWS: Write entry for this change.
2015-09-25 11:31:50 +00:00
Stefan Monnier
8f88db1494 Fix recent bootstrap problems
* src/syntax.c (parse_sexp_propertize): Fix last fix.
* lisp/nxml/nxml-mode.el (nxml-comment-quote-nested): Fix paren typo.
* lisp/emacs-lisp/lisp-mode.el: Require cl-lib for cl-progv.
2015-09-24 08:54:39 -04:00
Oleh Krehel
0a133c70f1 Move let-when-compile to lisp-mode.el
This fixes the bootstrapping problem of `let-when-compile' using
`cl-progv' while being in subr.el (i.e. before cl stuff was loaded).
2015-09-23 13:50:15 +02:00
Stefan Monnier
6c33e7ada5 * prolog.el: Fix indentation of empty line
* lisp/emacs-lisp/smie.el (smie-rules-function): Document new
`empty-line-token' element.
(smie-indent-empty-line): New function.
(smie-indent-functions): Add it.

* lisp/progmodes/prolog.el (prolog-smie-rules): Fix :list-intro behavior
and use the new `empty-line-token' element (bug#21526).
(prolog-mode-variables): Fix comment-start-skip setting to match
comment-start.

* test/indent/prolog.prolog: Add nested indentation tests.

* lisp/newcomment.el (comment-normalize-vars): Fix default value of
comment-start-skip not to misuse submatch 1.
2015-09-22 11:11:50 -04:00
Nicolas Petton
0a893f0cfa Better docstring and parameter name for seq-find
* lisp/emacs-lisp/seq.el (seq-find): Improve the docstring and rename
the parameter `sentinel' to `default'.

* doc/lispref/sequences.texi (Sequence Functions): Update the
  documentation for `seq-find' accordingly.
2015-09-21 11:48:55 +02:00
Stefan Monnier
dd1e684619 * lisp/emacs-lisp/syntax.el (syntax-begin-function): Make obsolete 2015-09-20 15:53:51 -04:00
Paul Eggert
c7e69c404b '.' -> `.' in doc string
* lisp/emacs-lisp/timer.el (run-at-time): In doc string, quote
individual chars with grave quotes instead of straight quotes, as
this works better when they are translated to curved quotes.
2015-09-20 09:46:14 -07:00
Eli Zaretskii
00a65e3238 Improve documentation of 'run-at-time'
* lisp/emacs-lisp/timer.el (run-at-time): Improve the doc string.
In particular, don't refer to 'diary-entry-time', because it is
unavailable until diary-lib is loaded.  Also, refer to
'timer-duration-words', not 'timer-duration', as the latter's doc
string says nothing about the accepted strings.
2015-09-20 09:34:24 +03:00
Artur Malabarba
df6f610725 * lisp/emacs-lisp/timer.el (run-at-time): Docstring formatting 2015-09-19 21:39:09 +01:00
Stefan Monnier
644c6b414f * lisp/font-lock.el (font-lock-beginning-of-syntax-function): Remove
(font-lock-fontify-block): Don't let-bind it.
(font-lock-compile-keywords): Don't use it.
(font-lock-set-defaults): Don't set it.  Allow the variable alist to
start one slot earlier, instead.

* lisp/emacs-lisp/syntax.el (font-lock-beginning-of-syntax-function):
Don't declare.
(syntax-ppss): Don't use it either.

* lisp/font-core.el (font-lock-defaults): Remove SYNTAX-BEGIN
from docstring.

* doc/emacs/display.texi (Font Lock): Don't mention
font-lock-beginning-of-syntax-function.

* doc/lispref/modes.texi (Font Lock Basics): Update description of
font-lock-defaults.
(Syntactic Font Lock): Remove font-lock-beginning-of-syntax-function.

* lisp/loadhist.el (unload-feature-special-hooks):
Remove font-lock-beginning-of-syntax-function.

* lisp/obsolete/lazy-lock.el (lazy-lock-fontify-region):
* lisp/emacs-lisp/lisp.el (beginning-of-defun-raw): Don't let-bind
font-lock-beginning-of-syntax-function.
2015-09-17 20:33:55 -04:00
Paul Eggert
284c470ef7 Backslash cleanup in Elisp source files
This patch should not change behavior.  It typically omits backslashes
where they are redundant (e.g., in the string literal "^\$").
In a few places, insert backslashes where they make regular
expressions clearer: e.g., replace "^\*" (equivalent to "^*") with
"^\\*", which has the same effect as a regular expression.
Also, use ‘\ %’ instead of ‘\%’ when avoiding confusion with SCCS IDs,
and similarly use ‘\ $’ instead of ‘\$’ when avoiding confusion with
RCS IDs, as that makes it clearer that the backslash is intended.
2015-09-17 16:09:39 -07:00
Daniel McClanahan
55a9b2e620 Fix search argument in ‘lisp--el-match-keyword’ (Bug#21492) (Bug#21493)
* lisp/emacs-lisp/lisp-mode.el (lisp--el-match-keyword): Fix
search argument.  (Bug#21492) (Bug#21493)

Copyright-paperwork-exempt: yes
2015-09-16 09:02:35 +02:00
Stephen Leake
b6a792bc62 Fix bugs in eieio-oref-default related to class symbols
* lisp/emacs-lisp/eieio-core.el (class-p): Handle symbol properly.
(eieio-oref-default): Handle class properly.
2015-09-15 14:44:43 -05:00
Stefan Monnier
6d98299e76 * lisp/emacs-lisp/lisp-mode.el (lisp-mode-symbol-regexp): New const
Use it everywhere "\\(\\sw\\|\\s_\\|\\\\.\\)+" was used.
(cl-lib-fdefs): Add defgeneric.
(cl-kw): Add all elements of eieio-kw and cl-lib-kw.
(eieio-kw, cl-lib-kw, el-kw): Remove.
2015-09-15 12:44:35 -04:00
Alan Mackenzie
e348a668ce Elisp mode: Make font-lock and imenu handle escaped characters in symbols
Fixes debbugs#21449.

lisp/emacs-lisp/lisp-mode.el (lisp-imenu-generic-expression)
(lisp--el-match-keyword, lisp-el-font-lock-keywords-1)
(lisp-cl-font-lock-keywords-1, lisp-el-font-lock-keywords-2)
(lisp-cl-font-lock-keywords-2, lisp-string-in-doc-position-p):
Insert "\\|\\\\." into regexps which match symbols.
2015-09-14 09:46:39 +00:00
Stefan Monnier
b2615c753b * lisp/emacs-lisp/eieio-core.el (class-p): Accept class objects 2015-09-11 20:30:31 -04:00
Stefan Monnier
3928ef2dd5 Merge syntax-propertize--done and parse-sexp-propertize-done
* lisp/emacs-lisp/syntax.el (syntax-propertize--done): Remove.
(syntax-propertize): Set syntax-propertize--done even if
syntax-propertize-function is nil.  Avoid recursive invocations.
(syntax-propertize-chunks): New var.
(internal--syntax-propertize): Use it.  Rename from syntax--jit-propertize.
Simplify.
(parse-sexp-propertize-function): Don't set any more.

* src/syntax.c (SETUP_SYNTAX_TABLE): Call parse_sexp_propertize as needed.
(parse_sexp_propertize): Don't assume charpos is not yet propertized.
Call Qinternal__syntax_propertize instead of
Vparse_sexp_propertize_function.  Truncate e_property if needed.
(update_syntax_table_forward): Streamline.
(syms_of_syntax): Define Qinternal__syntax_propertize.
(syntax_propertize__done): Rename from parse_sexp_propertize_done.
2015-09-11 20:00:05 -04:00
Nicolas Petton
8aa0386420 Add seq-find
This function is similar to `seq-some' but returns the found element.
In the cases where nil can be the found element, a sentinel optional
argument can be provided to avoid ambiguities.

* lisp/emacs-lisp/seq.el (seq-find): New function.
* test/automated/seq-tests.el (test-seq-find): Add tests for `seq-find'.
* doc/lispref/sequences.texi (Sequence Functions): Add documentation for
seq-find.
2015-09-11 00:09:35 +02:00
Paul Eggert
cdb0ae37ab Revert some stray curved quotes I missed earlier
Problem reported by David Kastrup in:
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg00440.html
* lisp/international/mule-cmds.el (leim-list-header):
Use format-message with an ASCII-only format.
2015-09-10 10:12:37 -07:00
Stefan Monnier
ab21f61a55 Make syntax.c call syntax-propertize on demand
* lisp/emacs-lisp/syntax.el (syntax--jit-propertize): New function.
(parse-sexp-propertize-function): Use it.
(syntax-propertize): Disable parse-sexp-propertize-function.

* src/syntax.c (parse_sexp_propertize, update_syntax_table_forward):
New functions.
(syms_of_syntax): New vars `parse-sexp-propertize-done' and
`parse-sexp-propertize-function'.

* src/syntax.h (struct gl_state_s): Add `e_property_truncated' field.
(UPDATE_SYNTAX_TABLE_FORWARD): Use update_syntax_table_forward.
(SETUP_BUFFER_SYNTAX_TABLE): Set e_property_truncated.

* lisp/progmodes/elisp-mode.el (elisp-byte-code-syntax-propertize):
Don't assume `point' is set.
2015-09-09 15:14:52 -04:00
Stefan Monnier
88694fb658 * lisp/emacs-lisp/cl-generic.el (cl-generic-generalizers): Remove warning 2015-09-09 13:18:11 -04:00
Oleh Krehel
765dcc709c Remove redundant redefinition of seq-drop-while from seq.el
* lisp/emacs-lisp/seq.el (seq-drop-while): Define only once.
2015-09-09 15:10:15 +02:00
Phil Sainty
b074436925 * lisp/emacs-lisp/package.el (package--ensure-init-file)
More robust check for `package-initialize' calls in init file.
This function accepts an optional argument, but calls passing
an argument would not have been detected.
2015-09-09 12:12:30 +01:00
Glenn Morris
10e7f7de91 ; Auto-commit of loaddefs files. 2015-09-08 06:19:13 -04:00