File xemacs-21.5.29-arabic-547840.patch of Package xemacs

diff -dur xemacs-21.5.29.ORIG/lisp/ChangeLog xemacs-21.5.29/lisp/ChangeLog
--- xemacs-21.5.29.ORIG/lisp/ChangeLog	2010-01-07 09:52:09.259674650 -0700
+++ xemacs-21.5.29/lisp/ChangeLog	2010-01-07 09:31:59.498550275 -0700
@@ -1,3 +1,12 @@
+2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* unicode.el (load-unicode-tables):
+	* mule/mule-msw-init-late.el:
+	* mule/mule-category.el (predefined-category-list):
+	* mule/arabic.el:
+	Move arabic-iso8859-6 back to C, it needs to be there, otherwise
+	X11 character input lookup fails.
+
 2009-11-01  Stephen Turnbull  <stephen@xemacs.org>
 
 	* faces.el (Face-frob-property):
diff -dur xemacs-21.5.29.ORIG/lisp/mule/arabic.el xemacs-21.5.29/lisp/mule/arabic.el
--- xemacs-21.5.29.ORIG/lisp/mule/arabic.el	2010-01-07 09:52:09.260680256 -0700
+++ xemacs-21.5.29/lisp/mule/arabic.el	2010-01-07 09:31:59.499595394 -0700
@@ -28,9 +28,6 @@
 
 ;;; Code:
 
-;; See iso-with-esc.el for commentary on the ISO standard Arabic character
-;; set.
-
 (make-8-bit-coding-system
  'iso-8859-6
  '((#x80 ?\u0080) ;; <control>
diff -dur xemacs-21.5.29.ORIG/lisp/mule/iso-with-esc.el xemacs-21.5.29/lisp/mule/iso-with-esc.el
--- xemacs-21.5.29.ORIG/lisp/mule/iso-with-esc.el	2010-01-07 09:52:09.260680256 -0700
+++ xemacs-21.5.29/lisp/mule/iso-with-esc.el	2010-01-07 09:31:59.522633894 -0700
@@ -120,89 +120,6 @@
    safe-charsets (ascii greek-iso8859-7)
    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
diff -dur xemacs-21.5.29.ORIG/lisp/mule/mule-category.el xemacs-21.5.29/lisp/mule/mule-category.el
--- xemacs-21.5.29.ORIG/lisp/mule/mule-category.el	2010-01-07 09:52:09.261601694 -0700
+++ xemacs-21.5.29/lisp/mule/mule-category.el	2010-01-07 09:31:59.523637910 -0700
@@ -244,6 +244,7 @@
     (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")
diff -dur xemacs-21.5.29.ORIG/lisp/mule/mule-msw-init-late.el xemacs-21.5.29/lisp/mule/mule-msw-init-late.el
--- xemacs-21.5.29.ORIG/lisp/mule/mule-msw-init-late.el	2010-01-07 09:52:09.261601694 -0700
+++ xemacs-21.5.29/lisp/mule/mule-msw-init-late.el	2010-01-07 09:31:59.523637910 -0700
@@ -37,6 +37,7 @@
 	   (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")
diff -dur xemacs-21.5.29.ORIG/lisp/unicode.el xemacs-21.5.29/lisp/unicode.el
--- xemacs-21.5.29.ORIG/lisp/unicode.el	2010-01-07 09:52:09.262618232 -0700
+++ xemacs-21.5.29/lisp/unicode.el	2010-01-07 09:31:59.524639374 -0700
@@ -73,6 +73,7 @@
 	    ("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)
@@ -153,7 +154,7 @@
       '(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 
+	vietnamese-viscii-lower vietnamese-viscii-upper arabic-iso8859-6
 	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
diff -dur xemacs-21.5.29.ORIG/src/ChangeLog xemacs-21.5.29/src/ChangeLog
--- xemacs-21.5.29.ORIG/src/ChangeLog	2010-01-07 09:52:09.282677438 -0700
+++ xemacs-21.5.29/src/ChangeLog	2010-01-07 09:31:59.535640632 -0700
@@ -1,3 +1,11 @@
+2010-01-07  Aidan Kehoe  <kehoea@parhasard.net>
+
+	* mule-charset.c:
+	(syms_of_mule_charset, complex_vars_of_mule_charset):
+	* lisp.h:
+	Restore the creation of arabic-iso8859-6 in C, having it in Lisp
+	isn't sufficient for X11 input to work.
+
 2009-05-18  Stephen J. Turnbull  <stephen@xemacs.org>
 
 	* XEmacs 21.5.29 "garbanzo" is released.
diff -dur xemacs-21.5.29.ORIG/src/lisp.h xemacs-21.5.29/src/lisp.h
--- xemacs-21.5.29.ORIG/src/lisp.h	2010-01-07 09:52:09.288552467 -0700
+++ xemacs-21.5.29/src/lisp.h	2010-01-07 09:31:59.541637463 -0700
@@ -5233,6 +5233,7 @@
 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;
diff -dur xemacs-21.5.29.ORIG/src/mule-charset.c xemacs-21.5.29/src/mule-charset.c
--- xemacs-21.5.29.ORIG/src/mule-charset.c	2010-01-07 09:52:09.290552365 -0700
+++ xemacs-21.5.29/src/mule-charset.c	2010-01-07 09:53:06.329578948 -0700
@@ -47,6 +47,7 @@
 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;
@@ -93,6 +94,7 @@
   Qlatin_iso8859_4,
   Qthai_tis620,
   Qgreek_iso8859_7,
+  Qarabic_iso8859_6,
   Qhebrew_iso8859_8,
   Qkatakana_jisx0201,
   Qlatin_jisx0201,
@@ -1110,6 +1112,7 @@
   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);
@@ -1233,6 +1236,15 @@
 		  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,
openSUSE Build Service is sponsored by