Commit graph

4345 commits

Author SHA1 Message Date
Kelly Dean
72f7eded97 Use user-error where error is inappropriate
* help-mode.el (help-go-back, help-go-forward, help-follow):
* simple.el (yank-pop, pop-to-mark-command, exchange-point-and-mark):
* winner.el (winner-redo):
* windmove.el (windmove-do-window-select):
* register.el (jump-to-register, increment-register, insert-register)
(append-to-register, prepend-to-register):
* files.el (find-alternate-file, abort-if-file-too-large, write-file)
(set-visited-file-name):
* emacs-lisp/lisp.el (kill-backward-up-list):
Use user-error instead of error. (Bug#14480)
2015-02-18 16:36:22 -02:00
Stefan Monnier
ad6c1be923 * lisp/emacs-lisp/checkdoc.el (checkdoc-show-diagnostics): Don't make bogus
assumptions about window ordering.
2015-02-18 11:04:15 -05:00
Kelly Dean
04096849d5 emacs-lisp/easy-mmode.el: Clarify mode switch messages
* emacs-lisp/easy-mmode.el (define-minor-mode): Clarify mode
switch messages for minor modes. (Bug#19690)
2015-02-17 22:16:22 -02:00
Kelly Dean
cc273d1c03 emacs-lisp/easy-mmode.el (define-minor-mode): Clarify docs 2015-02-17 22:15:10 -02:00
Kelly Dean
3194809d24 emacs-lisp/easy-mmode.el: Process macro arguments correctly
* emacs-lisp/easy-mmode.el (define-minor-mode): Process macro
arguments correctly. (Bug#19685)
2015-02-17 22:08:52 -02:00
Kelly Dean
1f2c4f817e emacs-lisp/package-x.el: Create valid tar files
* emacs-lisp/package-x.el (package-upload-buffer-internal):
Create valid tar files. (Bug#19536)
2015-02-17 22:08:51 -02:00
Stefan Monnier
c4e2be4587 * lisp/emacs-lisp/eieio*.el: Align a bit better with CLOS
* lisp/cedet/semantic/db-el.el (semanticdb-elisp-sym->tag): Fix copy&paste
error (semanticdb-project-database => sym).  Avoid eieio--class-public-a
when possible.

* lisp/emacs-lisp/eieio-base.el (make-instance): Add a method here rather
than on eieio-constructor.

* lisp/emacs-lisp/eieio-core.el (eieio--class-print-name): New function.
(eieio-class-name): Make it do what the docstring claims.
(eieio-defclass-internal): Simplify since `prots' isn't used any more.
(eieio--slot-name-index): Simplify accordingly.
(eieio-barf-if-slot-unbound): Pass the class object rather than its
name to `slot-unbound'.

* lisp/emacs-lisp/eieio.el (defclass): Use make-instance rather than
eieio-constructor.
(set-slot-value): Mark as obsolete.
(eieio-object-class-name): Improve call to eieio-class-name.
(eieio-slot-descriptor-name, eieio-class-slots): New functions.
(object-slots): Use it.  Declare obsolete.
(eieio-constructor): Merge it with `make-instance'.
(initialize-instance): Use `dolist'.
(eieio-override-prin1, eieio-edebug-prin1-to-string):
Use eieio--class-print-name.

* test/automated/eieio-test-methodinvoke.el (make-instance): Add methods
here rather than on eieio-constructor.
2015-02-16 02:22:46 -05:00
Stefan Monnier
6bf61df8ab * lisp/emacs-lisp/cl-macs.el (cl-defstruct): Keep type=nil by default.
* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Add sanity checks
about relationship between `type', `named', and `slots'.
* lisp/emacs-lisp/cl-generic.el (cl--generic-struct-tagcode): Adjust to new
value of `cl-struct-type' property.
2015-02-16 01:37:57 -05:00
Artur Malabarba
f4f4f93e42 emacs-lisp/package.el (describe-package-1): Describe incompatibility. 2015-02-14 15:09:50 -02:00
Artur Malabarba
34c7535912 emacs-lisp/package.el: Move the compatibility-table building logic. 2015-02-14 11:13:29 -02:00
Stefan Monnier
61b4c22c6e * lisp/emacs-lisp/cl*.el: Use define-inline and move some code
* lisp/emacs-lisp/cl-lib.el: Move autoloaded code to cl-preload.

* lisp/emacs-lisp/cl-preloaded.el (cl-struct-define): Register as children
of the parent.
(cl--assertion-failed): New function.
(cl-assertion-failed): Move in from cl-lib.el.

* lisp/emacs-lisp/cl-macs.el (cl-defstruct): Don't generate code to register
as children of its parents.
(cl--make-type-test, cl--compiler-macro-typep): Remove functions.
(cl-typep): Reimplement using define-inline.
(cl-assert): Use cl--assertion-failed.
(cl-struct-slot-value): Use define-inline.
2015-02-14 00:46:29 -05:00
Artur Malabarba
a03ab7eaf5 emacs-lisp/package.el (describe-package-1): Fix "incompat" handling. 2015-02-13 13:08:38 +00:00
Artur Malabarba
3b8b549fff emacs-lisp/package.el (package--incompatible-p): Check dependencies. 2015-02-13 12:26:46 +00:00
Artur Malabarba
511acc77a4 emacs-lisp/package.el: Indicate incompatible packages.
These are packages which require a higher emacs version than the
current one.
2015-02-12 00:14:46 -02:00
Artur Malabarba
0a66ca36fa emacs-lisp/package.el (package-install): Invert the second argument. 2015-02-12 00:14:46 -02:00
Nicolas Petton
4fb5565d0a Add a backward-compatible version of seq-reverse
* lisp/emacs-lisp/seq.el (seq-reverse): Add a backward-compatible
version of seq-reverse that works on sequences in Emacs 24.  Bump
version to 1.2.
* test/automated/seq-tests.el (test-seq-reverse, test-seq-group-by):
Add a test for seq-reverse and update test for seq-group-by to test
vectors and strings, not only lists.
2015-02-11 14:48:18 +01:00
Nicolas Petton
c49e769d8f Improve seq-group-by to return sequence elements in correct order
* lisp/emacs-lisp/seq.el (seq-group-by): Improves seq-group-by to
return sequence elements in correct order
* tests/automated/seq-tests.el: Update test for seq-group-by
* doc/lispref/sequences.texi (Sequence Functions): Update documentation
examples for seq-group-by
2015-02-11 14:45:51 +01:00
Stefan Monnier
2973127159 * lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Use macroexp-parse-body. 2015-02-09 10:52:48 -05:00
Stefan Monnier
699ece2757 * lisp/emacs-lisp/eieio-core.el (eieio-oset-default): Catch the unexpected
case where the default value would be re-interpreted as a form!
2015-02-09 10:49:43 -05:00
Leo Liu
751adc4b96 Add macro pcase-lambda
Fixes: debbugs:19814

* emacs-lisp/lisp-mode.el (el-kws-re): Include `pcase-lambda'.

* emacs-lisp/macroexp.el (macroexp-parse-body): New function.

* emacs-lisp/pcase.el (pcase-lambda): New Macro.
2015-02-09 10:05:44 +08:00
Nicolas Petton
58c098199a Better docstring for seq.el functions
* lisp/emacs-lisp/seq.el: Better docstring for seq.el functions
2015-02-06 16:00:01 +01:00
Nicolas Petton
c4a0eff011 Add seq-partition and seq-group-by
* lisp/emacs-lisp/seq.el: Better docstring for seq.el functions
* test/automated/seq-tests.el: New tests for seq-partition and
  seq-group-by
2015-02-06 15:55:57 +01:00
Nicolas Petton
05211a578e Add seq-mapcat
* lisp/emacs-lisp/seq.el (seq-mapcat): New function
* test/automated/seq-tests.el: Add unit tests for seq-mapcat
2015-02-06 15:52:23 +01:00
Artur Malabarba
f4d7de6f9c emacs-lisp/package.el: Add missing (require 'subr-x) 2015-02-05 21:41:02 -02:00
Artur Malabarba
a844b94074 emacs-lisp/package.el (package-delete): Don't always delesect. 2015-02-05 20:47:28 -02:00
Artur Malabarba
b2c4997c82 emacs-lisp/package.el (package-menu-mark-install): Mark dependency. 2015-02-05 20:33:23 -02:00
Artur Malabarba
3c5ac25702 emacs-lisp/package.el (package-menu-execute): Delete packages in order. 2015-02-05 20:12:47 -02:00
Stefan Monnier
72229f17ef * lisp/emacs-lisp/eieio*.el: Use (:documentation ...) feature
* lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use new
special (:documentation ...) feature.
* lisp/emacs-lisp/eieio-core.el (eieio-make-class-predicate)
(eieio-make-child-predicate): Same.
(eieio-copy-parents-into-subclass): Remove unused arg.
(eieio-defclass-internal): Adjust call accordingly and remove redundant
`pname' var.
(eieio--slot-name-index): Remove unused arg `obj' and adjust all
callers accordingly.
2015-02-05 14:43:38 -05:00
Stefan Monnier
ad5a7c86d0 Add (:documentation <form>) for dynamically-generated docstrings
* lisp/emacs-lisp/bytecomp.el:
(byte-compile-initial-macro-environment): Use macroexp-progn.
(byte-compile-cl-warn): Don't silence use of cl-macroexpand-all.
(byte-compile-file-form-defvar-function): Rename from
byte-compile-file-form-define-abbrev-table.
(defvaralias, byte-compile-file-form-custom-declare-variable): Use it.
(byte-compile): Use byte-compile-top-level rather than
byte-compile-lambda so we can compile non-values.
(byte-compile-form): Add warnings for failed uses of lexical vars via
quoted symbols.
(byte-compile-unfold-bcf): Improve message for failed inlining.
(byte-compile-make-closure): Handle new format of internal-make-closure
for dynamically-generated docstrings.

* lisp/emacs-lisp/cconv.el (cconv--convert-function):
Add `docstring' argument.
(cconv-convert): Use it to handle the new (:documentation ...) form.
(cconv-analyze-form): Handle the new (:documentation ...) form.

* src/eval.c (Ffunction): Handle the new (:documentation ...) form.
(syms_of_eval): Declare `:documentation'.
2015-02-05 14:28:16 -05:00
Stefan Monnier
8e010cf6e7 * lisp/emacs-lisp/cl-generic.el (cl--generic-member-method): Fix paren typo. 2015-02-04 14:45:07 -05:00
Tassilo Horn
da9c6486d2 Fix typo causing a void-variable error: pkg-desc
* emacs-lisp/package.el (package-installed-p): Fix typo causing
void-variable error.
2015-02-04 20:39:16 +01:00
Artur Malabarba
102a21d689 emacs-lisp/package.el (package-reinstall): Accept package-desc objects. 2015-02-04 15:17:06 +00:00
Artur Malabarba
5687ac9f01 emacs-lisp/package.el (package-install): Mark dependencies as selected.
In particular, when given a package-desc object which is already
installed, the package is not downloaded again.
2015-02-04 15:04:46 +00:00
Artur Malabarba
5b83f03725 emacs-lisp/package.el (package-delete): Always unselect package. 2015-02-04 11:01:02 -02:00
Artur Malabarba
200a47d45c emacs-lisp/package.el (package--read-pkg-desc): Fix tar-desc reference. 2015-02-03 18:14:28 -02:00
Artur Malabarba
2a4a5069a6 emacs-lisp/package.el (package-menu-execute): Offer to remove packages. 2015-02-03 17:51:39 -02:00
Artur Malabarba
504fada7e7 emacs-lisp/package.el (package-desc-status): Add "dependency" status to Package Menu. 2015-02-03 13:56:59 +00:00
Artur Malabarba
c184e85ea2 emacs-lisp/package.el (package--user-selected-p): New function.
Populates `package-selected-packages' if necessary, and then checks if
symbol PKG is contained in it.
2015-02-03 13:54:41 +00:00
Artur Malabarba
2a4a94db1a emacs-lisp/package.el (package--get-deps): delete-dups when ONLY is nil. 2015-02-03 11:36:10 +00:00
Artur Malabarba
0ee15a20bc emacs-lisp/package.el (package-delete): Document NOSAVE. 2015-02-03 11:19:56 +00:00
Thierry Volpiatto
88acd70e67 emacs-lisp/package.el (package-reinstall): Don't change selected status. 2015-02-03 11:18:46 +00:00
Artur Malabarba
8ad2ee33a1 emacs-lisp/package.el (package--get-deps): Fix returning duplicates. 2015-02-02 13:26:40 -02:00
Artur Malabarba
ef6fa2fe0d emacs-lisp/package.el (package-menu-execute): Clean unnecessary `and'. 2015-02-02 13:25:16 -02:00
Artur Malabarba
fe188b2e4f emacs-lisp/package.el (package-initialize): Populate `package-selected-packages'. 2015-02-02 11:56:35 +00:00
Thierry Volpiatto
060dc14590 emacs-lisp/package.el: Fix previous patch 2015-02-02 10:15:36 +00:00
Artur Malabarba
0326960d3d emacs-lisp/package.el: Many style changes 2015-02-01 21:01:37 -02:00
Artur Malabarba
8334021e5a package.el (package--get-deps): Fix for indirect dependencies. 2015-02-01 20:50:13 -02:00
Artur Malabarba
5329208baf emacs-lisp/package.el (package-install): Rename ARG to MARK-SELECTED. 2015-02-01 20:34:16 -02:00
Artur Malabarba
0ade763b74 emacs-lisp/package.el (package-selected-packages): Fix :type 2015-02-01 20:28:21 -02:00
Thierry Volpiatto
e2f0f263df emacs-lisp/package.el: Don't allow deleting dependencies. 2015-02-01 20:17:51 -02:00