summaryrefslogtreecommitdiff
path: root/lisp/leim/quail/persian.el
diff options
context:
space:
mode:
authorGlenn Morris <rgm@gnu.org>2013-11-26 22:15:06 -0800
committerGlenn Morris <rgm@gnu.org>2013-11-26 22:15:06 -0800
commitcb6c95a394d9a9d2f068bf8ee240f2d2297867d1 (patch)
tree6da24e3ad26db4ab42d800dd78feea2eee3d79d9 /lisp/leim/quail/persian.el
parent4cbac8e94b68297189524f2db456c776bda4ed69 (diff)
downloademacs-cb6c95a394d9a9d2f068bf8ee240f2d2297867d1.tar.gz
Move runtime leim lisp files to lisp/leim directory
This allows us to reuse much of the lisp build and installation machinery, rather than duplicating it. * Makefile.in (abs_builddir, leimdir): Remove. (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory. (epaths-force-w32): No longer set BLD. (leim): Remove. (install-arch-indep): No longer run or install leim. (mostlyclean, clean): No longer run leim rule. (bootstrap-clean): Change leim target. (maintainer-clean): Add leim. (check-declare): Remove leim. * README: Update for leim changes. * configure.ac (leimdir): Remove. (standardlisppath): No more leimdir. * make-dist: Update for files from leim/ now being in lisp/leim/. * doc/lispref/loading.texi (Library Search): * doc/lispref/os.texi (Startup Summary): No more leim directory. * leim/Makefile.in (leimdir): New variable. (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc) (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Generate in $leimdir. (all): Remove compilation, add ja-dic. (leim-list.el): Now PHONY. (setwins, compile-targets, compile-main, clean, mostlyclean) (extraclean): Remove. (bootstrap-clean): Delete all generated files. * leim/README: Update for moved leim/ directory. * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate): Remove manual autoloads; now in loaddefs.el. Disable byte-compile, version-control, autoloads in the output. * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory. (compile-main): Depend on lisp/leim rule. (leim): New rule. * lisp/loadup.el: Move leim-list.el to leim/ subdirectory. * lisp/startup.el (normal-top-level): No more leim directory. * lisp/international/ja-dic-cnv.el (skkdic-convert): Disable version-control and autoloads in output files. * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert): Disable version-control and autoloads in output files. * lisp/leim/quail: Move here from ../leim. * lisp/leim/quail/hangul.el (hangul-input-method-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * nt/README.W32: * nt/addpm.c (env_vars): * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH): * nt/paths.h (PATH_LOADSEARCH): No more leim directory. * src/Makefile.in (leimdir): Now in lisp source directory. ($(leimdir)/leim-list.el): Just use ../leim . * src/epaths.in (PATH_DUMPLOADSEARCH): * src/lread.c (load_path_default): * src/nsterm.m (ns_load_path): No more leim directory. * .bzrignore: Update for relocated leim files.
Diffstat (limited to 'lisp/leim/quail/persian.el')
-rw-r--r--lisp/leim/quail/persian.el526
1 files changed, 526 insertions, 0 deletions
diff --git a/lisp/leim/quail/persian.el b/lisp/leim/quail/persian.el
new file mode 100644
index 00000000000..5eeb0e3d208
--- /dev/null
+++ b/lisp/leim/quail/persian.el
@@ -0,0 +1,526 @@
+;;; persian.el --- Quail package for inputting Persian/Farsi keyboard -*- coding: utf-8;-*-
+
+;; Copyright (C) 2011-2013 Free Software Foundation, Inc.
+
+;; Author: Mohsen BANAN <libre@mohsen.1.banan.byname.net>
+;; X-URL: http://mohsen.1.banan.byname.net/contact
+
+;; Keywords: multilingual, input method, Farsi, Persian, keyboard
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; 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 ISIRI-9147
+;; - (farsi-transliterate-banan) An intuitive transliteration keyboard for Farsi
+;;
+;; Additional documentation for these input methods can be found at:
+;; http://www.persoarabic.org/PLPC/120036
+;;
+
+;;; Code:
+
+(require 'quail)
+
+;;
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; 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
+;; Published at: http://www.isiri.org/portal/files/std/9147.pdf
+;; Re-Published at: http://www.persoarabic.org/Repub/fpf-isiri-9147
+;;
+;;
+;; Specification of Iran's Persian Character Set is also relevant:
+;; فنّاوریِ اطلاعات -- تبادل و شیوه‌ی نمایش اطلاعاتِ فارسی بر اساس یونی کُد
+;; استاندارد ملی ایران ۶۲۱۹ −− نسخهی نهایی
+;;
+;; Institute of Standards and Industrial Research of Iran
+;; Information Technology – Persian Information Interchange and Display Mechanism, using Unicode
+;; ISIRI-6219 Final Version
+;; Published at: http://www.isiri.org/portal/files/std/6219.htm
+;; Re-Published at: http://www.persoarabic.org/Repub/fpf-isiri-6219
+;;
+;; 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" "Persian" " ف" nil
+ "Farsi keyboard based on ISIRI-9147.
+ See http://www.persoarabic.org/PLPC/120036 for additional documentation."
+ nil t t t t nil nil nil nil nil t)
+
+;; Note: the rows of keys below are enclosed in Left-To-Right Override
+;; embedding, to prevent them from being reordered by the Emacs
+;; display engine.
+
+
+;; +----------------------------------------------------------------+
+;; ‭| ۱! | ۲٬ | ۳٫ | ۴﷼ | ۵٪ | ۶× | ۷، | ۸* | ۹( | ۰) | -ـ | =+ | `÷ |‬
+;; +----------------------------------------------------------------+
+;; ‭| ضْ| صٌ| ثٍ| قً| فُ| غِ| عَ| هّ| خ] | ح[ | ج{ | چ} |‬
+;; +------------------------------------------------------------+
+;; ‭| ش‌ؤ | س‌ئ | ی‌ي | ب‌إ | لأ | اآ | ت‌ة | ن« | م» | ک: | گ؛ | \| |‬
+;; +-----------------------------------------------------------+
+;; ‭| ظ‌ك | طٓ| زژ | رٰ| ذB | دٔ| پء | و< | .> | /؟ |‬
+;; +-------------------------------------------+
+
+(quail-define-rules
+ ("1" ?۱)
+ ("2" ?۲)
+ ("3" ?۳)
+ ("4" ?۴)
+ ("5" ?۵)
+ ("6" ?۶)
+ ("7" ?۷)
+ ("8" ?۸)
+ ("9" ?۹)
+ ("0" ?۰)
+ ("-" ?-)
+ ("=" ?=)
+ ("`" ?\u200D) ;; ZWJ -- ZERO WIDTH JOINER اتصال مجازى
+ ("q" ?ض)
+ ("w" ?ص)
+ ("e" ?ث)
+ ("r" ?ق)
+ ("t" ?ف)
+ ("y" ?غ)
+ ("u" ?ع)
+ ("i" ?ه)
+ ("o" ?خ)
+ ("p" ?ح)
+ ("[" ?ج)
+ ("]" ?چ)
+ ("a" ?ش)
+ ("s" ?س)
+ ("d" ?ی)
+ ("f" ?ب)
+ ("g" ?ل)
+ ("h" ?ا)
+ ("j" ?ت)
+ ("k" ?ن)
+ ("l" ?م)
+ (";" ?ک)
+ ("'" ?گ)
+
+ ("z" ?ظ)
+ ("x" ?ط)
+ ("c" ?ز)
+ ("v" ?ر)
+ ("b" ?ذ)
+ ("n" ?د)
+ ("m" ?پ)
+ ("," ?و)
+ ("." ?.)
+ ("/" ?/)
+
+ ("!" ?!)
+ ("@" ?٬)
+ ("#" ?٫)
+ ("$" ?﷼)
+ ("%" ?٪)
+ ("^" ?×)
+ ("&" ?،)
+ ("*" ?*)
+ ("(" ?\))
+ (")" ?\()
+ ("_" ?ـ)
+ ("+" ?+)
+ ("~" ?÷)
+ ("Q" ?ْ) ;; ساکن فارسى
+ ("W" ?ٌ) ;; دو پيش فارسى -- تنوين رفع
+ ("E" ?ٍ) ;; دو زير فارسى -- تنوين جر
+ ("R" ?ً) ;; دو زبر فارسى -- تنوين نصب
+ ("T" ?ُ) ;; پيش فارسى -- ضمه
+ ("Y" ?ِ) ;; زير فارسى -- کسره
+ ("U" ?َ) ;; زبر فارسى -- فتحه
+ ("I" ?ّ) ;; تشديد فارسى
+ ("O" ?\])
+ ("P" ?\[)
+ ("{" ?})
+ ("}" ?{)
+ ("A" ?ؤ)
+ ("S" ?ئ)
+ ("D" ?ي)
+ ("F" ?إ)
+ ("G" ?أ)
+ ("H" ?آ)
+ ("J" ?ة)
+ ("K" ?»)
+ ("L" ?«)
+ (":" ?:)
+ ("\"" ?؛)
+ ("|" ?|)
+ ("Z" ?ك)
+ ("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 qwerty 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.
+;; - communicates 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 inputting 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 --
+;; including 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 inputting
+;; 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 example '\-' 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' 'm'.
+;;
+
+
+(quail-define-package
+ "farsi-transliterate-banan" "Persian" "ب" t
+ "Intuitive transliteration keyboard layout for persian/farsi.
+ See http://www.persoarabic.org/PLPC/120036 for additional documentation."
+ 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" ?ح)
+ ("hh" ?ح)
+ ("kh" ?خ)
+ ("d" ?د)
+ ("Z" ?ذ)
+ ("r" ?ر)
+ ("z" ?ز)
+ ("zz" ?ز)
+ ("zh" ?ژ)
+ ("s" ?س)
+ ("ss" ?س)
+ ("sh" ?ش)
+ ("S" ?ص)
+ ("x" ?ض)
+ ("T" ?ط)
+ ("TT" ?ط)
+ ("X" ?ظ)
+ ("w" ?ع)
+ ("q" ?غ)
+ ("G" ?غ)
+ ("Gh" ?غ)
+ ("GG" ?غ)
+ ("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" ?۳)
+ ("4" ?۴)
+ ("5" ?۵)
+ ("6" ?۶)
+ ("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: علامتِ ضرب
+ ("\\-" ?\u00F7) ;; (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:
+ ("N" ?\u00AB) ;; (ucs-insert #x00AB)« named:
+ ("M" ?\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 - Forbidden Characters -- جدول ۸ - نویسه‌هایِ ممنوع
+;; ;; he ye (ucs-insert 1728) (ucs-insert #x06c0) 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