This file is indexed.

/usr/share/xemacs21/mule-packages/etc/mule-doc/arabic.txt is in xemacs21-mulesupport 2009.02.17.dfsg.2-2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
HOW TO READ & WRITE ARABIC				94.8.4 TAKAHASHI Naoto

1. STARTING UP

1.1 INVOKING MULE

    You must invoke Mule as an X client if you want to use Arabic.
    Make sure that the environment variable DISPLAY is properly set.
    So far only 16 dot font is available for Arabic.  First, set you X
    resources appropriately, then invoke Mule from a shell window with
    the following command to get enough line spaces.

	% mule -fsp 0+9


1.2 ENTERING AND LEAVING ARABIC-MODE

    Hit C-] to enter arabic-mode.  Whenever you are in arabic-mode,
    you are also in visual-mode.  Hitting C-] again brings you back
    from arabic-mode, but you are still in visual-mode.  Hitting C-]
    in visual-mode brings you into arabic-mode.  You can exit
    visual-mode by hitting C-c C-c.  See the figure below.


			           C-c C-c
	     +----------------------------------------------+
             |   +--------------------+                     |
	     | 	 |      C-c C-c       | 	            |
	     V   V                    |                     |
	+-------------+         +-----------+   C-]   +-----------+
	|             |   C-]   |arabic-mode| ------> |           |
	|initial state| ------> |    and    |         |visual-mode|
	|             |		|visual-mode| <------ |           |
	+-------------+ 	+-----------+   C-]   +-----------+


    The string "Arabic L2R" or "Arabic R2L" in mode-line means that
    you are in both arabic-mode and visual-mode.  If you see "L2R" or
    "R2L" but not "Arabic" in mode-line, you are in visual-mode but
    not in arabic-mode.


1.3 DISPLAY DIRECTION

    Each buffer in Mule has a buffer local variable called
    "display-direction".  If this variable is set to nil (this is the
    default), the lines begin from the left edge of the screen.  On
    the other hand, if display-direction is non-nil, the lines are
    aligned to the right and texts are written from right to left.

    If you are in visual-mode, the value of display-direction is
    reflected in mode-line: if it is nil "L2R" is displayed; if it is
    non-nil "R2L" is displayed.  In visual-mode, you can set
    display-direction to nil by typing 'C-c <', and to t by typing
    'C-c >'.

    If you read a file (C-x C-f) which has the extension ".l2r", the
    buffer automatically goes in visual-mode and display-direction is
    set to nil.  Likewise, if a file has the extension ".r2l", the
    buffer automatically goes in visual-mode and display-direction is
    set to t.


2. EDITING ARABIC TEXT

2.1 INPUT

    In arabic-mode, you can input Arabic characters and Arabic digits
    from keyboard.  To input ASCII characters or ASCII digits, you
    have to exit arabic-mode by hitting C-].  The translation table is
    given below.  When you are in Arabic-mode, you can see the
    keyboard layout by C-z.

    Please note that this table is by no means a fixed one --- it is
    just a quick hack.  Your suggestion on Arabic keyboard layout will
    be greatly appreciated.


	translate table in arabic-mode
	------------------------------
	"	isolated hamza
	a~	madda above alif
	a'	hamza above alif
	w'	hamza above waaw
	a''	hamza below alif
	y'	hamza above yaa
	a	alif
	b	baa
	o	taa marbuTa
	t	taa
	c	thaa
	j	jiim
	H	Haa
	K	khaa
	d	daal
	x	dhaal
	r	raa
	z	zaay
	s	siin
	/	shiin
	S	Saad
	D	Daad
	T	Taa
	Z	Zaa
	`	ayn
	G	ghayn
	f	faa
	q	qaaf
	k	kaaf
	l	laam
	m	miim
	n	nuun
	h	haa
	w	waaw
	A	alif maqSura
	y	yaa
	C	chim (Farsi)
	g	gaaf (Farsi)
	p	paa  (Farsi)
	X	zhaa (Farsi)
	_	make connection
	|       cut connection


    Appropriate ligature is automatically generated whenever a
    character is input.  Special ligature of laam + alif will be
    generated whenever an alif is input on the left of a laam.  If you
    want to cut the connection between two adjacent Arabic characters,
    type a `|' (vertical bar) at that point in arabic-mode.  An input
    of a character preceded by a `|' produces a glyph which is not
    connected to its right adjacent.  Typing a `_' (underscore)
    connects the two characters at that point, if possible.

    When display-direction is nil (i.e. lines are aligned to left),
    the cursor stays at the same position after an Arabic character is
    inserted. It moves to the right after an Arabic digit or an ASCII
    character is inserted.

    When display-direction is non-nil (i.e. lines are aligned to
    right), the cursor moves to the left after an Arabic character is
    inserted. It stays at the same position after an Arabic digit or
    an ASCII character is inserted.


2.2 DELETION, KILL & YANK

    Use C-d to delete the character under the cursor.  If you are in
    arabic-mode, the necessary ligature will be re-generated after the
    character is deleted.

    DEL key behave differently according to the value of
    display-direction: if the value is nil (aligned to left), it
    deletes a character on the left of the cursor; if the value is
    non-nil (aligned to right), it deletes a character on the right of
    the cursor.  If the display direction and the input character
    direction are the same, lastly input character can be deleted with
    DEL key, no matter what the value of display-direction is.

    M-d (arabic-kill-word), M-DEL (arabic-backward-kill-word), C-k
    (arabic-kill-line) and C-w (arabic-kill-region) remove the
    specified stretch of string and put it in kill-ring.  M-w
    (arabic-copy-region-as-kill) also puts the specified stretch of
    string in kill-ring, but the original text is left unchanged.

    The strings in kill ring can be reinserted in buffer by C-y
    (arabic-yank) and M-y (arabic-yank-pop).

    Make sure that you are in arabic-mode when you kill or yank
    something, otherwise ligature is not maintained, or at the worst,
    unexpected region will be deleted or a garbage string will be
    inserted in the buffer.


2.3 CURSOR MOTION

    The following cursor motion commands are supplied in visual-mode
    and in arabic-mode to handle bi-directional texts easily.  All
    these commands accept an additional prefix numeric argument.


	key	command name			function
	-----------------------------------------------------------------
	C-f	visual-forward-char		move the cursor visually
						forward by 1 character

	C-b	visual-backward-char		move the cursor visually
						backward by 1 character

	C-p	visual-previous-line		move the cursor up
						by 1 line

	C-n	visual-next-line		move the cursor down
						by 1 line

	C-a	visual-beginning-of-line	move the cursor to the
						visual beginning of line

	C-e	visual-end-of-line		move the cursor to the
						visual end of line

	M-f	visual-forward-word		move the cursor visually
						forward by 1 word

	M-b	visual-backward-word		move the cursor visually
						backward by 1 word

	M-<	visual-beginning-of-buffer	move the cursor to the
						visual beginning of buffer

	M->	visual-end-of-buffer		move the cursor to the
						visual end of buffer


    Note that ordinary cursor motion commands (forward-char,
    backward-char, etc.) behave according to the logical order of the
    text, whilst the above commands behave according to the visual
    order.  Compare the difference of the two C-f commands.  (You can
    exit visual-mode by typing "C-c C-c".)


2.4 LR COMMANDS

    Some of you may be confused by the words "forward" and "backward".
    Here is a summary:


		   display-direction	display-direction
		   is nil		is non-nil
	-------------------------------------------------
	forward	        right               left

	backward        left		    right


    If you are using arrow keys to move the cursor, you may want to
    move the cursor to left/right no matter what display-direction is.
    Likewise, you may want the cursor to be put on the left-most
    column when you hit C-a, and on the right-most column when you hit
    C-e.  In such cases, rewrite the key definitions in visual.el and
    arabic.el with the following commands.  These commands are called
    "LR commands" because they act according to the absolute direction
    (left or right) rather than relative direction (forward or
    backward).


	** LR commands in visual-mode **

	command name			function
	--------------------------------------------------------
	visual-move-to-left-char	move the cursor to left
					by one character

	visual-move-to-right-char	move the cursor to right
					by one character

	visual-move-to-left-word	move the cursor to left
					by one word

	visual-move-to-right-word	move the cursor to right
					by one word

	visual-left-end-of-line		move the cursor to the
					leftmost column

	visual-right-end-of-line	move the cursor to the
					rightmost column

	visual-delete-left-char		delete the character on
					the left of visual point

	visual-delete-right-char	delete the character on
					the right of visual point

	visual-kill-left-word		kill one word on the left
					of visual point

	visual-kill-right-word		kill one word on the right
					of visual point


	** LR commands in arabic-mode **

	command name			function
	----------------------------------------------------------
	arabic-delete-left-char		do visual-delete-left-char
					and make Arabic ligature

	arabic-delete-right-char	do visual-delete-right-char
					and make Arabic ligature

	arabic-kill-left-word		do visual-kill-left-word
					and make Arabic ligature

	arabic-kill-right-word		do visual-kill-right-word
					and make Arabic ligature


3. HARDCOPY

  You can use m2ps to get a hardcopy of a file which contains arabic
  characters.  See m2ps.1 for detail.  Note that input files to m2ps
  must be written in *internal* coding system.  To save the content of
  a buffer, use the following command in Mule:

	C-u C-x C-w _filename_ RET *internal* RET

  Please note that the current version of m2ps does not support r2l
  printing direction (flushright mode).  If you try to print a file
  which was created under r2l display direction, it will be printed
  left-aligned.  Furthermore, you may get wrong word order.

4. LIMITATIONS

   There are many limitations in this release.  We need your help.

4.1 NON-SPACING MARKS IN ARABIC

    Only two non-spacing marks, i.e., madda and hamza, are available
    in this release.  Any other marks, e.g. fatHa (short 'a'), Damma
    (short 'u'), kasra (short 'i'), shadda (doubling sign), sukuun (no
    vowel sign), waSla (joining hamza), etc., cannot be displayed.  It
    seems that short vowels and waSla are not necessary to write
    ordinary Arabic text, but shadda is often marked in Arabic
    printings.  Please let me know if shadda is really indispensable,
    in that case I will try to implement shadda in some way.


4.2 FILE FORMAT

    This package uses its own format (coding system) for file I/O.
    You cannot read the files saved in other format, e.g., ISO 8859-6,
    ISO 10646, UNICODE, ArabTeX, xaw, etc.  As a matter of fact, I do
    not know what format is mostly used in the world to save Arabic
    texts.  If you have texts saved in certain format and would like
    to edit them with Mule, please send me the documentation of your
    format.  I will try to implement file I/O routine for that format.


4.3 MISCELLANEOUS LIMITATIONS

    * Tab does not work if display-direction is non-nil.

    * transpose commands and rectangle commands do not work in most cases.


5. ADDRESS

    Bug reports and comments should be sent to this mailing list
    (mule@etl.go.jp) or directly to me (ntakahas@etl.go.jp).  Any
    kinds of suggestions or demands are greatly appreciated.


TAKAHASHI Naoto
Electrotechnical Laboratory, Japan
ntakahas@etl.go.jp