Provided by: libfribidi-dev_0.19.6-1_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.   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)