Some thoughts about BiDi Quirks Handling

From: Omer Zak (omerz@actcom.co.il)
Date: Sat Sep 21 2002 - 06:12:10 EDT

  • Next message: Martin Sevior: "Re: RTF idea"

    Due to Microsoft's actions, there are more than one version of BiDi
    algorithm in use. The Hebrew versions of different MS-Word versions
    implement slightly different BiDi algorithms. I don't know what is the
    situation in Arabic and Persian.

    In order for AbiWord and other Free Software word processors to fully
    replace Microsoft wordprocessors, it must be possible for them to
    faithfully import files produced by Microsoft wordprocessors, in *.doc
    and/or *.rtf formats.

    But in addition to support for those file formats, the Free Software
    wordprocessors need to implement compatible BiDi algorithms, so that the
    imported documents will look the same in both Microsoft wordprocessors and
    in Free wordprocessors.

    The question is how to accommodate the above.

    Possible approaches:
    --------------------
    1. Implement few "quirks" flags in FriBidi (the FriBidiEnv structure has
       room for those flags). When set, those flags would cause FriBidi to
       behave like one of the incompatible BiDi algorithms.
    2. Add to FriBidi special code, which would flag the characters in a
       string, which would be reordered differently in the different BiDi
       algorithms. The wordprocessor would then display those characters in a
       different way, and let the user determine whether they were reordered
       the way he intended to or not.
    3. The import filters, used by the Free wordprocessors to import files
       created by a given version of Microsoft wordprocessor, would insert
       explicit BiDi overrides at those places where the BiDi algorithms would
       produce different visual orderings of characters.

    Of the possible approaches, I favor the most the "quirks" flags approach.
    When importing a document, the user has anyway to specify which
    wordprocessor created it. It is not a big deal to specify also the
    corresponding BiDi algorithm version.

    In the internal representation of documents used by Free wordprocessors,
    an extra field to specify the BiDi algorithm needs to be added. But if
    the wordprocessor was designed in a reasonable way, it should not be
    difficult to add a paragraph-scope attribute to specify the BiDi algorithm
    to be applied to that paragraph. (Note: paragraph scope is needed to
    handle the case of an user, who wants to merge together documents created
    by different wordprocessors, which used different BiDi algorithms.)

                                                 --- Omer
    WARNING TO SPAMMERS: see at http://www.zak.co.il/spamwarning.html



    This archive was generated by hypermail 2.1.4 : Sat Sep 21 2002 - 06:15:57 EDT