changeset 22772:3dc5c3a4f1f8

(sgml-mode): Call kill-local-variables here directly, then set major-mode, then call sgml-mode-common. Run the hooks here at the end. (html-mode): Likewise. (sgml-mode-common): Don't call kill-local-variables; don't run hooks.
author Richard M. Stallman <rms@gnu.org>
date Sun, 19 Jul 1998 00:04:01 +0000
parents bd6a5af23e19
children bd776f15bb43
files lisp/textmodes/sgml-mode.el
diffstat 1 files changed, 10 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/textmodes/sgml-mode.el	Fri Jul 17 15:13:21 1998 +0000
+++ b/lisp/textmodes/sgml-mode.el	Sun Jul 19 00:04:01 1998 +0000
@@ -281,7 +281,6 @@
 SGML-TAG-FACE-ALIST is used for calculating `sgml-font-lock-keywords-2'.
 SGML-DISPLAY-TEXT sets up alternate text for when tags are invisible (see
 varables of same name)."
-  (kill-all-local-variables)
   (setq local-abbrev-table text-mode-abbrev-table)
   (set-syntax-table sgml-mode-syntax-table)
   (make-local-variable 'indent-line-function)
@@ -346,8 +345,7 @@
   (while sgml-display-text
     (put (car (car sgml-display-text)) 'before-string
 	 (cdr (car sgml-display-text)))
-    (setq sgml-display-text (cdr sgml-display-text)))
-  (run-hooks 'text-mode-hook 'sgml-mode-hook))
+    (setq sgml-display-text (cdr sgml-display-text))))
 
 
 (defun sgml-mode-facemenu-add-face-function (face end)
@@ -379,6 +377,9 @@
 Do \\[describe-key] on the following bindings to discover what they do.
 \\{sgml-mode-map}"
   (interactive)
+  (kill-all-local-variables)
+  (setq mode-name "SGML"
+	major-mode 'sgml-mode)
   (sgml-mode-common sgml-tag-face-alist sgml-display-text)
   ;; Set imenu-generic-expression here, rather than in sgml-mode-common,
   ;; because this definition probably is not useful in HTML mode.
@@ -386,9 +387,7 @@
   (setq imenu-generic-expression
 	"<!\\(element\\|entity\\)[ \t\n]+%?[ \t\n]*\\([A-Za-z][-A-Za-z.0-9]*\\)")
   (use-local-map sgml-mode-map)
-  (setq mode-name "SGML"
-	major-mode 'sgml-mode))
-
+  (run-hooks 'text-mode-hook 'sgml-mode-hook))
 
 
 (defun sgml-comment-indent ()
@@ -1180,6 +1179,9 @@
 
 \\{html-mode-map}"
   (interactive)
+  (kill-all-local-variables)
+  (setq mode-name "HTML"
+        major-mode 'html-mode)
   (sgml-mode-common html-tag-face-alist html-display-text)
   (use-local-map html-mode-map)
   (make-local-variable 'sgml-tag-alist)
@@ -1191,9 +1193,7 @@
   (make-local-variable 'sentence-end)
   (setq sentence-end
 	"[.?!][]\"')}]*\\(<[^>]*>\\)*\\($\\| $\\|\t\\|  \\)[ \t\n]*")
-  (setq mode-name "HTML"
-        major-mode 'html-mode
-	sgml-tag-alist html-tag-alist
+  (setq sgml-tag-alist html-tag-alist
 	sgml-face-tag-alist html-face-tag-alist
 	sgml-tag-help html-tag-help
 	outline-regexp "^.*<[Hh][1-6]\\>"
@@ -1203,7 +1203,7 @@
   (setq imenu-create-index-function 'html-imenu-index)
   (make-local-variable 'imenu-sort-function)
   (setq imenu-sort-function nil) ; sorting the menu defeats the purpose
-  (run-hooks 'html-mode-hook))
+  (run-hooks 'text-mode-hook 'sgml-mode-hook 'html-mode-hook))
 
 (defvar html-imenu-regexp
   "\\s-*<h\\([1-9]\\)[^\n<>]*>\\(<[^\n<>]*>\\)*\\s-*\\([^\n<>]*\\)"