<unilbrk.h>This include file declares functions for determining where in a string line breaks could or should be introduced, in order to make the displayed string fit into a column of given width.
These functions are locale dependent. The encoding argument identifies
the encoding (e.g. "ISO-8859-2" for Polish).
The following enumerated values indicate whether, at a given position, a line
break is possible or not. Given an string s as an array
s[0..n-1] and a position i, the values have the
following meanings:
This value indicates that a line break may be inserted between s
[i-1]and s[i].
This value indicates that a hyphen and a line break may be inserted between s
[i-1]and s[i]. But beware of language dependent hyphenation rules.
This value indicates that s
[i-1]and s[i]must not be separated.
This value is not used as a return value; rather, in the overriding argument of the
u*_width_linebreaksfunctions, it indicates the absence of an override.
The following functions determine the positions at which line breaks are possible.
Determines the line break points in s, and stores the result at p
[0..n-1]. Every p[i]is assigned one of the valuesUC_BREAK_MANDATORY,UC_BREAK_POSSIBLE,UC_BREAK_HYPHENATION,UC_BREAK_PROHIBITED.
The following functions determine where line breaks should be inserted so that each line fits in a given width, when output to a device that uses non-proportional fonts.
Chooses the best line breaks, assuming that every character occupies a width given by the
uc_widthfunction (see uniwidth.h).The string is s
[0..n-1].The maximum number of columns per line is given as width. The starting column of the string is given as start_column. If the algorithm shall keep room after the last piece, this amount of room can be given as at_end_columns.
override is an optional override; if override
[i] != UC_BREAK_UNDEFINED, override[i]takes precedence over p[i]as returned by theu*_possible_linebreaksfunction.The given encoding is used for disambiguating widths in
uc_width.Returns the column after the end of the string, and stores the result at p
[0..n-1]. Every p[i]is assigned one of the valuesUC_BREAK_MANDATORY,UC_BREAK_POSSIBLE,UC_BREAK_HYPHENATION,UC_BREAK_PROHIBITED. Here the valueUC_BREAK_POSSIBLEindicates that a line break should be inserted.