GNU bug report logs - #63361
[PATCH] Improved persian.el transliterations (eg, Hh) + improved bidi insertion

Previous Next

Package: emacs;

Reported by: Mohsen Banan <emacs <at> mohsen.1.banan.byname.net>

Date: Mon, 8 May 2023 07:24:04 UTC

Severity: normal

Tags: patch

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 63361 in the body.
You can then email your comments to 63361 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#63361; Package emacs. (Mon, 08 May 2023 07:24:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Mohsen Banan <emacs <at> mohsen.1.banan.byname.net>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Mon, 08 May 2023 07:24:05 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Mohsen Banan <emacs <at> mohsen.1.banan.byname.net>
To: bug-gnu-emacs <at> gnu.org
Subject: [PATCH] Improved persian.el transliterations (eg, Hh) + improved
 bidi insertion
Date: Sun, 07 May 2023 10:31:33 -0700
[Message part 1 (text/plain, inline)]
Please apply this patch to lisp/leim/quail/persian.el

It fixes some experienced  shortcomings in persian
transliteration input-method.

Thanks,

...Mohsen

[0001-Improved-transliterations-eg-Hh-improved-bidi-insert.patch (text/x-diff, inline)]
From ef285406d47e73eb766b43ce25405f0b73c1115b Mon Sep 17 00:00:00 2001
From: Mohsen Banan <form <at> mohsen.banan.1.byname.net>
Date: Sun, 7 May 2023 10:11:55 -0700
Subject: [PATCH] Improved transliterations (eg, Hh) + improved bidi insertion
 support.

---
 lisp/leim/quail/persian.el | 124 ++++++++++++++++++++++---------------
 1 file changed, 75 insertions(+), 49 deletions(-)

diff --git a/lisp/leim/quail/persian.el b/lisp/leim/quail/persian.el
index 2915f362ee6..77f1a4cd293 100644
--- a/lisp/leim/quail/persian.el
+++ b/lisp/leim/quail/persian.el
@@ -1,8 +1,8 @@
 ;;; persian.el --- Quail package for inputting Persian/Farsi keyboard	-*- coding: utf-8; lexical-binding: t -*-
 
-;; Copyright (C) 2011-2023 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2022 Free Software Foundation, Inc.
 
-;; Author: Mohsen BANAN <libre <at> mohsen.1.banan.byname.net>
+;; Author: Mohsen BANAN <emacs <at> mohsen.1.banan.byname.net>
 ;; URL: http://mohsen.1.banan.byname.net/contact
 
 ;; Keywords: multilingual, input method, Farsi, Persian, keyboard
@@ -23,7 +23,7 @@
 ;; along with GNU Emacs.  If not, see <https://www.gnu.org/licenses/>.
 
 ;;; Commentary:
-
+;;
 ;; This file contains a collection of input methods for
 ;; Persian languages (Farsi, Urdu, Pashto/Afghanic, ...)
 ;;
@@ -395,6 +395,7 @@
  ("u"  ?و)
  ("V" ?ؤ)
  ("h"  ?ه)
+ ("Hh"  ?ه)        ;; to take care of هه -- hHh
  ("y"  ?ی)
  ("i"  ?ی)
  ("I" ?ئ)
@@ -402,7 +403,7 @@
 
 ;;;;;;;;;;;  isiri-6219 Table 6 -- جدول ۶ - حروِفِ  عربی
  ("F" ?إ)
- ("D" ?\u0671)     ;; (insert-char #x0671)ٱ   named: حرفِ الفِ وصل
+ ("D" ?\u0671)     ;; (ucs-insert #x0671)ٱ   named: حرفِ الفِ وصل
  ("K"  ?ك)         ;;  Arabic kaf
  ("Th" ?ة)         ;; ta marbuteh
  ("Y"  ?ي)
@@ -421,40 +422,40 @@
  ("8"  ?۸)
  ("9"  ?۹)
 
- ("\\/" ?\u066B)     ;; (insert-char #x066B)٫   named: ممیزِ فارسی
- ("\\," ?\u066C)     ;; (insert-char #x066C)٬   named: جداکننده‌ی هزارهای فارسی
- ("%" ?\u066A)       ;; (insert-char #x066A)٪   named: درصدِ فارسی
- ("+" ?\u002B)     ;; (insert-char #x002B)+   named: علامتِ به‌اضافه
- ("-" ?\u2212)     ;; (insert-char #x2212)−   named: علامتِ منها
- ("\\*" ?\u00D7)     ;; (insert-char #x00D7)×   named: علامتِ ضرب
- ("\\-" ?\u00F7)    ;; (insert-char #x00F7)÷   named: علامتِ تقسیم
- ("<" ?\u003C)     ;; (insert-char #x003C)<   named: علامتِ کوچکتر
- ("=" ?\u003D)     ;; (insert-char #x003D)=   named: علامتِ مساوی
- (">" ?\u003E)     ;; (insert-char #x003E)>   named: علامتِ بزرگتر
+ ("\\/" ?\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)     ;; (insert-char #x003A):   named:
- ("!" ?\u0021)     ;; (insert-char #x0021)!   named:
- ("\\." ?\u2026)     ;; (insert-char #x2026)…   named:
- ("\\-" ?\u2010)     ;; (insert-char #x2010)‐   named:
- ("-" ?\u002D)     ;; (insert-char #x002D)-   named:
+ (":" ?\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)     ;; (insert-char #x002A)*   named:
- ("(" ?\u0028)     ;; (insert-char #x0028)(   named:
- (")" ?\u0029)     ;; (insert-char #x0029))   named:
- ("[" ?\u005B)     ;; (insert-char #x005B)[   named:
- ("[" ?\u005D)     ;; (insert-char #x005D)]   named:
- ("{" ?\u007B)     ;; (insert-char #x007B){   named:
- ("}" ?\u007D)     ;; (insert-char #x007D)}   named:
- ("\\<" ?\u00AB)     ;; (insert-char #x00AB)«   named:
- ("\\>" ?\u00BB)     ;; (insert-char #x00BB)»   named:
- ("N" ?\u00AB)     ;; (insert-char #x00AB)«   named:
- ("M" ?\u00BB)     ;; (insert-char #x00BB)»   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
@@ -463,24 +464,49 @@
  ("_"  ?ـ)  ;;
 
 
-;;;;;;;;;;;  isiri-6219 Table 1 -- جدول ۱ -  نویسه‌های کنترلی
+;;;;;;;;;;;  isiri-6219 Table 1 (plus bidi updates) - جدول ۱ -  نویسه‌های کنترلی
  ;; LF
  ;; CR
- ("&zwnj;" ?\u200C) ;; (insert-char #x200C)‌   named: فاصله‌ی مجازی
+ ("&zwnj;" ?\u200C) ;; (ucs-insert #x200C)‌   named: فاصله‌ی مجازی
  ("/" ?\u200C)      ;;
- ("&zwj;" ?\u200D)  ;; (insert-char #x200D)‍   named: اتصالِ مجازی
+ ("&zwj;" ?\u200D)  ;; (ucs-insert #x200D)‍   named: اتصالِ مجازی
  ("J" ?\u200D)      ;;
- ("&lrm;" ?\u200E)  ;; (insert-char #x200E)‎   named: نشانه‌ی چپ‌به‌راست
- ("&rlm;" ?\u200F)  ;; (insert-char #x200F)‏   named: نشانه‌ی راست‌به‌چپ
- ("&ls;" ?\u2028)   ;; (insert-char #x2028)
   named: جداکننده‌ی سطرها
- ("&ps;" ?\u2028)   ;; (insert-char #x2029)
   named: جداکننده‌ی بندها
- ("&lre;" ?\u202A)   ;; (insert-char #x202A)‪   named: زیرمتنِ چپ‌به‌راست
- ("&rle;" ?\u202B)   ;; (insert-char #x202B)   named: زیرمتنِ راست‌به‌چپ
- ("&pdf;" ?\u202C)   ;; (insert-char #x202C)   named: پایانِ زیرمتن
- ("&lro;" ?\u202D)   ;; (insert-char #x202D)   named: زیرمتنِ اکیداً چپ‌به‌راست
- ("&rlo;" ?\u202D)   ;; (insert-char #x202E)   named: زیرمتنِ اکیداً راست‌به‌چپ
- ("&bom;" ?\uFEFF)   ;; (insert-char #xFEFF)   named: نشانه‌ی ترتیبِ بایت‌ها
-
+ ("&ls;" ?\u2028)   ;; (ucs-insert #x2028)
   named: جداکننده‌ی سطرها
+ ("&ps;" ?\u2029)   ;; (ucs-insert #x2029)
   named: جداکننده‌ی بندها
+ ;;
+ ;; Byte Order Mark (Historic)
+ ("&bom;" ?\uFEFF)   ;; (ucs-insert #xFEFF)   named: نشانه‌ی ترتیبِ بایت‌ها
+ ;; BIDI Controls
+ ;; -------
+ ;; LEFT-TO-RIGHT MARK (strongly typed LTR character)
+ ("&lrm;" ?\u200E)  ;; (ucs-insert #x200E)   named: نشانه‌ی چپ‌به‌راست
+ ("L" ?\u200E)
+ ;; RIGHT-TO-LEFT MARK (strongly typed RTL character)
+ ("&rlm;" ?\u200F)  ;; (ucs-insert #x200F)   named: نشانه‌ی راست‌به‌چپ
+ ("R" ?\u200F)
+ ;; LEFT-TO-RIGHT ISOLATE (sets base direction to LTR & isolates the embedded)
+ ("&lri;" ?\u2066)   ;; (ucs-insert #x2066)
+ ;; RIGHT-TO-LEFT ISOLATE (sets base direction to RTL & isolates the embedded)
+ ("&rli;" ?\u2067)   ;; (ucs-insert #x2067)
+ ;; FIRST-STRONG ISOLATE (isolates content & sets dir to first strongly typed)
+ ("&fsi;" ?\u2068)   ;; (ucs-insert #x2068)
+ ;; POP DIRECTIONAL ISOLATE (used for RLI, LRI or FSI)
+ ;; EMACS BUG
+ ;; If ("&pdi;" ?\u2069)  is included Emacs fully hangs with a (describe-input-method 'farsi-transliterate-banan)
+ ;;("&pdi;" ?\u2069)   ;; (ucs-insert #x2069)
+ ;; LEFT-TO-RIGHT EMBEDDING (sets base dir to LTR but allows embedded text)
+ ("&lre;" ?\u202A)   ;; (ucs-insert #x202A)   named: زیرمتنِ چپ‌به‌راست
+ ("B" ?\u202A)
+ ;; RIGHT-TO-LEFT EMBEDDING (sets base dir to RTL but allows embedded text)
+ ("&rle;" ?\u202B)   ;; (ucs-insert #x202B)   named: زیرمتنِ راست‌به‌چپ
+ ;; POP DIRECTIONAL FORMATTING (used for RLE or LRE and RLO or LRO)
+ ;; EMACS ANOMOLY --- Why does &pdf not show up in (describe-input-method 'farsi-transliterate-banan)
+ ("&pdf;" ?\u202C)   ;; (ucs-insert #x202C)   named: پایانِ زیرمتن
+ ("P" ?\u202C)
+ ;; LEFT-TO-RIGHT OVERRIDE (overrides the bidirectional algorithm, display LTR)
+ ("&lro;" ?\u202D)   ;; (ucs-insert #x202D)   named: زیرمتنِ اکیداً چپ‌به‌راست
+ ;; RIGHT-TO-LEFT OVERRIDE (overrides the bidirectional algorithm, display RTL)
+ ("&rlo;" ?\u202E)   ;; (ucs-insert #x202E)   named: زیرمتنِ اکیداً راست‌به‌چپ
 
 ;;;;;;;;;;;  isiri-6219 Table 7 -- جدول ۷ -  نشانه‌هایِ فارسی
  ("^"  ?َ)  ;; zbar ;; زبر فارسى
@@ -491,14 +517,14 @@
  ("O" ?ٌ)  ;; دو پيش فارسى -- تنوين رفع
  ("~"  ?ّ)  ;; tashdid ;;  تشديد فارسى
  ("@" ?ْ)   ;; ساکن فارسى
- ("U" ?\u0653)  ;; (insert-char #x0653)ٓ   named: مدِ فارسی
+ ("U" ?\u0653)  ;; (ucs-insert #x0653)ٓ   named: مدِ فارسی
  ("`" ?ٔ)  ;; همزه فارسى بالا
- ("C" ?\u0655)  ;; (insert-char #x0655)ٕ   named: همزه فارسى پایین
- ("$" ?\u0670)  ;; (insert-char #x0670)ٰ   named: الفِ مقصوره‌ی فارسی
+ ("C" ?\u0655)  ;; (ucs-insert #x0655)ٕ   named: همزه فارسى پایین
+ ("$" ?\u0670)  ;; (ucs-insert #x0670)ٰ   named: الفِ مقصوره‌ی فارسی
 
 
 ;;;;;;;;;;;  isiri-6219 Table 8 - Forbidden Characters -- جدول ۸ - نویسه‌هایِ ممنوع
-;;  ;; he ye (insert-char 1728)  (insert-char #x06c0) kills emacs-24.0.90
+;;  ;; he ye (ucs-insert 1728)  (ucs-insert #x06c0) kills emacs-24.0.90
 ;; arabic digits 0-9
 
 
@@ -508,7 +534,7 @@
  ("\\~" ?~)
  ("\\@" ?@)
  ("\\#" ?#)
- ("\\$" ?\uFDFC)  ;; (insert-char #xFDFC)﷼   named:
+ ("\\$" ?\uFDFC)  ;; (ucs-insert #xFDFC)﷼   named:
  ("\\^" ?^)
  ("\\1" ?1)
  ("\\2" ?2)
-- 
2.30.2


Reply sent to Eli Zaretskii <eliz <at> gnu.org>:
You have taken responsibility. (Mon, 08 May 2023 12:29:02 GMT) Full text and rfc822 format available.

Notification sent to Mohsen Banan <emacs <at> mohsen.1.banan.byname.net>:
bug acknowledged by developer. (Mon, 08 May 2023 12:29:02 GMT) Full text and rfc822 format available.

Message #10 received at 63361-done <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Mohsen Banan <emacs <at> mohsen.1.banan.byname.net>
Cc: 63361-done <at> debbugs.gnu.org
Subject: Re: bug#63361: [PATCH] Improved persian.el transliterations (eg,
 Hh) + improved bidi insertion
Date: Mon, 08 May 2023 15:29:32 +0300
> From: Mohsen Banan <emacs <at> mohsen.1.banan.byname.net>
> Date: Sun, 07 May 2023 10:31:33 -0700
> 
> Please apply this patch to lisp/leim/quail/persian.el
> 
> It fixes some experienced  shortcomings in persian
> transliteration input-method.

Thanks, installed on the emacs-29 branch.

Please in the future try to follow our conventions for commit log
messages more closely.  CONTRIBUTE explains how to do that, and you
will find plenty of examples by just running "git log".




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 06 Jun 2023 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 325 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.