[I had some trouble accessing this list through gnu.org, so my
apologies if this message appeared twice, or if someone is
inappropriately CCed]

Gregg Reynolds <[EMAIL PROTECTED]> writes:

> I had to create an Arabic Quail package to get an Arabic keyboard
> layout, e.g.
>

I have previously submitted a patch to emacs-dev with such additions
and other minor improvements for Arabic. It did not receive any
responses from emacs-dev, however.

Eli, any thoughts on the attached patch? Is there an interest in
seeing it checked in to Emacs proper? It's a trivial patch, but I'd be
willing to sign the GNU papers if necessary.

This makes distributing a minor mode for Arabic editing, or adapting
other Hebrew-specific packages for use with Arabic, alot easier.

The attached files include the following:

arabic.patch: 
      - Enable support for iso-8859-6. 
      - Add properly encoded Arabic characters to the HELLO file. 
      - Remove a block of code from code-pages.el that conflicts 
        with the new iso-8859-6 support.  

arabic.el: Language file for Arabic.

arabic.el: quail input modes for Arabic and Persian.

Regards,
Thamer Mahmoud

? arabic22.patch
? leim/quail/arabic.el
? lisp/language/arabic.el
Index: etc/HELLO
===================================================================
RCS file: /cvsroot/emacs/emacs/etc/HELLO,v
retrieving revision 1.40
diff -u -u -r1.40 HELLO
--- etc/HELLO	3 Apr 2004 04:41:21 -0000	1.40
+++ etc/HELLO	22 Nov 2005 05:59:14 -0000
@@ -2,7 +2,7 @@
 Its purpose is to illustrate a number of scripts.
 ---------------------------------------------------------
 Amharic ($(3"c!<!N"^(B)	$(3!A!,!>(B
-Arabic	(38R(47d(3T!JSa(4W(3W(B
+Arabic (,GGdYQHjI(B)	(,GGdSdGe(B ,GYdjce(B)
 Braille	$,2(3(1('('(5(B
 C	printf ("Hello, world!\n");
 Czech (,Bh(Be,B9(Btina)	Dobr,B}(B den
@@ -57,6 +57,7 @@
 A short test for characters represented by the character set
 mule-unicode-0100-24ff:
 
+Arabic ($,1-g.$-y-q-h.*-i(B)	($,1-g.$-s.$-g.%(B $,1-y.$.*.#.%(B)
 Czech ($,1 ,(Besky)	Dobr,A}(B den
 Esperanto	Saluton (E$,1 E(Bo$,1 }(Ban$,1 =(Bo $,1 )(Biu$,1 U(Ba$,1!-(Bde)
 Greek ($,1'5';';'7'='9':',(B)	$,1&s'5'9',(B $,1'C'1'B(B
Index: leim/Makefile.in
===================================================================
RCS file: /cvsroot/emacs/emacs/leim/Makefile.in,v
retrieving revision 1.72
diff -u -u -r1.72 Makefile.in
--- leim/Makefile.in	3 Nov 2005 17:00:51 -0000	1.72
+++ leim/Makefile.in	22 Nov 2005 05:59:14 -0000
@@ -125,6 +125,7 @@
 RUSSIAN=${srcdir}/quail/cyrillic.elc ${srcdir}/quail/cyril-jis.elc
 
 OTHERS= \
+	${srcdir}/quail/arabic.elc \
 	${srcdir}/quail/ethiopic.elc \
 	${srcdir}/quail/ipa.elc \
 	${srcdir}/quail/hebrew.elc \
Index: leim/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/leim/makefile.w32-in,v
retrieving revision 1.29
diff -u -u -r1.29 makefile.w32-in
--- leim/makefile.w32-in	4 Jul 2005 15:27:32 -0000	1.29
+++ leim/makefile.w32-in	22 Nov 2005 05:59:15 -0000
@@ -114,6 +114,7 @@
 RUSSIAN=$(srcdir)/quail/cyrillic.elc $(srcdir)/quail/cyril-jis.elc
 
 MISC= \
+	$(srcdir)/quail/arabic.elc \
 	$(srcdir)/quail/ethiopic.elc \
 	$(srcdir)/quail/ipa.elc \
 	$(srcdir)/quail/hebrew.elc \
Index: lib-src/makefile.w32-in
===================================================================
RCS file: /cvsroot/emacs/emacs/lib-src/makefile.w32-in,v
retrieving revision 2.38
diff -u -u -r2.38 makefile.w32-in
--- lib-src/makefile.w32-in	11 Sep 2005 22:28:28 -0000	2.38
+++ lib-src/makefile.w32-in	22 Nov 2005 05:59:15 -0000
@@ -203,6 +203,7 @@
 	$(lispsource)case-table.elc
 
 lisp2 = \
+	$(lispsource)language/arabic.el \
 	$(lispsource)language/chinese.elc \
 	$(lispsource)language/cyrillic.elc \
 	$(lispsource)language/indian.elc \
Index: lisp/ldefs-boot.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/ldefs-boot.el,v
retrieving revision 1.11
diff -u -u -r1.11 ldefs-boot.el
--- lisp/ldefs-boot.el	28 Oct 2005 17:06:02 -0000	1.11
+++ lisp/ldefs-boot.el	22 Nov 2005 05:59:38 -0000
@@ -29877,7 +29877,7 @@
 ;;;;;;  "international/subst-gb2312.el" "international/subst-jis.el"
 ;;;;;;  "international/subst-ksc.el" "international/ucs-tables.el"
 ;;;;;;  "international/utf-16.el" "international/utf-8.el" "isearch.el"
-;;;;;;  "jka-cmpr-hook.el" "kermit.el" "language/chinese.el" "language/cyrillic.el"
+;;;;;;  "jka-cmpr-hook.el" "kermit.el" "language/arabic.el" "language/chinese.el" "language/cyrillic.el"
 ;;;;;;  "language/czech.el" "language/devanagari.el" "language/english.el"
 ;;;;;;  "language/ethiopic.el" "language/european.el" "language/georgian.el"
 ;;;;;;  "language/greek.el" "language/hebrew.el" "language/indian.el"
Index: lisp/loadup.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/loadup.el,v
retrieving revision 1.144
diff -u -u -r1.144 loadup.el
--- lisp/loadup.el	16 Nov 2005 02:26:37 -0000	1.144
+++ lisp/loadup.el	22 Nov 2005 05:59:39 -0000
@@ -98,6 +98,7 @@
   (load "international/latin-8")
   (load "international/latin-9"))
 ;; Load language-specific files.
+(load "language/arabic")
 (load "language/chinese")
 (load "language/cyrillic")
 (load "language/indian")
Index: lisp/international/characters.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/international/characters.el,v
retrieving revision 1.54
diff -u -u -r1.54 characters.el
--- lisp/international/characters.el	4 Jul 2005 17:22:27 -0000	1.54
+++ lisp/international/characters.el	22 Nov 2005 05:59:40 -0000
@@ -1235,7 +1235,7 @@
 	   (latin-iso8859-4	. iso-latin-4)
 	   (thai-tis620		. thai-tis620)
 	   (greek-iso8859-7	. greek-iso-8bit)
-	   (arabic-iso8859-6	. iso-2022-7bit)
+	   (arabic-iso8859-6	. arabic-iso-8bit)
 	   (hebrew-iso8859-8	. hebrew-iso-8bit)
 	   (katakana-jisx0201	. japanese-shift-jis)
 	   (latin-jisx0201	. japanese-shift-jis)
Index: lisp/international/code-pages.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/international/code-pages.el,v
retrieving revision 1.31
diff -u -u -r1.31 code-pages.el
--- lisp/international/code-pages.el	24 Sep 2005 13:43:59 -0000	1.31
+++ lisp/international/code-pages.el	22 Nov 2005 05:59:41 -0000
@@ -3791,72 +3791,6 @@
 (define-coding-system-alias 'iso-8859-16 'iso-latin-10)
 (define-coding-system-alias 'latin-10 'iso-latin-10)
 
-;; Unicode-based alternative which has the possible advantage of
-;; having its relative sparseness specified.
-;;;###autoload(autoload-coding-system 'iso-8859-6 '(require 'code-pages))
-(cp-make-coding-system
- ;; The base system uses arabic-iso-8bit, but that's not a MIME charset.
- iso-8859-6
- [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  ?\ 
-  ?\¤
-  ?\،
-  ?\­
-  ?\؛
-  ?\؟
-  ?\Ø¡
-  ?\Ø¢
-  ?\Ø£
-  ?\ؤ
-  ?\Ø¥
-  ?\ئ
-  ?\ا
-  ?\ب
-  ?\Ø©
-  ?\ت
-  ?\Ø«
-  ?\ج
-  ?\Ø­
-  ?\Ø®
-  ?\د
-  ?\ذ
-  ?\ر
-  ?\ز
-  ?\س
-  ?\Ø´
-  ?\ص
-  ?\ض
-  ?\Ø·
-  ?\ظ
-  ?\ع
-  ?\غ
-  ?\ـ
-  ?\ف
-  ?\ق
-  ?\ك
-  ?\ل
-  ?\م
-  ?\ن
-  ?\ه
-  ?\و
-  ?\ى
-  ?\ي
-  ?\ً
-  ?\ٌ
-  ?\ٍ
-  ?\َ
-  ?\ُ
-  ?\ِ
-  ?\ّ
-  ?\ْ
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil
-  nil nil nil nil nil nil nil nil nil nil nil]
- "Unicode-based Arabic ISO/IEC 8859-6 (MIME: ISO-8859-6)"
- ?6)
-(define-coding-system-alias 'arabic-iso-8bit 'iso-8859-6)
-
 ;;;###autoload(autoload-coding-system 'iso-8859-10 '(require 'code-pages))
 (cp-make-coding-system
  iso-latin-6
Index: lisp/international/mule-cmds.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/international/mule-cmds.el,v
retrieving revision 1.287
diff -u -u -r1.287 mule-cmds.el
--- lisp/international/mule-cmds.el	20 Nov 2005 07:45:19 -0000	1.287
+++ lisp/international/mule-cmds.el	22 Nov 2005 05:59:44 -0000
@@ -2103,7 +2103,7 @@
     ("af" . "Latin-1") ; Afrikaans
     ("am" "Ethiopic" utf-8) ; Amharic
     ("an" . "Latin-9") ; Aragonese
-    ; ar Arabic glibc uses 8859-6
+    ("ar" "Arabic" iso-8859-6)
     ; as Assamese
     ; ay Aymara
     ("az" . "UTF-8") ; Azerbaijani
Index: lisp/international/ucs-tables.el
===================================================================
RCS file: /cvsroot/emacs/emacs/lisp/international/ucs-tables.el,v
retrieving revision 1.43
diff -u -u -r1.43 ucs-tables.el
--- lisp/international/ucs-tables.el	16 Nov 2005 22:21:16 -0000	1.43
+++ lisp/international/ucs-tables.el	22 Nov 2005 05:59:46 -0000
@@ -129,6 +129,10 @@
   "Used as `translation-table-for-encode' for iso-8859-5.
 Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
 
+(defvar ucs-8859-6-encode-table nil
+  "Used as `translation-table-for-encode' for iso-8859-6.
+Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
+
 (defvar ucs-8859-7-encode-table nil
   "Used as `translation-table-for-encode' for iso-8859-7.
 Translates from the iso8859 charsets and `mule-unicode-0100-24ff'.")
@@ -1114,8 +1118,7 @@
 
   ;; Derive tables that can be used as per-coding-system
   ;; `translation-table-for-encode's.
-  ;; N.B., there's no 8859-6 coding system.
-  (dolist (n (list 15 14 9 8 7 5 4 3 2 1))
+  (dolist (n (list 15 14 9 8 7 6 5 4 3 2 1))
     (let* ((alist (symbol-value (intern (format "ucs-8859-%d-alist" n))))
 	   (encode-translator (set (intern (format "ucs-8859-%d-encode-table"
 						   n))
@@ -1194,7 +1197,7 @@
 
     ;; Adjust the 8859 coding systems to fragment the unified characters
     ;; on encoding.
-    (dolist (n '(1 2 3 4 5 7 8 9 14 15))
+    (dolist (n '(1 2 3 4 5 6 7 8 9 14 15))
       (let* ((coding-system
 	      (coding-system-base (intern (format "iso-8859-%d" n))))
 	     (table (symbol-value
@@ -1237,7 +1240,7 @@
 
     ;; For each charset, remove the parent of `safe-chars' property of
     ;; the corresponding coding system.
-    (dolist (n '(1 2 3 4 5 7 8 9 14 15))
+    (dolist (n '(1 2 3 4 5 6 7 8 9 14 15))
       (let* ((coding-system
 	      (coding-system-base (intern (format "iso-8859-%d" n))))
 	     (safe (coding-system-get coding-system 'safe-chars)))
Index: src/Makefile.in
===================================================================
RCS file: /cvsroot/emacs/emacs/src/Makefile.in,v
retrieving revision 1.318
diff -u -u -r1.318 Makefile.in
--- src/Makefile.in	16 Nov 2005 02:38:24 -0000	1.318
+++ src/Makefile.in	22 Nov 2005 05:59:48 -0000
@@ -745,6 +745,7 @@
 	${lispsource}international/latin-8.el \
 	${lispsource}international/latin-9.el \
 	${lispsource}case-table.elc \
+	${lispsource}language/arabic.el \
 	${lispsource}language/chinese.elc \
 	${lispsource}language/cyrillic.elc \
 	${lispsource}language/indian.elc \
@@ -841,6 +842,7 @@
 	../lisp/international/latin-8.el \
 	../lisp/international/latin-9.el \
 	../lisp/case-table.elc \
+	../lisp/language/arabic.el \
 	../lisp/language/chinese.elc \
 	../lisp/language/cyrillic.elc \
 	../lisp/language/indian.elc \

Attachment: arabic.el
Description: language file

Attachment: arabic.el
Description: quail file

_______________________________________________
emacs-bidi mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-bidi

Reply via email to