From be166d172626b2189fcb2be89f2cc14a080632da Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Wed, 26 Jun 1996 18:03:44 +0000 Subject: [PATCH] (outline-minor-mode): No longer permanent local. --- lisp/textmodes/outline.el | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lisp/textmodes/outline.el b/lisp/textmodes/outline.el index cb5f2daa211..02018d2d218 100644 --- a/lisp/textmodes/outline.el +++ b/lisp/textmodes/outline.el @@ -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." -- 2.39.2