From 7e60d5d365e8965fe3db60e08208a28bf567cd42 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 26 Mar 1997 07:30:26 +0000 Subject: [PATCH] (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 @. --- lisp/textmodes/outline.el | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/lisp/textmodes/outline.el b/lisp/textmodes/outline.el index 3b7ae6c076d..212705979b7 100644 --- a/lisp/textmodes/outline.el +++ b/lisp/textmodes/outline.el @@ -55,6 +55,7 @@ in the file it applies to.") (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 @@ A heading line is one that starts with a `*' (or that (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." -- 2.39.2