How right-to-left characters are handled?

1. Right-to-left character set

In Mule, each character set has the attribute 'direction'.
The value is 0 (l2r, left-to-right) or 1 (r2l,
right-to-left).  For the moment, Mule has two r2l character
sets, Hebrew (ISO8859-1) and ASCII-r2l (private).  The
latter is for provide r2l space and punctuation characters.
Consecutive r2l characters are shown from right to left on
the screen.

Here after, we denote r2l characters by capital letters and
l2r characters by small letters in strings.  Punctuation
charcaters (e.g. period) are all normal ASCII.  For r2l
space and punctuations, we use a letter '_' (underscore).

2. Direction of buffer

Each buffer also has the attribute 'direction' (buffer local
varibale 'display-direction').  By default, the value is nil
(means l2r direction).  Provided that a buffer contains:
	"this is a HEBREW word."
if the direction is nil (l2r), what you see on your screen is:
	+----------------------------+
	|this is a WERBEH word.      |
	|                            |
	+----------------------------+
but, if the direction is non-nil (r2l), what you see is:
	+----------------------------+
	|      this is a WERBEH word.|
	|                            |
	+----------------------------+
So, for editing Hebrew, you'ld better set the direction to
r2l by toggle-display-direction (C-x C-k r).

3. Double cursor (X only)

If the value of 'r2l-double-cursor' is non-nil, when POINT
is in between r2l char and l2r (normal) char, two cursor are
displayed to denote insertion points for both types of
character.  For instance, in the above example, when you
move POINT forward one by one, the cursor changes as
follows:
	|this is a WERBEH word.      |
	        ^
	|this is a WERBEH word.      |
	         ^
	|this is a WERBEH word.      |
		  ^     ^
	|this is a WERBEH word.      |
	               ^
	|this is a WERBEH word.      |
	              ^
	|this is a WERBEH word.      |
		     ^
	|this is a WERBEH word.      |
	            ^
	|this is a WERBEH word.      |
	           ^
	|this is a WERBEH word.      |
	           ^     ^
	|this is a WERBEH word.      |
			  ^
4. Highlighing characters of reverse direction

If the value of 'highlight-reverse-direction' is non-nil
(default), a character whose direction is different from
that of the current buffer is highlighted by gray-color (or
background mesh).

5. r2l visual inputting
