changeset 75107:1a2349dd4e0b

(sgml-html-meta-auto-coding-function): Ensure that the buffer contains a HTML document.
author Romain Francoise <romain@orebokech.com>
date Fri, 05 Jan 2007 17:58:02 +0000
parents a6b4f9a69719
children 3ad1e6539466
files lisp/ChangeLog lisp/international/mule.el
diffstat 2 files changed, 14 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Fri Jan 05 17:49:43 2007 +0000
+++ b/lisp/ChangeLog	Fri Jan 05 17:58:02 2007 +0000
@@ -1,6 +1,11 @@
+2007-01-05  Romain Francoise  <romain@orebokech.com>
+
+	* international/mule.el (sgml-html-meta-auto-coding-function):
+	Ensure that the buffer contains a HTML document.
+
 2007-01-05  Dan Nicolaescu  <dann@ics.uci.edu>
 
-	* faces.el (momentary): Move here ... 
+	* faces.el (momentary): Move here ...
 	* subr.el (momentary): ... from here.
 
 2007-01-05  Nick Roberts  <nickrob@snap.net.nz>
@@ -11,9 +16,9 @@
 
 2007-01-04  Juanma Barranquero  <lekktu@gmail.com>
 
-	* files.el (find-file-noselect-1, set-visited-file-name): 
+	* files.el (find-file-noselect-1, set-visited-file-name):
 	Allow backup-enable-predicate to be nil.
-	
+
 2007-01-04  Kevin Rodgers  <kevin.d.rodgers@gmail.com>
 
 	* subr.el (momentary): New face.
--- a/lisp/international/mule.el	Fri Jan 05 17:49:43 2007 +0000
+++ b/lisp/international/mule.el	Fri Jan 05 17:58:02 2007 +0000
@@ -2292,7 +2292,12 @@
 			;; In case of no header, search only 10 lines.
 			(forward-line 10))
 		    (point))))
-  (when (re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\sw+;\\s-*charset=\\(.+?\\)[\"']" size t)
+  ;; Make sure that the buffer really contains an HTML document, by
+  ;; checking that it starts with a doctype or a <HTML> start tag
+  ;; (allowing for whitespace at bob).  Note: 'DOCTYPE NETSCAPE' is
+  ;; useful for Mozilla bookmark files.
+  (when (and (re-search-forward "\\`[[:space:]\n]*\\(<!doctype[[:space:]\n]+\\(html\\|netscape\\)\\|<html\\)" size t)
+	     (re-search-forward "<meta\\s-+http-equiv=[\"']?content-type[\"']?\\s-+content=[\"']text/\\sw+;\\s-*charset=\\(.+?\\)[\"']" size t))
     (let* ((match (match-string 1))
 	   (sym (intern (downcase match))))
       (if (coding-system-p sym)