changeset 57203:6cbbae74d7ca

(enriched-default-text-properties-local-flag): New variable. (enriched-mode): Make sure that enabling and disabling the mode is a no-op. Doc fix.
author Luc Teirlinck <teirllm@auburn.edu>
date Thu, 23 Sep 2004 22:09:50 +0000
parents ce88ee86e383
children a712b8d1f964
files lisp/textmodes/enriched.el
diffstat 1 files changed, 17 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/enriched.el	Thu Sep 23 04:18:12 2004 +0000
+++ b/lisp/textmodes/enriched.el	Thu Sep 23 22:09:50 2004 +0000
@@ -154,6 +154,12 @@
 The value is a list of \(VAR VALUE VAR VALUE...).")
 (make-variable-buffer-local 'enriched-old-bindings)
 
+;; The next variable is buffer local if and only if Enriched mode is
+;; enabled.  The buffer local value records whether
+;; `default-text-properties' should remain buffer local when disabling
+;; Enriched mode.  For technical reasons, the default value should be t.
+(defvar enriched-default-text-properties-local-flag t)
+
 ;; Technical internal variable.  Bound to t if `enriched-mode' is
 ;; being rerun by a major mode to allow it to restore buffer-local
 ;; variables and to correctly update `enriched-old-bindings'.
@@ -169,7 +175,7 @@
   "Minor mode for editing text/enriched files.
 These are files with embedded formatting information in the MIME standard
 text/enriched format.
-Turning the mode on runs `enriched-mode-hook'.
+Turning the mode on or off runs `enriched-mode-hook'.
 
 More information about Enriched mode is available in the file
 etc/enriched.doc in the Emacs distribution directory.
@@ -183,7 +189,11 @@
 	 (setq buffer-file-format (delq 'text/enriched buffer-file-format))
 	 ;; restore old variable values
 	 (while enriched-old-bindings
-	   (set (pop enriched-old-bindings) (pop enriched-old-bindings))))
+	   (set (pop enriched-old-bindings) (pop enriched-old-bindings)))
+	 (unless enriched-default-text-properties-local-flag
+	   (kill-local-variable 'default-text-properties))
+	 (kill-local-variable 'enriched-default-text-properties-local-flag)
+	 (unless use-hard-newlines (use-hard-newlines 0)))
 
 	((and (memq 'text/enriched buffer-file-format)
 	      (not enriched-rerun-flag))
@@ -196,7 +206,11 @@
 	 ;; These will be restored if we exit Enriched mode.
 	 (setq enriched-old-bindings
 	       (list 'buffer-display-table buffer-display-table
-		     'default-text-properties default-text-properties))
+		     'default-text-properties default-text-properties
+		     'use-hard-newlines use-hard-newlines))
+	 (make-local-variable 'enriched-default-text-properties-local-flag)
+	 (setq enriched-default-text-properties-local-flag
+	       (local-variable-p 'default-text-properties))
 	 (make-local-variable 'default-text-properties)
 	 (setq buffer-display-table  enriched-display-table)
 	 (use-hard-newlines 1 (if enriched-rerun-flag 'never nil))