Subject: Re: bug#52173: `ś' character not available using `C-x 8'

From: Tor Kringeland <[email-masked]>
Date: Mon, 29 Nov 2021 14:55:23 +0100

Robert Pluim <[email-masked]> writes:

>>>>>> On Mon, 29 Nov 2021 04:08:54 +0100, Tor Kringeland <[email-masked]> said:
>
>     Tor> `ś' is a character used in /e.g./ Polish.  Currently `C-x 8 ' s' is not
>     Tor> bound.  Could this be added (along with the capitalized variant)?
>
> I think you'd be better off using one of the two Polish input methods,
> theyʼre far more ergonomic than C-x 8
>
> If youʼre already using a different input method, you can extend it
> with bindings for the Polish characters youʼre interested in, eg
>
> (with-temp-buffer
>   (activate-input-method "latin-prefix") ;; the input method has to be triggered for `quail-package-alist' to be non-nil
>   (let ((quail-current-package (assoc "latin-prefix" quail-package-alist)))
>    (quail-define-rules ((append . t))
>                        ("'s" ?ś))))
>
> Robert
> -- 

Thanks for the tip.

But when I'm writing with another input method, there comes up (not so
often) the need to write some Polish name like Skowroński (also nothing
for `C-x 8 ' n') or Kieślowski and it might be quicker to have the
key-binding rather than changing the input method (or extending it for
all the characters).  The same happens for other languages, like Czech,
where if you're writing a name with a `ž' it'd be faster to do something
like `C-x 8 v e' than to switch to a Czech input method.

I'm attaching a patch for `C-x 8' to include with Polish characters.
It's missing `ż', for which I cannot of a good key-binding for (`C-x 8 .'
is taken).  Any ideas?

>From 0cdec3270bec60284f19d3b852b8e19fb99a48f4 Mon Sep 17 00:00:00 2001
From: Tor Kringeland <[email-masked]>
Date: Mon, 29 Nov 2021 14:49:08 +0100
Subject: [PATCH] Add support for some Polish characters with `C-x 8'

* lisp/international/iso-transl.el: Add support for some Polish
characters.
---
 lisp/international/iso-transl.el | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/lisp/international/iso-transl.el b/lisp/international/iso-transl.el
index 2c7da2b7cd..c59a25efd3 100644
--- a/lisp/international/iso-transl.el
+++ b/lisp/international/iso-transl.el
@@ -86,23 +86,33 @@
     ("\"y"  . [?ÿ])
     ("''"   . [?´])
     ("'A"   . [?Á])
+    ("'C"   . [?Ć])
     ("'E"   . [?É])
     ("'I"   . [?Í])
+    ("'N"   . [?Ń])
     ("'O"   . [?Ó])
+    ("'S"   . [?Ś])
     ("'U"   . [?Ú])
     ("'Y"   . [?Ý])
+    ("'Z"   . [?Ź])
     ("'a"   . [?á])
+    ("'c"   . [?ć])
     ("'e"   . [?é])
     ("'i"   . [?í])
+    ("'n"   . [?ń])
     ("'o"   . [?ó])
+    ("'s"   . [?ś])
     ("'u"   . [?ú])
     ("'y"   . [?ý])
+    ("'z"   . [?ź])
     ("*$"   . [?¤])
     ("$"    . [?¤])
     ("*+"   . [?±])
     ("+"    . [?±])
     (",,"   . [?¸])
+    (",A"   . [?Ą])
     (",C"   . [?Ç])
+    (",a"   . [?ą])
     (",c"   . [?ç])
     ("*-"   . [?])
     ("-"    . [?])
@@ -110,9 +120,11 @@
     ("."    . [?·])
     ("//"   . [?÷])
     ("/A"   . [?Å])
+    ("/L"   . [?Ł])
     ("/E"   . [?Æ])
     ("/O"   . [?Ø])
     ("/a"   . [?å])
+    ("/l"   . [?ł])
     ("/e"   . [?æ])
     ("/o"   . [?ø])
     ("1/2"  . [?½])
-- 
2.34.1