Subject: Re: bug#28339: 25.2; Emacs shows ZWNJ character (Zero Width non-Joiner) as Space

From: Nima Aryan <[email-masked]>
Date: Sun, 03 Sep 2017 19:31:16 +0000

The problem is specific (as it could be tested) to non-English Alphabet. At
least Persian.

I've tested the 'glyphless-char-display-control' and I can confirm that as
It seems, it's working on English input as expected. For example choosing
to set `Hex box` cause ZWNJ be replaced as hex box. Other options
(including defaults) seems to works as expected.

But the same option (on the same session) does not work as expected  for
Persian (and possibly other similar) alphabets. Actually with exactly same
option using Persian characters a clear normal space is shown instead of
Hex box (completely different behavior). No matter what the option for
non-English alphabet is, the ZWNJ is shown as a normal space character.

Using Persian, ZWNJ really matters. For example while `A+ZWNJ+B` should be
displayed as `AB` it's shown as `A  B` in Persian but `AB` in English. ZWNJ
might not have any application in English but it's vital for some other
languages. It's a kind of an end-immediate-start in continuous scripts. In
Latin alphabet it might have some uses in German language (fl). However it
very important for Persian, Hebrew,, Arabic, Urdu, Hindi and some other
alphabets.

Thanks

p.s. Just as a hypothesis, BiDi most interfere here as well and causes such
behavior.

On Sun, Sep 3, 2017 at 9:42 PM Eli Zaretskii <[email-masked]> wrote:

> > Date: Sun, 03 Sep 2017 20:06:33 +0300
> > From: Eli Zaretskii <[email-masked]>
> > Cc: [email-masked]
> >
> > Emacs traditionally tries not to hide characters from the user.
>
> Maybe there's a misunderstanding on my part: are you saying that you
> do NOT see ZWNJ on display?  In that case, it could be because the
> character is by default displayed as a very thin (1-pixel) space.
> When you move the cursor across it, you should see a very thin bar
> instead of the normal cursor.
>
> In any case, the variable I mentioned lets you change how this
> character is displayed.
>