Subject: Re: bug#6860: allow user to see harbored smuggled fugitive LEFT-TO-RIGHT MARK hiding in his files

From: Eli Zaretskii <[email-masked]>
Date: Sun, 15 Aug 2010 08:59:41 -0400

> From: [email-masked]
> Date: Sun, 15 Aug 2010 17:05:36 +0800
> Cc: 
> 
> Another half day delay to my project due to some stupid
> 
>              character: ‎ (8206, #o20016, #x200e)
>      preferred charset: unicode (Unicode (ISO10646))
>             code point: 0x200E
>        name: LEFT-TO-RIGHT MARK
> 
> And &%$#@ emacs cooperating with it to keep it hidden.
> 
> So how do I get it to show up?

Why do you care about this character more than you do about any
others?  What is so special about it that's worth half a day of your
time, and give birth to such emotions?

Anyway, characters such as LRM should be automatically composed with
the character that follows them, and then they will be invisible.  But
the necessary infrastructure in Emacs is not yet ready, so for now
they look like blanks.  This should be solved before Emacs 24 is
released.

> Use the whitespace.el stuff.

whitespace.el does not yet support this and other similar characters
(such as ZWJ).  Plan is to add them to whitespace.el, so you should be
able to use it to reveal these formatting codes, even when they are
auto-composed as described above.

> All I want to do is make that D*MN LEFT-TO-RIGHT MARK character show up,
> without making a whole lot of other **** show up.

To make it show up, or just to find it?  For the latter, you could
just search for it.

> OK, so be it. So how to make LEFT-TO-RIGHT MARK visible, without a whole
> lot of other side effects?

You could use the display tables for that.  For example:

 (aset standard-display-table ?‎ (vconcat ">"))

This will show the LRM as '>'.  You can use fancier characters in the
same manner, of course.

> Well there is this three byte big piece of s*it hiding
> in my files with emacs in cahoots with the ethno-backwards writing
> conspiracy to keep it hidden, with middle-east funding surely!

These characters are there for a reason.  Without them, display of
bidirectional text will be incorrect, sometimes entirely illegible.