[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: fribidi question
- To: developer at arabeyes dot org
- Subject: Re: fribidi question
- From: Behdad Esfahbod <behdad at bamdad dot org>
- Date: Fri, 18 Jan 2002 21:58:18 +0330 (IRT)
On Wed, 16 Jan 2002, Chahine M. Hamila wrote:
> Sorry for the late reply, I can't spend much time on computers these
> days...
>
> > The current api is not complete, the user cannot be conformant about
> > line breaking and reordering after line breaks, a new api is needed,
>
> You mean, the current implementation is not fully conformant? I don't
> remember if UAX#9 says something about line breaks, but what is it
> exactly about?
Quoting UAX#9:
<quote>
Reordering Resolved Levels
The following algorithm describes the logical process of finding the
correct display order. As described before, this logical process is
not necessarily the actual implementation, which may diverge for
efficiency as long as it produces the same results. As opposed to
resolution phases, this algorithm acts on a per-line basis, and is
applied after any line wrapping is applied to the paragraph.
The process of breaking a paragraph into one or more lines that fit
within particular bounds is outside the scope of the bidirectional
algorithm. Where character shaping is involved, it can be somewhat
more complicated (see Section 8.2 Arabic). Logically there are the
following steps:
* The levels of the text are determined according to the
bidirectional algorithm.
* The characters are shaped into glyphs according to their context
(taking the embedding levels into account for mirroring!).
* The accumulated widths of those glyphs (in logical order) are used
to determine line breaks.
* For each line, rules L1-L4 are used to reorder the characters on
that line.
* The glyphs corresponding to the characters on the line are
displayed in that order.
</quote>
> > I'm trying to design it, also we are to port fribidi to some portable
> > devices, for that we need to redesign the api from scratch too, to
> > have a FriBidiEnv type that holds all users settings, each function
> > then should get FriBidiEnv *env as its first parameter.
> >
> Ok but plz preserve backward compatibility;)
OK :-), we will preserve it until version 1.0.0, and then you can have
both fribidi0 and fribidi1 installed to have the old api, or maybe
some package like fribidi-compat for that.
> > I had a look, I will make deb packages as soon as I find out how, and
> > can you please tell me why the lib name is libfribidi0 and just not
> > libfribidi? I have seen this '0' in mandrake rpms too.
>
> The 9 indicates a major. That's for making it possible for different
> incompatible major versions of libraries to coexist as packages for
> software that might require one version or another. Say, you have a
> piece which requires fribidi<0.10, it will be libfribidi0, and another
> one that requires a version >=0.10 that could be named, say,
> libfribidi010... Both would be installed without conflict to satisfy the
> dependencies.
I fixed fribidi.spec.in to generate these packages.
> > And about RPMs, don't worry about them, we are going to release RPMs
> > with each version too, 0.10.1 as a bugfix of 0.10.0 will be released
> > today or tommorow.
>
> Fine, I think I'm going to switch soon anyway. I'm going to study that
> with the Akka package creators.
Released, get it.
> Thanks for the answer...
> Salaam,
> Chahine
Yours,
--
Behdad
28 Dey 1380, 2002 Jan 18
[Finger for Geek Code]