Subject: bug#45184: 26.1; Private Unicode plains 15 and 16 seem not supported

From: Eli Zaretskii <[email-masked]>
Date: Sat, 12 Dec 2020 09:45:43 +0200

> From: [email-masked] (Janusz S. Bień)
> Cc: [email-masked]
> Date: Sat, 12 Dec 2020 07:19:15 +0100
> 
> On Fri, Dec 11 2020 at 22:10 +02, Eli Zaretskii wrote:
> > severity 45184 wishlist
> 
> This is a bug report, not a feature request.

It is a report about a missing functionality, thus a feature request.

> > That's because Emacs has no idea that you are using SPUA planes for
> > Polish.
> 
> The fact that I want to use the characters for Polish is irrelevant.

Not the way Emacs looks up fonts installed on the system.  It uses the
character's script and then a database of representative script
characters to find appropriate candidate fonts.

> > You need to tell Emacs about that by augmenting your fontset.
> 
> The PUA from the Basic Multulingual Plane are used by me for years and
> do not require doing anything with the fontset. For example, LATIN SMALL
> LETTER LONG S WITH FLOURISH (coming from the Medieval Unicode Font
> Initiative) is displayed without problem and the appropriate font is
> found automatically:
> 
>             character:  (displayed as ) (codepoint 59575, #o164267, #xe8b7)
>     xft:-psbk-Junicode-normal-normal-normal-*-15-*-*-*-*-0-iso10646-1 (#x94C)

AFAIK, this happens by sheer luck.

Of course, my expertise in this part of Emacs is rather limited, so I
might be missing something.  Corrections with explanations are
welcome.

> > (And even after you do that, there could be problems, because Emacs
> > doesn't treat PUA ranges of Unicode codepoints as characters.)
> 
> Really? What do you exactly mean? My experience contradicts this
> statement.

Please look at the various settings of character-related databases in
Emacs: they basically deny PUA codepoints any reasonable character
properties.  IOW, Emacs doesn't know anything about these codepoints,
in terms of the character attributes and properties it needs for
proper support.  Font selection is just the tip of the iceberg.

The feature we miss is some facility to tell Emacs the semantics of a
range of PUA codepoints, so that the rest of the code will support
them properly and correctly.

> I think the Emacs code just for some reason limits the range of the
> Unicode characters, and the limitation should be removed.

Any evidence that such a limitation exists and/or where does it
happen?