libunibreak  4.3
Macros | Functions
wordbreak.c File Reference
#include <assert.h>
#include <stddef.h>
#include <string.h>
#include "unibreakdef.h"
#include "wordbreak.h"
#include "wordbreakdata.c"
#include "emojidef.h"
Include dependency graph for wordbreak.c:

Macros

#define IS_WB3ab(cls)
 

Functions

void init_wordbreak (void)
 Initializes the wordbreak internals. More...
 
static enum WordBreakClass get_char_wb_class (utf32_t ch, const struct WordBreakProperties *wbp, size_t len)
 Gets the word breaking class of a character. More...
 
static void set_brks_to (const void *s, char *brks, size_t posStart, size_t posEnd, size_t len, char brkType, get_next_char_t get_next_char)
 Sets the word break types to a specific value in a range. More...
 
static void set_wordbreaks (const void *s, size_t len, const char *lang, char *brks, get_next_char_t get_next_char)
 Sets the word breaking information for a generic input string. More...
 
void set_wordbreaks_utf8 (const utf8_t *s, size_t len, const char *lang, char *brks)
 Sets the word breaking information for a UTF-8 input string. More...
 
void set_wordbreaks_utf16 (const utf16_t *s, size_t len, const char *lang, char *brks)
 Sets the word breaking information for a UTF-16 input string. More...
 
void set_wordbreaks_utf32 (const utf32_t *s, size_t len, const char *lang, char *brks)
 Sets the word breaking information for a UTF-32 input string. More...
 

Detailed Description

Implementation of the word breaking algorithm as described in Unicode Standard Annex 29.

Author
Tom Hacohen

Macro Definition Documentation

◆ IS_WB3ab

#define IS_WB3ab (   cls)
Value:
((cls == WBP_Newline) || (cls == WBP_CR) || \
(cls == WBP_LF))

Function Documentation

◆ get_char_wb_class()

static enum WordBreakClass get_char_wb_class ( utf32_t  ch,
const struct WordBreakProperties wbp,
size_t  len 
)
static

Gets the word breaking class of a character.

Parameters
chcharacter to check
wbppointer to the wbp breaking properties array
lensize of the wbp array in number of items
Returns
the word breaking class if found; WBP_Any otherwise

◆ init_wordbreak()

void init_wordbreak ( void  )

Initializes the wordbreak internals.

It currently does nothing, but it may in the future.

◆ set_brks_to()

static void set_brks_to ( const void *  s,
char *  brks,
size_t  posStart,
size_t  posEnd,
size_t  len,
char  brkType,
get_next_char_t  get_next_char 
)
static

Sets the word break types to a specific value in a range.

It sets the inside chars to WORDBREAK_INSIDEACHAR and the rest to brkType. Assumes brks is initialized - all the cells with WORDBREAK_NOBREAK are cells that we really don't want to break after.

Parameters
[in]sinput string
[out]brksbreaks array to fill
[in]posStartstart position
[in]posEndend position (exclusive)
[in]lenlength of the string
[in]brkTypebreaks type to use
[in]get_next_charfunction to get the next UTF-32 character

◆ set_wordbreaks()

static void set_wordbreaks ( const void *  s,
size_t  len,
const char *  lang,
char *  brks,
get_next_char_t  get_next_char 
)
static

Sets the word breaking information for a generic input string.

Parameters
[in]sinput string
[in]lenlength of the input
[in]langlanguage of the input (reserved for future use)
[out]brkspointer to the output breaking data, containing WORDBREAK_BREAK, WORDBREAK_NOBREAK, or WORDBREAK_INSIDEACHAR
[in]get_next_charfunction to get the next UTF-32 character

◆ set_wordbreaks_utf16()

void set_wordbreaks_utf16 ( const utf16_t s,
size_t  len,
const char *  lang,
char *  brks 
)

Sets the word breaking information for a UTF-16 input string.

Parameters
[in]sinput UTF-16 string
[in]lenlength of the input
[in]langlanguage of the input (reserved for future use)
[out]brkspointer to the output breaking data, containing WORDBREAK_BREAK, WORDBREAK_NOBREAK, or WORDBREAK_INSIDEACHAR

◆ set_wordbreaks_utf32()

void set_wordbreaks_utf32 ( const utf32_t s,
size_t  len,
const char *  lang,
char *  brks 
)

Sets the word breaking information for a UTF-32 input string.

Parameters
[in]sinput UTF-32 string
[in]lenlength of the input
[in]langlanguage of the input (reserved for future use)
[out]brkspointer to the output breaking data, containing WORDBREAK_BREAK, WORDBREAK_NOBREAK, or WORDBREAK_INSIDEACHAR

◆ set_wordbreaks_utf8()

void set_wordbreaks_utf8 ( const utf8_t s,
size_t  len,
const char *  lang,
char *  brks 
)

Sets the word breaking information for a UTF-8 input string.

Parameters
[in]sinput UTF-8 string
[in]lenlength of the input
[in]langlanguage of the input (reserved for future use)
[out]brkspointer to the output breaking data, containing WORDBREAK_BREAK, WORDBREAK_NOBREAK, or WORDBREAK_INSIDEACHAR
WBP_LF
@ WBP_LF
Definition: wordbreakdef.h:61
WBP_Newline
@ WBP_Newline
Definition: wordbreakdef.h:62
WBP_CR
@ WBP_CR
Definition: wordbreakdef.h:60