diff options
| author | Stefan Monnier | 2012-05-17 17:51:15 -0400 |
|---|---|---|
| committer | Stefan Monnier | 2012-05-17 17:51:15 -0400 |
| commit | 70b8ef8f7855b9983d17731acad2fdfb4fb2a5be (patch) | |
| tree | ec06f9a9795c97db3674f9f05df91b9450dd185c | |
| parent | 9abdc45d8af50112c9afe3c8ee62ad4b9cce47ed (diff) | |
| download | emacs-70b8ef8f7855b9983d17731acad2fdfb4fb2a5be.tar.gz emacs-70b8ef8f7855b9983d17731acad2fdfb4fb2a5be.zip | |
* lisp/emacs-lisp/cl-macs.el, lisp/emacs-lisp/cl.el: Move indent info.
| -rw-r--r-- | lisp/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 63 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl.el | 36 |
3 files changed, 39 insertions, 64 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 043797ba7ee..fcdb2ce65b7 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,5 +1,9 @@ | |||
| 1 | 2012-05-17 Stefan Monnier <monnier@iro.umontreal.ca> | 1 | 2012-05-17 Stefan Monnier <monnier@iro.umontreal.ca> |
| 2 | 2 | ||
| 3 | * emacs-lisp/cl-macs.el, emacs-lisp/cl.el: Move indent info. | ||
| 4 | |||
| 5 | 2012-05-17 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 6 | |||
| 3 | * emacs-lisp/pcase.el (pcase--u1): Avoid ((lambda ...) ...). | 7 | * emacs-lisp/pcase.el (pcase--u1): Avoid ((lambda ...) ...). |
| 4 | 8 | ||
| 5 | * emacs-lisp/cl.el: Add edebug specs from cl-specs.el. | 9 | * emacs-lisp/cl.el: Add edebug specs from cl-specs.el. |
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 9fd53d78d92..441ae55758c 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -226,7 +226,8 @@ and BODY is implicitly surrounded by (block NAME ...). | |||
| 226 | cl-lambda-list | 226 | cl-lambda-list |
| 227 | cl-declarations-or-string | 227 | cl-declarations-or-string |
| 228 | [&optional ("interactive" interactive)] | 228 | [&optional ("interactive" interactive)] |
| 229 | def-body))) | 229 | def-body)) |
| 230 | (indent 2)) | ||
| 230 | (let* ((res (cl-transform-lambda (cons args body) name)) | 231 | (let* ((res (cl-transform-lambda (cons args body) name)) |
| 231 | (form (list* 'defun name (cdr res)))) | 232 | (form (list* 'defun name (cdr res)))) |
| 232 | (if (car res) (list 'progn (car res) form) form))) | 233 | (if (car res) (list 'progn (car res) form) form))) |
| @@ -277,7 +278,8 @@ and BODY is implicitly surrounded by (block NAME ...). | |||
| 277 | 278 | ||
| 278 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" | 279 | \(fn NAME ARGLIST [DOCSTRING] BODY...)" |
| 279 | (declare (debug | 280 | (declare (debug |
| 280 | (&define name cl-macro-list cl-declarations-or-string def-body))) | 281 | (&define name cl-macro-list cl-declarations-or-string def-body)) |
| 282 | (indent 2)) | ||
| 281 | (let* ((res (cl-transform-lambda (cons args body) name)) | 283 | (let* ((res (cl-transform-lambda (cons args body) name)) |
| 282 | (form (list* 'defmacro name (cdr res)))) | 284 | (form (list* 'defmacro name (cdr res)))) |
| 283 | (if (car res) (list 'progn (car res) form) form))) | 285 | (if (car res) (list 'progn (car res) form) form))) |
| @@ -555,7 +557,8 @@ It is a list of elements of the form either: | |||
| 555 | 557 | ||
| 556 | ;;;###autoload | 558 | ;;;###autoload |
| 557 | (defmacro destructuring-bind (args expr &rest body) | 559 | (defmacro destructuring-bind (args expr &rest body) |
| 558 | (declare (debug (&define cl-macro-list def-form cl-declarations def-body))) | 560 | (declare (indent 2) |
| 561 | (debug (&define cl-macro-list def-form cl-declarations def-body))) | ||
| 559 | (let* ((bind-lets nil) (bind-forms nil) (bind-inits nil) | 562 | (let* ((bind-lets nil) (bind-forms nil) (bind-inits nil) |
| 560 | (bind-defs nil) (bind-block 'cl-none) (bind-enquote nil)) | 563 | (bind-defs nil) (bind-block 'cl-none) (bind-enquote nil)) |
| 561 | (cl-do-arglist (or args '(&aux)) expr) | 564 | (cl-do-arglist (or args '(&aux)) expr) |
| @@ -576,7 +579,7 @@ If `load' is in WHEN, BODY is evaluated when loaded after top-level compile. | |||
| 576 | If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level. | 579 | If `eval' is in WHEN, BODY is evaluated when interpreted or at non-top-level. |
| 577 | 580 | ||
| 578 | \(fn (WHEN...) BODY...)" | 581 | \(fn (WHEN...) BODY...)" |
| 579 | (declare (debug ((&rest &or "compile" "load" "eval") body))) | 582 | (declare (indent 1) (debug ((&rest &or "compile" "load" "eval") body))) |
| 580 | (if (and (fboundp 'cl-compiling-file) (cl-compiling-file) | 583 | (if (and (fboundp 'cl-compiling-file) (cl-compiling-file) |
| 581 | (not cl-not-toplevel) (not (boundp 'for-effect))) ; horrible kludge | 584 | (not cl-not-toplevel) (not (boundp 'for-effect))) ; horrible kludge |
| 582 | (let ((comp (or (memq 'compile when) (memq :compile-toplevel when))) | 585 | (let ((comp (or (memq 'compile when) (memq :compile-toplevel when))) |
| @@ -635,7 +638,7 @@ place of a KEYLIST of one atom. A KEYLIST of t or `otherwise' is | |||
| 635 | allowed only in the final clause, and matches if no other keys match. | 638 | allowed only in the final clause, and matches if no other keys match. |
| 636 | Key values are compared by `eql'. | 639 | Key values are compared by `eql'. |
| 637 | \n(fn EXPR (KEYLIST BODY...)...)" | 640 | \n(fn EXPR (KEYLIST BODY...)...)" |
| 638 | (declare (debug (form &rest (sexp body)))) | 641 | (declare (indent 1) (debug (form &rest (sexp body)))) |
| 639 | (let* ((temp (if (cl-simple-expr-p expr 3) expr (make-symbol "--cl-var--"))) | 642 | (let* ((temp (if (cl-simple-expr-p expr 3) expr (make-symbol "--cl-var--"))) |
| 640 | (head-list nil) | 643 | (head-list nil) |
| 641 | (body (cons | 644 | (body (cons |
| @@ -666,7 +669,7 @@ Key values are compared by `eql'. | |||
| 666 | "Like `case', but error if no case fits. | 669 | "Like `case', but error if no case fits. |
| 667 | `otherwise'-clauses are not allowed. | 670 | `otherwise'-clauses are not allowed. |
| 668 | \n(fn EXPR (KEYLIST BODY...)...)" | 671 | \n(fn EXPR (KEYLIST BODY...)...)" |
| 669 | (declare (debug case)) | 672 | (declare (indent 1) (debug case)) |
| 670 | (list* 'case expr (append clauses '((ecase-error-flag))))) | 673 | (list* 'case expr (append clauses '((ecase-error-flag))))) |
| 671 | 674 | ||
| 672 | ;;;###autoload | 675 | ;;;###autoload |
| @@ -677,7 +680,8 @@ satisfies TYPE, the corresponding BODY is evaluated. If no clause succeeds, | |||
| 677 | typecase returns nil. A TYPE of t or `otherwise' is allowed only in the | 680 | typecase returns nil. A TYPE of t or `otherwise' is allowed only in the |
| 678 | final clause, and matches if no other keys match. | 681 | final clause, and matches if no other keys match. |
| 679 | \n(fn EXPR (TYPE BODY...)...)" | 682 | \n(fn EXPR (TYPE BODY...)...)" |
| 680 | (declare (debug (form &rest ([&or cl-type-spec "otherwise"] body)))) | 683 | (declare (indent 1) |
| 684 | (debug (form &rest ([&or cl-type-spec "otherwise"] body)))) | ||
| 681 | (let* ((temp (if (cl-simple-expr-p expr 3) expr (make-symbol "--cl-var--"))) | 685 | (let* ((temp (if (cl-simple-expr-p expr 3) expr (make-symbol "--cl-var--"))) |
| 682 | (type-list nil) | 686 | (type-list nil) |
| 683 | (body (cons | 687 | (body (cons |
| @@ -702,7 +706,7 @@ final clause, and matches if no other keys match. | |||
| 702 | "Like `typecase', but error if no case fits. | 706 | "Like `typecase', but error if no case fits. |
| 703 | `otherwise'-clauses are not allowed. | 707 | `otherwise'-clauses are not allowed. |
| 704 | \n(fn EXPR (TYPE BODY...)...)" | 708 | \n(fn EXPR (TYPE BODY...)...)" |
| 705 | (declare (debug typecase)) | 709 | (declare (indent 1) (debug typecase)) |
| 706 | (list* 'typecase expr (append clauses '((ecase-error-flag))))) | 710 | (list* 'typecase expr (append clauses '((ecase-error-flag))))) |
| 707 | 711 | ||
| 708 | 712 | ||
| @@ -718,7 +722,7 @@ quoted symbol or other form; and second, NAME is lexically rather than | |||
| 718 | dynamically scoped: Only references to it within BODY will work. These | 722 | dynamically scoped: Only references to it within BODY will work. These |
| 719 | references may appear inside macro expansions, but not inside functions | 723 | references may appear inside macro expansions, but not inside functions |
| 720 | called from BODY." | 724 | called from BODY." |
| 721 | (declare (debug (symbolp body))) | 725 | (declare (indent 1) (debug (symbolp body))) |
| 722 | (if (cl-safe-expr-p (cons 'progn body)) (cons 'progn body) | 726 | (if (cl-safe-expr-p (cons 'progn body)) (cons 'progn body) |
| 723 | (list 'cl-block-wrapper | 727 | (list 'cl-block-wrapper |
| 724 | (list* 'catch (list 'quote (intern (format "--cl-block-%s--" name))) | 728 | (list* 'catch (list 'quote (intern (format "--cl-block-%s--" name))) |
| @@ -738,7 +742,7 @@ This jumps out to the innermost enclosing `(block NAME ...)' form, | |||
| 738 | returning RESULT from that form (or nil if RESULT is omitted). | 742 | returning RESULT from that form (or nil if RESULT is omitted). |
| 739 | This is compatible with Common Lisp, but note that `defun' and | 743 | This is compatible with Common Lisp, but note that `defun' and |
| 740 | `defmacro' do not create implicit blocks as they do in Common Lisp." | 744 | `defmacro' do not create implicit blocks as they do in Common Lisp." |
| 741 | (declare (debug (symbolp &optional form))) | 745 | (declare (indent 1) (debug (symbolp &optional form))) |
| 742 | (let ((name2 (intern (format "--cl-block-%s--" name)))) | 746 | (let ((name2 (intern (format "--cl-block-%s--" name)))) |
| 743 | (list 'cl-block-throw (list 'quote name2) result))) | 747 | (list 'cl-block-throw (list 'quote name2) result))) |
| 744 | 748 | ||
| @@ -1479,7 +1483,8 @@ Valid clauses are: | |||
| 1479 | "The Common Lisp `do' loop. | 1483 | "The Common Lisp `do' loop. |
| 1480 | 1484 | ||
| 1481 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" | 1485 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" |
| 1482 | (declare (debug | 1486 | (declare (indent 2) |
| 1487 | (debug | ||
| 1483 | ((&rest &or symbolp (symbolp &optional form form)) | 1488 | ((&rest &or symbolp (symbolp &optional form form)) |
| 1484 | (form body) | 1489 | (form body) |
| 1485 | cl-declarations body))) | 1490 | cl-declarations body))) |
| @@ -1490,7 +1495,7 @@ Valid clauses are: | |||
| 1490 | "The Common Lisp `do*' loop. | 1495 | "The Common Lisp `do*' loop. |
| 1491 | 1496 | ||
| 1492 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" | 1497 | \(fn ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)" |
| 1493 | (declare (debug do)) | 1498 | (declare (indent 2) (debug do)) |
| 1494 | (cl-expand-do-loop steps endtest body t)) | 1499 | (cl-expand-do-loop steps endtest body t)) |
| 1495 | 1500 | ||
| 1496 | (defun cl-expand-do-loop (steps endtest body star) | 1501 | (defun cl-expand-do-loop (steps endtest body star) |
| @@ -1589,7 +1594,8 @@ Evaluate BODY with VAR bound to each interned symbol, or to each symbol | |||
| 1589 | from OBARRAY. | 1594 | from OBARRAY. |
| 1590 | 1595 | ||
| 1591 | \(fn (VAR [OBARRAY [RESULT]]) BODY...)" | 1596 | \(fn (VAR [OBARRAY [RESULT]]) BODY...)" |
| 1592 | (declare (debug ((symbolp &optional form form) cl-declarations body))) | 1597 | (declare (indent 1) |
| 1598 | (debug ((symbolp &optional form form) cl-declarations body))) | ||
| 1593 | ;; Apparently this doesn't have an implicit block. | 1599 | ;; Apparently this doesn't have an implicit block. |
| 1594 | (list 'block nil | 1600 | (list 'block nil |
| 1595 | (list 'let (list (car spec)) | 1601 | (list 'let (list (car spec)) |
| @@ -1600,7 +1606,7 @@ from OBARRAY. | |||
| 1600 | 1606 | ||
| 1601 | ;;;###autoload | 1607 | ;;;###autoload |
| 1602 | (defmacro do-all-symbols (spec &rest body) | 1608 | (defmacro do-all-symbols (spec &rest body) |
| 1603 | (declare (debug ((symbolp &optional form) cl-declarations body))) | 1609 | (declare (indent 1) (debug ((symbolp &optional form) cl-declarations body))) |
| 1604 | (list* 'do-symbols (list (car spec) nil (cadr spec)) body)) | 1610 | (list* 'do-symbols (list (car spec) nil (cadr spec)) body)) |
| 1605 | 1611 | ||
| 1606 | 1612 | ||
| @@ -1627,7 +1633,7 @@ Each symbol in the first list is bound to the corresponding value in the | |||
| 1627 | second list (or made unbound if VALUES is shorter than SYMBOLS); then the | 1633 | second list (or made unbound if VALUES is shorter than SYMBOLS); then the |
| 1628 | BODY forms are executed and their result is returned. This is much like | 1634 | BODY forms are executed and their result is returned. This is much like |
| 1629 | a `let' form, except that the list of symbols can be computed at run-time." | 1635 | a `let' form, except that the list of symbols can be computed at run-time." |
| 1630 | (declare (debug (form form body))) | 1636 | (declare (indent 2) (debug (form form body))) |
| 1631 | (list 'let '((cl-progv-save nil)) | 1637 | (list 'let '((cl-progv-save nil)) |
| 1632 | (list 'unwind-protect | 1638 | (list 'unwind-protect |
| 1633 | (list* 'progn (list 'cl-progv-before symbols values) body) | 1639 | (list* 'progn (list 'cl-progv-before symbols values) body) |
| @@ -1643,7 +1649,7 @@ function definitions in place, then the definitions are undone (the FUNCs | |||
| 1643 | go back to their previous definitions, or lack thereof). | 1649 | go back to their previous definitions, or lack thereof). |
| 1644 | 1650 | ||
| 1645 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" | 1651 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" |
| 1646 | (declare (debug ((&rest (defun*)) cl-declarations body))) | 1652 | (declare (indent 1) (debug ((&rest (defun*)) cl-declarations body))) |
| 1647 | (list* 'letf* | 1653 | (list* 'letf* |
| 1648 | (mapcar | 1654 | (mapcar |
| 1649 | (function | 1655 | (function |
| @@ -1676,7 +1682,7 @@ This is like `flet', except the bindings are lexical instead of dynamic. | |||
| 1676 | Unlike `flet', this macro is fully compliant with the Common Lisp standard. | 1682 | Unlike `flet', this macro is fully compliant with the Common Lisp standard. |
| 1677 | 1683 | ||
| 1678 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" | 1684 | \(fn ((FUNC ARGLIST BODY...) ...) FORM...)" |
| 1679 | (declare (debug flet)) | 1685 | (declare (indent 1) (debug flet)) |
| 1680 | (let ((vars nil) (sets nil) (cl-macro-environment cl-macro-environment)) | 1686 | (let ((vars nil) (sets nil) (cl-macro-environment cl-macro-environment)) |
| 1681 | (while bindings | 1687 | (while bindings |
| 1682 | ;; Use `gensym' rather than `make-symbol'. It's important that | 1688 | ;; Use `gensym' rather than `make-symbol'. It's important that |
| @@ -1701,7 +1707,8 @@ Unlike `flet', this macro is fully compliant with the Common Lisp standard. | |||
| 1701 | This is like `flet', but for macros instead of functions. | 1707 | This is like `flet', but for macros instead of functions. |
| 1702 | 1708 | ||
| 1703 | \(fn ((NAME ARGLIST BODY...) ...) FORM...)" | 1709 | \(fn ((NAME ARGLIST BODY...) ...) FORM...)" |
| 1704 | (declare (debug | 1710 | (declare (indent 1) |
| 1711 | (debug | ||
| 1705 | ((&rest (&define name (&rest arg) cl-declarations-or-string | 1712 | ((&rest (&define name (&rest arg) cl-declarations-or-string |
| 1706 | def-body)) | 1713 | def-body)) |
| 1707 | cl-declarations body))) | 1714 | cl-declarations body))) |
| @@ -1723,7 +1730,7 @@ Within the body FORMs, references to the variable NAME will be replaced | |||
| 1723 | by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). | 1730 | by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). |
| 1724 | 1731 | ||
| 1725 | \(fn ((NAME EXPANSION) ...) FORM...)" | 1732 | \(fn ((NAME EXPANSION) ...) FORM...)" |
| 1726 | (declare (debug ((&rest (symbol sexp)) cl-declarations body))) | 1733 | (declare (indent 1) (debug ((&rest (symbol sexp)) cl-declarations body))) |
| 1727 | (if (cdr bindings) | 1734 | (if (cdr bindings) |
| 1728 | (list 'symbol-macrolet | 1735 | (list 'symbol-macrolet |
| 1729 | (list (car bindings)) (list* 'symbol-macrolet (cdr bindings) body)) | 1736 | (list (car bindings)) (list* 'symbol-macrolet (cdr bindings) body)) |
| @@ -1740,7 +1747,7 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). | |||
| 1740 | The main visible difference is that lambdas inside BODY will create | 1747 | The main visible difference is that lambdas inside BODY will create |
| 1741 | lexical closures as in Common Lisp. | 1748 | lexical closures as in Common Lisp. |
| 1742 | \n(fn BINDINGS BODY)" | 1749 | \n(fn BINDINGS BODY)" |
| 1743 | (declare (debug let)) | 1750 | (declare (indent 1) (debug let)) |
| 1744 | (let* ((cl-closure-vars cl-closure-vars) | 1751 | (let* ((cl-closure-vars cl-closure-vars) |
| 1745 | (vars (mapcar (function | 1752 | (vars (mapcar (function |
| 1746 | (lambda (x) | 1753 | (lambda (x) |
| @@ -1793,7 +1800,7 @@ successive bindings within BINDINGS, will create lexical closures | |||
| 1793 | as in Common Lisp. This is similar to the behavior of `let*' in | 1800 | as in Common Lisp. This is similar to the behavior of `let*' in |
| 1794 | Common Lisp. | 1801 | Common Lisp. |
| 1795 | \n(fn BINDINGS BODY)" | 1802 | \n(fn BINDINGS BODY)" |
| 1796 | (declare (debug let)) | 1803 | (declare (indent 1) (debug let)) |
| 1797 | (if (null bindings) (cons 'progn body) | 1804 | (if (null bindings) (cons 'progn body) |
| 1798 | (setq bindings (reverse bindings)) | 1805 | (setq bindings (reverse bindings)) |
| 1799 | (while bindings | 1806 | (while bindings |
| @@ -1819,7 +1826,7 @@ simulate true multiple return values. For compatibility, (values A B C) is | |||
| 1819 | a synonym for (list A B C). | 1826 | a synonym for (list A B C). |
| 1820 | 1827 | ||
| 1821 | \(fn (SYM...) FORM BODY)" | 1828 | \(fn (SYM...) FORM BODY)" |
| 1822 | (declare (debug ((&rest symbolp) form body))) | 1829 | (declare (indent 2) (debug ((&rest symbolp) form body))) |
| 1823 | (let ((temp (make-symbol "--cl-var--")) (n -1)) | 1830 | (let ((temp (make-symbol "--cl-var--")) (n -1)) |
| 1824 | (list* 'let* (cons (list temp form) | 1831 | (list* 'let* (cons (list temp form) |
| 1825 | (mapcar (function | 1832 | (mapcar (function |
| @@ -1837,7 +1844,7 @@ each of the symbols SYM in turn. This is analogous to the Common Lisp | |||
| 1837 | values. For compatibility, (values A B C) is a synonym for (list A B C). | 1844 | values. For compatibility, (values A B C) is a synonym for (list A B C). |
| 1838 | 1845 | ||
| 1839 | \(fn (SYM...) FORM)" | 1846 | \(fn (SYM...) FORM)" |
| 1840 | (declare (debug ((&rest symbolp) form))) | 1847 | (declare (indent 1) (debug ((&rest symbolp) form))) |
| 1841 | (cond ((null vars) (list 'progn form nil)) | 1848 | (cond ((null vars) (list 'progn form nil)) |
| 1842 | ((null (cdr vars)) (list 'setq (car vars) (list 'car form))) | 1849 | ((null (cdr vars)) (list 'setq (car vars) (list 'car form))) |
| 1843 | (t | 1850 | (t |
| @@ -1862,7 +1869,7 @@ values. For compatibility, (values A B C) is a synonym for (list A B C). | |||
| 1862 | (cons 'progn body)) | 1869 | (cons 'progn body)) |
| 1863 | ;;;###autoload | 1870 | ;;;###autoload |
| 1864 | (defmacro the (type form) | 1871 | (defmacro the (type form) |
| 1865 | (declare (debug (cl-type-spec form))) | 1872 | (declare (indent 1) (debug (cl-type-spec form))) |
| 1866 | form) | 1873 | form) |
| 1867 | 1874 | ||
| 1868 | (defvar cl-proclaim-history t) ; for future compilers | 1875 | (defvar cl-proclaim-history t) ; for future compilers |
| @@ -2444,7 +2451,7 @@ As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', | |||
| 2444 | the PLACE is not modified before executing BODY. | 2451 | the PLACE is not modified before executing BODY. |
| 2445 | 2452 | ||
| 2446 | \(fn ((PLACE VALUE) ...) BODY...)" | 2453 | \(fn ((PLACE VALUE) ...) BODY...)" |
| 2447 | (declare (debug ((&rest (gate place &optional form)) body))) | 2454 | (declare (indent 1) (debug ((&rest (gate place &optional form)) body))) |
| 2448 | (if (and (not (cdr bindings)) (cdar bindings) (symbolp (caar bindings))) | 2455 | (if (and (not (cdr bindings)) (cdar bindings) (symbolp (caar bindings))) |
| 2449 | (list* 'let bindings body) | 2456 | (list* 'let bindings body) |
| 2450 | (let ((lets nil) (sets nil) | 2457 | (let ((lets nil) (sets nil) |
| @@ -2502,7 +2509,7 @@ As a special case, if `(PLACE)' is used instead of `(PLACE VALUE)', | |||
| 2502 | the PLACE is not modified before executing BODY. | 2509 | the PLACE is not modified before executing BODY. |
| 2503 | 2510 | ||
| 2504 | \(fn ((PLACE VALUE) ...) BODY...)" | 2511 | \(fn ((PLACE VALUE) ...) BODY...)" |
| 2505 | (declare (debug letf)) | 2512 | (declare (indent 1) (debug letf)) |
| 2506 | (if (null bindings) | 2513 | (if (null bindings) |
| 2507 | (cons 'progn body) | 2514 | (cons 'progn body) |
| 2508 | (setq bindings (reverse bindings)) | 2515 | (setq bindings (reverse bindings)) |
| @@ -2517,7 +2524,7 @@ FUNC should be an unquoted function name. PLACE may be a symbol, | |||
| 2517 | or any generalized variable allowed by `setf'. | 2524 | or any generalized variable allowed by `setf'. |
| 2518 | 2525 | ||
| 2519 | \(fn FUNC PLACE ARGS...)" | 2526 | \(fn FUNC PLACE ARGS...)" |
| 2520 | (declare (debug (function* place &rest form))) | 2527 | (declare (indent 2) (debug (function* place &rest form))) |
| 2521 | (let* ((method (cl-setf-do-modify place (cons 'list args))) | 2528 | (let* ((method (cl-setf-do-modify place (cons 'list args))) |
| 2522 | (rargs (cons (nth 2 method) args))) | 2529 | (rargs (cons (nth 2 method) args))) |
| 2523 | (list 'let* (car method) | 2530 | (list 'let* (car method) |
| @@ -2532,7 +2539,7 @@ or any generalized variable allowed by `setf'. | |||
| 2532 | Like `callf', but PLACE is the second argument of FUNC, not the first. | 2539 | Like `callf', but PLACE is the second argument of FUNC, not the first. |
| 2533 | 2540 | ||
| 2534 | \(fn FUNC ARG1 PLACE ARGS...)" | 2541 | \(fn FUNC ARG1 PLACE ARGS...)" |
| 2535 | (declare (debug (function* form place &rest form))) | 2542 | (declare (indent 3) (debug (function* form place &rest form))) |
| 2536 | (if (and (cl-safe-expr-p arg1) (cl-simple-expr-p place) (symbolp func)) | 2543 | (if (and (cl-safe-expr-p arg1) (cl-simple-expr-p place) (symbolp func)) |
| 2537 | (list 'setf place (list* func arg1 place args)) | 2544 | (list 'setf place (list* func arg1 place args)) |
| 2538 | (let* ((method (cl-setf-do-modify place (cons 'list args))) | 2545 | (let* ((method (cl-setf-do-modify place (cons 'list args))) |
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index c5af1d8a4f1..7c486e17dcf 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el | |||
| @@ -651,42 +651,6 @@ If ALIST is non-nil, the new pairs are prepended to it." | |||
| 651 | 651 | ||
| 652 | ;;; Miscellaneous. | 652 | ;;; Miscellaneous. |
| 653 | 653 | ||
| 654 | ;; Define data for indentation and edebug. | ||
| 655 | (dolist (entry | ||
| 656 | '(((defun* defmacro*) 2) | ||
| 657 | ((function*) nil | ||
| 658 | (&or symbolp ([&optional 'macro] 'lambda (&rest sexp) &rest form))) | ||
| 659 | ((eval-when) 1 (sexp &rest form)) | ||
| 660 | ((declare) nil (&rest sexp)) | ||
| 661 | ((the) 1 (sexp &rest form)) | ||
| 662 | ((case ecase typecase etypecase) 1 (form &rest (sexp &rest form))) | ||
| 663 | ((block return-from) 1 (sexp &rest form)) | ||
| 664 | ((return) nil (&optional form)) | ||
| 665 | ((do do*) 2 ((&rest &or symbolp (symbolp &optional form form)) | ||
| 666 | (form &rest form) | ||
| 667 | &rest form)) | ||
| 668 | ((do-symbols) 1 ((symbolp form &optional form form) &rest form)) | ||
| 669 | ((do-all-symbols) 1 ((symbolp form &optional form) &rest form)) | ||
| 670 | ((psetq setf psetf) nil edebug-setq-form) | ||
| 671 | ((progv) 2 (&rest form)) | ||
| 672 | ((flet labels macrolet) 1 | ||
| 673 | ((&rest (sexp sexp &rest form)) &rest form)) | ||
| 674 | ((symbol-macrolet lexical-let lexical-let*) 1 | ||
| 675 | ((&rest &or symbolp (symbolp form)) &rest form)) | ||
| 676 | ((multiple-value-bind) 2 ((&rest symbolp) &rest form)) | ||
| 677 | ((multiple-value-setq) 1 ((&rest symbolp) &rest form)) | ||
| 678 | ((incf decf remf pushnew shiftf rotatef) nil (&rest form)) | ||
| 679 | ((letf letf*) 1 ((&rest (&rest form)) &rest form)) | ||
| 680 | ((callf destructuring-bind) 2 (sexp form &rest form)) | ||
| 681 | ((callf2) 3 (sexp form form &rest form)) | ||
| 682 | ((loop) nil (&rest &or symbolp form)) | ||
| 683 | ((ignore-errors) 0 (&rest form)))) | ||
| 684 | (dolist (func (car entry)) | ||
| 685 | (put func 'lisp-indent-function (nth 1 entry)) | ||
| 686 | (put func 'lisp-indent-hook (nth 1 entry)) | ||
| 687 | (or (get func 'edebug-form-spec) | ||
| 688 | (put func 'edebug-form-spec (nth 2 entry))))) | ||
| 689 | |||
| 690 | ;; Autoload the other portions of the package. | 654 | ;; Autoload the other portions of the package. |
| 691 | ;; We want to replace the basic versions of dolist, dotimes, declare below. | 655 | ;; We want to replace the basic versions of dolist, dotimes, declare below. |
| 692 | (fmakunbound 'dolist) | 656 | (fmakunbound 'dolist) |