man m17nMtext () - M-text objects and API for them.
NAME
M-text - M-text objects and API for them.
Variables: Default Endian of UTF-16 and UTF-32
const int MTEXT_FORMAT_UTF_16
Variable of value MTEXT_FORMAT_UTF_16LE or MTEXT_FORMAT_UTF_16BE.
const int MTEXT_FORMAT_UTF_32
Variable of value MTEXT_FORMAT_UTF_32LE or MTEXT_FORMAT_UTF_32BE.
Typedefs
typedef MText MText
Type of M-texts.
Enumerations
enum MTextFormat { MTEXT_FORMAT_US_ASCII, MTEXT_FORMAT_UTF_8, MTEXT_FORMAT_UTF_16LE, MTEXT_FORMAT_UTF_16BE, MTEXT_FORMAT_UTF_32LE, MTEXT_FORMAT_UTF_32BE, MTEXT_FORMAT_MAX }
Enumeration for specifying the format of an M-text.
Functions
MText * mtext ()
Allocate a new M-text.
MText * mtext_from_data (const void *data, int nitems, enum MTextFormat format)
Allocate a new M-text with specified data.
int mtext_len (MText *mt)
Number of characters in M-text.
int mtext_ref_char (MText *mt, int pos)
Return the character at the specified position in an M-text.
int mtext_set_char (MText *mt, int pos, int c)
Store a character into an M-text.
MText * mtext_cat_char (MText *mt, int c)
Append a character to an M-text.
MText * mtext_dup (MText *mt)
Create a copy of an M-text.
MText * mtext_cat (MText *mt1, MText *mt2)
Append an M-text to another.
MText * mtext_ncat (MText *mt1, MText *mt2, int n)
Append a part of an M-text to another.
MText * mtext_cpy (MText *mt1, MText *mt2)
Copy an M-text to another.
MText * mtext_ncpy (MText *mt1, MText *mt2, int n)
Copy the first some characters in an M-text to another.
MText * mtext_duplicate (MText *mt, int from, int to)
Create a new M-text from a part of an existing M-text.
MText * mtext_copy (MText *mt1, int pos, MText *mt2, int from, int to)
Copy characters in the specified range into an M-text.
int mtext_del (MText *mt, int from, int to)
Delete characters in the specified range destructively.
int mtext_ins (MText *mt1, int pos, MText *mt2)
Insert an M-text into another M-text.
int mtext_ins_char (MText *mt, int pos, int c, int n)
Insert a character into an M-text.
int mtext_character (MText *mt, int from, int to, int c)
Search a character in an M-text.
int mtext_chr (MText *mt, int c)
Return the position of the first occurrence of a character in an M-text.
int mtext_rchr (MText *mt, int c)
Return the position of the last occurrence of a character in an M-text.
int mtext_cmp (MText *mt1, MText *mt2)
Compare two M-texts character-by-character.
int mtext_ncmp (MText *mt1, MText *mt2, int n)
Compare initial parts of two M-texts character-by-character.
int mtext_compare (MText *mt1, int from1, int to1, MText *mt2, int from2, int to2)
Compare specified regions of two M-texts.
int mtext_spn (MText *mt, MText *accept)
Search an M-text for a set of characters.
int mtext_cspn (MText *mt, MText *reject)
Search an M-text for the complement of a set of characters.
int mtext_pbrk (MText *mt, MText *accept)
Search an M-text for any of a set of characters.
MText * mtext_tok (MText *mt, MText *delim, int *pos)
Look for a token in an M-text.
int mtext_text (MText *mt1, int pos, MText *mt2)
Locate an M-text in another.
int mtext_search (MText *mt1, int from, int to, MText *mt2)
Locate an M-text in a specific range of another.
int mtext_casecmp (MText *mt1, MText *mt2)
Compare two M-texts ignoring cases.
int mtext_ncasecmp (MText *mt1, MText *mt2, int n)
Compare initial parts of two M-texts ignoring cases.
int mtext_case_compare (MText *mt1, int from1, int to1, MText *mt2, int from2, int to2)
Compare specified regions of two M-texts ignoring cases.
Detailed Description
In the m17n library, text is represented as an object called M-text rather than as a C-string (char * or unsigned char *). An M-text is a sequence of characters whose length is equals to or more than 0, and can be coined from various character sources, e.g. C-strings, files, character codes, etc.
M-texts are more useful than C-strings in the following points.
- M-texts can handle mixture of characters of various scripts, including all Unicode characters and more. This is an indispensable facility when handling multilingual text.
- Each character in an M-text can have properties called text properties. Text properties store various kinds of information attached to parts of an M-text to provide application programs with a unified view of those information. As rich information can be stored in M-texts in the form of text properties, functions in application programs can be simple.
In addition, the library provides many functions to manipulate an M-text just the same way as a C-string.
Typedef Documentation
typedef struct MText MText
The type MText is for an M-text object. Its internal structure is concealed from application programs.
Enumeration Type Documentation
enum MTextFormat
The enum MTextFormat is used as an argument of the mtext_from_data() function to specify the format of data from which an M-text is created.
Enumeration values:
- MTEXT_FORMAT_US_ASCII
MTEXT_FORMAT_UTF_8
- MTEXT_FORMAT_UTF_16LE
MTEXT_FORMAT_UTF_16BE
- MTEXT_FORMAT_UTF_32LE
MTEXT_FORMAT_UTF_32BE
- MTEXT_FORMAT_MAX
Variable Documentation
const int MTEXT_FORMAT_UTF_16
The global variable MTEXT_FORMAT_UTF_16 is initialized to MTEXT_FORMAT_UTF_16LE on a 'Little Endian' system (storing words with the least significant byte first), and to MTEXT_FORMAT_UTF_16BE on a 'Big Endian' system (storing words with the most significant byte first).
See Also:.RS 4 mtext_from_data()
const int MTEXT_FORMAT_UTF_32
The global variable MTEXT_FORMAT_UTF_32 is initialized to MTEXT_FORMAT_UTF_32LE on a 'Little Endian' system (storing words with the least significant byte first), and to MTEXT_FORMAT_UTF_32BE on a 'Big Endian' system (storing words with the most significant byte first).
See Also:.RS 4 mtext_from_data()