Provided by: libfribidi-dev_1.0.13-3build1_amd64 bug

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.

RETURNS

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

SEE ALSO

       fribidi_shape_arabic(3),                                     fribidi_get_par_direction(3),
       fribidi_get_par_embedding_levels_ex(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_set_debug(3),     fribidi_charset_to_unicode(3),    fribidi_unicode_to_charset(3),
       fribidi_parse_charset(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_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_log2vis(3)