Subject: 23.1; Arabic.el (in leim/quail) contains missing and wrong characters
From: Thamer Mahmoud <[email-masked]>
To: [email-masked]
Date: Tue, 18 Aug 2009 00:51:34 +0300

Hi, 

The arabic.el input method shipped with Emacs 23.1.1 (and is currently
in CVS) is missing a few characters when compared to the keyboard
layout mentioned in the same file.

Also this input method directly inserts Lam-alef ligatures from the
Arabic Presentation Forms ranges. This has the effect of contaminating
files with characters that are strictly reserved for presentation
purposes, and should not be inserted by keyboard. (For more
information, see the relevant X.org bug.[1])

The attached patch addresses both these issues, i.e., it adds the
missing characters; and it separates Lam-Alef ligatures into a list of
two letters (Lam, and a suitable Alef).

Footnotes: 
[1] https://bugs.launchpad.net/xorg-server/+bug/62587

--- arabic.el.~1.5.~	2009-05-24 14:13:00.000000000 +0300
+++ arabic.el	2009-08-13 18:12:16.000000000 +0300
@@ -40,42 +40,42 @@
 
 (quail-define-rules
  ("`" ?ذ)
+ ("~" ?ّ)
 
  ("Q" ?َ)
  ("W" ?ً)
  ("E" ?ُ)
  ("R" ?ٌ)
- ("T" ?ﻹ)
+ ("T" ["لإ"])
  ("Y" ?إ)
  ("U" ?`)
  ("I" ?÷)
  ("O" ?×)
  ("P" ?؛)
+ ("{" ?<)
+ ("}" ?>)
 
  ("A" ?ِ)
  ("S" ?ٍ)
  ("D" ?])
  ("F" ?[)
- ("G" ?ﻷ)
+ ("G" ["لأ"])
  ("H" ?أ)
  ("J" ?ـ)
  ("K" ?،)
  ("L" ?/)
- (";" ?:)
 
  ("Z" ?~)
  ("X" ?ْ)
  ("C" ?})
  ("V" ?{)
- ("B" ?ﻵ)
+ ("B" ["لآ"])
  ("N" ?آ)
  ("M" ?')
  ("<" ?,)
  (">" ?.)
  ("?" ?؟)
 
- ("`" ?ذ)
-
  ("q" ?ض)
  ("w" ?ص)
  ("e" ?ث)
@@ -86,6 +86,8 @@
  ("i" ?ه)
  ("o" ?خ)
  ("p" ?ح)
+ ("[" ?ج)
+ ("]" ?د)
 
  ("a" ?ش)
  ("s" ?س)
@@ -97,19 +99,18 @@
  ("k" ?ن)
  ("l" ?م)
  (";" ?ك)
+ ("'" ?ط)
 
  ("z" ?ئ)
  ("x" ?ء)
  ("c" ?ؤ)
  ("v" ?ر)
- ("b" ?ﻻ)
+ ("b" ["لا"])
  ("n" ?ى)
  ("m" ?ة)
  ("," ?و)
  ("." ?ز)
- ("/" ?ظ)
-
- ("'" ?ط))
+ ("/" ?ظ))
 
 ;; arch-tag: 7e81e2af-5ea5-417f-bfe7-dfa6fd955cb5
 ;;; arabic.el ends here

In GNU Emacs 23.1.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2009-08-03 on raven, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.10402000
configured using `configure  '--build=i486-linux-gnu' '--host=i486-linux-gnu' '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib' '--localstatedir=/var/lib' '--infodir=/usr/share/info' '--mandir=/usr/share/man' '--with-pop=yes' '--enable-locallisppath=/etc/emacs23:/etc/emacs:/usr/local/share/emacs/23.1/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.1/site-lisp:/usr/share/emacs/site-lisp:/usr/share/emacs/23.1/leim' '--with-x=yes' '--with-x-toolkit=athena' '--with-toolkit-scroll-bars' 'build_alias=i486-linux-gnu' 'host_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2' 'LDFLAGS=-g' 'CPPFLAGS=''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default-enable-multibyte-characters: t

Major mode: Info

Minor modes in effect:
  diff-auto-refine-mode: t
  desktop-save-mode: t
  which-function-mode: t
  show-paren-mode: t
  pc-selection-mode: t
  delete-selection-mode: t
  yas/minor-mode: t
  shell-dirtrack-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  global-auto-composition-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  temp-buffer-resize-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

--
Thamer