Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
fribidi_reorder_line(3)	      Programmer's Manual      fribidi_reorder_line(3)

       fribidi_reorder_line - reorder a	line of	logical	string to visual

       #include	<fribidi.h>

       extern FriBidiLevel fribidi_reorder_line
	    FriBidiFlags flags,
	    const FriBidiCharType *bidi_types,
	    const FriBidiStrIndex len,
	    const FriBidiStrIndex off,
	    const FriBidiParType base_dir,
	    FriBidiLevel *embedding_levels,
	    FriBidiChar	*visual_str,
	    FriBidiStrIndex *map

       FriBidiFlags flags
	      Reorder flags.

       const FriBidiCharType *bidi_types
	      Input	list	 of	bidi	 types	  as	returned    by

	      Since there are 23 possible values for a const  FriBidiCharType,
	      they are not all listed here.

       const FriBidiStrIndex len
	      Input length of the line.

       const FriBidiStrIndex off
	      Input offset of the beginning of the line	in the paragraph.

       const FriBidiParType base_dir
	      Resolved paragraph base direction.

	      Possible values for a const FriBidiParType are as	follows:
	      FRIBIDI_PAR_LTR	Left-To-Right paragraph.
	      FRIBIDI_PAR_RTL	Right-To-Left paragraph.
	      FRIBIDI_PAR_ON	DirectiOn-Neutral paragraph.
	      FRIBIDI_PAR_WLTR	Weak Left To Right paragraph.
	      FRIBIDI_PAR_WRTL	Weak Right To Left paragraph.

       FriBidiLevel *embedding_levels
	      Input    list    of    embedding	  levels,   as	 returned   by

       FriBidiChar *visual_str
	      Visual string to reorder.

       FriBidiStrIndex *map
	      A	map of string indices which is reordered to reflect where each
	      glyph ends up.

       This function reorders the characters in	a line of text from logical to
       final visual order.  This function implements part 4 of	rule  L1,  and
       rules  L2  and  L3  of the Unicode Bidirectional	Algorithm available at

       As a side effect	it also	sets position maps if not NULL.

       You should provide the resolved paragraph direction and embedding  lev-
       els  as	set by fribidi_get_par_embedding_levels().  Also note that the
       embedding levels	may change a bit.  To be exact,	the embedding level of
       any  sequence  of  white	space at the end of line is reset to the para-
       graph embedding level (That is part 4 of	rule L1).

       Note that the bidi types	and embedding levels are not  reordered.   You
       can  reorder these (or any other) arrays	using the map later.  The user
       is responsible to initialize map	to something sensible, like  an	 iden-
       tity mapping, or	pass NULL if no	map is needed.

       There  is an optional part to this function, which is whether non-spac-
       ing marks for right-to-left parts of the	text should  be	 reordered  to
       come  after  their  base	 characters in the visual string or not.  Most
       rendering engines expect	this behavior, but console-based  systems  for
       example	do  not	 like  it.  This is controlled by the FRIBIDI_FLAG_RE-
       ORDER_NSM flag.	The flag is on in FRIBIDI_FLAGS_DEFAULT.

       Maximum level found in this line	plus one, or zero  if  any  error  oc-
       curred (memory allocation failure most probably).

       fribidi_shape_arabic(3),			 fribidi_get_par_direction(3),
       fribidi_get_par_embedding_levels_ex(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_mir-
       roring_status(3),  fribidi_set_mirroring(3),   fribidi_reorder_nsm_sta-
       tus(3),	fribidi_set_reorder_nsm(3), fribidi_log2vis_get_embedding_lev-
       els(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_re-
       move_bidi_marks(3), fribidi_log2vis(3)

c2man fribidi-bidi.h		 20 July 2018	       fribidi_reorder_line(3)


Want to link to this manual page? Use this URL:

home | help