diff options
| -rw-r--r-- | lisp/ChangeLog | 24 | ||||
| -rw-r--r-- | lisp/Makefile.in | 12 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-extra.el | 16 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-lib.el | 108 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-loaddefs.el | 4 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl-macs.el | 200 | ||||
| -rw-r--r-- | lisp/emacs-lisp/cl.el | 18 | ||||
| -rw-r--r-- | lisp/emacs-lisp/gv.el | 117 | ||||
| -rw-r--r-- | lisp/env.el | 2 | ||||
| -rw-r--r-- | lisp/faces.el | 29 | ||||
| -rw-r--r-- | lisp/files.el | 14 | ||||
| -rw-r--r-- | lisp/ldefs-boot.el | 225 | ||||
| -rw-r--r-- | lisp/startup.el | 4 | ||||
| -rw-r--r-- | lisp/subr.el | 1 | ||||
| -rw-r--r-- | lisp/window.el | 4 |
15 files changed, 449 insertions, 329 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f99b3e4d32a..4a92a427342 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,27 @@ | |||
| 1 | 2012-06-22 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 2 | |||
| 3 | Further GV/CL cleanups. | ||
| 4 | * emacs-lisp/gv.el (gv-get): Autoload functions to find their | ||
| 5 | gv-expander. | ||
| 6 | (gv--defun-declaration): New function. | ||
| 7 | (defun-declarations-alist): Use it. | ||
| 8 | (gv-define-modify-macro, gv-pushnew!, gv-inc!, gv-dec!): Remove. | ||
| 9 | (gv-place): Autoload. | ||
| 10 | * emacs-lisp/cl.el (cl--dotimes, cl--dolist): Remember subr.el's | ||
| 11 | original definition of dotimes and dolist. | ||
| 12 | * emacs-lisp/cl-macs.el (cl-expr-access-order): Remove unused. | ||
| 13 | (cl-dolist, cl-dotimes): Use `dolist' and `dotimes'. | ||
| 14 | * emacs-lisp/cl-lib.el: Move gv handlers from cl-macs to here. | ||
| 15 | (cl-fifth, cl-sixth, cl-seventh, cl-eighth) | ||
| 16 | (cl-ninth, cl-tenth): Move gv handler to the function's definition. | ||
| 17 | * emacs-lisp/cl-extra.el (cl-subseq, cl-get, cl-getf): Move gv handler | ||
| 18 | to the function's definition. | ||
| 19 | * Makefile.in (COMPILE_FIRST): Re-order to speed it up by about 50%. | ||
| 20 | * window.el: | ||
| 21 | * files.el: | ||
| 22 | * faces.el: | ||
| 23 | * env.el: Don't use CL. | ||
| 24 | |||
| 1 | 2012-06-22 Paul Eggert <eggert@cs.ucla.edu> | 25 | 2012-06-22 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 26 | ||
| 3 | Support higher-resolution time stamps (Bug#9000). | 27 | Support higher-resolution time stamps (Bug#9000). |
diff --git a/lisp/Makefile.in b/lisp/Makefile.in index 4af584e77dc..6140b4fe953 100644 --- a/lisp/Makefile.in +++ b/lisp/Makefile.in | |||
| @@ -92,13 +92,17 @@ BIG_STACK_OPTS = --eval "(setq max-lisp-eval-depth $(BIG_STACK_DEPTH))" | |||
| 92 | BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) $(BYTE_COMPILE_EXTRA_FLAGS) | 92 | BYTE_COMPILE_FLAGS = $(BIG_STACK_OPTS) $(BYTE_COMPILE_EXTRA_FLAGS) |
| 93 | 93 | ||
| 94 | # Files to compile before others during a bootstrap. This is done to | 94 | # Files to compile before others during a bootstrap. This is done to |
| 95 | # speed up the bootstrap process. | 95 | # speed up the bootstrap process. They're ordered by size, so we use |
| 96 | # the slowest-compiler on the smallest file and move to larger files as the | ||
| 97 | # compiler gets faster. `autoload.elc' comes last because it is not used by | ||
| 98 | # the compiler (so its compilation does not speed up subsequent compilations), | ||
| 99 | # it's only placed here so as to speed up generation of the loaddefs.el file. | ||
| 96 | 100 | ||
| 97 | COMPILE_FIRST = \ | 101 | COMPILE_FIRST = \ |
| 98 | $(lisp)/emacs-lisp/bytecomp.elc \ | ||
| 99 | $(lisp)/emacs-lisp/byte-opt.elc \ | ||
| 100 | $(lisp)/emacs-lisp/macroexp.elc \ | 102 | $(lisp)/emacs-lisp/macroexp.elc \ |
| 101 | $(lisp)/emacs-lisp/cconv.elc \ | 103 | $(lisp)/emacs-lisp/cconv.elc \ |
| 104 | $(lisp)/emacs-lisp/byte-opt.elc \ | ||
| 105 | $(lisp)/emacs-lisp/bytecomp.elc \ | ||
| 102 | $(lisp)/emacs-lisp/autoload.elc | 106 | $(lisp)/emacs-lisp/autoload.elc |
| 103 | 107 | ||
| 104 | # The actual Emacs command run in the targets below. | 108 | # The actual Emacs command run in the targets below. |
diff --git a/lisp/emacs-lisp/cl-extra.el b/lisp/emacs-lisp/cl-extra.el index e64623ab44e..b721ceba2ef 100644 --- a/lisp/emacs-lisp/cl-extra.el +++ b/lisp/emacs-lisp/cl-extra.el | |||
| @@ -523,6 +523,10 @@ This sets the values of: `cl-most-positive-float', `cl-most-negative-float', | |||
| 523 | "Return the subsequence of SEQ from START to END. | 523 | "Return the subsequence of SEQ from START to END. |
| 524 | If END is omitted, it defaults to the length of the sequence. | 524 | If END is omitted, it defaults to the length of the sequence. |
| 525 | If START or END is negative, it counts from the end." | 525 | If START or END is negative, it counts from the end." |
| 526 | (declare (gv-setter | ||
| 527 | (lambda (new) | ||
| 528 | `(progn (cl-replace ,seq ,new :start1 ,start :end1 ,end) | ||
| 529 | ,new)))) | ||
| 526 | (if (stringp seq) (substring seq start end) | 530 | (if (stringp seq) (substring seq start end) |
| 527 | (let (len) | 531 | (let (len) |
| 528 | (and end (< end 0) (setq end (+ end (setq len (length seq))))) | 532 | (and end (< end 0) (setq end (+ end (setq len (length seq))))) |
| @@ -587,7 +591,8 @@ If START or END is negative, it counts from the end." | |||
| 587 | (defun cl-get (sym tag &optional def) | 591 | (defun cl-get (sym tag &optional def) |
| 588 | "Return the value of SYMBOL's PROPNAME property, or DEFAULT if none. | 592 | "Return the value of SYMBOL's PROPNAME property, or DEFAULT if none. |
| 589 | \n(fn SYMBOL PROPNAME &optional DEFAULT)" | 593 | \n(fn SYMBOL PROPNAME &optional DEFAULT)" |
| 590 | (declare (compiler-macro cl--compiler-macro-get)) | 594 | (declare (compiler-macro cl--compiler-macro-get) |
| 595 | (gv-setter (lambda (store) `(put ,sym ,tag ,store)))) | ||
| 591 | (or (get sym tag) | 596 | (or (get sym tag) |
| 592 | (and def | 597 | (and def |
| 593 | ;; Make sure `def' is really absent as opposed to set to nil. | 598 | ;; Make sure `def' is really absent as opposed to set to nil. |
| @@ -602,6 +607,15 @@ If START or END is negative, it counts from the end." | |||
| 602 | "Search PROPLIST for property PROPNAME; return its value or DEFAULT. | 607 | "Search PROPLIST for property PROPNAME; return its value or DEFAULT. |
| 603 | PROPLIST is a list of the sort returned by `symbol-plist'. | 608 | PROPLIST is a list of the sort returned by `symbol-plist'. |
| 604 | \n(fn PROPLIST PROPNAME &optional DEFAULT)" | 609 | \n(fn PROPLIST PROPNAME &optional DEFAULT)" |
| 610 | (declare (gv-expander | ||
| 611 | (lambda (do) | ||
| 612 | (gv-letplace (getter setter) plist | ||
| 613 | (macroexp-let2 nil k tag | ||
| 614 | (macroexp-let2 nil d def | ||
| 615 | (funcall do `(cl-getf ,getter ,k ,d) | ||
| 616 | (lambda (v) | ||
| 617 | (funcall setter | ||
| 618 | `(cl--set-getf ,getter ,k ,v)))))))))) | ||
| 605 | (setplist '--cl-getf-symbol-- plist) | 619 | (setplist '--cl-getf-symbol-- plist) |
| 606 | (or (get '--cl-getf-symbol-- tag) | 620 | (or (get '--cl-getf-symbol-- tag) |
| 607 | ;; Originally we called cl-get here, | 621 | ;; Originally we called cl-get here, |
diff --git a/lisp/emacs-lisp/cl-lib.el b/lisp/emacs-lisp/cl-lib.el index 2422aa8fbb6..990e66d91aa 100644 --- a/lisp/emacs-lisp/cl-lib.el +++ b/lisp/emacs-lisp/cl-lib.el | |||
| @@ -378,26 +378,32 @@ SEQ, this is like `mapcar'. With several, it is like the Common Lisp | |||
| 378 | 378 | ||
| 379 | (defsubst cl-fifth (x) | 379 | (defsubst cl-fifth (x) |
| 380 | "Return the fifth element of the list X." | 380 | "Return the fifth element of the list X." |
| 381 | (declare (gv-setter (lambda (store) `(setcar (nthcdr 4 ,x) ,store)))) | ||
| 381 | (nth 4 x)) | 382 | (nth 4 x)) |
| 382 | 383 | ||
| 383 | (defsubst cl-sixth (x) | 384 | (defsubst cl-sixth (x) |
| 384 | "Return the sixth element of the list X." | 385 | "Return the sixth element of the list X." |
| 386 | (declare (gv-setter (lambda (store) `(setcar (nthcdr 5 ,x) ,store)))) | ||
| 385 | (nth 5 x)) | 387 | (nth 5 x)) |
| 386 | 388 | ||
| 387 | (defsubst cl-seventh (x) | 389 | (defsubst cl-seventh (x) |
| 388 | "Return the seventh element of the list X." | 390 | "Return the seventh element of the list X." |
| 391 | (declare (gv-setter (lambda (store) `(setcar (nthcdr 6 ,x) ,store)))) | ||
| 389 | (nth 6 x)) | 392 | (nth 6 x)) |
| 390 | 393 | ||
| 391 | (defsubst cl-eighth (x) | 394 | (defsubst cl-eighth (x) |
| 392 | "Return the eighth element of the list X." | 395 | "Return the eighth element of the list X." |
| 396 | (declare (gv-setter (lambda (store) `(setcar (nthcdr 7 ,x) ,store)))) | ||
| 393 | (nth 7 x)) | 397 | (nth 7 x)) |
| 394 | 398 | ||
| 395 | (defsubst cl-ninth (x) | 399 | (defsubst cl-ninth (x) |
| 396 | "Return the ninth element of the list X." | 400 | "Return the ninth element of the list X." |
| 401 | (declare (gv-setter (lambda (store) `(setcar (nthcdr 8 ,x) ,store)))) | ||
| 397 | (nth 8 x)) | 402 | (nth 8 x)) |
| 398 | 403 | ||
| 399 | (defsubst cl-tenth (x) | 404 | (defsubst cl-tenth (x) |
| 400 | "Return the tenth element of the list X." | 405 | "Return the tenth element of the list X." |
| 406 | (declare (gv-setter (lambda (store) `(setcar (nthcdr 9 ,x) ,store)))) | ||
| 401 | (nth 9 x)) | 407 | (nth 9 x)) |
| 402 | 408 | ||
| 403 | (defun cl-caaar (x) | 409 | (defun cl-caaar (x) |
| @@ -612,6 +618,108 @@ If ALIST is non-nil, the new pairs are prepended to it." | |||
| 612 | (nconc (cl-mapcar 'cons keys values) alist)) | 618 | (nconc (cl-mapcar 'cons keys values) alist)) |
| 613 | 619 | ||
| 614 | 620 | ||
| 621 | ;;; Generalized variables. | ||
| 622 | |||
| 623 | ;; These used to be in cl-macs.el since all macros that use them (like setf) | ||
| 624 | ;; were autoloaded from cl-macs.el. But now that setf, push, and pop are in | ||
| 625 | ;; core Elisp, they need to either be right here or be autoloaded via | ||
| 626 | ;; cl-loaddefs.el, which is more trouble than it is worth. | ||
| 627 | |||
| 628 | ;; Some more Emacs-related place types. | ||
| 629 | (gv-define-simple-setter buffer-file-name set-visited-file-name t) | ||
| 630 | (gv-define-setter buffer-modified-p (flag &optional buf) | ||
| 631 | `(with-current-buffer ,buf | ||
| 632 | (set-buffer-modified-p ,flag))) | ||
| 633 | (gv-define-simple-setter buffer-name rename-buffer t) | ||
| 634 | (gv-define-setter buffer-string (store) | ||
| 635 | `(progn (erase-buffer) (insert ,store))) | ||
| 636 | (gv-define-simple-setter buffer-substring cl--set-buffer-substring) | ||
| 637 | (gv-define-simple-setter current-buffer set-buffer) | ||
| 638 | (gv-define-simple-setter current-case-table set-case-table) | ||
| 639 | (gv-define-simple-setter current-column move-to-column t) | ||
| 640 | (gv-define-simple-setter current-global-map use-global-map t) | ||
| 641 | (gv-define-setter current-input-mode (store) | ||
| 642 | `(progn (apply #'set-input-mode ,store) ,store)) | ||
| 643 | (gv-define-simple-setter current-local-map use-local-map t) | ||
| 644 | (gv-define-simple-setter current-window-configuration | ||
| 645 | set-window-configuration t) | ||
| 646 | (gv-define-simple-setter default-file-modes set-default-file-modes t) | ||
| 647 | (gv-define-simple-setter documentation-property put) | ||
| 648 | (gv-define-setter face-background (x f &optional s) | ||
| 649 | `(set-face-background ,f ,x ,s)) | ||
| 650 | (gv-define-setter face-background-pixmap (x f &optional s) | ||
| 651 | `(set-face-background-pixmap ,f ,x ,s)) | ||
| 652 | (gv-define-setter face-font (x f &optional s) `(set-face-font ,f ,x ,s)) | ||
| 653 | (gv-define-setter face-foreground (x f &optional s) | ||
| 654 | `(set-face-foreground ,f ,x ,s)) | ||
| 655 | (gv-define-setter face-underline-p (x f &optional s) | ||
| 656 | `(set-face-underline-p ,f ,x ,s)) | ||
| 657 | (gv-define-simple-setter file-modes set-file-modes t) | ||
| 658 | (gv-define-simple-setter frame-height set-screen-height t) | ||
| 659 | (gv-define-simple-setter frame-parameters modify-frame-parameters t) | ||
| 660 | (gv-define-simple-setter frame-visible-p cl--set-frame-visible-p) | ||
| 661 | (gv-define-simple-setter frame-width set-screen-width t) | ||
| 662 | (gv-define-simple-setter getenv setenv t) | ||
| 663 | (gv-define-simple-setter get-register set-register) | ||
| 664 | (gv-define-simple-setter global-key-binding global-set-key) | ||
| 665 | (gv-define-simple-setter local-key-binding local-set-key) | ||
| 666 | (gv-define-simple-setter mark set-mark t) | ||
| 667 | (gv-define-simple-setter mark-marker set-mark t) | ||
| 668 | (gv-define-simple-setter marker-position set-marker t) | ||
| 669 | (gv-define-setter mouse-position (store scr) | ||
| 670 | `(set-mouse-position ,scr (car ,store) (cadr ,store) | ||
| 671 | (cddr ,store))) | ||
| 672 | (gv-define-simple-setter point goto-char) | ||
| 673 | (gv-define-simple-setter point-marker goto-char t) | ||
| 674 | (gv-define-setter point-max (store) | ||
| 675 | `(progn (narrow-to-region (point-min) ,store) ,store)) | ||
| 676 | (gv-define-setter point-min (store) | ||
| 677 | `(progn (narrow-to-region ,store (point-max)) ,store)) | ||
| 678 | (gv-define-setter read-mouse-position (store scr) | ||
| 679 | `(set-mouse-position ,scr (car ,store) (cdr ,store))) | ||
| 680 | (gv-define-simple-setter screen-height set-screen-height t) | ||
| 681 | (gv-define-simple-setter screen-width set-screen-width t) | ||
| 682 | (gv-define-simple-setter selected-window select-window) | ||
| 683 | (gv-define-simple-setter selected-screen select-screen) | ||
| 684 | (gv-define-simple-setter selected-frame select-frame) | ||
| 685 | (gv-define-simple-setter standard-case-table set-standard-case-table) | ||
| 686 | (gv-define-simple-setter syntax-table set-syntax-table) | ||
| 687 | (gv-define-simple-setter visited-file-modtime set-visited-file-modtime t) | ||
| 688 | (gv-define-setter window-height (store) | ||
| 689 | `(progn (enlarge-window (- ,store (window-height))) ,store)) | ||
| 690 | (gv-define-setter window-width (store) | ||
| 691 | `(progn (enlarge-window (- ,store (window-width)) t) ,store)) | ||
| 692 | (gv-define-simple-setter x-get-secondary-selection x-own-secondary-selection t) | ||
| 693 | (gv-define-simple-setter x-get-selection x-own-selection t) | ||
| 694 | |||
| 695 | ;; More complex setf-methods. | ||
| 696 | |||
| 697 | ;; This is a hack that allows (setf (eq a 7) B) to mean either | ||
| 698 | ;; (setq a 7) or (setq a nil) depending on whether B is nil or not. | ||
| 699 | ;; This is useful when you have control over the PLACE but not over | ||
| 700 | ;; the VALUE, as is the case in define-minor-mode's :variable. | ||
| 701 | ;; It turned out that :variable needed more flexibility anyway, so | ||
| 702 | ;; this doesn't seem too useful now. | ||
| 703 | (gv-define-expander eq | ||
| 704 | (lambda (do place val) | ||
| 705 | (gv-letplace (getter setter) place | ||
| 706 | (macroexp-let2 nil val val | ||
| 707 | (funcall do `(eq ,getter ,val) | ||
| 708 | (lambda (v) | ||
| 709 | `(cond | ||
| 710 | (,v ,(funcall setter val)) | ||
| 711 | ((eq ,getter ,val) ,(funcall setter `(not ,val)))))))))) | ||
| 712 | |||
| 713 | (gv-define-expander substring | ||
| 714 | (lambda (do place from &optional to) | ||
| 715 | (gv-letplace (getter setter) place | ||
| 716 | (macroexp-let2 nil start from | ||
| 717 | (macroexp-let2 nil end to | ||
| 718 | (funcall do `(substring ,getter ,start ,end) | ||
| 719 | (lambda (v) | ||
| 720 | (funcall setter `(cl--set-substring | ||
| 721 | ,getter ,start ,end ,v))))))))) | ||
| 722 | |||
| 615 | ;;; Miscellaneous. | 723 | ;;; Miscellaneous. |
| 616 | 724 | ||
| 617 | ;;;###autoload | 725 | ;;;###autoload |
diff --git a/lisp/emacs-lisp/cl-loaddefs.el b/lisp/emacs-lisp/cl-loaddefs.el index 220715e6a9b..79f4d775e1a 100644 --- a/lisp/emacs-lisp/cl-loaddefs.el +++ b/lisp/emacs-lisp/cl-loaddefs.el | |||
| @@ -11,7 +11,7 @@ | |||
| 11 | ;;;;;; cl--set-frame-visible-p cl--map-overlays cl--map-intervals | 11 | ;;;;;; cl--set-frame-visible-p cl--map-overlays cl--map-intervals |
| 12 | ;;;;;; cl--map-keymap-recursively cl-notevery cl-notany cl-every | 12 | ;;;;;; cl--map-keymap-recursively cl-notevery cl-notany cl-every |
| 13 | ;;;;;; cl-some cl-mapcon cl-mapcan cl-mapl cl-maplist cl-map cl--mapcar-many | 13 | ;;;;;; cl-some cl-mapcon cl-mapcan cl-mapl cl-maplist cl-map cl--mapcar-many |
| 14 | ;;;;;; cl-equalp cl-coerce) "cl-extra" "cl-extra.el" "edc8a08741d81c74be36b27664d3555a") | 14 | ;;;;;; cl-equalp cl-coerce) "cl-extra" "cl-extra.el" "25963dec757a527e3be3ba7f7abc49ee") |
| 15 | ;;; Generated autoloads from cl-extra.el | 15 | ;;; Generated autoloads from cl-extra.el |
| 16 | 16 | ||
| 17 | (autoload 'cl-coerce "cl-extra" "\ | 17 | (autoload 'cl-coerce "cl-extra" "\ |
| @@ -265,7 +265,7 @@ Remove from SYMBOL's plist the property PROPNAME and its value. | |||
| 265 | ;;;;;; cl-return cl-block cl-etypecase cl-typecase cl-ecase cl-case | 265 | ;;;;;; cl-return cl-block cl-etypecase cl-typecase cl-ecase cl-case |
| 266 | ;;;;;; cl-load-time-value cl-eval-when cl-destructuring-bind cl-function | 266 | ;;;;;; cl-load-time-value cl-eval-when cl-destructuring-bind cl-function |
| 267 | ;;;;;; cl-defmacro cl-defun cl-gentemp cl-gensym) "cl-macs" "cl-macs.el" | 267 | ;;;;;; cl-defmacro cl-defun cl-gentemp cl-gensym) "cl-macs" "cl-macs.el" |
| 268 | ;;;;;; "e37cb1001378ce1d677b67760fb6994b") | 268 | ;;;;;; "66d8d151a97f91a79ebe3d1a9d699483") |
| 269 | ;;; Generated autoloads from cl-macs.el | 269 | ;;; Generated autoloads from cl-macs.el |
| 270 | 270 | ||
| 271 | (autoload 'cl-gensym "cl-macs" "\ | 271 | (autoload 'cl-gensym "cl-macs" "\ |
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el index 234879c9cc3..d4bd73827d2 100644 --- a/lisp/emacs-lisp/cl-macs.el +++ b/lisp/emacs-lisp/cl-macs.el | |||
| @@ -110,20 +110,6 @@ | |||
| 110 | (defun cl--const-expr-val (x) | 110 | (defun cl--const-expr-val (x) |
| 111 | (and (macroexp-const-p x) (if (consp x) (nth 1 x) x))) | 111 | (and (macroexp-const-p x) (if (consp x) (nth 1 x) x))) |
| 112 | 112 | ||
| 113 | (defun cl-expr-access-order (x v) | ||
| 114 | ;; This apparently tries to return nil iff the expression X evaluates | ||
| 115 | ;; the variables V in the same order as they appear in V (so as to | ||
| 116 | ;; be able to replace those vars with the expressions they're bound | ||
| 117 | ;; to). | ||
| 118 | ;; FIXME: This is very naive, it doesn't even check to see if those | ||
| 119 | ;; variables appear more than once. | ||
| 120 | (if (macroexp-const-p x) v | ||
| 121 | (if (consp x) | ||
| 122 | (progn | ||
| 123 | (while (setq x (cdr x)) (setq v (cl-expr-access-order (car x) v))) | ||
| 124 | v) | ||
| 125 | (if (eq x (car v)) (cdr v) '(t))))) | ||
| 126 | |||
| 127 | (defun cl--expr-contains (x y) | 113 | (defun cl--expr-contains (x y) |
| 128 | "Count number of times X refers to Y. Return nil for 0 times." | 114 | "Count number of times X refers to Y. Return nil for 0 times." |
| 129 | ;; FIXME: This is naive, and it will cl-count Y as referred twice in | 115 | ;; FIXME: This is naive, and it will cl-count Y as referred twice in |
| @@ -1489,30 +1475,9 @@ An implicit nil block is established around the loop. | |||
| 1489 | 1475 | ||
| 1490 | \(fn (VAR LIST [RESULT]) BODY...)" | 1476 | \(fn (VAR LIST [RESULT]) BODY...)" |
| 1491 | (declare (debug ((symbolp form &optional form) cl-declarations body))) | 1477 | (declare (debug ((symbolp form &optional form) cl-declarations body))) |
| 1492 | (let ((temp (make-symbol "--cl-dolist-temp--"))) | 1478 | `(cl-block nil |
| 1493 | ;; FIXME: Copy&pasted from subr.el. | 1479 | (,(if (eq 'cl-dolist (symbol-function 'dolist)) 'cl--dolist 'dolist) |
| 1494 | `(cl-block nil | 1480 | ,spec ,@body))) |
| 1495 | ;; This is not a reliable test, but it does not matter because both | ||
| 1496 | ;; semantics are acceptable, tho one is slightly faster with dynamic | ||
| 1497 | ;; scoping and the other is slightly faster (and has cleaner semantics) | ||
| 1498 | ;; with lexical scoping. | ||
| 1499 | ,(if lexical-binding | ||
| 1500 | `(let ((,temp ,(nth 1 spec))) | ||
| 1501 | (while ,temp | ||
| 1502 | (let ((,(car spec) (car ,temp))) | ||
| 1503 | ,@body | ||
| 1504 | (setq ,temp (cdr ,temp)))) | ||
| 1505 | ,@(if (cdr (cdr spec)) | ||
| 1506 | ;; FIXME: This let often leads to "unused var" warnings. | ||
| 1507 | `((let ((,(car spec) nil)) ,@(cdr (cdr spec)))))) | ||
| 1508 | `(let ((,temp ,(nth 1 spec)) | ||
| 1509 | ,(car spec)) | ||
| 1510 | (while ,temp | ||
| 1511 | (setq ,(car spec) (car ,temp)) | ||
| 1512 | ,@body | ||
| 1513 | (setq ,temp (cdr ,temp))) | ||
| 1514 | ,@(if (cdr (cdr spec)) | ||
| 1515 | `((setq ,(car spec) nil) ,@(cddr spec)))))))) | ||
| 1516 | 1481 | ||
| 1517 | ;;;###autoload | 1482 | ;;;###autoload |
| 1518 | (defmacro cl-dotimes (spec &rest body) | 1483 | (defmacro cl-dotimes (spec &rest body) |
| @@ -1523,30 +1488,9 @@ nil. | |||
| 1523 | 1488 | ||
| 1524 | \(fn (VAR COUNT [RESULT]) BODY...)" | 1489 | \(fn (VAR COUNT [RESULT]) BODY...)" |
| 1525 | (declare (debug cl-dolist)) | 1490 | (declare (debug cl-dolist)) |
| 1526 | (let ((temp (make-symbol "--cl-dotimes-temp--")) | 1491 | `(cl-block nil |
| 1527 | (end (nth 1 spec))) | 1492 | (,(if (eq 'cl-dotimes (symbol-function 'dotimes)) 'cl--dotimes 'dotimes) |
| 1528 | ;; FIXME: Copy&pasted from subr.el. | 1493 | ,spec ,@body))) |
| 1529 | `(cl-block nil | ||
| 1530 | ;; This is not a reliable test, but it does not matter because both | ||
| 1531 | ;; semantics are acceptable, tho one is slightly faster with dynamic | ||
| 1532 | ;; scoping and the other has cleaner semantics. | ||
| 1533 | ,(if lexical-binding | ||
| 1534 | (let ((counter '--dotimes-counter--)) | ||
| 1535 | `(let ((,temp ,end) | ||
| 1536 | (,counter 0)) | ||
| 1537 | (while (< ,counter ,temp) | ||
| 1538 | (let ((,(car spec) ,counter)) | ||
| 1539 | ,@body) | ||
| 1540 | (setq ,counter (1+ ,counter))) | ||
| 1541 | ,@(if (cddr spec) | ||
| 1542 | ;; FIXME: This let often leads to "unused var" warnings. | ||
| 1543 | `((let ((,(car spec) ,counter)) ,@(cddr spec)))))) | ||
| 1544 | `(let ((,temp ,end) | ||
| 1545 | (,(car spec) 0)) | ||
| 1546 | (while (< ,(car spec) ,temp) | ||
| 1547 | ,@body | ||
| 1548 | (cl-incf ,(car spec))) | ||
| 1549 | ,@(cdr (cdr spec))))))) | ||
| 1550 | 1494 | ||
| 1551 | ;;;###autoload | 1495 | ;;;###autoload |
| 1552 | (defmacro cl-do-symbols (spec &rest body) | 1496 | (defmacro cl-do-symbols (spec &rest body) |
| @@ -1730,7 +1674,7 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). | |||
| 1730 | (declare (indent 1) (debug ((&rest (symbol sexp)) cl-declarations body))) | 1674 | (declare (indent 1) (debug ((&rest (symbol sexp)) cl-declarations body))) |
| 1731 | (cond | 1675 | (cond |
| 1732 | ((cdr bindings) | 1676 | ((cdr bindings) |
| 1733 | `(cl-symbol-macrolet (,(car bindings)) | 1677 | `(cl-symbol-macrolet (,(car bindings)) |
| 1734 | (cl-symbol-macrolet ,(cdr bindings) ,@body))) | 1678 | (cl-symbol-macrolet ,(cdr bindings) ,@body))) |
| 1735 | ((null bindings) (macroexp-progn body)) | 1679 | ((null bindings) (macroexp-progn body)) |
| 1736 | (t | 1680 | (t |
| @@ -1740,8 +1684,8 @@ by EXPANSION, and (setq NAME ...) will act like (setf EXPANSION ...). | |||
| 1740 | (fset 'macroexpand #'cl--sm-macroexpand) | 1684 | (fset 'macroexpand #'cl--sm-macroexpand) |
| 1741 | ;; FIXME: For N bindings, this will traverse `body' N times! | 1685 | ;; FIXME: For N bindings, this will traverse `body' N times! |
| 1742 | (macroexpand-all (cons 'progn body) | 1686 | (macroexpand-all (cons 'progn body) |
| 1743 | (cons (list (symbol-name (caar bindings)) | 1687 | (cons (list (symbol-name (caar bindings)) |
| 1744 | (cl-cadar bindings)) | 1688 | (cl-cadar bindings)) |
| 1745 | macroexpand-all-environment))) | 1689 | macroexpand-all-environment))) |
| 1746 | (fset 'macroexpand previous-macroexpand)))))) | 1690 | (fset 'macroexpand previous-macroexpand)))))) |
| 1747 | 1691 | ||
| @@ -1864,130 +1808,6 @@ See Info node `(cl)Declarations' for details." | |||
| 1864 | 1808 | ||
| 1865 | 1809 | ||
| 1866 | 1810 | ||
| 1867 | ;;; Generalized variables. | ||
| 1868 | |||
| 1869 | ;;; Some standard place types from Common Lisp. | ||
| 1870 | (gv-define-setter cl-get (store x y &optional d) `(put ,x ,y ,store)) | ||
| 1871 | (gv-define-setter cl-subseq (new seq start &optional end) | ||
| 1872 | `(progn (cl-replace ,seq ,new :start1 ,start :end1 ,end) ,new)) | ||
| 1873 | |||
| 1874 | ;;; Various car/cdr aliases. Note that `cadr' is handled specially. | ||
| 1875 | (gv-define-setter cl-fourth (store x) `(setcar (cl-cdddr ,x) ,store)) | ||
| 1876 | (gv-define-setter cl-fifth (store x) `(setcar (nthcdr 4 ,x) ,store)) | ||
| 1877 | (gv-define-setter cl-sixth (store x) `(setcar (nthcdr 5 ,x) ,store)) | ||
| 1878 | (gv-define-setter cl-seventh (store x) `(setcar (nthcdr 6 ,x) ,store)) | ||
| 1879 | (gv-define-setter cl-eighth (store x) `(setcar (nthcdr 7 ,x) ,store)) | ||
| 1880 | (gv-define-setter cl-ninth (store x) `(setcar (nthcdr 8 ,x) ,store)) | ||
| 1881 | (gv-define-setter cl-tenth (store x) `(setcar (nthcdr 9 ,x) ,store)) | ||
| 1882 | |||
| 1883 | ;;; Some more Emacs-related place types. | ||
| 1884 | (gv-define-simple-setter buffer-file-name set-visited-file-name t) | ||
| 1885 | (gv-define-setter buffer-modified-p (flag &optional buf) | ||
| 1886 | `(with-current-buffer ,buf | ||
| 1887 | (set-buffer-modified-p ,flag))) | ||
| 1888 | (gv-define-simple-setter buffer-name rename-buffer t) | ||
| 1889 | (gv-define-setter buffer-string (store) | ||
| 1890 | `(progn (erase-buffer) (insert ,store))) | ||
| 1891 | (gv-define-simple-setter buffer-substring cl--set-buffer-substring) | ||
| 1892 | (gv-define-simple-setter current-buffer set-buffer) | ||
| 1893 | (gv-define-simple-setter current-case-table set-case-table) | ||
| 1894 | (gv-define-simple-setter current-column move-to-column t) | ||
| 1895 | (gv-define-simple-setter current-global-map use-global-map t) | ||
| 1896 | (gv-define-setter current-input-mode (store) | ||
| 1897 | `(progn (apply #'set-input-mode ,store) ,store)) | ||
| 1898 | (gv-define-simple-setter current-local-map use-local-map t) | ||
| 1899 | (gv-define-simple-setter current-window-configuration set-window-configuration t) | ||
| 1900 | (gv-define-simple-setter default-file-modes set-default-file-modes t) | ||
| 1901 | (gv-define-simple-setter documentation-property put) | ||
| 1902 | (gv-define-setter face-background (x f &optional s) `(set-face-background ,f ,x ,s)) | ||
| 1903 | (gv-define-setter face-background-pixmap (x f &optional s) | ||
| 1904 | `(set-face-background-pixmap ,f ,x ,s)) | ||
| 1905 | (gv-define-setter face-font (x f &optional s) `(set-face-font ,f ,x ,s)) | ||
| 1906 | (gv-define-setter face-foreground (x f &optional s) `(set-face-foreground ,f ,x ,s)) | ||
| 1907 | (gv-define-setter face-underline-p (x f &optional s) | ||
| 1908 | `(set-face-underline-p ,f ,x ,s)) | ||
| 1909 | (gv-define-simple-setter file-modes set-file-modes t) | ||
| 1910 | (gv-define-simple-setter frame-height set-screen-height t) | ||
| 1911 | (gv-define-simple-setter frame-parameters modify-frame-parameters t) | ||
| 1912 | (gv-define-simple-setter frame-visible-p cl--set-frame-visible-p) | ||
| 1913 | (gv-define-simple-setter frame-width set-screen-width t) | ||
| 1914 | (gv-define-simple-setter getenv setenv t) | ||
| 1915 | (gv-define-simple-setter get-register set-register) | ||
| 1916 | (gv-define-simple-setter global-key-binding global-set-key) | ||
| 1917 | (gv-define-simple-setter local-key-binding local-set-key) | ||
| 1918 | (gv-define-simple-setter mark set-mark t) | ||
| 1919 | (gv-define-simple-setter mark-marker set-mark t) | ||
| 1920 | (gv-define-simple-setter marker-position set-marker t) | ||
| 1921 | (gv-define-setter mouse-position (store scr) | ||
| 1922 | `(set-mouse-position ,scr (car ,store) (cadr ,store) | ||
| 1923 | (cddr ,store))) | ||
| 1924 | (gv-define-simple-setter point goto-char) | ||
| 1925 | (gv-define-simple-setter point-marker goto-char t) | ||
| 1926 | (gv-define-setter point-max (store) | ||
| 1927 | `(progn (narrow-to-region (point-min) ,store) ,store)) | ||
| 1928 | (gv-define-setter point-min (store) | ||
| 1929 | `(progn (narrow-to-region ,store (point-max)) ,store)) | ||
| 1930 | (gv-define-setter read-mouse-position (store scr) | ||
| 1931 | `(set-mouse-position ,scr (car ,store) (cdr ,store))) | ||
| 1932 | (gv-define-simple-setter screen-height set-screen-height t) | ||
| 1933 | (gv-define-simple-setter screen-width set-screen-width t) | ||
| 1934 | (gv-define-simple-setter selected-window select-window) | ||
| 1935 | (gv-define-simple-setter selected-screen select-screen) | ||
| 1936 | (gv-define-simple-setter selected-frame select-frame) | ||
| 1937 | (gv-define-simple-setter standard-case-table set-standard-case-table) | ||
| 1938 | (gv-define-simple-setter syntax-table set-syntax-table) | ||
| 1939 | (gv-define-simple-setter visited-file-modtime set-visited-file-modtime t) | ||
| 1940 | (gv-define-setter window-height (store) | ||
| 1941 | `(progn (enlarge-window (- ,store (window-height))) ,store)) | ||
| 1942 | (gv-define-setter window-width (store) | ||
| 1943 | `(progn (enlarge-window (- ,store (window-width)) t) ,store)) | ||
| 1944 | (gv-define-simple-setter x-get-secondary-selection x-own-secondary-selection t) | ||
| 1945 | (gv-define-simple-setter x-get-selection x-own-selection t) | ||
| 1946 | |||
| 1947 | ;;; More complex setf-methods. | ||
| 1948 | |||
| 1949 | ;; This is a hack that allows (setf (eq a 7) B) to mean either | ||
| 1950 | ;; (setq a 7) or (setq a nil) depending on whether B is nil or not. | ||
| 1951 | ;; This is useful when you have control over the PLACE but not over | ||
| 1952 | ;; the VALUE, as is the case in define-minor-mode's :variable. | ||
| 1953 | ;; It turned out that :variable needed more flexibility anyway, so | ||
| 1954 | ;; this doesn't seem too useful now. | ||
| 1955 | (gv-define-expander eq | ||
| 1956 | (lambda (do place val) | ||
| 1957 | (gv-letplace (getter setter) place | ||
| 1958 | (macroexp-let2 nil val val | ||
| 1959 | (funcall do `(eq ,getter ,val) | ||
| 1960 | (lambda (v) | ||
| 1961 | `(cond | ||
| 1962 | (,v ,(funcall setter val)) | ||
| 1963 | ((eq ,getter ,val) ,(funcall setter `(not ,val)))))))))) | ||
| 1964 | |||
| 1965 | (gv-define-expander nthcdr | ||
| 1966 | (lambda (do n place) | ||
| 1967 | (macroexp-let2 nil idx n | ||
| 1968 | (gv-letplace (getter setter) place | ||
| 1969 | (funcall do `(nthcdr ,idx ,getter) | ||
| 1970 | (lambda (v) `(if (<= ,idx 0) ,(funcall setter v) | ||
| 1971 | (setcdr (nthcdr (1- ,idx) ,getter) ,v)))))))) | ||
| 1972 | |||
| 1973 | (gv-define-expander cl-getf | ||
| 1974 | (lambda (do place tag &optional def) | ||
| 1975 | (gv-letplace (getter setter) place | ||
| 1976 | (macroexp-let2 nil k tag | ||
| 1977 | (macroexp-let2 nil d def | ||
| 1978 | (funcall do `(cl-getf ,getter ,k ,d) | ||
| 1979 | (lambda (v) (funcall setter `(cl--set-getf ,getter ,k ,v))))))))) | ||
| 1980 | |||
| 1981 | (gv-define-expander substring | ||
| 1982 | (lambda (do place from &optional to) | ||
| 1983 | (gv-letplace (getter setter) place | ||
| 1984 | (macroexp-let2 nil start from | ||
| 1985 | (macroexp-let2 nil end to | ||
| 1986 | (funcall do `(substring ,getter ,start ,end) | ||
| 1987 | (lambda (v) | ||
| 1988 | (funcall setter `(cl--set-substring | ||
| 1989 | ,getter ,start ,end ,v))))))))) | ||
| 1990 | |||
| 1991 | ;;; The standard modify macros. | 1811 | ;;; The standard modify macros. |
| 1992 | 1812 | ||
| 1993 | ;; `setf' is now part of core Elisp, defined in gv.el. | 1813 | ;; `setf' is now part of core Elisp, defined in gv.el. |
| @@ -2571,8 +2391,6 @@ surrounded by (cl-block NAME ...). | |||
| 2571 | 2391 | ||
| 2572 | 2392 | ||
| 2573 | ;; Compile-time optimizations for some functions defined in this package. | 2393 | ;; Compile-time optimizations for some functions defined in this package. |
| 2574 | ;; Note that cl.el arranges to force cl-macs to be loaded at compile-time, | ||
| 2575 | ;; mainly to make sure these macros will be present. | ||
| 2576 | 2394 | ||
| 2577 | (defun cl--compiler-macro-member (form a list &rest keys) | 2395 | (defun cl--compiler-macro-member (form a list &rest keys) |
| 2578 | (let ((test (and (= (length keys) 2) (eq (car keys) :test) | 2396 | (let ((test (and (= (length keys) 2) (eq (car keys) :test) |
diff --git a/lisp/emacs-lisp/cl.el b/lisp/emacs-lisp/cl.el index c7a48c500c0..b17d6f4e671 100644 --- a/lisp/emacs-lisp/cl.el +++ b/lisp/emacs-lisp/cl.el | |||
| @@ -107,6 +107,14 @@ | |||
| 107 | )) | 107 | )) |
| 108 | (defvaralias var (intern (format "cl-%s" var)))) | 108 | (defvaralias var (intern (format "cl-%s" var)))) |
| 109 | 109 | ||
| 110 | ;; Before overwriting subr.el's `dotimes' and `dolist', let's remember | ||
| 111 | ;; them under a different name, so we can use them in our implementation | ||
| 112 | ;; of `dotimes' and `dolist'. | ||
| 113 | (unless (fboundp 'cl--dotimes) | ||
| 114 | (defalias 'cl--dotimes (symbol-function 'dotimes) "The non-CL `dotimes'.")) | ||
| 115 | (unless (fboundp 'cl--dolist) | ||
| 116 | (defalias 'cl--dolist (symbol-function 'dolist) "The non-CL `dolist'.")) | ||
| 117 | |||
| 110 | (dolist (fun '( | 118 | (dolist (fun '( |
| 111 | (get* . cl-get) | 119 | (get* . cl-get) |
| 112 | (random* . cl-random) | 120 | (random* . cl-random) |
| @@ -501,6 +509,10 @@ Unlike `flet', this macro is fully compliant with the Common Lisp standard. | |||
| 501 | ;; not 100% compatible: not worth the trouble to add them to cl-lib.el, but we | 509 | ;; not 100% compatible: not worth the trouble to add them to cl-lib.el, but we |
| 502 | ;; still to support old users of cl.el. | 510 | ;; still to support old users of cl.el. |
| 503 | 511 | ||
| 512 | ;; FIXME: `letf' is unsatisfactory because it does not really "restore" the | ||
| 513 | ;; previous state. If the getter/setter loses information, that info is | ||
| 514 | ;; not recovered. | ||
| 515 | |||
| 504 | (defun cl--letf (bindings simplebinds binds body) | 516 | (defun cl--letf (bindings simplebinds binds body) |
| 505 | ;; It's not quite clear what the semantics of let! should be. | 517 | ;; It's not quite clear what the semantics of let! should be. |
| 506 | ;; E.g. in (let! ((PLACE1 VAL1) (PLACE2 VAL2)) BODY), while it's clear | 518 | ;; E.g. in (let! ((PLACE1 VAL1) (PLACE2 VAL2)) BODY), while it's clear |
| @@ -581,7 +593,9 @@ the PLACE is not modified before executing BODY. | |||
| 581 | (declare (indent 1) (debug letf)) | 593 | (declare (indent 1) (debug letf)) |
| 582 | (cl--letf* bindings body)) | 594 | (cl--letf* bindings body)) |
| 583 | 595 | ||
| 584 | (defun cl--gv-adapt (cl-gv do) ;FIXME: needed during setf expansion! | 596 | (defun cl--gv-adapt (cl-gv do) |
| 597 | ;; This function is used by all .elc files that use define-setf-expander and | ||
| 598 | ;; were compiled with Emacs>=24.2. | ||
| 585 | (let ((vars (nth 0 cl-gv)) | 599 | (let ((vars (nth 0 cl-gv)) |
| 586 | (vals (nth 1 cl-gv)) | 600 | (vals (nth 1 cl-gv)) |
| 587 | (binds ()) | 601 | (binds ()) |
| @@ -774,7 +788,5 @@ from ARGLIST using FUNC: (define-modify-macro incf (&optional (n 1)) +)" | |||
| 774 | ,store))) | 788 | ,store))) |
| 775 | (list accessor temp)))) | 789 | (list accessor temp)))) |
| 776 | 790 | ||
| 777 | ;; FIXME: More candidates: define-modify-macro, define-setf-expander. | ||
| 778 | |||
| 779 | (provide 'cl) | 791 | (provide 'cl) |
| 780 | ;;; cl.el ends here | 792 | ;;; cl.el ends here |
diff --git a/lisp/emacs-lisp/gv.el b/lisp/emacs-lisp/gv.el index ed7c6ed1d9d..147ae5d4870 100644 --- a/lisp/emacs-lisp/gv.el +++ b/lisp/emacs-lisp/gv.el | |||
| @@ -53,12 +53,6 @@ | |||
| 53 | ;; `gv-letplace' macro) is actually much easier and more elegant than the old | 53 | ;; `gv-letplace' macro) is actually much easier and more elegant than the old |
| 54 | ;; approach which is clunky and often leads to unreadable code. | 54 | ;; approach which is clunky and often leads to unreadable code. |
| 55 | 55 | ||
| 56 | ;; FIXME: `let!' is unsatisfactory because it does not really "restore" the | ||
| 57 | ;; previous state. If the getter/setter loses information, that info is | ||
| 58 | ;; not recovered. | ||
| 59 | |||
| 60 | ;; FIXME: Add to defun-declarations-alist. | ||
| 61 | |||
| 62 | ;; Food for thought: the syntax of places does not actually conflict with the | 56 | ;; Food for thought: the syntax of places does not actually conflict with the |
| 63 | ;; pcase patterns. The `cons' gv works just like a `(,a . ,b) pcase | 57 | ;; pcase patterns. The `cons' gv works just like a `(,a . ,b) pcase |
| 64 | ;; pattern, and actually the `logand' gv is even closer since it should | 58 | ;; pattern, and actually the `logand' gv is even closer since it should |
| @@ -91,6 +85,13 @@ DO must return an Elisp expression." | |||
| 91 | (funcall do place (lambda (v) `(setq ,place ,v))) | 85 | (funcall do place (lambda (v) `(setq ,place ,v))) |
| 92 | (let* ((head (car place)) | 86 | (let* ((head (car place)) |
| 93 | (gf (get head 'gv-expander))) | 87 | (gf (get head 'gv-expander))) |
| 88 | ;; Autoload the head, if applicable, since that might define | ||
| 89 | ;; `gv-expander'. | ||
| 90 | (when (and (null gf) (fboundp head) | ||
| 91 | (eq 'autoload (car-safe (symbol-function head)))) | ||
| 92 | (with-demoted-errors | ||
| 93 | (load (nth 1 (symbol-function head)) 'noerror 'nomsg) | ||
| 94 | (setq gf (get head 'gv-expander)))) | ||
| 94 | (if gf (apply gf do (cdr place)) | 95 | (if gf (apply gf do (cdr place)) |
| 95 | (let ((me (macroexpand place ;FIXME: expand one step at a time! | 96 | (let ((me (macroexpand place ;FIXME: expand one step at a time! |
| 96 | ;; (append macroexpand-all-environment | 97 | ;; (append macroexpand-all-environment |
| @@ -139,23 +140,30 @@ arguments as NAME. DO is a function as defined in `gv-get'." | |||
| 139 | ;; cleanly without affecting the running Emacs. | 140 | ;; cleanly without affecting the running Emacs. |
| 140 | `(eval-and-compile (put ',name 'gv-expander ,handler))) | 141 | `(eval-and-compile (put ',name 'gv-expander ,handler))) |
| 141 | 142 | ||
| 142 | ;; (eval-and-compile | 143 | ;;;###autoload |
| 143 | ;; (defun gv--defun-declaration (name args handler) | 144 | (defun gv--defun-declaration (symbol name args handler &optional fix) |
| 144 | ;; (pcase handler | 145 | `(progn |
| 145 | ;; (`(lambda (,do) . ,body) | 146 | ;; No need to autoload this part, since gv-get will auto-load the |
| 146 | ;; `(gv-define-expander ,name (lambda (,do ,@args) ,@body))) | 147 | ;; function's definition before checking the `gv-expander' property. |
| 147 | ;; ;; (`(expand ,expander) `(gv-define-expand ,name ,expander)) | 148 | :autoload-end |
| 148 | ;; ;; FIXME: If `setter' is a lambda, give it a name rather | 149 | ,(pcase (cons symbol handler) |
| 149 | ;; ;; than duplicate it at each setf use. | 150 | (`(gv-expander . (lambda (,do) . ,body)) |
| 150 | ;; (`(setter ,setter) `(gv-define-simple-setter ,name ,setter)) | 151 | `(gv-define-expander ,name (lambda (,do ,@args) ,@body))) |
| 151 | ;; (`(setter (,arg) . ,body) | 152 | (`(gv-expander . ,(pred symbolp)) |
| 152 | ;; `(gv-define-setter ,name (,arg ,@args) ,@body)) | 153 | `(gv-define-expander ,name #',handler)) |
| 153 | ;; ;; FIXME: Should we prefer gv-define-simple-setter in this case? | 154 | (`(gv-setter . (lambda (,store) . ,body)) |
| 154 | ;; ;;((pred symbolp) `(gv-define-expander ,name #',handler)) | 155 | `(gv-define-setter ,name (,store ,@args) ,@body)) |
| 155 | ;; (_ (message "Unknown gv-expander declaration %S" handler) nil))) | 156 | (`(gv-setter . ,(pred symbolp)) |
| 156 | 157 | `(gv-define-simple-setter ,name ,handler ,fix)) | |
| 157 | ;; (push `(gv-expander ,#'gv--defun-declaration) defun-declarations-alist) | 158 | ;; (`(expand ,expander) `(gv-define-expand ,name ,expander)) |
| 158 | ;; ) | 159 | (_ (message "Unknown %s declaration %S" symbol handler) nil)))) |
| 160 | |||
| 161 | ;;;###autoload | ||
| 162 | (push `(gv-expander ,(apply-partially #'gv--defun-declaration 'gv-expander)) | ||
| 163 | defun-declarations-alist) | ||
| 164 | ;;;###autoload | ||
| 165 | (push `(gv-setter ,(apply-partially #'gv--defun-declaration 'gv-setter)) | ||
| 166 | defun-declarations-alist) | ||
| 159 | 167 | ||
| 160 | ;; (defmacro gv-define-expand (name expander) | 168 | ;; (defmacro gv-define-expand (name expander) |
| 161 | ;; "Use EXPANDER to handle NAME as a generalized var. | 169 | ;; "Use EXPANDER to handle NAME as a generalized var. |
| @@ -212,24 +220,6 @@ so as to preserve the semantics of `setf'." | |||
| 212 | `(gv-define-setter ,name (val &rest args) | 220 | `(gv-define-setter ,name (val &rest args) |
| 213 | ,(if fix-return `(list 'prog1 val ,set-call) set-call)))) | 221 | ,(if fix-return `(list 'prog1 val ,set-call) set-call)))) |
| 214 | 222 | ||
| 215 | ;;; CL compatibility. | ||
| 216 | |||
| 217 | (defmacro gv-define-modify-macro (name arglist func &optional doc) | ||
| 218 | (let* ((args (copy-sequence arglist)) | ||
| 219 | (rest (memq '&rest args))) | ||
| 220 | (setq args (delq '&optional (delq '&rest args))) | ||
| 221 | `(defmacro ,name (place ,@arglist) | ||
| 222 | ,doc | ||
| 223 | (gv-letplace (getter setter) place | ||
| 224 | (macroexp-let2 nil v | ||
| 225 | ,(list '\` | ||
| 226 | (append (list func ',getter) | ||
| 227 | (mapcar (lambda (arg) (list '\, arg)) args) | ||
| 228 | (if rest (list (list '\,@ (cadr rest)))))) | ||
| 229 | (funcall setter v)))))) | ||
| 230 | |||
| 231 | (gv-define-simple-setter gv--tree-get gv--tree-set) | ||
| 232 | |||
| 233 | ;;; Typical operations on generalized variables. | 223 | ;;; Typical operations on generalized variables. |
| 234 | 224 | ||
| 235 | ;;;###autoload | 225 | ;;;###autoload |
| @@ -251,32 +241,35 @@ The return value is the last VAL in the list. | |||
| 251 | (while args (push `(setf ,(pop args) ,(pop args)) sets)) | 241 | (while args (push `(setf ,(pop args) ,(pop args)) sets)) |
| 252 | (cons 'progn (nreverse sets))))) | 242 | (cons 'progn (nreverse sets))))) |
| 253 | 243 | ||
| 254 | (defmacro gv-pushnew! (val place) | 244 | ;; (defmacro gv-pushnew! (val place) |
| 255 | "Like `gv-push!' but only adds VAL if it's not yet in PLACE. | 245 | ;; "Like `gv-push!' but only adds VAL if it's not yet in PLACE. |
| 256 | Presence is checked with `member'. | 246 | ;; Presence is checked with `member'. |
| 257 | The return value is unspecified." | 247 | ;; The return value is unspecified." |
| 258 | (declare (debug (form gv-place))) | 248 | ;; (declare (debug (form gv-place))) |
| 259 | (macroexp-let2 macroexp-copyable-p v val | 249 | ;; (macroexp-let2 macroexp-copyable-p v val |
| 260 | (gv-letplace (getter setter) place | 250 | ;; (gv-letplace (getter setter) place |
| 261 | `(if (member ,v ,getter) nil | 251 | ;; `(if (member ,v ,getter) nil |
| 262 | ,(funcall setter `(cons ,v ,getter)))))) | 252 | ;; ,(funcall setter `(cons ,v ,getter)))))) |
| 263 | 253 | ||
| 264 | (defmacro gv-inc! (place &optional val) | 254 | ;; (defmacro gv-inc! (place &optional val) |
| 265 | "Increment PLACE by VAL (default to 1)." | 255 | ;; "Increment PLACE by VAL (default to 1)." |
| 266 | (declare (debug (gv-place &optional form))) | 256 | ;; (declare (debug (gv-place &optional form))) |
| 267 | (gv-letplace (getter setter) place | 257 | ;; (gv-letplace (getter setter) place |
| 268 | (funcall setter `(+ ,getter ,(or val 1))))) | 258 | ;; (funcall setter `(+ ,getter ,(or val 1))))) |
| 269 | 259 | ||
| 270 | (defmacro gv-dec! (place &optional val) | 260 | ;; (defmacro gv-dec! (place &optional val) |
| 271 | "Decrement PLACE by VAL (default to 1)." | 261 | ;; "Decrement PLACE by VAL (default to 1)." |
| 272 | (declare (debug (gv-place &optional form))) | 262 | ;; (declare (debug (gv-place &optional form))) |
| 273 | (gv-letplace (getter setter) place | 263 | ;; (gv-letplace (getter setter) place |
| 274 | (funcall setter `(- ,getter ,(or val 1))))) | 264 | ;; (funcall setter `(- ,getter ,(or val 1))))) |
| 275 | 265 | ||
| 276 | ;; For Edebug, the idea is to let Edebug instrument gv-places just like it does | 266 | ;; For Edebug, the idea is to let Edebug instrument gv-places just like it does |
| 277 | ;; for normal expressions, and then give it a gv-expander to DTRT. | 267 | ;; for normal expressions, and then give it a gv-expander to DTRT. |
| 278 | ;; Maybe this should really be in edebug.el rather than here. | 268 | ;; Maybe this should really be in edebug.el rather than here. |
| 279 | 269 | ||
| 270 | ;; Autoload this `put' since a user might use C-u C-M-x on an expression | ||
| 271 | ;; containing a non-trivial `push' even before gv.el was loaded. | ||
| 272 | ;;;###autoload | ||
| 280 | (put 'gv-place 'edebug-form-spec 'edebug-match-form) | 273 | (put 'gv-place 'edebug-form-spec 'edebug-match-form) |
| 281 | ;; CL did the equivalent of: | 274 | ;; CL did the equivalent of: |
| 282 | ;;(gv-define-expand edebug-after (lambda (before index place) place)) | 275 | ;;(gv-define-expand edebug-after (lambda (before index place) place)) |
diff --git a/lisp/env.el b/lisp/env.el index 53922b5e262..d0d8ed0b998 100644 --- a/lisp/env.el +++ b/lisp/env.el | |||
| @@ -34,8 +34,6 @@ | |||
| 34 | 34 | ||
| 35 | ;;; Code: | 35 | ;;; Code: |
| 36 | 36 | ||
| 37 | (eval-when-compile (require 'cl)) | ||
| 38 | |||
| 39 | ;; History list for environment variable names. | 37 | ;; History list for environment variable names. |
| 40 | (defvar read-envvar-name-history nil) | 38 | (defvar read-envvar-name-history nil) |
| 41 | 39 | ||
diff --git a/lisp/faces.el b/lisp/faces.el index 40b45187f6c..68700c2455b 100644 --- a/lisp/faces.el +++ b/lisp/faces.el | |||
| @@ -25,9 +25,6 @@ | |||
| 25 | 25 | ||
| 26 | ;;; Code: | 26 | ;;; Code: |
| 27 | 27 | ||
| 28 | (eval-when-compile | ||
| 29 | (require 'cl)) | ||
| 30 | |||
| 31 | (defcustom term-file-prefix (purecopy "term/") | 28 | (defcustom term-file-prefix (purecopy "term/") |
| 32 | "If non-nil, Emacs startup performs terminal-specific initialization. | 29 | "If non-nil, Emacs startup performs terminal-specific initialization. |
| 33 | It does this by: (load (concat term-file-prefix (getenv \"TERM\"))) | 30 | It does this by: (load (concat term-file-prefix (getenv \"TERM\"))) |
| @@ -996,28 +993,28 @@ Value is an alist of (NAME . VALUE) if ATTRIBUTE expects a value out | |||
| 996 | of a set of discrete values. Value is `integerp' if ATTRIBUTE expects | 993 | of a set of discrete values. Value is `integerp' if ATTRIBUTE expects |
| 997 | an integer value." | 994 | an integer value." |
| 998 | (let ((valid | 995 | (let ((valid |
| 999 | (case attribute | 996 | (pcase attribute |
| 1000 | (:family | 997 | (`:family |
| 1001 | (if (window-system frame) | 998 | (if (window-system frame) |
| 1002 | (mapcar (lambda (x) (cons x x)) | 999 | (mapcar (lambda (x) (cons x x)) |
| 1003 | (font-family-list)) | 1000 | (font-family-list)) |
| 1004 | ;; Only one font on TTYs. | 1001 | ;; Only one font on TTYs. |
| 1005 | (list (cons "default" "default")))) | 1002 | (list (cons "default" "default")))) |
| 1006 | (:foundry | 1003 | (`:foundry |
| 1007 | (list nil)) | 1004 | (list nil)) |
| 1008 | (:width | 1005 | (`:width |
| 1009 | (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) | 1006 | (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) |
| 1010 | font-width-table)) | 1007 | font-width-table)) |
| 1011 | (:weight | 1008 | (`:weight |
| 1012 | (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) | 1009 | (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) |
| 1013 | font-weight-table)) | 1010 | font-weight-table)) |
| 1014 | (:slant | 1011 | (`:slant |
| 1015 | (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) | 1012 | (mapcar #'(lambda (x) (cons (symbol-name (aref x 1)) (aref x 1))) |
| 1016 | font-slant-table)) | 1013 | font-slant-table)) |
| 1017 | (:inverse-video | 1014 | (`:inverse-video |
| 1018 | (mapcar #'(lambda (x) (cons (symbol-name x) x)) | 1015 | (mapcar #'(lambda (x) (cons (symbol-name x) x)) |
| 1019 | (internal-lisp-face-attribute-values attribute))) | 1016 | (internal-lisp-face-attribute-values attribute))) |
| 1020 | ((:underline :overline :strike-through :box) | 1017 | ((or `:underline `:overline `:strike-through `:box) |
| 1021 | (if (window-system frame) | 1018 | (if (window-system frame) |
| 1022 | (nconc (mapcar #'(lambda (x) (cons (symbol-name x) x)) | 1019 | (nconc (mapcar #'(lambda (x) (cons (symbol-name x) x)) |
| 1023 | (internal-lisp-face-attribute-values attribute)) | 1020 | (internal-lisp-face-attribute-values attribute)) |
| @@ -1025,12 +1022,12 @@ an integer value." | |||
| 1025 | (defined-colors frame))) | 1022 | (defined-colors frame))) |
| 1026 | (mapcar #'(lambda (x) (cons (symbol-name x) x)) | 1023 | (mapcar #'(lambda (x) (cons (symbol-name x) x)) |
| 1027 | (internal-lisp-face-attribute-values attribute)))) | 1024 | (internal-lisp-face-attribute-values attribute)))) |
| 1028 | ((:foreground :background) | 1025 | ((or `:foreground `:background) |
| 1029 | (mapcar #'(lambda (c) (cons c c)) | 1026 | (mapcar #'(lambda (c) (cons c c)) |
| 1030 | (defined-colors frame))) | 1027 | (defined-colors frame))) |
| 1031 | ((:height) | 1028 | (`:height |
| 1032 | 'integerp) | 1029 | 'integerp) |
| 1033 | (:stipple | 1030 | (`:stipple |
| 1034 | (and (memq (window-system frame) '(x ns)) ; No stipple on w32 | 1031 | (and (memq (window-system frame) '(x ns)) ; No stipple on w32 |
| 1035 | (mapcar #'list | 1032 | (mapcar #'list |
| 1036 | (apply #'nconc | 1033 | (apply #'nconc |
| @@ -1039,11 +1036,11 @@ an integer value." | |||
| 1039 | (file-directory-p dir) | 1036 | (file-directory-p dir) |
| 1040 | (directory-files dir))) | 1037 | (directory-files dir))) |
| 1041 | x-bitmap-file-path))))) | 1038 | x-bitmap-file-path))))) |
| 1042 | (:inherit | 1039 | (`:inherit |
| 1043 | (cons '("none" . nil) | 1040 | (cons '("none" . nil) |
| 1044 | (mapcar #'(lambda (c) (cons (symbol-name c) c)) | 1041 | (mapcar #'(lambda (c) (cons (symbol-name c) c)) |
| 1045 | (face-list)))) | 1042 | (face-list)))) |
| 1046 | (t | 1043 | (_ |
| 1047 | (error "Internal error"))))) | 1044 | (error "Internal error"))))) |
| 1048 | (if (and (listp valid) (not (memq attribute '(:inherit)))) | 1045 | (if (and (listp valid) (not (memq attribute '(:inherit)))) |
| 1049 | (nconc (list (cons "unspecified" 'unspecified)) valid) | 1046 | (nconc (list (cons "unspecified" 'unspecified)) valid) |
diff --git a/lisp/files.el b/lisp/files.el index 857dbc981f0..e19d1d2f16e 100644 --- a/lisp/files.el +++ b/lisp/files.el | |||
| @@ -28,8 +28,6 @@ | |||
| 28 | 28 | ||
| 29 | ;;; Code: | 29 | ;;; Code: |
| 30 | 30 | ||
| 31 | (eval-when-compile (require 'cl-lib)) | ||
| 32 | |||
| 33 | (defvar font-lock-keywords) | 31 | (defvar font-lock-keywords) |
| 34 | 32 | ||
| 35 | (defgroup backup nil | 33 | (defgroup backup nil |
| @@ -6464,19 +6462,19 @@ only these files will be asked to be saved." | |||
| 6464 | "/" | 6462 | "/" |
| 6465 | (substring (car pair) 2))))) | 6463 | (substring (car pair) 2))))) |
| 6466 | (setq file-arg-indices (cdr file-arg-indices)))) | 6464 | (setq file-arg-indices (cdr file-arg-indices)))) |
| 6467 | (cl-case method | 6465 | (pcase method |
| 6468 | (identity (car arguments)) | 6466 | (`identity (car arguments)) |
| 6469 | (add (concat "/:" (apply operation arguments))) | 6467 | (`add (concat "/:" (apply operation arguments))) |
| 6470 | (insert-file-contents | 6468 | (`insert-file-contents |
| 6471 | (let ((visit (nth 1 arguments))) | 6469 | (let ((visit (nth 1 arguments))) |
| 6472 | (prog1 | 6470 | (prog1 |
| 6473 | (apply operation arguments) | 6471 | (apply operation arguments) |
| 6474 | (when (and visit buffer-file-name) | 6472 | (when (and visit buffer-file-name) |
| 6475 | (setq buffer-file-name (concat "/:" buffer-file-name)))))) | 6473 | (setq buffer-file-name (concat "/:" buffer-file-name)))))) |
| 6476 | (unquote-then-quote | 6474 | (`unquote-then-quote |
| 6477 | (let ((buffer-file-name (substring buffer-file-name 2))) | 6475 | (let ((buffer-file-name (substring buffer-file-name 2))) |
| 6478 | (apply operation arguments))) | 6476 | (apply operation arguments))) |
| 6479 | (t | 6477 | (_ |
| 6480 | (apply operation arguments))))) | 6478 | (apply operation arguments))))) |
| 6481 | 6479 | ||
| 6482 | ;; Symbolic modes and read-file-modes. | 6480 | ;; Symbolic modes and read-file-modes. |
diff --git a/lisp/ldefs-boot.el b/lisp/ldefs-boot.el index 7d63c8c10fd..d39a4b02b32 100644 --- a/lisp/ldefs-boot.el +++ b/lisp/ldefs-boot.el | |||
| @@ -2712,7 +2712,7 @@ Like `bug-reference-mode', but only buttonize in comments and strings. | |||
| 2712 | ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile | 2712 | ;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile |
| 2713 | ;;;;;; compile-defun byte-compile-file byte-recompile-directory | 2713 | ;;;;;; compile-defun byte-compile-file byte-recompile-directory |
| 2714 | ;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning) | 2714 | ;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning) |
| 2715 | ;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20451 21087)) | 2715 | ;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20452 43334)) |
| 2716 | ;;; Generated autoloads from emacs-lisp/bytecomp.el | 2716 | ;;; Generated autoloads from emacs-lisp/bytecomp.el |
| 2717 | (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) | 2717 | (put 'byte-compile-dynamic 'safe-local-variable 'booleanp) |
| 2718 | (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) | 2718 | (put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp) |
| @@ -2978,8 +2978,8 @@ See the documentation for `calculator-mode' for more information. | |||
| 2978 | 2978 | ||
| 2979 | ;;;*** | 2979 | ;;;*** |
| 2980 | 2980 | ||
| 2981 | ;;;### (autoloads (calendar) "calendar" "calendar/calendar.el" (20432 | 2981 | ;;;### (autoloads (calendar) "calendar" "calendar/calendar.el" (20452 |
| 2982 | ;;;;;; 42254)) | 2982 | ;;;;;; 43334)) |
| 2983 | ;;; Generated autoloads from calendar/calendar.el | 2983 | ;;; Generated autoloads from calendar/calendar.el |
| 2984 | 2984 | ||
| 2985 | (autoload 'calendar "calendar" "\ | 2985 | (autoload 'calendar "calendar" "\ |
| @@ -3699,7 +3699,7 @@ See the documentation of `define-ccl-program' for the detail of CCL program. | |||
| 3699 | ;;;*** | 3699 | ;;;*** |
| 3700 | 3700 | ||
| 3701 | ;;;### (autoloads (cconv-closure-convert) "cconv" "emacs-lisp/cconv.el" | 3701 | ;;;### (autoloads (cconv-closure-convert) "cconv" "emacs-lisp/cconv.el" |
| 3702 | ;;;;;; (20451 21087)) | 3702 | ;;;;;; (20452 43334)) |
| 3703 | ;;; Generated autoloads from emacs-lisp/cconv.el | 3703 | ;;; Generated autoloads from emacs-lisp/cconv.el |
| 3704 | 3704 | ||
| 3705 | (autoload 'cconv-closure-convert "cconv" "\ | 3705 | (autoload 'cconv-closure-convert "cconv" "\ |
| @@ -4121,7 +4121,7 @@ For example, the function `case' has an indent property | |||
| 4121 | 4121 | ||
| 4122 | ;;;*** | 4122 | ;;;*** |
| 4123 | 4123 | ||
| 4124 | ;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (20451 21087)) | 4124 | ;;;### (autoloads nil "cl-lib" "emacs-lisp/cl-lib.el" (20452 55920)) |
| 4125 | ;;; Generated autoloads from emacs-lisp/cl-lib.el | 4125 | ;;; Generated autoloads from emacs-lisp/cl-lib.el |
| 4126 | 4126 | ||
| 4127 | (define-obsolete-variable-alias 'custom-print-functions 'cl-custom-print-functions "24.2") | 4127 | (define-obsolete-variable-alias 'custom-print-functions 'cl-custom-print-functions "24.2") |
| @@ -6409,7 +6409,7 @@ Optional arguments are passed to `dig-invoke'. | |||
| 6409 | ;;;*** | 6409 | ;;;*** |
| 6410 | 6410 | ||
| 6411 | ;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window | 6411 | ;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window |
| 6412 | ;;;;;; dired dired-listing-switches) "dired" "dired.el" (20428 57510)) | 6412 | ;;;;;; dired dired-listing-switches) "dired" "dired.el" (20452 43334)) |
| 6413 | ;;; Generated autoloads from dired.el | 6413 | ;;; Generated autoloads from dired.el |
| 6414 | 6414 | ||
| 6415 | (defvar dired-listing-switches (purecopy "-al") "\ | 6415 | (defvar dired-listing-switches (purecopy "-al") "\ |
| @@ -7402,13 +7402,14 @@ See `ebnf-style-database' documentation. | |||
| 7402 | ;;;;;; ebrowse-electric-position-menu ebrowse-forward-in-position-stack | 7402 | ;;;;;; ebrowse-electric-position-menu ebrowse-forward-in-position-stack |
| 7403 | ;;;;;; ebrowse-back-in-position-stack ebrowse-tags-search-member-use | 7403 | ;;;;;; ebrowse-back-in-position-stack ebrowse-tags-search-member-use |
| 7404 | ;;;;;; ebrowse-tags-query-replace ebrowse-tags-search ebrowse-tags-loop-continue | 7404 | ;;;;;; ebrowse-tags-query-replace ebrowse-tags-search ebrowse-tags-loop-continue |
| 7405 | ;;;;;; ebrowse-tags-find-definition-other-frame ebrowse-tags-view-definition-other-frame | 7405 | ;;;;;; ebrowse-tags-complete-symbol ebrowse-tags-find-definition-other-frame |
| 7406 | ;;;;;; ebrowse-tags-find-declaration-other-frame ebrowse-tags-find-definition-other-window | 7406 | ;;;;;; ebrowse-tags-view-definition-other-frame ebrowse-tags-find-declaration-other-frame |
| 7407 | ;;;;;; ebrowse-tags-view-definition-other-window ebrowse-tags-find-declaration-other-window | 7407 | ;;;;;; ebrowse-tags-find-definition-other-window ebrowse-tags-view-definition-other-window |
| 7408 | ;;;;;; ebrowse-tags-find-definition ebrowse-tags-view-definition | 7408 | ;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition |
| 7409 | ;;;;;; ebrowse-tags-find-declaration ebrowse-tags-view-declaration | 7409 | ;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration |
| 7410 | ;;;;;; ebrowse-member-mode ebrowse-electric-choose-tree ebrowse-tree-mode) | 7410 | ;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree |
| 7411 | ;;;;;; "ebrowse" "progmodes/ebrowse.el" (20434 28080)) | 7411 | ;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (20434 |
| 7412 | ;;;;;; 28080)) | ||
| 7412 | ;;; Generated autoloads from progmodes/ebrowse.el | 7413 | ;;; Generated autoloads from progmodes/ebrowse.el |
| 7413 | 7414 | ||
| 7414 | (autoload 'ebrowse-tree-mode "ebrowse" "\ | 7415 | (autoload 'ebrowse-tree-mode "ebrowse" "\ |
| @@ -7483,6 +7484,14 @@ Find definition of member at point in other frame. | |||
| 7483 | 7484 | ||
| 7484 | \(fn)" t nil) | 7485 | \(fn)" t nil) |
| 7485 | 7486 | ||
| 7487 | (autoload 'ebrowse-tags-complete-symbol "ebrowse" "\ | ||
| 7488 | Perform completion on the C++ symbol preceding point. | ||
| 7489 | A second call of this function without changing point inserts the next match. | ||
| 7490 | A call with prefix PREFIX reads the symbol to insert from the minibuffer with | ||
| 7491 | completion. | ||
| 7492 | |||
| 7493 | \(fn PREFIX)" t nil) | ||
| 7494 | |||
| 7486 | (autoload 'ebrowse-tags-loop-continue "ebrowse" "\ | 7495 | (autoload 'ebrowse-tags-loop-continue "ebrowse" "\ |
| 7487 | Repeat last operation on files in tree. | 7496 | Repeat last operation on files in tree. |
| 7488 | FIRST-TIME non-nil means this is not a repetition, but the first time. | 7497 | FIRST-TIME non-nil means this is not a repetition, but the first time. |
| @@ -8770,7 +8779,7 @@ Look at CONFIG and try to expand GROUP. | |||
| 8770 | 8779 | ||
| 8771 | ;;;*** | 8780 | ;;;*** |
| 8772 | 8781 | ||
| 8773 | ;;;### (autoloads (erc-handle-irc-url erc-tls erc-select-read-args) | 8782 | ;;;### (autoloads (erc-handle-irc-url erc-tls erc erc-select-read-args) |
| 8774 | ;;;;;; "erc" "erc/erc.el" (20446 34252)) | 8783 | ;;;;;; "erc" "erc/erc.el" (20446 34252)) |
| 8775 | ;;; Generated autoloads from erc/erc.el | 8784 | ;;; Generated autoloads from erc/erc.el |
| 8776 | 8785 | ||
| @@ -8779,6 +8788,29 @@ Prompt the user for values of nick, server, port, and password. | |||
| 8779 | 8788 | ||
| 8780 | \(fn)" nil nil) | 8789 | \(fn)" nil nil) |
| 8781 | 8790 | ||
| 8791 | (autoload 'erc "erc" "\ | ||
| 8792 | ERC is a powerful, modular, and extensible IRC client. | ||
| 8793 | This function is the main entry point for ERC. | ||
| 8794 | |||
| 8795 | It permits you to select connection parameters, and then starts ERC. | ||
| 8796 | |||
| 8797 | Non-interactively, it takes the keyword arguments | ||
| 8798 | (server (erc-compute-server)) | ||
| 8799 | (port (erc-compute-port)) | ||
| 8800 | (nick (erc-compute-nick)) | ||
| 8801 | password | ||
| 8802 | (full-name (erc-compute-full-name))) | ||
| 8803 | |||
| 8804 | That is, if called with | ||
| 8805 | |||
| 8806 | (erc :server \"irc.freenode.net\" :full-name \"Harry S Truman\") | ||
| 8807 | |||
| 8808 | then the server and full-name will be set to those values, whereas | ||
| 8809 | `erc-compute-port', `erc-compute-nick' and `erc-compute-full-name' will | ||
| 8810 | be invoked for the values of the other parameters. | ||
| 8811 | |||
| 8812 | \(fn &key (server (erc-compute-server)) (port (erc-compute-port)) (nick (erc-compute-nick)) PASSWORD (full-name (erc-compute-full-name)))" t nil) | ||
| 8813 | |||
| 8782 | (defalias 'erc-select 'erc) | 8814 | (defalias 'erc-select 'erc) |
| 8783 | 8815 | ||
| 8784 | (autoload 'erc-tls "erc" "\ | 8816 | (autoload 'erc-tls "erc" "\ |
| @@ -9242,10 +9274,27 @@ Add a file to `erc-xdcc-files'. | |||
| 9242 | ;;;*** | 9274 | ;;;*** |
| 9243 | 9275 | ||
| 9244 | ;;;### (autoloads (ert-describe-test ert-run-tests-interactively | 9276 | ;;;### (autoloads (ert-describe-test ert-run-tests-interactively |
| 9245 | ;;;;;; ert-run-tests-batch-and-exit ert-run-tests-batch) "ert" "emacs-lisp/ert.el" | 9277 | ;;;;;; ert-run-tests-batch-and-exit ert-run-tests-batch ert-deftest) |
| 9246 | ;;;;;; (20356 35090)) | 9278 | ;;;;;; "ert" "emacs-lisp/ert.el" (20356 35090)) |
| 9247 | ;;; Generated autoloads from emacs-lisp/ert.el | 9279 | ;;; Generated autoloads from emacs-lisp/ert.el |
| 9248 | 9280 | ||
| 9281 | (autoload 'ert-deftest "ert" "\ | ||
| 9282 | Define NAME (a symbol) as a test. | ||
| 9283 | |||
| 9284 | BODY is evaluated as a `progn' when the test is run. It should | ||
| 9285 | signal a condition on failure or just return if the test passes. | ||
| 9286 | |||
| 9287 | `should', `should-not' and `should-error' are useful for | ||
| 9288 | assertions in BODY. | ||
| 9289 | |||
| 9290 | Use `ert' to run tests interactively. | ||
| 9291 | |||
| 9292 | Tests that are expected to fail can be marked as such | ||
| 9293 | using :expected-result. See `ert-test-result-type-p' for a | ||
| 9294 | description of valid values for RESULT-TYPE. | ||
| 9295 | |||
| 9296 | \(fn NAME () [DOCSTRING] [:expected-result RESULT-TYPE] [:tags '(TAG...)] BODY...)" nil (quote macro)) | ||
| 9297 | |||
| 9249 | (put 'ert-deftest 'lisp-indent-function 2) | 9298 | (put 'ert-deftest 'lisp-indent-function 2) |
| 9250 | 9299 | ||
| 9251 | (put 'ert-info 'lisp-indent-function 1) | 9300 | (put 'ert-info 'lisp-indent-function 1) |
| @@ -9966,8 +10015,8 @@ Edit the hotlist of directory servers in a specialized buffer. | |||
| 9966 | 10015 | ||
| 9967 | ;;;*** | 10016 | ;;;*** |
| 9968 | 10017 | ||
| 9969 | ;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (20451 | 10018 | ;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (20452 |
| 9970 | ;;;;;; 21087)) | 10019 | ;;;;;; 43334)) |
| 9971 | ;;; Generated autoloads from emacs-lisp/ewoc.el | 10020 | ;;; Generated autoloads from emacs-lisp/ewoc.el |
| 9972 | 10021 | ||
| 9973 | (autoload 'ewoc-create "ewoc" "\ | 10022 | (autoload 'ewoc-create "ewoc" "\ |
| @@ -12691,8 +12740,8 @@ it if ARG is omitted or nil. | |||
| 12691 | ;;;*** | 12740 | ;;;*** |
| 12692 | 12741 | ||
| 12693 | ;;;### (autoloads (setf gv-define-simple-setter gv-define-setter | 12742 | ;;;### (autoloads (setf gv-define-simple-setter gv-define-setter |
| 12694 | ;;;;;; gv-define-expander gv-letplace gv-get) "gv" "emacs-lisp/gv.el" | 12743 | ;;;;;; gv--defun-declaration gv-define-expander gv-letplace gv-get) |
| 12695 | ;;;;;; (20451 34840)) | 12744 | ;;;;;; "gv" "emacs-lisp/gv.el" (20452 56419)) |
| 12696 | ;;; Generated autoloads from emacs-lisp/gv.el | 12745 | ;;; Generated autoloads from emacs-lisp/gv.el |
| 12697 | 12746 | ||
| 12698 | (autoload 'gv-get "gv" "\ | 12747 | (autoload 'gv-get "gv" "\ |
| @@ -12732,6 +12781,15 @@ arguments as NAME. DO is a function as defined in `gv-get'. | |||
| 12732 | 12781 | ||
| 12733 | (put 'gv-define-expander 'lisp-indent-function '1) | 12782 | (put 'gv-define-expander 'lisp-indent-function '1) |
| 12734 | 12783 | ||
| 12784 | (autoload 'gv--defun-declaration "gv" "\ | ||
| 12785 | |||
| 12786 | |||
| 12787 | \(fn SYMBOL NAME ARGS HANDLER &optional FIX)" nil nil) | ||
| 12788 | |||
| 12789 | (push `(gv-expander ,(apply-partially #'gv--defun-declaration 'gv-expander)) defun-declarations-alist) | ||
| 12790 | |||
| 12791 | (push `(gv-setter ,(apply-partially #'gv--defun-declaration 'gv-setter)) defun-declarations-alist) | ||
| 12792 | |||
| 12735 | (autoload 'gv-define-setter "gv" "\ | 12793 | (autoload 'gv-define-setter "gv" "\ |
| 12736 | Define a setter method for generalized variable NAME. | 12794 | Define a setter method for generalized variable NAME. |
| 12737 | This macro is an easy-to-use substitute for `gv-define-expander' that works | 12795 | This macro is an easy-to-use substitute for `gv-define-expander' that works |
| @@ -12767,6 +12825,8 @@ The return value is the last VAL in the list. | |||
| 12767 | 12825 | ||
| 12768 | \(fn PLACE VAL PLACE VAL ...)" nil t) | 12826 | \(fn PLACE VAL PLACE VAL ...)" nil t) |
| 12769 | 12827 | ||
| 12828 | (put 'gv-place 'edebug-form-spec 'edebug-match-form) | ||
| 12829 | |||
| 12770 | ;;;*** | 12830 | ;;;*** |
| 12771 | 12831 | ||
| 12772 | ;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20318 | 12832 | ;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20318 |
| @@ -14004,11 +14064,96 @@ You may also want to set `hfy-page-header' and `hfy-page-footer'. | |||
| 14004 | \(fn SRCDIR DSTDIR &optional F-EXT L-EXT)" t nil) | 14064 | \(fn SRCDIR DSTDIR &optional F-EXT L-EXT)" t nil) |
| 14005 | 14065 | ||
| 14006 | ;;;*** | 14066 | ;;;*** |
| 14007 | |||
| 14008 | ;;;*** | ||
| 14009 | 14067 | ||
| 14010 | ;;;### (autoloads nil "ibuf-macs" "ibuf-macs.el" (20412 11425)) | 14068 | ;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter |
| 14069 | ;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (20412 | ||
| 14070 | ;;;;;; 11425)) | ||
| 14011 | ;;; Generated autoloads from ibuf-macs.el | 14071 | ;;; Generated autoloads from ibuf-macs.el |
| 14072 | |||
| 14073 | (autoload 'define-ibuffer-column "ibuf-macs" "\ | ||
| 14074 | Define a column SYMBOL for use with `ibuffer-formats'. | ||
| 14075 | |||
| 14076 | BODY will be called with `buffer' bound to the buffer object, and | ||
| 14077 | `mark' bound to the current mark on the buffer. The original ibuffer | ||
| 14078 | buffer will be bound to `ibuffer-buf'. | ||
| 14079 | |||
| 14080 | If NAME is given, it will be used as a title for the column. | ||
| 14081 | Otherwise, the title will default to a capitalized version of the | ||
| 14082 | SYMBOL's name. PROPS is a plist of additional properties to add to | ||
| 14083 | the text, such as `mouse-face'. And SUMMARIZER, if given, is a | ||
| 14084 | function which will be passed a list of all the strings in its column; | ||
| 14085 | it should return a string to display at the bottom. | ||
| 14086 | |||
| 14087 | If HEADER-MOUSE-MAP is given, it will be used as a keymap for the | ||
| 14088 | title of the column. | ||
| 14089 | |||
| 14090 | Note that this macro expands into a `defun' for a function named | ||
| 14091 | ibuffer-make-column-NAME. If INLINE is non-nil, then the form will be | ||
| 14092 | inlined into the compiled format versions. This means that if you | ||
| 14093 | change its definition, you should explicitly call | ||
| 14094 | `ibuffer-recompile-formats'. | ||
| 14095 | |||
| 14096 | \(fn SYMBOL (&key NAME INLINE PROPS SUMMARIZER) &rest BODY)" nil (quote macro)) | ||
| 14097 | |||
| 14098 | (autoload 'define-ibuffer-sorter "ibuf-macs" "\ | ||
| 14099 | Define a method of sorting named NAME. | ||
| 14100 | DOCUMENTATION is the documentation of the function, which will be called | ||
| 14101 | `ibuffer-do-sort-by-NAME'. | ||
| 14102 | DESCRIPTION is a short string describing the sorting method. | ||
| 14103 | |||
| 14104 | For sorting, the forms in BODY will be evaluated with `a' bound to one | ||
| 14105 | buffer object, and `b' bound to another. BODY should return a non-nil | ||
| 14106 | value if and only if `a' is \"less than\" `b'. | ||
| 14107 | |||
| 14108 | \(fn NAME DOCUMENTATION (&key DESCRIPTION) &rest BODY)" nil (quote macro)) | ||
| 14109 | |||
| 14110 | (autoload 'define-ibuffer-op "ibuf-macs" "\ | ||
| 14111 | Generate a function which operates on a buffer. | ||
| 14112 | OP becomes the name of the function; if it doesn't begin with | ||
| 14113 | `ibuffer-do-', then that is prepended to it. | ||
| 14114 | When an operation is performed, this function will be called once for | ||
| 14115 | each marked buffer, with that buffer current. | ||
| 14116 | |||
| 14117 | ARGS becomes the formal parameters of the function. | ||
| 14118 | DOCUMENTATION becomes the docstring of the function. | ||
| 14119 | INTERACTIVE becomes the interactive specification of the function. | ||
| 14120 | MARK describes which type of mark (:deletion, or nil) this operation | ||
| 14121 | uses. :deletion means the function operates on buffers marked for | ||
| 14122 | deletion, otherwise it acts on normally marked buffers. | ||
| 14123 | MODIFIER-P describes how the function modifies buffers. This is used | ||
| 14124 | to set the modification flag of the Ibuffer buffer itself. Valid | ||
| 14125 | values are: | ||
| 14126 | nil - the function never modifiers buffers | ||
| 14127 | t - the function it always modifies buffers | ||
| 14128 | :maybe - attempt to discover this information by comparing the | ||
| 14129 | buffer's modification flag. | ||
| 14130 | DANGEROUS is a boolean which should be set if the user should be | ||
| 14131 | prompted before performing this operation. | ||
| 14132 | OPSTRING is a string which will be displayed to the user after the | ||
| 14133 | operation is complete, in the form: | ||
| 14134 | \"Operation complete; OPSTRING x buffers\" | ||
| 14135 | ACTIVE-OPSTRING is a string which will be displayed to the user in a | ||
| 14136 | confirmation message, in the form: | ||
| 14137 | \"Really ACTIVE-OPSTRING x buffers?\" | ||
| 14138 | COMPLEX means this function is special; see the source code of this | ||
| 14139 | macro for exactly what it does. | ||
| 14140 | |||
| 14141 | \(fn OP ARGS DOCUMENTATION (&key INTERACTIVE MARK MODIFIER-P DANGEROUS OPSTRING ACTIVE-OPSTRING COMPLEX) &rest BODY)" nil (quote macro)) | ||
| 14142 | |||
| 14143 | (autoload 'define-ibuffer-filter "ibuf-macs" "\ | ||
| 14144 | Define a filter named NAME. | ||
| 14145 | DOCUMENTATION is the documentation of the function. | ||
| 14146 | READER is a form which should read a qualifier from the user. | ||
| 14147 | DESCRIPTION is a short string describing the filter. | ||
| 14148 | |||
| 14149 | BODY should contain forms which will be evaluated to test whether or | ||
| 14150 | not a particular buffer should be displayed or not. The forms in BODY | ||
| 14151 | will be evaluated with BUF bound to the buffer object, and QUALIFIER | ||
| 14152 | bound to the current value of the filter. | ||
| 14153 | |||
| 14154 | \(fn NAME DOCUMENTATION (&key READER DESCRIPTION) &rest BODY)" nil (quote macro)) | ||
| 14155 | |||
| 14156 | ;;;*** | ||
| 14012 | 14157 | ||
| 14013 | ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) | 14158 | ;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers) |
| 14014 | ;;;;;; "ibuffer" "ibuffer.el" (20412 11425)) | 14159 | ;;;;;; "ibuffer" "ibuffer.el" (20412 11425)) |
| @@ -14104,8 +14249,8 @@ buffer `*icalendar-errors*'. | |||
| 14104 | 14249 | ||
| 14105 | ;;;*** | 14250 | ;;;*** |
| 14106 | 14251 | ||
| 14107 | ;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (20318 | 14252 | ;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (20452 |
| 14108 | ;;;;;; 5885)) | 14253 | ;;;;;; 44311)) |
| 14109 | ;;; Generated autoloads from icomplete.el | 14254 | ;;; Generated autoloads from icomplete.el |
| 14110 | 14255 | ||
| 14111 | (defvar icomplete-mode nil "\ | 14256 | (defvar icomplete-mode nil "\ |
| @@ -16891,7 +17036,7 @@ A major mode to edit m4 macro files. | |||
| 16891 | ;;;*** | 17036 | ;;;*** |
| 16892 | 17037 | ||
| 16893 | ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el" | 17038 | ;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el" |
| 16894 | ;;;;;; (20451 34676)) | 17039 | ;;;;;; (20452 43334)) |
| 16895 | ;;; Generated autoloads from emacs-lisp/macroexp.el | 17040 | ;;; Generated autoloads from emacs-lisp/macroexp.el |
| 16896 | 17041 | ||
| 16897 | (autoload 'macroexpand-all "macroexp" "\ | 17042 | (autoload 'macroexpand-all "macroexp" "\ |
| @@ -21489,7 +21634,7 @@ Check if KEY is in the cache. | |||
| 21489 | ;;;*** | 21634 | ;;;*** |
| 21490 | 21635 | ||
| 21491 | ;;;### (autoloads (pcase-let pcase-let* pcase) "pcase" "emacs-lisp/pcase.el" | 21636 | ;;;### (autoloads (pcase-let pcase-let* pcase) "pcase" "emacs-lisp/pcase.el" |
| 21492 | ;;;;;; (20451 34853)) | 21637 | ;;;;;; (20452 43334)) |
| 21493 | ;;; Generated autoloads from emacs-lisp/pcase.el | 21638 | ;;; Generated autoloads from emacs-lisp/pcase.el |
| 21494 | 21639 | ||
| 21495 | (autoload 'pcase "pcase" "\ | 21640 | (autoload 'pcase "pcase" "\ |
| @@ -21608,8 +21753,8 @@ Completion for GNU/Linux `mount'. | |||
| 21608 | 21753 | ||
| 21609 | ;;;*** | 21754 | ;;;*** |
| 21610 | 21755 | ||
| 21611 | ;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (20373 | 21756 | ;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (20452 |
| 21612 | ;;;;;; 41604)) | 21757 | ;;;;;; 43334)) |
| 21613 | ;;; Generated autoloads from pcmpl-rpm.el | 21758 | ;;; Generated autoloads from pcmpl-rpm.el |
| 21614 | 21759 | ||
| 21615 | (autoload 'pcomplete/rpm "pcmpl-rpm" "\ | 21760 | (autoload 'pcomplete/rpm "pcmpl-rpm" "\ |
| @@ -23262,7 +23407,8 @@ of each directory. | |||
| 23262 | 23407 | ||
| 23263 | ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls | 23408 | ;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls |
| 23264 | ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url | 23409 | ;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url |
| 23265 | ;;;;;; quickurl-ask) "quickurl" "net/quickurl.el" (20356 35090)) | 23410 | ;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20356 |
| 23411 | ;;;;;; 35090)) | ||
| 23266 | ;;; Generated autoloads from net/quickurl.el | 23412 | ;;; Generated autoloads from net/quickurl.el |
| 23267 | 23413 | ||
| 23268 | (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ | 23414 | (defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\ |
| @@ -23276,6 +23422,15 @@ To make use of this do something like: | |||
| 23276 | 23422 | ||
| 23277 | in your ~/.emacs (after loading/requiring quickurl).") | 23423 | in your ~/.emacs (after loading/requiring quickurl).") |
| 23278 | 23424 | ||
| 23425 | (autoload 'quickurl "quickurl" "\ | ||
| 23426 | Insert a URL based on LOOKUP. | ||
| 23427 | |||
| 23428 | If not supplied LOOKUP is taken to be the word at point in the current | ||
| 23429 | buffer, this default action can be modified via | ||
| 23430 | `quickurl-grab-lookup-function'. | ||
| 23431 | |||
| 23432 | \(fn &optional LOOKUP)" t nil) | ||
| 23433 | |||
| 23279 | (autoload 'quickurl-ask "quickurl" "\ | 23434 | (autoload 'quickurl-ask "quickurl" "\ |
| 23280 | Insert a URL, with `completing-read' prompt, based on LOOKUP. | 23435 | Insert a URL, with `completing-read' prompt, based on LOOKUP. |
| 23281 | 23436 | ||
| @@ -24785,8 +24940,8 @@ enclosed in `(and ...)'. | |||
| 24785 | 24940 | ||
| 24786 | ;;;*** | 24941 | ;;;*** |
| 24787 | 24942 | ||
| 24788 | ;;;### (autoloads (savehist-mode) "savehist" "savehist.el" (20318 | 24943 | ;;;### (autoloads (savehist-mode) "savehist" "savehist.el" (20452 |
| 24789 | ;;;;;; 5885)) | 24944 | ;;;;;; 43636)) |
| 24790 | ;;; Generated autoloads from savehist.el | 24945 | ;;; Generated autoloads from savehist.el |
| 24791 | 24946 | ||
| 24792 | (defvar savehist-mode nil "\ | 24947 | (defvar savehist-mode nil "\ |
| @@ -32255,7 +32410,7 @@ this is equivalent to `display-warning', using | |||
| 32255 | ;;;*** | 32410 | ;;;*** |
| 32256 | 32411 | ||
| 32257 | ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el" | 32412 | ;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el" |
| 32258 | ;;;;;; (20244 35516)) | 32413 | ;;;;;; (20452 43334)) |
| 32259 | ;;; Generated autoloads from wdired.el | 32414 | ;;; Generated autoloads from wdired.el |
| 32260 | 32415 | ||
| 32261 | (autoload 'wdired-change-to-wdired-mode "wdired" "\ | 32416 | (autoload 'wdired-change-to-wdired-mode "wdired" "\ |
| @@ -32850,7 +33005,7 @@ Default MODIFIER is 'shift. | |||
| 32850 | ;;;*** | 33005 | ;;;*** |
| 32851 | 33006 | ||
| 32852 | ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" | 33007 | ;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el" |
| 32853 | ;;;;;; (20244 35516)) | 33008 | ;;;;;; (20452 43334)) |
| 32854 | ;;; Generated autoloads from winner.el | 33009 | ;;; Generated autoloads from winner.el |
| 32855 | 33010 | ||
| 32856 | (defvar winner-mode nil "\ | 33011 | (defvar winner-mode nil "\ |
| @@ -33379,7 +33534,7 @@ Zone out, completely. | |||
| 33379 | ;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" | 33534 | ;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el" |
| 33380 | ;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" | 33535 | ;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el" |
| 33381 | ;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-fns.el" | 33536 | ;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-fns.el" |
| 33382 | ;;;;;; "w32-vars.el" "x-dnd.el") (20451 34928 615251)) | 33537 | ;;;;;; "w32-vars.el" "x-dnd.el") (20452 56581 711508)) |
| 33383 | 33538 | ||
| 33384 | ;;;*** | 33539 | ;;;*** |
| 33385 | 33540 | ||
diff --git a/lisp/startup.el b/lisp/startup.el index e71fe323066..3adc2caa04a 100644 --- a/lisp/startup.el +++ b/lisp/startup.el | |||
| @@ -123,8 +123,8 @@ altering `command-line-args-left' to remove them.") | |||
| 123 | "Default directory to use for command line arguments. | 123 | "Default directory to use for command line arguments. |
| 124 | This is normally copied from `default-directory' when Emacs starts.") | 124 | This is normally copied from `default-directory' when Emacs starts.") |
| 125 | 125 | ||
| 126 | ;;; This is here, rather than in x-win.el, so that we can ignore these | 126 | ;; This is here, rather than in x-win.el, so that we can ignore these |
| 127 | ;;; options when we are not using X. | 127 | ;; options when we are not using X. |
| 128 | (defconst command-line-x-option-alist | 128 | (defconst command-line-x-option-alist |
| 129 | '(("-bw" 1 x-handle-numeric-switch border-width) | 129 | '(("-bw" 1 x-handle-numeric-switch border-width) |
| 130 | ("-d" 1 x-handle-display) | 130 | ("-d" 1 x-handle-display) |
diff --git a/lisp/subr.el b/lisp/subr.el index 7e56fe7c3ee..93273b1d41d 100644 --- a/lisp/subr.el +++ b/lisp/subr.el | |||
| @@ -272,6 +272,7 @@ the return value (nil if RESULT is omitted). | |||
| 272 | "Do not evaluate any arguments and return nil. | 272 | "Do not evaluate any arguments and return nil. |
| 273 | Treated as a declaration when used at the right place in a | 273 | Treated as a declaration when used at the right place in a |
| 274 | `defmacro' form. \(See Info anchor `(elisp)Definition of declare'.)" | 274 | `defmacro' form. \(See Info anchor `(elisp)Definition of declare'.)" |
| 275 | ;; FIXME: edebug spec should pay attention to defun-declarations-alist. | ||
| 275 | nil) | 276 | nil) |
| 276 | )) | 277 | )) |
| 277 | 278 | ||
diff --git a/lisp/window.el b/lisp/window.el index 7c3fe1a082f..b362f40d8ad 100644 --- a/lisp/window.el +++ b/lisp/window.el | |||
| @@ -28,8 +28,6 @@ | |||
| 28 | 28 | ||
| 29 | ;;; Code: | 29 | ;;; Code: |
| 30 | 30 | ||
| 31 | (eval-when-compile (require 'cl)) | ||
| 32 | |||
| 33 | (defmacro save-selected-window (&rest body) | 31 | (defmacro save-selected-window (&rest body) |
| 34 | "Execute BODY, then select the previously selected window. | 32 | "Execute BODY, then select the previously selected window. |
| 35 | The value returned is the value of the last form in BODY. | 33 | The value returned is the value of the last form in BODY. |
| @@ -2557,7 +2555,7 @@ This may be a useful alternative binding for \\[delete-other-windows] | |||
| 2557 | (while (not (eq (setq w (next-window w 1)) window)) | 2555 | (while (not (eq (setq w (next-window w 1)) window)) |
| 2558 | (let ((e (window-edges w))) | 2556 | (let ((e (window-edges w))) |
| 2559 | (when (and (= (car e) (car edges)) | 2557 | (when (and (= (car e) (car edges)) |
| 2560 | (= (caddr e) (caddr edges))) | 2558 | (= (nth 2 e) (nth 2 edges))) |
| 2561 | (push w delenda)))) | 2559 | (push w delenda)))) |
| 2562 | (mapc 'delete-window delenda))) | 2560 | (mapc 'delete-window delenda))) |
| 2563 | 2561 | ||