diff options
| author | Thien-Thi Nguyen | 2000-01-05 12:22:21 +0000 |
|---|---|---|
| committer | Thien-Thi Nguyen | 2000-01-05 12:22:21 +0000 |
| commit | a40efb3bb9bc43dd3bfa08ec8ab65602afbda663 (patch) | |
| tree | 78ab9789fd3a65c9d3623d1a50b103552c5240eb | |
| parent | 35ab2989c8b38ff7970667e6a9bfdf919dc581be (diff) | |
| download | emacs-a40efb3bb9bc43dd3bfa08ec8ab65602afbda663.tar.gz emacs-a40efb3bb9bc43dd3bfa08ec8ab65602afbda663.zip | |
(hs-discard-overlays, hs-flag-region, hs-show-block):
Don't use `mapcar' when not accumulating.
| -rw-r--r-- | lisp/progmodes/hideshow.el | 65 |
1 files changed, 34 insertions, 31 deletions
diff --git a/lisp/progmodes/hideshow.el b/lisp/progmodes/hideshow.el index e5b16c185be..6de24ce4cbf 100644 --- a/lisp/progmodes/hideshow.el +++ b/lisp/progmodes/hideshow.el | |||
| @@ -5,7 +5,7 @@ | |||
| 5 | ;; Author: Thien-Thi Nguyen <ttn@netcom.com> | 5 | ;; Author: Thien-Thi Nguyen <ttn@netcom.com> |
| 6 | ;; Dan Nicolaescu <dann@ics.uci.edu> | 6 | ;; Dan Nicolaescu <dann@ics.uci.edu> |
| 7 | ;; Keywords: C C++ java lisp tools editing comments blocks hiding outlines | 7 | ;; Keywords: C C++ java lisp tools editing comments blocks hiding outlines |
| 8 | ;; Maintainer-Version: 5.9 | 8 | ;; Maintainer-Version: 5.11 |
| 9 | ;; Time-of-Day-Author-Most-Likely-to-be-Recalcitrant: early morning | 9 | ;; Time-of-Day-Author-Most-Likely-to-be-Recalcitrant: early morning |
| 10 | 10 | ||
| 11 | ;; This file is part of GNU Emacs. | 11 | ;; This file is part of GNU Emacs. |
| @@ -346,10 +346,12 @@ Note that `mode-line-format' is buffer-local.") | |||
| 346 | "Delete hideshow overlays in region defined by FROM and TO." | 346 | "Delete hideshow overlays in region defined by FROM and TO." |
| 347 | (when (< to from) | 347 | (when (< to from) |
| 348 | (setq from (prog1 to (setq to from)))) | 348 | (setq from (prog1 to (setq to from)))) |
| 349 | (mapcar (lambda (ov) | 349 | (let ((ovs (overlays-in from to))) |
| 350 | (when (overlay-get ov 'hs) | 350 | (while ovs |
| 351 | (delete-overlay ov))) | 351 | (let ((ov (car ovs))) |
| 352 | (overlays-in from to))) | 352 | (when (overlay-get ov 'hs) |
| 353 | (delete-overlay ov))) | ||
| 354 | (setq ovs (cdr ovs))))) | ||
| 353 | 355 | ||
| 354 | (defun hs-isearch-show (ov) | 356 | (defun hs-isearch-show (ov) |
| 355 | "Delete overlay OV, and set `hs-headline' to nil. | 357 | "Delete overlay OV, and set `hs-headline' to nil. |
| @@ -396,11 +398,10 @@ on what kind of block it is suppose to hide." | |||
| 396 | (overlay-put overlay 'intangible t) | 398 | (overlay-put overlay 'intangible t) |
| 397 | (overlay-put overlay 'hs flag) | 399 | (overlay-put overlay 'hs flag) |
| 398 | (when (or (eq hs-isearch-open t) (eq hs-isearch-open flag)) | 400 | (when (or (eq hs-isearch-open t) (eq hs-isearch-open flag)) |
| 399 | (mapcar | 401 | (overlay-put overlay 'isearch-open-invisible 'hs-isearch-show) |
| 400 | (lambda (pair) | 402 | (overlay-put overlay |
| 401 | (overlay-put overlay (car pair) (cdr pair))) | 403 | 'isearch-open-invisible-temporary |
| 402 | '((isearch-open-invisible . hs-isearch-show) | 404 | 'hs-isearch-show-temporary)) |
| 403 | (isearch-open-invisible-temporary . hs-isearch-show-temporary)))) | ||
| 404 | overlay)))) | 405 | overlay)))) |
| 405 | 406 | ||
| 406 | (defun hs-forward-sexp (match-data arg) | 407 | (defun hs-forward-sexp (match-data arg) |
| @@ -711,17 +712,18 @@ See documentation for functions `hs-hide-block' and `run-hooks'." | |||
| 711 | (or | 712 | (or |
| 712 | ;; first see if we have something at the end of the line | 713 | ;; first see if we have something at the end of the line |
| 713 | (catch 'eol-begins-hidden-region-p | 714 | (catch 'eol-begins-hidden-region-p |
| 714 | (let ((here (point))) | 715 | (let ((here (point)) |
| 715 | (mapcar (lambda (ov) | 716 | (ovs (save-excursion (end-of-line) (overlays-at (point))))) |
| 716 | (when (overlay-get ov 'hs) | 717 | (while ovs |
| 717 | (goto-char | 718 | (let ((ov (car ovs))) |
| 718 | (cond | 719 | (when (overlay-get ov 'hs) |
| 719 | (end (overlay-end ov)) | 720 | (goto-char |
| 720 | ((eq 'comment (overlay-get ov 'hs)) here) | 721 | (cond (end (overlay-end ov)) |
| 721 | (t (+ (overlay-start ov) (overlay-get ov 'hs-ofs))))) | 722 | ((eq 'comment (overlay-get ov 'hs)) here) |
| 722 | (delete-overlay ov) | 723 | (t (+ (overlay-start ov) (overlay-get ov 'hs-ofs))))) |
| 723 | (throw 'eol-begins-hidden-region-p t))) | 724 | (delete-overlay ov) |
| 724 | (save-excursion (end-of-line) (overlays-at (point)))) | 725 | (throw 'eol-begins-hidden-region-p t))) |
| 726 | (setq ovs (cdr ovs))) | ||
| 725 | nil)) | 727 | nil)) |
| 726 | ;; not immediately obvious, look for a suitable block | 728 | ;; not immediately obvious, look for a suitable block |
| 727 | (let ((c-reg (hs-inside-comment-p)) | 729 | (let ((c-reg (hs-inside-comment-p)) |
| @@ -865,16 +867,17 @@ Key bindings: | |||
| 865 | (list '(hs-minor-mode " hs"))))) | 867 | (list '(hs-minor-mode " hs"))))) |
| 866 | 868 | ||
| 867 | ;; make some variables permanently buffer-local | 869 | ;; make some variables permanently buffer-local |
| 868 | (mapcar (lambda (var) | 870 | (let ((vars '(hs-minor-mode |
| 869 | (make-variable-buffer-local var) | 871 | hs-c-start-regexp |
| 870 | (put var 'permanent-local t)) | 872 | hs-block-start-regexp |
| 871 | '(hs-minor-mode | 873 | hs-block-start-mdata-select |
| 872 | hs-c-start-regexp | 874 | hs-block-end-regexp |
| 873 | hs-block-start-regexp | 875 | hs-forward-sexp-func |
| 874 | hs-block-start-mdata-select | 876 | hs-adjust-block-beginning))) |
| 875 | hs-block-end-regexp | 877 | (while vars |
| 876 | hs-forward-sexp-func | 878 | (let ((var (car vars))) |
| 877 | hs-adjust-block-beginning)) | 879 | (make-variable-buffer-local var) |
| 880 | (put var 'permanent-local t)))) | ||
| 878 | 881 | ||
| 879 | ;;--------------------------------------------------------------------------- | 882 | ;;--------------------------------------------------------------------------- |
| 880 | ;; that's it | 883 | ;; that's it |