aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThien-Thi Nguyen2000-01-05 12:22:21 +0000
committerThien-Thi Nguyen2000-01-05 12:22:21 +0000
commita40efb3bb9bc43dd3bfa08ec8ab65602afbda663 (patch)
tree78ab9789fd3a65c9d3623d1a50b103552c5240eb
parent35ab2989c8b38ff7970667e6a9bfdf919dc581be (diff)
downloademacs-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.el65
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