Re: state of BIDI within stable GNU emacs (UTF8) nikud

Thamer Mahmoud <[email protected]>
Newsgroups gmane.emacs.bidi
Message-ID <[email protected]>
[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

_______________________________________________
emacs-bidi mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/emacs-bidi
arabic22.patch (text/x-patch, 9.8 KB)
? 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 \
arabic.el (application/emacs-lisp, 2.6 KB) - not displayed
arabic.el (application/emacs-lisp, 10.6 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.