Provided by: libfribidi-dev_1.0.8-2.1ubuntu1_amd64 bug

NAME

       fribidi_remove_bidi_marks - remove bidi marks out of an string

SYNOPSIS

       #include <fribidi.h>

       extern 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)