Subject: Re: bug#51638: 26.1; Writing Romanian Characters

From: [email-masked]
Date: Sun, 7 Nov 2021 02:03:12 +0100

Eli Zaretskii wrote:
>
> Please try the patch below.  After applying the patch, typing "s ,"
> will show two variants in the echo-area, and you can choose between
> them with C-f/C-b and the arrow keys.
>
> Is that a satisfactory solution?

The solution is satisfactory for personal use. Thank you very much.
But there the following issues:

1) The patch is not complete for Romanian. A solution for Romanian
     should also handle the T and t letters. I send you attached a patch
     based on yours that handles also these letters

2) For example if I try to type the Romanian word "Șes" then when I
     try  to write the "S WITH COMMA", after I type "S" ","  and finally
     a "C-f" to select my letter then best for a user would to type the
     next letter  that follows in his/her word ("e" in this case). But it
     doesn't work. If the user types "e" then the first choice is inserted
     in the buffer. The user must select the second letter with an ENTER.

3) For general use a better solution should exist because it is not
     very user  friendly to type so many characters to select your letter.
     Probably a true  Romanian language environment based on
     ISO-8859-16 should be provided.  The actual choice of ISO-8859-2
     for the Romanian environment probably is not the best.

    For example I will modify your patch to insert my ISO-8859-16
    characters instead of those in ISO-LATIN-2. Because if I write Romanian
    I never have to interact with the s an t variants in ISO-LATIN-2.

That's all. Thank you.
Cristian

> diff --git a/lisp/leim/quail/latin-post.el b/lisp/leim/quail/latin-post.el
> index 8329fff..78ae896 100644
> --- a/lisp/leim/quail/latin-post.el
> +++ b/lisp/leim/quail/latin-post.el
> @@ -215,7 +215,15 @@
>     others     |    /    | s/ -> ß
>   
>   Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\='
> -" nil t nil nil nil nil nil nil nil nil t)
> +"
> + '(("\C-?" . quail-delete-last-char)
> +   (">" . quail-next-translation)
> +   ("\C-f" . quail-next-translation)
> +   ([right] . quail-next-translation)
> +   ("<" . quail-prev-translation)
> +   ("\C-b" . quail-prev-translation)
> +   ([left] . quail-prev-translation))
> + t nil nil nil nil nil nil nil nil t)
>   
>   (quail-define-rules
>    ("A'" ?Á)
> @@ -246,7 +254,7 @@
>    ("R'" ?Ŕ)
>    ("R~" ?Ř)
>    ("S'" ?Ś)
> - ("S," ?Ş)
> + ("S," "ŞȘ") ; the second variant is for Romanian
>    ("S~" ?Š)
>    ("T," ?Ţ)
>    ("T~" ?Ť)
> @@ -286,7 +294,7 @@
>    ("r'" ?ŕ)
>    ("r~" ?ř)
>    ("s'" ?ś)
> - ("s," ?ş)
> + ("s," "şș") ; the second variant is for Romanian
>    ("s/" ?ß)
>    ("s~" ?š)
>    ("t," ?ţ)
>
>
>

--- /usr/share/emacs/26.1/lisp/leim/quail/latin-post.el	2021-11-07 01:15:43.545644339 +0100
+++ with-t/latin-post.el	2021-11-07 00:51:48.914144632 +0100
@@ -215,7 +215,15 @@
   others     |    /    | s/ -> ß
 
 Doubling the postfix separates the letter and postfix: e.g. a\\='\\=' -> a\\='
-" nil t nil nil nil nil nil nil nil nil t)
+"
+ '(("\C-?" . quail-delete-last-char)
+   (">" . quail-next-translation)
+   ("\C-f" . quail-next-translation)
+   ([right] . quail-next-translation)
+   ("<" . quail-prev-translation)
+   ("\C-b" . quail-prev-translation)
+   ([left] . quail-prev-translation))
+ t nil nil nil nil nil nil nil nil t)
 
 (quail-define-rules
  ("A'" ?Á)
@@ -246,9 +254,9 @@
  ("R'" ?Ŕ)
  ("R~" ?Ř)
  ("S'" ?Ś)
- ("S," ?Ş)
+ ("S," "ŞȘ") ; the second variant is for Romanian
  ("S~" ?Š)
- ("T," ?Ţ)
+ ("T," "ŢȚ") ; the second variant is for Romanian
  ("T~" ?Ť)
  ("U'" ?Ú)
  ("U:" ?Ű)
@@ -286,10 +294,10 @@
  ("r'" ?ŕ)
  ("r~" ?ř)
  ("s'" ?ś)
- ("s," ?ş)
+ ("s," "şș") ; the second variant is for Romanian
  ("s/" ?ß)
  ("s~" ?š)
- ("t," ?ţ)
+ ("t," "ţț") ; the second variant is for Romanian
  ("t~" ?ť)
  ("u'" ?ú)
  ("u:" ?ű)