]> git.eshelyaron.com Git - emacs.git/commitdiff
(outline-minor-mode): No longer permanent local.
authorRichard M. Stallman <rms@gnu.org>
Wed, 26 Jun 1996 18:03:44 +0000 (18:03 +0000)
committerRichard M. Stallman <rms@gnu.org>
Wed, 26 Jun 1996 18:03:44 +0000 (18:03 +0000)
lisp/textmodes/outline.el

index cb5f2daa2119c1133541eca06c8503a5274fab56..02018d2d21835ef60c7cbbd2edc8324ff3635380 100644 (file)
@@ -132,7 +132,6 @@ in the file it applies to.")
 (defvar outline-minor-mode nil
   "Non-nil if using Outline mode as a minor mode of some other mode.")
 (make-variable-buffer-local 'outline-minor-mode)
-(put 'outline-minor-mode 'permanent-local t)
 (or (assq 'outline-minor-mode minor-mode-alist)
     (setq minor-mode-alist (append minor-mode-alist
                                   (list '(outline-minor-mode " Outl")))))
@@ -251,6 +250,11 @@ See the command `outline-mode' for more information on this mode."
          (> (prefix-numeric-value arg) 0)))
   (if outline-minor-mode
       (progn
+       (make-local-hook 'change-major-mode-hook)
+       ;; Turn off this mode if we change major modes.
+       (add-hook 'change-major-mode-hook
+                 '(lambda () (outline-minor-mode -1))
+                 nil t)
        (make-local-variable 'line-move-ignore-invisible)
        (setq line-move-ignore-invisible t)
        ;; Cause use of ellipses for invisible text.
@@ -308,13 +312,14 @@ Only visible heading lines are considered."
   (beginning-of-line)
   (or (outline-on-heading-p)
       (let (found)
-       (while (not found)
-         (setq found
-               (and (re-search-backward (concat "^\\(" outline-regexp "\\)")
-                                        nil t)
-                    (outline-visible))))
-       found)
-      (error "before first heading")))
+       (save-excursion
+         (while (not found)
+           (or (re-search-backward (concat "^\\(" outline-regexp "\\)")
+                                   nil t)
+               (error "before first heading"))
+           (setq found (and (outline-visible) (point)))))
+       (goto-char found)
+       found)))
 
 (defun outline-on-heading-p ()
   "Return t if point is on a (visible) heading line."