Commit graph

4764 commits

Author SHA1 Message Date
Phillip Lord
ee85661174 eieio generate autoloads to non-versioned file.
* lisp/Makefile.in: eieio-loaddefs add to autogenel.
* lisp/emacs-lisp/eieio.el,lisp/emacs-lisp/eieio-core.el:
  Remove autoloads.
* lisp/emacs-lisp/eieio-compat.el,lisp/emacs-lisp/eieio-custom.el,
  lisp/emacs-lisp/eieio-opt.el: Update file local.
* test/lisp/emacs-lisp/eieio-tests/eieio-tests.el: New test.
2015-12-17 20:42:15 +00:00
Artur Malabarba
bd6695f3f5 * lisp/emacs-lisp/let-alist.el: Now an Elpa :core package 2015-12-01 13:56:30 +00:00
Artur Malabarba
8eaba112c9 * lisp/emacs-lisp/package.el: Require url-handlers 2015-11-27 11:02:05 +00:00
Juanma Barranquero
1e4010a128 * lisp/emacs-lisp/package.el: Declare `url-insert-buffer-contents' 2015-11-27 10:22:03 +01:00
Stefan Monnier
82a8ad2049 * lisp/emacs-lisp/eieio.el: Add some default implementations
(standard-class): Mark it obsolete.
(slot-missing): Give it a default implementation.
(destructor): Simplify and mark it obsolete.
(object-print): Give it a default implementation.
(eieio-change-class): Rename from change-class.
(change-class): Redefine as obsolete alias.
2015-11-25 17:03:27 -05:00
Artur Malabarba
7cc233e1e3 * lisp/emacs-lisp/package.el: Fix a decoding issue
(package--with-response-buffer): Use `url-insert-buffer-contents'.
The previous code had some issues with decoding. Refactoring that
function allows us to use the decoding from url-handlers while still
treating both sync and async requests the same.

* lisp/url/url-handlers.el (url-insert-file-contents): Move some code to
`url-insert-buffer-contents'.
(url-insert-buffer-contents): New function
2015-11-15 21:35:06 +00:00
Artur Malabarba
5f9153faaf * lisp/emacs-lisp/package.el: Refactor -with-work-buffer-async
(package--with-work-buffer-async): Reimplement as
`package--with-response-buffer'.
(package--with-work-buffer): Mark obsolete.
(package--with-response-buffer): New macro. This is a more self
contained and less contrived version of
`package--with-work-buffer-async'.  It uses keyword arguments,
doesn't have async on the name, doesn't fallback on
`package--with-work-buffer', and has _much_ simpler error
handling.

(package--check-signature, package--download-one-archive)
(package-install-from-archive, describe-package-1): Use it.

(package--download-and-read-archives): Let
`package--download-one-archive' take care of calling
`package--update-downloads-in-progress'.
2015-11-15 21:35:04 +00:00
Nicolas Petton
51d840a8a1 Rename seq-p and map-p to seqp and mapp
* lisp/emacs-lisp/seq.el (seqp): New name.
* lisp/emacs-lisp/map.el (mapp): New name.
* doc/lispref/sequences.texi: Update the documentation for seqp.
* test/automated/map-tests.el: Update the tests for mapp.
2015-11-11 18:20:03 +01:00
Paul Eggert
c92dbd6d0c Spelling fixes
* lisp/net/soap-inspect.el (soap-inspect-xs-simple-type):
Fix misspelling in output.
2015-11-10 10:23:00 -08:00
Artur Malabarba
cbaa04014e * lisp/emacs-lisp/map.el (map-merge-with): New function
* test/automated/map-tests.el (test-map-merge-with): New test
2015-11-10 13:04:30 +00:00
Dmitry Gutov
0be6fb8e17 Merge branch 'project-next' 2015-11-10 02:47:46 +02:00
Artur Malabarba
b74c8847e8 * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Fix a bug
The defsubst was being created as:
    (cl-defsubst name (args) ("DOC") ...)

* test/automated/cl-lib-tests.el (cl-lib-struct-constructors): Add test
2015-11-07 13:55:16 +00:00
Dmitry Gutov
977697203f Rename "search path" to "library roots"
* lisp/emacs-lisp/cl-seq.el (cl-set-difference): Retain the order
of the elements from CL-LIST1.

* test/automated/cl-lib-tests.el (cl-lib-test-set-functions):
Update WRT to the above change.

* lisp/progmodes/project.el (project-search-path-function): Rename
to project-library-roots-function, update the documentation and
references.
(project-search-path): Likewise, to project-library-roots.
(project-roots): Clarify documentation.
(project-vc-search-path): Likewise, to project-vc-library-roots.
(project-library-roots): In addition to the renames, thread the
results through file-name-as-directory.
(project-prune-directories): Accept a variable number of
arguments.  Rename to project-combine-directories.
(project-subtract-directories): New function.

* lisp/progmodes/elisp-mode.el (elisp--xref-find-references):
Append project-roots and project-library-roots together.

* lisp/progmodes/etags.el (etags--xref-find-references): Ditto.
2015-11-06 15:37:24 +02:00
Glenn Morris
6540f6c586 ; Auto-commit of loaddefs files. 2015-11-05 06:17:56 -05:00
Stefan Monnier
54e2ed97bf * lisp/emacs-lisp/eieio-compat.el: Typo caught by tests
(eieio--generic-static-object-generalizer): Fix typo.
* test/automated/eieio-tests.el: Byte-compile it again.
It looks like the underlying cause of bug#17852 was fixed in the mean time.
2015-11-04 09:42:20 -05:00
Michael Heerdegen
335cb1ee15 * lisp/emacs-lisp/pcase.el (pcase): Tweak docstring. 2015-11-03 23:59:42 +01:00
Eli Zaretskii
553d7e9b38 Avoid errors in redisplay--pre-redisplay-functions
* lisp/emacs-lisp/cursor-sensor.el (cursor-sensor--detect): Don't
use 'bobp', instead compare window-point with 1.  (Bug#21730)
2015-10-31 15:31:17 +02:00
Stefan Monnier
84dcdbeb74 * lisp/emacs-lisp/cl-generic.el: Add (major-mode MODE) context
(cl--generic-derived-specializers): New function.
(cl--generic-derived-generalizer): New generalizer.
(cl-generic-generalizers): New specializer (derived-mode MODE).
(cl--generic-split-args): Apply the rewriter, if any.
(cl-generic-define-context-rewriter): New macro.
(major-mode): Use it to define a new context-rewriter, so we can write
`(major-mode MODE)' instead of `(major-mode (derived-mode MODE))'.

* lisp/frame.el (window-system): New context-rewriter so we can write
`(window-system VAL)' instead of (window-system (eql VAL)).
(cl--generic-split-args): Apply the rewriter, if any.
(frame-creation-function): Use the new syntax.

* lisp/term/x-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-selection-owner-p)
(gui-backend-selection-exists-p, gui-backend-get-selection):
* lisp/term/w32-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-get-selection)
(gui-backend-selection-owner-p, gui-backend-selection-exists-p):
* lisp/term/pc-win.el (gui-backend-get-selection)
(gui-backend-selection-exists-p, gui-backend-selection-owner-p)
(gui-backend-set-selection, window-system-initialization)
(frame-creation-function, handle-args-function):
* lisp/term/ns-win.el (window-system-initialization)
(handle-args-function, frame-creation-function)
(gui-backend-set-selection, gui-backend-selection-exists-p)
(gui-backend-get-selection):
* lisp/startup.el (handle-args-function):
* lisp/term/xterm.el (gui-backend-get-selection)
(gui-backend-set-selection): Use the new syntax.
2015-10-29 11:06:31 -04:00
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