dwww Home | Manual pages | Find package

fribidi_reorder_line(3)       Programmer's Manual      fribidi_reorder_line(3)

NAME
       fribidi_reorder_line - reorder a line of logical string to visual

SYNOPSIS
       #include <fribidi.h>

       extern FriBidiLevel fribidi_reorder_line
       (
            FriBidiFlags flags,
            const FriBidiCharType *bidi_types,
            const FriBidiStrIndex len,
            const FriBidiStrIndex off,
            const FriBidiParType base_dir,
            FriBidiLevel *embedding_levels,
            FriBidiChar *visual_str,
            FriBidiStrIndex *map
       );

PARAMETERS
       FriBidiFlags flags
              Reorder flags.

       const FriBidiCharType *bidi_types
              Input     list     of     bidi     types    as    returned    by
              fribidi_get_bidi_types().

              Since there are 23 possible values for a const  FriBidiCharType,
              they are not all listed here.

       const FriBidiStrIndex len
              Input length of the line.

       const FriBidiStrIndex off
              Input offset of the beginning of the line in the paragraph.

       const FriBidiParType base_dir
              Resolved paragraph base direction.

              Possible values for a const FriBidiParType are as follows:
              FRIBIDI_PAR_LTR   Left-To-Right paragraph.
              FRIBIDI_PAR_RTL   Right-To-Left paragraph.
              FRIBIDI_PAR_ON    DirectiOn-Neutral paragraph.
              FRIBIDI_PAR_WLTR  Weak Left To Right paragraph.
              FRIBIDI_PAR_WRTL  Weak Right To Left paragraph.

       FriBidiLevel *embedding_levels
              Input    list    of    embedding    levels,   as   returned   by
              fribidi_get_par_embedding_levels.

       FriBidiChar *visual_str
              Visual string to reorder.

       FriBidiStrIndex *map
              A map of string indices which is reordered to reflect where each
              glyph ends up.

DESCRIPTION
       This function reorders the characters in a line of text from logical to
       final visual order.  This function implements part 4 of  rule  L1,  and
       rules  L2  and  L3  of the Unicode Bidirectional Algorithm available at
       http://www.unicode.org/reports/tr9/#Reordering_Resolved_Levels.

       As a side effect it also sets position maps if not NULL.

       You should provide the resolved paragraph direction and embedding  lev-
       els  as  set by fribidi_get_par_embedding_levels().  Also note that the
       embedding levels may change a bit.  To be exact, the embedding level of
       any  sequence  of  white space at the end of line is reset to the para-
       graph embedding level (That is part 4 of rule L1).

       Note that the bidi types and embedding levels are not  reordered.   You
       can  reorder these (or any other) arrays using the map later.  The user
       is responsible to initialize map to something sensible, like  an  iden-
       tity mapping, or pass NULL if no map is needed.

       There  is an optional part to this function, which is whether non-spac-
       ing marks for right-to-left parts of the text should  be  reordered  to
       come  after  their  base  characters in the visual string or not.  Most
       rendering engines expect this behavior, but console-based  systems  for
       example  do  not  like  it.  This is controlled by the FRIBIDI_FLAG_RE-
       ORDER_NSM flag.  The flag is on in FRIBIDI_FLAGS_DEFAULT.

RETURNS
       Maximum level found in this line plus one, or zero  if  any  error  oc-
       curred (memory allocation failure most probably).

SEE ALSO
       fribidi_shape_arabic(3),                  fribidi_get_par_direction(3),
       fribidi_get_par_embedding_levels_ex(3),       fribidi_get_bidi_type(3),
       fribidi_get_bidi_types(3),  fribidi_get_bidi_type_name(3),  fribidi_de-
       bug_status(3),   fribidi_set_debug(3),   fribidi_charset_to_unicode(3),
       fribidi_unicode_to_charset(3),  fribidi_parse_charset(3),  fribidi_mir-
       roring_status(3),  fribidi_set_mirroring(3),   fribidi_reorder_nsm_sta-
       tus(3),  fribidi_set_reorder_nsm(3), fribidi_log2vis_get_embedding_lev-
       els(3),       fribidi_get_type(3),        fribidi_get_type_internal(3),
       fribidi_get_par_embedding_levels(3),            fribidi_join_arabic(3),
       fribidi_get_joining_type(3),              fribidi_get_joining_types(3),
       fribidi_get_joining_type_name(3),           fribidi_get_mirror_char(3),
       fribidi_shape_mirroring(3),                     fribidi_get_bracket(3),
       fribidi_get_bracket_types(3),       fribidi_shape(3),       fribidi_re-
       move_bidi_marks(3)

c2man fribidi-bidi.h             20 July 2018          fribidi_reorder_line(3)

Generated by dwww version 1.15 on Sat Jun 29 11:28:32 CEST 2024.