Subject: bug#10966: closed (Re: bug#10966: Fixes for persian/Farsi Input Methods -- leim/quail/persian.el)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 09 Mar 2012 12:26:03 +0000

Your bug report

#10966: Fixes for persian/Farsi Input Methods -- leim/quail/persian.el

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
10966: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=10966
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#10966: Fixes for persian/Farsi Input Methods -- leim/quail/persian.el
From: Eli Zaretskii <[email-masked]>
To: Mohsen BANAN <[email-masked]>
Cc: [email-masked]
Date: Fri, 09 Mar 2012 14:23:15 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

> From: Mohsen BANAN <[email-masked]>
> Date: Wed, 07 Mar 2012 15:56:35 -0800
> 
> Attached are a numbers of bug fixes for
> leim/quail/persian.el (emacs 24.0.94) as a context
> diff.
> 
> The fixes include:
> 
>    - Full compliance to ISIRI-6219. Forbiden
>      characters were eliminated and missing 
>      characters were added.
> 
>    - Layer 3 of ISIRI-9147 is now implemented 
>      with a '\' prefix.
> 
>    - Double entry of characters which were
>      postfixed with 'h' is now supported.
> 
>    - Lots of comment and additional pointers have
>      been added.
> 
> Please apply this context diff.

Thanks, I installed this.

Please note that the diffs were probably generated from some old copy
of the file, not from the one that came with 24.0.94, because the
Copyright line did not include 2012.  I fixed that.

I also fixed a few comments that were way wider than 80 columns, and
enclosed the keyboard layout in the comments in a left-to-right
override embedding, to prevent reordering by the display engine.
After I did that, it turned out the mirrored characters in the layout
need to be manually mirrored, so I did that as well.

The result is available as bzr revision 107539 on the trunk.

I'm closing this bug report.

Thank you for your contribution.

Subject: Fixes for persian/Farsi Input Methods -- leim/quail/persian.el
From: Mohsen BANAN <[email-masked]>
To: [email-masked]
Date: Wed, 07 Mar 2012 15:56:35 -0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Attached are a numbers of bug fixes for
leim/quail/persian.el (emacs 24.0.94) as a context
diff.

The fixes include:

   - Full compliance to ISIRI-6219. Forbiden
     characters were eliminated and missing 
     characters were added.

   - Layer 3 of ISIRI-9147 is now implemented 
     with a '\' prefix.

   - Double entry of characters which were
     postfixed with 'h' is now supported.

   - Lots of comment and additional pointers have
     been added.

Please apply this context diff.

...Mohsen

*** persian.el	2012-03-06 14:31:46.412341948 -0800
--- /usr/local/share/emacs/24.0.94/leim/quail/persian.el	2012-02-13 08:13:25.000000000 -0800
***************
*** 1,9 ****
  ;;; persian.el  --- Quail package for inputting Persian/Farsi keyboard	-*- coding: utf-8;-*-
  
! ;; Copyright (C) 2011  Free Software Foundation, Inc.
  
! ;; Author: Mohsen BANAN  <[email-masked]>
! ;; http://mohsen.1.banan.byname.net/contact
  
  ;; Keywords: multilingual, input method, Farsi, Persian, keyboard
  
--- 1,9 ----
  ;;; persian.el  --- Quail package for inputting Persian/Farsi keyboard	-*- coding: utf-8;-*-
  
! ;; Copyright (C) 2011-2012  Free Software Foundation, Inc.
  
! ;; Author: Mohsen BANAN  <[email-masked]>
! ;; http://mohsen.banan.1.byname.net/contact
  
  ;; Keywords: multilingual, input method, Farsi, Persian, keyboard
  
***************
*** 27,41 ****
  ;;; Commentary:
  ;;
  ;; This file contains a collection of input methods for
! ;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...)
  ;;
  ;; At this time, the following input methods are specified:
  ;;
! ;;  - (farsi-isiri-9149) Persian Keyboard based on Islamic Republic of Iran's ISIR-9147
! ;;  - (farsi-transliterate-banan) An intuitive transliteration keyboard for Farsi
! ;;
! ;; Additional documentaion for these inpput methods can be found at:
! ;;  http://www.persoarabic.org/PLPC/120036
  ;;
  
  ;;; Code:
--- 27,38 ----
  ;;; Commentary:
  ;;
  ;; This file contains a collection of input methods for
! ;; Persian languages - Farsi, Urdu, Pashto (Afghani), ...
  ;;
  ;; At this time, the following input methods are specified:
  ;;
! ;;  - (farsi) Persian Keyboard based on Islamic Republic of Iran's ISIR-9147
! ;;  - (farsi-translit) Intuitive transliteration keyboard layout for Persian
  ;;
  
  ;;; Code:
***************
*** 45,96 ****
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;
! ;; farsi-isiri-9147
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;
  ;; The keyboard mapping defined here is based on:
  ;;
! ;; Institute of Standards and Industrial Research of Iran
! ;; Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards
! ;; ISIRI 9147 -- 1st edition
! ;; http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
! ;;
! ;; The specification is also republished at 
! ;;     http://www.farsiweb.ir/wiki/Image:Isiri-9147.pdf
! ;; and various other sites.
! ;;
! ;; ISIRI-6219 is also relevant.
! ;;
! ;; Layers 1, 2 and 3 of ISIRI-9147 are fully implemented with the exception of the Backslash,
! ;; Alt-Backslash, Shift-Space and Alt-Space keys.
! ;;
! ;; The Backslash key is used to replace کلید با دگر ساز راست‌ -- the Alt or
! ;; Meta key.
! ;;
! ;; Layer 3 is then entered with the Backslash key and Layer 3 is implemented as two letter
! ;; keys as specified in ISIRI-9147.
! ;;
! ;; The character corresponding to Backslash is entered with Backslash-Backslash.
! ;; Alt-Backslash has been moved to Backslash-r.
! ;; Alt-Space has been moved to Backslash-t.
! ;; Shift-Space has been moved to Backslash-y.
! ;;
! ;; With these modifications, farsi-isiri-9147 is a full implementation of ISIRI-9147.
! ;; Additionally, these modifications allow for this implementation to be ascii input stream
! ;; based -- in addition to being a keyboard layout.
! ;;
! ;; If a key on Layer 1 was reserved to replace دگر ساز راست‌ (the Alt or
! ;; Meta key), then farsi-isiri-9147 could have claimed full compliance -- without the need for
! ;; the above description. Perhaps this can be considered a flaw in the base ISIRI-9147
! ;; specification to be addressed in the next revision.
  ;;

  (quail-define-package
!  "farsi-isiri-9147" "Farsi" " ف" nil "Farsi input method.
  
! Based on ISIRI-9147 Layout of Persian Letters and Symbols on Computer Keyboards.
  " nil t t t t nil nil nil nil nil t)
  
  ;; +----------------------------------------------------------------+
--- 42,73 ----
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;
! ;; farsi
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;
  ;; The keyboard mapping defined here is based on:
  ;;
! ;;   Institute of Standards and Industrial Research of Iran
! ;;   Information Technology – Layout of Persian Letters and Symbols on Computer Keyboards
! ;;   ISIRI 9147 -- 1st edition
! ;;   http://www.isiri.org/UserStd/DownloadStd.aspx?id=9147
! ;;
! ;;  Only layers 1 and 2 of ISIRI-9147 are applicable to emacs.
! ;;
! ;;  This input method was built using the Farsi table in X Keyboard Configuration Data Base.
! ;;
! ;;  0) Selected gnome keyboard "USA"
! ;;  1) Created a list of all keys
! ;;  2) Selected gnome keyboard "Iran"
! ;;  3) For each key just press it and get the mapped persian character
  ;;

  (quail-define-package
!  "farsi" "Farsi" " ف" nil "Farsi input method.
  
! Based on ISIRI-9149 Layout of Persian Letters and Symbols on Computer Keyboards.
  " nil t t t t nil nil nil nil nil t)
  
  ;; +----------------------------------------------------------------+
***************
*** 98,106 ****
  ;; +----------------------------------------------------------------+
  ;;   | ضْ| صٌ| ثٍ| قً| فُ| غِ| عَ| هّ| خ] | ح[ | ج} | چ{ |
  ;;   +------------------------------------------------------------+
! ;;    | ش‌ؤ | س‌ئ | ی‌ي | ب‌إ | لأ | اآ | ت‌ة | ن» | م« | ک: | گ؛ | \| |
  ;;    +-----------------------------------------------------------+
! ;;      | ظ‌ك | طٓ| زژ | رٰ| ذB | دٔ| پء | و> | .< | /؟ |
  ;;      +-------------------------------------------+
  
  (quail-define-rules
--- 75,83 ----
  ;; +----------------------------------------------------------------+
  ;;   | ضْ| صٌ| ثٍ| قً| فُ| غِ| عَ| هّ| خ] | ح[ | ج} | چ{ |
  ;;   +------------------------------------------------------------+
! ;;    | شؤ | سئ | یي | بإ | لأ | اآ | تة | ن» | م« | ک: | گ؛ | \| |
  ;;    +-----------------------------------------------------------+
! ;;      | ظك | طٓ| زژ | رٰ| ذB | دٔ| پء | و> | .< | /؟ |
  ;;      +-------------------------------------------+
  
  (quail-define-rules
***************
*** 116,122 ****
   ("0" ?۰)
   ("-" ?-)
   ("=" ?=)
!  ("`" ?\u200D)      ;; ZWJ --  ZERO WIDTH JOINER اتصال مجازى
   ("q" ?ض)
   ("w" ?ص)
   ("e" ?ث)
--- 93,99 ----
   ("0" ?۰)
   ("-" ?-)
   ("=" ?=)
!  ;;("`" ?‍\))  ;; اتصال مجازى
   ("q" ?ض)
   ("w" ?ص)
   ("e" ?ث)
***************
*** 140,146 ****
   ("l" ?م)
   (";" ?ک)
   ("'" ?گ)
! 
   ("z" ?ظ)
   ("x" ?ط)
   ("c" ?ز)
--- 117,123 ----
   ("l" ?م)
   (";" ?ک)
   ("'" ?گ)
!  ("\\" ?\\)  ;; خط اريب وارو
   ("z" ?ظ)
   ("x" ?ط)
   ("c" ?ز)
***************
*** 193,396 ****
   ("X" ?ٓ)
   ("C" ?ژ)
   ("V" ?ٰ)
!  ("B" ?\u200C)     ;; ZWNJ -- ZERO WIDTH NON-JOINER  فاصلهٔ مجازى
   ("N" ?ٔ)  ;; همزه فارسى بالا
   ("M" ?ء)   ;;  harf farsi hamzeh
   ("<" ?>)
   (">" ?<)
   ("?" ?؟)
- 
-  ;; Level 3 Entered with \ 
-  ;;
-  ("\\" ?\\)  ;; خط اريب وارو
-  ("\\\\" ?\\)
-  ("\\~" ?\u007E)
-  ("\\1" ?\u0060)
-  ("\\2" ?\u0040)
-  ("\\3" ?\u0023)
-  ("\\4" ?\u0024)
-  ("\\5" ?\u0025)
-  ("\\6" ?\u005E)
-  ("\\7" ?\u0026)
-  ("\\8" ?\u2022)
-  ("\\9" ?\u200E)
-  ("\\0" ?\u200F)
-  ("\\-" ?\u005F)
-  ("\\+" ?\u2212)
-  ("\\q" ?\u00B0)
-  ;;\\w" ?\u0000)
-  ("\\e" ?\u20AC)
-  ("\\r" ?\u2010)       ;; replacement for Alt-BSL
-  ("\\t" ?\u00A0)       ;; replacement for ALT-SPC
-  ("\\y" ?\u200C)       ;; replacement for SHIFT-SPC
-  ;;("\\u" ?\u0000)
-  ("\\i" ?\u202D)
-  ("\\o" ?\u202E)
-  ("\\p" ?\u202C)
-  ("\\[" ?\u202A)
-  ("\\]" ?\u202B)
-  ;;("\\a" ?\u0000)
-  ;;("\\s" ?\u0000)
-  ("\\d" ?\u0649)
-  ;;("\\f" ?\u0000)
-  ;;("\\g" ?\u0000)
-  ("\\h" ?\u0671)
-  ;;("\\j" ?\u0000)
-  ("\\k" ?\uFD3E)
-  ("\\l" ?\uFD3F)
-  ("\\;" ?\u003B)
-  ("\\'" ?\u0022)
-  ;;("\\z" ?\u0000)
-  ;;("\\x" ?\u0000)
-  ;;("\\c" ?\u0000)
-  ("\\v" ?\u0656)
-  ("\\b" ?\u200D)
-  ("\\n" ?\u0655)
-  ("\\m" ?\u2026)
-  ("\\," ?\u002C)
-  ("\\." ?\u0027)
-  ("\\?" ?\u003F)
-  ;;("\\\\"   ?\u2010)    ;; Moved to backslash r to leave room for BSL-BSL
    )
  
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;
! ;; farsi-transliterate-banan
! ;;
! ;; Given a Qwerty keyboard, use Persian-to-Latin transliteration knowledge
! ;; to reverse transliterate in persian
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
! ;;;  See http://www.persoarabic.org/PLPC/120036 document for more complete
! ;;;  documentation of keyboard bindings and usage instructions.
  ;;;
! ;;
! ;; ISIRI-9147 Persian keyboard is generally not well suited for Iranian-Expatriates
! ;; working/living in the West.
! ;;
! ;; The qwetry keyboard is usually second nature to Persian speaking expatriates and they
! ;; don't want to learn/adapt to ISIRI-9147.  They expect software to adapt to them.
! ;;
! ;; That is what the ``Banan Multi-Character (Reverse) Transliteration Persian Input Method'' does.
! ;;
! ;; The typical profile of the user is assumed to be one who:
! ;;
! ;;  -  can write in farsi (not just speak it).
! ;;  -  is fully comfortable with a qwerty latin keyboard.
! ;;  -  is not familiar with isir-9147 and does not wish to be trained.
! ;;  -  communicatates and writes in a mixed globish/persian -- not pure persian.
! ;;  -  is intuitively familiar with transliteration of farsi/persian into latin based on two letter
! ;;     phonetic mapping to persian characters (e.g., gh ق --  kh خ -- sh ش -- ch چ -- zh ژ.
! ;;
! ;; This transliteration keyboard is designed to be intuitive such that
! ;; mapping are easy and natural to remember for a persian writer.
! ;; It is designed to be equivalent in capability to farsi-isiri-9147
! ;; and provide for inputing all characters enumerated in ISIRI-6219.
! ;;
! ;; farsi-transliterate-banan is of course phonetic oriented.  But it is very different from
! ;; pinglish. Pinglish is word oriented where you sound out the word with latin letters --
! ;; incuding the vowels. farsi-transliterate-banan is letter oriented where you enter the
! ;; latin letter/letters closest to the persian letter. And usually omit vowels.
! ;;
! ;; For some persian characters there are multiple ways of inputing
! ;; the same character. For example both ``i'' and ``y'' produce ی.
! ;; For یک ``yk'', ``y'' is more natural and for این ``ain'', ``i'' is more natural. 
! ;;
! ;; The more frequently used keys are mapped to lower case. The less frequently used letter moves to
! ;; upper case. For example: ``s'' is س and ``S'' is ص.  ``h'' is ح and ``H''
! ;; is ه.
! ;;
! ;; Multi-character input is based on \, &, and / prefix
! ;; characters. The letter 'h' is used as a postfix for the following two character mappings:
! ;; gh ق --  kh خ -- sh ش -- ch چ -- zh ژ  -- Th ة -- Yh ى.
! ;;
! ;;
! ;; Prefix letter \ is used for two character inputs when an alternate form of a letter
! ;; is desired for exampe \% is: ‌÷ when % is: ٪.
! ;;
! ;; Prefix letter & is used for multi-character inputs when special characters are
! ;; desired based on their abbreviate name. For example you can enter &lrm; to enter the
! ;; ``LEFT-TO-RIGHT MARK'' character.
! ;;
! ;; Prefix letter / is used to provide two characters. / is: ``ZERO WIDTH NON-JOINER'' 
! ;; and // is /.
! ;;
! ;; The letter 'h' is used in a number of two character postfix mappings,
! ;; for example ``sh'' ش. So if you need the sequence of ``s'' and ``h'' you
! ;; need to repeat the ``s''. For example: سحر = 's' 's' 'h' 'r'.
! ;;

  (quail-define-package
!  "farsi-transliterate-banan" "Farsi" "ب" t
   "Intuitive transliteration keyboard layout for persian/farsi.
  " nil t t t t nil nil nil nil nil t)

  (quail-define-rules
! ;;;;;;;;;;;  isiri-6219 Table 5 -- جدول ۵ - حروِفِ اصلیِ فارسی 
!  ("W"  ?ء)        ;; hamzeh
!  ("A"  ?آ)        ;; U+0622   & ARABIC LETTER ALEF WITH MADDA ABOVE & الف با  کلاه
!  ("a"  ?ا)        ;; U+0627   & ARABIC LETTER ALEF  & الف
!  ("\\a" ?أ)
!  ("b"  ?ب)        ;; U+0628   & ARABIC LETTER BEH  &
!  ("p"  ?پ)        ;; U+067e   & ARABIC LETTER PEH  &
   ("t"  ?ت)
-  ("tt"  ?ت)
   ("c"  ?ث)
-  ("cc"  ?ث)
   ("j"  ?ج)
   ("ch" ?چ)
!  ("h"  ?ح)
   ("kh" ?خ)
   ("d"  ?د)
   ("Z"  ?ذ)
   ("r"  ?ر)
   ("z"  ?ز)
-  ("zz"  ?ز)
   ("zh" ?ژ)
   ("s"  ?س)
-  ("ss"  ?س)
   ("sh" ?ش)
   ("S"  ?ص)
   ("x"  ?ض)
   ("T"  ?ط)
-  ("TT"  ?ط)
   ("X"  ?ظ)
   ("w"  ?ع)
!  ("q"  ?غ)
   ("f"  ?ف)
!  ("Q"  ?ق)
   ("gh" ?ق)
   ("k"  ?ک)
!  ("kk"  ?ک)
   ("g"  ?گ)
-  ("gg"  ?گ)
   ("l"  ?ل)
   ("m"  ?م)
   ("n"  ?ن)
   ("v"  ?و)
-  ("u"  ?و)
   ("V" ?ؤ)
   ("H"  ?ه)
!  ("y"  ?ی)
!  ("i"  ?ی)
   ("I" ?ئ)
  
- 
- ;;;;;;;;;;;  isiri-6219 Table 6 -- جدول ۶ - حروِفِ  عربی 
-  ("F" ?إ)
-  ("D" ?\u0671)     ;; (ucs-insert #x0671)ٱ   named: حرفِ الفِ وصل
-  ("K"  ?ك)         ;;  Arabic kaf
-  ("Th" ?ة)         ;; ta marbuteh
-  ("Y"  ?ي)
-  ("YY"  ?ي)
-  ("Yh"  ?ى)
- 
- ;;;;;;;;;;;  isiri-6219 Table 4 -- جدول ۴ -  ارقام و علائم ریاضی
-  ("0"  ?۰)
   ("1"  ?۱)
   ("2"  ?۲)
   ("3"  ?۳)
--- 170,262 ----
   ("X" ?ٓ)
   ("C" ?ژ)
   ("V" ?ٰ)
!  ;; ("B" ?‌‌) ;; فاصلهً مجازى
   ("N" ?ٔ)  ;; همزه فارسى بالا
   ("M" ?ء)   ;;  harf farsi hamzeh
   ("<" ?>)
   (">" ?<)
   ("?" ?؟)
    )
  
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;
! ;; farsi-translit
  ;;
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
! ;;;  This is a persian/farsi transliteration keyboard designed
! ;;;  for people who:
! ;;;   - Know how to write in farsi
! ;;;   - Are comfortable with the qwerty keyboard
! ;;;   - Are familiar with two letter phonetic mapping to persian characters
! ;;;     (e.g.: gh, kh, ch, sh, zh, hh, lh)
  ;;;
! ;;;  This translit keyboard is designed to be intuitive such that
! ;;;  mapping are easy and natural to remember for a persian writer.
! ;;;  For some persian characters there are multiple ways of inputting
! ;;;  the same character.
! ;;;
! ;;;  The letter 'h' is used for a number of two character mappings,
! ;;;  this means that some character sequence inputs need to be repeated
! ;;;  followed by a backspace followed by the 'h'.
! ;;;    For example:  سحر = 's' 's' '<bs>' 'h' 'h' 'r'
! ;;;  In practice such sequences are rare.
! ;;;
! 

  (quail-define-package
!  "farsi-translit" "Farsi" "پ" t
   "Intuitive transliteration keyboard layout for persian/farsi.
  " nil t t t t nil nil nil nil nil t)

  (quail-define-rules
!  ("a"  ?ا)
!  ("A"  ?آ)  ;; alef madde
!  ("b"  ?ب)
!  ("p"  ?پ)
   ("t"  ?ت)
   ("c"  ?ث)
   ("j"  ?ج)
   ("ch" ?چ)
!  ("hh" ?ح)
   ("kh" ?خ)
   ("d"  ?د)
   ("Z"  ?ذ)
   ("r"  ?ر)
   ("z"  ?ز)
   ("zh" ?ژ)
   ("s"  ?س)
   ("sh" ?ش)
   ("S"  ?ص)
   ("x"  ?ض)
   ("T"  ?ط)
   ("X"  ?ظ)
   ("w"  ?ع)
!  ("Q"  ?غ)
   ("f"  ?ف)
!  ("q"  ?ق)
   ("gh" ?ق)
   ("k"  ?ک)
!  ("K"  ?ك)  ;;  Arabic kaf
   ("g"  ?گ)
   ("l"  ?ل)
+  ("lh" ?ﻻ)
   ("m"  ?م)
   ("n"  ?ن)
   ("v"  ?و)
   ("V" ?ؤ)
+  ("u"  ?و)
   ("H"  ?ه)
!  ("h"  ?ه)
!  ("th" ?ة)  ;; ta marbuteh
!  ("yh" ?ۀ)  ;; he ye
!  ("y"  ?ى)
!  ("i"  ?ي)
   ("I" ?ئ)
  
   ("1"  ?۱)
   ("2"  ?۲)
   ("3"  ?۳)
***************
*** 400,505 ****
   ("7"  ?۷)
   ("8"  ?۸)
   ("9"  ?۹)
  
!  ("\\/" ?\u066B)     ;; (ucs-insert #x066B)٫   named: ممیزِ فارسی
!  ("\\," ?\u066C)     ;; (ucs-insert #x066C)٬   named: جداکننده‌ی هزارهای فارسی
!  ("%" ?\u066A)       ;; (ucs-insert #x066A)٪   named: درصدِ فارسی
!  ("+" ?\u002B)     ;; (ucs-insert #x002B)+   named: علامتِ به‌اضافه
!  ("-" ?\u2212)     ;; (ucs-insert #x2212)−   named: علامتِ منها
!  ("\\*" ?\u00D7)     ;; (ucs-insert #x00D7)×   named: علامتِ ضرب
!  ("\\%" ?\u007F)    ;; (ucs-insert #x00F7)÷   named: علامتِ تقسیم
!  ("<" ?\u003C)     ;; (ucs-insert #x003C)<   named: علامتِ کوچکتر  
!  ("=" ?\u003D)     ;; (ucs-insert #x003D)=   named: علامتِ مساوی
!  (">" ?\u003E)     ;; (ucs-insert #x003E)>   named: علامتِ بزرگتر
! 
! 
! ;;;;;;;;;;;  isiri-6219 Table 2 -- جدول ۲ -  علائم نقطه گذاریِ مشترک
!  ;;; Space
!  ("."  ?.)  ;;
!  (":" ?\u003A)     ;; (ucs-insert #x003A):   named: 
!  ("!" ?\u0021)     ;; (ucs-insert #x0021)!   named: 
!  ("\\." ?\u2026)     ;; (ucs-insert #x2026)…   named: 
!  ("\\-" ?\u2010)     ;; (ucs-insert #x2010)‐   named: 
!  ("-" ?\u002D)     ;; (ucs-insert #x002D)-   named: 
!  ("|" ?|)
!  ;;("\\\\" ?\)
!  ("//" ?/)
!  ("*" ?\u002A)     ;; (ucs-insert #x002A)*   named: 
!  ("(" ?\u0028)     ;; (ucs-insert #x0028)(   named: 
!  (")" ?\u0029)     ;; (ucs-insert #x0029))   named: 
!  ("[" ?\u005B)     ;; (ucs-insert #x005B)[   named: 
!  ("[" ?\u005D)     ;; (ucs-insert #x005D)]   named: 
!  ("{" ?\u007B)     ;; (ucs-insert #x007B){   named: 
!  ("}" ?\u007D)     ;; (ucs-insert #x007D)}   named: 
!  ("\\<" ?\u00AB)     ;; (ucs-insert #x00AB)«   named: 
!  ("\\>" ?\u00BB)     ;; (ucs-insert #x00BB)»   named: 
! 
! 
! ;;;;;;;;;;;  isiri-6219 Table 3 -- جدول ۳ -  علائم نقطه گذاریِ فارسی
!  ("," ?،)  ;; farsi
!  (";"  ?؛)  ;;
!  ("?"  ?؟)  ;; alamat soal
!  ("_"  ?ـ)  ;;
! 
  
! ;;;;;;;;;;;  isiri-6219 Table 1 -- جدول ۱ -  نویسه‌های کنترلی
!  ;; LF
!  ;; CR
!  ("&zwnj;" ?\u200C) ;; (ucs-insert #x200C)‌   named: فاصله‌ی مجازی
!  ("/" ?\u200C)      ;; 
!  ("&zwj;" ?\u200D)  ;; (ucs-insert #x200D)‍   named: اتصالِ مجازی
!  ("J" ?\u200D)      ;; 
!  ("&lrm;" ?\u200E)  ;; (ucs-insert #x200E)‎   named: نشانه‌ی چپ‌به‌راست
!  ("&rlm;" ?\u200F)  ;; (ucs-insert #x200F)‏   named: نشانه‌ی راست‌به‌چپ
!  ("&ls;" ?\u2028)   ;; (ucs-insert #x2028)    named: جداکننده‌ی سطرها
!  ("&ps;" ?\u2028)   ;; (ucs-insert #x2029)    named: جداکننده‌ی بندها
!  ("&lre;" ?\u202A)   ;; (ucs-insert #x202A)‪   named: زیرمتنِ چپ‌به‌راست
!  ("&rle;" ?\u202B)   ;; (ucs-insert #x202B)   named: زیرمتنِ راست‌به‌چپ
!  ("&pdf;" ?\u202C)   ;; (ucs-insert #x202C)   named: پایانِ زیرمتن
!  ("&lro;" ?\u202D)   ;; (ucs-insert #x202D)   named: زیرمتنِ اکیداً چپ‌به‌راست
!  ("&rlo;" ?\u202D)   ;; (ucs-insert #x202E)   named: زیرمتنِ اکیداً راست‌به‌چپ
!  ("&bom;" ?\uFEFF)   ;; (ucs-insert #xFEFF)   named: نشانه‌ی ترتیبِ بایت‌ها
!  
! 
! ;;;;;;;;;;;  isiri-6219 Table 7 -- جدول ۷ -  نشانه‌هایِ فارسی
!  ("^"  ?َ)  ;; zbar ;; زبر فارسى
!  ("e"  ?ِ)  ;; zir   زير فارسى
!  ("o"  ?ُ)  ;; peesh ;; پيش فارسى -- ضمه
   ("E"  ?ٍ)  ;; eizan ;; دو زير فارسى -- تنوين جر
!  ("#"  ?ً)  ;; دو زبر
   ("O" ?ٌ)  ;; دو پيش فارسى -- تنوين رفع
!  ("~"  ?ّ)  ;; tashdid ;;  تشديد فارسى
!  ("@" ?ْ)   ;; ساکن فارسى
!  ("U" ?\u0653)  ;; (ucs-insert #x0653)ٓ   named: مدِ فارسی
!  ("`" ?ٔ)  ;; همزه فارسى بالا
!  ("C" ?\u0655)  ;; (ucs-insert #x0655)ٕ   named: همزه فارسى پایین 
!  ("$" ?\u0670)  ;; (ucs-insert #x0670)ٰ   named: الفِ مقصوره‌ی فارسی
! 
! 
! ;;;;;;;;;;;  isiri-6219 Table 8 - Forbiden Characters -- جدول ۸ - نویسه‌هایِ ممنوع  
! ;;  ;; he ye (ucs-insert 1728) kills emacs-24.0.90
! ;; arabic digits 0-9
! 
! 
! ;;;;;;;  Latin Extensions
!  ("\\" ?\\)  ;; خط اريب وارو
!  ("\\\\" ?\\)
!  ("\\~" ?~)
!  ("\\@" ?@)
!  ("\\#" ?#)
!  ("\\$" ?\uFDFC)  ;; (ucs-insert #xFDFC)﷼   named: 
!  ("\\^" ?^)
!  ("\\1" ?1)
!  ("\\2" ?2)
!  ("\\3" ?3)
!  ("\\4" ?4)
!  ("\\5" ?5)
!  ("\\6" ?6)
!  ("\\7" ?7)
!  ("\\8" ?8)
!  ("\\9" ?9)
!  ("\\0" ?0)
! 
  )
  
  ;;; persian.el ends here
--- 266,296 ----
   ("7"  ?۷)
   ("8"  ?۸)
   ("9"  ?۹)
+  ("0"  ?۰)
  
!  ("F" ?إ)
!  ("G" ?أ)
  
!  ("~"  ?ّ)  ;; tashdid ;;  تشديد فارسى
!  ("`" ?ٓ)
!  ("e"  ?ِ)  ;; zir   زير فارسى -- فتحه
   ("E"  ?ٍ)  ;; eizan ;; دو زير فارسى -- تنوين جر
!  ("#"  ?ً)  ;; ً tanvin nasb ;; دو زبر فارسى -- تنوين نصب
!  ("@" ?ْ)  ;; ساکن فارسى
!  ("^"  ?َ)  ;; zbar ;; زبر فارسى -- فتحه
!  ("o"  ?ُ)  ;; peesh ;; پيش فارسى -- ضمه
   ("O" ?ٌ)  ;; دو پيش فارسى -- تنوين رفع
!  ("?"  ?؟)  ;; alamat soal
!  ("&" ?ٔ)  ;; همزه فارسى بالا
!  ("$"  ?ء)  ;; hamzeh
!  ("%"  ?÷)  ;;
!  ("*"  ?×)  ;;
!  (";"  ?؛)  ;;
!  (",h" ?،)  ;; farsi
!  (",h" ?,)  ;; latin
!  ("."  ?.)  ;;
!  ("_"  ?ـ)  ;;
  )
  
+ 
  ;;; persian.el ends here