Man Linux: Main Page and Category List

NAME

       fribidi_remove_bidi_marks - remove bidi marks out of an string

SYNOPSIS

       #include <fribidi.h>

       FriBidiStrIndex fribidi_remove_bidi_marks
       (
            FriBidiChar *str,
            const FriBidiStrIndex len,
            FriBidiStrIndex *positions_to_this,
            FriBidiStrIndex *position_from_this_list,
            FriBidiLevel *embedding_levels
       );

PARAMETERS

       FriBidiChar *str
              Input string to clean.

       const FriBidiStrIndex len
              Input string length.

       FriBidiStrIndex *positions_to_this
              List mapping positions to the order used in str.

       FriBidiStrIndex *position_from_this_list
              List mapping positions from the order used in str.

       FriBidiLevel *embedding_levels
              List of embedding levels.

DESCRIPTION

       This  function  removes  the  bidi and boundary-neutral marks out of an
       string and the accompanying  lists.   It  implements  rule  X9  of  the
       Unicode        Bidirectional        Algorithm        available       at
       http://www.unicode.org/reports/tr9/#X9,  with  the  exception  that  it
       removes U+200E LEFT-TO-RIGHT MARK and U+200F RIGHT-TO-LEFT MARK too.

       If any of the input lists are NULL, the list is skipped.  If str is the
       visual  string,  then  positions_to_this   is    positions_L_to_V   and
       position_from_this_list  is  positions_V_to_L;   if  str is the logical
       string, the other way. Moreover, the position  maps  should  be  filled
       with valid entries.

       A  position  map  pointing to a removed character is filled with ‐1. By
       the way, you should not use embedding_levels if str is visual string.

       For best results this function should be run on a whole paragraph,  not
       lines;  but  feel  free to do otherwise if you know what you are doing.
       Deprecated.  Use fribidi_remove_special_chars instead.

RETURNS

       New length of the string, or ‐1 if an error occured (memory  allocation
       failure most probably).

SEE ALSO

       fribidi_charset_to_unicode(3),           fribidi_unicode_to_charset(3),
       fribidi_parse_charset(3),                      fribidi_shape_arabic(3),
       fribidi_get_par_direction(3),      fribidi_get_par_embedding_levels(3),
       fribidi_reorder_line(3),                      fribidi_get_bidi_type(3),
       fribidi_get_bidi_types(3),               fribidi_get_bidi_type_name(3),
       fribidi_debug_status(3),                   fribidi_mirroring_status(3),
       fribidi_set_mirroring(3),                fribidi_reorder_nsm_status(3),
       fribidi_set_reorder_nsm(3),    fribidi_log2vis_get_embedding_levels(3),
       fribidi_get_type(3),  fribidi_get_type_internal(3), fribidi_log2vis(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_shape(3)