-;;; 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 <KevinB@bartley.demon.co.uk>
;; 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.
;; 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:
(defconst 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
;; 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))
\f
(defun foldout-zoom-subtree (&optional exposure)
;; 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))))
)
(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
;;; 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.
()
(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)
(provide 'foldout)
;;; foldout.el ends here
-