diff options
author | Richard M. Stallman <rms@gnu.org> | 2001-11-16 00:00:22 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 2001-11-16 00:00:22 +0000 |
commit | 413da4514b106c81cecbfb5b7cd80b42f6b29d31 (patch) | |
tree | 6fcb2239fa847f8879920774e9cc5d0caf1190fe /lisp | |
parent | 6f665da94994bf054a6d9a01e0337f455991cfdc (diff) | |
download | emacs-413da4514b106c81cecbfb5b7cd80b42f6b29d31.tar.gz emacs-413da4514b106c81cecbfb5b7cd80b42f6b29d31.tar.bz2 emacs-413da4514b106c81cecbfb5b7cd80b42f6b29d31.zip |
(values, values-list, multiple-value-list, multiple-value-apply, nth-value):
Use defsubst rather than defalias, to get better doc strings.
Diffstat (limited to 'lisp')
-rw-r--r-- | lisp/ChangeLog | 16 | ||||
-rw-r--r-- | lisp/emacs-lisp/cl.el | 36 |
2 files changed, 37 insertions, 15 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 4f2f4277eba..ab3ff9423f2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2001-11-15 Richard M. Stallman <rms@gnu.org> + + * emacs-lisp/cl.el (values, values-list, multiple-value-list) + (multiple-value-apply, nth-value): Use defsubst rather than defalias + to get better doc strings. + 2001-11-15 Pavel Jan,Bm(Bk <Pavel@Janik.cz> * derived.el: Fix autoload cookie. @@ -15,16 +21,6 @@ * dired.el (dired-undo): Display a message to explain that this does not undo file system changes. -2001-11-15 Alan Shutko <ats@acm.org> - - * compile.el (recompile): Use compilation-arguments if set, so as - to be able to M-x recompile the exact command which created a - compilation-mode buffer. - -2001-11-13 Richard M. Stallman <rms@gnu.org> - - * progmodes/ada-mode.el (ada-fill-comment-prefix): Doc fix. - 2001-11-15 David Kastrup <David.Kastrup@t-online.de> * mouse-drag.el (mouse-drag-throw): Push back non-drag events diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index f77c15414a3..970d9180273 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el @@ -203,12 +203,38 @@ Keywords supported: :test :test-not :key" ;;; simulated. Instead, multiple-value-bind and friends simply expect ;;; the target form to return the values as a list. -(defalias 'values 'list) -(defalias 'values-list 'identity) -(defalias 'multiple-value-list 'identity) -(defalias 'multiple-value-call 'apply) ; only works for one arg -(defalias 'nth-value 'nth) +(defsubst values (&rest values) + "Return multiple values, Common Lisp style. +The arguments of `values' are the values +that the containing function should return." + (apply 'list values)) + +(defsubst values-list (list) + "Return multiple values, Common Lisp style, taken from a list. +LIST specifies the list of values +that the containing function should return." + list) +(defsubst multiple-value-list (expression) + "Return a list of the multiple values produced by EXPRESSION. +This handles multiple values in Common Lisp style, but it does not +work right when EXPRESSION calls an ordinary Emacs Lisp function +that returns just one value." + expression) + +(defsubst multiple-value-apply (function expression) + "Evaluate EXPRESSION to get multiple values and apply FUNCTION to them. +This handles multiple values in Common Lisp style, but it does not work +right when EXPRESSION calls an ordinary Emacs Lisp function that returns just +one value." + (apply function expression)) + +(defsubst nth-value (n expression) + "Evaluate EXPRESSION to get multiple values and return the Nth one. +This handles multiple values in Common Lisp style, but it does not work +right when EXPRESSION calls an ordinary Emacs Lisp function that returns just +one value." + (nth n expression)) ;;; Macros. |