X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/0d30b33766e277a5bff6eabc9da5afdaebd8b32a..58cb49d471bbe4e9f08145b5909e91f1bdd8142e:/lisp/foldout.el diff --git a/lisp/foldout.el b/lisp/foldout.el index 54fca4eb6f..e09a693c63 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el @@ -1,18 +1,20 @@ ;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode -;; Copyright (C) 1994, 2002, 2003, 2004, 2005 Free Software Foundation, Inc. +;; Copyright (C) 1994, 2001, 2002, 2003, 2004, 2005, +;; 2006, 2007, 2008, 2009 Free Software Foundation, Inc. ;; Author: Kevin Broadey +;; Maintainer: FSF ;; Created: 27 Jan 1994 ;; Version: foldout.el 1.10 dated 94/05/19 at 17:09:12 ;; 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 @@ -20,9 +22,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: @@ -308,7 +308,8 @@ optional arg EXPOSURE \(interactively with prefix arg\) changes this:- Normally causes exited folds to be hidden, but with ARG < 0, -ARG folds are exited and text is left visible." (interactive "p") - (let (start-marker end-marker (hide-fold t)) + (let ((hide-fold t) start-marker end-marker + beginning-of-heading end-of-subtree) ;; check there are some folds to leave (if (null foldout-fold-list) @@ -355,26 +356,23 @@ exited and text is left visible." ;; is \n otherwise it will be hidden. If there is a newline ;; before this one, make it visible too so we do the same as ;; outline.el and leave a blank line before the heading. - (if (zerop num-folds) - (let ((beginning-of-heading (point)) - (end-of-subtree (if end-marker - (progn - (forward-char -1) - (if (memq (preceding-char) - '(?\n ?\^M)) - (forward-char -1)) - (point)) - (point-max)))) - ;; hide the subtree - (if hide-fold - (outline-flag-region start-marker end-of-subtree - foldout-hide-flag)) - - ;; make sure the next heading is exposed - (if end-marker - (outline-flag-region end-of-subtree beginning-of-heading - foldout-show-flag)) - )) + (when (zerop num-folds) + (if end-marker + (setq beginning-of-heading (point) + end-of-subtree (progn (forward-char -1) + (if (memq (preceding-char) + '(?\n ?\^M)) + (forward-char -1)) + (point)))) + ;; hide the subtree + (when hide-fold + (goto-char start-marker) + (hide-subtree)) + + ;; make sure the next heading is exposed + (if end-marker + (outline-flag-region end-of-subtree beginning-of-heading + foldout-show-flag))) ;; zap the markers so they don't slow down editing (set-marker start-marker nil) @@ -567,5 +565,5 @@ Valid modifiers are shift, control, meta, alt, hyper and super.") (provide 'foldout) -;;; arch-tag: 19d095a2-1f09-42a7-a5ac-e2a3078cfe95 +;; arch-tag: 19d095a2-1f09-42a7-a5ac-e2a3078cfe95 ;;; foldout.el ends here