From: Luc Teirlinck <teirllm@dms.auburn.edu>
Subject: Some further problems with enriched mode.
Date: Wed, 22 Sep 2004 20:18:47 -0500 (CDT) [thread overview]
Message-ID: <200409230118.i8N1IlC29160@raven.dms.auburn.edu> (raw)
When foo-mode is a minor mode, I would normally expect that running
(foo-mode) twice in succession would be a no-op. With `enriched-mode'
this is not the case. Enabling and immediately disabling Enriched
mode will leave hard newlines enabled, even if they were previously
disabled. It will also result in `default-text-properties' being made
buffer local, even if it was not before (it is not buffer local by
default). The following patch would make enabling and disabling
Enriched mode a no-op.
I can install if desired.
===File ~/enriched.el-diff==================================
*** enriched.el 14 Sep 2004 17:10:54 -0500 1.5
--- enriched.el 22 Sep 2004 19:04:51 -0500
***************
*** 154,159 ****
--- 154,165 ----
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,175 ****
"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'.
More information about Enriched mode is available in the file
etc/enriched.doc in the Emacs distribution directory.
--- 175,181 ----
"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 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,189 ****
(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))))
((and (memq 'text/enriched buffer-file-format)
(not enriched-rerun-flag))
--- 189,199 ----
(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)))
! (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,202 ****
;; 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))
(make-local-variable 'default-text-properties)
(setq buffer-display-table enriched-display-table)
(use-hard-newlines 1 (if enriched-rerun-flag 'never nil))
--- 206,216 ----
;; 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
! '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))
============================================================
next reply other threads:[~2004-09-23 1:18 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-23 1:18 Luc Teirlinck [this message]
2004-09-23 15:47 ` Some further problems with enriched mode Kevin Rodgers
2004-09-23 15:59 ` Luc Teirlinck
2004-09-23 16:44 ` Stefan Monnier
2004-09-23 17:24 ` Luc Teirlinck
2004-09-23 16:44 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200409230118.i8N1IlC29160@raven.dms.auburn.edu \
--to=teirllm@dms.auburn.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).