summaryrefslogtreecommitdiff
path: root/lisp/textmodes/enriched.el
diff options
context:
space:
mode:
authorLuc Teirlinck <teirllm@auburn.edu>2004-09-23 22:12:15 +0000
committerLuc Teirlinck <teirllm@auburn.edu>2004-09-23 22:12:15 +0000
commit998733b3bfdf8648b3dda3002d1316609f719804 (patch)
tree6b6198c87130f80235419081e4cbd7b40d249eca /lisp/textmodes/enriched.el
parent6db2bc0254d88bdeb22dc5549509f597cad825fb (diff)
downloademacs-998733b3bfdf8648b3dda3002d1316609f719804.tar.gz
(enriched-default-text-properties-local-flag): New variable.
(enriched-mode): Make sure that enabling and disabling the mode is a no-op. Doc fix.
Diffstat (limited to 'lisp/textmodes/enriched.el')
-rw-r--r--lisp/textmodes/enriched.el20
1 files changed, 17 insertions, 3 deletions
diff --git a/lisp/textmodes/enriched.el b/lisp/textmodes/enriched.el
index f25bec2d841..4db493803ef 100644
--- a/lisp/textmodes/enriched.el
+++ b/lisp/textmodes/enriched.el
@@ -154,6 +154,12 @@ them and their old values to `enriched-old-bindings'."
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 @@ The value is a list of \(VAR VALUE VAR VALUE...).")
"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 @@ Commands:
(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 @@ Commands:
;; 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))