* src/eval.c (Fbind_symbol): New function.
[bpt/emacs.git] / lisp / outline.el
index 2f84e7d..c7cad31 100644 (file)
@@ -1,9 +1,9 @@
 ;;; outline.el --- outline mode commands for Emacs
 
-;; Copyright (C) 1986, 1993-1995, 1997, 2000-2011
-;;   Free Software Foundation, Inc.
+;; Copyright (C) 1986, 1993-1995, 1997, 2000-2014 Free Software
+;; Foundation, Inc.
 
-;; Maintainer: FSF
+;; Maintainer: emacs-devel@gnu.org
 ;; Keywords: outlines
 
 ;; This file is part of GNU Emacs.
   :prefix "outline-"
   :group 'wp)
 
-(defcustom outline-regexp "[*\^L]+"
+(defvar outline-regexp "[*\^L]+"
   "Regular expression to match the beginning of a heading.
 Any line whose beginning matches this regexp is considered to start a heading.
 Note that Outline mode only checks this regexp at the start of a line,
 so the regexp need not (and usually does not) start with `^'.
 The recommended way to set this is with a Local Variables: list
-in the file it applies to.  See also `outline-heading-end-regexp'."
-  :type 'regexp
-  :group 'outlines)
+in the file it applies to.  See also `outline-heading-end-regexp'.")
 ;;;###autoload(put 'outline-regexp 'safe-local-variable 'stringp)
 
-(defcustom outline-heading-end-regexp "\n"
+(defvar outline-heading-end-regexp "\n"
   "Regular expression to match the end of a heading line.
 You can assume that point is at the beginning of a heading when this
 regexp is searched for.  The heading ends at the end of the match.
 The recommended way to set this is with a `Local Variables:' list
-in the file it applies to."
-  :type 'regexp
-  :group 'outlines)
+in the file it applies to.")
 ;;;###autoload(put 'outline-heading-end-regexp 'safe-local-variable 'stringp)
 
 (defvar outline-mode-prefix-map
@@ -137,24 +133,23 @@ in the file it applies to."
       (cons "Headings" (make-sparse-keymap "Headings")))
 
     (define-key map [headings demote-subtree]
-      '(menu-item "Demote subtree" outline-demote
+      '(menu-item "Demote Subtree" outline-demote
                  :help "Demote headings lower down the tree"))
     (define-key map [headings promote-subtree]
-      '(menu-item "Promote subtree" outline-promote
+      '(menu-item "Promote Subtree" outline-promote
                  :help "Promote headings higher up the tree"))
     (define-key map [headings move-subtree-down]
-      '(menu-item "Move subtree down" outline-move-subtree-down
-                 :help "Move the currrent subtree down past arg headlines of the same level"))
+      '(menu-item "Move Subtree Down" outline-move-subtree-down
+                 :help "Move the current subtree down past arg headlines of the same level"))
     (define-key map [headings move-subtree-up]
-      '(menu-item "Move subtree up" outline-move-subtree-up
-                 :help "Move the currrent subtree up past arg headlines of the same level"))
+      '(menu-item "Move Subtree Up" outline-move-subtree-up
+                 :help "Move the current subtree up past arg headlines of the same level"))
     (define-key map [headings copy]
-      '(menu-item "Copy to kill ring" outline-headers-as-kill
+      '(menu-item "Copy to Kill Ring" outline-headers-as-kill
                  :enable mark-active
                  :help "Save the visible outline headers in region at the start of the kill ring"))
     (define-key map [headings outline-insert-heading]
-
-      '(menu-item "New heading" outline-insert-heading
+      '(menu-item "New Heading" outline-insert-heading
                  :help "Insert a new heading at same depth at point"))
     (define-key map [headings outline-backward-same-level]
 
@@ -285,10 +280,10 @@ in the file it applies to."
   "Normal hook to be run after outline visibility changes.")
 
 (defvar outline-mode-hook nil
-  "*This hook is run when outline mode starts.")
+  "This hook is run when outline mode starts.")
 
 (defvar outline-blank-line nil
-  "*Non-nil means to leave unhidden blank line before heading.")
+  "Non-nil means to leave unhidden blank line before heading.")
 
 ;;;###autoload
 (define-derived-mode outline-mode text-mode "Outline"
@@ -357,7 +352,10 @@ After that, changing the prefix key requires manipulating keymaps."
 ;;;###autoload
 (define-minor-mode outline-minor-mode
   "Toggle Outline minor mode.
-With arg, turn Outline minor mode on if arg is positive, off otherwise.
+With a prefix argument ARG, enable Outline minor mode if ARG is
+positive, and disable it otherwise.  If called from Lisp, enable
+the mode if ARG is omitted or nil.
+
 See the command `outline-mode' for more information on this mode."
   nil " Outl" (list (cons [menu-bar] outline-minor-mode-menu-bar-map)
                    (cons outline-minor-mode-prefix outline-mode-prefix-map))
@@ -378,7 +376,7 @@ See the command `outline-mode' for more information on this mode."
     (show-all)))
 \f
 (defvar outline-level 'outline-level
-  "*Function of no args to compute a header's nesting level in an outline.
+  "Function of no args to compute a header's nesting level in an outline.
 It can assume point is at the beginning of a header line and that the match
 data reflects the `outline-regexp'.")
 ;;;###autoload(put 'outline-level 'risky-local-variable t)
@@ -640,12 +638,12 @@ the match data is set appropriately."
 ;; Vertical tree motion
 
 (defun outline-move-subtree-up (&optional arg)
-  "Move the currrent subtree up past ARG headlines of the same level."
+  "Move the current subtree up past ARG headlines of the same level."
   (interactive "p")
   (outline-move-subtree-down (- arg)))
 
 (defun outline-move-subtree-down (&optional arg)
-  "Move the currrent subtree down past ARG headlines of the same level."
+  "Move the current subtree down past ARG headlines of the same level."
   (interactive "p")
   (let ((movfunc (if (> arg 0) 'outline-get-next-sibling
                   'outline-get-last-sibling))
@@ -749,6 +747,7 @@ If FLAG is nil then text is shown, while if FLAG is t the text is hidden."
     ;; very end of the heading, before the newline, so text inserted at FROM
     ;; belongs to the heading rather than to the entry.
     (let ((o (make-overlay from to nil 'front-advance)))
+      (overlay-put o 'evaporate t)
       (overlay-put o 'invisible 'outline)
       (overlay-put o 'isearch-open-invisible
                   (or outline-isearch-open-invisible-function