X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/44d5226a2cedb7e585fd6ab5290902c69154238a..058f56d24f776bdc25bcac86fe1f8969a78374e9:/lisp/foldout.el diff --git a/lisp/foldout.el b/lisp/foldout.el index 73c8556ad5..e0ca41acf0 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el @@ -1,20 +1,19 @@ ;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode -;; Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005, -;; 2006, 2007 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001-2014 Free Software Foundation, Inc. ;; Author: Kevin Broadey -;; Maintainer: FSF +;; Maintainer: emacs-devel@gnu.org ;; Created: 27 Jan 1994 -;; Version: foldout.el 1.10 dated 94/05/19 at 17:09:12 +;; Version: 1.10 ;; Keywords: folding, outlines ;; This file is part of GNU Emacs. -;; GNU Emacs is free software; you can redistribute it and/or modify +;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) -;; any later version. +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,9 +21,7 @@ ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License -;; along with GNU Emacs; see the file COPYING. If not, write to the -;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -;; Boston, MA 02110-1301, USA. +;; along with GNU Emacs. If not, see . ;;; Commentary: @@ -42,7 +39,7 @@ ;; look under one of the level-2 headings, position the cursor on it and do C-c ;; C-z again. This exposes the level-2 body and its level-3 child subheadings ;; and narrows the buffer again. You can keep on zooming in on successive -;; subheadings as much as you like. A string in the modeline tells you how +;; subheadings as much as you like. A string in the mode line tells you how ;; deep you've gone. ;; ;; When zooming in on a heading you might only want to see the child @@ -114,9 +111,9 @@ ;; setup a lot easier. ;; ;; folding.el by Jamie Lokier supports folding by -;; recognising special marker text in you file. +;; recognizing special marker text in you file. ;; -;; c-outline.el (by me) provides outline-mode support to recognise `C' +;; c-outline.el (by me) provides outline-mode support to recognize `C' ;; statements as outline headings, so with foldout you can have a folding `C' ;; code editor without having to put in start- and end-of-fold markers. This ;; is a real winner! @@ -197,7 +194,7 @@ ;; shows only the subheadings. ;; 1.2 28-Jan-94 -;; Fixed a dumb bug - didn't make `foldout-modeline-string' buffer-local :-( +;; Fixed a dumb bug - didn't make `foldout-mode-line-string' buffer-local :-( ;; ;; Changed `foldout-exit-fold' to use prefix arg to say how many folds to exit. ;; Negative arg means exit but don't hide text. Zero arg means exit all folds. @@ -221,15 +218,15 @@ An end marker of nil means the fold ends after (point-max).") (make-variable-buffer-local 'foldout-fold-list) -(defvar foldout-modeline-string nil - "Modeline string announcing that we are in an outline fold.") -(make-variable-buffer-local 'foldout-modeline-string) +(defvar foldout-mode-line-string nil + "Mode line string announcing that we are in an outline fold.") +(make-variable-buffer-local 'foldout-mode-line-string) ;; put our minor mode string immediately following outline-minor-mode's -(or (assq 'foldout-modeline-string minor-mode-alist) +(or (assq 'foldout-mode-line-string minor-mode-alist) (let ((outl-entry (memq (assq 'outline-minor-mode minor-mode-alist) minor-mode-alist)) - (foldout-entry '((foldout-modeline-string foldout-modeline-string)))) + (foldout-entry '((foldout-mode-line-string foldout-mode-line-string)))) ;; something's wrong with outline if we can't find it (if (null outl-entry) @@ -299,8 +296,8 @@ optional arg EXPOSURE \(interactively with prefix arg\) changes this:- (setq foldout-fold-list (cons (cons start-marker end-marker) foldout-fold-list)) - ;; update the modeline - (foldout-update-modeline) + ;; update the mode line + (foldout-update-mode-line) ))) @@ -378,8 +375,7 @@ exited and text is left visible." ;; zap the markers so they don't slow down editing (set-marker start-marker nil) - (if end-marker (set-marker end-marker nil)) - ) + (if end-marker (set-marker end-marker nil))) ;; narrow to the enclosing fold if there is one (if foldout-fold-list @@ -389,32 +385,29 @@ exited and text is left visible." (narrow-to-region start-marker (if end-marker (1- (marker-position end-marker)) - (point-max))) - )) + (point-max))))) (recenter) - ;; update the modeline - (foldout-update-modeline) - )) + ;; update the mode line + (foldout-update-mode-line))) -(defun foldout-update-modeline () - "Set the modeline string to indicate our fold depth." +(defun foldout-update-mode-line () + "Set the mode line to indicate our fold depth." (let ((depth (length foldout-fold-list))) - (setq foldout-modeline-string + (setq foldout-mode-line-string (cond ;; if we're not in a fold, keep quiet ((zerop depth) nil) - ;; in outline-minor-mode we're after "Outl:xx" in the modeline + ;; in outline-minor-mode we're after "Outl:xx" in the mode line (outline-minor-mode (format ":%d" depth)) ;; otherwise just announce the depth (I guess we're in outline-mode) ((= depth 1) " Inside 1 fold") (t - (format " Inside %d folds" depth)) - )))) + (format " Inside %d folds" depth)))))) (defun foldout-mouse-zoom (event) @@ -497,7 +490,7 @@ What happens depends on the number of mouse clicks:- "Swallow intervening mouse events so we only get the final click-count. Signal an error if the final event isn't the same type as the first one." (let ((initial-event-type (event-basic-type event))) - (while (null (sit-for 0 double-click-time 'nodisplay)) + (while (null (sit-for (/ double-click-time 1000.0) 'nodisplay)) (setq event (read-event))) (or (eq initial-event-type (event-basic-type event)) (error ""))) @@ -567,5 +560,4 @@ Valid modifiers are shift, control, meta, alt, hyper and super.") (provide 'foldout) -;;; arch-tag: 19d095a2-1f09-42a7-a5ac-e2a3078cfe95 ;;; foldout.el ends here