fribidi_remove_bidi_marks(3) Programmer's Manual fribidi_remove_bidi_marks(3)
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 imple‐
ments 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_re‐
order_line(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_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_inter‐
nal(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_mirror‐
ing(3), fribidi_get_bracket(3), fribidi_get_bracket_types(3), fribidi_shape(3), fribidi_log2vis(3)
c2man fribidi.h 2 June 2021 fribidi_remove_bidi_marks(3)
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 imple‐
ments 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_re‐
order_line(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_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_inter‐
nal(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_mirror‐
ing(3), fribidi_get_bracket(3), fribidi_get_bracket_types(3), fribidi_shape(3), fribidi_log2vis(3)
c2man fribidi.h 2 June 2021 fribidi_remove_bidi_marks(3)