[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/lisp/language/cyrillic.el [emacs-unicode-
From: |
Kenichi Handa |
Subject: |
[Emacs-diffs] Changes to emacs/lisp/language/cyrillic.el [emacs-unicode-2] |
Date: |
Mon, 08 Sep 2003 08:55:17 -0400 |
Index: emacs/lisp/language/cyrillic.el
diff -c /dev/null emacs/lisp/language/cyrillic.el:1.40.6.1
*** /dev/null Mon Sep 8 08:55:17 2003
--- emacs/lisp/language/cyrillic.el Mon Sep 8 08:53:41 2003
***************
*** 0 ****
--- 1,256 ----
+ ;;; cyrillic.el --- support for Cyrillic -*- coding: iso-2022-7bit; -*-
+
+ ;; Copyright (C) 1995 Electrotechnical Laboratory, JAPAN.
+ ;; Licensed to the Free Software Foundation.
+ ;; Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
+ ;; Copyright (C) 2003
+ ;; National Institute of Advanced Industrial Science and Technology (AIST)
+ ;; Registration Number H13PRO009
+
+ ;; Author: Kenichi Handa <address@hidden>
+ ;; Keywords: multilingual, Cyrillic, i18n
+
+ ;; This file is part of GNU Emacs.
+
+ ;; 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)
+ ;; 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
+ ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ ;; 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., 59 Temple Place - Suite 330,
+ ;; Boston, MA 02111-1307, USA.
+
+ ;;; Commentary:
+
+ ;; The character set ISO8859-5 is supported. KOI-8 and ALTERNATIVNYJ
+ ;; are converted to Unicode internally. See
+ ;; <URL:http://www.ecma.ch/ecma1/STAND/ECMA-113.HTM>. For more info
+ ;; on Cyrillic charsets, see
+ ;; <URL:http://czyborra.com/charsets/cyrillic.html>. The KOI and
+ ;; Alternativnyj coding systems should live in code-pages.el, but
+ ;; they've always been preloaded and the coding system autoload
+ ;; mechanism didn't get accepted, so they have to stay here and
+ ;; duplicate code-pages stuff.
+
+ ;; Note that 8859-5 maps directly onto the Unicode Cyrillic block,
+ ;; apart from codepoints 160 (NBSP, c.f. U+0400), 173 (soft hyphen,
+ ;; c.f. U+04OD) and 253 (section sign, c.f U+045D). The KOI-8 and
+ ;; Alternativnyj coding systems encode both 8859-5 and Unicode.
+ ;; ucs-tables.el provides unification for cyrillic-iso-8bit.
+
+ ;; Customizing `utf-fragment-on-decoding' allows decoding characters
+ ;; from KOI and Alternativnyj into 8859-5 where that's possible.
+ ;; cyrillic-iso8859-5 characters take half as much space in the buffer
+ ;; as the mule-unicode-0100-24ff equivalents, though that's probably
+ ;; not normally a big deal.
+
+ ;;; Code:
+
+ ;; Cyrillic (general)
+
+ ;; ISO-8859-5 stuff
+
+ (define-coding-system 'cyrillic-iso-8bit
+ "ISO 2022 based 8-bit encoding for Cyrillic script (MIME:ISO-8859-5)."
+ :coding-type 'charset
+ :mnemonic ?5
+ :charset-list '(iso-8859-5)
+ :mime-charset 'iso-8859-5)
+
+ (define-coding-system-alias 'iso-8859-5 'cyrillic-iso-8bit)
+
+ (set-language-info-alist
+ "Cyrillic-ISO" '((charset iso-8859-5)
+ (coding-system cyrillic-iso-8bit)
+ (coding-priority cyrillic-iso-8bit)
+ (input-method . "cyrillic-yawerty") ; fixme
+ (nonascii-translation . iso-8859-5)
+ (unibyte-display . cyrillic-iso-8bit)
+ (features cyril-util)
+ (sample-text . "Russian (,address@hidden(B)
,L7T`PRabRcYbU(B!")
+ (documentation . "Support for Cyrillic ISO-8859-5."))
+ '("Cyrillic"))
+
+ ;; KOI-8R stuff
+
+ (define-coding-system 'cyrillic-koi8
+ "KOI8 8-bit encoding for Cyrillic (MIME: KOI8-R)."
+ :coding-type 'charset
+ ;; We used to use ?K. It is true that ?K is more strictly correct,
+ ;; but it is also used for Korean. So people who use koi8 for
+ ;; languages other than Russian will have to forgive us.
+ :mnemonic ?R
+ :charset-list '(koi8)
+ :mime-charset 'koi8-r)
+
+ (define-coding-system-alias 'koi8-r 'cyrillic-koi8)
+ (define-coding-system-alias 'koi8 'cyrillic-koi8)
+ (define-coding-system-alias 'cp878 'cyrillic-koi8)
+
+ (set-language-info-alist
+ "Cyrillic-KOI8" `((charset koi8)
+ (coding-system cyrillic-koi8)
+ (coding-priority cyrillic-koi8 cyrillic-iso-8bit)
+ (nonascii-translation . koi8)
+ (input-method . "russian-typewriter")
+ (features cyril-util)
+ (unibyte-display . cyrillic-koi8)
+ (sample-text . "Russian (,address@hidden(B)
,L7T`PRabRcYbU(B!")
+ (documentation . "Support for Cyrillic KOI8-R."))
+ '("Cyrillic"))
+
+ (set-language-info-alist
+ "Russian" `((charset cyrillic-iso8859-5)
+ (nonascii-translation
+ . ,(get 'cyrillic-koi8-r-nonascii-translation-table
+ 'translation-table))
+ (coding-system cyrillic-koi8)
+ (coding-priority cyrillic-koi8 cyrillic-iso-8bit)
+ (input-method . "russian-computer")
+ (features cyril-util)
+ (unibyte-display . cyrillic-koi8)
+ (sample-text . "Russian (,address@hidden(B)
,L7T`PRabRcYbU(B!")
+ (documentation . "\
+ Support for Russian using koi8-r and the russian-computer input method.")
+ (tutorial . "TUTORIAL.ru"))
+ '("Cyrillic"))
+
+ ;;; ALTERNATIVNYJ stuff
+
+ (define-coding-system 'cyrillic-alternativnyj
+ "ALTERNATIVNYJ 8-bit encoding for Cyrillic."
+ :coding-type 'charset
+ :mnemonic ?A
+ :charset-list '(alternativnyj))
+
+ (define-coding-system-alias 'alternativnyj 'cyrillic-alternativnyj)
+
+ (set-language-info-alist
+ "Cyrillic-ALT" `((charset alternativnyj)
+ (coding-system cyrillic-alternativnyj)
+ (coding-priority cyrillic-alternativnyj)
+ (nonascii-translation . alternativnyj)
+ (input-method . "russian-typewriter")
+ (features cyril-util)
+ (unibyte-display . cyrillic-alternativnyj)
+ (sample-text . "Russian (,address@hidden(B)
,L7T`PRabRcYbU(B!")
+ (documentation . "Support for Cyrillic ALTERNATIVNYJ."))
+ '("Cyrillic"))
+
+ (define-coding-system 'cp866
+ "CP866 encoding for Cyrillic."
+ :coding-type 'charset
+ :mnemonic ?*
+ :charset-list '(ibm866)
+ :mime-charset 'cp866)
+
+ (define-coding-system 'koi8-u
+ "KOI8-U 8-bit encoding for Cyrillic (MIME: KOI8-U)"
+ :coding-type 'charset
+ :mnemonic ?U
+ :charset-list '(koi8-u)
+ :mime-charset 'koi8-u)
+
+ (define-coding-system 'koi8-t
+ "KOI8-T 8-bit encoding for Cyrillic"
+ :coding-type 'charset
+ :mnemonic ?*
+ :charset-list '(koi8-t)
+ :mime-charset 'koi8-t)
+
+ (define-coding-system 'windows-1251
+ "windows-1251 8-bit encoding for Cyrillic (MIME: WINDOWS-1251)"
+ :coding-type 'charset
+ :mnemonic ?b
+ :charset-list '(windows-1251)
+ :mime-charset 'windows-1251)
+ (define-coding-system-alias 'cp1251 'windows-1251)
+
+ (define-coding-system 'cp1125
+ "cp1125 8-bit encoding for Cyrillic"
+ :coding-type 'charset
+ :mnemonic ?*
+ :charset-list '(cp1125))
+ (define-coding-system-alias 'ruscii 'cp1125)
+ ;; Original name for cp1125, says Serhii Hlodin <address@hidden>
+ (define-coding-system-alias 'cp866u 'cp1125)
+
+ (define-coding-system 'cp855
+ "DOS codepage 855 (Russian)"
+ :coding-type 'charset
+ :mnemonic ?D
+ :charset-list '(cp855)
+ :mime-charset 'cp855)
+ (define-coding-system-alias 'ibm855 'cp855)
+
+ (define-coding-system 'mik
+ "Bulgarian DOS codepage"
+ :coding-type 'charset
+ :mnemonic ?D
+ :charset-list '(mik))
+
+ (define-coding-system 'pt154
+ "Parattype Asian Cyrillic codepage"
+ :coding-type 'charset
+ :mnemonic ?D
+ :charset-list '(pt154))
+
+ ;; (set-language-info-alist
+ ;; "Windows-1251" `((coding-system windows-1251)
+ ;; (coding-priority windows-1251)
+ ;; (input-method . "russian-typewriter") ; fixme?
+ ;; (features code-pages)
+ ;; (documentation . "Support for windows-1251 character set."))
+ ;; '("Cyrillic"))
+
+ (set-language-info-alist
+ "Tajik" `((coding-system koi8-t)
+ (coding-priority koi8-t)
+ (nonascii-translation . cyrillic-koi8-t)
+ (charset koi8-t)
+ (input-method . "russian-typewriter") ; fixme?
+ (features code-pages)
+ (documentation . "Support for Tajik using KOI8-T."))
+ '("Cyrillic"))
+
+ (set-language-info-alist
+ "Bulgarian" `((coding-system windows-1251)
+ (coding-priority windows-1251)
+ (nonascii-translation . windows-1251)
+ (charset windows-1251)
+ (input-method . "bulgarian-bds")
+ (features code-pages)
+ (documentation
+ . "Support for Bulgrian with windows-1251 character set."))
+ '("Cyrillic"))
+
+ (set-language-info-alist
+ "Belarusian" `((coding-system windows-1251)
+ (coding-priority windows-1251)
+ (nonascii-translation . windows-1251)
+ (charset windows-1251)
+ (input-method . "belarusian")
+ (features code-pages)
+ (documentation
+ . "Support for Belarusian with windows-1251 character set.
+ \(The name Belarusian replaced Byelorussian in the early 1990s.)"))
+ '("Cyrillic"))
+
+ (set-language-info-alist
+ "Ukrainian" `((coding-system koi8-u)
+ (coding-priority koi8-u)
+ (input-method . "ukrainian-computer")
+ (documentation
+ . "Support for Ukrainian with koi8-u character set."))
+ '("Cyrillic"))
+
+ (provide 'cyrillic)
+
+ ;;; cyrillic.el ends here
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Emacs-diffs] Changes to emacs/lisp/language/cyrillic.el [emacs-unicode-2],
Kenichi Handa <=