Switch to recommended form of GPLv3 permissions notice.
[bpt/emacs.git] / lisp / international / mule-conf.el
index 8b78952..6b87374 100644 (file)
@@ -1,8 +1,8 @@
 ;;; mule-conf.el --- configure multilingual environment
 
 ;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-;;   2004, 2005, 2006, 2007  Free Software Foundation, Inc.
-;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+;;   2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+;; Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 ;;   National Institute of Advanced Industrial Science and Technology (AIST)
 ;;   Registration Number H14PRO021
 ;; Copyright (C) 2003
 
 ;; This file is part of GNU Emacs.
 
-;; GNU Emacs is free software; you can redistribute it and/or modify
+;; 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 3, or (at your option)
-;; any later version.
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -24,9 +24,7 @@
 ;; GNU General Public License for more details.
 
 ;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING.  If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
 
 ;;; Commentary:
 
 (define-charset 'eight-bit-control
   "Raw bytes in the range 0x80..0x9F (usually produced from invalid encodings)"
   :short-name "Raw bytes 0x80..0x9F"
+  :supplementary-p t
   :code-space [128 159]
   :code-offset #x3FFF80)               ; see character.h
 
 (define-charset 'eight-bit-graphic
   "Raw bytes in the range 0xA0..0xFF (usually produced from invalid encodings)"
   :short-name "Raw bytes 0xA0..0xFF"
+  :supplementary-p t
   :code-space [160 255]
   :code-offset #x3FFFA0)               ; see character.h
 
   :long-name "Japanese Roman (JISX0201.1976)"
   :iso-final-char ?J
   :emacs-mule-id  138
+  :supplementary-p t
   :code-space [33 126]
   :subset '(jisx0201 33 126 0))
 
   :long-name "Japanese Katakana (JISX0201.1976)"
   :iso-final-char ?I
   :emacs-mule-id  137
+  :supplementary-p t
   :code-space [33 126]
   :subset '(jisx0201 161 254 -128))
 
   :long-name "Big5 (Level-1) A141-C67F"
   :iso-final-char ?0
   :emacs-mule-id 152
+  :supplementary-p t
   :code-space [#x21 #x7E #x21 #x7E]
   :code-offset #x135000
   :unify-map "BIG5-1")
   :long-name "Big5 (Level-2) C940-FEFE"
   :iso-final-char ?1
   :emacs-mule-id  153
+  :supplementary-p t
   :code-space [#x21 #x7E #x21 #x7E]
   :code-offset #x137800
   :unify-map "BIG5-2")
   :emacs-mule-id 160
   :code-space [33 126]
   :unify-map "MULE-sisheng"
+  :supplementary-p t
   :code-offset #x200000)
 
 ;; A subset of the 1989 version of IPA.  It consists of the consonant
   :emacs-mule-id  161
   :unify-map "MULE-ipa"
   :code-space [32 127]
+  :supplementary-p t
   :code-offset #x200080)
 
 (define-charset 'viscii
   :emacs-mule-id  162
   :code-space [32 127]
   :code-offset #x200200
+  :supplementary-p t
   :unify-map "MULE-lviscii")
 
 (define-charset 'vietnamese-viscii-upper
   :emacs-mule-id  163
   :code-space [32 127]
   :code-offset #x200280
+  :supplementary-p t
   :unify-map "MULE-uviscii")
 
 (define-charset 'vscii
   :short-name "Arabic digit"
   :iso-final-char ?2
   :emacs-mule-id 164
+  :supplementary-p t
   :code-space [34 42]
   :code-offset #x0600)
 
   :long-name "Arabic 1-column"
   :iso-final-char ?3
   :emacs-mule-id 165
+  :supplementary-p t
   :code-space [33 126]
   :code-offset #x200100)
 
   :long-name "Arabic 2-column"
   :iso-final-char ?4
   :emacs-mule-id 224
+  :supplementary-p t
   :code-space [33 126]
   :code-offset #x200180)
 
   :short-name "Lao"
   :iso-final-char ?1
   :emacs-mule-id 167
+  :supplementary-p t
   :code-space [33 126]
   :code-offset #x0E81)
 
   "Lao characters (ISO10646 0E81..0EDF)"
   :short-name "Lao"
   :code-space [0 255]
+  :supplementary-p t
   :superset '(ascii eight-bit-control (lao . 128)))
 
 
   :long-name "Indian IS 13194"
   :iso-final-char ?5
   :emacs-mule-id 225
+  :supplementary-p t
   :code-space [33 126]
   :code-offset #x180000)
 
       (format "Glyphs of %s script for CDAC font.  Subset of `indian-glyph'."
              (capitalize (symbol-name script)))
       :short-name (format "CDAC %s glyphs" (capitalize (symbol-name script)))
+      :supplementary-p t
       :code-space [0 255]
       :code-offset code-offset)
     (setq code-offset (+ code-offset #x100)))
       (format "Glyphs of %s script for AKRUTI font.  Subset of `indian-glyph'."
              (capitalize (symbol-name script)))
       :short-name (format "AKRUTI %s glyphs" (capitalize (symbol-name script)))
+      :supplementary-p t
       :code-space [0 255]
       :code-offset code-offset)
     (setq code-offset (+ code-offset #x100))))
   :short-name "Indian glyph"
   :iso-final-char ?4
   :emacs-mule-id 240
+  :supplementary-p t
   :code-space [32 127 32 127]
   :code-offset #x180100)
 
   :long-name "Indian 1 Column"
   :iso-final-char ?6
   :emacs-mule-id  251
+  :supplementary-p t
   :code-space [33 126 33 126]
   :code-offset #x184000)
 
   :long-name "Indian 2 Column"
   :iso-final-char ?5
   :emacs-mule-id  251
+  :supplementary-p t
   :code-space [33 126 33 126]
   :code-offset #x184000)
 
   :iso-final-char ?7
   :emacs-mule-id 252
   :unify-map "MULE-tibetan"
+  :supplementary-p t
   :code-space [33 126 33 37]
   :code-offset #x190000)
 
   :long-name "Tibetan 1 column"
   :iso-final-char ?8
   :emacs-mule-id 241
+  :supplementary-p t
   :code-space [33 126 33 37]
   :code-offset #x190000)
 
   :long-name "Unicode subset (U+2500..U+33FF)"
   :iso-final-char ?2
   :emacs-mule-id 242
+  :supplementary-p t
   :code-space [#x20 #x7f #x20 #x47]
   :code-offset #x2500)
 
   :long-name "Unicode subset (U+E000+FFFF)"
   :iso-final-char ?3
   :emacs-mule-id 243
+  :supplementary-p t
   :code-space [#x20 #x7F #x20 #x75]
   :code-offset #xE000
   :max-code 30015)                     ; U+FFFF
   :long-name "Unicode subset (U+0100..U+24FF)"
   :iso-final-char ?1
   :emacs-mule-id 244
+  :supplementary-p t
   :code-space [#x20 #x7F #x20 #x7F]
   :code-offset #x100)
 
   :long-name "Ethiopic characters"
   :iso-final-char ?3
   :emacs-mule-id  245
+  :supplementary-p t
   :unify-map "MULE-ethiopic"
   :code-space [33 126 33 126]
   :code-offset #x1A0000)
@@ -1419,6 +1444,14 @@ for decoding and encoding files, process I/O, etc."
   :pre-write-conversion 'utf-7-pre-write-conversion
   :post-read-conversion 'utf-7-post-read-conversion)
 
+(define-coding-system 'utf-7-imap
+  "UTF-7 encoding of Unicode, IMAP version (RFC 2060)"
+  :coding-type 'utf-8
+  :mnemonic ?u
+  :charset-list '(unicode)
+  :pre-write-conversion 'utf-7-imap-pre-write-conversion
+  :post-read-conversion 'utf-7-imap-post-read-conversion)
+
 ;; Use us-ascii for terminal output if some other coding system is not
 ;; specified explicitly.
 (set-safe-terminal-coding-system-internal 'us-ascii)
@@ -1434,11 +1467,7 @@ for decoding and encoding files, process I/O, etc."
 (setq file-coding-system-alist
       '(("\\.elc\\'" . utf-8-emacs)
        ("\\.utf\\(-8\\)?\\'" . utf-8)
-       ;; This is the defined default for XML documents.  It may be
-       ;; overridden by a charset specification in the header.  That
-       ;; should be grokked by the auto-coding mechanism, but rms
-       ;; vetoed that.  -- fx
-       ("\\.xml\\'" . utf-8)
+       ("\\.xml\\'" . xml-find-file-coding-system)
        ;; We use raw-text for reading loaddefs.el so that if it
        ;; happens to have DOS or Mac EOLs, they are converted to
        ;; newlines.  This is required to make the special treatment
@@ -1479,11 +1508,6 @@ for decoding and encoding files, process I/O, etc."
 (aset latin-extra-code-table ?\225 t)
 (aset latin-extra-code-table ?\226 t)
 
-;; Move least specific charsets to end of priority list
-
-(apply #'set-charset-priority
-       (delq 'unicode (delq 'emacs (charset-priority-list))))
-
 ;; The old code-pages library is obsoleted by coding systems based on
 ;; the charsets defined in this file but might be required by user
 ;; code.