]> git.eshelyaron.com Git - emacs.git/commitdiff
(text-mode-variant): New variable.
authorRichard M. Stallman <rms@gnu.org>
Thu, 28 Aug 1997 02:53:44 +0000 (02:53 +0000)
committerRichard M. Stallman <rms@gnu.org>
Thu, 28 Aug 1997 02:53:44 +0000 (02:53 +0000)
(text-mode): Set that variable locally.
(toggle-text-mode-auto-fill): New command.

lisp/textmodes/text-mode.el

index 023981616915d3766732253ae89fafc725c7bd27..eb06fdaeb5f58f5bda14e81019e0291c25145db1 100644 (file)
@@ -31,6 +31,9 @@
 (defvar text-mode-hook nil
   "Normal hook run when entering Text mode and many related modes.")
 
+(defvar text-mode-variant nil
+  "Non-nil if this buffer's major mode is a variant of Text mode.")
+
 (defvar text-mode-syntax-table nil
   "Syntax table used while in text mode.")
 
@@ -75,6 +78,8 @@ Turning on Text mode runs the normal hook `text-mode-hook'."
   (setq paragraph-start (concat "[ \t]*$\\|" page-delimiter))
   (make-local-variable 'paragraph-separate)
   (setq paragraph-separate paragraph-start)
+  (make-local-variable 'text-mode-variant)
+  (setq text-mode-variant t)
   (setq mode-name "Text")
   (setq major-mode 'text-mode)
   (run-hooks 'text-mode-hook))
@@ -98,6 +103,24 @@ Turning on Paragraph-Indent Text mode runs the normal hooks
       
 (defalias 'indented-text-mode 'text-mode)
 
+(defun toggle-text-mode-auto-fill ()
+  "Toggle whether to use Auto Fill in Text mode and related modes.
+This command affects all buffers that use modes related to Text mode,
+both existing buffers and buffers that you subsequently create."
+  (interactive)
+  (let ((enable-mode (not (memq 'turn-on-auto-fill text-mode-hook)))
+       (buffers (buffer-list)))
+    (if enable-mode
+       (add-hook 'text-mode-hook 'turn-on-auto-fill)
+      (remove-hook 'text-mode-hook 'turn-on-auto-fill))
+    (while buffers
+      (with-current-buffer (car buffers)
+       (if text-mode-variant
+           (auto-fill-mode (if enable-mode 1 0))))
+      (setq buffers (cdr buffers)))
+    (message "Auto Fill %s in Text modes"
+            (if enable-mode "enabled" "disabled"))))
+\f
 (defun center-paragraph ()
   "Center each nonblank line in the paragraph at or after point.
 See `center-line' for more info."