X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/382f8b5c8f9df8c11181dcbcfa57621dfe38829e..e3fe4da0475674efad25a8a62e90879360ed2601:/lisp/international/mule.el diff --git a/lisp/international/mule.el b/lisp/international/mule.el index 6d1a17cba4..4a4ad89daa 100644 --- a/lisp/international/mule.el +++ b/lisp/international/mule.el @@ -1,9 +1,9 @@ ;;; mule.el --- basic commands for mulitilingual environment -;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 +;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 ;; Free Software Foundation, Inc. ;; Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -;; 2005, 2006, 2007 +;; 2005, 2006, 2007, 2008 ;; National Institute of Advanced Industrial Science and Technology (AIST) ;; Registration Number H14PRO021 @@ -13,7 +13,7 @@ ;; GNU Emacs is free software; you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation; either version 2, or (at your option) +;; the Free Software Foundation; either version 3, or (at your option) ;; any later version. ;; GNU Emacs is distributed in the hope that it will be useful, @@ -392,6 +392,20 @@ code-point in CCS. Currently not supported and just ignored." char)))))))) +;; Save the ASCII case table in case we need it later. Some locales +;; (such as Turkish) modify the case behavior of ASCII characters, +;; which can interfere with networking code that uses ASCII strings. + +(defvar ascii-case-table + ;; Code copied from copy-case-table to avoid requiring case-table.el + (let ((tbl (copy-sequence (standard-case-table))) + (up (char-table-extra-slot (standard-case-table) 0))) + (if up (set-char-table-extra-slot tbl 0 (copy-sequence up))) + (set-char-table-extra-slot tbl 1 nil) + (set-char-table-extra-slot tbl 2 nil) + tbl) + "Case table for the ASCII character set.") + ;; Coding system stuff ;; Coding system is a symbol that has the property `coding-system'. @@ -1565,11 +1579,14 @@ text, and convert it in the temporary buffer. Otherwise, convert in-place." ;;; FILE I/O (defcustom auto-coding-alist - '(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\)\\'" . no-conversion) - ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\)\\'" . no-conversion) + ;; .exe and .EXE are added to support archive-mode looking at DOS + ;; self-extracting exe archives. + '(("\\.\\(arc\\|zip\\|lzh\\|lha\\|zoo\\|[jew]ar\\|xpi\\|exe\\)\\'" . no-conversion) + ("\\.\\(ARC\\|ZIP\\|LZH\\|LHA\\|ZOO\\|[JEW]AR\\|XPI\\|EXE\\)\\'" . no-conversion) ("\\.\\(sx[dmicw]\\|odt\\|tar\\|tgz\\)\\'" . no-conversion) ("\\.\\(gz\\|Z\\|bz\\|bz2\\|gpg\\)\\'" . no-conversion) ("\\.\\(jpe?g\\|png\\|gif\\|tiff?\\|p[bpgn]m\\)\\'" . no-conversion) + ("\\.pdf\\'" . no-conversion) ("/#[^/]+#\\'" . emacs-mule)) "Alist of filename patterns vs corresponding coding systems. Each element looks like (REGEXP . CODING-SYSTEM). @@ -1735,7 +1752,7 @@ If nothing is specified, the return value is nil." ;; is just "\r" and we can't use "^" nor "$" in regexp. (when (and tail-found (or (not coding-system) (not char-trans))) (goto-char tail-start) - (re-search-forward "[\r\n]\^L" nil t) + (re-search-forward "[\r\n]\^L" tail-end t) (if (re-search-forward "[\r\n]\\([^[\r\n]*\\)[ \t]*Local Variables:[ \t]*\\([^\r\n]*\\)[\r\n]" tail-end t) @@ -2285,25 +2302,26 @@ This function is intended to be added to `auto-coding-functions'." (defun sgml-html-meta-auto-coding-function (size) "If the buffer has an HTML meta tag, use it to determine encoding. This function is intended to be added to `auto-coding-functions'." - (setq size (min (+ (point) size) - (save-excursion - ;; Limit the search by the end of the HTML header. - (or (search-forward "" size t) - ;; In case of no header, search only 10 lines. - (forward-line 10)) - (point)))) - ;; Make sure that the buffer really contains an HTML document, by - ;; checking that it starts with a doctype or a start tag - ;; (allowing for whitespace at bob). Note: 'DOCTYPE NETSCAPE' is - ;; useful for Mozilla bookmark files. - (when (and (re-search-forward "\\`[[:space:]\n]*\\(" size t) + ;; In case of no header, search only 10 lines. + (forward-line 10)) + (point)))) + ;; Make sure that the buffer really contains an HTML document, by + ;; checking that it starts with a doctype or a start tag + ;; (allowing for whitespace at bob). Note: 'DOCTYPE NETSCAPE' is + ;; useful for Mozilla bookmark files. + (when (and (re-search-forward "\\`[[:space:]\n]*\\(