summaryrefslogtreecommitdiff
path: root/TODO
blob: aed3d2464f84af4f870839919fdd815b52bc3c0c (plain)
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
Implementation issues:

* FriBidiEnv type should be defined that is to hold all global variables
  and should be passed as environment to all fribidi functions.

* packtab.c should produce outputs with much fewer symbols, with the idea
  of putting different tables in one, and store the offsets instead of
  pointers.

* Add const keywords all over the source.

* with --without-charsets, fribidi char set converters use iconv internally.

* Update CapRTL with new Unicode reference version.

* Revise Reorder api, in fribidi_main.c reorder after link break.

* Add an option to fribidi_main.c to assume two consecutive returns as
  paragraph separators.

* Change fribidi_main.c to act like 'bidiv' if argv[0] == "bidiv".

* Fix iconv problem: Check for old iconvs (without wchar_t, without
  byteorder UTF-32 or UCS-4 types).

* When there is no glibc, libiconv should be linked when --without-charset
  is enabled.

* Design better apis to do reorder based on available levels, remove
  explicit marks then calculate position maps, ....

* Revise fribidi_util.c, add some functions, update other to support explicit
  marks, and too many embedding levels, eg. fribidi_map_range.

* Charset converters and fribidi_analyse change API to allocate mem if
  NULL is passed to them.

BiDi algorithms issues:

* 

General issues:

* Better documentation.

* Write notes and a reference implementation for the following interactions
  with fribidi:

    - Terminal editing with cursor key interaction, e.g. through curses.
      No mouse or cut and paste interaction.

    - Like above (with fixed width fonts?) but in an GUI environment
      where the mouse may be used to position the cursor.

    - Like above but with the ability to do a mouse selection. At least
      in logical mode, possibly in visual mode.

    - Like above but with proportional fonts.

    - Like above with proportional fonts and character attributes.

    - Like above but with kerning between characters.

* Write a description of the needed steps to convert a LTR editor into a
  BiDi aware editor.

* Make interfaces to other scripting languages if there is any interest.

* Consider the implications of a minimal incremental algorithm for
  adding a single character.

* Add handling of precomposed and presentation unicode chars when converting
  to 8-bit encodings (breaking into several chars, or better match)

* Persian 8-bit encoding ISIRI-3342 has the notion of strong typed chars like
  spaces etc (all the characters in the range 0x00-0x7f are strongly typed
  left-to-right, and sometimes have duplicates in 0x80-0xff as a strongly
  typed right-to-left version.  several chars in the range 0xa0-0xbf have
  exact unicode counterparts; but others (and all in the range 0x80-0x9f,
  and 0xff) have not; so how should that be handled when converting to
  unicode to preserve at best the direction information?