summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimo Myyrä <timo.myyra@bittivirhe.fi>2020-12-24 17:29:49 +0200
committerEli Zaretskii <eliz@gnu.org>2020-12-25 15:43:52 +0200
commitc3c1863d9504dd04ca6d5f169de2d0348ea78d62 (patch)
tree6e3fd76d152a344ff51680cc071f6d2c99bbe5f0
parent64513abf3eb5f845f56250ff8dc0ab8a9d193956 (diff)
downloademacs-c3c1863d9504dd04ca6d5f169de2d0348ea78d62.tar.gz
Add support for more EBCDIC code pages IBM2XX
There was already charset file present in etc/charsets for IBM2XX character sets but there wasn't definitions for them in Emacs. Add character set and coding system definitions for them. * lisp/language/japanese.el (ibm281, ibm290): * lisp/language/european.el (ibm256, ibm273, ibm274, ibm277) (ibm278, ibm280, ibm284, ibm285, ibm297): * lisp/language/english.el (ibm275): New coding systems. * lisp/international/mule-conf.el (ibm256, ibm273, ibm274) (ibm275, ibm277, ibm278, ibm280, ibm281, ibm284, ibm285, ibm290) (ibm297): New charsets.
-rw-r--r--lisp/international/mule-conf.el109
-rw-r--r--lisp/language/english.el8
-rw-r--r--lisp/language/european.el73
-rw-r--r--lisp/language/japanese.el16
4 files changed, 206 insertions, 0 deletions
diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
index 99449ad359f..dd6d0326d73 100644
--- a/lisp/international/mule-conf.el
+++ b/lisp/international/mule-conf.el
@@ -1075,6 +1075,115 @@
(define-charset-alias 'ebcdic-int 'ibm038)
(define-charset-alias 'cp038 'ibm038)
+(define-charset 'ibm256
+ "Netherlands version of EBCDIC"
+ :short-name "IBM256"
+ :code-space [0 255]
+ :mime-charset 'ibm256
+ :map "IBM256")
+(define-charset-alias 'ebcdic-int1 'ibm256)
+(define-charset-alias 'cp256 'ibm256)
+
+(define-charset 'ibm273
+ "Austrian / German version of EBCDIC"
+ :short-name "IBM273"
+ :code-space [0 255]
+ :mime-charset 'ibm273
+ :map "IBM273")
+(define-charset-alias 'cp273 'ibm273)
+
+(define-charset 'ibm274
+ "Belgian version of EBCDIC"
+ :short-name "IBM274"
+ :code-space [0 255]
+ :mime-charset 'ibm274
+ :map "IBM274")
+(define-charset-alias 'ebcdic-be 'ibm274)
+(define-charset-alias 'cp274 'ibm274)
+
+(define-charset 'ibm275
+ "Brazilian version of EBCDIC"
+ :short-name "IBM275"
+ :code-space [0 255]
+ :mime-charset 'ibm275
+ :map "IBM275")
+(define-charset-alias 'ebcdic-br 'ibm275)
+(define-charset-alias 'cp275 'ibm275)
+
+(define-charset 'ibm277
+ "Danish / Norwegian version of EBCDIC"
+ :short-name "IBM277"
+ :code-space [0 255]
+ :mime-charset 'ibm277
+ :map "IBM277")
+(define-charset-alias 'ebcdic-cp-dk 'ibm277)
+(define-charset-alias 'ebcdic-cp-no 'ibm277)
+(define-charset-alias 'cp277 'ibm277)
+
+(define-charset 'ibm278
+ "Finnish / Swedish version of EBCDIC"
+ :short-name "IBM278"
+ :code-space [0 255]
+ :mime-charset 'ibm278
+ :map "IBM278")
+(define-charset-alias 'ebcdic-cp-fi 'ibm278)
+(define-charset-alias 'ebcdic-cp-se 'ibm278)
+(define-charset-alias 'cp278 'ibm278)
+
+(define-charset 'ibm280
+ "Italian version of EBCDIC"
+ :short-name "IBM280"
+ :code-space [0 255]
+ :mime-charset 'ibm270
+ :map "IBM280")
+(define-charset-alias 'ebcdic-cp-it 'ibm280)
+(define-charset-alias 'cp280 'ibm280)
+
+(define-charset 'ibm281
+ "Japanese-E version of EBCDIC"
+ :short-name "IBM281"
+ :code-space [0 255]
+ :mime-charset 'ibm281
+ :map "IBM281")
+(define-charset-alias 'ebcdic-jp-e 'ibm281)
+(define-charset-alias 'cp281 'ibm281)
+
+(define-charset 'ibm284
+ "Spanish version of EBCDIC"
+ :short-name "IBM284"
+ :code-space [0 255]
+ :mime-charset 'ibm284
+ :map "IBM284")
+(define-charset-alias 'ebcdic-cp-es 'ibm284)
+(define-charset-alias 'cp284 'ibm284)
+
+(define-charset 'ibm285
+ "UK english version of EBCDIC"
+ :short-name "IBM285"
+ :code-space [0 255]
+ :mime-charset 'ibm285
+ :map "IBM285")
+(define-charset-alias 'ebcdic-cp-gb 'ibm285) ;; how this differs from ebcdic-uk?
+(define-charset-alias 'cp285 'ibm285)
+
+(define-charset 'ibm290
+ "Japanese katakana version of EBCDIC"
+ :short-name "IBM290"
+ :code-space [0 255]
+ :mime-charset 'ibm290
+ :map "IBM290")
+(define-charset-alias 'ebcdic-jp-kana 'ibm290)
+(define-charset-alias 'cp290 'ibm290)
+
+(define-charset 'ibm297
+ "French version of EBCDIC"
+ :short-name "IBM297"
+ :code-space [0 255]
+ :mime-charset 'ibm297
+ :map "IBM297")
+(define-charset-alias 'ebcdic-cp-fr 'ibm297)
+(define-charset-alias 'cp297 'ibm297)
+
(define-charset 'ibm1047
;; Says groff:
"IBM1047, `EBCDIC Latin 1/Open Systems' used by OS/390 Unix."
diff --git a/lisp/language/english.el b/lisp/language/english.el
index b7af84c8f75..d5254effa9d 100644
--- a/lisp/language/english.el
+++ b/lisp/language/english.el
@@ -70,6 +70,14 @@ Nothing special is needed to handle English.")
(define-coding-system-alias 'ebcdic-int 'ibm038)
(define-coding-system-alias 'cp038 'ibm038)
+(define-coding-system 'ibm275
+ "Brazilian version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm275)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-br 'ibm275)
+(define-coding-system-alias 'cp275 'ibm275)
+
;; Make "ASCII" an alias of "English" language environment.
(set-language-info-alist
"ASCII" (cdr (assoc "English" language-info-alist)))
diff --git a/lisp/language/european.el b/lisp/language/european.el
index 713a0fdb344..99f062215f6 100644
--- a/lisp/language/european.el
+++ b/lisp/language/european.el
@@ -324,6 +324,79 @@ Latin-9 is sometimes nicknamed `Latin-0'."))
:mime-charset 'windows-1257)
(define-coding-system-alias 'cp1257 'windows-1257)
+(define-coding-system 'ibm256
+ "Netherlands version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm256)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-int1 'ibm256)
+(define-coding-system-alias 'cp256 'ibm256)
+
+(define-coding-system 'ibm273
+ "Austrian / German version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm273)
+ :mnemonic ?*)
+(define-coding-system-alias 'cp273 'ibm273)
+
+(define-coding-system 'ibm274
+ "Belgian version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm274)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-be 'ibm274)
+(define-coding-system-alias 'cp274 'ibm274)
+
+(define-coding-system 'ibm277
+ "Danish / Norwegian version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm277)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-cp-dk 'ibm277)
+(define-coding-system-alias 'ebcdic-cp-no 'ibm277)
+(define-coding-system-alias 'cp277 'ibm277)
+
+(define-coding-system 'ibm278
+ "Finnish / Swedish version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm278)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-cp-fi 'ibm278)
+(define-coding-system-alias 'ebcdic-cp-se 'ibm278)
+(define-coding-system-alias 'cp278 'ibm278)
+
+(define-coding-system 'ibm280
+ "Italian version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm280)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-cp-it 'ibm280)
+(define-coding-system-alias 'cp280 'ibm280)
+
+(define-coding-system 'ibm284
+ "Spanish version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm284)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-cp-es 'ibm284)
+(define-coding-system-alias 'cp284 'ibm284)
+
+(define-coding-system 'ibm285
+ "UK english version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm285)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-cp-gb 'ibm285)
+(define-coding-system-alias 'cp285 'ibm285)
+
+(define-coding-system 'ibm297
+ "French version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm297)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-cp-fr 'ibm297)
+(define-coding-system-alias 'cp297 'ibm297)
+
(define-coding-system 'cp775
"DOS codepage 775 (PC Baltic, MS-DOS Baltic Rim)"
:coding-type 'charset
diff --git a/lisp/language/japanese.el b/lisp/language/japanese.el
index 9a99245dfde..a517b4ea8eb 100644
--- a/lisp/language/japanese.el
+++ b/lisp/language/japanese.el
@@ -188,6 +188,22 @@ eucJP-ms is defined in <http://www.opengroup.or.jp/jvc/cde/appendix.html>."
(define-coding-system-alias 'shift_jis-2004 'japanese-shift-jis-2004)
+(define-coding-system 'ibm281
+ "Japanese-E version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm281)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-jp-e 'ibm281)
+(define-coding-system-alias 'cp281 'ibm281)
+
+(define-coding-system 'ibm290
+ "Japanese katakana version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm290)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-jp-kana 'ibm290)
+(define-coding-system-alias 'cp290 'ibm290)
+
(set-language-info-alist
"Japanese" '((setup-function . setup-japanese-environment-internal)
(exit-function . use-default-char-width-table)