unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
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))
============================================================

             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).