# HG changeset patch # User Richard M. Stallman # Date 859361426 0 # Node ID 2dfc334bdc6f802649ed42e91c53de85b06d217a # Parent cf25d78ebd7523e1abde1f5cb45fd4e06f1dae8a (outline-discard-overlays): Fix the case where an overlay extends on both sides of the region. (outline-mark-subtree): New function. (outline-mode-prefix-map): Put outline-mark-subtree on C-c @. diff -r cf25d78ebd75 -r 2dfc334bdc6f lisp/textmodes/outline.el --- a/lisp/textmodes/outline.el Wed Mar 26 06:05:58 1997 +0000 +++ b/lisp/textmodes/outline.el Wed Mar 26 07:30:26 1997 +0000 @@ -55,6 +55,7 @@ (if outline-mode-prefix-map nil (setq outline-mode-prefix-map (make-sparse-keymap)) + (define-key outline-mode-prefix-map "@" 'outline-mark-subtree) (define-key outline-mode-prefix-map "\C-n" 'outline-next-visible-heading) (define-key outline-mode-prefix-map "\C-p" 'outline-previous-visible-heading) (define-key outline-mode-prefix-map "\C-i" 'show-children) @@ -363,6 +364,21 @@ (interactive "p") (outline-next-visible-heading (- arg))) +(defun outline-mark-subtree () + "Mark the current subtree in an outlined document. +This puts point at the start of the current subtree, and mark at the end." + (interactive) + (let ((beg)) + (if (outline-on-heading-p) + ;; we are already looking at a heading + (beginning-of-line) + ;; else go back to previous heading + (outline-previous-visible-heading 1)) + (setq beg (point)) + (outline-end-of-subtree) + (push-mark (point)) + (goto-char beg))) + (defun outline-flag-region (from to flag) "Hides or shows lines from FROM to TO, according to FLAG. If FLAG is nil then text is shown, while if FLAG is t the text is hidden."