Hi all,

Although the commit (and log) gives enough information by itself, I
decided to write this post to further clarify the subject.

This commit changed the font engine, textblock object and text object to
use Eina_Unicode instead of utf8 internally. This commit does not affect
API in any way (except for engine writing API which is pretty internal).
There are a couple of reasons for this commit:
1. With utf8 you can't jump to specific string indexes for example: the
4th letter of a string.
2. All the internal font functions already work with Unicode code
points, so we had to convert encodings all the time.
3. The BiDi algorithm in general and fribidi in specific, require the
text to be encoded in Unicode because jumping between text positions,
resolving visual<->logical indexes and reordering letters are pretty
common there.
4. This cleaned the code quite a lot, because retrieving specific
indexes was now made easier.

In this commit I also started relying on the "new" FriBiDi version
(0.19.2 which was released an year and a half ago) as implied in my
previous mail about BiDi.

This commit also includes a bit of renaming, evas_intl_* got renamed to
evas_bidi_*, evas_common_font_utf8_* got renamed to
evas_common_encoding_utf8_* (the previous ones still exist but marked as
deprecated).

Currently, the changes I did in the font engine are pretty clean, though
I can't say same about the textblock object. In the textblock object I
still do stuff as if the string is stored in utf8, that is, I still kept
the current design and didn't do any major changes (that change flow too
dramatically). The code works, and it's not uglier than it was, it's
just not a clean as it will be once I get over with it. I had to commit
now in order to allow raster to "uncrustify" everything, let other
people continue to work on other parts of Evas without a merging hell,
and because it's better than how it was.

I will overhaul the textblock object in the following weeks (hopefully
will do a small API breaking commit tomorrow in order to make get it in
efl 1.0) and after that will redesign textblock to work more naturally
with unicode.

I did a lot of testing, but I still can't be sure everything works ok,
to me it seemed that everything is exactly as it was except for the bugs
I fixed. If you find anything fishy, please let me know. Sorry for the
big commit, but it includes many interdependent changes. It's also time
to mention I did *not* test on Mac OS/Windows/Exotic engines, although I
did modify the code where needed, I can't assure it works there, so
again, if you find anything, drop me an email.

If you have any questions, please let me know,
Tom.


------------------------------------------------------------------------------
The Palm PDK Hot Apps Program offers developers who use the
Plug-In Development Kit to bring their C/C++ apps to Palm for a share 
of $1 Million in cash or HP Products. Visit us here for more details:
http://ad.doubleclick.net/clk;226879339;13503038;l?
http://clk.atdmt.com/CRS/go/247765532/direct/01/
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to