[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: fribidi question



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]