summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2018-12-04 20:27:20 +0200
committerEli Zaretskii <eliz@gnu.org>2018-12-04 20:27:20 +0200
commit6d898918980be4cb29a182ecde7f8e1f95a08462 (patch)
tree9ea7ecd30d2da56222015413a85433d9aed53e29
parent8e28aee6647ec23e8b0e45f78de2f60cb416b106 (diff)
downloademacs-6d898918980be4cb29a182ecde7f8e1f95a08462.tar.gz
Support IBM038 (a.k.a. "EBCDIC-INT") encoding
* lisp/international/mule-conf.el (ibm038): New charset. (ebcdic-int, cp038): Alias charsets of ibm038. * lisp/language/english.el (ibm038): New coding-system. (ebcdic-int, cp038): Alias coding-systems of ibm038. (Bug#33612) * etc/NEWS: Announce the new coding system ibm038.
-rw-r--r--etc/NEWS5
-rw-r--r--lisp/international/mule-conf.el9
-rw-r--r--lisp/language/english.el8
3 files changed, 22 insertions, 0 deletions
diff --git a/etc/NEWS b/etc/NEWS
index 206f0fc1e6e..60cba9ed469 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1307,6 +1307,11 @@ a multibyte string even if its second argument is an ASCII character.
** '(format "%d" X)' no longer mishandles a floating-point number X that
does not fit in a machine integer.
+---
+** New coding-system 'ibm038'.
+This is the International EBCDIC encoding, also available as aliases
+'ebcdic-int' and 'cp038'.
+
+++
** In the DST slot, 'encode-time' and 'parse-time-string' now return -1
if it is not known whether daylight saving time is in effect.
diff --git a/lisp/international/mule-conf.el b/lisp/international/mule-conf.el
index b08150a1499..02323ea479e 100644
--- a/lisp/international/mule-conf.el
+++ b/lisp/international/mule-conf.el
@@ -1066,6 +1066,15 @@
:mime-charset 'ebcdic-uk
:map "EBCDICUK")
+(define-charset 'ibm038
+ "International version of EBCDIC"
+ :short-name "IBM038"
+ :code-space [0 255]
+ :mime-charset 'ibm038
+ :map "IBM038")
+(define-charset-alias 'ebcdic-int 'ibm038)
+(define-charset-alias 'cp038 'ibm038)
+
(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 72a85eb1088..d3fdbfed200 100644
--- a/lisp/language/english.el
+++ b/lisp/language/english.el
@@ -62,6 +62,14 @@ Nothing special is needed to handle English.")
:mnemonic ?*)
(define-coding-system-alias 'cp1047 'ibm1047)
+(define-coding-system 'ibm038
+ "International version of EBCDIC"
+ :coding-type 'charset
+ :charset-list '(ibm038)
+ :mnemonic ?*)
+(define-coding-system-alias 'ebcdic-int 'ibm038)
+(define-coding-system-alias 'cp038 'ibm038)
+
;; Make "ASCII" an alias of "English" language environment.
(set-language-info-alist
"ASCII" (cdr (assoc "English" language-info-alist)))