changeset 4492:121aadac896e

Merge.
author Aidan Kehoe <kehoea@parhasard.net>
date Fri, 08 Aug 2008 21:28:13 +0200
parents 67fbcaf3dbdc (current diff) d402d7b18bd8 (diff)
children 89406c31b125
files lisp/ChangeLog lisp/unicode.el
diffstat 12 files changed, 333 insertions(+), 90 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Fri Aug 08 21:17:08 2008 +0200
+++ b/etc/ChangeLog	Fri Aug 08 21:28:13 2008 +0200
@@ -1,3 +1,7 @@
+2008-08-05  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* HELLO: Encode the Arabic using UTF-8 sequences, not ISO-8859-6. 
+
 2008-02-21  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* README: Add descriptions of Daniel Polansky's icons.
--- a/etc/HELLO	Fri Aug 08 21:17:08 2008 +0200
+++ b/etc/HELLO	Fri Aug 08 21:28:13 2008 +0200
@@ -3,7 +3,7 @@
 
 ---------------------------------------------------------
 Amharic	($(3"c!<!N"^(B)	$(3!A!,!>(B
-Arabic			[2](38R(47d(3T!JSa(4W(3W[0](B
+Arabic (%Gةّيبرعلا%@)	%Gمكيلع%@ %Gمالّسلا%@
 Croatian (Hrvatski)	Bog (Bok), Dobar dan
 Czech (,Bh(Besky)		Dobr,B}(B den
 Danish (Dansk)		Hej, Goddag
--- a/lisp/ChangeLog	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/ChangeLog	Fri Aug 08 21:28:13 2008 +0200
@@ -32,6 +32,23 @@
 	Add support for error-sequence-coding-system for the
 	Latin-alphabet language environments.
 
+2008-08-05  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule/iso-with-esc.el (greek-iso-8bit-with-esc): 
+	(arabic-iso-8bit-with-esc): 
+	Add these two here. Move the implementation of the
+	'arabic-iso8859-6  character set here, with commentary on why that
+	is reasonable. 
+	* mule/arabic.el (iso-8859-6): 
+	Add iso-8859-6, windows-1256 implementations using
+	make-8-bit-coding-system. Remove our non-standard Mule character
+	sets. 
+	* unicode.el (load-unicode-tables): Remove Arabic since it's no
+	longer dumped.
+	* mule/mule-msw-init-late.el: Remove Arabic.
+	* mule/mule-category.el (predefined-category-list): Remove
+	Arabic. 
+
 2008-07-26  Aidan Kehoe  <kehoea@parhasard.net>
 
 	* x-init.el (x-initialize-compose): 
--- a/lisp/mule/arabic.el	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/mule/arabic.el	Fri Aug 08 21:28:13 2008 +0200
@@ -28,79 +28,204 @@
 
 ;;; Code:
 
-; (make-charset 'arabic-iso8859-6 
-; 	      "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
-; 	      '(dimension
-; 		1
-; 		registry "ISO8859-6"
-; 		chars 96
-; 		columns 1
-; 		direction r2l
-; 		final ?G
-; 		graphic 1
-; 		short-name "RHP of ISO8859/6"
-; 		long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"
-; 		))
+;; See iso-with-esc.el for commentary on the ISO standard Arabic character
+;; set.
 
-;; For Arabic, we need three different types of character sets.
-;; Digits are of direction left-to-right and of width 1-column.
-;; Others are of direction right-to-left and of width 1-column or
-;; 2-column.
-(make-charset 'arabic-digit "Arabic digit"
-	      '(dimension 1
-		registries ["MuleArabic-0"]
-		chars 94
-		columns 1
-		direction l2r
-		final ?2
-		graphic 0
-		short-name "Arabic digit"
-		long-name "Arabic digit"
-		))
+(make-8-bit-coding-system
+ 'iso-8859-6
+ '((#xA0 ?\u00A0) ;; NO-BREAK SPACE
+   (#xA4 ?\u00A4) ;; CURRENCY SIGN
+   (#xAC ?\u060C) ;; ARABIC COMMA
+   (#xAD ?\u00AD) ;; SOFT HYPHEN
+   (#xBB ?\u061B) ;; ARABIC SEMICOLON
+   (#xBF ?\u061F) ;; ARABIC QUESTION MARK
+   (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA
+   (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+   (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+   (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+   (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+   (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+   (#xC7 ?\u0627) ;; ARABIC LETTER ALEF
+   (#xC8 ?\u0628) ;; ARABIC LETTER BEH
+   (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA
+   (#xCA ?\u062A) ;; ARABIC LETTER TEH
+   (#xCB ?\u062B) ;; ARABIC LETTER THEH
+   (#xCC ?\u062C) ;; ARABIC LETTER JEEM
+   (#xCD ?\u062D) ;; ARABIC LETTER HAH
+   (#xCE ?\u062E) ;; ARABIC LETTER KHAH
+   (#xCF ?\u062F) ;; ARABIC LETTER DAL
+   (#xD0 ?\u0630) ;; ARABIC LETTER THAL
+   (#xD1 ?\u0631) ;; ARABIC LETTER REH
+   (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN
+   (#xD3 ?\u0633) ;; ARABIC LETTER SEEN
+   (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN
+   (#xD5 ?\u0635) ;; ARABIC LETTER SAD
+   (#xD6 ?\u0636) ;; ARABIC LETTER DAD
+   (#xD7 ?\u0637) ;; ARABIC LETTER TAH
+   (#xD8 ?\u0638) ;; ARABIC LETTER ZAH
+   (#xD9 ?\u0639) ;; ARABIC LETTER AIN
+   (#xDA ?\u063A) ;; ARABIC LETTER GHAIN
+   (#xE0 ?\u0640) ;; ARABIC TATWEEL
+   (#xE1 ?\u0641) ;; ARABIC LETTER FEH
+   (#xE2 ?\u0642) ;; ARABIC LETTER QAF
+   (#xE3 ?\u0643) ;; ARABIC LETTER KAF
+   (#xE4 ?\u0644) ;; ARABIC LETTER LAM
+   (#xE5 ?\u0645) ;; ARABIC LETTER MEEM
+   (#xE6 ?\u0646) ;; ARABIC LETTER NOON
+   (#xE7 ?\u0647) ;; ARABIC LETTER HEH
+   (#xE8 ?\u0648) ;; ARABIC LETTER WAW
+   (#xE9 ?\u0649) ;; ARABIC LETTER ALEF MAKSURA
+   (#xEA ?\u064A) ;; ARABIC LETTER YEH
+   (#xEB ?\u064B) ;; ARABIC FATHATAN
+   (#xEC ?\u064C) ;; ARABIC DAMMATAN
+   (#xED ?\u064D) ;; ARABIC KASRATAN
+   (#xEE ?\u064E) ;; ARABIC FATHA
+   (#xEF ?\u064F) ;; ARABIC DAMMA
+   (#xF0 ?\u0650) ;; ARABIC KASRA
+   (#xF1 ?\u0651) ;; ARABIC SHADDA
+   (#xF2 ?\u0652)) ;; ARABIC SUKUN
+ "ISO 8859-6 (Arabic)"
+'(mnemonic "ArISO"))
 
-(make-charset 'arabic-1-column "Arabic 1-column"
-	      '(dimension
-		1
-		registries ["MuleArabic-1"]
-		chars 94
-		columns 1
-		direction r2l
-		final ?3
-		graphic 0
-		short-name "Arabic 1-col"
-		long-name "Arabic 1-column"
-		))
+(make-8-bit-coding-system
+ 'windows-1256
+ '((#x80 ?\u20AC) ;; EURO SIGN
+   (#x81 ?\u067E) ;; ARABIC LETTER PEH
+   (#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
+   (#x88 ?\u02C6) ;; MODIFIER LETTER CIRCUMFLEX ACCENT
+   (#x89 ?\u2030) ;; PER MILLE SIGN
+   (#x8A ?\u0679) ;; ARABIC LETTER TTEH
+   (#x8B ?\u2039) ;; SINGLE LEFT-POINTING ANGLE QUOTATION MARK
+   (#x8C ?\u0152) ;; LATIN CAPITAL LIGATURE OE
+   (#x8D ?\u0686) ;; ARABIC LETTER TCHEH
+   (#x8E ?\u0698) ;; ARABIC LETTER JEH
+   (#x8F ?\u0688) ;; ARABIC LETTER DDAL
+   (#x90 ?\u06AF) ;; ARABIC LETTER GAF
+   (#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
+   (#x98 ?\u06A9) ;; ARABIC LETTER KEHEH
+   (#x99 ?\u2122) ;; TRADE MARK SIGN
+   (#x9A ?\u0691) ;; ARABIC LETTER RREH
+   (#x9B ?\u203A) ;; SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
+   (#x9C ?\u0153) ;; LATIN SMALL LIGATURE OE
+   (#x9D ?\u200C) ;; ZERO WIDTH NON-JOINER
+   (#x9E ?\u200D) ;; ZERO WIDTH JOINER
+   (#x9F ?\u06BA) ;; ARABIC LETTER NOON GHUNNA
+   (#xA0 ?\u00A0) ;; NO-BREAK SPACE
+   (#xA1 ?\u060C) ;; ARABIC COMMA
+   (#xA2 ?\u00A2) ;; CENT SIGN
+   (#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
+   (#xAA ?\u06BE) ;; ARABIC LETTER HEH DOACHASHMEE
+   (#xAB ?\u00AB) ;; LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
+   (#xAC ?\u00AC) ;; NOT SIGN
+   (#xAD ?\u00AD) ;; SOFT HYPHEN
+   (#xAE ?\u00AE) ;; REGISTERED SIGN
+   (#xAF ?\u00AF) ;; MACRON
+   (#xB0 ?\u00B0) ;; DEGREE SIGN
+   (#xB1 ?\u00B1) ;; PLUS-MINUS SIGN
+   (#xB2 ?\u00B2) ;; SUPERSCRIPT TWO
+   (#xB3 ?\u00B3) ;; SUPERSCRIPT THREE
+   (#xB4 ?\u00B4) ;; ACUTE ACCENT
+   (#xB5 ?\u00B5) ;; MICRO SIGN
+   (#xB6 ?\u00B6) ;; PILCROW SIGN
+   (#xB7 ?\u00B7) ;; MIDDLE DOT
+   (#xB8 ?\u00B8) ;; CEDILLA
+   (#xB9 ?\u00B9) ;; SUPERSCRIPT ONE
+   (#xBA ?\u061B) ;; ARABIC SEMICOLON
+   (#xBB ?\u00BB) ;; RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
+   (#xBC ?\u00BC) ;; VULGAR FRACTION ONE QUARTER
+   (#xBD ?\u00BD) ;; VULGAR FRACTION ONE HALF
+   (#xBE ?\u00BE) ;; VULGAR FRACTION THREE QUARTERS
+   (#xBF ?\u061F) ;; ARABIC QUESTION MARK
+   (#xC0 ?\u06C1) ;; ARABIC LETTER HEH GOAL
+   (#xC1 ?\u0621) ;; ARABIC LETTER HAMZA
+   (#xC2 ?\u0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+   (#xC3 ?\u0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+   (#xC4 ?\u0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+   (#xC5 ?\u0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+   (#xC6 ?\u0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+   (#xC7 ?\u0627) ;; ARABIC LETTER ALEF
+   (#xC8 ?\u0628) ;; ARABIC LETTER BEH
+   (#xC9 ?\u0629) ;; ARABIC LETTER TEH MARBUTA
+   (#xCA ?\u062A) ;; ARABIC LETTER TEH
+   (#xCB ?\u062B) ;; ARABIC LETTER THEH
+   (#xCC ?\u062C) ;; ARABIC LETTER JEEM
+   (#xCD ?\u062D) ;; ARABIC LETTER HAH
+   (#xCE ?\u062E) ;; ARABIC LETTER KHAH
+   (#xCF ?\u062F) ;; ARABIC LETTER DAL
+   (#xD0 ?\u0630) ;; ARABIC LETTER THAL
+   (#xD1 ?\u0631) ;; ARABIC LETTER REH
+   (#xD2 ?\u0632) ;; ARABIC LETTER ZAIN
+   (#xD3 ?\u0633) ;; ARABIC LETTER SEEN
+   (#xD4 ?\u0634) ;; ARABIC LETTER SHEEN
+   (#xD5 ?\u0635) ;; ARABIC LETTER SAD
+   (#xD6 ?\u0636) ;; ARABIC LETTER DAD
+   (#xD7 ?\u00D7) ;; MULTIPLICATION SIGN
+   (#xD8 ?\u0637) ;; ARABIC LETTER TAH
+   (#xD9 ?\u0638) ;; ARABIC LETTER ZAH
+   (#xDA ?\u0639) ;; ARABIC LETTER AIN
+   (#xDB ?\u063A) ;; ARABIC LETTER GHAIN
+   (#xDC ?\u0640) ;; ARABIC TATWEEL
+   (#xDD ?\u0641) ;; ARABIC LETTER FEH
+   (#xDE ?\u0642) ;; ARABIC LETTER QAF
+   (#xDF ?\u0643) ;; ARABIC LETTER KAF
+   (#xE0 ?\u00E0) ;; LATIN SMALL LETTER A WITH GRAVE
+   (#xE1 ?\u0644) ;; ARABIC LETTER LAM
+   (#xE2 ?\u00E2) ;; LATIN SMALL LETTER A WITH CIRCUMFLEX
+   (#xE3 ?\u0645) ;; ARABIC LETTER MEEM
+   (#xE4 ?\u0646) ;; ARABIC LETTER NOON
+   (#xE5 ?\u0647) ;; ARABIC LETTER HEH
+   (#xE6 ?\u0648) ;; ARABIC LETTER WAW
+   (#xE7 ?\u00E7) ;; LATIN SMALL LETTER C WITH CEDILLA
+   (#xE8 ?\u00E8) ;; LATIN SMALL LETTER E WITH GRAVE
+   (#xE9 ?\u00E9) ;; LATIN SMALL LETTER E WITH ACUTE
+   (#xEA ?\u00EA) ;; LATIN SMALL LETTER E WITH CIRCUMFLEX
+   (#xEB ?\u00EB) ;; LATIN SMALL LETTER E WITH DIAERESIS
+   (#xEC ?\u0649) ;; ARABIC LETTER ALEF MAKSURA
+   (#xED ?\u064A) ;; ARABIC LETTER YEH
+   (#xEE ?\u00EE) ;; LATIN SMALL LETTER I WITH CIRCUMFLEX
+   (#xEF ?\u00EF) ;; LATIN SMALL LETTER I WITH DIAERESIS
+   (#xF0 ?\u064B) ;; ARABIC FATHATAN
+   (#xF1 ?\u064C) ;; ARABIC DAMMATAN
+   (#xF2 ?\u064D) ;; ARABIC KASRATAN
+   (#xF3 ?\u064E) ;; ARABIC FATHA
+   (#xF4 ?\u00F4) ;; LATIN SMALL LETTER O WITH CIRCUMFLEX
+   (#xF5 ?\u064F) ;; ARABIC DAMMA
+   (#xF6 ?\u0650) ;; ARABIC KASRA
+   (#xF7 ?\u00F7) ;; DIVISION SIGN
+   (#xF8 ?\u0651) ;; ARABIC SHADDA
+   (#xF9 ?\u00F9) ;; LATIN SMALL LETTER U WITH GRAVE
+   (#xFA ?\u0652) ;; ARABIC SUKUN
+   (#xFB ?\u00FB) ;; LATIN SMALL LETTER U WITH CIRCUMFLEX
+   (#xFC ?\u00FC) ;; LATIN SMALL LETTER U WITH DIAERESIS
+   (#xFD ?\u200E) ;; LEFT-TO-RIGHT MARK
+   (#xFE ?\u200F) ;; RIGHT-TO-LEFT MARK
+   (#xFF ?\u06D2));; ARABIC LETTER YEH BARREE
+ "Windows-1256 (Arabic)"
+ '(mnemonic "cp1256"
+   documentation
+   "This is the much Windows encoding for Arabic, much superior to the ISO
+standard one."
+   aliases (cp1256)))
 
-(make-charset 'arabic-2-column "Arabic 2-column"
-	      '(dimension
-		1
-		registries ["MuleArabic-2"]
-		chars 94
-		columns 2
-		direction r2l
-		final ?4
-		graphic 0
-		short-name "Arabic 2-col"
-		long-name "Arabic 2-column"
-		))
+;; The Mac Arabic coding systems don't have defined MIME names. 
 
-(make-coding-system 'iso-8859-6 'iso2022
-		    "ISO-8859-6 (Arabic)"
-		    '(charset-g0 ascii
-				 charset-g1 arabic-iso8859-6
-				 charset-g2 t
-				 charset-g3 t
-				 no-iso6429 t
-				 mnemonic "MIME/Arbc"
-				 ))
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; ARABIC
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-;; (define-language-environment 'arabic
-;;   "Arabic"
-;;   (lambda ()
-;;     (require 'arabic)))
+;; #### Decide what to do about the syntax of the Arabic punctuation. 
 
 ;;; arabic.el ends here
--- a/lisp/mule/iso-with-esc.el	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/mule/iso-with-esc.el	Fri Aug 08 21:28:13 2008 +0200
@@ -98,3 +98,108 @@
   charset-g3 t
    no-iso6429 t
    mnemonic "MIME/Hbrw"))
+
+;;;###autoload
+(make-coding-system
+ 'greek-iso-8bit-with-esc 'iso2022 "MIME ISO-8859-7"
+ '(charset-g0 ascii
+   charset-g1 greek-iso8859-7
+   charset-g2 t
+   charset-g3 t
+   mnemonic "Grk"))
+
+;; ISO 8859-6 is such a useless character set that it seems a waste of
+;; codespace to dump it. Let me count the ways: 
+;; 
+;; 1. It doesn't support Persian or Urdu, let alone Sinhalese, despite
+;;    plenty of unallocated code points.
+;;
+;; 2. It doesn't encode all the vowel diacritics (the Harakaat) despite that
+;;    they are necessary, even for the Arabs, for basic things like
+;;    dictionary entries, children's books, and occasional disambiguation.
+;;
+;; 3. The Arabs don't use it, they use Windows-1256, which also supports
+;;    Persian, at least, as well as the French characters necessary in
+;;    Lebanon and North Africa.
+
+(make-charset
+ 'arabic-iso8859-6 
+ "Right-Hand Part of Latin/Arabic Alphabet (ISO/IEC 8859-6): ISO-IR-127"
+ '(dimension 1
+   registry "ISO8859-6"
+   chars 96
+   columns 1
+   direction r2l
+   final ?G
+   graphic 1
+   short-name "RHP of ISO8859/6"
+   long-name "RHP of Arabic (ISO 8859-6): ISO-IR-127"))
+
+(loop
+  for (iso8859-6 unicode)
+  in '((#xA0 #x00A0) ;; NO-BREAK SPACE
+       (#xA4 #x00A4) ;; CURRENCY SIGN
+       (#xAC #x060C) ;; ARABIC COMMA
+       (#xAD #x00AD) ;; SOFT HYPHEN
+       (#xBB #x061B) ;; ARABIC SEMICOLON
+       (#xBF #x061F) ;; ARABIC QUESTION MARK
+       (#xC1 #x0621) ;; ARABIC LETTER HAMZA
+       (#xC2 #x0622) ;; ARABIC LETTER ALEF WITH MADDA ABOVE
+       (#xC3 #x0623) ;; ARABIC LETTER ALEF WITH HAMZA ABOVE
+       (#xC4 #x0624) ;; ARABIC LETTER WAW WITH HAMZA ABOVE
+       (#xC5 #x0625) ;; ARABIC LETTER ALEF WITH HAMZA BELOW
+       (#xC6 #x0626) ;; ARABIC LETTER YEH WITH HAMZA ABOVE
+       (#xC7 #x0627) ;; ARABIC LETTER ALEF
+       (#xC8 #x0628) ;; ARABIC LETTER BEH
+       (#xC9 #x0629) ;; ARABIC LETTER TEH MARBUTA
+       (#xCA #x062A) ;; ARABIC LETTER TEH
+       (#xCB #x062B) ;; ARABIC LETTER THEH
+       (#xCC #x062C) ;; ARABIC LETTER JEEM
+       (#xCD #x062D) ;; ARABIC LETTER HAH
+       (#xCE #x062E) ;; ARABIC LETTER KHAH
+       (#xCF #x062F) ;; ARABIC LETTER DAL
+       (#xD0 #x0630) ;; ARABIC LETTER THAL
+       (#xD1 #x0631) ;; ARABIC LETTER REH
+       (#xD2 #x0632) ;; ARABIC LETTER ZAIN
+       (#xD3 #x0633) ;; ARABIC LETTER SEEN
+       (#xD4 #x0634) ;; ARABIC LETTER SHEEN
+       (#xD5 #x0635) ;; ARABIC LETTER SAD
+       (#xD6 #x0636) ;; ARABIC LETTER DAD
+       (#xD7 #x0637) ;; ARABIC LETTER TAH
+       (#xD8 #x0638) ;; ARABIC LETTER ZAH
+       (#xD9 #x0639) ;; ARABIC LETTER AIN
+       (#xDA #x063A) ;; ARABIC LETTER GHAIN
+       (#xE0 #x0640) ;; ARABIC TATWEEL
+       (#xE1 #x0641) ;; ARABIC LETTER FEH
+       (#xE2 #x0642) ;; ARABIC LETTER QAF
+       (#xE3 #x0643) ;; ARABIC LETTER KAF
+       (#xE4 #x0644) ;; ARABIC LETTER LAM
+       (#xE5 #x0645) ;; ARABIC LETTER MEEM
+       (#xE6 #x0646) ;; ARABIC LETTER NOON
+       (#xE7 #x0647) ;; ARABIC LETTER HEH
+       (#xE8 #x0648) ;; ARABIC LETTER WAW
+       (#xE9 #x0649) ;; ARABIC LETTER ALEF MAKSURA
+       (#xEA #x064A) ;; ARABIC LETTER YEH
+       (#xEB #x064B) ;; ARABIC FATHATAN
+       (#xEC #x064C) ;; ARABIC DAMMATAN
+       (#xED #x064D) ;; ARABIC KASRATAN
+       (#xEE #x064E) ;; ARABIC FATHA
+       (#xEF #x064F) ;; ARABIC DAMMA
+       (#xF0 #x0650) ;; ARABIC KASRA
+       (#xF1 #x0651) ;; ARABIC SHADDA
+       (#xF2 #x0652));; ARABIC SUKUN
+  do (set-unicode-conversion (make-char 'arabic-iso8859-6 iso8859-6)
+                             unicode))
+
+;;;###autoload
+(make-coding-system
+ 'arabic-iso-8bit-with-esc 'iso2022  ;; GNU's iso-8859-6 is
+                                     ;; iso2022-compatible.
+ "ISO-8859-6 (Arabic)"
+ '(charset-g0 ascii
+   charset-g1 arabic-iso8859-6
+   charset-g2 t
+   charset-g3 t
+   no-iso6429 t
+   mnemonic "MIME/Arbc"))
+
--- a/lisp/mule/mule-category.el	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/mule/mule-category.el	Fri Aug 08 21:28:13 2008 +0200
@@ -244,7 +244,6 @@
     (latin-iso8859-4	?l)
     (latin-iso8859-9	?l)
     (cyrillic-iso8859-5 ?y "Cyrillic character set")
-    (arabic-iso8859-6	?b "Arabic character set")
     (greek-iso8859-7	?g "Greek character set")
     (hebrew-iso8859-8	?w "Hebrew character set")
     (katakana-jisx0201	?k "Japanese 1-byte Katakana character set")
--- a/lisp/mule/mule-msw-init-late.el	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/mule/mule-msw-init-late.el	Fri Aug 08 21:28:13 2008 +0200
@@ -37,7 +37,6 @@
 	   (greek-iso8859-7 . "Greek") 
 	   (latin-iso8859-9 . "Turkish")
 	   (hebrew-iso8859-8 . "Hebrew")
-	   (arabic-iso8859-6 . "Arabic")
 	   (latin-iso8859-4 . "Baltic")
 	   (vietnamese-viscii-lower . "Viet Nam")
 	   (vietnamese-viscii-upper . "Viet Nam")
--- a/lisp/mule/mule-win32-init.el	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/mule/mule-win32-init.el	Fri Aug 08 21:28:13 2008 +0200
@@ -162,7 +162,8 @@
         ; ("ANSI"        1253 no-conversion "Windows 3.1 Greek")
        ("ANSI"        1254 no-conversion "Windows 3.1 Turkish")
        ("ANSI"        1255 no-conversion "Hebrew")
-       ("ANSI"        1256 no-conversion "Arabic")
+       ;; We implement these ourselves.
+       ; ("ANSI"        1256 no-conversion "Arabic")
        ("ANSI"        1257 no-conversion "Baltic")
        ("ANSI"        1258 no-conversion "VietNam")
        ;; #### Is this category right? I don't have Lunde to hand, and the
--- a/lisp/unicode.el	Fri Aug 08 21:17:08 2008 +0200
+++ b/lisp/unicode.el	Fri Aug 08 21:28:13 2008 +0200
@@ -73,7 +73,6 @@
 	    ("8859-3.TXT" latin-iso8859-3 #xA0 #xFF #x-80)
 	    ("8859-4.TXT" latin-iso8859-4 #xA0 #xFF #x-80)
 	    ("8859-5.TXT" cyrillic-iso8859-5 #xA0 #xFF #x-80)
-	    ("8859-6.TXT" arabic-iso8859-6 #xA0 #xFF #x-80)
 	    ("8859-7.TXT" greek-iso8859-7 #xA0 #xFF #x-80)
 	    ("8859-8.TXT" hebrew-iso8859-8 #xA0 #xFF #x-80)
 	    ("8859-9.TXT" latin-iso8859-9 #xA0 #xFF #x-80)
@@ -154,12 +153,12 @@
       '(ascii control-1 latin-iso8859-1 latin-iso8859-2 latin-iso8859-15
 	greek-iso8859-7 hebrew-iso8859-8 ipa cyrillic-iso8859-5
 	latin-iso8859-16 latin-iso8859-3 latin-iso8859-4 latin-iso8859-9
-	vietnamese-viscii-lower vietnamese-viscii-upper arabic-iso8859-6
+	vietnamese-viscii-lower vietnamese-viscii-upper 
 	jit-ucs-charset-0 japanese-jisx0208 japanese-jisx0208-1978
 	japanese-jisx0212 japanese-jisx0213-1 japanese-jisx0213-2
 	chinese-gb2312 chinese-sisheng chinese-big5-1 chinese-big5-2
 	indian-is13194 korean-ksc5601 chinese-cns11643-1 chinese-cns11643-2
-	chinese-isoir165 arabic-1-column arabic-2-column arabic-digit
+	chinese-isoir165 
 	composite ethiopic indian-1-column indian-2-column jit-ucs-charset-0
 	katakana-jisx0201 lao thai-tis620 thai-xtis tibetan tibetan-1-column
 	latin-jisx0201 chinese-cns11643-3 chinese-cns11643-4
--- a/src/ChangeLog	Fri Aug 08 21:17:08 2008 +0200
+++ b/src/ChangeLog	Fri Aug 08 21:28:13 2008 +0200
@@ -1,3 +1,10 @@
+2008-08-05  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule-charset.c (complex_vars_of_mule_charset): 
+	Remove Vcharset_arabic_iso8859_7.
+	* lisp.h: Remove Vcharset_arabic_iso8859_7.
+	See commentary in lisp/mule/iso-with-esc.el for motivation. 
+
 2008-07-20  John Paul Wallington  <jpw@pobox.com>
 
 	* nt.c (Fmswindows_short_file_name, Fmswindows_long_file_name):
--- a/src/lisp.h	Fri Aug 08 21:17:08 2008 +0200
+++ b/src/lisp.h	Fri Aug 08 21:28:13 2008 +0200
@@ -5229,7 +5229,6 @@
 extern Lisp_Object Vcharset_latin_iso8859_4;
 extern Lisp_Object Vcharset_thai_tis620;
 extern Lisp_Object Vcharset_greek_iso8859_7;
-extern Lisp_Object Vcharset_arabic_iso8859_6;
 extern Lisp_Object Vcharset_hebrew_iso8859_8;
 extern Lisp_Object Vcharset_katakana_jisx0201;
 extern Lisp_Object Vcharset_latin_jisx0201;
--- a/src/mule-charset.c	Fri Aug 08 21:17:08 2008 +0200
+++ b/src/mule-charset.c	Fri Aug 08 21:28:13 2008 +0200
@@ -47,7 +47,6 @@
 Lisp_Object Vcharset_latin_iso8859_4;
 Lisp_Object Vcharset_thai_tis620;
 Lisp_Object Vcharset_greek_iso8859_7;
-Lisp_Object Vcharset_arabic_iso8859_6;
 Lisp_Object Vcharset_hebrew_iso8859_8;
 Lisp_Object Vcharset_katakana_jisx0201;
 Lisp_Object Vcharset_latin_jisx0201;
@@ -94,7 +93,6 @@
   Qlatin_iso8859_4,
   Qthai_tis620,
   Qgreek_iso8859_7,
-  Qarabic_iso8859_6,
   Qhebrew_iso8859_8,
   Qkatakana_jisx0201,
   Qlatin_jisx0201,
@@ -1112,7 +1110,6 @@
   DEFSYMBOL (Qlatin_iso8859_4);
   DEFSYMBOL (Qthai_tis620);
   DEFSYMBOL (Qgreek_iso8859_7);
-  DEFSYMBOL (Qarabic_iso8859_6);
   DEFSYMBOL (Qhebrew_iso8859_8);
   DEFSYMBOL (Qkatakana_jisx0201);
   DEFSYMBOL (Qlatin_jisx0201);
@@ -1236,15 +1233,6 @@
 		  build_msg_string ("ISO8859-7 (Greek)"),
 		  build_msg_string ("ISO8859-7 (Greek)"),
 		  vector1(build_string("iso8859-7")), 0, 0);
-  staticpro (&Vcharset_arabic_iso8859_6);
-  Vcharset_arabic_iso8859_6 =
-    make_charset (LEADING_BYTE_ARABIC_ISO8859_6, Qarabic_iso8859_6, 2,
-		  CHARSET_TYPE_96, 1, 1, 'G',
-		  CHARSET_RIGHT_TO_LEFT,
-		  build_string ("ISO8859-6"),
-		  build_msg_string ("ISO8859-6 (Arabic)"),
-		  build_msg_string ("ISO8859-6 (Arabic)"),
-		  vector1(build_string ("iso8859-6")), 0, 0);
   staticpro (&Vcharset_hebrew_iso8859_8);
   Vcharset_hebrew_iso8859_8 =
     make_charset (LEADING_BYTE_HEBREW_ISO8859_8, Qhebrew_iso8859_8, 2,