X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/a144b9e93b95ca35757292105bd98642818606c5..a568a2cc4fb321d9370a94136a9a36960e58b20e:/lisp/foldout.el?ds=sidebyside diff --git a/lisp/foldout.el b/lisp/foldout.el index 822533fdf5..10f3cecd3e 100644 --- a/lisp/foldout.el +++ b/lisp/foldout.el @@ -1,11 +1,11 @@ -;;; foldout.el --- Folding extensions for outline-mode and outline-minor-mode. +;;; foldout.el --- folding extensions for outline-mode and outline-minor-mode ;; Copyright (C) 1994 Free Software Foundation, Inc. ;; Author: Kevin Broadey ;; Created: 27 Jan 1994 ;; Version: foldout.el 1.10 dated 94/05/19 at 17:09:12 -;; Keywords: folding, outline +;; Keywords: folding, outlines ;; This file is part of GNU Emacs. @@ -20,8 +20,9 @@ ;; 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, 675 Mass Ave, Cambridge, MA 02139, USA. +;; along with GNU Emacs; see the file COPYING. If not, write to the +;; Free Software Foundation, Inc., 59 Temple Place - Suite 330, +;; Boston, MA 02111-1307, USA. ;;; Commentary: @@ -213,12 +214,12 @@ (if (not (boundp 'outline-minor-mode)) (error "Can't find outline-minor-mode")) -(defconst foldout-fold-list nil +(defvar foldout-fold-list nil "List of start and end markers for the folds currently entered. -An end marker of NIL means the fold ends after (point-max).") +An end marker of nil means the fold ends after (point-max).") (make-variable-buffer-local 'foldout-fold-list) -(defconst foldout-modeline-string nil +(defvar foldout-modeline-string nil "Modeline string announcing that we are in an outline fold.") (make-variable-buffer-local 'foldout-modeline-string) @@ -235,6 +236,15 @@ An end marker of NIL means the fold ends after (point-max).") ;; slip our fold announcement into the list (setcdr outl-entry (nconc foldout-entry (cdr outl-entry))) )) + +;; outline-flag-region has different `flag' values in outline.el and +;; noutline.el for hiding and showing text. + +(defconst foldout-hide-flag + (if (featurep 'noutline) t ?\^M)) + +(defconst foldout-show-flag + (if (featurep 'noutline) nil ?\n)) (defun foldout-zoom-subtree (&optional exposure) @@ -259,7 +269,7 @@ optional arg EXPOSURE \(interactively with prefix arg\) changes this:- ;; I need a marker that will follow the end of the region even when ;; text is inserted right at the end. Text gets inserted *after* ;; markers, so I need it at end+1. Unfortunately I can't set a - ;; marker at (point-max)+1, so I use NIL to mean the region ends at + ;; marker at (point-max)+1, so I use nil to mean the region ends at ;; (point-max). (end-marker (if (eobp) nil (set-marker (make-marker) (1+ end)))) ) @@ -308,7 +318,7 @@ exited and text is left visible." ;; catch a request to leave all folds ((zerop num-folds) (setq num-folds (length foldout-fold-list))) - + ;; have we been told not to hide the fold? ((< num-folds 0) (setq hide-fold nil @@ -357,12 +367,13 @@ exited and text is left visible." (point-max)))) ;; hide the subtree (if hide-fold - (outline-flag-region start-marker end-of-subtree ?\^M)) + (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 ?\n)) + (outline-flag-region end-of-subtree beginning-of-heading + foldout-show-flag)) )) ;; zap the markers so they don't slow down editing @@ -506,7 +517,7 @@ if the event didn't occur on a heading." ;;; Keymaps: (defvar foldout-inhibit-key-bindings nil - "Set non-NIL before loading foldout to inhibit key bindings.") + "Set non-nil before loading foldout to inhibit key bindings.") (defvar foldout-mouse-modifiers '(meta control) "List of modifier keys to apply to foldout's mouse events. @@ -520,11 +531,12 @@ Valid modifiers are shift, control, meta, alt, hyper and super.") () (define-key outline-mode-map "\C-c\C-z" 'foldout-zoom-subtree) (define-key outline-mode-map "\C-c\C-x" 'foldout-exit-fold) - (define-key outline-minor-mode-map - (concat outline-minor-mode-prefix "\C-z") 'foldout-zoom-subtree) - (define-key outline-minor-mode-map - (concat outline-minor-mode-prefix "\C-x") 'foldout-exit-fold) - + (let ((map (lookup-key outline-minor-mode-map outline-minor-mode-prefix))) + (unless map + (setq map (make-sparse-keymap)) + (define-key outline-minor-mode-map outline-minor-mode-prefix map)) + (define-key map "\C-z" 'foldout-zoom-subtree) + (define-key map "\C-x" 'foldout-exit-fold)) (let* ((modifiers (apply 'concat (mapcar (function (lambda (modifier) @@ -555,5 +567,5 @@ Valid modifiers are shift, control, meta, alt, hyper and super.") (provide 'foldout) +;;; arch-tag: 19d095a2-1f09-42a7-a5ac-e2a3078cfe95 ;;; foldout.el ends here -