unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Some further problems with enriched mode.
@ 2004-09-23  1:18 Luc Teirlinck
  2004-09-23 15:47 ` Kevin Rodgers
  2004-09-23 16:44 ` Richard Stallman
  0 siblings, 2 replies; 6+ messages in thread
From: Luc Teirlinck @ 2004-09-23  1:18 UTC (permalink / 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))
============================================================

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2004-09-23 17:24 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-09-23  1:18 Some further problems with enriched mode Luc Teirlinck
2004-09-23 15:47 ` 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

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