changeset 4299:f4c3ffe60a4f

[xemacs-hg @ 2007-12-01 14:24:46 by aidan] Switch away from ISO 2022 for the ISO-8859 character sets.
author aidan
date Sat, 01 Dec 2007 14:24:52 +0000
parents 27150c937a22
children e8e7abc2ebd7
files lisp/ChangeLog lisp/mule/cyrillic.el lisp/mule/greek.el lisp/mule/hebrew.el lisp/mule/latin.el lisp/mule/mule-coding.el
diffstat 6 files changed, 592 insertions(+), 194 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Sat Dec 01 13:40:07 2007 +0000
+++ b/lisp/ChangeLog	Sat Dec 01 14:24:52 2007 +0000
@@ -1,3 +1,27 @@
+2007-12-01  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule/mule-coding.el (iso-8859-1):
+	* mule/latin.el (iso-8859-2):
+	* mule/latin.el (iso-8859-3):
+	* mule/latin.el (iso-8859-4):
+	* mule/cyrillic.el (iso-8859-5):
+	* mule/greek.el (iso-8859-7):
+	* mule/hebrew.el (iso-8859-8):
+	* mule/latin.el (iso-8859-9):
+	* mule/latin.el (iso-8859-15):
+	* mule/latin.el (iso-8859-16):
+	Move the various ISO 8859 coding systems away from the ISO 2022
+	implementation to a #'make-8-bit-coding-system implementation;
+	this has the handy side-effect of adressing most of the
+	unification problems the old implementation had.
+
+	Add aliases for GNU compatibility.
+	  
+	Still no warning on the imminent corruption of data, though. I'm
+	working on it.
+	* mule/greek.el (windows-1253):
+	Unconditionally provide this coding system.
+
 2007-12-01  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* bytecomp.el (byte-compile-output-file-form):
--- a/lisp/mule/cyrillic.el	Sat Dec 01 13:40:07 2007 +0000
+++ b/lisp/mule/cyrillic.el	Sat Dec 01 14:24:52 2007 +0000
@@ -106,14 +106,107 @@
                      (standard-syntax-table))
 
 ;; And create the coding system.
-(make-coding-system
- 'iso-8859-5 'iso2022
+(make-8-bit-coding-system
+ 'iso-8859-5
+ '((#xA1 ?\u0401) ;; CYRILLIC CAPITAL LETTER IO
+   (#xA2 ?\u0402) ;; CYRILLIC CAPITAL LETTER DJE
+   (#xA3 ?\u0403) ;; CYRILLIC CAPITAL LETTER GJE
+   (#xA4 ?\u0404) ;; CYRILLIC CAPITAL LETTER UKRAINIAN IE
+   (#xA5 ?\u0405) ;; CYRILLIC CAPITAL LETTER DZE
+   (#xA6 ?\u0406) ;; CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
+   (#xA7 ?\u0407) ;; CYRILLIC CAPITAL LETTER YI
+   (#xA8 ?\u0408) ;; CYRILLIC CAPITAL LETTER JE
+   (#xA9 ?\u0409) ;; CYRILLIC CAPITAL LETTER LJE
+   (#xAA ?\u040A) ;; CYRILLIC CAPITAL LETTER NJE
+   (#xAB ?\u040B) ;; CYRILLIC CAPITAL LETTER TSHE
+   (#xAC ?\u040C) ;; CYRILLIC CAPITAL LETTER KJE
+   (#xAE ?\u040E) ;; CYRILLIC CAPITAL LETTER SHORT U
+   (#xAF ?\u040F) ;; CYRILLIC CAPITAL LETTER DZHE
+   (#xB0 ?\u0410) ;; CYRILLIC CAPITAL LETTER A
+   (#xB1 ?\u0411) ;; CYRILLIC CAPITAL LETTER BE
+   (#xB2 ?\u0412) ;; CYRILLIC CAPITAL LETTER VE
+   (#xB3 ?\u0413) ;; CYRILLIC CAPITAL LETTER GHE
+   (#xB4 ?\u0414) ;; CYRILLIC CAPITAL LETTER DE
+   (#xB5 ?\u0415) ;; CYRILLIC CAPITAL LETTER IE
+   (#xB6 ?\u0416) ;; CYRILLIC CAPITAL LETTER ZHE
+   (#xB7 ?\u0417) ;; CYRILLIC CAPITAL LETTER ZE
+   (#xB8 ?\u0418) ;; CYRILLIC CAPITAL LETTER I
+   (#xB9 ?\u0419) ;; CYRILLIC CAPITAL LETTER SHORT I
+   (#xBA ?\u041A) ;; CYRILLIC CAPITAL LETTER KA
+   (#xBB ?\u041B) ;; CYRILLIC CAPITAL LETTER EL
+   (#xBC ?\u041C) ;; CYRILLIC CAPITAL LETTER EM
+   (#xBD ?\u041D) ;; CYRILLIC CAPITAL LETTER EN
+   (#xBE ?\u041E) ;; CYRILLIC CAPITAL LETTER O
+   (#xBF ?\u041F) ;; CYRILLIC CAPITAL LETTER PE
+   (#xC0 ?\u0420) ;; CYRILLIC CAPITAL LETTER ER
+   (#xC1 ?\u0421) ;; CYRILLIC CAPITAL LETTER ES
+   (#xC2 ?\u0422) ;; CYRILLIC CAPITAL LETTER TE
+   (#xC3 ?\u0423) ;; CYRILLIC CAPITAL LETTER U
+   (#xC4 ?\u0424) ;; CYRILLIC CAPITAL LETTER EF
+   (#xC5 ?\u0425) ;; CYRILLIC CAPITAL LETTER HA
+   (#xC6 ?\u0426) ;; CYRILLIC CAPITAL LETTER TSE
+   (#xC7 ?\u0427) ;; CYRILLIC CAPITAL LETTER CHE
+   (#xC8 ?\u0428) ;; CYRILLIC CAPITAL LETTER SHA
+   (#xC9 ?\u0429) ;; CYRILLIC CAPITAL LETTER SHCHA
+   (#xCA ?\u042A) ;; CYRILLIC CAPITAL LETTER HARD SIGN
+   (#xCB ?\u042B) ;; CYRILLIC CAPITAL LETTER YERU
+   (#xCC ?\u042C) ;; CYRILLIC CAPITAL LETTER SOFT SIGN
+   (#xCD ?\u042D) ;; CYRILLIC CAPITAL LETTER E
+   (#xCE ?\u042E) ;; CYRILLIC CAPITAL LETTER YU
+   (#xCF ?\u042F) ;; CYRILLIC CAPITAL LETTER YA
+   (#xD0 ?\u0430) ;; CYRILLIC SMALL LETTER A
+   (#xD1 ?\u0431) ;; CYRILLIC SMALL LETTER BE
+   (#xD2 ?\u0432) ;; CYRILLIC SMALL LETTER VE
+   (#xD3 ?\u0433) ;; CYRILLIC SMALL LETTER GHE
+   (#xD4 ?\u0434) ;; CYRILLIC SMALL LETTER DE
+   (#xD5 ?\u0435) ;; CYRILLIC SMALL LETTER IE
+   (#xD6 ?\u0436) ;; CYRILLIC SMALL LETTER ZHE
+   (#xD7 ?\u0437) ;; CYRILLIC SMALL LETTER ZE
+   (#xD8 ?\u0438) ;; CYRILLIC SMALL LETTER I
+   (#xD9 ?\u0439) ;; CYRILLIC SMALL LETTER SHORT I
+   (#xDA ?\u043A) ;; CYRILLIC SMALL LETTER KA
+   (#xDB ?\u043B) ;; CYRILLIC SMALL LETTER EL
+   (#xDC ?\u043C) ;; CYRILLIC SMALL LETTER EM
+   (#xDD ?\u043D) ;; CYRILLIC SMALL LETTER EN
+   (#xDE ?\u043E) ;; CYRILLIC SMALL LETTER O
+   (#xDF ?\u043F) ;; CYRILLIC SMALL LETTER PE
+   (#xE0 ?\u0440) ;; CYRILLIC SMALL LETTER ER
+   (#xE1 ?\u0441) ;; CYRILLIC SMALL LETTER ES
+   (#xE2 ?\u0442) ;; CYRILLIC SMALL LETTER TE
+   (#xE3 ?\u0443) ;; CYRILLIC SMALL LETTER U
+   (#xE4 ?\u0444) ;; CYRILLIC SMALL LETTER EF
+   (#xE5 ?\u0445) ;; CYRILLIC SMALL LETTER HA
+   (#xE6 ?\u0446) ;; CYRILLIC SMALL LETTER TSE
+   (#xE7 ?\u0447) ;; CYRILLIC SMALL LETTER CHE
+   (#xE8 ?\u0448) ;; CYRILLIC SMALL LETTER SHA
+   (#xE9 ?\u0449) ;; CYRILLIC SMALL LETTER SHCHA
+   (#xEA ?\u044A) ;; CYRILLIC SMALL LETTER HARD SIGN
+   (#xEB ?\u044B) ;; CYRILLIC SMALL LETTER YERU
+   (#xEC ?\u044C) ;; CYRILLIC SMALL LETTER SOFT SIGN
+   (#xED ?\u044D) ;; CYRILLIC SMALL LETTER E
+   (#xEE ?\u044E) ;; CYRILLIC SMALL LETTER YU
+   (#xEF ?\u044F) ;; CYRILLIC SMALL LETTER YA
+   (#xF0 ?\u2116) ;; NUMERO SIGN
+   (#xF1 ?\u0451) ;; CYRILLIC SMALL LETTER IO
+   (#xF2 ?\u0452) ;; CYRILLIC SMALL LETTER DJE
+   (#xF3 ?\u0453) ;; CYRILLIC SMALL LETTER GJE
+   (#xF4 ?\u0454) ;; CYRILLIC SMALL LETTER UKRAINIAN IE
+   (#xF5 ?\u0455) ;; CYRILLIC SMALL LETTER DZE
+   (#xF6 ?\u0456) ;; CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
+   (#xF7 ?\u0457) ;; CYRILLIC SMALL LETTER YI
+   (#xF8 ?\u0458) ;; CYRILLIC SMALL LETTER JE
+   (#xF9 ?\u0459) ;; CYRILLIC SMALL LETTER LJE
+   (#xFA ?\u045A) ;; CYRILLIC SMALL LETTER NJE
+   (#xFB ?\u045B) ;; CYRILLIC SMALL LETTER TSHE
+   (#xFC ?\u045C) ;; CYRILLIC SMALL LETTER KJE
+   (#xFD ?\u00A7) ;; SECTION SIGN
+   (#xFE ?\u045E) ;; CYRILLIC SMALL LETTER SHORT U
+   (#xFF ?\u045F)) ;; CYRILLIC SMALL LETTER DZHE
  "ISO-8859-5 (Cyrillic)"
- '(charset-g0 ascii
-   charset-g1 cyrillic-iso8859-5
-   charset-g2 t
-   charset-g3 t
-   mnemonic "ISO8/Cyr"))
+ '(mnemonic "ISO8/Cyr"
+   documentation "The ISO standard for encoding Cyrillic. Not used in practice.
+See `koi8-r' and `windows-1250'.  "
+   aliases (cyrillic-iso-8bit)))
 
 ;; Provide this locale; but don't allow it to be picked up from the Unix
 ;; locale (it has no locale entry in the alist), we leave that to Russian.
--- a/lisp/mule/greek.el	Sat Dec 01 13:40:07 2007 +0000
+++ b/lisp/mule/greek.el	Sat Dec 01 14:24:52 2007 +0000
@@ -118,138 +118,210 @@
       (string (char-syntax (make-char 'latin-iso8859-1 latin-1)))
       syntax-table))
 
-(make-coding-system
- 'iso-8859-7 'iso2022 "ISO-8859-7 (Greek)"
- '(charset-g0 ascii
-   charset-g1 greek-iso8859-7
-   charset-g2 t
-   charset-g3 t
-   mnemonic "Grk"))
+(make-8-bit-coding-system
+ 'iso-8859-7
+ '((#xA1 ?\u2018) ;; LEFT SINGLE QUOTATION MARK
+   (#xA2 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK
+   (#xA4 ?\u20AC) ;; EURO SIGN
+   (#xA5 ?\u20AF) ;; DRACHMA SIGN
+   (#xAA ?\u037A) ;; GREEK YPOGEGRAMMENI
+   (#xAF ?\u2015) ;; HORIZONTAL BAR
+   (#xB4 ?\u0384) ;; GREEK TONOS
+   (#xB5 ?\u0385) ;; GREEK DIALYTIKA TONOS
+   (#xB6 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS
+   (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS
+   (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS
+   (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS
+   (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS
+   (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS
+   (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS
+   (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+   (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA
+   (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA
+   (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA
+   (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA
+   (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON
+   (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA
+   (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA
+   (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA
+   (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA
+   (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA
+   (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA
+   (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU
+   (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU
+   (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI
+   (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON
+   (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI
+   (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO
+   (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA
+   (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU
+   (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON
+   (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI
+   (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI
+   (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI
+   (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA
+   (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+   (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+   (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS
+   (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS
+   (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS
+   (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS
+   (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+   (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA
+   (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA
+   (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA
+   (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA
+   (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON
+   (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA
+   (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA
+   (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA
+   (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA
+   (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA
+   (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA
+   (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU
+   (#xED ?\u03BD) ;; GREEK SMALL LETTER NU
+   (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI
+   (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON
+   (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI
+   (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO
+   (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA
+   (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA
+   (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU
+   (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON
+   (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI
+   (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI
+   (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI
+   (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA
+   (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA
+   (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+   (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS
+   (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS
+   (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS
+ "ISO-8859-7 (Greek)"
+ '(mnemonic "Grk"
+   aliases (greek-iso-8bit)))
 
-;; Windows 1253 may be provided automatically on Windows, in which case
-;; we don't need to provide it.
-(unless (find-coding-system 'windows-1253) 
-  (make-8-bit-coding-system 
-   'windows-1253
-   '((#x80 ?\u20AC) ;; EURO SIGN
-     (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK
-     (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK
-     (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK
-     (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS
-     (#x86 ?\u2020) ;; DAGGER
-     (#x87 ?\u2021) ;; DOUBLE DAGGER
-     (#x89 ?\u2030) ;; PER MILLE SIGN
-     (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
-     (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK
-     (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK
-     (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK
-     (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK
-     (#x95 ?\u2022) ;; BULLET
-     (#x96 ?\u2013) ;; EN DASH
-     (#x97 ?\u2014) ;; EM DASH
-     (#x99 ?\u2122) ;; TRADE MARK SIGN
-     (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
-     (#xA0 ?\u00A0) ;; NO-BREAK SPACE
-     (#xA1 ?\u0385) ;; GREEK DIALYTIKA TONOS
-     (#xA2 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS
-     (#xA3 ?\u00A3) ;; POUND SIGN
-     (#xA4 ?\u00A4) ;; CURRENCY SIGN
-     (#xA5 ?\u00A5) ;; YEN SIGN
-     (#xA6 ?\u00A6) ;; BROKEN BAR
-     (#xA7 ?\u00A7) ;; SECTION SIGN
-     (#xA8 ?\u00A8) ;; DIAERESIS
-     (#xA9 ?\u00A9) ;; COPYRIGHT SIGN
-     (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
-     (#xAC ?\u00AC) ;; NOT SIGN
-     (#xAD ?\u00AD) ;; SOFT HYPHEN
-     (#xAE ?\u00AE) ;; REGISTERED SIGN
-     (#xAF ?\u2015) ;; HORIZONTAL BAR
-     (#xB0 ?\u00B0) ;; DEGREE SIGN
-     (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN
-     (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO
-     (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE
-     (#xB4 ?\u0384) ;; GREEK TONOS
-     (#xB5 ?\u00B5) ;; MICRO SIGN
-     (#xB6 ?\u00B6) ;; PILCROW SIGN
-     (#xB7 ?\u00B7) ;; MIDDLE DOT
-     (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS
-     (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS
-     (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS
-     (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
-     (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS
-     (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF
-     (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS
-     (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS
-     (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
-     (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA
-     (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA
-     (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA
-     (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA
-     (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON
-     (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA
-     (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA
-     (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA
-     (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA
-     (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA
-     (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA
-     (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU
-     (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU
-     (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI
-     (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON
-     (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI
-     (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO
-     (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA
-     (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU
-     (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON
-     (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI
-     (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI
-     (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI
-     (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA
-     (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
-     (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
-     (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS
-     (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS
-     (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS
-     (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS
-     (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
-     (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA
-     (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA
-     (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA
-     (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA
-     (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON
-     (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA
-     (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA
-     (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA
-     (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA
-     (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA
-     (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA
-     (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU
-     (#xED ?\u03BD) ;; GREEK SMALL LETTER NU
-     (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI
-     (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON
-     (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI
-     (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO
-     (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA
-     (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA
-     (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU
-     (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON
-     (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI
-     (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI
-     (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI
-     (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA
-     (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA
-     (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA
-     (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS
-     (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS
-     (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS
-   "Microsoft's Code Page 1253, for monotonic Greek.  "
-   '(mnemonic "GrkW"
-     documentation
-     "This ASCII-compatible encoding is slightly incompatibile with
+(make-8-bit-coding-system 
+ 'windows-1253
+ '((#x80 ?\u20AC) ;; EURO SIGN
+   (#x82 ?\u201A) ;; SINGLE LOW-9 QUOTATION MARK
+   (#x83 ?\u0192) ;; LATIN SMALL LETTER F WITH HOOK
+   (#x84 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK
+   (#x85 ?\u2026) ;; HORIZONTAL ELLIPSIS
+   (#x86 ?\u2020) ;; DAGGER
+   (#x87 ?\u2021) ;; DOUBLE DAGGER
+   (#x89 ?\u2030) ;; PER MILLE SIGN
+   (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+   (#x91 ?\u2018) ;; LEFT SINGLE QUOTATION MARK
+   (#x92 ?\u2019) ;; RIGHT SINGLE QUOTATION MARK
+   (#x93 ?\u201C) ;; LEFT DOUBLE QUOTATION MARK
+   (#x94 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK
+   (#x95 ?\u2022) ;; BULLET
+   (#x96 ?\u2013) ;; EN DASH
+   (#x97 ?\u2014) ;; EM DASH
+   (#x99 ?\u2122) ;; TRADE MARK SIGN
+   (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+   (#xA0 ?\u00A0) ;; NO-BREAK SPACE
+   (#xA1 ?\u0385) ;; GREEK DIALYTIKA TONOS
+   (#xA2 ?\u0386) ;; GREEK CAPITAL LETTER ALPHA WITH TONOS
+   (#xA3 ?\u00A3) ;; POUND SIGN
+   (#xA4 ?\u00A4) ;; CURRENCY SIGN
+   (#xA5 ?\u00A5) ;; YEN SIGN
+   (#xA6 ?\u00A6) ;; BROKEN BAR
+   (#xA7 ?\u00A7) ;; SECTION SIGN
+   (#xA8 ?\u00A8) ;; DIAERESIS
+   (#xA9 ?\u00A9) ;; COPYRIGHT SIGN
+   (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+   (#xAC ?\u00AC) ;; NOT SIGN
+   (#xAD ?\u00AD) ;; SOFT HYPHEN
+   (#xAE ?\u00AE) ;; REGISTERED SIGN
+   (#xAF ?\u2015) ;; HORIZONTAL BAR
+   (#xB0 ?\u00B0) ;; DEGREE SIGN
+   (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN
+   (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO
+   (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE
+   (#xB4 ?\u0384) ;; GREEK TONOS
+   (#xB5 ?\u00B5) ;; MICRO SIGN
+   (#xB6 ?\u00B6) ;; PILCROW SIGN
+   (#xB7 ?\u00B7) ;; MIDDLE DOT
+   (#xB8 ?\u0388) ;; GREEK CAPITAL LETTER EPSILON WITH TONOS
+   (#xB9 ?\u0389) ;; GREEK CAPITAL LETTER ETA WITH TONOS
+   (#xBA ?\u038A) ;; GREEK CAPITAL LETTER IOTA WITH TONOS
+   (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+   (#xBC ?\u038C) ;; GREEK CAPITAL LETTER OMICRON WITH TONOS
+   (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF
+   (#xBE ?\u038E) ;; GREEK CAPITAL LETTER UPSILON WITH TONOS
+   (#xBF ?\u038F) ;; GREEK CAPITAL LETTER OMEGA WITH TONOS
+   (#xC0 ?\u0390) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
+   (#xC1 ?\u0391) ;; GREEK CAPITAL LETTER ALPHA
+   (#xC2 ?\u0392) ;; GREEK CAPITAL LETTER BETA
+   (#xC3 ?\u0393) ;; GREEK CAPITAL LETTER GAMMA
+   (#xC4 ?\u0394) ;; GREEK CAPITAL LETTER DELTA
+   (#xC5 ?\u0395) ;; GREEK CAPITAL LETTER EPSILON
+   (#xC6 ?\u0396) ;; GREEK CAPITAL LETTER ZETA
+   (#xC7 ?\u0397) ;; GREEK CAPITAL LETTER ETA
+   (#xC8 ?\u0398) ;; GREEK CAPITAL LETTER THETA
+   (#xC9 ?\u0399) ;; GREEK CAPITAL LETTER IOTA
+   (#xCA ?\u039A) ;; GREEK CAPITAL LETTER KAPPA
+   (#xCB ?\u039B) ;; GREEK CAPITAL LETTER LAMDA
+   (#xCC ?\u039C) ;; GREEK CAPITAL LETTER MU
+   (#xCD ?\u039D) ;; GREEK CAPITAL LETTER NU
+   (#xCE ?\u039E) ;; GREEK CAPITAL LETTER XI
+   (#xCF ?\u039F) ;; GREEK CAPITAL LETTER OMICRON
+   (#xD0 ?\u03A0) ;; GREEK CAPITAL LETTER PI
+   (#xD1 ?\u03A1) ;; GREEK CAPITAL LETTER RHO
+   (#xD3 ?\u03A3) ;; GREEK CAPITAL LETTER SIGMA
+   (#xD4 ?\u03A4) ;; GREEK CAPITAL LETTER TAU
+   (#xD5 ?\u03A5) ;; GREEK CAPITAL LETTER UPSILON
+   (#xD6 ?\u03A6) ;; GREEK CAPITAL LETTER PHI
+   (#xD7 ?\u03A7) ;; GREEK CAPITAL LETTER CHI
+   (#xD8 ?\u03A8) ;; GREEK CAPITAL LETTER PSI
+   (#xD9 ?\u03A9) ;; GREEK CAPITAL LETTER OMEGA
+   (#xDA ?\u03AA) ;; GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
+   (#xDB ?\u03AB) ;; GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
+   (#xDC ?\u03AC) ;; GREEK SMALL LETTER ALPHA WITH TONOS
+   (#xDD ?\u03AD) ;; GREEK SMALL LETTER EPSILON WITH TONOS
+   (#xDE ?\u03AE) ;; GREEK SMALL LETTER ETA WITH TONOS
+   (#xDF ?\u03AF) ;; GREEK SMALL LETTER IOTA WITH TONOS
+   (#xE0 ?\u03B0) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
+   (#xE1 ?\u03B1) ;; GREEK SMALL LETTER ALPHA
+   (#xE2 ?\u03B2) ;; GREEK SMALL LETTER BETA
+   (#xE3 ?\u03B3) ;; GREEK SMALL LETTER GAMMA
+   (#xE4 ?\u03B4) ;; GREEK SMALL LETTER DELTA
+   (#xE5 ?\u03B5) ;; GREEK SMALL LETTER EPSILON
+   (#xE6 ?\u03B6) ;; GREEK SMALL LETTER ZETA
+   (#xE7 ?\u03B7) ;; GREEK SMALL LETTER ETA
+   (#xE8 ?\u03B8) ;; GREEK SMALL LETTER THETA
+   (#xE9 ?\u03B9) ;; GREEK SMALL LETTER IOTA
+   (#xEA ?\u03BA) ;; GREEK SMALL LETTER KAPPA
+   (#xEB ?\u03BB) ;; GREEK SMALL LETTER LAMDA
+   (#xEC ?\u03BC) ;; GREEK SMALL LETTER MU
+   (#xED ?\u03BD) ;; GREEK SMALL LETTER NU
+   (#xEE ?\u03BE) ;; GREEK SMALL LETTER XI
+   (#xEF ?\u03BF) ;; GREEK SMALL LETTER OMICRON
+   (#xF0 ?\u03C0) ;; GREEK SMALL LETTER PI
+   (#xF1 ?\u03C1) ;; GREEK SMALL LETTER RHO
+   (#xF2 ?\u03C2) ;; GREEK SMALL LETTER FINAL SIGMA
+   (#xF3 ?\u03C3) ;; GREEK SMALL LETTER SIGMA
+   (#xF4 ?\u03C4) ;; GREEK SMALL LETTER TAU
+   (#xF5 ?\u03C5) ;; GREEK SMALL LETTER UPSILON
+   (#xF6 ?\u03C6) ;; GREEK SMALL LETTER PHI
+   (#xF7 ?\u03C7) ;; GREEK SMALL LETTER CHI
+   (#xF8 ?\u03C8) ;; GREEK SMALL LETTER PSI
+   (#xF9 ?\u03C9) ;; GREEK SMALL LETTER OMEGA
+   (#xFA ?\u03CA) ;; GREEK SMALL LETTER IOTA WITH DIALYTIKA
+   (#xFB ?\u03CB) ;; GREEK SMALL LETTER UPSILON WITH DIALYTIKA
+   (#xFC ?\u03CC) ;; GREEK SMALL LETTER OMICRON WITH TONOS
+   (#xFD ?\u03CD) ;; GREEK SMALL LETTER UPSILON WITH TONOS
+   (#xFE ?\u03CE)) ;; GREEK SMALL LETTER OMEGA WITH TONOS
+ "Microsoft's Code Page 1253, for monotonic Greek.  "
+ '(mnemonic "GrkW"
+   documentation
+   "This ASCII-compatible encoding is slightly incompatibile with
 ISO-8859-7; it provides several widely-used punctuation marks in the C1
 ISO-2022 area, which makes it incompatbile with the latter standard, but
 that latter standard is not used in Greece,  "
-     aliases (cp1253))))
+   aliases (cp1253)))
 
 (set-language-info-alist
  "Greek" '((charset greek-iso8859-7)
--- a/lisp/mule/hebrew.el	Sat Dec 01 13:40:07 2007 +0000
+++ b/lisp/mule/hebrew.el	Sat Dec 01 14:24:52 2007 +0000
@@ -48,16 +48,42 @@
 (modify-syntax-entry (make-char 'hebrew-iso8859-8 32) "w") ; no-break space
 
 
-(make-coding-system
- 'iso-8859-8 'iso2022
+(make-8-bit-coding-system
+ 'iso-8859-8
+ '((#xAA ?\u00D7) ;; MULTIPLICATION SIGN
+   (#xBA ?\u00F7) ;; DIVISION SIGN
+   (#xDF ?\u2017) ;; DOUBLE LOW LINE
+   (#xE0 ?\u05D0) ;; HEBREW LETTER ALEF
+   (#xE1 ?\u05D1) ;; HEBREW LETTER BET
+   (#xE2 ?\u05D2) ;; HEBREW LETTER GIMEL
+   (#xE3 ?\u05D3) ;; HEBREW LETTER DALET
+   (#xE4 ?\u05D4) ;; HEBREW LETTER HE
+   (#xE5 ?\u05D5) ;; HEBREW LETTER VAV
+   (#xE6 ?\u05D6) ;; HEBREW LETTER ZAYIN
+   (#xE7 ?\u05D7) ;; HEBREW LETTER HET
+   (#xE8 ?\u05D8) ;; HEBREW LETTER TET
+   (#xE9 ?\u05D9) ;; HEBREW LETTER YOD
+   (#xEA ?\u05DA) ;; HEBREW LETTER FINAL KAF
+   (#xEB ?\u05DB) ;; HEBREW LETTER KAF
+   (#xEC ?\u05DC) ;; HEBREW LETTER LAMED
+   (#xED ?\u05DD) ;; HEBREW LETTER FINAL MEM
+   (#xEE ?\u05DE) ;; HEBREW LETTER MEM
+   (#xEF ?\u05DF) ;; HEBREW LETTER FINAL NUN
+   (#xF0 ?\u05E0) ;; HEBREW LETTER NUN
+   (#xF1 ?\u05E1) ;; HEBREW LETTER SAMEKH
+   (#xF2 ?\u05E2) ;; HEBREW LETTER AYIN
+   (#xF3 ?\u05E3) ;; HEBREW LETTER FINAL PE
+   (#xF4 ?\u05E4) ;; HEBREW LETTER PE
+   (#xF5 ?\u05E5) ;; HEBREW LETTER FINAL TSADI
+   (#xF6 ?\u05E6) ;; HEBREW LETTER TSADI
+   (#xF7 ?\u05E7) ;; HEBREW LETTER QOF
+   (#xF8 ?\u05E8) ;; HEBREW LETTER RESH
+   (#xF9 ?\u05E9) ;; HEBREW LETTER SHIN
+   (#xFA ?\u05EA) ;; HEBREW LETTER TAV
+   (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK
+   (#xFE ?\u200F)) ;; RIGHT-TO-LEFT MARK
  "ISO-8859-8 (Hebrew)"
- '(charset-g0 ascii
-   charset-g1 hebrew-iso8859-8
-   charset-g2 t
-   charset-g3 t
-   no-iso6429 t
-   mnemonic "MIME/Hbrw"
-   ))
+ '(mnemonic "MIME/Hbrw"))
 
 (make-coding-system
  'ctext-hebrew 'iso2022
--- a/lisp/mule/latin.el	Sat Dec 01 13:40:07 2007 +0000
+++ b/lisp/mule/latin.el	Sat Dec 01 14:24:52 2007 +0000
@@ -124,14 +124,70 @@
    (#xDD #xFD) ;; Y WITH ACUTE
    (#xDE #xFE))) ;; T WITH CEDILLA
 
-(make-coding-system
- 'iso-8859-2 'iso2022 "ISO-8859-2 (Latin-2)"
- '(charset-g0 ascii
-   charset-g1 latin-iso8859-2
-   charset-g2 t
-   charset-g3 t
-   mnemonic "MIME/Ltn-2"))
-
+(make-8-bit-coding-system
+ 'iso-8859-2
+ '((#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
+   (#xA2 ?\u02D8) ;; BREVE
+   (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE
+   (#xA5 ?\u013D) ;; LATIN CAPITAL LETTER L WITH CARON
+   (#xA6 ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE
+   (#xA9 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON
+   (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+   (#xAB ?\u0164) ;; LATIN CAPITAL LETTER T WITH CARON
+   (#xAC ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE
+   (#xAE ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+   (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
+   (#xB1 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK
+   (#xB2 ?\u02DB) ;; OGONEK
+   (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE
+   (#xB5 ?\u013E) ;; LATIN SMALL LETTER L WITH CARON
+   (#xB6 ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE
+   (#xB7 ?\u02C7) ;; CARON
+   (#xB9 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON
+   (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA
+   (#xBB ?\u0165) ;; LATIN SMALL LETTER T WITH CARON
+   (#xBC ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE
+   (#xBD ?\u02DD) ;; DOUBLE ACUTE ACCENT
+   (#xBE ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON
+   (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
+   (#xC0 ?\u0154) ;; LATIN CAPITAL LETTER R WITH ACUTE
+   (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE
+   (#xC5 ?\u0139) ;; LATIN CAPITAL LETTER L WITH ACUTE
+   (#xC6 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE
+   (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON
+   (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
+   (#xCC ?\u011A) ;; LATIN CAPITAL LETTER E WITH CARON
+   (#xCF ?\u010E) ;; LATIN CAPITAL LETTER D WITH CARON
+   (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE
+   (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE
+   (#xD2 ?\u0147) ;; LATIN CAPITAL LETTER N WITH CARON
+   (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+   (#xD8 ?\u0158) ;; LATIN CAPITAL LETTER R WITH CARON
+   (#xD9 ?\u016E) ;; LATIN CAPITAL LETTER U WITH RING ABOVE
+   (#xDB ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+   (#xDE ?\u0162) ;; LATIN CAPITAL LETTER T WITH CEDILLA
+   (#xE0 ?\u0155) ;; LATIN SMALL LETTER R WITH ACUTE
+   (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE
+   (#xE5 ?\u013A) ;; LATIN SMALL LETTER L WITH ACUTE
+   (#xE6 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE
+   (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON
+   (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK
+   (#xEC ?\u011B) ;; LATIN SMALL LETTER E WITH CARON
+   (#xEF ?\u010F) ;; LATIN SMALL LETTER D WITH CARON
+   (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE
+   (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE
+   (#xF2 ?\u0148) ;; LATIN SMALL LETTER N WITH CARON
+   (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE
+   (#xF8 ?\u0159) ;; LATIN SMALL LETTER R WITH CARON
+   (#xF9 ?\u016F) ;; LATIN SMALL LETTER U WITH RING ABOVE
+   (#xFB ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE
+   (#xFE ?\u0163) ;; LATIN SMALL LETTER T WITH CEDILLA
+   (#xFF ?\u02D9));; DOT ABOVE
+ "ISO-8859-2 (Latin-2) for Central Europe.
+See also `windows-1250', and `iso-8859-1', which is compatible with Latin 2
+when used to write German (or English, of course).  "
+ '(mnemonic "Latin 2"
+   aliases (iso-latin-2 latin-2)))
 
 ;; 
 ;; Latin-3 (ISO-8859-3). Esperanto, Maltese and Turkish. Obsolescent.
@@ -202,13 +258,40 @@
    (#xDD #xFD) ;; U WITH BREVE
    (#xDE #xFE))) ;; S WITH CIRCUMFLEX
 
-(make-coding-system
- 'iso-8859-3 'iso2022 "ISO-8859-3 (Latin-3)"
- '(charset-g0 ascii
-   charset-g1 latin-iso8859-3
-   charset-g2 t
-   charset-g3 t
-   mnemonic "MIME/Ltn-3"))
+(make-8-bit-coding-system
+ 'iso-8859-3
+ '((#xA1 ?\u0126) ;; LATIN CAPITAL LETTER H WITH STROKE
+   (#xA2 ?\u02D8) ;; BREVE
+   (#xA6 ?\u0124) ;; LATIN CAPITAL LETTER H WITH CIRCUMFLEX
+   (#xA9 ?\u0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
+   (#xAA ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+   (#xAB ?\u011E) ;; LATIN CAPITAL LETTER G WITH BREVE
+   (#xAC ?\u0134) ;; LATIN CAPITAL LETTER J WITH CIRCUMFLEX
+   (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
+   (#xB1 ?\u0127) ;; LATIN SMALL LETTER H WITH STROKE
+   (#xB6 ?\u0125) ;; LATIN SMALL LETTER H WITH CIRCUMFLEX
+   (#xB9 ?\u0131) ;; LATIN SMALL LETTER DOTLESS I
+   (#xBA ?\u015F) ;; LATIN SMALL LETTER S WITH CEDILLA
+   (#xBB ?\u011F) ;; LATIN SMALL LETTER G WITH BREVE
+   (#xBC ?\u0135) ;; LATIN SMALL LETTER J WITH CIRCUMFLEX
+   (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
+   (#xC5 ?\u010A) ;; LATIN CAPITAL LETTER C WITH DOT ABOVE
+   (#xC6 ?\u0108) ;; LATIN CAPITAL LETTER C WITH CIRCUMFLEX
+   (#xD5 ?\u0120) ;; LATIN CAPITAL LETTER G WITH DOT ABOVE
+   (#xD8 ?\u011C) ;; LATIN CAPITAL LETTER G WITH CIRCUMFLEX
+   (#xDD ?\u016C) ;; LATIN CAPITAL LETTER U WITH BREVE
+   (#xDE ?\u015C) ;; LATIN CAPITAL LETTER S WITH CIRCUMFLEX
+   (#xE5 ?\u010B) ;; LATIN SMALL LETTER C WITH DOT ABOVE
+   (#xE6 ?\u0109) ;; LATIN SMALL LETTER C WITH CIRCUMFLEX
+   (#xF5 ?\u0121) ;; LATIN SMALL LETTER G WITH DOT ABOVE
+   (#xF8 ?\u011D) ;; LATIN SMALL LETTER G WITH CIRCUMFLEX
+   (#xFD ?\u016D) ;; LATIN SMALL LETTER U WITH BREVE
+   (#xFE ?\u015D) ;; LATIN SMALL LETTER S WITH CIRCUMFLEX
+   (#xFF ?\u02D9)) ;; DOT ABOVE
+ "ISO-8859-3 (Latin-3)"
+ '(mnemonic "Latin 3"
+   documentation "Aimed at Turkish, Maltese and Esperanto.  "
+   aliases (iso-latin-3 latin-3)))
 
 
 ;; Latin-4 (ISO-8859-4)
@@ -282,13 +365,62 @@
    (#xDD #xFD) ;; U WITH TILDE
    (#xDE #xFE))) ;; U WITH MACRON
 
-(make-coding-system
- 'iso-8859-4 'iso2022 "ISO-8859-4 (Latin-4)"
- '(charset-g0 ascii
-   charset-g1 latin-iso8859-4
-   charset-g2 t
-   charset-g3 t
-   mnemonic "MIME/Ltn-4"))
+(make-8-bit-coding-system
+ 'iso-8859-4
+ '((#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
+   (#xA2 ?\u0138) ;; LATIN SMALL LETTER KRA
+   (#xA3 ?\u0156) ;; LATIN CAPITAL LETTER R WITH CEDILLA
+   (#xA5 ?\u0128) ;; LATIN CAPITAL LETTER I WITH TILDE
+   (#xA6 ?\u013B) ;; LATIN CAPITAL LETTER L WITH CEDILLA
+   (#xA9 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON
+   (#xAA ?\u0112) ;; LATIN CAPITAL LETTER E WITH MACRON
+   (#xAB ?\u0122) ;; LATIN CAPITAL LETTER G WITH CEDILLA
+   (#xAC ?\u0166) ;; LATIN CAPITAL LETTER T WITH STROKE
+   (#xAE ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+   (#xB1 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK
+   (#xB2 ?\u02DB) ;; OGONEK
+   (#xB3 ?\u0157) ;; LATIN SMALL LETTER R WITH CEDILLA
+   (#xB5 ?\u0129) ;; LATIN SMALL LETTER I WITH TILDE
+   (#xB6 ?\u013C) ;; LATIN SMALL LETTER L WITH CEDILLA
+   (#xB7 ?\u02C7) ;; CARON
+   (#xB9 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON
+   (#xBA ?\u0113) ;; LATIN SMALL LETTER E WITH MACRON
+   (#xBB ?\u0123) ;; LATIN SMALL LETTER G WITH CEDILLA
+   (#xBC ?\u0167) ;; LATIN SMALL LETTER T WITH STROKE
+   (#xBD ?\u014A) ;; LATIN CAPITAL LETTER ENG
+   (#xBE ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON
+   (#xBF ?\u014B) ;; LATIN SMALL LETTER ENG
+   (#xC0 ?\u0100) ;; LATIN CAPITAL LETTER A WITH MACRON
+   (#xC7 ?\u012E) ;; LATIN CAPITAL LETTER I WITH OGONEK
+   (#xC8 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON
+   (#xCA ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
+   (#xCC ?\u0116) ;; LATIN CAPITAL LETTER E WITH DOT ABOVE
+   (#xCF ?\u012A) ;; LATIN CAPITAL LETTER I WITH MACRON
+   (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE
+   (#xD1 ?\u0145) ;; LATIN CAPITAL LETTER N WITH CEDILLA
+   (#xD2 ?\u014C) ;; LATIN CAPITAL LETTER O WITH MACRON
+   (#xD3 ?\u0136) ;; LATIN CAPITAL LETTER K WITH CEDILLA
+   (#xD9 ?\u0172) ;; LATIN CAPITAL LETTER U WITH OGONEK
+   (#xDD ?\u0168) ;; LATIN CAPITAL LETTER U WITH TILDE
+   (#xDE ?\u016A) ;; LATIN CAPITAL LETTER U WITH MACRON
+   (#xE0 ?\u0101) ;; LATIN SMALL LETTER A WITH MACRON
+   (#xE7 ?\u012F) ;; LATIN SMALL LETTER I WITH OGONEK
+   (#xE8 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON
+   (#xEA ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK
+   (#xEC ?\u0117) ;; LATIN SMALL LETTER E WITH DOT ABOVE
+   (#xEF ?\u012B) ;; LATIN SMALL LETTER I WITH MACRON
+   (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE
+   (#xF1 ?\u0146) ;; LATIN SMALL LETTER N WITH CEDILLA
+   (#xF2 ?\u014D) ;; LATIN SMALL LETTER O WITH MACRON
+   (#xF3 ?\u0137) ;; LATIN SMALL LETTER K WITH CEDILLA
+   (#xF9 ?\u0173) ;; LATIN SMALL LETTER U WITH OGONEK
+   (#xFD ?\u0169) ;; LATIN SMALL LETTER U WITH TILDE
+   (#xFE ?\u016B) ;; LATIN SMALL LETTER U WITH MACRON
+   (#xFF ?\u02D9));; DOT ABOVE
+ "ISO-8859-4 (Latin-4)"
+ '(mnemonic "Latin 4"
+   aliases (iso-latin-4 latin-4)
+   documentation "Obsolete coding system for the Baltic rim.  "))
 
 
 ;; Latin-8 (ISO 8859-14) Celtic.
@@ -440,15 +572,19 @@
    (#xDD #xFD) ;; Y WITH ACUTE
    (#xDE #xFE))) ;; THORN
 
-(make-coding-system
- 'iso-8859-15 'iso2022
-  "ISO 4873 conforming 8-bit code (ASCII + Latin 9; aka Latin-1 with Euro)"
-  '(mnemonic "MIME/Ltn-9"		; bletch
-    eol-type nil
-    charset-g0 ascii
-    charset-g1 latin-iso8859-15
-    charset-g2 t
-    charset-g3 t))
+(make-8-bit-coding-system
+ 'iso-8859-15 
+ '((#xA4 ?\u20AC) ;; EURO SIGN
+   (#xA6 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON
+   (#xA8 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON
+   (#xB4 ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+   (#xB8 ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON
+   (#xBC ?\u0152) ;; LATIN CAPITAL LIGATURE OE
+   (#xBD ?\u0153) ;; LATIN SMALL LIGATURE OE
+   (#xBE ?\u0178)) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS
+ "ISO 4873 conforming 8-bit code (ASCII + Latin 9; aka Latin-1 with Euro)"
+  '(mnemonic "Latin 9"
+    aliases (iso-latin-9 latin-9 latin-0)))
 
 ;; end of ISO 8859-15. 
 
@@ -546,13 +682,51 @@
    (#xDE #xFE))) ;; T WITH COMMA BELOW
 
 ;; Add a coding system for ISO 8859-16.
-(make-coding-system
- 'iso-8859-16 'iso2022 "MIME ISO-8859-16"
- '(charset-g0 ascii
-   charset-g1 latin-iso8859-16
-   charset-g2 t			; grrr
-   charset-g3 t			; grrr
-   mnemonic "MIME/Ltn-10"))
+(make-8-bit-coding-system
+ 'iso-8859-16
+ '((#xA1 ?\u0104) ;; LATIN CAPITAL LETTER A WITH OGONEK
+   (#xA2 ?\u0105) ;; LATIN SMALL LETTER A WITH OGONEK
+   (#xA3 ?\u0141) ;; LATIN CAPITAL LETTER L WITH STROKE
+   (#xA4 ?\u20AC) ;; EURO SIGN
+   (#xA5 ?\u201E) ;; DOUBLE LOW-9 QUOTATION MARK
+   (#xA6 ?\u0160) ;; LATIN CAPITAL LETTER S WITH CARON
+   (#xA8 ?\u0161) ;; LATIN SMALL LETTER S WITH CARON
+   (#xAA ?\u0218) ;; LATIN CAPITAL LETTER S WITH COMMA BELOW
+   (#xAC ?\u0179) ;; LATIN CAPITAL LETTER Z WITH ACUTE
+   (#xAE ?\u017A) ;; LATIN SMALL LETTER Z WITH ACUTE
+   (#xAF ?\u017B) ;; LATIN CAPITAL LETTER Z WITH DOT ABOVE
+   (#xB2 ?\u010C) ;; LATIN CAPITAL LETTER C WITH CARON
+   (#xB3 ?\u0142) ;; LATIN SMALL LETTER L WITH STROKE
+   (#xB4 ?\u017D) ;; LATIN CAPITAL LETTER Z WITH CARON
+   (#xB5 ?\u201D) ;; RIGHT DOUBLE QUOTATION MARK
+   (#xB8 ?\u017E) ;; LATIN SMALL LETTER Z WITH CARON
+   (#xB9 ?\u010D) ;; LATIN SMALL LETTER C WITH CARON
+   (#xBA ?\u0219) ;; LATIN SMALL LETTER S WITH COMMA BELOW
+   (#xBC ?\u0152) ;; LATIN CAPITAL LIGATURE OE
+   (#xBD ?\u0153) ;; LATIN SMALL LIGATURE OE
+   (#xBE ?\u0178) ;; LATIN CAPITAL LETTER Y WITH DIAERESIS
+   (#xBF ?\u017C) ;; LATIN SMALL LETTER Z WITH DOT ABOVE
+   (#xC3 ?\u0102) ;; LATIN CAPITAL LETTER A WITH BREVE
+   (#xC5 ?\u0106) ;; LATIN CAPITAL LETTER C WITH ACUTE
+   (#xD0 ?\u0110) ;; LATIN CAPITAL LETTER D WITH STROKE
+   (#xD1 ?\u0143) ;; LATIN CAPITAL LETTER N WITH ACUTE
+   (#xD5 ?\u0150) ;; LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
+   (#xD7 ?\u015A) ;; LATIN CAPITAL LETTER S WITH ACUTE
+   (#xD8 ?\u0170) ;; LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
+   (#xDD ?\u0118) ;; LATIN CAPITAL LETTER E WITH OGONEK
+   (#xDE ?\u021A) ;; LATIN CAPITAL LETTER T WITH COMMA BELOW
+   (#xE3 ?\u0103) ;; LATIN SMALL LETTER A WITH BREVE
+   (#xE5 ?\u0107) ;; LATIN SMALL LETTER C WITH ACUTE
+   (#xF0 ?\u0111) ;; LATIN SMALL LETTER D WITH STROKE
+   (#xF1 ?\u0144) ;; LATIN SMALL LETTER N WITH ACUTE
+   (#xF5 ?\u0151) ;; LATIN SMALL LETTER O WITH DOUBLE ACUTE
+   (#xF7 ?\u015B) ;; LATIN SMALL LETTER S WITH ACUTE
+   (#xF8 ?\u0171) ;; LATIN SMALL LETTER U WITH DOUBLE ACUTE
+   (#xFD ?\u0119) ;; LATIN SMALL LETTER E WITH OGONEK
+   (#xFE ?\u021B)) ;; LATIN SMALL LETTER T WITH COMMA BELOW
+ "ISO-8859-16 (Latin-10)"
+ '(mnemonic "Latin 10"
+   aliases (iso-latin-10)))
 
 ;; end of ISO 8859-16. 
 
@@ -628,13 +802,17 @@
                 (make-char 'latin-iso8859-9 #xfd)
                 ?I (standard-case-table))
 
-(make-coding-system
- 'iso-8859-9 'iso2022 "ISO-8859-9 (Latin-5)"
- '(charset-g0 ascii
-   charset-g1 latin-iso8859-9
-   charset-g2 t
-   charset-g3 t
-   mnemonic "MIME/Ltn-5"))
+(make-8-bit-coding-system
+ 'iso-8859-9 
+ '((#xD0 ?\u011E) ;; LATIN CAPITAL LETTER G WITH BREVE
+   (#xDD ?\u0130) ;; LATIN CAPITAL LETTER I WITH DOT ABOVE
+   (#xDE ?\u015E) ;; LATIN CAPITAL LETTER S WITH CEDILLA
+   (#xF0 ?\u011F) ;; LATIN SMALL LETTER G WITH BREVE
+   (#xFD ?\u0131) ;; LATIN SMALL LETTER DOTLESS I
+   (#xFE ?\u015F)) ;; LATIN SMALL LETTER S WITH CEDILLA
+ "ISO-8859-9 (Latin-5)"
+ '(mnemonic "Latin 5"
+   aliases (iso-latin-5 latin-5)))
 
 ;; end of ISO-8859-9
 
--- a/lisp/mule/mule-coding.el	Sat Dec 01 13:40:07 2007 +0000
+++ b/lisp/mule/mule-coding.el	Sat Dec 01 14:24:52 2007 +0000
@@ -107,11 +107,6 @@
    mnemonic "CText"))
 
 (make-coding-system
- 'iso-8859-1 'no-conversion
- "ISO-8859-1 (Latin-1)"
- '(eol-type nil mnemonic "Noconv"))
-
-(make-coding-system
  'iso-2022-8bit-ss2 'iso2022
  "ISO-2022 8-bit w/SS2"
  '(charset-g0 ascii
@@ -699,3 +694,13 @@
                         do (define-coding-system-alias alias
                              ',name)))
         (find-coding-system ',name)))))
+
+;; Ideally this would be in latin.el, but code-init.el uses it.
+(make-8-bit-coding-system
+ 'iso-8859-1 
+ '() ;; No differences from Latin 1. 
+ "ISO-8859-1 (Latin-1)"
+ '(mnemonic "Latin 1"
+   documentation "The most used encoding of Western Europe and the Americas."
+   aliases (iso-latin-1 latin-1)))
+