1
0
Fork 0
mirror of https://github.com/geometer/FBReaderJ.git synced 2025-10-04 18:29:23 +02:00

experiments with native liblinebreaks

git-svn-id: https://only.mawhrin.net/repos/FBReaderJ/trunk@1202 6a642e6f-84f6-412e-ac94-c4a38d5a04b0
This commit is contained in:
Nikolay Pultsin 2010-04-09 20:50:27 +00:00
parent 435f966868
commit a168cc2a0c
90 changed files with 4290 additions and 3811 deletions

View file

@ -8,7 +8,8 @@ DONE нарисовать иконку (скопирована иконка ic_m
DELAYED (NP) нарисовать правильную иконку DELAYED (NP) нарисовать правильную иконку
NP улучшить определение размеров иконок NP улучшить определение размеров иконок
** сделать стартовые иконки прозрачными DELAYED сделать стартовые иконки прозрачными
я попробовал, стало хуже
DONE чистить все Notification'ы при завершении NetworkLibrary / BookDownloadService DONE чистить все Notification'ы при завершении NetworkLibrary / BookDownloadService
DONE CRASH: начать загрузку большого каталога --> Нажать кнопку "Home" --> Открыть FBReader --> Открыть библиотеку --> Развернуть каталог DONE CRASH: начать загрузку большого каталога --> Нажать кнопку "Home" --> Открыть FBReader --> Открыть библиотеку --> Развернуть каталог
DONE добавлен CatalogDownloaderService DONE добавлен CatalogDownloaderService

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,9 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := LineBreak
LOCAL_SRC_FILES := linebreak-jni.cpp liblinebreak-2.0/linebreak.c liblinebreak-2.0/linebreakdata.c liblinebreak-2.0/linebreakdef.c
LOCAL_ALLOW_UNDEFINED_SYMBOLS := false
include $(BUILD_SHARED_LIBRARY)

View file

@ -1,32 +1,42 @@
2009-11-29 Wu Yongwei <wuyongwei@gmail.com>
* linebreak.h: Add a documentation comment.
2009-11-29 Wu Yongwei <wuyongwei@gmail.com>
* linebreak.c (baTable): Add the missing changes for `NU' and `AL'.
2009-11-29 Wu Yongwei <wuyongwei@gmail.com>
* linebreak.c (baTable): Fix a comment; reflow the table data.
2009-11-29 Wu Yongwei <wuyongwei@gmail.com>
* Doxyfile (TAB_SIZE): Set to the correct size `4', as used in the
source files.
2009-11-29 Wu Yongwei <wuyongwei@gmail.com>
Update files according to UAX #14-24, for Unicode 5.2.0.
* linebreak.c: Update comments about UAX #14.
* linebreak.h: Ditto.
* linebreakdef.c: Ditto.
* linebreakdef.h: Ditto.
(LBP_CP): New enumerator for the new `CP' class as defined in
UAX #14-24.
* linebreak.c (baTable): Update for the new class `CP'.
* linebreakdata.c: Regenerate from LineBreak-5.2.0.txt.
* README: Update the reference to UAX #14-24, for Unicode 5.2.0.
2009-05-03 Wu Yongwei <wuyongwei@gmail.com> 2009-05-03 Wu Yongwei <wuyongwei@gmail.com>
* configure.ac (AC_INIT): Increase the version to 1.2.
* Doxyfile (PROJECT_NUMBER): Set to 1.2.
* Makefile.am (liblinebreak_la_LDFLAGS): Set the version-info to
`1:2'.
* NEWS: Add information about the 1.2 release. * NEWS: Add information about the 1.2 release.
2009-05-03 Wu Yongwei <wuyongwei@gmail.com>
Deal with a bug in Doxygen when the documentation comment for one
entity is given twice and includes the @deprecated tag.
* linebreak.h (is_line_breakable): Move some of the documentation
comment of is_breakable here.
(is_breakable): Remove the documentation comment since
the result from recent versions of Doxygen is incorrect otherwise.
* linebreakdef.h (get_next_char_utf8): Ditto.
(get_next_char_utf16): Ditto.
(get_next_char_utf32): Ditto.
2009-04-30 Wu Yongwei <wuyongwei@gmail.com> 2009-04-30 Wu Yongwei <wuyongwei@gmail.com>
Optimize the Doxygen output. Optimize the Doxygen output.
* linebreak.c (lb_prop_index): Use the `@deprecated' tag to * linebreak.c (lb_prop_index): Adjust its definition format
deprecate it. slightly.
(get_next_char_utf16): Ditto.
(get_next_char_utf32): Ditto.
(is_breakable): Ditto.
(lb_prop_index): Adjust its definition format slightly.
2009-04-30 Wu Yongwei <wuyongwei@gmail.com> 2009-04-30 Wu Yongwei <wuyongwei@gmail.com>
@ -38,61 +48,66 @@
(REFERENCES_RELATION): Ditto. (REFERENCES_RELATION): Ditto.
(EXCLUDE): Add `filter_dup.c'. (EXCLUDE): Add `filter_dup.c'.
2009-04-29 Wu Yongwei <wuyongwei@gmail.com> 2009-04-28 Wu Yongwei <wuyongwei@gmail.com>
* linebreak.c (lb_get_next_char_utf8): Fix the issue that the index
can point to the middle of a UTF-8 sequence if End of String (EOS)
is encountered prematurely (thanks to Nikolay Pultsin and Rick Xu).
(lb_get_next_char_utf16): Fix the issue that the index can point to
the middle of a UTF-16 surrogate pair if EOS is encountered
prematurely.
2009-04-20 Wu Yongwei <wuyongwei@gmail.com>
Backport patches from the main trunk.
* linebreak.c (get_next_char_utf8): Fix the issue that the index can
point to the middle of a UTF-8 sequence if End of String (EOS) is
encountered prematurely (thanks to Nikolay Pultsin and Rick Xu).
(get_next_char_utf16): Fix the issue that the index can point to the
middle of a UTF-16 surrogate pair if EOS is encountered prematurely.
* linebreakdef.c (lb_prop_English): Remove the specialization of * linebreakdef.c (lb_prop_English): Remove the specialization of
right single quotation mark as closing punctuation mark, because it right single quotation mark as closing punctuation mark, because it
can be used as apostrophe. can be used as apostrophe.
(lb_prop_Spanish): Ditto. (lb_prop_Spanish): Ditto.
(lb_prop_French): Ditto. (lb_prop_French): Ditto.
2009-03-05 Wu Yongwei <wuyongwei@gmail.com> 2009-04-09 Wu Yongwei <wuyongwei@gmail.com>
* configure.ac (AC_INIT): Increase the version to 1.1.1. * Makefile.msvc: Make the `clean' target work on MSVC versions other
than 6.0; do not use precompiled header.
2009-03-05 Wu Yongwei <wuyongwei@gmail.com> 2009-03-07 Wu Yongwei <wuyongwei@gmail.com>
* linebreak.h: Correct the wrong date in the documentation comment. * linebreak.h: Correct the wrong date in the documentation comment.
* linebreakdef.h: Ditto. * linebreakdef.h: Ditto.
2009-02-06 Wu Yongwei <wuyongwei@gmail.com> 2009-02-10 Wu Yongwei <wuyongwei@gmail.com>
* configure.ac (AC_INIT): Increase the version to 1.1. * configure.ac (AC_INIT): Increase the version to 2.0.
* Doxyfile (PROJECT_NUMBER): Set to 1.1.
* Makefile.am (liblinebreak_la_LDFLAGS): Set the version-info to * Makefile.am (liblinebreak_la_LDFLAGS): Set the version-info to
`1:1'. `2:0'.
* NEWS: Add information about the 1.1 release.
2009-01-29 Wu Yongwei <wuyongwei@gmail.com> 2009-02-10 Wu Yongwei <wuyongwei@gmail.com>
* linebreak.h: Copy function documentation comments from the * linebreak.h (LINEBREAK_VERSION): New macro.
definition to the header file. (linebreak_version): New global constant declaration.
* linebreakdef.h: Ditto. * linebreak.c (linebreak_version): New global constant definition.
2009-01-29 Wu Yongwei <wuyongwei@gmail.com> 2009-02-10 Wu Yongwei <wuyongwei@gmail.com>
Prepare to reduce namespace pollution. Reduce namespace pollution.
* linebreak.c (get_lb_prop_lang): Mark as static. * linebreak.c (get_lb_prop_lang): Mark as static.
(get_next_char_utf8): Add a comment that it will be renamed. (get_next_char_utf8): Rename to lb_get_next_char_utf8.
(get_next_char_utf16): Ditto. (get_next_char_utf16): Rename to lb_get_next_char_utf32.
(get_next_char_utf32): Ditto. (get_next_char_utf32): Rename to lb_get_next_char_utf32.
(is_breakable): Ditto. (is_breakable): Rename to is_line_breakable.
* linebreak.h (get_next_char_utf8): Remove the prototype * linebreak.h (get_next_char_utf8): Remove the function prototype
declaration. declaration.
(get_next_char_utf16): Ditto. (get_next_char_utf16): Ditto.
(get_next_char_utf32): Ditto. (get_next_char_utf32): Ditto.
(is_line_breakable): Add the replacement macro for is_breakable to (is_breakable): Rename to is_line_breakable.
ease the API change transition. * linebreakdef.h (lb_get_next_char_utf8): Add the function prototype
* linebreakdef.h (get_next_char_utf8): Add the prototype declaration declaration.
and comment about renaming. (lb_get_next_char_utf16): Ditto.
(get_next_char_utf16): Ditto. (lb_get_next_char_utf32): Ditto.
(get_next_char_utf32): Ditto.
2009-02-06 Wu Yongwei <wuyongwei@gmail.com>
* NEWS: Add information about the 1.1 release.
2009-01-02 Wu Yongwei <wuyongwei@gmail.com> 2009-01-02 Wu Yongwei <wuyongwei@gmail.com>

View file

@ -23,7 +23,7 @@ PROJECT_NAME = liblinebreak
# This could be handy for archiving the generated documentation or # This could be handy for archiving the generated documentation or
# if some version control system is used. # if some version control system is used.
PROJECT_NUMBER = 1.2 PROJECT_NUMBER =
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put. # base path where the generated documentation will be put.
@ -153,7 +153,7 @@ SEPARATE_MEMBER_PAGES = NO
# The TAB_SIZE tag can be used to set the number of spaces in a tab. # The TAB_SIZE tag can be used to set the number of spaces in a tab.
# Doxygen uses this value to replace tabs by spaces in code fragments. # Doxygen uses this value to replace tabs by spaces in code fragments.
TAB_SIZE = 8 TAB_SIZE = 4
# This tag can be used to specify a number of aliases that acts # This tag can be used to specify a number of aliases that acts
# as commands in the documentation. An alias has the form "name=value". # as commands in the documentation. An alias has the form "name=value".

View file

@ -2,7 +2,7 @@
include_HEADERS = linebreak.h linebreakdef.h include_HEADERS = linebreak.h linebreakdef.h
lib_LTLIBRARIES = liblinebreak.la lib_LTLIBRARIES = liblinebreak.la
liblinebreak_la_LDFLAGS = -no-undefined -version-info 1:2 liblinebreak_la_LDFLAGS = -no-undefined -version-info 2:0
liblinebreak_la_SOURCES = \ liblinebreak_la_SOURCES = \
linebreak.c \ linebreak.c \
linebreakdata.c \ linebreakdata.c \

View file

@ -202,7 +202,7 @@ top_srcdir = @top_srcdir@
#noinst_PROGRAMS = filter_dup #noinst_PROGRAMS = filter_dup
include_HEADERS = linebreak.h linebreakdef.h include_HEADERS = linebreak.h linebreakdef.h
lib_LTLIBRARIES = liblinebreak.la lib_LTLIBRARIES = liblinebreak.la
liblinebreak_la_LDFLAGS = -no-undefined -version-info 1:2 liblinebreak_la_LDFLAGS = -no-undefined -version-info 2:0
liblinebreak_la_SOURCES = \ liblinebreak_la_SOURCES = \
linebreak.c \ linebreak.c \
linebreakdata.c \ linebreakdata.c \

View file

@ -44,13 +44,13 @@ CLEAN :
-@erase "$(INTDIR)\linebreak.obj" -@erase "$(INTDIR)\linebreak.obj"
-@erase "$(INTDIR)\linebreakdata.obj" -@erase "$(INTDIR)\linebreakdata.obj"
-@erase "$(INTDIR)\linebreakdef.obj" -@erase "$(INTDIR)\linebreakdef.obj"
-@erase "$(INTDIR)\vc60.idb" -@erase "$(INTDIR)\vc*.idb"
-@erase "$(OUTDIR)\linebreak.lib" -@erase "$(OUTDIR)\linebreak.lib"
"$(OUTDIR)" : "$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\linebreak.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c CPP_PROJ=/nologo /ML /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c
BSC32=bscmake.exe BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\linebreak.bsc" BSC32_FLAGS=/nologo /o"$(OUTDIR)\linebreak.bsc"
BSC32_SBRS= \ BSC32_SBRS= \
@ -82,14 +82,14 @@ CLEAN :
-@erase "$(INTDIR)\linebreak.obj" -@erase "$(INTDIR)\linebreak.obj"
-@erase "$(INTDIR)\linebreakdata.obj" -@erase "$(INTDIR)\linebreakdata.obj"
-@erase "$(INTDIR)\linebreakdef.obj" -@erase "$(INTDIR)\linebreakdef.obj"
-@erase "$(INTDIR)\vc60.idb" -@erase "$(INTDIR)\vc*.idb"
-@erase "$(INTDIR)\vc60.pdb" -@erase "$(INTDIR)\vc*.pdb"
-@erase "$(OUTDIR)\linebreak.lib" -@erase "$(OUTDIR)\linebreak.lib"
"$(OUTDIR)" : "$(OUTDIR)" :
if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)"
CPP_PROJ=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fp"$(INTDIR)\linebreak.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c CPP_PROJ=/nologo /MLd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c
BSC32=bscmake.exe BSC32=bscmake.exe
BSC32_FLAGS=/nologo /o"$(OUTDIR)\linebreak.bsc" BSC32_FLAGS=/nologo /o"$(OUTDIR)\linebreak.bsc"
BSC32_SBRS= \ BSC32_SBRS= \

View file

@ -5,9 +5,9 @@ Overview
-------- --------
This is the README file for liblinebreak, an implementation of the line This is the README file for liblinebreak, an implementation of the line
breaking algorithm as described in Unicode 5.1.0 Standard Annex 14, breaking algorithm as described in Unicode 5.2.0 Standard Annex 14,
Revision 22, available at Revision 24, available at
<URL:http://www.unicode.org/reports/tr14/tr14-22.html> <URL:http://www.unicode.org/reports/tr14/tr14-24.html>
Check this URL for up-to-date information: Check this URL for up-to-date information:
<URL:http://vimgadgets.sourceforge.net/liblinebreak/> <URL:http://vimgadgets.sourceforge.net/liblinebreak/>
@ -46,7 +46,6 @@ There are three ways to build the library:
- type `make linebreakdata' to regenerate linebreakdata.c from - type `make linebreakdata' to regenerate linebreakdata.c from
LineBreak.txt. LineBreak.txt.
2) On systems where GCC and Binutils are supported, one can type 2) On systems where GCC and Binutils are supported, one can type
cp -p Makefile.gcc Makefile cp -p Makefile.gcc Makefile
@ -78,6 +77,6 @@ Check the generated document doc/html/linebreak_8h.html for the public
interfaces exposed to applications. interfaces exposed to applications.
$Id: README,v 1.5 2008/12/31 04:24:12 adah Exp $ $Id: README,v 1.6 2009/11/29 08:09:13 adah Exp $
vim:autoindent:expandtab:formatoptions=tcqlmn:textwidth=72: vim:autoindent:expandtab:formatoptions=tcqlmn:textwidth=72:

View file

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.61 for liblinebreak 1.2. # Generated by GNU Autoconf 2.61 for liblinebreak 2.0.
# #
# Report bugs to <wuyongwei@gmail.com>. # Report bugs to <wuyongwei@gmail.com>.
# #
@ -728,8 +728,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package. # Identity of this package.
PACKAGE_NAME='liblinebreak' PACKAGE_NAME='liblinebreak'
PACKAGE_TARNAME='liblinebreak' PACKAGE_TARNAME='liblinebreak'
PACKAGE_VERSION='1.2' PACKAGE_VERSION='2.0'
PACKAGE_STRING='liblinebreak 1.2' PACKAGE_STRING='liblinebreak 2.0'
PACKAGE_BUGREPORT='wuyongwei@gmail.com' PACKAGE_BUGREPORT='wuyongwei@gmail.com'
ac_unique_file="linebreak.c" ac_unique_file="linebreak.c"
@ -1390,7 +1390,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures liblinebreak 1.2 to adapt to many kinds of systems. \`configure' configures liblinebreak 2.0 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1460,7 +1460,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of liblinebreak 1.2:";; short | recursive ) echo "Configuration of liblinebreak 2.0:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1562,7 +1562,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
liblinebreak configure 1.2 liblinebreak configure 2.0
generated by GNU Autoconf 2.61 generated by GNU Autoconf 2.61
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -1576,7 +1576,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by liblinebreak $as_me 1.2, which was It was created by liblinebreak $as_me 2.0, which was
generated by GNU Autoconf 2.61. Invocation command line was generated by GNU Autoconf 2.61. Invocation command line was
$ $0 $@ $ $0 $@
@ -2269,7 +2269,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='liblinebreak' PACKAGE='liblinebreak'
VERSION='1.2' VERSION='2.0'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -19577,7 +19577,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by liblinebreak $as_me 1.2, which was This file was extended by liblinebreak $as_me 2.0, which was
generated by GNU Autoconf 2.61. Invocation command line was generated by GNU Autoconf 2.61. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -19630,7 +19630,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\ ac_cs_version="\\
liblinebreak config.status 1.2 liblinebreak config.status 2.0
configured by $0, generated by GNU Autoconf 2.61, configured by $0, generated by GNU Autoconf 2.61,
with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"

View file

@ -1,5 +1,5 @@
AC_PREREQ(2.57) AC_PREREQ(2.57)
AC_INIT([liblinebreak],[1.2],[wuyongwei@gmail.com]) AC_INIT([liblinebreak],[2.0],[wuyongwei@gmail.com])
AC_CONFIG_SRCDIR([linebreak.c]) AC_CONFIG_SRCDIR([linebreak.c])
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([foreign]) AM_INIT_AUTOMAKE([foreign])

View file

@ -1,15 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Structures</title> <title>liblinebreak: Data Structures</title>
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body> </head>
<!-- Generated by Doxygen 1.5.9 --> <body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top"> <div class="navigation" id="top">
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li> <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li> <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li> <li><a href="files.html"><span>Files</span></a></li>
</ul> </ul>
@ -29,8 +31,8 @@
<tr><td class="indexkey"><a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a></td><td class="indexvalue">Struct for association of language-specific line breaking properties with language names </td></tr> <tr><td class="indexkey"><a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a></td><td class="indexvalue">Struct for association of language-specific line breaking properties with language names </td></tr>
</table> </table>
</div> </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp; <hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html"> <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body> </body>
</html> </html>

View file

@ -1,15 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Alphabetical List</title> <title>liblinebreak: Alphabetical List</title>
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body> </head>
<!-- Generated by Doxygen 1.5.9 --> <body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top"> <div class="navigation" id="top">
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li> <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li> <li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li> <li><a href="files.html"><span>Files</span></a></li>
</ul> </ul>
@ -23,13 +25,13 @@
</div> </div>
</div> </div>
<div class="contents"> <div class="contents">
<h1>Data Structure Index</h1><p><div class="qindex"><a class="qindex" href="#letter_L">L</a></div><p> <h1>Data Structure Index</h1><div class="qindex"><a class="qindex" href="#letter_L">L</a></div>
<table align="center" width="95%" border="0" cellspacing="0" cellpadding="0"> <table align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
<tr><td><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;L&nbsp;&nbsp;</div></td></tr></table> <tr><td><a name="letter_L"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&nbsp;&nbsp;L&nbsp;&nbsp;</div></td></tr></table>
</td><td><a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a>&nbsp;&nbsp;&nbsp;</td></tr></table><p><div class="qindex"><a class="qindex" href="#letter_L">L</a></div><p> </td><td><a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a>&nbsp;&nbsp;&nbsp;</td><td><a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a>&nbsp;&nbsp;&nbsp;</td></tr></table><div class="qindex"><a class="qindex" href="#letter_L">L</a></div>
</div> </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp; <hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html"> <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body> </body>
</html> </html>

View file

@ -1,3 +1,5 @@
/* The standard CSS for doxygen */
body, table, div, p, dl { body, table, div, p, dl {
font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif; font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
font-size: 12px; font-size: 12px;
@ -18,12 +20,40 @@ h3 {
font-size: 100%; font-size: 100%;
} }
dt {
font-weight: bold;
}
div.multicol {
-moz-column-gap: 1em;
-webkit-column-gap: 1em;
-moz-column-count: 3;
-webkit-column-count: 3;
}
p.startli, p.startdd {
margin-top: 2px;
}
p.endli {
margin-bottom: 0px;
}
p.enddd {
margin-bottom: 4px;
}
/* @end */ /* @end */
caption { caption {
font-weight: bold; font-weight: bold;
} }
span.legend {
font-size: 70%;
text-align: center;
}
div.qindex, div.navtab{ div.qindex, div.navtab{
background-color: #e8eef2; background-color: #e8eef2;
border: 1px solid #84b0c7; border: 1px solid #84b0c7;
@ -161,6 +191,22 @@ img.formulaInl {
vertical-align: middle; vertical-align: middle;
} }
div.center {
text-align: center;
margin-top: 0px;
margin-bottom: 0px;
padding: 0px;
}
div.center img {
border: 0px;
}
img.footer {
border: 0px;
vertical-align: middle;
}
/* @group Code Colorization */ /* @group Code Colorization */
span.keyword { span.keyword {
@ -267,8 +313,13 @@ hr {
border-top: 1px solid #ccc; border-top: 1px solid #ccc;
} }
.memItemLeft, .memTemplItemLeft {
white-space: nowrap;
}
.memTemplParams { .memTemplParams {
color: #606060; color: #606060;
white-space: nowrap;
} }
/* @end */ /* @end */
@ -295,6 +346,7 @@ hr {
.memitem { .memitem {
padding: 0; padding: 0;
margin-bottom: 10px;
} }
.memname { .memname {
@ -312,8 +364,11 @@ hr {
font-weight: bold; font-weight: bold;
-webkit-border-top-left-radius: 8px; -webkit-border-top-left-radius: 8px;
-webkit-border-top-right-radius: 8px; -webkit-border-top-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-moz-border-radius-topleft: 8px; -moz-border-radius-topleft: 8px;
-moz-border-radius-topright: 8px; -moz-border-radius-topright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
} }
.memdoc { .memdoc {
@ -322,8 +377,10 @@ hr {
border-top-width: 0; border-top-width: 0;
-webkit-border-bottom-left-radius: 8px; -webkit-border-bottom-left-radius: 8px;
-webkit-border-bottom-right-radius: 8px; -webkit-border-bottom-right-radius: 8px;
-webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
-moz-border-radius-bottomleft: 8px; -moz-border-radius-bottomleft: 8px;
-moz-border-radius-bottomright: 8px; -moz-border-radius-bottomright: 8px;
-moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
} }
.paramkey { .paramkey {

View file

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before After
Before After

View file

@ -1,15 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: File Index</title> <title>liblinebreak: File Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body> </head>
<!-- Generated by Doxygen 1.5.9 --> <body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top"> <div class="navigation" id="top">
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li> <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li> <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li>
</ul> </ul>
@ -30,8 +32,8 @@
<tr><td class="indexkey"><a class="el" href="linebreakdef_8h.html">linebreakdef.h</a> <a href="linebreakdef_8h_source.html">[code]</a></td><td class="indexvalue">Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm </td></tr> <tr><td class="indexkey"><a class="el" href="linebreakdef_8h.html">linebreakdef.h</a> <a href="linebreakdef_8h_source.html">[code]</a></td><td class="indexvalue">Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm </td></tr>
</table> </table>
</div> </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp; <hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html"> <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body> </body>
</html> </html>

View file

@ -0,0 +1,61 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all struct and union fields with links to the structures/unions they belong to:<ul>
<li>end
: <a class="el" href="structLineBreakPropertiesIndex.html#a7a5207276632f772309f8cf2877c9eae">LineBreakPropertiesIndex</a>
, <a class="el" href="structLineBreakProperties.html#af6ff463e88f6c694661aa10222404a14">LineBreakProperties</a>
</li>
<li>lang
: <a class="el" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d">LineBreakPropertiesLang</a>
</li>
<li>lbp
: <a class="el" href="structLineBreakPropertiesLang.html#ae4b7339a372a0ccbf97e380aa440ff9d">LineBreakPropertiesLang</a>
, <a class="el" href="structLineBreakPropertiesIndex.html#ade56f82faa0703e4eafddb0fc4ba6528">LineBreakPropertiesIndex</a>
</li>
<li>namelen
: <a class="el" href="structLineBreakPropertiesLang.html#ab5132ed92c5964a5cfecbb21de206488">LineBreakPropertiesLang</a>
</li>
<li>prop
: <a class="el" href="structLineBreakProperties.html#a46d34ea3f514f8f082d92a441a6665ba">LineBreakProperties</a>
</li>
<li>start
: <a class="el" href="structLineBreakProperties.html#a1fe368ff9b53f52305c8dca687395372">LineBreakProperties</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,61 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>end
: <a class="el" href="structLineBreakPropertiesIndex.html#a7a5207276632f772309f8cf2877c9eae">LineBreakPropertiesIndex</a>
, <a class="el" href="structLineBreakProperties.html#af6ff463e88f6c694661aa10222404a14">LineBreakProperties</a>
</li>
<li>lang
: <a class="el" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d">LineBreakPropertiesLang</a>
</li>
<li>lbp
: <a class="el" href="structLineBreakPropertiesLang.html#ae4b7339a372a0ccbf97e380aa440ff9d">LineBreakPropertiesLang</a>
, <a class="el" href="structLineBreakPropertiesIndex.html#ade56f82faa0703e4eafddb0fc4ba6528">LineBreakPropertiesIndex</a>
</li>
<li>namelen
: <a class="el" href="structLineBreakPropertiesLang.html#ab5132ed92c5964a5cfecbb21de206488">LineBreakPropertiesLang</a>
</li>
<li>prop
: <a class="el" href="structLineBreakProperties.html#a46d34ea3f514f8f082d92a441a6665ba">LineBreakProperties</a>
</li>
<li>start
: <a class="el" href="structLineBreakProperties.html#a1fe368ff9b53f52305c8dca687395372">LineBreakProperties</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,359 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
<h3><a class="anchor" id="index_b">- b -</a></h3><ul>
<li>baTable
: <a class="el" href="linebreak_8c.html#ae334fc5c93e9d07c1f6731774cdc07d4">linebreak.c</a>
</li>
<li>BreakAction
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
<li>CM_INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da3e854663bba91b604d4a5f633b62c74a">linebreak.c</a>
</li>
<li>CM_PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da9ae64fb627a84203f331f718eaf942c8">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
<li>DIRECT_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da570708fb66d60c437dc3e8c1c784eef6">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_e">- e -</a></h3><ul>
<li>EOS
: <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1">linebreakdef.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_g">- g -</a></h3><ul>
<li>get_char_lb_class()
: <a class="el" href="linebreak_8c.html#a4eb765d3c50b5be0f694f9dd875bf5bb">linebreak.c</a>
</li>
<li>get_char_lb_class_default()
: <a class="el" href="linebreak_8c.html#aa8be95ab8e6ee731e55279772b5aec91">linebreak.c</a>
</li>
<li>get_char_lb_class_lang()
: <a class="el" href="linebreak_8c.html#a41ec5a32a31d007d60ea57caa38a2f3e">linebreak.c</a>
</li>
<li>get_lb_prop_lang()
: <a class="el" href="linebreak_8c.html#aec14ede6c9c839852210a729274c7fbc">linebreak.c</a>
</li>
<li>get_next_char_t
: <a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">linebreakdef.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
<li>INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da246deb66413ac197d95680d31d4d5436">linebreak.c</a>
</li>
<li>init_linebreak()
: <a class="el" href="linebreak_8c.html#a57c2b88b7e1277cbba23cfffbc782c4f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#a57c2b88b7e1277cbba23cfffbc782c4f">linebreak.h</a>
</li>
<li>is_line_breakable()
: <a class="el" href="linebreak_8c.html#a5761f60559b5ddb61bb095f00c7deb5c">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#a5761f60559b5ddb61bb095f00c7deb5c">linebreak.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
<li>lb_get_next_char_utf16()
: <a class="el" href="linebreak_8c.html#aa1664feb525e6bf1efbe8566547708be">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#aa1664feb525e6bf1efbe8566547708be">linebreakdef.h</a>
</li>
<li>lb_get_next_char_utf32()
: <a class="el" href="linebreakdef_8h.html#a1f8bc7169caccfa444e75274b55e6721">linebreakdef.h</a>
, <a class="el" href="linebreak_8c.html#a1f8bc7169caccfa444e75274b55e6721">linebreak.c</a>
</li>
<li>lb_get_next_char_utf8()
: <a class="el" href="linebreak_8c.html#a5ffc31765568becd8b9eb08a3916ab4b">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#a5ffc31765568becd8b9eb08a3916ab4b">linebreakdef.h</a>
</li>
<li>lb_prop_Chinese
: <a class="el" href="linebreakdef_8c.html#a945fbc26db32e1f4fbce4f6e9ae70189">linebreakdef.c</a>
</li>
<li>lb_prop_default
: <a class="el" href="linebreakdata_8c.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdata.c</a>
, <a class="el" href="linebreakdef_8h.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdef.h</a>
</li>
<li>lb_prop_English
: <a class="el" href="linebreakdef_8c.html#acb15b3309e7e1c7a48da9535c4e2855f">linebreakdef.c</a>
</li>
<li>lb_prop_French
: <a class="el" href="linebreakdef_8c.html#af75c60d3b0f882032e6932da25b9c9fa">linebreakdef.c</a>
</li>
<li>lb_prop_German
: <a class="el" href="linebreakdef_8c.html#ac39e3f65a289864edb8a38a201481627">linebreakdef.c</a>
</li>
<li>lb_prop_index
: <a class="el" href="linebreak_8c.html#a5f6f6df49c934134e8fb043ce6230931">linebreak.c</a>
</li>
<li>lb_prop_lang_map
: <a class="el" href="linebreakdef_8c.html#a82efdfa4115828df9158e183f1a9983d">linebreakdef.c</a>
, <a class="el" href="linebreakdef_8h.html#a82efdfa4115828df9158e183f1a9983d">linebreakdef.h</a>
</li>
<li>lb_prop_Russian
: <a class="el" href="linebreakdef_8c.html#a980ede377c1ded0d24a58fb429f237f4">linebreakdef.c</a>
</li>
<li>lb_prop_Spanish
: <a class="el" href="linebreakdef_8c.html#a41ee5277b95d453efdfb0e0242e1cb5f">linebreakdef.c</a>
</li>
<li>LBP_AI
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3">linebreakdef.h</a>
</li>
<li>LBP_AL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281">linebreakdef.h</a>
</li>
<li>LBP_B2
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63">linebreakdef.h</a>
</li>
<li>LBP_BA
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74">linebreakdef.h</a>
</li>
<li>LBP_BB
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d">linebreakdef.h</a>
</li>
<li>LBP_BK
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626">linebreakdef.h</a>
</li>
<li>LBP_CB
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1">linebreakdef.h</a>
</li>
<li>LBP_CL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d">linebreakdef.h</a>
</li>
<li>LBP_CM
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1">linebreakdef.h</a>
</li>
<li>LBP_CP
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb">linebreakdef.h</a>
</li>
<li>LBP_CR
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2">linebreakdef.h</a>
</li>
<li>LBP_EX
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0">linebreakdef.h</a>
</li>
<li>LBP_GL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7">linebreakdef.h</a>
</li>
<li>LBP_H2
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc">linebreakdef.h</a>
</li>
<li>LBP_H3
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380">linebreakdef.h</a>
</li>
<li>LBP_HY
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883">linebreakdef.h</a>
</li>
<li>LBP_ID
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55">linebreakdef.h</a>
</li>
<li>LBP_IN
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73">linebreakdef.h</a>
</li>
<li>LBP_IS
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e">linebreakdef.h</a>
</li>
<li>LBP_JL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb">linebreakdef.h</a>
</li>
<li>LBP_JT
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf">linebreakdef.h</a>
</li>
<li>LBP_JV
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8">linebreakdef.h</a>
</li>
<li>LBP_LF
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab">linebreakdef.h</a>
</li>
<li>LBP_NL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf">linebreakdef.h</a>
</li>
<li>LBP_NS
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0">linebreakdef.h</a>
</li>
<li>LBP_NU
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28">linebreakdef.h</a>
</li>
<li>LBP_OP
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3">linebreakdef.h</a>
</li>
<li>LBP_PO
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba">linebreakdef.h</a>
</li>
<li>LBP_PR
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57">linebreakdef.h</a>
</li>
<li>LBP_QU
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e">linebreakdef.h</a>
</li>
<li>LBP_SA
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769">linebreakdef.h</a>
</li>
<li>LBP_SG
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817">linebreakdef.h</a>
</li>
<li>LBP_SP
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4">linebreakdef.h</a>
</li>
<li>LBP_SY
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097">linebreakdef.h</a>
</li>
<li>LBP_Undefined
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723">linebreakdef.h</a>
</li>
<li>LBP_WJ
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa">linebreakdef.h</a>
</li>
<li>LBP_XX
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0">linebreakdef.h</a>
</li>
<li>LBP_ZW
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee">linebreakdef.h</a>
</li>
<li>LINEBREAK_ALLOWBREAK
: <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363">linebreak.h</a>
</li>
<li>LINEBREAK_INDEX_SIZE
: <a class="el" href="linebreak_8c.html#a0ba826ea7bf9cd9038b146bb3572dbf0">linebreak.c</a>
</li>
<li>LINEBREAK_INSIDEACHAR
: <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d">linebreak.h</a>
</li>
<li>LINEBREAK_MUSTBREAK
: <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77">linebreak.h</a>
</li>
<li>LINEBREAK_NOBREAK
: <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc">linebreak.h</a>
</li>
<li>linebreak_version
: <a class="el" href="linebreak_8h.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak.h</a>
</li>
<li>LINEBREAK_VERSION
: <a class="el" href="linebreak_8h.html#a83634cb3df4ba09faf22ba687ffc4c02">linebreak.h</a>
</li>
<li>linebreak_version
: <a class="el" href="linebreak_8c.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak.c</a>
</li>
<li>LineBreakClass
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">linebreakdef.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
<li>PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8dac31d10dc16c2e583ceb6c7e198fc9799">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_r">- r -</a></h3><ul>
<li>resolve_lb_class()
: <a class="el" href="linebreak_8c.html#aa42b073302ff3325b087b61c78bf4841">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_s">- s -</a></h3><ul>
<li>set_linebreaks()
: <a class="el" href="linebreak_8c.html#a0e86da0f08579bd9bfeb437f5fab15fe">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#a0e86da0f08579bd9bfeb437f5fab15fe">linebreakdef.h</a>
</li>
<li>set_linebreaks_utf16()
: <a class="el" href="linebreak_8h.html#a1d56bce2d32cd986052172638cec43c8">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#a1d56bce2d32cd986052172638cec43c8">linebreak.c</a>
</li>
<li>set_linebreaks_utf32()
: <a class="el" href="linebreak_8c.html#a9fdce33b4ded9d586888c16228ae9e1f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#a9fdce33b4ded9d586888c16228ae9e1f">linebreak.h</a>
</li>
<li>set_linebreaks_utf8()
: <a class="el" href="linebreak_8h.html#ab426e9cf68117faf583a0ed54742cb28">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#ab426e9cf68117faf583a0ed54742cb28">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_u">- u -</a></h3><ul>
<li>utf16_t
: <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">linebreak.h</a>
</li>
<li>utf32_t
: <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">linebreak.h</a>
</li>
<li>utf8_t
: <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">linebreak.h</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,66 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>EOS
: <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1">linebreakdef.h</a>
</li>
<li>LINEBREAK_ALLOWBREAK
: <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363">linebreak.h</a>
</li>
<li>LINEBREAK_INDEX_SIZE
: <a class="el" href="linebreak_8c.html#a0ba826ea7bf9cd9038b146bb3572dbf0">linebreak.c</a>
</li>
<li>LINEBREAK_INSIDEACHAR
: <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d">linebreak.h</a>
</li>
<li>LINEBREAK_MUSTBREAK
: <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77">linebreak.h</a>
</li>
<li>LINEBREAK_NOBREAK
: <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc">linebreak.h</a>
</li>
<li>LINEBREAK_VERSION
: <a class="el" href="linebreak_8h.html#a83634cb3df4ba09faf22ba687ffc4c02">linebreak.h</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -1,15 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title> <title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body> </head>
<!-- Generated by Doxygen 1.5.9 --> <body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top"> <div class="navigation" id="top">
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li> <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li> <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li>
</ul> </ul>
@ -33,17 +35,17 @@
</div> </div>
</div> </div>
<div class="contents"> <div class="contents">
&nbsp; &nbsp;<ul>
<p>
<ul>
<li>BreakAction <li>BreakAction
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">linebreak.c</a> : <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">linebreak.c</a>
</li>
<li>LineBreakClass <li>LineBreakClass
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">linebreakdef.h</a> : <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">linebreakdef.h</a>
</li>
</ul> </ul>
</div> </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp; <hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html"> <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body> </body>
</html> </html>

View file

@ -0,0 +1,201 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<h3><a class="anchor" id="index_c">- c -</a></h3><ul>
<li>CM_INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da3e854663bba91b604d4a5f633b62c74a">linebreak.c</a>
</li>
<li>CM_PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da9ae64fb627a84203f331f718eaf942c8">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_d">- d -</a></h3><ul>
<li>DIRECT_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da570708fb66d60c437dc3e8c1c784eef6">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_i">- i -</a></h3><ul>
<li>INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da246deb66413ac197d95680d31d4d5436">linebreak.c</a>
</li>
</ul>
<h3><a class="anchor" id="index_l">- l -</a></h3><ul>
<li>LBP_AI
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3">linebreakdef.h</a>
</li>
<li>LBP_AL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281">linebreakdef.h</a>
</li>
<li>LBP_B2
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63">linebreakdef.h</a>
</li>
<li>LBP_BA
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74">linebreakdef.h</a>
</li>
<li>LBP_BB
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d">linebreakdef.h</a>
</li>
<li>LBP_BK
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626">linebreakdef.h</a>
</li>
<li>LBP_CB
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1">linebreakdef.h</a>
</li>
<li>LBP_CL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d">linebreakdef.h</a>
</li>
<li>LBP_CM
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1">linebreakdef.h</a>
</li>
<li>LBP_CP
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb">linebreakdef.h</a>
</li>
<li>LBP_CR
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2">linebreakdef.h</a>
</li>
<li>LBP_EX
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0">linebreakdef.h</a>
</li>
<li>LBP_GL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7">linebreakdef.h</a>
</li>
<li>LBP_H2
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc">linebreakdef.h</a>
</li>
<li>LBP_H3
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380">linebreakdef.h</a>
</li>
<li>LBP_HY
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883">linebreakdef.h</a>
</li>
<li>LBP_ID
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55">linebreakdef.h</a>
</li>
<li>LBP_IN
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73">linebreakdef.h</a>
</li>
<li>LBP_IS
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e">linebreakdef.h</a>
</li>
<li>LBP_JL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb">linebreakdef.h</a>
</li>
<li>LBP_JT
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf">linebreakdef.h</a>
</li>
<li>LBP_JV
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8">linebreakdef.h</a>
</li>
<li>LBP_LF
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab">linebreakdef.h</a>
</li>
<li>LBP_NL
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf">linebreakdef.h</a>
</li>
<li>LBP_NS
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0">linebreakdef.h</a>
</li>
<li>LBP_NU
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28">linebreakdef.h</a>
</li>
<li>LBP_OP
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3">linebreakdef.h</a>
</li>
<li>LBP_PO
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba">linebreakdef.h</a>
</li>
<li>LBP_PR
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57">linebreakdef.h</a>
</li>
<li>LBP_QU
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e">linebreakdef.h</a>
</li>
<li>LBP_SA
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769">linebreakdef.h</a>
</li>
<li>LBP_SG
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817">linebreakdef.h</a>
</li>
<li>LBP_SP
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4">linebreakdef.h</a>
</li>
<li>LBP_SY
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097">linebreakdef.h</a>
</li>
<li>LBP_Undefined
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723">linebreakdef.h</a>
</li>
<li>LBP_WJ
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa">linebreakdef.h</a>
</li>
<li>LBP_XX
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0">linebreakdef.h</a>
</li>
<li>LBP_ZW
: <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee">linebreakdef.h</a>
</li>
</ul>
<h3><a class="anchor" id="index_p">- p -</a></h3><ul>
<li>PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8dac31d10dc16c2e583ceb6c7e198fc9799">linebreak.c</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,96 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>get_char_lb_class()
: <a class="el" href="linebreak_8c.html#a4eb765d3c50b5be0f694f9dd875bf5bb">linebreak.c</a>
</li>
<li>get_char_lb_class_default()
: <a class="el" href="linebreak_8c.html#aa8be95ab8e6ee731e55279772b5aec91">linebreak.c</a>
</li>
<li>get_char_lb_class_lang()
: <a class="el" href="linebreak_8c.html#a41ec5a32a31d007d60ea57caa38a2f3e">linebreak.c</a>
</li>
<li>get_lb_prop_lang()
: <a class="el" href="linebreak_8c.html#aec14ede6c9c839852210a729274c7fbc">linebreak.c</a>
</li>
<li>init_linebreak()
: <a class="el" href="linebreak_8c.html#a57c2b88b7e1277cbba23cfffbc782c4f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#a57c2b88b7e1277cbba23cfffbc782c4f">linebreak.h</a>
</li>
<li>is_line_breakable()
: <a class="el" href="linebreak_8c.html#a5761f60559b5ddb61bb095f00c7deb5c">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#a5761f60559b5ddb61bb095f00c7deb5c">linebreak.h</a>
</li>
<li>lb_get_next_char_utf16()
: <a class="el" href="linebreak_8c.html#aa1664feb525e6bf1efbe8566547708be">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#aa1664feb525e6bf1efbe8566547708be">linebreakdef.h</a>
</li>
<li>lb_get_next_char_utf32()
: <a class="el" href="linebreakdef_8h.html#a1f8bc7169caccfa444e75274b55e6721">linebreakdef.h</a>
, <a class="el" href="linebreak_8c.html#a1f8bc7169caccfa444e75274b55e6721">linebreak.c</a>
</li>
<li>lb_get_next_char_utf8()
: <a class="el" href="linebreakdef_8h.html#a5ffc31765568becd8b9eb08a3916ab4b">linebreakdef.h</a>
, <a class="el" href="linebreak_8c.html#a5ffc31765568becd8b9eb08a3916ab4b">linebreak.c</a>
</li>
<li>resolve_lb_class()
: <a class="el" href="linebreak_8c.html#aa42b073302ff3325b087b61c78bf4841">linebreak.c</a>
</li>
<li>set_linebreaks()
: <a class="el" href="linebreak_8c.html#a0e86da0f08579bd9bfeb437f5fab15fe">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#a0e86da0f08579bd9bfeb437f5fab15fe">linebreakdef.h</a>
</li>
<li>set_linebreaks_utf16()
: <a class="el" href="linebreak_8h.html#a1d56bce2d32cd986052172638cec43c8">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#a1d56bce2d32cd986052172638cec43c8">linebreak.c</a>
</li>
<li>set_linebreaks_utf32()
: <a class="el" href="linebreak_8c.html#a9fdce33b4ded9d586888c16228ae9e1f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#a9fdce33b4ded9d586888c16228ae9e1f">linebreak.h</a>
</li>
<li>set_linebreaks_utf8()
: <a class="el" href="linebreak_8h.html#ab426e9cf68117faf583a0ed54742cb28">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#ab426e9cf68117faf583a0ed54742cb28">linebreak.c</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -1,15 +1,17 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title> <title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head><body> </head>
<!-- Generated by Doxygen 1.5.9 --> <body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top"> <div class="navigation" id="top">
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li> <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li> <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li>
</ul> </ul>
@ -33,21 +35,23 @@
</div> </div>
</div> </div>
<div class="contents"> <div class="contents">
&nbsp; &nbsp;<ul>
<p>
<ul>
<li>get_next_char_t <li>get_next_char_t
: <a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">linebreakdef.h</a> : <a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">linebreakdef.h</a>
</li>
<li>utf16_t <li>utf16_t
: <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">linebreak.h</a> : <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">linebreak.h</a>
</li>
<li>utf32_t <li>utf32_t
: <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">linebreak.h</a> : <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">linebreak.h</a>
</li>
<li>utf8_t <li>utf8_t
: <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">linebreak.h</a> : <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">linebreak.h</a>
</li>
</ul> </ul>
</div> </div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp; <hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html"> <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body> </body>
</html> </html>

View file

@ -0,0 +1,81 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;<ul>
<li>baTable
: <a class="el" href="linebreak_8c.html#ae334fc5c93e9d07c1f6731774cdc07d4">linebreak.c</a>
</li>
<li>lb_prop_Chinese
: <a class="el" href="linebreakdef_8c.html#a945fbc26db32e1f4fbce4f6e9ae70189">linebreakdef.c</a>
</li>
<li>lb_prop_default
: <a class="el" href="linebreakdata_8c.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdata.c</a>
, <a class="el" href="linebreakdef_8h.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdef.h</a>
</li>
<li>lb_prop_English
: <a class="el" href="linebreakdef_8c.html#acb15b3309e7e1c7a48da9535c4e2855f">linebreakdef.c</a>
</li>
<li>lb_prop_French
: <a class="el" href="linebreakdef_8c.html#af75c60d3b0f882032e6932da25b9c9fa">linebreakdef.c</a>
</li>
<li>lb_prop_German
: <a class="el" href="linebreakdef_8c.html#ac39e3f65a289864edb8a38a201481627">linebreakdef.c</a>
</li>
<li>lb_prop_index
: <a class="el" href="linebreak_8c.html#a5f6f6df49c934134e8fb043ce6230931">linebreak.c</a>
</li>
<li>lb_prop_lang_map
: <a class="el" href="linebreakdef_8c.html#a82efdfa4115828df9158e183f1a9983d">linebreakdef.c</a>
, <a class="el" href="linebreakdef_8h.html#a82efdfa4115828df9158e183f1a9983d">linebreakdef.h</a>
</li>
<li>lb_prop_Russian
: <a class="el" href="linebreakdef_8c.html#a980ede377c1ded0d24a58fb429f237f4">linebreakdef.c</a>
</li>
<li>lb_prop_Spanish
: <a class="el" href="linebreakdef_8c.html#a41ee5277b95d453efdfb0e0242e1cb5f">linebreakdef.c</a>
</li>
<li>linebreak_version
: <a class="el" href="linebreak_8h.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak.c</a>
</li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,26 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>liblinebreak Documentation</h1></div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,780 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreak.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreak.c File Reference</h1>
<p>Implementation of the line breaking algorithm as described in Unicode Standard Annex 14.
<a href="#_details">More...</a></p>
<code>#include &lt;assert.h&gt;</code><br/>
<code>#include &lt;stddef.h&gt;</code><br/>
<code>#include &lt;string.h&gt;</code><br/>
<code>#include &quot;<a class="el" href="linebreak_8h_source.html">linebreak.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct for the second-level index to the line breaking properties. <a href="structLineBreakPropertiesIndex.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a0ba826ea7bf9cd9038b146bb3572dbf0">LINEBREAK_INDEX_SIZE</a>&nbsp;&nbsp;&nbsp;40</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Size of the second-level index to the line breaking properties. <a href="#a0ba826ea7bf9cd9038b146bb3572dbf0"></a><br/></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a> { <br/>
&nbsp;&nbsp;<a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da570708fb66d60c437dc3e8c1c784eef6">DIRECT_BRK</a>,
<a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da246deb66413ac197d95680d31d4d5436">INDIRECT_BRK</a>,
<a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da3e854663bba91b604d4a5f633b62c74a">CM_INDIRECT_BRK</a>,
<a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8da9ae64fb627a84203f331f718eaf942c8">CM_PROHIBITED_BRK</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8dac31d10dc16c2e583ceb6c7e198fc9799">PROHIBITED_BRK</a>
<br/>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Enumeration of break actions. </p>
<a href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a57c2b88b7e1277cbba23cfffbc782c4f">init_linebreak</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the second-level index to the line breaking properties. <a href="#a57c2b88b7e1277cbba23cfffbc782c4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#aec14ede6c9c839852210a729274c7fbc">get_lb_prop_lang</a> (const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the language-specific line breaking properties. <a href="#aec14ede6c9c839852210a729274c7fbc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a4eb765d3c50b5be0f694f9dd875bf5bb">get_char_lb_class</a> (<a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> ch, struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *lbp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the line breaking class of a character from a line breaking properties array. <a href="#a4eb765d3c50b5be0f694f9dd875bf5bb"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#aa8be95ab8e6ee731e55279772b5aec91">get_char_lb_class_default</a> (<a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> ch)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the line breaking class of a character from the default line breaking properties array. <a href="#aa8be95ab8e6ee731e55279772b5aec91"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a41ec5a32a31d007d60ea57caa38a2f3e">get_char_lb_class_lang</a> (<a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> ch, struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *lbpLang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the line breaking class of a character for a specific language. <a href="#a41ec5a32a31d007d60ea57caa38a2f3e"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#aa42b073302ff3325b087b61c78bf4841">resolve_lb_class</a> (enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> lbc, const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resolves the line breaking class for certain ambiguous or complicated characters. <a href="#aa42b073302ff3325b087b61c78bf4841"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a5ffc31765568becd8b9eb08a3916ab4b">lb_get_next_char_utf8</a> (const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-8 sequence. <a href="#a5ffc31765568becd8b9eb08a3916ab4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#aa1664feb525e6bf1efbe8566547708be">lb_get_next_char_utf16</a> (const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-16 sequence. <a href="#aa1664feb525e6bf1efbe8566547708be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a1f8bc7169caccfa444e75274b55e6721">lb_get_next_char_utf32</a> (const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-32 sequence. <a href="#a1f8bc7169caccfa444e75274b55e6721"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a0e86da0f08579bd9bfeb437f5fab15fe">set_linebreaks</a> (const void *s, size_t len, const char *lang, char *brks, <a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a> get_next_char)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a generic input string. <a href="#a0e86da0f08579bd9bfeb437f5fab15fe"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#ab426e9cf68117faf583a0ed54742cb28">set_linebreaks_utf8</a> (const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-8 input string. <a href="#ab426e9cf68117faf583a0ed54742cb28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a1d56bce2d32cd986052172638cec43c8">set_linebreaks_utf16</a> (const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-16 input string. <a href="#a1d56bce2d32cd986052172638cec43c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a9fdce33b4ded9d586888c16228ae9e1f">set_linebreaks_utf32</a> (const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-32 input string. <a href="#a9fdce33b4ded9d586888c16228ae9e1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a5761f60559b5ddb61bb095f00c7deb5c">is_line_breakable</a> (<a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> char1, <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> char2, const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether a line break can occur between two Unicode characters. <a href="#a5761f60559b5ddb61bb095f00c7deb5c"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak_version</a> = LINEBREAK_VERSION</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Version number of the library. <a href="#a0ac90a75aa79415fe87e66b95d8fd09b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static enum <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#ae334fc5c93e9d07c1f6731774cdc07d4">baTable</a> [LBP_JT][LBP_JT]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Break action pair table. <a href="#ae334fc5c93e9d07c1f6731774cdc07d4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <br class="typebreak"/>
<a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a5f6f6df49c934134e8fb043ce6230931">lb_prop_index</a> [LINEBREAK_INDEX_SIZE]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Second-level index to the line breaking properties. <a href="#a5f6f6df49c934134e8fb043ce6230931"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Implementation of the line breaking algorithm as described in Unicode Standard Annex 14. </p>
<dl class="version"><dt><b>Version:</b></dt><dd>1.95, 2009/11/29 </dd></dl>
<dl class="author"><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a0ba826ea7bf9cd9038b146bb3572dbf0"></a><!-- doxytag: member="linebreak.c::LINEBREAK_INDEX_SIZE" ref="a0ba826ea7bf9cd9038b146bb3572dbf0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_INDEX_SIZE&nbsp;&nbsp;&nbsp;40</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Size of the second-level index to the line breaking properties. </p>
</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a440c1a7abb9df5e3fc1d27b9a39e3a8d"></a><!-- doxytag: member="linebreak.c::BreakAction" ref="a440c1a7abb9df5e3fc1d27b9a39e3a8d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Enumeration of break actions. </p>
<p>They are used in the break action pair table below. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a440c1a7abb9df5e3fc1d27b9a39e3a8da570708fb66d60c437dc3e8c1c784eef6"></a><!-- doxytag: member="DIRECT_BRK" ref="a440c1a7abb9df5e3fc1d27b9a39e3a8da570708fb66d60c437dc3e8c1c784eef6" args="" -->DIRECT_BRK</em>&nbsp;</td><td>
<p>Direct break opportunity. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a440c1a7abb9df5e3fc1d27b9a39e3a8da246deb66413ac197d95680d31d4d5436"></a><!-- doxytag: member="INDIRECT_BRK" ref="a440c1a7abb9df5e3fc1d27b9a39e3a8da246deb66413ac197d95680d31d4d5436" args="" -->INDIRECT_BRK</em>&nbsp;</td><td>
<p>Indirect break opportunity. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a440c1a7abb9df5e3fc1d27b9a39e3a8da3e854663bba91b604d4a5f633b62c74a"></a><!-- doxytag: member="CM_INDIRECT_BRK" ref="a440c1a7abb9df5e3fc1d27b9a39e3a8da3e854663bba91b604d4a5f633b62c74a" args="" -->CM_INDIRECT_BRK</em>&nbsp;</td><td>
<p>Indirect break opportunity for combining marks. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a440c1a7abb9df5e3fc1d27b9a39e3a8da9ae64fb627a84203f331f718eaf942c8"></a><!-- doxytag: member="CM_PROHIBITED_BRK" ref="a440c1a7abb9df5e3fc1d27b9a39e3a8da9ae64fb627a84203f331f718eaf942c8" args="" -->CM_PROHIBITED_BRK</em>&nbsp;</td><td>
<p>Prohibited break for combining marks. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a440c1a7abb9df5e3fc1d27b9a39e3a8dac31d10dc16c2e583ceb6c7e198fc9799"></a><!-- doxytag: member="PROHIBITED_BRK" ref="a440c1a7abb9df5e3fc1d27b9a39e3a8dac31d10dc16c2e583ceb6c7e198fc9799" args="" -->PROHIBITED_BRK</em>&nbsp;</td><td>
<p>Prohibited break. </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a4eb765d3c50b5be0f694f9dd875bf5bb"></a><!-- doxytag: member="linebreak.c::get_char_lb_class" ref="a4eb765d3c50b5be0f694f9dd875bf5bb" args="(utf32_t ch, struct LineBreakProperties *lbp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> get_char_lb_class </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>ch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td>
<td class="paramname"> <em>lbp</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the line breaking class of a character from a line breaking properties array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>character to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lbp</em>&nbsp;</td><td>pointer to the line breaking properties array </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the line breaking class if found; <code>LBP_XX</code> otherwise </dd></dl>
</div>
</div>
<a class="anchor" id="aa8be95ab8e6ee731e55279772b5aec91"></a><!-- doxytag: member="linebreak.c::get_char_lb_class_default" ref="aa8be95ab8e6ee731e55279772b5aec91" args="(utf32_t ch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> get_char_lb_class_default </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>ch</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the line breaking class of a character from the default line breaking properties array. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>character to check </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the line breaking class if found; <code>LBP_XX</code> otherwise </dd></dl>
</div>
</div>
<a class="anchor" id="a41ec5a32a31d007d60ea57caa38a2f3e"></a><!-- doxytag: member="linebreak.c::get_char_lb_class_lang" ref="a41ec5a32a31d007d60ea57caa38a2f3e" args="(utf32_t ch, struct LineBreakProperties *lbpLang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> get_char_lb_class_lang </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>ch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td>
<td class="paramname"> <em>lbpLang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the line breaking class of a character for a specific language. </p>
<p>This function will check the language-specific data first, and then the default data if there is no language-specific property available for the character.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>character to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lbpLang</em>&nbsp;</td><td>pointer to the language-specific line breaking properties array </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the line breaking class if found; <code>LBP_XX</code> otherwise </dd></dl>
</div>
</div>
<a class="anchor" id="aec14ede6c9c839852210a729274c7fbc"></a><!-- doxytag: member="linebreak.c::get_lb_prop_lang" ref="aec14ede6c9c839852210a729274c7fbc" args="(const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>* get_lb_prop_lang </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static, read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the language-specific line breaking properties. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the text </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>pointer to the language-specific line breaking properties array if found; <code>NULL</code> otherwise </dd></dl>
</div>
</div>
<a class="anchor" id="a57c2b88b7e1277cbba23cfffbc782c4f"></a><!-- doxytag: member="linebreak.c::init_linebreak" ref="a57c2b88b7e1277cbba23cfffbc782c4f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void init_linebreak </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes the second-level index to the line breaking properties. </p>
<p>If it is not called, the performance of <a class="el" href="linebreak_8c.html#a41ec5a32a31d007d60ea57caa38a2f3e" title="Gets the line breaking class of a character for a specific language.">get_char_lb_class_lang</a> (and thus the main functionality) can be pretty bad, especially for big code points like those of Chinese. </p>
</div>
</div>
<a class="anchor" id="a5761f60559b5ddb61bb095f00c7deb5c"></a><!-- doxytag: member="linebreak.c::is_line_breakable" ref="a5761f60559b5ddb61bb095f00c7deb5c" args="(utf32_t char1, utf32_t char2, const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int is_line_breakable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tells whether a line break can occur between two Unicode characters. </p>
<p>This is a wrapper function to expose a simple interface. Generally speaking, it is better to use <a class="el" href="linebreak_8h.html#a9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a> instead, since complicated cases involving combining marks, spaces, etc. cannot be correctly processed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>char1</em>&nbsp;</td><td>the first Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>char2</em>&nbsp;</td><td>the second Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one of <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </dd></dl>
</div>
</div>
<a class="anchor" id="aa1664feb525e6bf1efbe8566547708be"></a><!-- doxytag: member="linebreak.c::lb_get_next_char_utf16" ref="aa1664feb525e6bf1efbe8566547708be" args="(const utf16_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> lb_get_next_char_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next Unicode character in a UTF-16 sequence. </p>
<p>The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-16 surrogate pair.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in words </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered </dd></dl>
</div>
</div>
<a class="anchor" id="a1f8bc7169caccfa444e75274b55e6721"></a><!-- doxytag: member="linebreak.c::lb_get_next_char_utf32" ref="a1f8bc7169caccfa444e75274b55e6721" args="(const utf32_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> lb_get_next_char_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next Unicode character in a UTF-32 sequence. </p>
<p>The index will be advanced to the next character.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in dwords </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered </dd></dl>
</div>
</div>
<a class="anchor" id="a5ffc31765568becd8b9eb08a3916ab4b"></a><!-- doxytag: member="linebreak.c::lb_get_next_char_utf8" ref="a5ffc31765568becd8b9eb08a3916ab4b" args="(const utf8_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> lb_get_next_char_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next Unicode character in a UTF-8 sequence. </p>
<p>The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-8 sequence.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in bytes </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered </dd></dl>
</div>
</div>
<a class="anchor" id="aa42b073302ff3325b087b61c78bf4841"></a><!-- doxytag: member="linebreak.c::resolve_lb_class" ref="aa42b073302ff3325b087b61c78bf4841" args="(enum LineBreakClass lbc, const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> resolve_lb_class </td>
<td>(</td>
<td class="paramtype">enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td>
<td class="paramname"> <em>lbc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Resolves the line breaking class for certain ambiguous or complicated characters. </p>
<p>They are treated in a simplistic way in this implementation.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>lbc</em>&nbsp;</td><td>line breaking class to resolve </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the text </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the resolved line breaking class </dd></dl>
</div>
</div>
<a class="anchor" id="a0e86da0f08579bd9bfeb437f5fab15fe"></a><!-- doxytag: member="linebreak.c::set_linebreaks" ref="a0e86da0f08579bd9bfeb437f5fab15fe" args="(const void *s, size_t len, const char *lang, char *brks, get_next_char_t get_next_char)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks </td>
<td>(</td>
<td class="paramtype">const void *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a>&nbsp;</td>
<td class="paramname"> <em>get_next_char</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a generic input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>get_next_char</em>&nbsp;</td><td>function to get the next UTF-32 character </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a1d56bce2d32cd986052172638cec43c8"></a><!-- doxytag: member="linebreak.c::set_linebreaks_utf16" ref="a1d56bce2d32cd986052172638cec43c8" args="(const utf16_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a UTF-16 input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a9fdce33b4ded9d586888c16228ae9e1f"></a><!-- doxytag: member="linebreak.c::set_linebreaks_utf32" ref="a9fdce33b4ded9d586888c16228ae9e1f" args="(const utf32_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a UTF-32 input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab426e9cf68117faf583a0ed54742cb28"></a><!-- doxytag: member="linebreak.c::set_linebreaks_utf8" ref="ab426e9cf68117faf583a0ed54742cb28" args="(const utf8_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a UTF-8 input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="ae334fc5c93e9d07c1f6731774cdc07d4"></a><!-- doxytag: member="linebreak.c::baTable" ref="ae334fc5c93e9d07c1f6731774cdc07d4" args="[LBP_JT][LBP_JT]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreak_8c.html#a440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a> <a class="el" href="linebreak_8c.html#ae334fc5c93e9d07c1f6731774cdc07d4">baTable</a>[LBP_JT][LBP_JT]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Break action pair table. </p>
<p>This is a direct mapping of Table 2 of Unicode Standard Annex 14, Revision 24. </p>
</div>
</div>
<a class="anchor" id="a5f6f6df49c934134e8fb043ce6230931"></a><!-- doxytag: member="linebreak.c::lb_prop_index" ref="a5f6f6df49c934134e8fb043ce6230931" args="[LINEBREAK_INDEX_SIZE]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a> <a class="el" href="linebreak_8c.html#a5f6f6df49c934134e8fb043ce6230931">lb_prop_index</a>[LINEBREAK_INDEX_SIZE]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment">
{
{ 0xFFFFFFFF, <a class="code" href="linebreakdata_8c.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a" title="Default line breaking properties as from the Unicode Web site.">lb_prop_default</a> }
}
</pre></div>
<p>Second-level index to the line breaking properties. </p>
</div>
</div>
<a class="anchor" id="a0ac90a75aa79415fe87e66b95d8fd09b"></a><!-- doxytag: member="linebreak.c::linebreak_version" ref="a0ac90a75aa79415fe87e66b95d8fd09b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const int <a class="el" href="linebreak_8h.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak_version</a> = LINEBREAK_VERSION</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Version number of the library. </p>
</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -4,12 +4,11 @@
<link href="tabs.css" rel="stylesheet" type="text/css"> <link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css"> <link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body> </head><body>
<!-- Generated by Doxygen 1.5.9 --> <!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top"> <div class="navigation" id="top">
<div class="tabs"> <div class="tabs">
<ul> <ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li> <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li> <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li>
</ul> </ul>
@ -46,18 +45,18 @@
<a name="l00024"></a>00024 <span class="comment"> * distribution.</span> <a name="l00024"></a>00024 <span class="comment"> * distribution.</span>
<a name="l00025"></a>00025 <span class="comment"> *</span> <a name="l00025"></a>00025 <span class="comment"> *</span>
<a name="l00026"></a>00026 <span class="comment"> * The main reference is Unicode Standard Annex 14 (UAX #14):</span> <a name="l00026"></a>00026 <span class="comment"> * The main reference is Unicode Standard Annex 14 (UAX #14):</span>
<a name="l00027"></a>00027 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/&gt;</span> <a name="l00027"></a>00027 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/&gt;</span>
<a name="l00028"></a>00028 <span class="comment"> *</span> <a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * When this library was designed, this annex was at Revision 19, for</span> <a name="l00029"></a>00029 <span class="comment"> * When this library was designed, this annex was at Revision 19, for</span>
<a name="l00030"></a>00030 <span class="comment"> * Unicode 5.0.0:</span> <a name="l00030"></a>00030 <span class="comment"> * Unicode 5.0.0:</span>
<a name="l00031"></a>00031 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-19.html&gt;</span> <a name="l00031"></a>00031 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-19.html&gt;</span>
<a name="l00032"></a>00032 <span class="comment"> *</span> <a name="l00032"></a>00032 <span class="comment"> *</span>
<a name="l00033"></a>00033 <span class="comment"> * This library has been updated according to Revision 22, for</span> <a name="l00033"></a>00033 <span class="comment"> * This library has been updated according to Revision 24, for</span>
<a name="l00034"></a>00034 <span class="comment"> * Unicode 5.1.0:</span> <a name="l00034"></a>00034 <span class="comment"> * Unicode 5.2.0:</span>
<a name="l00035"></a>00035 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-22.html&gt;</span> <a name="l00035"></a>00035 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-24.html&gt;</span>
<a name="l00036"></a>00036 <span class="comment"> *</span> <a name="l00036"></a>00036 <span class="comment"> *</span>
<a name="l00037"></a>00037 <span class="comment"> * The Unicode Terms of Use are available at</span> <a name="l00037"></a>00037 <span class="comment"> * The Unicode Terms of Use are available at</span>
<a name="l00038"></a>00038 <span class="comment"> * &lt;URL:http://www.unicode.org/copyright.html&gt;</span> <a name="l00038"></a>00038 <span class="comment"> * &lt;URL:http://www.unicode.org/copyright.html&gt;</span>
<a name="l00039"></a>00039 <span class="comment"> */</span> <a name="l00039"></a>00039 <span class="comment"> */</span>
<a name="l00040"></a>00040 <a name="l00040"></a>00040
<a name="l00050"></a>00050 <span class="preprocessor">#ifndef LINEBREAK_H</span> <a name="l00050"></a>00050 <span class="preprocessor">#ifndef LINEBREAK_H</span>
@ -69,40 +68,37 @@
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> { <a name="l00056"></a>00056 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
<a name="l00057"></a>00057 <span class="preprocessor">#endif</span> <a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span> <a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059 <span class="preprocessor">#ifndef LINEBREAK_UTF_TYPES_DEFINED</span> <a name="l00059"></a><a class="code" href="linebreak_8h.html#83634cb3df4ba09faf22ba687ffc4c02">00059</a> <span class="preprocessor">#define LINEBREAK_VERSION 0x0195</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define LINEBREAK_UTF_TYPES_DEFINED</span> <a name="l00060"></a>00060 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="keyword">const</span> <span class="keywordtype">int</span> <a class="code" href="linebreak_8c.html#0ac90a75aa79415fe87e66b95d8fd09b" title="Version number of the library.">linebreak_version</a>;
<a name="l00061"></a><a class="code" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">00061</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="linebreak_8h.html#6103b2105588f239c593e779e605038a" title="Type for UTF-8 data points.">utf8_t</a>; <a name="l00061"></a>00061
<a name="l00062"></a><a class="code" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">00062</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c" title="Type for UTF-16 data points.">utf16_t</a>; <a name="l00062"></a>00062 <span class="preprocessor">#ifndef LINEBREAK_UTF_TYPES_DEFINED</span>
<a name="l00063"></a><a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">00063</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a>; <a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define LINEBREAK_UTF_TYPES_DEFINED</span>
<a name="l00064"></a>00064 <span class="preprocessor">#endif</span> <a name="l00064"></a><a class="code" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">00064</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="linebreak_8h.html#6103b2105588f239c593e779e605038a" title="Type for UTF-8 data points.">utf8_t</a>;
<a name="l00065"></a>00065 <span class="preprocessor"></span> <a name="l00065"></a><a class="code" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">00065</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c" title="Type for UTF-16 data points.">utf16_t</a>;
<a name="l00066"></a><a class="code" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77">00066</a> <span class="preprocessor">#define LINEBREAK_MUSTBREAK 0 </span> <a name="l00066"></a><a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">00066</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a>;
<a name="l00067"></a><a class="code" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363">00067</a> <span class="preprocessor">#define LINEBREAK_ALLOWBREAK 1 </span> <a name="l00067"></a>00067 <span class="preprocessor">#endif</span>
<a name="l00068"></a><a class="code" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc">00068</a> <span class="preprocessor">#define LINEBREAK_NOBREAK 2 </span> <a name="l00068"></a>00068 <span class="preprocessor"></span>
<a name="l00069"></a><a class="code" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d">00069</a> <span class="preprocessor">#define LINEBREAK_INSIDEACHAR 3 </span> <a name="l00069"></a><a class="code" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77">00069</a> <span class="preprocessor">#define LINEBREAK_MUSTBREAK 0 </span>
<a name="l00077"></a>00077 <span class="preprocessor">void init_linebreak(void);</span> <a name="l00070"></a><a class="code" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363">00070</a> <span class="preprocessor">#define LINEBREAK_ALLOWBREAK 1 </span>
<a name="l00078"></a>00078 <span class="preprocessor"></span> <a name="l00071"></a><a class="code" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc">00071</a> <span class="preprocessor">#define LINEBREAK_NOBREAK 2 </span>
<a name="l00079"></a>00079 <span class="keywordtype">int</span> <a class="code" href="linebreak_8c.html#22abef1024a6392cf2bd2281fc1bd151" title="Tells whether a line break can occur between two Unicode characters.">is_breakable</a>(utf32_t char1, utf32_t char2, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang); <a name="l00072"></a><a class="code" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d">00072</a> <span class="preprocessor">#define LINEBREAK_INSIDEACHAR 3 </span>
<a name="l00080"></a>00080 <a name="l00074"></a>00074 <span class="preprocessor">void init_linebreak(void);</span>
<a name="l00091"></a>00091 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#b426e9cf68117faf583a0ed54742cb28" title="Sets the line breaking information for a UTF-8 input string.">set_linebreaks_utf8</a>( <a name="l00075"></a>00075 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#b426e9cf68117faf583a0ed54742cb28" title="Sets the line breaking information for a UTF-8 input string.">set_linebreaks_utf8</a>(
<a name="l00092"></a>00092 <span class="keyword">const</span> utf8_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks); <a name="l00076"></a>00076 <span class="keyword">const</span> utf8_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks);
<a name="l00093"></a>00093 <a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#1d56bce2d32cd986052172638cec43c8" title="Sets the line breaking information for a UTF-16 input string.">set_linebreaks_utf16</a>(
<a name="l00104"></a>00104 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#1d56bce2d32cd986052172638cec43c8" title="Sets the line breaking information for a UTF-16 input string.">set_linebreaks_utf16</a>( <a name="l00078"></a>00078 <span class="keyword">const</span> utf16_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks);
<a name="l00105"></a>00105 <span class="keyword">const</span> utf16_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks); <a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a>(
<a name="l00106"></a>00106 <a name="l00080"></a>00080 <span class="keyword">const</span> utf32_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks);
<a name="l00117"></a>00117 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a>( <a name="l00081"></a>00081 <span class="keywordtype">int</span> <a class="code" href="linebreak_8c.html#5761f60559b5ddb61bb095f00c7deb5c" title="Tells whether a line break can occur between two Unicode characters.">is_line_breakable</a>(utf32_t char1, utf32_t char2, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang);
<a name="l00118"></a>00118 <span class="keyword">const</span> utf32_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks); <a name="l00082"></a>00082
<a name="l00119"></a>00119 <a name="l00083"></a>00083 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00134"></a><a class="code" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a">00134</a> <span class="preprocessor">#define is_line_breakable is_breakable</span> <a name="l00084"></a>00084 <span class="preprocessor"></span>}
<a name="l00135"></a>00135 <span class="preprocessor"></span> <a name="l00085"></a>00085 <span class="preprocessor">#endif</span>
<a name="l00136"></a>00136 <span class="preprocessor">#ifdef __cplusplus</span> <a name="l00086"></a>00086 <span class="preprocessor"></span>
<a name="l00137"></a>00137 <span class="preprocessor"></span>} <a name="l00087"></a>00087 <span class="preprocessor">#endif </span><span class="comment">/* LINEBREAK_H */</span>
<a name="l00138"></a>00138 <span class="preprocessor">#endif</span>
<a name="l00139"></a>00139 <span class="preprocessor"></span>
<a name="l00140"></a>00140 <span class="preprocessor">#endif </span><span class="comment">/* LINEBREAK_H */</span>
</pre></div></div> </pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp; <hr size="1"><address style="text-align: right;"><small>Generated on Sun Nov 29 16:41:13 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html"> <a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address> <img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body> </body>
</html> </html>

View file

@ -0,0 +1,431 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreak.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreak.h File Reference</h1>
<p>Header file for the line breaking algorithm.
<a href="#_details">More...</a></p>
<code>#include &lt;stddef.h&gt;</code><br/>
<p><a href="linebreak_8h_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a83634cb3df4ba09faf22ba687ffc4c02">LINEBREAK_VERSION</a>&nbsp;&nbsp;&nbsp;0x0195</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Version of the library linebreak. <a href="#a83634cb3df4ba09faf22ba687ffc4c02"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77">LINEBREAK_MUSTBREAK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Break is mandatory. <a href="#a367d64258fd90864a467687cd1736b77"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363">LINEBREAK_ALLOWBREAK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Break is allowed. <a href="#a229f34b0b72ccb2e53d0936a1e61a363"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc">LINEBREAK_NOBREAK</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No break is possible. <a href="#add176a107633817050bedf6eb4f491cc"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d">LINEBREAK_INSIDEACHAR</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A UTF-8/16 sequence is unfinished. <a href="#a5adf3d4831b89cb3e40e9bd31a73a39d"></a><br/></td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for UTF-8 data points. <a href="#a6103b2105588f239c593e779e605038a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for UTF-16 data points. <a href="#a4dce96cad338d9281612277b2d80950c"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for UTF-32 data points. <a href="#a4f775bae0642c213be2c526018283c25"></a><br/></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a57c2b88b7e1277cbba23cfffbc782c4f">init_linebreak</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the second-level index to the line breaking properties. <a href="#a57c2b88b7e1277cbba23cfffbc782c4f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#ab426e9cf68117faf583a0ed54742cb28">set_linebreaks_utf8</a> (const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-8 input string. <a href="#ab426e9cf68117faf583a0ed54742cb28"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a1d56bce2d32cd986052172638cec43c8">set_linebreaks_utf16</a> (const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-16 input string. <a href="#a1d56bce2d32cd986052172638cec43c8"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a9fdce33b4ded9d586888c16228ae9e1f">set_linebreaks_utf32</a> (const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-32 input string. <a href="#a9fdce33b4ded9d586888c16228ae9e1f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a5761f60559b5ddb61bb095f00c7deb5c">is_line_breakable</a> (<a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> char1, <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> char2, const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether a line break can occur between two Unicode characters. <a href="#a5761f60559b5ddb61bb095f00c7deb5c"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak_version</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Version number of the library. <a href="#a0ac90a75aa79415fe87e66b95d8fd09b"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Header file for the line breaking algorithm. </p>
<dl class="version"><dt><b>Version:</b></dt><dd>1.95, 2009/11/29 </dd></dl>
<dl class="author"><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="a229f34b0b72ccb2e53d0936a1e61a363"></a><!-- doxytag: member="linebreak.h::LINEBREAK_ALLOWBREAK" ref="a229f34b0b72ccb2e53d0936a1e61a363" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_ALLOWBREAK&nbsp;&nbsp;&nbsp;1</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Break is allowed. </p>
</div>
</div>
<a class="anchor" id="a5adf3d4831b89cb3e40e9bd31a73a39d"></a><!-- doxytag: member="linebreak.h::LINEBREAK_INSIDEACHAR" ref="a5adf3d4831b89cb3e40e9bd31a73a39d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_INSIDEACHAR&nbsp;&nbsp;&nbsp;3</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>A UTF-8/16 sequence is unfinished. </p>
</div>
</div>
<a class="anchor" id="a367d64258fd90864a467687cd1736b77"></a><!-- doxytag: member="linebreak.h::LINEBREAK_MUSTBREAK" ref="a367d64258fd90864a467687cd1736b77" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_MUSTBREAK&nbsp;&nbsp;&nbsp;0</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Break is mandatory. </p>
</div>
</div>
<a class="anchor" id="add176a107633817050bedf6eb4f491cc"></a><!-- doxytag: member="linebreak.h::LINEBREAK_NOBREAK" ref="add176a107633817050bedf6eb4f491cc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_NOBREAK&nbsp;&nbsp;&nbsp;2</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>No break is possible. </p>
</div>
</div>
<a class="anchor" id="a83634cb3df4ba09faf22ba687ffc4c02"></a><!-- doxytag: member="linebreak.h::LINEBREAK_VERSION" ref="a83634cb3df4ba09faf22ba687ffc4c02" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_VERSION&nbsp;&nbsp;&nbsp;0x0195</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Version of the library linebreak. </p>
</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="a4dce96cad338d9281612277b2d80950c"></a><!-- doxytag: member="linebreak.h::utf16_t" ref="a4dce96cad338d9281612277b2d80950c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned short <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Type for UTF-16 data points. </p>
</div>
</div>
<a class="anchor" id="a4f775bae0642c213be2c526018283c25"></a><!-- doxytag: member="linebreak.h::utf32_t" ref="a4f775bae0642c213be2c526018283c25" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned int <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Type for UTF-32 data points. </p>
</div>
</div>
<a class="anchor" id="a6103b2105588f239c593e779e605038a"></a><!-- doxytag: member="linebreak.h::utf8_t" ref="a6103b2105588f239c593e779e605038a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned char <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Type for UTF-8 data points. </p>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="a57c2b88b7e1277cbba23cfffbc782c4f"></a><!-- doxytag: member="linebreak.h::init_linebreak" ref="a57c2b88b7e1277cbba23cfffbc782c4f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void init_linebreak </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"></td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Initializes the second-level index to the line breaking properties. </p>
<p>If it is not called, the performance of <a class="el" href="linebreak_8c.html#a41ec5a32a31d007d60ea57caa38a2f3e" title="Gets the line breaking class of a character for a specific language.">get_char_lb_class_lang</a> (and thus the main functionality) can be pretty bad, especially for big code points like those of Chinese. </p>
</div>
</div>
<a class="anchor" id="a5761f60559b5ddb61bb095f00c7deb5c"></a><!-- doxytag: member="linebreak.h::is_line_breakable" ref="a5761f60559b5ddb61bb095f00c7deb5c" args="(utf32_t char1, utf32_t char2, const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int is_line_breakable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Tells whether a line break can occur between two Unicode characters. </p>
<p>This is a wrapper function to expose a simple interface. Generally speaking, it is better to use <a class="el" href="linebreak_8h.html#a9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a> instead, since complicated cases involving combining marks, spaces, etc. cannot be correctly processed.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>char1</em>&nbsp;</td><td>the first Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>char2</em>&nbsp;</td><td>the second Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>one of <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </dd></dl>
</div>
</div>
<a class="anchor" id="a1d56bce2d32cd986052172638cec43c8"></a><!-- doxytag: member="linebreak.h::set_linebreaks_utf16" ref="a1d56bce2d32cd986052172638cec43c8" args="(const utf16_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a UTF-16 input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="a9fdce33b4ded9d586888c16228ae9e1f"></a><!-- doxytag: member="linebreak.h::set_linebreaks_utf32" ref="a9fdce33b4ded9d586888c16228ae9e1f" args="(const utf32_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a UTF-32 input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<a class="anchor" id="ab426e9cf68117faf583a0ed54742cb28"></a><!-- doxytag: member="linebreak.h::set_linebreaks_utf8" ref="ab426e9cf68117faf583a0ed54742cb28" args="(const utf8_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a UTF-8 input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a0ac90a75aa79415fe87e66b95d8fd09b"></a><!-- doxytag: member="linebreak.h::linebreak_version" ref="a0ac90a75aa79415fe87e66b95d8fd09b" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const int <a class="el" href="linebreak_8h.html#a0ac90a75aa79415fe87e66b95d8fd09b">linebreak_version</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Version number of the library. </p>
</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,107 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreak.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>linebreak.h</h1><a href="linebreak_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* vim: set tabstop=4 shiftwidth=4: */</span>
<a name="l00002"></a>00002
<a name="l00003"></a>00003 <span class="comment">/*</span>
<a name="l00004"></a>00004 <span class="comment"> * Line breaking in a Unicode sequence. Designed to be used in a</span>
<a name="l00005"></a>00005 <span class="comment"> * generic text renderer.</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * Copyright (C) 2008-2009 Wu Yongwei &lt;wuyongwei at gmail dot com&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This software is provided &apos;as-is&apos;, without any express or implied</span>
<a name="l00010"></a>00010 <span class="comment"> * warranty. In no event will the author be held liable for any damages</span>
<a name="l00011"></a>00011 <span class="comment"> * arising from the use of this software.</span>
<a name="l00012"></a>00012 <span class="comment"> *</span>
<a name="l00013"></a>00013 <span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00014"></a>00014 <span class="comment"> * including commercial applications, and to alter it and redistribute</span>
<a name="l00015"></a>00015 <span class="comment"> * it freely, subject to the following restrictions:</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> * 1. The origin of this software must not be misrepresented; you must</span>
<a name="l00018"></a>00018 <span class="comment"> * not claim that you wrote the original software. If you use this</span>
<a name="l00019"></a>00019 <span class="comment"> * software in a product, an acknowledgement in the product</span>
<a name="l00020"></a>00020 <span class="comment"> * documentation would be appreciated but is not required.</span>
<a name="l00021"></a>00021 <span class="comment"> * 2. Altered source versions must be plainly marked as such, and must</span>
<a name="l00022"></a>00022 <span class="comment"> * not be misrepresented as being the original software.</span>
<a name="l00023"></a>00023 <span class="comment"> * 3. This notice may not be removed or altered from any source</span>
<a name="l00024"></a>00024 <span class="comment"> * distribution.</span>
<a name="l00025"></a>00025 <span class="comment"> *</span>
<a name="l00026"></a>00026 <span class="comment"> * The main reference is Unicode Standard Annex 14 (UAX #14):</span>
<a name="l00027"></a>00027 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/&gt;</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * When this library was designed, this annex was at Revision 19, for</span>
<a name="l00030"></a>00030 <span class="comment"> * Unicode 5.0.0:</span>
<a name="l00031"></a>00031 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-19.html&gt;</span>
<a name="l00032"></a>00032 <span class="comment"> *</span>
<a name="l00033"></a>00033 <span class="comment"> * This library has been updated according to Revision 24, for</span>
<a name="l00034"></a>00034 <span class="comment"> * Unicode 5.2.0:</span>
<a name="l00035"></a>00035 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-24.html&gt;</span>
<a name="l00036"></a>00036 <span class="comment"> *</span>
<a name="l00037"></a>00037 <span class="comment"> * The Unicode Terms of Use are available at</span>
<a name="l00038"></a>00038 <span class="comment"> * &lt;URL:http://www.unicode.org/copyright.html&gt;</span>
<a name="l00039"></a>00039 <span class="comment"> */</span>
<a name="l00040"></a>00040
<a name="l00050"></a>00050 <span class="preprocessor">#ifndef LINEBREAK_H</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#define LINEBREAK_H</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span>
<a name="l00053"></a>00053 <span class="preprocessor">#include &lt;stddef.h&gt;</span>
<a name="l00054"></a>00054
<a name="l00055"></a>00055 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {
<a name="l00057"></a>00057 <span class="preprocessor">#endif</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a><a class="code" href="linebreak_8h.html#a83634cb3df4ba09faf22ba687ffc4c02">00059</a> <span class="preprocessor">#define LINEBREAK_VERSION 0x0195 </span>
<a name="l00060"></a>00060 <span class="preprocessor">extern const int linebreak_version;</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span>
<a name="l00062"></a>00062 <span class="preprocessor">#ifndef LINEBREAK_UTF_TYPES_DEFINED</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define LINEBREAK_UTF_TYPES_DEFINED</span>
<a name="l00064"></a><a class="code" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">00064</a> <span class="preprocessor"></span><span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a" title="Type for UTF-8 data points.">utf8_t</a>;
<a name="l00065"></a><a class="code" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">00065</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> <a class="code" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c" title="Type for UTF-16 data points.">utf16_t</a>;
<a name="l00066"></a><a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">00066</a> <span class="keyword">typedef</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a>;
<a name="l00067"></a>00067 <span class="preprocessor">#endif</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span>
<a name="l00069"></a><a class="code" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77">00069</a> <span class="preprocessor">#define LINEBREAK_MUSTBREAK 0 </span>
<a name="l00070"></a><a class="code" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363">00070</a> <span class="preprocessor">#define LINEBREAK_ALLOWBREAK 1 </span>
<a name="l00071"></a><a class="code" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc">00071</a> <span class="preprocessor">#define LINEBREAK_NOBREAK 2 </span>
<a name="l00072"></a><a class="code" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d">00072</a> <span class="preprocessor">#define LINEBREAK_INSIDEACHAR 3 </span>
<a name="l00074"></a>00074 <span class="preprocessor">void init_linebreak(void);</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#ab426e9cf68117faf583a0ed54742cb28" title="Sets the line breaking information for a UTF-8 input string.">set_linebreaks_utf8</a>(
<a name="l00076"></a>00076 <span class="keyword">const</span> utf8_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks);
<a name="l00077"></a>00077 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#a1d56bce2d32cd986052172638cec43c8" title="Sets the line breaking information for a UTF-16 input string.">set_linebreaks_utf16</a>(
<a name="l00078"></a>00078 <span class="keyword">const</span> utf16_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks);
<a name="l00079"></a>00079 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#a9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a>(
<a name="l00080"></a>00080 <span class="keyword">const</span> utf32_t *s, <span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang, <span class="keywordtype">char</span> *brks);
<a name="l00081"></a>00081 <span class="keywordtype">int</span> <a class="code" href="linebreak_8c.html#a5761f60559b5ddb61bb095f00c7deb5c" title="Tells whether a line break can occur between two Unicode characters.">is_line_breakable</a>(utf32_t char1, utf32_t char2, <span class="keyword">const</span> <span class="keywordtype">char</span>* lang);
<a name="l00082"></a>00082
<a name="l00083"></a>00083 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span>}
<a name="l00085"></a>00085 <span class="preprocessor">#endif</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span>
<a name="l00087"></a>00087 <span class="preprocessor">#endif </span><span class="comment">/* LINEBREAK_H */</span>
</pre></div></div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,55 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreakdata.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreakdata.c File Reference</h1><code>#include &quot;<a class="el" href="linebreak_8h_source.html">linebreak.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdata_8c.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default line breaking properties as from the Unicode Web site. <a href="#abbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><br/></td></tr>
</table>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="abbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><!-- doxytag: member="linebreakdata.c::lb_prop_default" ref="abbd8c6b6e4e1c8ad2da83f23f81ac29a" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8h.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Default line breaking properties as from the Unicode Web site. </p>
</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,222 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreakdef.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreakdef.c File Reference</h1>
<p>Definition of language-specific data.
<a href="#_details">More...</a></p>
<code>#include &quot;<a class="el" href="linebreak_8h_source.html">linebreak.h</a>&quot;</code><br/>
<code>#include &quot;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&quot;</code><br/>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#acb15b3309e7e1c7a48da9535c4e2855f">lb_prop_English</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">English-specifc data over the default Unicode rules. <a href="#acb15b3309e7e1c7a48da9535c4e2855f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#ac39e3f65a289864edb8a38a201481627">lb_prop_German</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">German-specifc data over the default Unicode rules. <a href="#ac39e3f65a289864edb8a38a201481627"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#a41ee5277b95d453efdfb0e0242e1cb5f">lb_prop_Spanish</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spanish-specifc data over the default Unicode rules. <a href="#a41ee5277b95d453efdfb0e0242e1cb5f"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#af75c60d3b0f882032e6932da25b9c9fa">lb_prop_French</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">French-specifc data over the default Unicode rules. <a href="#af75c60d3b0f882032e6932da25b9c9fa"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#a980ede377c1ded0d24a58fb429f237f4">lb_prop_Russian</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Russian-specifc data over the default Unicode rules. <a href="#a980ede377c1ded0d24a58fb429f237f4"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#a945fbc26db32e1f4fbce4f6e9ae70189">lb_prop_Chinese</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Chinese-specifc data over the default Unicode rules. <a href="#a945fbc26db32e1f4fbce4f6e9ae70189"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#a82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Association data of language-specific line breaking properties with language names. <a href="#a82efdfa4115828df9158e183f1a9983d"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Definition of language-specific data. </p>
<dl class="version"><dt><b>Version:</b></dt><dd>1.95, 2009/11/29 </dd></dl>
<dl class="author"><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="a945fbc26db32e1f4fbce4f6e9ae70189"></a><!-- doxytag: member="linebreakdef.c::lb_prop_Chinese" ref="a945fbc26db32e1f4fbce4f6e9ae70189" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#a945fbc26db32e1f4fbce4f6e9ae70189">lb_prop_Chinese</a>[]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x2019, 0x2019, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>
<p>Chinese-specifc data over the default Unicode rules. </p>
</div>
</div>
<a class="anchor" id="acb15b3309e7e1c7a48da9535c4e2855f"></a><!-- doxytag: member="linebreakdef.c::lb_prop_English" ref="acb15b3309e7e1c7a48da9535c4e2855f" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#acb15b3309e7e1c7a48da9535c4e2855f">lb_prop_English</a>[]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>
<p>English-specifc data over the default Unicode rules. </p>
</div>
</div>
<a class="anchor" id="af75c60d3b0f882032e6932da25b9c9fa"></a><!-- doxytag: member="linebreakdef.c::lb_prop_French" ref="af75c60d3b0f882032e6932da25b9c9fa" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#af75c60d3b0f882032e6932da25b9c9fa">lb_prop_French</a>[]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2039, 0x2039, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x203A, 0x203A, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>
<p>French-specifc data over the default Unicode rules. </p>
</div>
</div>
<a class="anchor" id="ac39e3f65a289864edb8a38a201481627"></a><!-- doxytag: member="linebreakdef.c::lb_prop_German" ref="ac39e3f65a289864edb8a38a201481627" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#ac39e3f65a289864edb8a38a201481627">lb_prop_German</a>[]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2039, 0x2039, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x203A, 0x203A, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>
<p>German-specifc data over the default Unicode rules. </p>
</div>
</div>
<a class="anchor" id="a82efdfa4115828df9158e183f1a9983d"></a><!-- doxytag: member="linebreakdef.c::lb_prop_lang_map" ref="a82efdfa4115828df9158e183f1a9983d" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a> <a class="el" href="linebreakdef_8h.html#a82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ <span class="stringliteral">&quot;en&quot;</span>, 2, <a class="code" href="linebreakdef_8c.html#acb15b3309e7e1c7a48da9535c4e2855f" title="English-specifc data over the default Unicode rules.">lb_prop_English</a> },
{ <span class="stringliteral">&quot;de&quot;</span>, 2, <a class="code" href="linebreakdef_8c.html#ac39e3f65a289864edb8a38a201481627" title="German-specifc data over the default Unicode rules.">lb_prop_German</a> },
{ <span class="stringliteral">&quot;es&quot;</span>, 2, <a class="code" href="linebreakdef_8c.html#a41ee5277b95d453efdfb0e0242e1cb5f" title="Spanish-specifc data over the default Unicode rules.">lb_prop_Spanish</a> },
{ <span class="stringliteral">&quot;fr&quot;</span>, 2, <a class="code" href="linebreakdef_8c.html#af75c60d3b0f882032e6932da25b9c9fa" title="French-specifc data over the default Unicode rules.">lb_prop_French</a> },
{ <span class="stringliteral">&quot;ru&quot;</span>, 2, <a class="code" href="linebreakdef_8c.html#a980ede377c1ded0d24a58fb429f237f4" title="Russian-specifc data over the default Unicode rules.">lb_prop_Russian</a> },
{ <span class="stringliteral">&quot;zh&quot;</span>, 2, <a class="code" href="linebreakdef_8c.html#a945fbc26db32e1f4fbce4f6e9ae70189" title="Chinese-specifc data over the default Unicode rules.">lb_prop_Chinese</a> },
{ NULL, 0, NULL }
}
</pre></div>
<p>Association data of language-specific line breaking properties with language names. </p>
<p>This is the definition for the static data in this file. If you want more flexibility, or do not need the data here, you may want to redefine <em>lb_prop_lang_map</em> in your C source file. </p>
</div>
</div>
<a class="anchor" id="a980ede377c1ded0d24a58fb429f237f4"></a><!-- doxytag: member="linebreakdef.c::lb_prop_Russian" ref="a980ede377c1ded0d24a58fb429f237f4" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#a980ede377c1ded0d24a58fb429f237f4">lb_prop_Russian</a>[]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>
<p>Russian-specifc data over the default Unicode rules. </p>
</div>
</div>
<a class="anchor" id="a41ee5277b95d453efdfb0e0242e1cb5f"></a><!-- doxytag: member="linebreakdef.c::lb_prop_Spanish" ref="a41ee5277b95d453efdfb0e0242e1cb5f" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#a41ee5277b95d453efdfb0e0242e1cb5f">lb_prop_Spanish</a>[]<code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2039, 0x2039, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x203A, 0x203A, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>
<p>Spanish-specifc data over the default Unicode rules. </p>
</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,144 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreakdef.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.8 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>linebreakdef.h</h1><a href="linebreakdef_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* vim: set tabstop=4 shiftwidth=4: */</span>
<a name="l00002"></a>00002
<a name="l00003"></a>00003 <span class="comment">/*</span>
<a name="l00004"></a>00004 <span class="comment"> * Line breaking in a Unicode sequence. Designed to be used in a</span>
<a name="l00005"></a>00005 <span class="comment"> * generic text renderer.</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * Copyright (C) 2008-2009 Wu Yongwei &lt;wuyongwei at gmail dot com&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This software is provided 'as-is', without any express or implied</span>
<a name="l00010"></a>00010 <span class="comment"> * warranty. In no event will the author be held liable for any damages</span>
<a name="l00011"></a>00011 <span class="comment"> * arising from the use of this software.</span>
<a name="l00012"></a>00012 <span class="comment"> *</span>
<a name="l00013"></a>00013 <span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00014"></a>00014 <span class="comment"> * including commercial applications, and to alter it and redistribute</span>
<a name="l00015"></a>00015 <span class="comment"> * it freely, subject to the following restrictions:</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> * 1. The origin of this software must not be misrepresented; you must</span>
<a name="l00018"></a>00018 <span class="comment"> * not claim that you wrote the original software. If you use this</span>
<a name="l00019"></a>00019 <span class="comment"> * software in a product, an acknowledgement in the product</span>
<a name="l00020"></a>00020 <span class="comment"> * documentation would be appreciated but is not required.</span>
<a name="l00021"></a>00021 <span class="comment"> * 2. Altered source versions must be plainly marked as such, and must</span>
<a name="l00022"></a>00022 <span class="comment"> * not be misrepresented as being the original software.</span>
<a name="l00023"></a>00023 <span class="comment"> * 3. This notice may not be removed or altered from any source</span>
<a name="l00024"></a>00024 <span class="comment"> * distribution.</span>
<a name="l00025"></a>00025 <span class="comment"> *</span>
<a name="l00026"></a>00026 <span class="comment"> * The main reference is Unicode Standard Annex 14 (UAX #14):</span>
<a name="l00027"></a>00027 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/&gt;</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * When this library was designed, this annex was at Revision 19, for</span>
<a name="l00030"></a>00030 <span class="comment"> * Unicode 5.0.0:</span>
<a name="l00031"></a>00031 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-19.html&gt;</span>
<a name="l00032"></a>00032 <span class="comment"> *</span>
<a name="l00033"></a>00033 <span class="comment"> * This library has been updated according to Revision 24, for</span>
<a name="l00034"></a>00034 <span class="comment"> * Unicode 5.2.0:</span>
<a name="l00035"></a>00035 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-24.html&gt;</span>
<a name="l00036"></a>00036 <span class="comment"> *</span>
<a name="l00037"></a>00037 <span class="comment"> * The Unicode Terms of Use are available at</span>
<a name="l00038"></a>00038 <span class="comment"> * &lt;URL:http://www.unicode.org/copyright.html&gt;</span>
<a name="l00039"></a>00039 <span class="comment"> */</span>
<a name="l00040"></a>00040
<a name="l00055"></a><a class="code" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1">00055</a> <span class="preprocessor">#define EOS 0xFFFF</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span>
<a name="l00061"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">00061</a> <span class="keyword">enum</span> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070" title="Line break classes.">LineBreakClass</a>
<a name="l00062"></a>00062 {
<a name="l00063"></a>00063 <span class="comment">/* This is used to signal an error condition. */</span>
<a name="l00064"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723">00064</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a>,
<a name="l00066"></a>00066 <span class="comment">/* The following break classes are treated in the pair table. */</span>
<a name="l00067"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3">00067</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a>,
<a name="l00068"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d">00068</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a>,
<a name="l00069"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c722dfa01172dc818ac7b88296ab8bbb">00069</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c722dfa01172dc818ac7b88296ab8bbb" title="Closing parenthesis.">LBP_CP</a>,
<a name="l00070"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e">00070</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e" title="Ambiguous quotation.">LBP_QU</a>,
<a name="l00071"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7">00071</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7" title="Glue.">LBP_GL</a>,
<a name="l00072"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0">00072</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0" title="Non-starters.">LBP_NS</a>,
<a name="l00073"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0">00073</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0" title="Exclamation/Interrogation.">LBP_EX</a>,
<a name="l00074"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097">00074</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097" title="Symbols allowing break after.">LBP_SY</a>,
<a name="l00075"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e">00075</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e" title="Infix separator.">LBP_IS</a>,
<a name="l00076"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57">00076</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57" title="Prefix.">LBP_PR</a>,
<a name="l00077"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba">00077</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba" title="Postfix.">LBP_PO</a>,
<a name="l00078"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28">00078</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28" title="Numeric.">LBP_NU</a>,
<a name="l00079"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281">00079</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281" title="Alphabetic.">LBP_AL</a>,
<a name="l00080"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55">00080</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55" title="Ideographic.">LBP_ID</a>,
<a name="l00081"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73">00081</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73" title="Inseparable characters.">LBP_IN</a>,
<a name="l00082"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883">00082</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883" title="Hyphen.">LBP_HY</a>,
<a name="l00083"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74">00083</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74" title="Break after.">LBP_BA</a>,
<a name="l00084"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d">00084</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d" title="Break before.">LBP_BB</a>,
<a name="l00085"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63">00085</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63" title="Break on either side (but not pair).">LBP_B2</a>,
<a name="l00086"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee">00086</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee" title="Zero-width space.">LBP_ZW</a>,
<a name="l00087"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1">00087</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1" title="Combining marks.">LBP_CM</a>,
<a name="l00088"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa">00088</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa" title="Word joiner.">LBP_WJ</a>,
<a name="l00089"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc">00089</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc" title="Hangul LV.">LBP_H2</a>,
<a name="l00090"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380">00090</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380" title="Hangul LVT.">LBP_H3</a>,
<a name="l00091"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb">00091</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb" title="Hangul L Jamo.">LBP_JL</a>,
<a name="l00092"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8">00092</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8" title="Hangul V Jamo.">LBP_JV</a>,
<a name="l00093"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf">00093</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf" title="Hangul T Jamo.">LBP_JT</a>,
<a name="l00095"></a>00095 <span class="comment">/* The following break classes are not treated in the pair table */</span>
<a name="l00096"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3">00096</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3" title="Ambiguous (alphabetic or ideograph).">LBP_AI</a>,
<a name="l00097"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626">00097</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626" title="Break (mandatory).">LBP_BK</a>,
<a name="l00098"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1">00098</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1" title="Contingent break.">LBP_CB</a>,
<a name="l00099"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2">00099</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2" title="Carriage return.">LBP_CR</a>,
<a name="l00100"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab">00100</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab" title="Line feed.">LBP_LF</a>,
<a name="l00101"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf">00101</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf" title="Next line.">LBP_NL</a>,
<a name="l00102"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769">00102</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769" title="South-East Asian.">LBP_SA</a>,
<a name="l00103"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817">00103</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817" title="Surrogates.">LBP_SG</a>,
<a name="l00104"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4">00104</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4" title="Space.">LBP_SP</a>,
<a name="l00105"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0">00105</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0" title="Unknown.">LBP_XX</a>
<a name="l00106"></a>00106 };
<a name="l00107"></a>00107
<a name="l00112"></a><a class="code" href="structLineBreakProperties.html">00112</a> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a>
<a name="l00113"></a>00113 {
<a name="l00114"></a><a class="code" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372">00114</a> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372" title="Starting coding point.">start</a>;
<a name="l00115"></a><a class="code" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14">00115</a> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14" title="End coding point.">end</a>;
<a name="l00116"></a><a class="code" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba">00116</a> <span class="keyword">enum</span> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070" title="Line break classes.">LineBreakClass</a> <a class="code" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba" title="The line breaking property.">prop</a>;
<a name="l00117"></a>00117 };
<a name="l00118"></a>00118
<a name="l00123"></a><a class="code" href="structLineBreakPropertiesLang.html">00123</a> <span class="keyword">struct </span><a class="code" href="structLineBreakPropertiesLang.html" title="Struct for association of language-specific line breaking properties with language...">LineBreakPropertiesLang</a>
<a name="l00124"></a>00124 {
<a name="l00125"></a><a class="code" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d">00125</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d" title="Language name.">lang</a>;
<a name="l00126"></a><a class="code" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488">00126</a> <span class="keywordtype">size_t</span> <a class="code" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488" title="Length of name to match.">namelen</a>;
<a name="l00127"></a><a class="code" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d">00127</a> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a> *<a class="code" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d" title="Pointer to associated data.">lbp</a>;
<a name="l00128"></a>00128 };
<a name="l00129"></a>00129
<a name="l00134"></a><a class="code" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">00134</a> <span class="keyword">typedef</span> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> (*<a class="code" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3" title="Abstract function interface for lb_get_next_char_utf8, lb_get_next_char_utf16, and...">get_next_char_t</a>)(<span class="keyword">const</span> <span class="keywordtype">void</span> *, size_t, <span class="keywordtype">size_t</span> *);
<a name="l00135"></a>00135
<a name="l00136"></a>00136 <span class="comment">/* Declarations */</span>
<a name="l00137"></a>00137 <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a> <a class="code" href="linebreakdata_8c.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a" title="Default line breaking properties as from the Unicode Web site.">lb_prop_default</a>[];
<a name="l00138"></a>00138 <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structLineBreakPropertiesLang.html" title="Struct for association of language-specific line breaking properties with language...">LineBreakPropertiesLang</a> <a class="code" href="linebreakdef_8c.html#82efdfa4115828df9158e183f1a9983d" title="Association data of language-specific line breaking properties with language names...">lb_prop_lang_map</a>[];
<a name="l00139"></a>00139
<a name="l00140"></a>00140 <span class="comment">/* Function Prototype */</span>
<a name="l00141"></a>00141 <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#5ffc31765568becd8b9eb08a3916ab4b" title="Gets the next Unicode character in a UTF-8 sequence.">lb_get_next_char_utf8</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#6103b2105588f239c593e779e605038a" title="Type for UTF-8 data points.">utf8_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00142"></a>00142 <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#a1664feb525e6bf1efbe8566547708be" title="Gets the next Unicode character in a UTF-16 sequence.">lb_get_next_char_utf16</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c" title="Type for UTF-16 data points.">utf16_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00143"></a>00143 <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#1f8bc7169caccfa444e75274b55e6721" title="Gets the next Unicode character in a UTF-32 sequence.">lb_get_next_char_utf32</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00144"></a>00144 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#0e86da0f08579bd9bfeb437f5fab15fe" title="Sets the line breaking information for a generic input string.">set_linebreaks</a>(
<a name="l00145"></a>00145 <span class="keyword">const</span> <span class="keywordtype">void</span> *s,
<a name="l00146"></a>00146 <span class="keywordtype">size_t</span> len,
<a name="l00147"></a>00147 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d" title="Language name.">lang</a>,
<a name="l00148"></a>00148 <span class="keywordtype">char</span> *brks,
<a name="l00149"></a>00149 <a class="code" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3" title="Abstract function interface for lb_get_next_char_utf8, lb_get_next_char_utf16, and...">get_next_char_t</a> get_next_char);
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Nov 29 16:41:13 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.8 </small></address>
</body>
</html>

View file

@ -0,0 +1,514 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreakdef.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreakdef.h File Reference</h1>
<p>Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm.
<a href="#_details">More...</a></p>
<p><a href="linebreakdef_8h_source.html">Go to the source code of this file.</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html">LineBreakProperties</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct for entries of line break properties. <a href="structLineBreakProperties.html#_details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct for association of language-specific line breaking properties with language names. <a href="structLineBreakPropertiesLang.html#_details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1">EOS</a>&nbsp;&nbsp;&nbsp;0xFFFF</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant value to mark the end of string. <a href="#aadbbc7b02d94a4c18646813ac8d7dec1"></a><br/></td></tr>
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a> )(const void *, size_t, size_t *)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract function interface for <a class="el" href="linebreakdef_8h.html#a5ffc31765568becd8b9eb08a3916ab4b" title="Gets the next Unicode character in a UTF-8 sequence.">lb_get_next_char_utf8</a>, <a class="el" href="linebreakdef_8h.html#aa1664feb525e6bf1efbe8566547708be" title="Gets the next Unicode character in a UTF-16 sequence.">lb_get_next_char_utf16</a>, and <a class="el" href="linebreakdef_8h.html#a1f8bc7169caccfa444e75274b55e6721" title="Gets the next Unicode character in a UTF-32 sequence.">lb_get_next_char_utf32</a>. <a href="#ad76de249e1f8334f318f9ee97ccc77c3"></a><br/></td></tr>
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> { <br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723">LBP_Undefined</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3">LBP_OP</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d">LBP_CL</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb">LBP_CP</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e">LBP_QU</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7">LBP_GL</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0">LBP_NS</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0">LBP_EX</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097">LBP_SY</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e">LBP_IS</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57">LBP_PR</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba">LBP_PO</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28">LBP_NU</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281">LBP_AL</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55">LBP_ID</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73">LBP_IN</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883">LBP_HY</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74">LBP_BA</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d">LBP_BB</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63">LBP_B2</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee">LBP_ZW</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1">LBP_CM</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa">LBP_WJ</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc">LBP_H2</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380">LBP_H3</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb">LBP_JL</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8">LBP_JV</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf">LBP_JT</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3">LBP_AI</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626">LBP_BK</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1">LBP_CB</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2">LBP_CR</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab">LBP_LF</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf">LBP_NL</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769">LBP_SA</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817">LBP_SG</a>,
<br/>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4">LBP_SP</a>,
<a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0">LBP_XX</a>
<br/>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight"><p>Line break classes. </p>
<a href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">More...</a><br/></td></tr>
<tr><td colspan="2"><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#a5ffc31765568becd8b9eb08a3916ab4b">lb_get_next_char_utf8</a> (const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-8 sequence. <a href="#a5ffc31765568becd8b9eb08a3916ab4b"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#aa1664feb525e6bf1efbe8566547708be">lb_get_next_char_utf16</a> (const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-16 sequence. <a href="#aa1664feb525e6bf1efbe8566547708be"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#a1f8bc7169caccfa444e75274b55e6721">lb_get_next_char_utf32</a> (const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-32 sequence. <a href="#a1f8bc7169caccfa444e75274b55e6721"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#a0e86da0f08579bd9bfeb437f5fab15fe">set_linebreaks</a> (const void *s, size_t len, const char *lang, char *brks, <a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a> get_next_char)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a generic input string. <a href="#a0e86da0f08579bd9bfeb437f5fab15fe"></a><br/></td></tr>
<tr><td colspan="2"><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default line breaking properties as from the Unicode Web site. <a href="#abbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#a82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Association data of language-specific line breaking properties with language names. <a href="#a82efdfa4115828df9158e183f1a9983d"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm. </p>
<dl class="version"><dt><b>Version:</b></dt><dd>1.95, 2009/11/29 </dd></dl>
<dl class="author"><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr/><h2>Define Documentation</h2>
<a class="anchor" id="aadbbc7b02d94a4c18646813ac8d7dec1"></a><!-- doxytag: member="linebreakdef.h::EOS" ref="aadbbc7b02d94a4c18646813ac8d7dec1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EOS&nbsp;&nbsp;&nbsp;0xFFFF</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Constant value to mark the end of string. </p>
<p>It is not a valid Unicode character. </p>
</div>
</div>
<hr/><h2>Typedef Documentation</h2>
<a class="anchor" id="ad76de249e1f8334f318f9ee97ccc77c3"></a><!-- doxytag: member="linebreakdef.h::get_next_char_t" ref="ad76de249e1f8334f318f9ee97ccc77c3" args=")(const void *, size_t, size_t *)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>(* <a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a>)(const void *, size_t, size_t *)</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Abstract function interface for <a class="el" href="linebreakdef_8h.html#a5ffc31765568becd8b9eb08a3916ab4b" title="Gets the next Unicode character in a UTF-8 sequence.">lb_get_next_char_utf8</a>, <a class="el" href="linebreakdef_8h.html#aa1664feb525e6bf1efbe8566547708be" title="Gets the next Unicode character in a UTF-16 sequence.">lb_get_next_char_utf16</a>, and <a class="el" href="linebreakdef_8h.html#a1f8bc7169caccfa444e75274b55e6721" title="Gets the next Unicode character in a UTF-32 sequence.">lb_get_next_char_utf32</a>. </p>
</div>
</div>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="a884b6565d87a81bbf549980bbdd04070"></a><!-- doxytag: member="linebreakdef.h::LineBreakClass" ref="a884b6565d87a81bbf549980bbdd04070" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Line break classes. </p>
<p>This is a direct mapping of Table 1 of Unicode Standard Annex 14, Revision 19. </p>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723"></a><!-- doxytag: member="LBP_Undefined" ref="a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" args="" -->LBP_Undefined</em>&nbsp;</td><td>
<p>Undefined. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3"></a><!-- doxytag: member="LBP_OP" ref="a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" args="" -->LBP_OP</em>&nbsp;</td><td>
<p>Opening punctuation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d"></a><!-- doxytag: member="LBP_CL" ref="a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" args="" -->LBP_CL</em>&nbsp;</td><td>
<p>Closing punctuation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb"></a><!-- doxytag: member="LBP_CP" ref="a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb" args="" -->LBP_CP</em>&nbsp;</td><td>
<p>Closing parenthesis. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e"></a><!-- doxytag: member="LBP_QU" ref="a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e" args="" -->LBP_QU</em>&nbsp;</td><td>
<p>Ambiguous quotation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7"></a><!-- doxytag: member="LBP_GL" ref="a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7" args="" -->LBP_GL</em>&nbsp;</td><td>
<p>Glue. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0"></a><!-- doxytag: member="LBP_NS" ref="a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0" args="" -->LBP_NS</em>&nbsp;</td><td>
<p>Non-starters. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0"></a><!-- doxytag: member="LBP_EX" ref="a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0" args="" -->LBP_EX</em>&nbsp;</td><td>
<p>Exclamation/Interrogation. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097"></a><!-- doxytag: member="LBP_SY" ref="a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097" args="" -->LBP_SY</em>&nbsp;</td><td>
<p>Symbols allowing break after. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e"></a><!-- doxytag: member="LBP_IS" ref="a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e" args="" -->LBP_IS</em>&nbsp;</td><td>
<p>Infix separator. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57"></a><!-- doxytag: member="LBP_PR" ref="a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57" args="" -->LBP_PR</em>&nbsp;</td><td>
<p>Prefix. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba"></a><!-- doxytag: member="LBP_PO" ref="a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba" args="" -->LBP_PO</em>&nbsp;</td><td>
<p>Postfix. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28"></a><!-- doxytag: member="LBP_NU" ref="a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28" args="" -->LBP_NU</em>&nbsp;</td><td>
<p>Numeric. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281"></a><!-- doxytag: member="LBP_AL" ref="a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281" args="" -->LBP_AL</em>&nbsp;</td><td>
<p>Alphabetic. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55"></a><!-- doxytag: member="LBP_ID" ref="a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55" args="" -->LBP_ID</em>&nbsp;</td><td>
<p>Ideographic. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73"></a><!-- doxytag: member="LBP_IN" ref="a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73" args="" -->LBP_IN</em>&nbsp;</td><td>
<p>Inseparable characters. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883"></a><!-- doxytag: member="LBP_HY" ref="a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883" args="" -->LBP_HY</em>&nbsp;</td><td>
<p>Hyphen. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74"></a><!-- doxytag: member="LBP_BA" ref="a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74" args="" -->LBP_BA</em>&nbsp;</td><td>
<p>Break after. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d"></a><!-- doxytag: member="LBP_BB" ref="a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d" args="" -->LBP_BB</em>&nbsp;</td><td>
<p>Break before. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63"></a><!-- doxytag: member="LBP_B2" ref="a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63" args="" -->LBP_B2</em>&nbsp;</td><td>
<p>Break on either side (but not pair). </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee"></a><!-- doxytag: member="LBP_ZW" ref="a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee" args="" -->LBP_ZW</em>&nbsp;</td><td>
<p>Zero-width space. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1"></a><!-- doxytag: member="LBP_CM" ref="a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1" args="" -->LBP_CM</em>&nbsp;</td><td>
<p>Combining marks. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa"></a><!-- doxytag: member="LBP_WJ" ref="a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa" args="" -->LBP_WJ</em>&nbsp;</td><td>
<p>Word joiner. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc"></a><!-- doxytag: member="LBP_H2" ref="a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc" args="" -->LBP_H2</em>&nbsp;</td><td>
<p>Hangul LV. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380"></a><!-- doxytag: member="LBP_H3" ref="a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380" args="" -->LBP_H3</em>&nbsp;</td><td>
<p>Hangul LVT. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb"></a><!-- doxytag: member="LBP_JL" ref="a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb" args="" -->LBP_JL</em>&nbsp;</td><td>
<p>Hangul L Jamo. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8"></a><!-- doxytag: member="LBP_JV" ref="a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8" args="" -->LBP_JV</em>&nbsp;</td><td>
<p>Hangul V Jamo. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf"></a><!-- doxytag: member="LBP_JT" ref="a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf" args="" -->LBP_JT</em>&nbsp;</td><td>
<p>Hangul T Jamo. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3"></a><!-- doxytag: member="LBP_AI" ref="a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3" args="" -->LBP_AI</em>&nbsp;</td><td>
<p>Ambiguous (alphabetic or ideograph). </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626"></a><!-- doxytag: member="LBP_BK" ref="a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626" args="" -->LBP_BK</em>&nbsp;</td><td>
<p>Break (mandatory). </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1"></a><!-- doxytag: member="LBP_CB" ref="a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1" args="" -->LBP_CB</em>&nbsp;</td><td>
<p>Contingent break. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2"></a><!-- doxytag: member="LBP_CR" ref="a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2" args="" -->LBP_CR</em>&nbsp;</td><td>
<p>Carriage return. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab"></a><!-- doxytag: member="LBP_LF" ref="a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab" args="" -->LBP_LF</em>&nbsp;</td><td>
<p>Line feed. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf"></a><!-- doxytag: member="LBP_NL" ref="a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf" args="" -->LBP_NL</em>&nbsp;</td><td>
<p>Next line. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769"></a><!-- doxytag: member="LBP_SA" ref="a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769" args="" -->LBP_SA</em>&nbsp;</td><td>
<p>South-East Asian. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817"></a><!-- doxytag: member="LBP_SG" ref="a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817" args="" -->LBP_SG</em>&nbsp;</td><td>
<p>Surrogates. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4"></a><!-- doxytag: member="LBP_SP" ref="a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4" args="" -->LBP_SP</em>&nbsp;</td><td>
<p>Space. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0"></a><!-- doxytag: member="LBP_XX" ref="a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0" args="" -->LBP_XX</em>&nbsp;</td><td>
<p>Unknown. </p>
</td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Function Documentation</h2>
<a class="anchor" id="aa1664feb525e6bf1efbe8566547708be"></a><!-- doxytag: member="linebreakdef.h::lb_get_next_char_utf16" ref="aa1664feb525e6bf1efbe8566547708be" args="(const utf16_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> lb_get_next_char_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next Unicode character in a UTF-16 sequence. </p>
<p>The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-16 surrogate pair.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in words </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered </dd></dl>
</div>
</div>
<a class="anchor" id="a1f8bc7169caccfa444e75274b55e6721"></a><!-- doxytag: member="linebreakdef.h::lb_get_next_char_utf32" ref="a1f8bc7169caccfa444e75274b55e6721" args="(const utf32_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> lb_get_next_char_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next Unicode character in a UTF-32 sequence. </p>
<p>The index will be advanced to the next character.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in dwords </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered </dd></dl>
</div>
</div>
<a class="anchor" id="a5ffc31765568becd8b9eb08a3916ab4b"></a><!-- doxytag: member="linebreakdef.h::lb_get_next_char_utf8" ref="a5ffc31765568becd8b9eb08a3916ab4b" args="(const utf8_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> lb_get_next_char_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Gets the next Unicode character in a UTF-8 sequence. </p>
<p>The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-8 sequence.</p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in bytes </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dd>
</dl>
<dl class="return"><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered </dd></dl>
</div>
</div>
<a class="anchor" id="a0e86da0f08579bd9bfeb437f5fab15fe"></a><!-- doxytag: member="linebreakdef.h::set_linebreaks" ref="a0e86da0f08579bd9bfeb437f5fab15fe" args="(const void *s, size_t len, const char *lang, char *brks, get_next_char_t get_next_char)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks </td>
<td>(</td>
<td class="paramtype">const void *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a>&nbsp;</td>
<td class="paramname"> <em>get_next_char</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Sets the line breaking information for a generic input string. </p>
<dl><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#a367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#a229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#add176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#a5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>get_next_char</em>&nbsp;</td><td>function to get the next UTF-32 character </td></tr>
</table>
</dd>
</dl>
</div>
</div>
<hr/><h2>Variable Documentation</h2>
<a class="anchor" id="abbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><!-- doxytag: member="linebreakdef.h::lb_prop_default" ref="abbd8c6b6e4e1c8ad2da83f23f81ac29a" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8h.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Default line breaking properties as from the Unicode Web site. </p>
</div>
</div>
<a class="anchor" id="a82efdfa4115828df9158e183f1a9983d"></a><!-- doxytag: member="linebreakdef.h::lb_prop_lang_map" ref="a82efdfa4115828df9158e183f1a9983d" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a> <a class="el" href="linebreakdef_8h.html#a82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a>[]</td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Association data of language-specific line breaking properties with language names. </p>
<p>This is the definition for the static data in this file. If you want more flexibility, or do not need the data here, you may want to redefine <em>lb_prop_lang_map</em> in your C source file. </p>
</div>
</div>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,147 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: linebreakdef.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>linebreakdef.h</h1><a href="linebreakdef_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* vim: set tabstop=4 shiftwidth=4: */</span>
<a name="l00002"></a>00002
<a name="l00003"></a>00003 <span class="comment">/*</span>
<a name="l00004"></a>00004 <span class="comment"> * Line breaking in a Unicode sequence. Designed to be used in a</span>
<a name="l00005"></a>00005 <span class="comment"> * generic text renderer.</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * Copyright (C) 2008-2009 Wu Yongwei &lt;wuyongwei at gmail dot com&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This software is provided &apos;as-is&apos;, without any express or implied</span>
<a name="l00010"></a>00010 <span class="comment"> * warranty. In no event will the author be held liable for any damages</span>
<a name="l00011"></a>00011 <span class="comment"> * arising from the use of this software.</span>
<a name="l00012"></a>00012 <span class="comment"> *</span>
<a name="l00013"></a>00013 <span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00014"></a>00014 <span class="comment"> * including commercial applications, and to alter it and redistribute</span>
<a name="l00015"></a>00015 <span class="comment"> * it freely, subject to the following restrictions:</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> * 1. The origin of this software must not be misrepresented; you must</span>
<a name="l00018"></a>00018 <span class="comment"> * not claim that you wrote the original software. If you use this</span>
<a name="l00019"></a>00019 <span class="comment"> * software in a product, an acknowledgement in the product</span>
<a name="l00020"></a>00020 <span class="comment"> * documentation would be appreciated but is not required.</span>
<a name="l00021"></a>00021 <span class="comment"> * 2. Altered source versions must be plainly marked as such, and must</span>
<a name="l00022"></a>00022 <span class="comment"> * not be misrepresented as being the original software.</span>
<a name="l00023"></a>00023 <span class="comment"> * 3. This notice may not be removed or altered from any source</span>
<a name="l00024"></a>00024 <span class="comment"> * distribution.</span>
<a name="l00025"></a>00025 <span class="comment"> *</span>
<a name="l00026"></a>00026 <span class="comment"> * The main reference is Unicode Standard Annex 14 (UAX #14):</span>
<a name="l00027"></a>00027 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/&gt;</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * When this library was designed, this annex was at Revision 19, for</span>
<a name="l00030"></a>00030 <span class="comment"> * Unicode 5.0.0:</span>
<a name="l00031"></a>00031 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-19.html&gt;</span>
<a name="l00032"></a>00032 <span class="comment"> *</span>
<a name="l00033"></a>00033 <span class="comment"> * This library has been updated according to Revision 24, for</span>
<a name="l00034"></a>00034 <span class="comment"> * Unicode 5.2.0:</span>
<a name="l00035"></a>00035 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-24.html&gt;</span>
<a name="l00036"></a>00036 <span class="comment"> *</span>
<a name="l00037"></a>00037 <span class="comment"> * The Unicode Terms of Use are available at</span>
<a name="l00038"></a>00038 <span class="comment"> * &lt;URL:http://www.unicode.org/copyright.html&gt;</span>
<a name="l00039"></a>00039 <span class="comment"> */</span>
<a name="l00040"></a>00040
<a name="l00055"></a><a class="code" href="linebreakdef_8h.html#aadbbc7b02d94a4c18646813ac8d7dec1">00055</a> <span class="preprocessor">#define EOS 0xFFFF</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span>
<a name="l00061"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">00061</a> <span class="keyword">enum</span> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070" title="Line break classes.">LineBreakClass</a>
<a name="l00062"></a>00062 {
<a name="l00063"></a>00063 <span class="comment">/* This is used to signal an error condition. */</span>
<a name="l00064"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723">00064</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a>,
<a name="l00066"></a>00066 <span class="comment">/* The following break classes are treated in the pair table. */</span>
<a name="l00067"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3">00067</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ace49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a>,
<a name="l00068"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d">00068</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a13de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a>,
<a name="l00069"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb">00069</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac722dfa01172dc818ac7b88296ab8bbb" title="Closing parenthesis.">LBP_CP</a>,
<a name="l00070"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e">00070</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac39763b5b0557dddcec94a381ef30f4e" title="Ambiguous quotation.">LBP_QU</a>,
<a name="l00071"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7">00071</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a0550bdd01f16132d2897fc5000f58df7" title="Glue.">LBP_GL</a>,
<a name="l00072"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0">00072</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a1cbbcff8d381e12574aec3679990e3f0" title="Non-starters.">LBP_NS</a>,
<a name="l00073"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0">00073</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a694a3a0a4cf1649ca938e4cb8064f3b0" title="Exclamation/Interrogation.">LBP_EX</a>,
<a name="l00074"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097">00074</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a47f9a3d5b87cd350905f552ffa3da097" title="Symbols allowing break after.">LBP_SY</a>,
<a name="l00075"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e">00075</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98ddb858ed33918bce8784a60c36712e" title="Infix separator.">LBP_IS</a>,
<a name="l00076"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57">00076</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a985024038b0a61a40df014013daa7d57" title="Prefix.">LBP_PR</a>,
<a name="l00077"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba">00077</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac7d5be8568020554e49bb4c01ca1fdba" title="Postfix.">LBP_PO</a>,
<a name="l00078"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28">00078</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7d6ec3c06dfdee326bca876365e5be28" title="Numeric.">LBP_NU</a>,
<a name="l00079"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281">00079</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a99a0353e48d4453d0acf01da43655281" title="Alphabetic.">LBP_AL</a>,
<a name="l00080"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55">00080</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a277e68f51ab2a52445f0e7e219b8bd55" title="Ideographic.">LBP_ID</a>,
<a name="l00081"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73">00081</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae5285b1bd6bf868b1655b8ad3cb9cc73" title="Inseparable characters.">LBP_IN</a>,
<a name="l00082"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883">00082</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7cf4d61e77f0d1f8974f1b21379d2883" title="Hyphen.">LBP_HY</a>,
<a name="l00083"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74">00083</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8487a95ef080e81a013162e107a4bc74" title="Break after.">LBP_BA</a>,
<a name="l00084"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d">00084</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a98dbcbc080626fbc0ff7d4f2b8b86d7d" title="Break before.">LBP_BB</a>,
<a name="l00085"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63">00085</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a46fe18e486c79c3835a587fb15ad0c63" title="Break on either side (but not pair).">LBP_B2</a>,
<a name="l00086"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee">00086</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070aa58613e52b70bda371b48ca2d89d85ee" title="Zero-width space.">LBP_ZW</a>,
<a name="l00087"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1">00087</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ade6aff21f968efc84109e502c5c469c1" title="Combining marks.">LBP_CM</a>,
<a name="l00088"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa">00088</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a00085861924d3758649cfd7dc0ec3daa" title="Word joiner.">LBP_WJ</a>,
<a name="l00089"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc">00089</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a87a5464b708121503da98654e02c2cfc" title="Hangul LV.">LBP_H2</a>,
<a name="l00090"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380">00090</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ae898c79c281f9d12c4adfa12834f4380" title="Hangul LVT.">LBP_H3</a>,
<a name="l00091"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb">00091</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a2cb194fd3b6e0295a134ad735f8f75eb" title="Hangul L Jamo.">LBP_JL</a>,
<a name="l00092"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8">00092</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7759e3988158319f9efe87e322804cd8" title="Hangul V Jamo.">LBP_JV</a>,
<a name="l00093"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf">00093</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7851519f0dac4f922b4144315bb711bf" title="Hangul T Jamo.">LBP_JT</a>,
<a name="l00095"></a>00095 <span class="comment">/* The following break classes are not treated in the pair table */</span>
<a name="l00096"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3">00096</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ac9dcacac1d71f0f8ca7bbfe670620dd3" title="Ambiguous (alphabetic or ideograph).">LBP_AI</a>,
<a name="l00097"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626">00097</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7b0aae40955328f649ec66b23ecf1626" title="Break (mandatory).">LBP_BK</a>,
<a name="l00098"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1">00098</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a485f9b3c86d8b6f800bba048f1bf47b1" title="Contingent break.">LBP_CB</a>,
<a name="l00099"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2">00099</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a8f6991e8defca4aa9e6485dbb32628a2" title="Carriage return.">LBP_CR</a>,
<a name="l00100"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab">00100</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a944522607828ef422c419633f68c8cab" title="Line feed.">LBP_LF</a>,
<a name="l00101"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf">00101</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070acfefd6df8344cc5601ce7786aee51fcf" title="Next line.">LBP_NL</a>,
<a name="l00102"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769">00102</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a38b102b238de030fe74906fb0fcfb769" title="South-East Asian.">LBP_SA</a>,
<a name="l00103"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817">00103</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070ad6764678f5d80d86324a6f29c0561817" title="Surrogates.">LBP_SG</a>,
<a name="l00104"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4">00104</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a7605e7c192d43e2ef0596e92446dfba4" title="Space.">LBP_SP</a>,
<a name="l00105"></a><a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0">00105</a> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070a49450c35ed2a20d252e707322964bdf0" title="Unknown.">LBP_XX</a>
<a name="l00106"></a>00106 };
<a name="l00107"></a>00107
<a name="l00112"></a><a class="code" href="structLineBreakProperties.html">00112</a> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a>
<a name="l00113"></a>00113 {
<a name="l00114"></a><a class="code" href="structLineBreakProperties.html#a1fe368ff9b53f52305c8dca687395372">00114</a> <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="structLineBreakProperties.html#a1fe368ff9b53f52305c8dca687395372" title="Starting coding point.">start</a>;
<a name="l00115"></a><a class="code" href="structLineBreakProperties.html#af6ff463e88f6c694661aa10222404a14">00115</a> <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="structLineBreakProperties.html#af6ff463e88f6c694661aa10222404a14" title="End coding point.">end</a>;
<a name="l00116"></a><a class="code" href="structLineBreakProperties.html#a46d34ea3f514f8f082d92a441a6665ba">00116</a> <span class="keyword">enum</span> <a class="code" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070" title="Line break classes.">LineBreakClass</a> <a class="code" href="structLineBreakProperties.html#a46d34ea3f514f8f082d92a441a6665ba" title="The line breaking property.">prop</a>;
<a name="l00117"></a>00117 };
<a name="l00118"></a>00118
<a name="l00123"></a><a class="code" href="structLineBreakPropertiesLang.html">00123</a> <span class="keyword">struct </span><a class="code" href="structLineBreakPropertiesLang.html" title="Struct for association of language-specific line breaking properties with language...">LineBreakPropertiesLang</a>
<a name="l00124"></a>00124 {
<a name="l00125"></a><a class="code" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d">00125</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d" title="Language name.">lang</a>;
<a name="l00126"></a><a class="code" href="structLineBreakPropertiesLang.html#ab5132ed92c5964a5cfecbb21de206488">00126</a> <span class="keywordtype">size_t</span> <a class="code" href="structLineBreakPropertiesLang.html#ab5132ed92c5964a5cfecbb21de206488" title="Length of name to match.">namelen</a>;
<a name="l00127"></a><a class="code" href="structLineBreakPropertiesLang.html#ae4b7339a372a0ccbf97e380aa440ff9d">00127</a> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a> *<a class="code" href="structLineBreakPropertiesLang.html#ae4b7339a372a0ccbf97e380aa440ff9d" title="Pointer to associated data.">lbp</a>;
<a name="l00128"></a>00128 };
<a name="l00129"></a>00129
<a name="l00134"></a><a class="code" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3">00134</a> <span class="keyword">typedef</span> <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> (*<a class="code" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3" title="Abstract function interface for lb_get_next_char_utf8, lb_get_next_char_utf16, and...">get_next_char_t</a>)(<span class="keyword">const</span> <span class="keywordtype">void</span> *, size_t, <span class="keywordtype">size_t</span> *);
<a name="l00135"></a>00135
<a name="l00136"></a>00136 <span class="comment">/* Declarations */</span>
<a name="l00137"></a>00137 <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a> <a class="code" href="linebreakdata_8c.html#abbd8c6b6e4e1c8ad2da83f23f81ac29a" title="Default line breaking properties as from the Unicode Web site.">lb_prop_default</a>[];
<a name="l00138"></a>00138 <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structLineBreakPropertiesLang.html" title="Struct for association of language-specific line breaking properties with language...">LineBreakPropertiesLang</a> <a class="code" href="linebreakdef_8c.html#a82efdfa4115828df9158e183f1a9983d" title="Association data of language-specific line breaking properties with language names...">lb_prop_lang_map</a>[];
<a name="l00139"></a>00139
<a name="l00140"></a>00140 <span class="comment">/* Function Prototype */</span>
<a name="l00141"></a>00141 <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#a5ffc31765568becd8b9eb08a3916ab4b" title="Gets the next Unicode character in a UTF-8 sequence.">lb_get_next_char_utf8</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#a6103b2105588f239c593e779e605038a" title="Type for UTF-8 data points.">utf8_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00142"></a>00142 <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#aa1664feb525e6bf1efbe8566547708be" title="Gets the next Unicode character in a UTF-16 sequence.">lb_get_next_char_utf16</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#a4dce96cad338d9281612277b2d80950c" title="Type for UTF-16 data points.">utf16_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00143"></a>00143 <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#a1f8bc7169caccfa444e75274b55e6721" title="Gets the next Unicode character in a UTF-32 sequence.">lb_get_next_char_utf32</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00144"></a>00144 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#a0e86da0f08579bd9bfeb437f5fab15fe" title="Sets the line breaking information for a generic input string.">set_linebreaks</a>(
<a name="l00145"></a>00145 <span class="keyword">const</span> <span class="keywordtype">void</span> *s,
<a name="l00146"></a>00146 <span class="keywordtype">size_t</span> len,
<a name="l00147"></a>00147 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d" title="Language name.">lang</a>,
<a name="l00148"></a>00148 <span class="keywordtype">char</span> *brks,
<a name="l00149"></a>00149 <a class="code" href="linebreakdef_8h.html#ad76de249e1f8334f318f9ee97ccc77c3" title="Abstract function interface for lb_get_next_char_utf8, lb_get_next_char_utf16, and...">get_next_char_t</a> get_next_char);
</pre></div></div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,99 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: LineBreakProperties Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>LineBreakProperties Struct Reference</h1><!-- doxytag: class="LineBreakProperties" -->
<p>Struct for entries of line break properties.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&gt;</code></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html#a1fe368ff9b53f52305c8dca687395372">start</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Starting coding point. <a href="#a1fe368ff9b53f52305c8dca687395372"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html#af6ff463e88f6c694661aa10222404a14">end</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End coding point. <a href="#af6ff463e88f6c694661aa10222404a14"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html#a46d34ea3f514f8f082d92a441a6665ba">prop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The line breaking property. <a href="#a46d34ea3f514f8f082d92a441a6665ba"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Struct for entries of line break properties. </p>
<p>The array of the entries <em>must</em> be sorted. </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="af6ff463e88f6c694661aa10222404a14"></a><!-- doxytag: member="LineBreakProperties::end" ref="af6ff463e88f6c694661aa10222404a14" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> <a class="el" href="structLineBreakProperties.html#af6ff463e88f6c694661aa10222404a14">LineBreakProperties::end</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>End coding point. </p>
</div>
</div>
<a class="anchor" id="a46d34ea3f514f8f082d92a441a6665ba"></a><!-- doxytag: member="LineBreakProperties::prop" ref="a46d34ea3f514f8f082d92a441a6665ba" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreakdef_8h.html#a884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> <a class="el" href="structLineBreakProperties.html#a46d34ea3f514f8f082d92a441a6665ba">LineBreakProperties::prop</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>The line breaking property. </p>
</div>
</div>
<a class="anchor" id="a1fe368ff9b53f52305c8dca687395372"></a><!-- doxytag: member="LineBreakProperties::start" ref="a1fe368ff9b53f52305c8dca687395372" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> <a class="el" href="structLineBreakProperties.html#a1fe368ff9b53f52305c8dca687395372">LineBreakProperties::start</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Starting coding point. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a></li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,79 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: LineBreakPropertiesIndex Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>LineBreakPropertiesIndex Struct Reference</h1><!-- doxytag: class="LineBreakPropertiesIndex" -->
<p>Struct for the second-level index to the line breaking properties.
<a href="#_details">More...</a></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesIndex.html#a7a5207276632f772309f8cf2877c9eae">end</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End coding point. <a href="#a7a5207276632f772309f8cf2877c9eae"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesIndex.html#ade56f82faa0703e4eafddb0fc4ba6528">lbp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to line breaking properties. <a href="#ade56f82faa0703e4eafddb0fc4ba6528"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Struct for the second-level index to the line breaking properties. </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="a7a5207276632f772309f8cf2877c9eae"></a><!-- doxytag: member="LineBreakPropertiesIndex::end" ref="a7a5207276632f772309f8cf2877c9eae" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#a4f775bae0642c213be2c526018283c25">utf32_t</a> <a class="el" href="structLineBreakPropertiesIndex.html#a7a5207276632f772309f8cf2877c9eae">LineBreakPropertiesIndex::end</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>End coding point. </p>
</div>
</div>
<a class="anchor" id="ade56f82faa0703e4eafddb0fc4ba6528"></a><!-- doxytag: member="LineBreakPropertiesIndex::lbp" ref="ade56f82faa0703e4eafddb0fc4ba6528" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>* <a class="el" href="structLineBreakPropertiesIndex.html#ade56f82faa0703e4eafddb0fc4ba6528">LineBreakPropertiesIndex::lbp</a><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Pointer to line breaking properties. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="linebreak_8c.html">linebreak.c</a></li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

@ -0,0 +1,98 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>liblinebreak: LineBreakPropertiesLang Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<!-- Generated by Doxygen 1.6.1 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>LineBreakPropertiesLang Struct Reference</h1><!-- doxytag: class="LineBreakPropertiesLang" -->
<p>Struct for association of language-specific line breaking properties with language names.
<a href="#_details">More...</a></p>
<p><code>#include &lt;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&gt;</code></p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td colspan="2"><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d">lang</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Language name. <a href="#ae961b49d11e272adc590cf06e9f6100d"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html#ab5132ed92c5964a5cfecbb21de206488">namelen</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Length of name to match. <a href="#ab5132ed92c5964a5cfecbb21de206488"></a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html#ae4b7339a372a0ccbf97e380aa440ff9d">lbp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to associated data. <a href="#ae4b7339a372a0ccbf97e380aa440ff9d"></a><br/></td></tr>
</table>
<hr/><a name="_details"></a><h2>Detailed Description</h2>
<p>Struct for association of language-specific line breaking properties with language names. </p>
<hr/><h2>Field Documentation</h2>
<a class="anchor" id="ae961b49d11e272adc590cf06e9f6100d"></a><!-- doxytag: member="LineBreakPropertiesLang::lang" ref="ae961b49d11e272adc590cf06e9f6100d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* <a class="el" href="structLineBreakPropertiesLang.html#ae961b49d11e272adc590cf06e9f6100d">LineBreakPropertiesLang::lang</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Language name. </p>
</div>
</div>
<a class="anchor" id="ae4b7339a372a0ccbf97e380aa440ff9d"></a><!-- doxytag: member="LineBreakPropertiesLang::lbp" ref="ae4b7339a372a0ccbf97e380aa440ff9d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>* <a class="el" href="structLineBreakPropertiesLang.html#ae4b7339a372a0ccbf97e380aa440ff9d">LineBreakPropertiesLang::lbp</a><code> [read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Pointer to associated data. </p>
</div>
</div>
<a class="anchor" id="ab5132ed92c5964a5cfecbb21de206488"></a><!-- doxytag: member="LineBreakPropertiesLang::namelen" ref="ab5132ed92c5964a5cfecbb21de206488" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="structLineBreakPropertiesLang.html#ab5132ed92c5964a5cfecbb21de206488">LineBreakPropertiesLang::namelen</a></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>Length of name to match. </p>
</div>
</div>
<hr/>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a></li>
</ul>
</div>
<hr size="1"/><address style="text-align: right;"><small>Generated on Sun Nov 29 17:25:44 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>

View file

Before

Width:  |  Height:  |  Size: 35 B

After

Width:  |  Height:  |  Size: 35 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 706 B

After

Width:  |  Height:  |  Size: 706 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

@ -57,7 +57,7 @@ DIV.tabs SPAN
white-space : nowrap; white-space : nowrap;
} }
DIV.tabs INPUT DIV.tabs #MSearchBox
{ {
float : right; float : right;
display : inline; display : inline;

View file

@ -30,9 +30,9 @@
* Unicode 5.0.0: * Unicode 5.0.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-19.html> * <URL:http://www.unicode.org/reports/tr14/tr14-19.html>
* *
* This library has been updated according to Revision 22, for * This library has been updated according to Revision 24, for
* Unicode 5.1.0: * Unicode 5.2.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-22.html> * <URL:http://www.unicode.org/reports/tr14/tr14-24.html>
* *
* The Unicode Terms of Use are available at * The Unicode Terms of Use are available at
* <URL:http://www.unicode.org/copyright.html> * <URL:http://www.unicode.org/copyright.html>
@ -44,7 +44,7 @@
* Implementation of the line breaking algorithm as described in Unicode * Implementation of the line breaking algorithm as described in Unicode
* Standard Annex 14. * Standard Annex 14.
* *
* @version 1.2, 2009/04/29 * @version 1.95, 2009/11/29
* @author Wu Yongwei * @author Wu Yongwei
*/ */
@ -59,6 +59,11 @@
*/ */
#define LINEBREAK_INDEX_SIZE 40 #define LINEBREAK_INDEX_SIZE 40
/**
* Version number of the library.
*/
const int linebreak_version = LINEBREAK_VERSION;
/** /**
* Enumeration of break actions. They are used in the break action * Enumeration of break actions. They are used in the break action
* pair table below. * pair table below.
@ -74,8 +79,7 @@ enum BreakAction
/** /**
* Break action pair table. This is a direct mapping of Table 2 of * Break action pair table. This is a direct mapping of Table 2 of
* Unicode Standard Annex 14, Revision 22. * Unicode Standard Annex 14, Revision 24.
*/ */
static enum BreakAction baTable[LBP_JT][LBP_JT] = { static enum BreakAction baTable[LBP_JT][LBP_JT] = {
{ /* OP */ { /* OP */
@ -83,209 +87,217 @@ static enum BreakAction baTable[LBP_JT][LBP_JT] = {
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, CM_PROHIBITED_BRK,
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, PROHIBITED_BRK }, CM_PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK },
{ /* CL */ { /* CL */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* CP */
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* QU */ { /* QU */
PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* GL */ { /* GL */
INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* NS */ { /* NS */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* EX */ { /* EX */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* SY */ { /* SY */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* IS */ { /* IS */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* PR */ { /* PR */
INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* PO */ { /* PO */
INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* NU */ { /* NU */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK },
{ /* AL */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK },
{ /* ID */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK },
{ /* IN */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK },
{ /* HY */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, DIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK },
{ /* BA */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, DIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK },
{ /* BB */
INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, INDIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
{ /* B2 */ INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, { /* AL */
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* ID */
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* IN */
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* HY */
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* BA */
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* BB */
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* B2 */
DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* ZW */ { /* ZW */
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* CM */ { /* CM */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, DIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK },
{ /* WJ */ { /* WJ */
INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK,
CM_INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* H2 */ { /* H2 */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* H3 */ { /* H3 */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK }, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK },
{ /* JL */ { /* JL */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK,
INDIRECT_BRK, DIRECT_BRK }, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK },
{ /* JV */ { /* JV */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
INDIRECT_BRK, INDIRECT_BRK }, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK },
{ /* JT */ { /* JT */
DIRECT_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK,
INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK, PROHIBITED_BRK, INDIRECT_BRK, INDIRECT_BRK, PROHIBITED_BRK, PROHIBITED_BRK,
DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, INDIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK, INDIRECT_BRK,
DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK, CM_INDIRECT_BRK, INDIRECT_BRK, DIRECT_BRK, DIRECT_BRK, PROHIBITED_BRK,
PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK, DIRECT_BRK, CM_INDIRECT_BRK, PROHIBITED_BRK, DIRECT_BRK, DIRECT_BRK,
DIRECT_BRK, INDIRECT_BRK } DIRECT_BRK, DIRECT_BRK, INDIRECT_BRK }
}; };
/** /**
@ -468,10 +480,8 @@ static enum LineBreakClass resolve_lb_class(
* @param[in,out] ip pointer to the index * @param[in,out] ip pointer to the index
* @return the Unicode character beginning at the index; or * @return the Unicode character beginning at the index; or
* #EOS if end of input is encountered * #EOS if end of input is encountered
*
* @deprecated This function will be prefixed with \c lb_ in the future.
*/ */
utf32_t get_next_char_utf8( utf32_t lb_get_next_char_utf8(
const utf8_t *s, const utf8_t *s,
size_t len, size_t len,
size_t *ip) size_t *ip)
@ -530,10 +540,8 @@ utf32_t get_next_char_utf8(
* @param[in,out] ip pointer to the index * @param[in,out] ip pointer to the index
* @return the Unicode character beginning at the index; or * @return the Unicode character beginning at the index; or
* #EOS if end of input is encountered * #EOS if end of input is encountered
*
* @deprecated This function will be prefixed with \c lb_ in the future.
*/ */
utf32_t get_next_char_utf16( utf32_t lb_get_next_char_utf16(
const utf16_t *s, const utf16_t *s,
size_t len, size_t len,
size_t *ip) size_t *ip)
@ -571,10 +579,8 @@ utf32_t get_next_char_utf16(
* @param[in,out] ip pointer to the index * @param[in,out] ip pointer to the index
* @return the Unicode character beginning at the index; or * @return the Unicode character beginning at the index; or
* #EOS if end of input is encountered * #EOS if end of input is encountered
*
* @deprecated This function will be prefixed with \c lb_ in the future.
*/ */
utf32_t get_next_char_utf32( utf32_t lb_get_next_char_utf32(
const utf32_t *s, const utf32_t *s,
size_t len, size_t len,
size_t *ip) size_t *ip)
@ -738,7 +744,8 @@ void set_linebreaks_utf8(
const char *lang, const char *lang,
char *brks) char *brks)
{ {
set_linebreaks(s, len, lang, brks, (get_next_char_t)get_next_char_utf8); set_linebreaks(s, len, lang, brks,
(get_next_char_t)lb_get_next_char_utf8);
} }
/** /**
@ -757,7 +764,8 @@ void set_linebreaks_utf16(
const char *lang, const char *lang,
char *brks) char *brks)
{ {
set_linebreaks(s, len, lang, brks, (get_next_char_t)get_next_char_utf16); set_linebreaks(s, len, lang, brks,
(get_next_char_t)lb_get_next_char_utf16);
} }
/** /**
@ -776,7 +784,8 @@ void set_linebreaks_utf32(
const char *lang, const char *lang,
char *brks) char *brks)
{ {
set_linebreaks(s, len, lang, brks, (get_next_char_t)get_next_char_utf32); set_linebreaks(s, len, lang, brks,
(get_next_char_t)lb_get_next_char_utf32);
} }
/** /**
@ -791,12 +800,8 @@ void set_linebreaks_utf32(
* @param lang language of the input * @param lang language of the input
* @return one of #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK, * @return one of #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK,
* #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR * #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR
*
* @deprecated This function will be renamed to #is_line_breakable in
* the future. The name is already defined as a
* macro&mdash;please use it.
*/ */
int is_breakable( int is_line_breakable(
utf32_t char1, utf32_t char1,
utf32_t char2, utf32_t char2,
const char* lang) const char* lang)

View file

@ -30,9 +30,9 @@
* Unicode 5.0.0: * Unicode 5.0.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-19.html> * <URL:http://www.unicode.org/reports/tr14/tr14-19.html>
* *
* This library has been updated according to Revision 22, for * This library has been updated according to Revision 24, for
* Unicode 5.1.0: * Unicode 5.2.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-22.html> * <URL:http://www.unicode.org/reports/tr14/tr14-24.html>
* *
* The Unicode Terms of Use are available at * The Unicode Terms of Use are available at
* <URL:http://www.unicode.org/copyright.html> * <URL:http://www.unicode.org/copyright.html>
@ -43,7 +43,7 @@
* *
* Header file for the line breaking algorithm. * Header file for the line breaking algorithm.
* *
* @version 1.2, 2009/05/03 * @version 1.95, 2009/11/29
* @author Wu Yongwei * @author Wu Yongwei
*/ */
@ -56,6 +56,9 @@
extern "C" { extern "C" {
#endif #endif
#define LINEBREAK_VERSION 0x0195 /**< Version of the library linebreak */
extern const int linebreak_version;
#ifndef LINEBREAK_UTF_TYPES_DEFINED #ifndef LINEBREAK_UTF_TYPES_DEFINED
#define LINEBREAK_UTF_TYPES_DEFINED #define LINEBREAK_UTF_TYPES_DEFINED
typedef unsigned char utf8_t; /**< Type for UTF-8 data points */ typedef unsigned char utf8_t; /**< Type for UTF-8 data points */
@ -68,70 +71,14 @@ typedef unsigned int utf32_t; /**< Type for UTF-32 data points */
#define LINEBREAK_NOBREAK 2 /**< No break is possible */ #define LINEBREAK_NOBREAK 2 /**< No break is possible */
#define LINEBREAK_INSIDEACHAR 3 /**< A UTF-8/16 sequence is unfinished */ #define LINEBREAK_INSIDEACHAR 3 /**< A UTF-8/16 sequence is unfinished */
/**
* Initializes the second-level index to the line breaking properties.
* If it is not called, the performance of #get_char_lb_class_lang (and
* thus the main functionality) can be pretty bad, especially for big
* code points like those of Chinese.
*/
void init_linebreak(void); void init_linebreak(void);
int is_breakable(utf32_t char1, utf32_t char2, const char* lang);
/**
* Sets the line breaking information for a UTF-8 input string.
*
* @param[in] s input UTF-8 string
* @param[in] len length of the input
* @param[in] lang language of the input
* @param[out] brks pointer to the output breaking data, containing
* #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK,
* #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR
*/
void set_linebreaks_utf8( void set_linebreaks_utf8(
const utf8_t *s, size_t len, const char* lang, char *brks); const utf8_t *s, size_t len, const char* lang, char *brks);
/**
* Sets the line breaking information for a UTF-16 input string.
*
* @param[in] s input UTF-16 string
* @param[in] len length of the input
* @param[in] lang language of the input
* @param[out] brks pointer to the output breaking data, containing
* #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK,
* #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR
*/
void set_linebreaks_utf16( void set_linebreaks_utf16(
const utf16_t *s, size_t len, const char* lang, char *brks); const utf16_t *s, size_t len, const char* lang, char *brks);
/**
* Sets the line breaking information for a UTF-32 input string.
*
* @param[in] s input UTF-32 string
* @param[in] len length of the input
* @param[in] lang language of the input
* @param[out] brks pointer to the output breaking data, containing
* #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK,
* #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR
*/
void set_linebreaks_utf32( void set_linebreaks_utf32(
const utf32_t *s, size_t len, const char* lang, char *brks); const utf32_t *s, size_t len, const char* lang, char *brks);
int is_line_breakable(utf32_t char1, utf32_t char2, const char* lang);
/**
* Replacement form for the deprecated function #is_breakable. Please
* use the macro for the present moment, before the function is renamed.
* <p>This is a wrapper function to expose a simple interface. Generally
* speaking, it is better to use #set_linebreaks_utf32 instead, since
* complicated cases involving combining marks, spaces, etc. cannot be
* correctly processed.
*
* @param char1 the first Unicode character
* @param char2 the second Unicode character
* @param lang language of the input
* @return one of #LINEBREAK_MUSTBREAK, #LINEBREAK_ALLOWBREAK,
* #LINEBREAK_NOBREAK, or #LINEBREAK_INSIDEACHAR
*/
#define is_line_breakable is_breakable
#ifdef __cplusplus #ifdef __cplusplus
} }

View file

@ -1,6 +1,6 @@
/* The content of this file is generated from: /* The content of this file is generated from:
# LineBreak-5.1.0.txt # LineBreak-5.2.0.txt
# Date: 2008-03-20, 17:43:00 PST [KW] # Date: 2009-08-17, 12:21:00 PDT [KW]
*/ */
#include "linebreak.h" #include "linebreak.h"
@ -23,7 +23,7 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x0026, 0x0026, LBP_AL }, { 0x0026, 0x0026, LBP_AL },
{ 0x0027, 0x0027, LBP_QU }, { 0x0027, 0x0027, LBP_QU },
{ 0x0028, 0x0028, LBP_OP }, { 0x0028, 0x0028, LBP_OP },
{ 0x0029, 0x0029, LBP_CL }, { 0x0029, 0x0029, LBP_CP },
{ 0x002A, 0x002A, LBP_AL }, { 0x002A, 0x002A, LBP_AL },
{ 0x002B, 0x002B, LBP_PR }, { 0x002B, 0x002B, LBP_PR },
{ 0x002C, 0x002C, LBP_IS }, { 0x002C, 0x002C, LBP_IS },
@ -37,7 +37,7 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x0040, 0x005A, LBP_AL }, { 0x0040, 0x005A, LBP_AL },
{ 0x005B, 0x005B, LBP_OP }, { 0x005B, 0x005B, LBP_OP },
{ 0x005C, 0x005C, LBP_PR }, { 0x005C, 0x005C, LBP_PR },
{ 0x005D, 0x005D, LBP_CL }, { 0x005D, 0x005D, LBP_CP },
{ 0x005E, 0x007A, LBP_AL }, { 0x005E, 0x007A, LBP_AL },
{ 0x007B, 0x007B, LBP_OP }, { 0x007B, 0x007B, LBP_OP },
{ 0x007C, 0x007C, LBP_BA }, { 0x007C, 0x007C, LBP_BA },
@ -145,14 +145,22 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x07F4, 0x07F7, LBP_AL }, { 0x07F4, 0x07F7, LBP_AL },
{ 0x07F8, 0x07F8, LBP_IS }, { 0x07F8, 0x07F8, LBP_IS },
{ 0x07F9, 0x07F9, LBP_EX }, { 0x07F9, 0x07F9, LBP_EX },
{ 0x07FA, 0x07FA, LBP_AL }, { 0x07FA, 0x0815, LBP_AL },
{ 0x0901, 0x0903, LBP_CM }, { 0x0816, 0x0819, LBP_CM },
{ 0x081A, 0x081A, LBP_AL },
{ 0x081B, 0x0823, LBP_CM },
{ 0x0824, 0x0824, LBP_AL },
{ 0x0825, 0x0827, LBP_CM },
{ 0x0828, 0x0828, LBP_AL },
{ 0x0829, 0x082D, LBP_CM },
{ 0x0830, 0x083E, LBP_AL },
{ 0x0900, 0x0903, LBP_CM },
{ 0x0904, 0x0939, LBP_AL }, { 0x0904, 0x0939, LBP_AL },
{ 0x093C, 0x093C, LBP_CM }, { 0x093C, 0x093C, LBP_CM },
{ 0x093D, 0x093D, LBP_AL }, { 0x093D, 0x093D, LBP_AL },
{ 0x093E, 0x094D, LBP_CM }, { 0x093E, 0x094E, LBP_CM },
{ 0x0950, 0x0950, LBP_AL }, { 0x0950, 0x0950, LBP_AL },
{ 0x0951, 0x0954, LBP_CM }, { 0x0951, 0x0955, LBP_CM },
{ 0x0958, 0x0961, LBP_AL }, { 0x0958, 0x0961, LBP_AL },
{ 0x0962, 0x0963, LBP_CM }, { 0x0962, 0x0963, LBP_CM },
{ 0x0964, 0x0965, LBP_BA }, { 0x0964, 0x0965, LBP_BA },
@ -169,8 +177,11 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x09E2, 0x09E3, LBP_CM }, { 0x09E2, 0x09E3, LBP_CM },
{ 0x09E6, 0x09EF, LBP_NU }, { 0x09E6, 0x09EF, LBP_NU },
{ 0x09F0, 0x09F1, LBP_AL }, { 0x09F0, 0x09F1, LBP_AL },
{ 0x09F2, 0x09F3, LBP_PR }, { 0x09F2, 0x09F3, LBP_PO },
{ 0x09F4, 0x09FA, LBP_AL }, { 0x09F4, 0x09F8, LBP_AL },
{ 0x09F9, 0x09F9, LBP_PO },
{ 0x09FA, 0x09FA, LBP_AL },
{ 0x09FB, 0x09FB, LBP_PR },
{ 0x0A01, 0x0A03, LBP_CM }, { 0x0A01, 0x0A03, LBP_CM },
{ 0x0A05, 0x0A39, LBP_AL }, { 0x0A05, 0x0A39, LBP_AL },
{ 0x0A3C, 0x0A51, LBP_CM }, { 0x0A3C, 0x0A51, LBP_CM },
@ -286,23 +297,25 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x0FD0, 0x0FD1, LBP_BB }, { 0x0FD0, 0x0FD1, LBP_BB },
{ 0x0FD2, 0x0FD2, LBP_BA }, { 0x0FD2, 0x0FD2, LBP_BA },
{ 0x0FD3, 0x0FD3, LBP_BB }, { 0x0FD3, 0x0FD3, LBP_BB },
{ 0x0FD4, 0x0FD4, LBP_AL }, { 0x0FD4, 0x0FD8, LBP_AL },
{ 0x1000, 0x103F, LBP_SA }, { 0x1000, 0x103F, LBP_SA },
{ 0x1040, 0x1049, LBP_NU }, { 0x1040, 0x1049, LBP_NU },
{ 0x104A, 0x104B, LBP_BA }, { 0x104A, 0x104B, LBP_BA },
{ 0x104C, 0x104F, LBP_AL }, { 0x104C, 0x104F, LBP_AL },
{ 0x1050, 0x108F, LBP_SA }, { 0x1050, 0x108F, LBP_SA },
{ 0x1090, 0x1099, LBP_NU }, { 0x1090, 0x1099, LBP_NU },
{ 0x109E, 0x109F, LBP_SA }, { 0x109A, 0x109F, LBP_SA },
{ 0x10A0, 0x10FC, LBP_AL }, { 0x10A0, 0x10FC, LBP_AL },
{ 0x1100, 0x115F, LBP_JL }, { 0x1100, 0x115F, LBP_JL },
{ 0x1160, 0x11A2, LBP_JV }, { 0x1160, 0x11A7, LBP_JV },
{ 0x11A8, 0x11F9, LBP_JT }, { 0x11A8, 0x11FF, LBP_JT },
{ 0x1200, 0x135A, LBP_AL }, { 0x1200, 0x135A, LBP_AL },
{ 0x135F, 0x135F, LBP_CM }, { 0x135F, 0x135F, LBP_CM },
{ 0x1360, 0x1360, LBP_AL }, { 0x1360, 0x1360, LBP_AL },
{ 0x1361, 0x1361, LBP_BA }, { 0x1361, 0x1361, LBP_BA },
{ 0x1362, 0x1676, LBP_AL }, { 0x1362, 0x13F4, LBP_AL },
{ 0x1400, 0x1400, LBP_BA },
{ 0x1401, 0x167F, LBP_AL },
{ 0x1680, 0x1680, LBP_BA }, { 0x1680, 0x1680, LBP_BA },
{ 0x1681, 0x169A, LBP_AL }, { 0x1681, 0x169A, LBP_AL },
{ 0x169B, 0x169B, LBP_OP }, { 0x169B, 0x169B, LBP_OP },
@ -346,17 +359,23 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x1944, 0x1945, LBP_EX }, { 0x1944, 0x1945, LBP_EX },
{ 0x1946, 0x194F, LBP_NU }, { 0x1946, 0x194F, LBP_NU },
{ 0x1950, 0x19C9, LBP_SA }, { 0x1950, 0x19C9, LBP_SA },
{ 0x19D0, 0x19D9, LBP_NU }, { 0x19D0, 0x19DA, LBP_NU },
{ 0x19DE, 0x19DF, LBP_SA }, { 0x19DE, 0x19DF, LBP_SA },
{ 0x19E0, 0x1A16, LBP_AL }, { 0x19E0, 0x1A16, LBP_AL },
{ 0x1A17, 0x1A1B, LBP_CM }, { 0x1A17, 0x1A1B, LBP_CM },
{ 0x1A1E, 0x1A1F, LBP_AL }, { 0x1A1E, 0x1A1F, LBP_AL },
{ 0x1A20, 0x1A7C, LBP_SA },
{ 0x1A7F, 0x1A7F, LBP_CM },
{ 0x1A80, 0x1A99, LBP_NU },
{ 0x1AA0, 0x1AAD, LBP_SA },
{ 0x1B00, 0x1B04, LBP_CM }, { 0x1B00, 0x1B04, LBP_CM },
{ 0x1B05, 0x1B33, LBP_AL }, { 0x1B05, 0x1B33, LBP_AL },
{ 0x1B34, 0x1B44, LBP_CM }, { 0x1B34, 0x1B44, LBP_CM },
{ 0x1B45, 0x1B4B, LBP_AL }, { 0x1B45, 0x1B4B, LBP_AL },
{ 0x1B50, 0x1B59, LBP_NU }, { 0x1B50, 0x1B59, LBP_NU },
{ 0x1B5A, 0x1B60, LBP_BA }, { 0x1B5A, 0x1B5B, LBP_BA },
{ 0x1B5C, 0x1B5C, LBP_AL },
{ 0x1B5D, 0x1B60, LBP_BA },
{ 0x1B61, 0x1B6A, LBP_AL }, { 0x1B61, 0x1B6A, LBP_AL },
{ 0x1B6B, 0x1B73, LBP_CM }, { 0x1B6B, 0x1B73, LBP_CM },
{ 0x1B74, 0x1B7C, LBP_AL }, { 0x1B74, 0x1B7C, LBP_AL },
@ -373,6 +392,13 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x1C50, 0x1C59, LBP_NU }, { 0x1C50, 0x1C59, LBP_NU },
{ 0x1C5A, 0x1C7D, LBP_AL }, { 0x1C5A, 0x1C7D, LBP_AL },
{ 0x1C7E, 0x1C7F, LBP_BA }, { 0x1C7E, 0x1C7F, LBP_BA },
{ 0x1CD0, 0x1CD2, LBP_CM },
{ 0x1CD3, 0x1CD3, LBP_AL },
{ 0x1CD4, 0x1CE8, LBP_CM },
{ 0x1CE9, 0x1CEC, LBP_AL },
{ 0x1CED, 0x1CED, LBP_CM },
{ 0x1CEE, 0x1CF1, LBP_AL },
{ 0x1CF2, 0x1CF2, LBP_CM },
{ 0x1D00, 0x1DBF, LBP_AL }, { 0x1D00, 0x1DBF, LBP_AL },
{ 0x1DC0, 0x1DFF, LBP_CM }, { 0x1DC0, 0x1DFF, LBP_CM },
{ 0x1E00, 0x1FFC, LBP_AL }, { 0x1E00, 0x1FFC, LBP_AL },
@ -435,6 +461,8 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x20A0, 0x20A6, LBP_PR }, { 0x20A0, 0x20A6, LBP_PR },
{ 0x20A7, 0x20A7, LBP_PO }, { 0x20A7, 0x20A7, LBP_PO },
{ 0x20A8, 0x20B5, LBP_PR }, { 0x20A8, 0x20B5, LBP_PR },
{ 0x20B6, 0x20B6, LBP_PO },
{ 0x20B7, 0x20B8, LBP_PR },
{ 0x20D0, 0x20F0, LBP_CM }, { 0x20D0, 0x20F0, LBP_CM },
{ 0x2100, 0x2102, LBP_AL }, { 0x2100, 0x2102, LBP_AL },
{ 0x2103, 0x2103, LBP_PO }, { 0x2103, 0x2103, LBP_PO },
@ -461,7 +489,7 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x216C, 0x216F, LBP_AL }, { 0x216C, 0x216F, LBP_AL },
{ 0x2170, 0x2179, LBP_AI }, { 0x2170, 0x2179, LBP_AI },
{ 0x217A, 0x2188, LBP_AL }, { 0x217A, 0x2188, LBP_AL },
{ 0x2190, 0x2199, LBP_AI }, { 0x2189, 0x2199, LBP_AI },
{ 0x219A, 0x21D1, LBP_AL }, { 0x219A, 0x21D1, LBP_AL },
{ 0x21D2, 0x21D2, LBP_AI }, { 0x21D2, 0x21D2, LBP_AI },
{ 0x21D3, 0x21D3, LBP_AL }, { 0x21D3, 0x21D3, LBP_AL },
@ -586,7 +614,15 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x266C, 0x266D, LBP_AI }, { 0x266C, 0x266D, LBP_AI },
{ 0x266E, 0x266E, LBP_AL }, { 0x266E, 0x266E, LBP_AL },
{ 0x266F, 0x266F, LBP_AI }, { 0x266F, 0x266F, LBP_AI },
{ 0x2670, 0x275A, LBP_AL }, { 0x2670, 0x269D, LBP_AL },
{ 0x269E, 0x269F, LBP_AI },
{ 0x26A0, 0x26BD, LBP_AL },
{ 0x26BE, 0x26BF, LBP_AI },
{ 0x26C0, 0x26C3, LBP_AL },
{ 0x26C4, 0x26FF, LBP_AI },
{ 0x2701, 0x2756, LBP_AL },
{ 0x2757, 0x2757, LBP_AI },
{ 0x2758, 0x275A, LBP_AL },
{ 0x275B, 0x275E, LBP_QU }, { 0x275B, 0x275E, LBP_QU },
{ 0x2761, 0x2761, LBP_AL }, { 0x2761, 0x2761, LBP_AL },
{ 0x2762, 0x2763, LBP_EX }, { 0x2762, 0x2763, LBP_EX },
@ -651,7 +687,10 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x29DC, 0x29FB, LBP_AL }, { 0x29DC, 0x29FB, LBP_AL },
{ 0x29FC, 0x29FC, LBP_OP }, { 0x29FC, 0x29FC, LBP_OP },
{ 0x29FD, 0x29FD, LBP_CL }, { 0x29FD, 0x29FD, LBP_CL },
{ 0x29FE, 0x2CEA, LBP_AL }, { 0x29FE, 0x2B54, LBP_AL },
{ 0x2B55, 0x2B59, LBP_AI },
{ 0x2C00, 0x2CEE, LBP_AL },
{ 0x2CEF, 0x2CF1, LBP_CM },
{ 0x2CF9, 0x2CF9, LBP_EX }, { 0x2CF9, 0x2CF9, LBP_EX },
{ 0x2CFA, 0x2CFC, LBP_BA }, { 0x2CFA, 0x2CFC, LBP_BA },
{ 0x2CFD, 0x2CFD, LBP_AL }, { 0x2CFD, 0x2CFD, LBP_AL },
@ -680,7 +719,7 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x2E2A, 0x2E2D, LBP_BA }, { 0x2E2A, 0x2E2D, LBP_BA },
{ 0x2E2E, 0x2E2E, LBP_EX }, { 0x2E2E, 0x2E2E, LBP_EX },
{ 0x2E2F, 0x2E2F, LBP_AL }, { 0x2E2F, 0x2E2F, LBP_AL },
{ 0x2E30, 0x2E30, LBP_BA }, { 0x2E30, 0x2E31, LBP_BA },
{ 0x2E80, 0x3000, LBP_ID }, { 0x2E80, 0x3000, LBP_ID },
{ 0x3001, 0x3002, LBP_CL }, { 0x3001, 0x3002, LBP_CL },
{ 0x3003, 0x3004, LBP_ID }, { 0x3003, 0x3004, LBP_ID },
@ -762,11 +801,15 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x30FB, 0x30FE, LBP_NS }, { 0x30FB, 0x30FE, LBP_NS },
{ 0x30FF, 0x31E3, LBP_ID }, { 0x30FF, 0x31E3, LBP_ID },
{ 0x31F0, 0x31FF, LBP_NS }, { 0x31F0, 0x31FF, LBP_NS },
{ 0x3200, 0x4DB5, LBP_ID }, { 0x3200, 0x3247, LBP_ID },
{ 0x3248, 0x324F, LBP_AI },
{ 0x3250, 0x4DBF, LBP_ID },
{ 0x4DC0, 0x4DFF, LBP_AL }, { 0x4DC0, 0x4DFF, LBP_AL },
{ 0x4E00, 0xA014, LBP_ID }, { 0x4E00, 0xA014, LBP_ID },
{ 0xA015, 0xA015, LBP_NS }, { 0xA015, 0xA015, LBP_NS },
{ 0xA016, 0xA4C6, LBP_ID }, { 0xA016, 0xA4C6, LBP_ID },
{ 0xA4D0, 0xA4FD, LBP_AL },
{ 0xA4FE, 0xA4FF, LBP_BA },
{ 0xA500, 0xA60C, LBP_AL }, { 0xA500, 0xA60C, LBP_AL },
{ 0xA60D, 0xA60D, LBP_BA }, { 0xA60D, 0xA60D, LBP_BA },
{ 0xA60E, 0xA60E, LBP_EX }, { 0xA60E, 0xA60E, LBP_EX },
@ -777,7 +820,11 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0xA66F, 0xA672, LBP_CM }, { 0xA66F, 0xA672, LBP_CM },
{ 0xA673, 0xA673, LBP_AL }, { 0xA673, 0xA673, LBP_AL },
{ 0xA67C, 0xA67D, LBP_CM }, { 0xA67C, 0xA67D, LBP_CM },
{ 0xA67E, 0xA801, LBP_AL }, { 0xA67E, 0xA6EF, LBP_AL },
{ 0xA6F0, 0xA6F1, LBP_CM },
{ 0xA6F2, 0xA6F2, LBP_AL },
{ 0xA6F3, 0xA6F7, LBP_BA },
{ 0xA700, 0xA801, LBP_AL },
{ 0xA802, 0xA802, LBP_CM }, { 0xA802, 0xA802, LBP_CM },
{ 0xA803, 0xA805, LBP_AL }, { 0xA803, 0xA805, LBP_AL },
{ 0xA806, 0xA806, LBP_CM }, { 0xA806, 0xA806, LBP_CM },
@ -785,20 +832,34 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0xA80B, 0xA80B, LBP_CM }, { 0xA80B, 0xA80B, LBP_CM },
{ 0xA80C, 0xA822, LBP_AL }, { 0xA80C, 0xA822, LBP_AL },
{ 0xA823, 0xA827, LBP_CM }, { 0xA823, 0xA827, LBP_CM },
{ 0xA828, 0xA873, LBP_AL }, { 0xA828, 0xA837, LBP_AL },
{ 0xA838, 0xA838, LBP_PO },
{ 0xA839, 0xA873, LBP_AL },
{ 0xA874, 0xA875, LBP_BB }, { 0xA874, 0xA875, LBP_BB },
{ 0xA876, 0xA877, LBP_EX }, { 0xA876, 0xA877, LBP_EX },
{ 0xA880, 0xA881, LBP_CM }, { 0xA880, 0xA881, LBP_CM },
{ 0xA882, 0xA8B3, LBP_AL }, { 0xA882, 0xA8B3, LBP_AL },
{ 0xA8B4, 0xA8C4, LBP_CM }, { 0xA8B4, 0xA8C4, LBP_CM },
{ 0xA8CE, 0xA8CF, LBP_BA }, { 0xA8CE, 0xA8CF, LBP_BA },
{ 0xA8D0, 0xA909, LBP_NU }, { 0xA8D0, 0xA8D9, LBP_NU },
{ 0xA8E0, 0xA8F1, LBP_CM },
{ 0xA8F2, 0xA8FB, LBP_AL },
{ 0xA900, 0xA909, LBP_NU },
{ 0xA90A, 0xA925, LBP_AL }, { 0xA90A, 0xA925, LBP_AL },
{ 0xA926, 0xA92D, LBP_CM }, { 0xA926, 0xA92D, LBP_CM },
{ 0xA92E, 0xA92F, LBP_BA }, { 0xA92E, 0xA92F, LBP_BA },
{ 0xA930, 0xA946, LBP_AL }, { 0xA930, 0xA946, LBP_AL },
{ 0xA947, 0xA953, LBP_CM }, { 0xA947, 0xA953, LBP_CM },
{ 0xA95F, 0xAA28, LBP_AL }, { 0xA95F, 0xA95F, LBP_AL },
{ 0xA960, 0xA97C, LBP_JL },
{ 0xA980, 0xA983, LBP_CM },
{ 0xA984, 0xA9B2, LBP_AL },
{ 0xA9B3, 0xA9C0, LBP_CM },
{ 0xA9C1, 0xA9C6, LBP_AL },
{ 0xA9C7, 0xA9C9, LBP_BA },
{ 0xA9CA, 0xA9CF, LBP_AL },
{ 0xA9D0, 0xA9D9, LBP_NU },
{ 0xA9DE, 0xAA28, LBP_AL },
{ 0xAA29, 0xAA36, LBP_CM }, { 0xAA29, 0xAA36, LBP_CM },
{ 0xAA40, 0xAA42, LBP_AL }, { 0xAA40, 0xAA42, LBP_AL },
{ 0xAA43, 0xAA43, LBP_CM }, { 0xAA43, 0xAA43, LBP_CM },
@ -807,6 +868,12 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0xAA50, 0xAA59, LBP_NU }, { 0xAA50, 0xAA59, LBP_NU },
{ 0xAA5C, 0xAA5C, LBP_AL }, { 0xAA5C, 0xAA5C, LBP_AL },
{ 0xAA5D, 0xAA5F, LBP_BA }, { 0xAA5D, 0xAA5F, LBP_BA },
{ 0xAA60, 0xAADF, LBP_SA },
{ 0xABC0, 0xABE2, LBP_AL },
{ 0xABE3, 0xABEA, LBP_CM },
{ 0xABEB, 0xABEB, LBP_BA },
{ 0xABEC, 0xABED, LBP_CM },
{ 0xABF0, 0xABF9, LBP_NU },
{ 0xAC00, 0xAC00, LBP_H2 }, { 0xAC00, 0xAC00, LBP_H2 },
{ 0xAC01, 0xAC1B, LBP_H3 }, { 0xAC01, 0xAC1B, LBP_H3 },
{ 0xAC1C, 0xAC1C, LBP_H2 }, { 0xAC1C, 0xAC1C, LBP_H2 },
@ -1605,9 +1672,11 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0xD76D, 0xD787, LBP_H3 }, { 0xD76D, 0xD787, LBP_H3 },
{ 0xD788, 0xD788, LBP_H2 }, { 0xD788, 0xD788, LBP_H2 },
{ 0xD789, 0xD7A3, LBP_H3 }, { 0xD789, 0xD7A3, LBP_H3 },
{ 0xD7B0, 0xD7C6, LBP_JV },
{ 0xD7CB, 0xD7FB, LBP_JT },
{ 0xD800, 0xDFFF, LBP_SG }, { 0xD800, 0xDFFF, LBP_SG },
{ 0xE000, 0xF8FF, LBP_XX }, { 0xE000, 0xF8FF, LBP_XX },
{ 0xF900, 0xFAD9, LBP_ID }, { 0xF900, 0xFAFF, LBP_ID },
{ 0xFB00, 0xFB1D, LBP_AL }, { 0xFB00, 0xFB1D, LBP_AL },
{ 0xFB1E, 0xFB1E, LBP_CM }, { 0xFB1E, 0xFB1E, LBP_CM },
{ 0xFB1F, 0xFD3D, LBP_AL }, { 0xFB1F, 0xFD3D, LBP_AL },
@ -1716,7 +1785,9 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x103D0, 0x103D0, LBP_BA }, { 0x103D0, 0x103D0, LBP_BA },
{ 0x103D1, 0x1049D, LBP_AL }, { 0x103D1, 0x1049D, LBP_AL },
{ 0x104A0, 0x104A9, LBP_NU }, { 0x104A0, 0x104A9, LBP_NU },
{ 0x10800, 0x10919, LBP_AL }, { 0x10800, 0x10855, LBP_AL },
{ 0x10857, 0x10857, LBP_BA },
{ 0x10858, 0x1091B, LBP_AL },
{ 0x1091F, 0x1091F, LBP_BA }, { 0x1091F, 0x1091F, LBP_BA },
{ 0x10920, 0x10A00, LBP_AL }, { 0x10920, 0x10A00, LBP_AL },
{ 0x10A01, 0x10A0F, LBP_CM }, { 0x10A01, 0x10A0F, LBP_CM },
@ -1724,9 +1795,30 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x10A38, 0x10A3F, LBP_CM }, { 0x10A38, 0x10A3F, LBP_CM },
{ 0x10A40, 0x10A47, LBP_AL }, { 0x10A40, 0x10A47, LBP_AL },
{ 0x10A50, 0x10A57, LBP_BA }, { 0x10A50, 0x10A57, LBP_BA },
{ 0x10A58, 0x12462, LBP_AL }, { 0x10A58, 0x10B35, LBP_AL },
{ 0x10B39, 0x10B3F, LBP_BA },
{ 0x10B40, 0x10E7E, LBP_AL },
{ 0x11080, 0x11082, LBP_CM },
{ 0x11083, 0x110AF, LBP_AL },
{ 0x110B0, 0x110BA, LBP_CM },
{ 0x110BB, 0x110BD, LBP_AL },
{ 0x110BE, 0x110C1, LBP_BA },
{ 0x12000, 0x12462, LBP_AL },
{ 0x12470, 0x12473, LBP_BA }, { 0x12470, 0x12473, LBP_BA },
{ 0x1D000, 0x1D164, LBP_AL }, { 0x13000, 0x13257, LBP_AL },
{ 0x13258, 0x1325A, LBP_OP },
{ 0x1325B, 0x1325D, LBP_CL },
{ 0x1325E, 0x13281, LBP_AL },
{ 0x13282, 0x13282, LBP_CL },
{ 0x13283, 0x13285, LBP_AL },
{ 0x13286, 0x13286, LBP_OP },
{ 0x13287, 0x13287, LBP_CL },
{ 0x13288, 0x13288, LBP_OP },
{ 0x13289, 0x13289, LBP_CL },
{ 0x1328A, 0x13378, LBP_AL },
{ 0x13379, 0x13379, LBP_OP },
{ 0x1337A, 0x1337B, LBP_CL },
{ 0x1337C, 0x1D164, LBP_AL },
{ 0x1D165, 0x1D169, LBP_CM }, { 0x1D165, 0x1D169, LBP_CM },
{ 0x1D16A, 0x1D16C, LBP_AL }, { 0x1D16A, 0x1D16C, LBP_AL },
{ 0x1D16D, 0x1D182, LBP_CM }, { 0x1D16D, 0x1D182, LBP_CM },
@ -1739,7 +1831,10 @@ struct LineBreakProperties lb_prop_default[] = {
{ 0x1D245, 0x1D7CB, LBP_AL }, { 0x1D245, 0x1D7CB, LBP_AL },
{ 0x1D7CE, 0x1D7FF, LBP_NU }, { 0x1D7CE, 0x1D7FF, LBP_NU },
{ 0x1F000, 0x1F093, LBP_AL }, { 0x1F000, 0x1F093, LBP_AL },
{ 0x20000, 0x2FA1D, LBP_ID }, { 0x1F100, 0x1F12D, LBP_AI },
{ 0x1F12E, 0x1F12E, LBP_AL },
{ 0x1F131, 0x1F190, LBP_AI },
{ 0x1F200, 0x3FFFD, LBP_ID },
{ 0xE0001, 0xE01EF, LBP_CM }, { 0xE0001, 0xE01EF, LBP_CM },
{ 0xF0000, 0x10FFFD, LBP_XX }, { 0xF0000, 0x10FFFD, LBP_XX },
{ 0xFFFFFFFF, 0xFFFFFFFF, LBP_Undefined } { 0xFFFFFFFF, 0xFFFFFFFF, LBP_Undefined }

View file

@ -30,9 +30,9 @@
* Unicode 5.0.0: * Unicode 5.0.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-19.html> * <URL:http://www.unicode.org/reports/tr14/tr14-19.html>
* *
* This library has been updated according to Revision 22, for * This library has been updated according to Revision 24, for
* Unicode 5.1.0: * Unicode 5.2.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-22.html> * <URL:http://www.unicode.org/reports/tr14/tr14-24.html>
* *
* The Unicode Terms of Use are available at * The Unicode Terms of Use are available at
* <URL:http://www.unicode.org/copyright.html> * <URL:http://www.unicode.org/copyright.html>
@ -43,7 +43,7 @@
* *
* Definition of language-specific data. * Definition of language-specific data.
* *
* @version 1.2, 2009/04/29 * @version 1.95, 2009/11/29
* @author Wu Yongwei * @author Wu Yongwei
*/ */

View file

@ -30,9 +30,9 @@
* Unicode 5.0.0: * Unicode 5.0.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-19.html> * <URL:http://www.unicode.org/reports/tr14/tr14-19.html>
* *
* This library has been updated according to Revision 22, for * This library has been updated according to Revision 24, for
* Unicode 5.1.0: * Unicode 5.2.0:
* <URL:http://www.unicode.org/reports/tr14/tr14-22.html> * <URL:http://www.unicode.org/reports/tr14/tr14-24.html>
* *
* The Unicode Terms of Use are available at * The Unicode Terms of Use are available at
* <URL:http://www.unicode.org/copyright.html> * <URL:http://www.unicode.org/copyright.html>
@ -44,7 +44,7 @@
* Definitions of internal data structures, declarations of global * Definitions of internal data structures, declarations of global
* variables, and function prototypes for the line breaking algorithm. * variables, and function prototypes for the line breaking algorithm.
* *
* @version 1.2, 2009/05/03 * @version 1.95, 2009/11/29
* @author Wu Yongwei * @author Wu Yongwei
*/ */
@ -66,6 +66,7 @@ enum LineBreakClass
/* The following break classes are treated in the pair table. */ /* The following break classes are treated in the pair table. */
LBP_OP, /**< Opening punctuation */ LBP_OP, /**< Opening punctuation */
LBP_CL, /**< Closing punctuation */ LBP_CL, /**< Closing punctuation */
LBP_CP, /**< Closing parenthesis */
LBP_QU, /**< Ambiguous quotation */ LBP_QU, /**< Ambiguous quotation */
LBP_GL, /**< Glue */ LBP_GL, /**< Glue */
LBP_NS, /**< Non-starters */ LBP_NS, /**< Non-starters */
@ -127,8 +128,8 @@ struct LineBreakPropertiesLang
}; };
/** /**
* Abstract function interface for #get_next_char_utf8, * Abstract function interface for #lb_get_next_char_utf8,
* #get_next_char_utf16, and #get_next_char_utf32. * #lb_get_next_char_utf16, and #lb_get_next_char_utf32.
*/ */
typedef utf32_t (*get_next_char_t)(const void *, size_t, size_t *); typedef utf32_t (*get_next_char_t)(const void *, size_t, size_t *);
@ -136,27 +137,13 @@ typedef utf32_t (*get_next_char_t)(const void *, size_t, size_t *);
extern struct LineBreakProperties lb_prop_default[]; extern struct LineBreakProperties lb_prop_default[];
extern struct LineBreakPropertiesLang lb_prop_lang_map[]; extern struct LineBreakPropertiesLang lb_prop_lang_map[];
/* Function Prototypes */ /* Function Prototype */
utf32_t lb_get_next_char_utf8(const utf8_t *s, size_t len, size_t *ip);
/** utf32_t lb_get_next_char_utf16(const utf16_t *s, size_t len, size_t *ip);
* Sets the line breaking information for a generic input string. utf32_t lb_get_next_char_utf32(const utf32_t *s, size_t len, size_t *ip);
*
* @param[in] s input string
* @param[in] len length of the input
* @param[in] lang language of the input
* @param[out] brks pointer to the output breaking data,
* containing #LINEBREAK_MUSTBREAK,
* #LINEBREAK_ALLOWBREAK, #LINEBREAK_NOBREAK,
* or #LINEBREAK_INSIDEACHAR
* @param[in] get_next_char function to get the next UTF-32 character
*/
void set_linebreaks( void set_linebreaks(
const void *s, const void *s,
size_t len, size_t len,
const char *lang, const char *lang,
char *brks, char *brks,
get_next_char_t get_next_char); get_next_char_t get_next_char);
utf32_t get_next_char_utf8(const utf8_t *s, size_t len, size_t *ip);
utf32_t get_next_char_utf16(const utf16_t *s, size_t len, size_t *ip);
utf32_t get_next_char_utf32(const utf32_t *s, size_t len, size_t *ip);

View file

@ -0,0 +1,35 @@
#include <jni.h>
#include "liblinebreak-2.0/linebreak.h"
extern "C"
void Java_org_vimgadgets_linebreak_LineBreak_init(JNIEnv *env, jobject thiz) {
init_linebreak();
}
extern "C"
void Java_org_vimgadgets_linebreak_LineBreak_setLineBreaksForCharArray(JNIEnv *env, jobject thiz, jcharArray data, jint offset, jint length, jstring lang, jbyteArray breaks) {
jchar* dataArray = env->GetCharArrayElements(data, 0);
jbyte* breaksArray = env->GetByteArrayElements(breaks, 0);
const char *langArray = env->GetStringUTFChars(lang, 0);
set_linebreaks_utf16(dataArray + offset, length, langArray, (char*)breaksArray);
env->ReleaseStringUTFChars(lang, langArray);
env->ReleaseByteArrayElements(breaks, breaksArray, 0);
env->ReleaseCharArrayElements(data, dataArray, 0);
}
extern "C"
void Java_org_vimgadgets_linebreak_LineBreak_setLineBreaksForString(JNIEnv *env, jobject thiz, jstring data, jstring lang, jbyteArray breaks) {
const jchar* dataArray = env->GetStringChars(data, 0);
jbyte* breaksArray = env->GetByteArrayElements(breaks, 0);
const size_t len = env->GetStringLength(data);
const char *langArray = env->GetStringUTFChars(lang, 0);
set_linebreaks_utf16(dataArray, len, "en", (char*)breaksArray);
env->ReleaseStringUTFChars(lang, langArray);
env->ReleaseByteArrayElements(breaks, breaksArray, 0);
env->ReleaseStringChars(data, dataArray);
}

View file

@ -1,9 +0,0 @@
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := liblinebreak
LOCAL_SRC_FILES := linebreak-jni.c liblinebreak-1.2/linebreak.c liblinebreak-1.2/linebreakdata.c liblinebreak-1.2/linebreakdef.c
LOCAL_ALLOW_UNDEFINED_SYMBOLS := false
include $(BUILD_SHARED_LIBRARY)

View file

@ -1,43 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Deprecated List</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1><a class="anchor" name="deprecated">Deprecated List </a></h1><a class="anchor" name="_deprecated000002"></a> <dl>
<dt>Global <a class="el" href="linebreak_8c.html#1358bfc18e5c58f3bf86d41da9915964">get_next_char_utf16</a> </dt>
<dd>This function will be prefixed with <code>lb_</code> in the future. </dd>
</dl>
<p>
<a class="anchor" name="_deprecated000003"></a> <dl>
<dt>Global <a class="el" href="linebreak_8c.html#b436dc6eadd1cfe258159ac671798653">get_next_char_utf32</a> </dt>
<dd>This function will be prefixed with <code>lb_</code> in the future. </dd>
</dl>
<p>
<a class="anchor" name="_deprecated000001"></a> <dl>
<dt>Global <a class="el" href="linebreak_8c.html#d6e67ab4880e304d6ac730d545027a7f">get_next_char_utf8</a> </dt>
<dd>This function will be prefixed with <code>lb_</code> in the future. </dd>
</dl>
<p>
<a class="anchor" name="_deprecated000004"></a> <dl>
<dt>Global <a class="el" href="linebreak_8c.html#22abef1024a6392cf2bd2281fc1bd151">is_breakable</a> </dt>
<dd>This function will be renamed to <a class="el" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a" title="Replacement form for the deprecated function is_breakable.">is_line_breakable</a> in the future. The name is already defined as a macro&mdash;please use it. </dd>
</dl>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,55 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="functions.html"><span>All</span></a></li>
<li><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all struct and union fields with links to the structures/unions they belong to:
<p>
<ul>
<li>end
: <a class="el" href="structLineBreakPropertiesIndex.html#7a5207276632f772309f8cf2877c9eae">LineBreakPropertiesIndex</a>
, <a class="el" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14">LineBreakProperties</a>
<li>lang
: <a class="el" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d">LineBreakPropertiesLang</a>
<li>lbp
: <a class="el" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d">LineBreakPropertiesLang</a>
, <a class="el" href="structLineBreakPropertiesIndex.html#de56f82faa0703e4eafddb0fc4ba6528">LineBreakPropertiesIndex</a>
<li>namelen
: <a class="el" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488">LineBreakPropertiesLang</a>
<li>prop
: <a class="el" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba">LineBreakProperties</a>
<li>start
: <a class="el" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372">LineBreakProperties</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,55 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields - Variables</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li class="current"><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="functions.html"><span>All</span></a></li>
<li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>end
: <a class="el" href="structLineBreakPropertiesIndex.html#7a5207276632f772309f8cf2877c9eae">LineBreakPropertiesIndex</a>
, <a class="el" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14">LineBreakProperties</a>
<li>lang
: <a class="el" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d">LineBreakPropertiesLang</a>
<li>lbp
: <a class="el" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d">LineBreakPropertiesLang</a>
, <a class="el" href="structLineBreakPropertiesIndex.html#de56f82faa0703e4eafddb0fc4ba6528">LineBreakPropertiesIndex</a>
<li>namelen
: <a class="el" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488">LineBreakPropertiesLang</a>
<li>prop
: <a class="el" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba">LineBreakProperties</a>
<li>start
: <a class="el" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372">LineBreakProperties</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,249 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li class="current"><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_b"><span>b</span></a></li>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_e"><span>e</span></a></li>
<li><a href="#index_g"><span>g</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
<li><a href="#index_r"><span>r</span></a></li>
<li><a href="#index_s"><span>s</span></a></li>
<li><a href="#index_u"><span>u</span></a></li>
</ul>
</div>
</div>
<div class="contents">
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
<p>
<h3><a class="anchor" name="index_b">- b -</a></h3><ul>
<li>baTable
: <a class="el" href="linebreak_8c.html#e334fc5c93e9d07c1f6731774cdc07d4">linebreak.c</a>
<li>BreakAction
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>CM_INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d3e854663bba91b604d4a5f633b62c74a">linebreak.c</a>
<li>CM_PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d9ae64fb627a84203f331f718eaf942c8">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>DIRECT_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d570708fb66d60c437dc3e8c1c784eef6">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_e">- e -</a></h3><ul>
<li>EOS
: <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1">linebreakdef.h</a>
</ul>
<h3><a class="anchor" name="index_g">- g -</a></h3><ul>
<li>get_char_lb_class()
: <a class="el" href="linebreak_8c.html#4eb765d3c50b5be0f694f9dd875bf5bb">linebreak.c</a>
<li>get_char_lb_class_default()
: <a class="el" href="linebreak_8c.html#a8be95ab8e6ee731e55279772b5aec91">linebreak.c</a>
<li>get_char_lb_class_lang()
: <a class="el" href="linebreak_8c.html#41ec5a32a31d007d60ea57caa38a2f3e">linebreak.c</a>
<li>get_lb_prop_lang()
: <a class="el" href="linebreak_8c.html#ec14ede6c9c839852210a729274c7fbc">linebreak.c</a>
<li>get_next_char_t
: <a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">linebreakdef.h</a>
<li>get_next_char_utf16()
: <a class="el" href="linebreakdef_8h.html#1358bfc18e5c58f3bf86d41da9915964">linebreakdef.h</a>
, <a class="el" href="linebreak_8c.html#1358bfc18e5c58f3bf86d41da9915964">linebreak.c</a>
<li>get_next_char_utf32()
: <a class="el" href="linebreakdef_8h.html#b436dc6eadd1cfe258159ac671798653">linebreakdef.h</a>
, <a class="el" href="linebreak_8c.html#b436dc6eadd1cfe258159ac671798653">linebreak.c</a>
<li>get_next_char_utf8()
: <a class="el" href="linebreak_8c.html#d6e67ab4880e304d6ac730d545027a7f">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#d6e67ab4880e304d6ac730d545027a7f">linebreakdef.h</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d246deb66413ac197d95680d31d4d5436">linebreak.c</a>
<li>init_linebreak()
: <a class="el" href="linebreak_8c.html#57c2b88b7e1277cbba23cfffbc782c4f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#57c2b88b7e1277cbba23cfffbc782c4f">linebreak.h</a>
<li>is_breakable()
: <a class="el" href="linebreak_8c.html#22abef1024a6392cf2bd2281fc1bd151">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#22abef1024a6392cf2bd2281fc1bd151">linebreak.h</a>
<li>is_line_breakable
: <a class="el" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a">linebreak.h</a>
</ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>lb_prop_Chinese
: <a class="el" href="linebreakdef_8c.html#945fbc26db32e1f4fbce4f6e9ae70189">linebreakdef.c</a>
<li>lb_prop_default
: <a class="el" href="linebreakdata_8c.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdata.c</a>
, <a class="el" href="linebreakdef_8h.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdef.h</a>
<li>lb_prop_English
: <a class="el" href="linebreakdef_8c.html#cb15b3309e7e1c7a48da9535c4e2855f">linebreakdef.c</a>
<li>lb_prop_French
: <a class="el" href="linebreakdef_8c.html#f75c60d3b0f882032e6932da25b9c9fa">linebreakdef.c</a>
<li>lb_prop_German
: <a class="el" href="linebreakdef_8c.html#c39e3f65a289864edb8a38a201481627">linebreakdef.c</a>
<li>lb_prop_index
: <a class="el" href="linebreak_8c.html#5f6f6df49c934134e8fb043ce6230931">linebreak.c</a>
<li>lb_prop_lang_map
: <a class="el" href="linebreakdef_8c.html#82efdfa4115828df9158e183f1a9983d">linebreakdef.c</a>
, <a class="el" href="linebreakdef_8h.html#82efdfa4115828df9158e183f1a9983d">linebreakdef.h</a>
<li>lb_prop_Russian
: <a class="el" href="linebreakdef_8c.html#980ede377c1ded0d24a58fb429f237f4">linebreakdef.c</a>
<li>lb_prop_Spanish
: <a class="el" href="linebreakdef_8c.html#41ee5277b95d453efdfb0e0242e1cb5f">linebreakdef.c</a>
<li>LBP_AI
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3">linebreakdef.h</a>
<li>LBP_AL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281">linebreakdef.h</a>
<li>LBP_B2
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63">linebreakdef.h</a>
<li>LBP_BA
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74">linebreakdef.h</a>
<li>LBP_BB
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d">linebreakdef.h</a>
<li>LBP_BK
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626">linebreakdef.h</a>
<li>LBP_CB
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1">linebreakdef.h</a>
<li>LBP_CL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d">linebreakdef.h</a>
<li>LBP_CM
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1">linebreakdef.h</a>
<li>LBP_CR
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2">linebreakdef.h</a>
<li>LBP_EX
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0">linebreakdef.h</a>
<li>LBP_GL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7">linebreakdef.h</a>
<li>LBP_H2
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc">linebreakdef.h</a>
<li>LBP_H3
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380">linebreakdef.h</a>
<li>LBP_HY
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883">linebreakdef.h</a>
<li>LBP_ID
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55">linebreakdef.h</a>
<li>LBP_IN
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73">linebreakdef.h</a>
<li>LBP_IS
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e">linebreakdef.h</a>
<li>LBP_JL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb">linebreakdef.h</a>
<li>LBP_JT
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf">linebreakdef.h</a>
<li>LBP_JV
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8">linebreakdef.h</a>
<li>LBP_LF
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab">linebreakdef.h</a>
<li>LBP_NL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf">linebreakdef.h</a>
<li>LBP_NS
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0">linebreakdef.h</a>
<li>LBP_NU
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28">linebreakdef.h</a>
<li>LBP_OP
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3">linebreakdef.h</a>
<li>LBP_PO
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba">linebreakdef.h</a>
<li>LBP_PR
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57">linebreakdef.h</a>
<li>LBP_QU
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e">linebreakdef.h</a>
<li>LBP_SA
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769">linebreakdef.h</a>
<li>LBP_SG
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817">linebreakdef.h</a>
<li>LBP_SP
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4">linebreakdef.h</a>
<li>LBP_SY
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097">linebreakdef.h</a>
<li>LBP_Undefined
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723">linebreakdef.h</a>
<li>LBP_WJ
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa">linebreakdef.h</a>
<li>LBP_XX
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0">linebreakdef.h</a>
<li>LBP_ZW
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee">linebreakdef.h</a>
<li>LINEBREAK_ALLOWBREAK
: <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363">linebreak.h</a>
<li>LINEBREAK_INDEX_SIZE
: <a class="el" href="linebreak_8c.html#0ba826ea7bf9cd9038b146bb3572dbf0">linebreak.c</a>
<li>LINEBREAK_INSIDEACHAR
: <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d">linebreak.h</a>
<li>LINEBREAK_MUSTBREAK
: <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77">linebreak.h</a>
<li>LINEBREAK_NOBREAK
: <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc">linebreak.h</a>
<li>LineBreakClass
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">linebreakdef.h</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8dc31d10dc16c2e583ceb6c7e198fc9799">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_r">- r -</a></h3><ul>
<li>resolve_lb_class()
: <a class="el" href="linebreak_8c.html#a42b073302ff3325b087b61c78bf4841">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_s">- s -</a></h3><ul>
<li>set_linebreaks()
: <a class="el" href="linebreak_8c.html#0e86da0f08579bd9bfeb437f5fab15fe">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#0e86da0f08579bd9bfeb437f5fab15fe">linebreakdef.h</a>
<li>set_linebreaks_utf16()
: <a class="el" href="linebreak_8h.html#1d56bce2d32cd986052172638cec43c8">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#1d56bce2d32cd986052172638cec43c8">linebreak.c</a>
<li>set_linebreaks_utf32()
: <a class="el" href="linebreak_8c.html#9fdce33b4ded9d586888c16228ae9e1f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#9fdce33b4ded9d586888c16228ae9e1f">linebreak.h</a>
<li>set_linebreaks_utf8()
: <a class="el" href="linebreak_8h.html#b426e9cf68117faf583a0ed54742cb28">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#b426e9cf68117faf583a0ed54742cb28">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_u">- u -</a></h3><ul>
<li>utf16_t
: <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">linebreak.h</a>
<li>utf32_t
: <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">linebreak.h</a>
<li>utf8_t
: <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">linebreak.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,59 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li class="current"><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>EOS
: <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1">linebreakdef.h</a>
<li>is_line_breakable
: <a class="el" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a">linebreak.h</a>
<li>LINEBREAK_ALLOWBREAK
: <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363">linebreak.h</a>
<li>LINEBREAK_INDEX_SIZE
: <a class="el" href="linebreak_8c.html#0ba826ea7bf9cd9038b146bb3572dbf0">linebreak.c</a>
<li>LINEBREAK_INSIDEACHAR
: <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d">linebreak.h</a>
<li>LINEBREAK_MUSTBREAK
: <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77">linebreak.h</a>
<li>LINEBREAK_NOBREAK
: <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc">linebreak.h</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,146 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="#index_c"><span>c</span></a></li>
<li><a href="#index_d"><span>d</span></a></li>
<li><a href="#index_i"><span>i</span></a></li>
<li><a href="#index_l"><span>l</span></a></li>
<li><a href="#index_p"><span>p</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<h3><a class="anchor" name="index_c">- c -</a></h3><ul>
<li>CM_INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d3e854663bba91b604d4a5f633b62c74a">linebreak.c</a>
<li>CM_PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d9ae64fb627a84203f331f718eaf942c8">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_d">- d -</a></h3><ul>
<li>DIRECT_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d570708fb66d60c437dc3e8c1c784eef6">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_i">- i -</a></h3><ul>
<li>INDIRECT_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d246deb66413ac197d95680d31d4d5436">linebreak.c</a>
</ul>
<h3><a class="anchor" name="index_l">- l -</a></h3><ul>
<li>LBP_AI
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3">linebreakdef.h</a>
<li>LBP_AL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281">linebreakdef.h</a>
<li>LBP_B2
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63">linebreakdef.h</a>
<li>LBP_BA
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74">linebreakdef.h</a>
<li>LBP_BB
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d">linebreakdef.h</a>
<li>LBP_BK
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626">linebreakdef.h</a>
<li>LBP_CB
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1">linebreakdef.h</a>
<li>LBP_CL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d">linebreakdef.h</a>
<li>LBP_CM
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1">linebreakdef.h</a>
<li>LBP_CR
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2">linebreakdef.h</a>
<li>LBP_EX
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0">linebreakdef.h</a>
<li>LBP_GL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7">linebreakdef.h</a>
<li>LBP_H2
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc">linebreakdef.h</a>
<li>LBP_H3
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380">linebreakdef.h</a>
<li>LBP_HY
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883">linebreakdef.h</a>
<li>LBP_ID
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55">linebreakdef.h</a>
<li>LBP_IN
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73">linebreakdef.h</a>
<li>LBP_IS
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e">linebreakdef.h</a>
<li>LBP_JL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb">linebreakdef.h</a>
<li>LBP_JT
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf">linebreakdef.h</a>
<li>LBP_JV
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8">linebreakdef.h</a>
<li>LBP_LF
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab">linebreakdef.h</a>
<li>LBP_NL
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf">linebreakdef.h</a>
<li>LBP_NS
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0">linebreakdef.h</a>
<li>LBP_NU
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28">linebreakdef.h</a>
<li>LBP_OP
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3">linebreakdef.h</a>
<li>LBP_PO
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba">linebreakdef.h</a>
<li>LBP_PR
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57">linebreakdef.h</a>
<li>LBP_QU
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e">linebreakdef.h</a>
<li>LBP_SA
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769">linebreakdef.h</a>
<li>LBP_SG
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817">linebreakdef.h</a>
<li>LBP_SP
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4">linebreakdef.h</a>
<li>LBP_SY
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097">linebreakdef.h</a>
<li>LBP_Undefined
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723">linebreakdef.h</a>
<li>LBP_WJ
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa">linebreakdef.h</a>
<li>LBP_XX
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0">linebreakdef.h</a>
<li>LBP_ZW
: <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee">linebreakdef.h</a>
</ul>
<h3><a class="anchor" name="index_p">- p -</a></h3><ul>
<li>PROHIBITED_BRK
: <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8dc31d10dc16c2e583ceb6c7e198fc9799">linebreak.c</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,82 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
<li><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>get_char_lb_class()
: <a class="el" href="linebreak_8c.html#4eb765d3c50b5be0f694f9dd875bf5bb">linebreak.c</a>
<li>get_char_lb_class_default()
: <a class="el" href="linebreak_8c.html#a8be95ab8e6ee731e55279772b5aec91">linebreak.c</a>
<li>get_char_lb_class_lang()
: <a class="el" href="linebreak_8c.html#41ec5a32a31d007d60ea57caa38a2f3e">linebreak.c</a>
<li>get_lb_prop_lang()
: <a class="el" href="linebreak_8c.html#ec14ede6c9c839852210a729274c7fbc">linebreak.c</a>
<li>get_next_char_utf16()
: <a class="el" href="linebreak_8c.html#1358bfc18e5c58f3bf86d41da9915964">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#1358bfc18e5c58f3bf86d41da9915964">linebreakdef.h</a>
<li>get_next_char_utf32()
: <a class="el" href="linebreak_8c.html#b436dc6eadd1cfe258159ac671798653">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#b436dc6eadd1cfe258159ac671798653">linebreakdef.h</a>
<li>get_next_char_utf8()
: <a class="el" href="linebreak_8c.html#d6e67ab4880e304d6ac730d545027a7f">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#d6e67ab4880e304d6ac730d545027a7f">linebreakdef.h</a>
<li>init_linebreak()
: <a class="el" href="linebreak_8c.html#57c2b88b7e1277cbba23cfffbc782c4f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#57c2b88b7e1277cbba23cfffbc782c4f">linebreak.h</a>
<li>is_breakable()
: <a class="el" href="linebreak_8c.html#22abef1024a6392cf2bd2281fc1bd151">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#22abef1024a6392cf2bd2281fc1bd151">linebreak.h</a>
<li>resolve_lb_class()
: <a class="el" href="linebreak_8c.html#a42b073302ff3325b087b61c78bf4841">linebreak.c</a>
<li>set_linebreaks()
: <a class="el" href="linebreak_8c.html#0e86da0f08579bd9bfeb437f5fab15fe">linebreak.c</a>
, <a class="el" href="linebreakdef_8h.html#0e86da0f08579bd9bfeb437f5fab15fe">linebreakdef.h</a>
<li>set_linebreaks_utf16()
: <a class="el" href="linebreak_8h.html#1d56bce2d32cd986052172638cec43c8">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#1d56bce2d32cd986052172638cec43c8">linebreak.c</a>
<li>set_linebreaks_utf32()
: <a class="el" href="linebreak_8c.html#9fdce33b4ded9d586888c16228ae9e1f">linebreak.c</a>
, <a class="el" href="linebreak_8h.html#9fdce33b4ded9d586888c16228ae9e1f">linebreak.h</a>
<li>set_linebreaks_utf8()
: <a class="el" href="linebreak_8h.html#b426e9cf68117faf583a0ed54742cb28">linebreak.h</a>
, <a class="el" href="linebreak_8c.html#b426e9cf68117faf583a0ed54742cb28">linebreak.c</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,67 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Data Fields</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li class="current"><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="globals.html"><span>All</span></a></li>
<li><a href="globals_func.html"><span>Functions</span></a></li>
<li class="current"><a href="globals_vars.html"><span>Variables</span></a></li>
<li><a href="globals_type.html"><span>Typedefs</span></a></li>
<li><a href="globals_enum.html"><span>Enumerations</span></a></li>
<li><a href="globals_eval.html"><span>Enumerator</span></a></li>
<li><a href="globals_defs.html"><span>Defines</span></a></li>
</ul>
</div>
</div>
<div class="contents">
&nbsp;
<p>
<ul>
<li>baTable
: <a class="el" href="linebreak_8c.html#e334fc5c93e9d07c1f6731774cdc07d4">linebreak.c</a>
<li>lb_prop_Chinese
: <a class="el" href="linebreakdef_8c.html#945fbc26db32e1f4fbce4f6e9ae70189">linebreakdef.c</a>
<li>lb_prop_default
: <a class="el" href="linebreakdata_8c.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdata.c</a>
, <a class="el" href="linebreakdef_8h.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">linebreakdef.h</a>
<li>lb_prop_English
: <a class="el" href="linebreakdef_8c.html#cb15b3309e7e1c7a48da9535c4e2855f">linebreakdef.c</a>
<li>lb_prop_French
: <a class="el" href="linebreakdef_8c.html#f75c60d3b0f882032e6932da25b9c9fa">linebreakdef.c</a>
<li>lb_prop_German
: <a class="el" href="linebreakdef_8c.html#c39e3f65a289864edb8a38a201481627">linebreakdef.c</a>
<li>lb_prop_index
: <a class="el" href="linebreak_8c.html#5f6f6df49c934134e8fb043ce6230931">linebreak.c</a>
<li>lb_prop_lang_map
: <a class="el" href="linebreakdef_8h.html#82efdfa4115828df9158e183f1a9983d">linebreakdef.h</a>
, <a class="el" href="linebreakdef_8c.html#82efdfa4115828df9158e183f1a9983d">linebreakdef.c</a>
<li>lb_prop_Russian
: <a class="el" href="linebreakdef_8c.html#980ede377c1ded0d24a58fb429f237f4">linebreakdef.c</a>
<li>lb_prop_Spanish
: <a class="el" href="linebreakdef_8c.html#41ee5277b95d453efdfb0e0242e1cb5f">linebreakdef.c</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,26 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Main Page</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li class="current"><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>liblinebreak Documentation</h1>
<p>
<h3 align="center">1.2 </h3></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,800 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreak.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreak.c File Reference</h1>Implementation of the line breaking algorithm as described in Unicode Standard Annex 14.
<a href="#_details">More...</a>
<p>
<code>#include &lt;assert.h&gt;</code><br>
<code>#include &lt;stddef.h&gt;</code><br>
<code>#include &lt;string.h&gt;</code><br>
<code>#include &quot;<a class="el" href="linebreak_8h_source.html">linebreak.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct for the second-level index to the line breaking properties. <a href="structLineBreakPropertiesIndex.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#0ba826ea7bf9cd9038b146bb3572dbf0">LINEBREAK_INDEX_SIZE</a>&nbsp;&nbsp;&nbsp;40</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Size of the second-level index to the line breaking properties. <a href="#0ba826ea7bf9cd9038b146bb3572dbf0"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a> { <br>
&nbsp;&nbsp;<a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d570708fb66d60c437dc3e8c1c784eef6">DIRECT_BRK</a>,
<a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d246deb66413ac197d95680d31d4d5436">INDIRECT_BRK</a>,
<a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d3e854663bba91b604d4a5f633b62c74a">CM_INDIRECT_BRK</a>,
<a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d9ae64fb627a84203f331f718eaf942c8">CM_PROHIBITED_BRK</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8dc31d10dc16c2e583ceb6c7e198fc9799">PROHIBITED_BRK</a>
<br>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Enumeration of break actions. <a href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#57c2b88b7e1277cbba23cfffbc782c4f">init_linebreak</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the second-level index to the line breaking properties. <a href="#57c2b88b7e1277cbba23cfffbc782c4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#ec14ede6c9c839852210a729274c7fbc">get_lb_prop_lang</a> (const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the language-specific line breaking properties. <a href="#ec14ede6c9c839852210a729274c7fbc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#4eb765d3c50b5be0f694f9dd875bf5bb">get_char_lb_class</a> (<a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> ch, struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *lbp)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the line breaking class of a character from a line breaking properties array. <a href="#4eb765d3c50b5be0f694f9dd875bf5bb"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a8be95ab8e6ee731e55279772b5aec91">get_char_lb_class_default</a> (<a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> ch)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the line breaking class of a character from the default line breaking properties array. <a href="#a8be95ab8e6ee731e55279772b5aec91"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#41ec5a32a31d007d60ea57caa38a2f3e">get_char_lb_class_lang</a> (<a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> ch, struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *lbpLang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the line breaking class of a character for a specific language. <a href="#41ec5a32a31d007d60ea57caa38a2f3e"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#a42b073302ff3325b087b61c78bf4841">resolve_lb_class</a> (enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> lbc, const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Resolves the line breaking class for certain ambiguous or complicated characters. <a href="#a42b073302ff3325b087b61c78bf4841"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#d6e67ab4880e304d6ac730d545027a7f">get_next_char_utf8</a> (const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-8 sequence. <a href="#d6e67ab4880e304d6ac730d545027a7f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#1358bfc18e5c58f3bf86d41da9915964">get_next_char_utf16</a> (const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-16 sequence. <a href="#1358bfc18e5c58f3bf86d41da9915964"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#b436dc6eadd1cfe258159ac671798653">get_next_char_utf32</a> (const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-32 sequence. <a href="#b436dc6eadd1cfe258159ac671798653"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#0e86da0f08579bd9bfeb437f5fab15fe">set_linebreaks</a> (const void *s, size_t len, const char *lang, char *brks, <a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a> get_next_char)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a generic input string. <a href="#0e86da0f08579bd9bfeb437f5fab15fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#b426e9cf68117faf583a0ed54742cb28">set_linebreaks_utf8</a> (const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-8 input string. <a href="#b426e9cf68117faf583a0ed54742cb28"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#1d56bce2d32cd986052172638cec43c8">set_linebreaks_utf16</a> (const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-16 input string. <a href="#1d56bce2d32cd986052172638cec43c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#9fdce33b4ded9d586888c16228ae9e1f">set_linebreaks_utf32</a> (const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-32 input string. <a href="#9fdce33b4ded9d586888c16228ae9e1f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#22abef1024a6392cf2bd2281fc1bd151">is_breakable</a> (<a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> char1, <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> char2, const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether a line break can occur between two Unicode characters. <a href="#22abef1024a6392cf2bd2281fc1bd151"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static enum <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#e334fc5c93e9d07c1f6731774cdc07d4">baTable</a> [LBP_JT][LBP_JT]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Break action pair table. <a href="#e334fc5c93e9d07c1f6731774cdc07d4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <br class="typebreak">
<a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8c.html#5f6f6df49c934134e8fb043ce6230931">lb_prop_index</a> [LINEBREAK_INDEX_SIZE]</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Second-level index to the line breaking properties. <a href="#5f6f6df49c934134e8fb043ce6230931"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
Implementation of the line breaking algorithm as described in Unicode Standard Annex 14.
<p>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.2, 2009/04/29 </dd></dl>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="0ba826ea7bf9cd9038b146bb3572dbf0"></a><!-- doxytag: member="linebreak.c::LINEBREAK_INDEX_SIZE" ref="0ba826ea7bf9cd9038b146bb3572dbf0" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_INDEX_SIZE&nbsp;&nbsp;&nbsp;40 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Size of the second-level index to the line breaking properties.
<p>
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="440c1a7abb9df5e3fc1d27b9a39e3a8d"></a><!-- doxytag: member="linebreak.c::BreakAction" ref="440c1a7abb9df5e3fc1d27b9a39e3a8d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Enumeration of break actions.
<p>
They are used in the break action pair table below. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="440c1a7abb9df5e3fc1d27b9a39e3a8d570708fb66d60c437dc3e8c1c784eef6"></a><!-- doxytag: member="DIRECT_BRK" ref="440c1a7abb9df5e3fc1d27b9a39e3a8d570708fb66d60c437dc3e8c1c784eef6" args="" -->DIRECT_BRK</em>&nbsp;</td><td>
Direct break opportunity. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="440c1a7abb9df5e3fc1d27b9a39e3a8d246deb66413ac197d95680d31d4d5436"></a><!-- doxytag: member="INDIRECT_BRK" ref="440c1a7abb9df5e3fc1d27b9a39e3a8d246deb66413ac197d95680d31d4d5436" args="" -->INDIRECT_BRK</em>&nbsp;</td><td>
Indirect break opportunity. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="440c1a7abb9df5e3fc1d27b9a39e3a8d3e854663bba91b604d4a5f633b62c74a"></a><!-- doxytag: member="CM_INDIRECT_BRK" ref="440c1a7abb9df5e3fc1d27b9a39e3a8d3e854663bba91b604d4a5f633b62c74a" args="" -->CM_INDIRECT_BRK</em>&nbsp;</td><td>
Indirect break opportunity for combining marks. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="440c1a7abb9df5e3fc1d27b9a39e3a8d9ae64fb627a84203f331f718eaf942c8"></a><!-- doxytag: member="CM_PROHIBITED_BRK" ref="440c1a7abb9df5e3fc1d27b9a39e3a8d9ae64fb627a84203f331f718eaf942c8" args="" -->CM_PROHIBITED_BRK</em>&nbsp;</td><td>
Prohibited break for combining marks. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="440c1a7abb9df5e3fc1d27b9a39e3a8dc31d10dc16c2e583ceb6c7e198fc9799"></a><!-- doxytag: member="PROHIBITED_BRK" ref="440c1a7abb9df5e3fc1d27b9a39e3a8dc31d10dc16c2e583ceb6c7e198fc9799" args="" -->PROHIBITED_BRK</em>&nbsp;</td><td>
Prohibited break. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="4eb765d3c50b5be0f694f9dd875bf5bb"></a><!-- doxytag: member="linebreak.c::get_char_lb_class" ref="4eb765d3c50b5be0f694f9dd875bf5bb" args="(utf32_t ch, struct LineBreakProperties *lbp)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> get_char_lb_class </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>ch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td>
<td class="paramname"> <em>lbp</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the line breaking class of a character from a line breaking properties array.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>character to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lbp</em>&nbsp;</td><td>pointer to the line breaking properties array </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the line breaking class if found; <code>LBP_XX</code> otherwise </dd></dl>
</div>
</div><p>
<a class="anchor" name="a8be95ab8e6ee731e55279772b5aec91"></a><!-- doxytag: member="linebreak.c::get_char_lb_class_default" ref="a8be95ab8e6ee731e55279772b5aec91" args="(utf32_t ch)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> get_char_lb_class_default </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>ch</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the line breaking class of a character from the default line breaking properties array.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>character to check </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the line breaking class if found; <code>LBP_XX</code> otherwise </dd></dl>
</div>
</div><p>
<a class="anchor" name="41ec5a32a31d007d60ea57caa38a2f3e"></a><!-- doxytag: member="linebreak.c::get_char_lb_class_lang" ref="41ec5a32a31d007d60ea57caa38a2f3e" args="(utf32_t ch, struct LineBreakProperties *lbpLang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> get_char_lb_class_lang </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>ch</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td>
<td class="paramname"> <em>lbpLang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the line breaking class of a character for a specific language.
<p>
This function will check the language-specific data first, and then the default data if there is no language-specific property available for the character.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>ch</em>&nbsp;</td><td>character to check </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lbpLang</em>&nbsp;</td><td>pointer to the language-specific line breaking properties array </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the line breaking class if found; <code>LBP_XX</code> otherwise </dd></dl>
</div>
</div><p>
<a class="anchor" name="ec14ede6c9c839852210a729274c7fbc"></a><!-- doxytag: member="linebreak.c::get_lb_prop_lang" ref="ec14ede6c9c839852210a729274c7fbc" args="(const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>* get_lb_prop_lang </td>
<td>(</td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em> </td>
<td>&nbsp;)&nbsp;</td>
<td><code> [static, read]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the language-specific line breaking properties.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the text </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>pointer to the language-specific line breaking properties array if found; <code>NULL</code> otherwise </dd></dl>
</div>
</div><p>
<a class="anchor" name="1358bfc18e5c58f3bf86d41da9915964"></a><!-- doxytag: member="linebreak.c::get_next_char_utf16" ref="1358bfc18e5c58f3bf86d41da9915964" args="(const utf16_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> get_next_char_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the next Unicode character in a UTF-16 sequence.
<p>
The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-16 surrogate pair.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in words </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered</dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>This function will be prefixed with <code>lb_</code> in the future. </dd></dl>
</div>
</div><p>
<a class="anchor" name="b436dc6eadd1cfe258159ac671798653"></a><!-- doxytag: member="linebreak.c::get_next_char_utf32" ref="b436dc6eadd1cfe258159ac671798653" args="(const utf32_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> get_next_char_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the next Unicode character in a UTF-32 sequence.
<p>
The index will be advanced to the next character.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in dwords </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered</dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>This function will be prefixed with <code>lb_</code> in the future. </dd></dl>
</div>
</div><p>
<a class="anchor" name="d6e67ab4880e304d6ac730d545027a7f"></a><!-- doxytag: member="linebreak.c::get_next_char_utf8" ref="d6e67ab4880e304d6ac730d545027a7f" args="(const utf8_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> get_next_char_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the next Unicode character in a UTF-8 sequence.
<p>
The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-8 sequence.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in bytes </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered</dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This function will be prefixed with <code>lb_</code> in the future. </dd></dl>
</div>
</div><p>
<a class="anchor" name="57c2b88b7e1277cbba23cfffbc782c4f"></a><!-- doxytag: member="linebreak.c::init_linebreak" ref="57c2b88b7e1277cbba23cfffbc782c4f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void init_linebreak </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes the second-level index to the line breaking properties.
<p>
If it is not called, the performance of <a class="el" href="linebreak_8c.html#41ec5a32a31d007d60ea57caa38a2f3e" title="Gets the line breaking class of a character for a specific language.">get_char_lb_class_lang</a> (and thus the main functionality) can be pretty bad, especially for big code points like those of Chinese.
</div>
</div><p>
<a class="anchor" name="22abef1024a6392cf2bd2281fc1bd151"></a><!-- doxytag: member="linebreak.c::is_breakable" ref="22abef1024a6392cf2bd2281fc1bd151" args="(utf32_t char1, utf32_t char2, const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int is_breakable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Tells whether a line break can occur between two Unicode characters.
<p>
This is a wrapper function to expose a simple interface. Generally speaking, it is better to use <a class="el" href="linebreak_8h.html#9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a> instead, since complicated cases involving combining marks, spaces, etc. cannot be correctly processed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>char1</em>&nbsp;</td><td>the first Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>char2</em>&nbsp;</td><td>the second Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>one of <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a></dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>This function will be renamed to <a class="el" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a" title="Replacement form for the deprecated function is_breakable.">is_line_breakable</a> in the future. The name is already defined as a macro&mdash;please use it. </dd></dl>
</div>
</div><p>
<a class="anchor" name="a42b073302ff3325b087b61c78bf4841"></a><!-- doxytag: member="linebreak.c::resolve_lb_class" ref="a42b073302ff3325b087b61c78bf4841" args="(enum LineBreakClass lbc, const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">static enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> resolve_lb_class </td>
<td>(</td>
<td class="paramtype">enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td>
<td class="paramname"> <em>lbc</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td><code> [static]</code></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Resolves the line breaking class for certain ambiguous or complicated characters.
<p>
They are treated in a simplistic way in this implementation.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>lbc</em>&nbsp;</td><td>line breaking class to resolve </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the text </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the resolved line breaking class </dd></dl>
</div>
</div><p>
<a class="anchor" name="0e86da0f08579bd9bfeb437f5fab15fe"></a><!-- doxytag: member="linebreak.c::set_linebreaks" ref="0e86da0f08579bd9bfeb437f5fab15fe" args="(const void *s, size_t len, const char *lang, char *brks, get_next_char_t get_next_char)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks </td>
<td>(</td>
<td class="paramtype">const void *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a>&nbsp;</td>
<td class="paramname"> <em>get_next_char</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a generic input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>get_next_char</em>&nbsp;</td><td>function to get the next UTF-32 character </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="1d56bce2d32cd986052172638cec43c8"></a><!-- doxytag: member="linebreak.c::set_linebreaks_utf16" ref="1d56bce2d32cd986052172638cec43c8" args="(const utf16_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a UTF-16 input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="9fdce33b4ded9d586888c16228ae9e1f"></a><!-- doxytag: member="linebreak.c::set_linebreaks_utf32" ref="9fdce33b4ded9d586888c16228ae9e1f" args="(const utf32_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a UTF-32 input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="b426e9cf68117faf583a0ed54742cb28"></a><!-- doxytag: member="linebreak.c::set_linebreaks_utf8" ref="b426e9cf68117faf583a0ed54742cb28" args="(const utf8_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a UTF-8 input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="e334fc5c93e9d07c1f6731774cdc07d4"></a><!-- doxytag: member="linebreak.c::baTable" ref="e334fc5c93e9d07c1f6731774cdc07d4" args="[LBP_JT][LBP_JT]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreak_8c.html#440c1a7abb9df5e3fc1d27b9a39e3a8d">BreakAction</a> <a class="el" href="linebreak_8c.html#e334fc5c93e9d07c1f6731774cdc07d4">baTable</a>[LBP_JT][LBP_JT]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Break action pair table.
<p>
This is a direct mapping of Table 2 of Unicode Standard Annex 14, Revision 22.
</div>
</div><p>
<a class="anchor" name="5f6f6df49c934134e8fb043ce6230931"></a><!-- doxytag: member="linebreak.c::lb_prop_index" ref="5f6f6df49c934134e8fb043ce6230931" args="[LINEBREAK_INDEX_SIZE]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakPropertiesIndex.html">LineBreakPropertiesIndex</a> <a class="el" href="linebreak_8c.html#5f6f6df49c934134e8fb043ce6230931">lb_prop_index</a>[LINEBREAK_INDEX_SIZE]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment">
{
{ 0xFFFFFFFF, <a class="code" href="linebreakdata_8c.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a" title="Default line breaking properties as from the Unicode Web site.">lb_prop_default</a> }
}
</pre></div>Second-level index to the line breaking properties.
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,457 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreak.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreak.h File Reference</h1>Header file for the line breaking algorithm.
<a href="#_details">More...</a>
<p>
<code>#include &lt;stddef.h&gt;</code><br>
<p>
<a href="linebreak_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77">LINEBREAK_MUSTBREAK</a>&nbsp;&nbsp;&nbsp;0</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Break is mandatory. <a href="#367d64258fd90864a467687cd1736b77"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363">LINEBREAK_ALLOWBREAK</a>&nbsp;&nbsp;&nbsp;1</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Break is allowed. <a href="#229f34b0b72ccb2e53d0936a1e61a363"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc">LINEBREAK_NOBREAK</a>&nbsp;&nbsp;&nbsp;2</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">No break is possible. <a href="#dd176a107633817050bedf6eb4f491cc"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d">LINEBREAK_INSIDEACHAR</a>&nbsp;&nbsp;&nbsp;3</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">A UTF-8/16 sequence is unfinished. <a href="#5adf3d4831b89cb3e40e9bd31a73a39d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a">is_line_breakable</a>&nbsp;&nbsp;&nbsp;is_breakable</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Replacement form for the deprecated function <a class="el" href="linebreak_8h.html#22abef1024a6392cf2bd2281fc1bd151" title="Tells whether a line break can occur between two Unicode characters.">is_breakable</a>. <a href="#9d54c1b18d4fc526a66ef64d9de9c63a"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned char&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for UTF-8 data points. <a href="#6103b2105588f239c593e779e605038a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned short&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for UTF-16 data points. <a href="#4dce96cad338d9281612277b2d80950c"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef unsigned int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Type for UTF-32 data points. <a href="#4f775bae0642c213be2c526018283c25"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#57c2b88b7e1277cbba23cfffbc782c4f">init_linebreak</a> (void)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Initializes the second-level index to the line breaking properties. <a href="#57c2b88b7e1277cbba23cfffbc782c4f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">int&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#22abef1024a6392cf2bd2281fc1bd151">is_breakable</a> (<a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> char1, <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> char2, const char *lang)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Tells whether a line break can occur between two Unicode characters. <a href="#22abef1024a6392cf2bd2281fc1bd151"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#b426e9cf68117faf583a0ed54742cb28">set_linebreaks_utf8</a> (const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-8 input string. <a href="#b426e9cf68117faf583a0ed54742cb28"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#1d56bce2d32cd986052172638cec43c8">set_linebreaks_utf16</a> (const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-16 input string. <a href="#1d56bce2d32cd986052172638cec43c8"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreak_8h.html#9fdce33b4ded9d586888c16228ae9e1f">set_linebreaks_utf32</a> (const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, const char *lang, char *brks)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a UTF-32 input string. <a href="#9fdce33b4ded9d586888c16228ae9e1f"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
Header file for the line breaking algorithm.
<p>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.2, 2009/05/03 </dd></dl>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="9d54c1b18d4fc526a66ef64d9de9c63a"></a><!-- doxytag: member="linebreak.h::is_line_breakable" ref="9d54c1b18d4fc526a66ef64d9de9c63a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define is_line_breakable&nbsp;&nbsp;&nbsp;is_breakable </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Replacement form for the deprecated function <a class="el" href="linebreak_8h.html#22abef1024a6392cf2bd2281fc1bd151" title="Tells whether a line break can occur between two Unicode characters.">is_breakable</a>.
<p>
Please use the macro for the present moment, before the function is renamed. <p>
This is a wrapper function to expose a simple interface. Generally speaking, it is better to use <a class="el" href="linebreak_8h.html#9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a> instead, since complicated cases involving combining marks, spaces, etc. cannot be correctly processed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>char1</em>&nbsp;</td><td>the first Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>char2</em>&nbsp;</td><td>the second Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>one of <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </dd></dl>
</div>
</div><p>
<a class="anchor" name="229f34b0b72ccb2e53d0936a1e61a363"></a><!-- doxytag: member="linebreak.h::LINEBREAK_ALLOWBREAK" ref="229f34b0b72ccb2e53d0936a1e61a363" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_ALLOWBREAK&nbsp;&nbsp;&nbsp;1 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Break is allowed.
<p>
</div>
</div><p>
<a class="anchor" name="5adf3d4831b89cb3e40e9bd31a73a39d"></a><!-- doxytag: member="linebreak.h::LINEBREAK_INSIDEACHAR" ref="5adf3d4831b89cb3e40e9bd31a73a39d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_INSIDEACHAR&nbsp;&nbsp;&nbsp;3 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
A UTF-8/16 sequence is unfinished.
<p>
</div>
</div><p>
<a class="anchor" name="367d64258fd90864a467687cd1736b77"></a><!-- doxytag: member="linebreak.h::LINEBREAK_MUSTBREAK" ref="367d64258fd90864a467687cd1736b77" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_MUSTBREAK&nbsp;&nbsp;&nbsp;0 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Break is mandatory.
<p>
</div>
</div><p>
<a class="anchor" name="dd176a107633817050bedf6eb4f491cc"></a><!-- doxytag: member="linebreak.h::LINEBREAK_NOBREAK" ref="dd176a107633817050bedf6eb4f491cc" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define LINEBREAK_NOBREAK&nbsp;&nbsp;&nbsp;2 </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
No break is possible.
<p>
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="4dce96cad338d9281612277b2d80950c"></a><!-- doxytag: member="linebreak.h::utf16_t" ref="4dce96cad338d9281612277b2d80950c" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned short <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Type for UTF-16 data points.
<p>
</div>
</div><p>
<a class="anchor" name="4f775bae0642c213be2c526018283c25"></a><!-- doxytag: member="linebreak.h::utf32_t" ref="4f775bae0642c213be2c526018283c25" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned int <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Type for UTF-32 data points.
<p>
</div>
</div><p>
<a class="anchor" name="6103b2105588f239c593e779e605038a"></a><!-- doxytag: member="linebreak.h::utf8_t" ref="6103b2105588f239c593e779e605038a" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef unsigned char <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Type for UTF-8 data points.
<p>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="57c2b88b7e1277cbba23cfffbc782c4f"></a><!-- doxytag: member="linebreak.h::init_linebreak" ref="57c2b88b7e1277cbba23cfffbc782c4f" args="(void)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void init_linebreak </td>
<td>(</td>
<td class="paramtype">void&nbsp;</td>
<td class="paramname"> </td>
<td>&nbsp;)&nbsp;</td>
<td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Initializes the second-level index to the line breaking properties.
<p>
If it is not called, the performance of <a class="el" href="linebreak_8c.html#41ec5a32a31d007d60ea57caa38a2f3e" title="Gets the line breaking class of a character for a specific language.">get_char_lb_class_lang</a> (and thus the main functionality) can be pretty bad, especially for big code points like those of Chinese.
</div>
</div><p>
<a class="anchor" name="22abef1024a6392cf2bd2281fc1bd151"></a><!-- doxytag: member="linebreak.h::is_breakable" ref="22abef1024a6392cf2bd2281fc1bd151" args="(utf32_t char1, utf32_t char2, const char *lang)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">int is_breakable </td>
<td>(</td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char1</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td>
<td class="paramname"> <em>char2</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Tells whether a line break can occur between two Unicode characters.
<p>
This is a wrapper function to expose a simple interface. Generally speaking, it is better to use <a class="el" href="linebreak_8h.html#9fdce33b4ded9d586888c16228ae9e1f" title="Sets the line breaking information for a UTF-32 input string.">set_linebreaks_utf32</a> instead, since complicated cases involving combining marks, spaces, etc. cannot be correctly processed.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"></td><td valign="top"><em>char1</em>&nbsp;</td><td>the first Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>char2</em>&nbsp;</td><td>the second Unicode character </td></tr>
<tr><td valign="top"></td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>one of <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a></dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>This function will be renamed to <a class="el" href="linebreak_8h.html#9d54c1b18d4fc526a66ef64d9de9c63a" title="Replacement form for the deprecated function is_breakable.">is_line_breakable</a> in the future. The name is already defined as a macro&mdash;please use it. </dd></dl>
</div>
</div><p>
<a class="anchor" name="1d56bce2d32cd986052172638cec43c8"></a><!-- doxytag: member="linebreak.h::set_linebreaks_utf16" ref="1d56bce2d32cd986052172638cec43c8" args="(const utf16_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a UTF-16 input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="9fdce33b4ded9d586888c16228ae9e1f"></a><!-- doxytag: member="linebreak.h::set_linebreaks_utf32" ref="9fdce33b4ded9d586888c16228ae9e1f" args="(const utf32_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a UTF-32 input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dl>
</div>
</div><p>
<a class="anchor" name="b426e9cf68117faf583a0ed54742cb28"></a><!-- doxytag: member="linebreak.h::set_linebreaks_utf8" ref="b426e9cf68117faf583a0ed54742cb28" args="(const utf8_t *s, size_t len, const char *lang, char *brks)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a UTF-8 input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
</table>
</dl>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,57 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreakdata.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreakdata.c File Reference</h1><code>#include &quot;<a class="el" href="linebreak_8h_source.html">linebreak.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdata_8c.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default line breaking properties as from the Unicode Web site. <a href="#bbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><br></td></tr>
</table>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="bbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><!-- doxytag: member="linebreakdata.c::lb_prop_default" ref="bbd8c6b6e4e1c8ad2da83f23f81ac29a" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8h.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a>[] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Default line breaking properties as from the Unicode Web site.
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,242 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreakdef.c File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreakdef.c File Reference</h1>Definition of language-specific data.
<a href="#_details">More...</a>
<p>
<code>#include &quot;<a class="el" href="linebreak_8h_source.html">linebreak.h</a>&quot;</code><br>
<code>#include &quot;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&quot;</code><br>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#cb15b3309e7e1c7a48da9535c4e2855f">lb_prop_English</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">English-specifc data over the default Unicode rules. <a href="#cb15b3309e7e1c7a48da9535c4e2855f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#c39e3f65a289864edb8a38a201481627">lb_prop_German</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">German-specifc data over the default Unicode rules. <a href="#c39e3f65a289864edb8a38a201481627"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#41ee5277b95d453efdfb0e0242e1cb5f">lb_prop_Spanish</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Spanish-specifc data over the default Unicode rules. <a href="#41ee5277b95d453efdfb0e0242e1cb5f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#f75c60d3b0f882032e6932da25b9c9fa">lb_prop_French</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">French-specifc data over the default Unicode rules. <a href="#f75c60d3b0f882032e6932da25b9c9fa"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#980ede377c1ded0d24a58fb429f237f4">lb_prop_Russian</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Russian-specifc data over the default Unicode rules. <a href="#980ede377c1ded0d24a58fb429f237f4"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">static struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#945fbc26db32e1f4fbce4f6e9ae70189">lb_prop_Chinese</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Chinese-specifc data over the default Unicode rules. <a href="#945fbc26db32e1f4fbce4f6e9ae70189"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8c.html#82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Association data of language-specific line breaking properties with language names. <a href="#82efdfa4115828df9158e183f1a9983d"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
Definition of language-specific data.
<p>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.2, 2009/04/29 </dd></dl>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="945fbc26db32e1f4fbce4f6e9ae70189"></a><!-- doxytag: member="linebreakdef.c::lb_prop_Chinese" ref="945fbc26db32e1f4fbce4f6e9ae70189" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#945fbc26db32e1f4fbce4f6e9ae70189">lb_prop_Chinese</a>[]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x2019, 0x2019, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>Chinese-specifc data over the default Unicode rules.
<p>
</div>
</div><p>
<a class="anchor" name="cb15b3309e7e1c7a48da9535c4e2855f"></a><!-- doxytag: member="linebreakdef.c::lb_prop_English" ref="cb15b3309e7e1c7a48da9535c4e2855f" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#cb15b3309e7e1c7a48da9535c4e2855f">lb_prop_English</a>[]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>English-specifc data over the default Unicode rules.
<p>
</div>
</div><p>
<a class="anchor" name="f75c60d3b0f882032e6932da25b9c9fa"></a><!-- doxytag: member="linebreakdef.c::lb_prop_French" ref="f75c60d3b0f882032e6932da25b9c9fa" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#f75c60d3b0f882032e6932da25b9c9fa">lb_prop_French</a>[]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2039, 0x2039, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x203A, 0x203A, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>French-specifc data over the default Unicode rules.
<p>
</div>
</div><p>
<a class="anchor" name="c39e3f65a289864edb8a38a201481627"></a><!-- doxytag: member="linebreakdef.c::lb_prop_German" ref="c39e3f65a289864edb8a38a201481627" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#c39e3f65a289864edb8a38a201481627">lb_prop_German</a>[]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2039, 0x2039, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x203A, 0x203A, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>German-specifc data over the default Unicode rules.
<p>
</div>
</div><p>
<a class="anchor" name="82efdfa4115828df9158e183f1a9983d"></a><!-- doxytag: member="linebreakdef.c::lb_prop_lang_map" ref="82efdfa4115828df9158e183f1a9983d" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a> <a class="el" href="linebreakdef_8h.html#82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a>[] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ <span class="stringliteral">"en"</span>, 2, <a class="code" href="linebreakdef_8c.html#cb15b3309e7e1c7a48da9535c4e2855f" title="English-specifc data over the default Unicode rules.">lb_prop_English</a> },
{ <span class="stringliteral">"de"</span>, 2, <a class="code" href="linebreakdef_8c.html#c39e3f65a289864edb8a38a201481627" title="German-specifc data over the default Unicode rules.">lb_prop_German</a> },
{ <span class="stringliteral">"es"</span>, 2, <a class="code" href="linebreakdef_8c.html#41ee5277b95d453efdfb0e0242e1cb5f" title="Spanish-specifc data over the default Unicode rules.">lb_prop_Spanish</a> },
{ <span class="stringliteral">"fr"</span>, 2, <a class="code" href="linebreakdef_8c.html#f75c60d3b0f882032e6932da25b9c9fa" title="French-specifc data over the default Unicode rules.">lb_prop_French</a> },
{ <span class="stringliteral">"ru"</span>, 2, <a class="code" href="linebreakdef_8c.html#980ede377c1ded0d24a58fb429f237f4" title="Russian-specifc data over the default Unicode rules.">lb_prop_Russian</a> },
{ <span class="stringliteral">"zh"</span>, 2, <a class="code" href="linebreakdef_8c.html#945fbc26db32e1f4fbce4f6e9ae70189" title="Chinese-specifc data over the default Unicode rules.">lb_prop_Chinese</a> },
{ NULL, 0, NULL }
}
</pre></div>Association data of language-specific line breaking properties with language names.
<p>
This is the definition for the static data in this file. If you want more flexibility, or do not need the data here, you may want to redefine <em>lb_prop_lang_map</em> in your C source file.
</div>
</div><p>
<a class="anchor" name="980ede377c1ded0d24a58fb429f237f4"></a><!-- doxytag: member="linebreakdef.c::lb_prop_Russian" ref="980ede377c1ded0d24a58fb429f237f4" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#980ede377c1ded0d24a58fb429f237f4">lb_prop_Russian</a>[]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>Russian-specifc data over the default Unicode rules.
<p>
</div>
</div><p>
<a class="anchor" name="41ee5277b95d453efdfb0e0242e1cb5f"></a><!-- doxytag: member="linebreakdef.c::lb_prop_Spanish" ref="41ee5277b95d453efdfb0e0242e1cb5f" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8c.html#41ee5277b95d453efdfb0e0242e1cb5f">lb_prop_Spanish</a>[]<code> [static]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
<b>Initial value:</b><div class="fragment"><pre class="fragment"> {
{ 0x00AB, 0x00AB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x00BB, 0x00BB, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2018, 0x2018, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201C, 0x201C, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x201D, 0x201D, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0x2039, 0x2039, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a> },
{ 0x203A, 0x203A, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a> },
{ 0, 0, <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a> }
}
</pre></div>Spanish-specifc data over the default Unicode rules.
<p>
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,497 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreakdef.h File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>linebreakdef.h File Reference</h1>Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm.
<a href="#_details">More...</a>
<p>
<p>
<a href="linebreakdef_8h_source.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html">LineBreakProperties</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct for entries of line break properties. <a href="structLineBreakProperties.html#_details">More...</a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Struct for association of language-specific line breaking properties with language names. <a href="structLineBreakPropertiesLang.html#_details">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Defines</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">#define&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1">EOS</a>&nbsp;&nbsp;&nbsp;0xFFFF</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Constant value to mark the end of string. <a href="#adbbc7b02d94a4c18646813ac8d7dec1"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Typedefs</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>(*&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a> )(const void *, size_t, size_t *)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Abstract function interface for <a class="el" href="linebreakdef_8h.html#d6e67ab4880e304d6ac730d545027a7f" title="Gets the next Unicode character in a UTF-8 sequence.">get_next_char_utf8</a>, <a class="el" href="linebreakdef_8h.html#1358bfc18e5c58f3bf86d41da9915964" title="Gets the next Unicode character in a UTF-16 sequence.">get_next_char_utf16</a>, and <a class="el" href="linebreakdef_8h.html#b436dc6eadd1cfe258159ac671798653" title="Gets the next Unicode character in a UTF-32 sequence.">get_next_char_utf32</a>. <a href="#d76de249e1f8334f318f9ee97ccc77c3"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Enumerations</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum &nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> { <br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723">LBP_Undefined</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3">LBP_OP</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d">LBP_CL</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e">LBP_QU</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7">LBP_GL</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0">LBP_NS</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0">LBP_EX</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097">LBP_SY</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e">LBP_IS</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57">LBP_PR</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba">LBP_PO</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28">LBP_NU</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281">LBP_AL</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55">LBP_ID</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73">LBP_IN</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883">LBP_HY</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74">LBP_BA</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d">LBP_BB</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63">LBP_B2</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee">LBP_ZW</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1">LBP_CM</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa">LBP_WJ</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc">LBP_H2</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380">LBP_H3</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb">LBP_JL</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8">LBP_JV</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf">LBP_JT</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3">LBP_AI</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626">LBP_BK</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1">LBP_CB</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2">LBP_CR</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab">LBP_LF</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf">LBP_NL</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769">LBP_SA</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817">LBP_SG</a>,
<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4">LBP_SP</a>,
<br>
&nbsp;&nbsp;<a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0">LBP_XX</a>
<br>
}</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Line break classes. <a href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">More...</a><br></td></tr>
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">void&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#0e86da0f08579bd9bfeb437f5fab15fe">set_linebreaks</a> (const void *s, size_t len, const char *lang, char *brks, <a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a> get_next_char)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Sets the line breaking information for a generic input string. <a href="#0e86da0f08579bd9bfeb437f5fab15fe"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#d6e67ab4880e304d6ac730d545027a7f">get_next_char_utf8</a> (const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-8 sequence. <a href="#d6e67ab4880e304d6ac730d545027a7f"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#1358bfc18e5c58f3bf86d41da9915964">get_next_char_utf16</a> (const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-16 sequence. <a href="#1358bfc18e5c58f3bf86d41da9915964"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#b436dc6eadd1cfe258159ac671798653">get_next_char_utf32</a> (const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *s, size_t len, size_t *ip)</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Gets the next Unicode character in a UTF-32 sequence. <a href="#b436dc6eadd1cfe258159ac671798653"></a><br></td></tr>
<tr><td colspan="2"><br><h2>Variables</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Default line breaking properties as from the Unicode Web site. <a href="#bbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="linebreakdef_8h.html#82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a> []</td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Association data of language-specific line breaking properties with language names. <a href="#82efdfa4115828df9158e183f1a9983d"></a><br></td></tr>
</table>
<hr><h2>Detailed Description</h2>
Definitions of internal data structures, declarations of global variables, and function prototypes for the line breaking algorithm.
<p>
<dl class="version" compact><dt><b>Version:</b></dt><dd>1.2, 2009/05/03 </dd></dl>
<dl class="author" compact><dt><b>Author:</b></dt><dd>Wu Yongwei </dd></dl>
<hr><h2>Define Documentation</h2>
<a class="anchor" name="adbbc7b02d94a4c18646813ac8d7dec1"></a><!-- doxytag: member="linebreakdef.h::EOS" ref="adbbc7b02d94a4c18646813ac8d7dec1" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">#define EOS&nbsp;&nbsp;&nbsp;0xFFFF </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Constant value to mark the end of string.
<p>
It is not a valid Unicode character.
</div>
</div><p>
<hr><h2>Typedef Documentation</h2>
<a class="anchor" name="d76de249e1f8334f318f9ee97ccc77c3"></a><!-- doxytag: member="linebreakdef.h::get_next_char_t" ref="d76de249e1f8334f318f9ee97ccc77c3" args=")(const void *, size_t, size_t *)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">typedef <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>(* <a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a>)(const void *, size_t, size_t *) </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Abstract function interface for <a class="el" href="linebreakdef_8h.html#d6e67ab4880e304d6ac730d545027a7f" title="Gets the next Unicode character in a UTF-8 sequence.">get_next_char_utf8</a>, <a class="el" href="linebreakdef_8h.html#1358bfc18e5c58f3bf86d41da9915964" title="Gets the next Unicode character in a UTF-16 sequence.">get_next_char_utf16</a>, and <a class="el" href="linebreakdef_8h.html#b436dc6eadd1cfe258159ac671798653" title="Gets the next Unicode character in a UTF-32 sequence.">get_next_char_utf32</a>.
<p>
</div>
</div><p>
<hr><h2>Enumeration Type Documentation</h2>
<a class="anchor" name="884b6565d87a81bbf549980bbdd04070"></a><!-- doxytag: member="linebreakdef.h::LineBreakClass" ref="884b6565d87a81bbf549980bbdd04070" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Line break classes.
<p>
This is a direct mapping of Table 1 of Unicode Standard Annex 14, Revision 19. <dl compact><dt><b>Enumerator: </b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723"></a><!-- doxytag: member="LBP_Undefined" ref="884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" args="" -->LBP_Undefined</em>&nbsp;</td><td>
Undefined. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3"></a><!-- doxytag: member="LBP_OP" ref="884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" args="" -->LBP_OP</em>&nbsp;</td><td>
Opening punctuation. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d"></a><!-- doxytag: member="LBP_CL" ref="884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" args="" -->LBP_CL</em>&nbsp;</td><td>
Closing punctuation. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e"></a><!-- doxytag: member="LBP_QU" ref="884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e" args="" -->LBP_QU</em>&nbsp;</td><td>
Ambiguous quotation. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7"></a><!-- doxytag: member="LBP_GL" ref="884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7" args="" -->LBP_GL</em>&nbsp;</td><td>
Glue. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0"></a><!-- doxytag: member="LBP_NS" ref="884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0" args="" -->LBP_NS</em>&nbsp;</td><td>
Non-starters. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0"></a><!-- doxytag: member="LBP_EX" ref="884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0" args="" -->LBP_EX</em>&nbsp;</td><td>
Exclamation/Interrogation. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097"></a><!-- doxytag: member="LBP_SY" ref="884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097" args="" -->LBP_SY</em>&nbsp;</td><td>
Symbols allowing break after. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e"></a><!-- doxytag: member="LBP_IS" ref="884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e" args="" -->LBP_IS</em>&nbsp;</td><td>
Infix separator. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57"></a><!-- doxytag: member="LBP_PR" ref="884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57" args="" -->LBP_PR</em>&nbsp;</td><td>
Prefix. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba"></a><!-- doxytag: member="LBP_PO" ref="884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba" args="" -->LBP_PO</em>&nbsp;</td><td>
Postfix. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28"></a><!-- doxytag: member="LBP_NU" ref="884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28" args="" -->LBP_NU</em>&nbsp;</td><td>
Numeric. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281"></a><!-- doxytag: member="LBP_AL" ref="884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281" args="" -->LBP_AL</em>&nbsp;</td><td>
Alphabetic. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55"></a><!-- doxytag: member="LBP_ID" ref="884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55" args="" -->LBP_ID</em>&nbsp;</td><td>
Ideographic. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73"></a><!-- doxytag: member="LBP_IN" ref="884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73" args="" -->LBP_IN</em>&nbsp;</td><td>
Inseparable characters. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883"></a><!-- doxytag: member="LBP_HY" ref="884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883" args="" -->LBP_HY</em>&nbsp;</td><td>
Hyphen. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74"></a><!-- doxytag: member="LBP_BA" ref="884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74" args="" -->LBP_BA</em>&nbsp;</td><td>
Break after. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d"></a><!-- doxytag: member="LBP_BB" ref="884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d" args="" -->LBP_BB</em>&nbsp;</td><td>
Break before. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63"></a><!-- doxytag: member="LBP_B2" ref="884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63" args="" -->LBP_B2</em>&nbsp;</td><td>
Break on either side (but not pair). </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee"></a><!-- doxytag: member="LBP_ZW" ref="884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee" args="" -->LBP_ZW</em>&nbsp;</td><td>
Zero-width space. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1"></a><!-- doxytag: member="LBP_CM" ref="884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1" args="" -->LBP_CM</em>&nbsp;</td><td>
Combining marks. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa"></a><!-- doxytag: member="LBP_WJ" ref="884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa" args="" -->LBP_WJ</em>&nbsp;</td><td>
Word joiner. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc"></a><!-- doxytag: member="LBP_H2" ref="884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc" args="" -->LBP_H2</em>&nbsp;</td><td>
Hangul LV. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380"></a><!-- doxytag: member="LBP_H3" ref="884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380" args="" -->LBP_H3</em>&nbsp;</td><td>
Hangul LVT. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb"></a><!-- doxytag: member="LBP_JL" ref="884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb" args="" -->LBP_JL</em>&nbsp;</td><td>
Hangul L Jamo. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8"></a><!-- doxytag: member="LBP_JV" ref="884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8" args="" -->LBP_JV</em>&nbsp;</td><td>
Hangul V Jamo. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf"></a><!-- doxytag: member="LBP_JT" ref="884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf" args="" -->LBP_JT</em>&nbsp;</td><td>
Hangul T Jamo. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3"></a><!-- doxytag: member="LBP_AI" ref="884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3" args="" -->LBP_AI</em>&nbsp;</td><td>
Ambiguous (alphabetic or ideograph). </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626"></a><!-- doxytag: member="LBP_BK" ref="884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626" args="" -->LBP_BK</em>&nbsp;</td><td>
Break (mandatory). </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1"></a><!-- doxytag: member="LBP_CB" ref="884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1" args="" -->LBP_CB</em>&nbsp;</td><td>
Contingent break. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2"></a><!-- doxytag: member="LBP_CR" ref="884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2" args="" -->LBP_CR</em>&nbsp;</td><td>
Carriage return. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab"></a><!-- doxytag: member="LBP_LF" ref="884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab" args="" -->LBP_LF</em>&nbsp;</td><td>
Line feed. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf"></a><!-- doxytag: member="LBP_NL" ref="884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf" args="" -->LBP_NL</em>&nbsp;</td><td>
Next line. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769"></a><!-- doxytag: member="LBP_SA" ref="884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769" args="" -->LBP_SA</em>&nbsp;</td><td>
South-East Asian. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817"></a><!-- doxytag: member="LBP_SG" ref="884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817" args="" -->LBP_SG</em>&nbsp;</td><td>
Surrogates. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4"></a><!-- doxytag: member="LBP_SP" ref="884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4" args="" -->LBP_SP</em>&nbsp;</td><td>
Space. </td></tr>
<tr><td valign="top"><em><a class="anchor" name="884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0"></a><!-- doxytag: member="LBP_XX" ref="884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0" args="" -->LBP_XX</em>&nbsp;</td><td>
Unknown. </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Function Documentation</h2>
<a class="anchor" name="1358bfc18e5c58f3bf86d41da9915964"></a><!-- doxytag: member="linebreakdef.h::get_next_char_utf16" ref="1358bfc18e5c58f3bf86d41da9915964" args="(const utf16_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> get_next_char_utf16 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c">utf16_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the next Unicode character in a UTF-16 sequence.
<p>
The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-16 surrogate pair.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-16 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in words </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered</dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000002">Deprecated:</a></b></dt><dd>This function will be prefixed with <code>lb_</code> in the future. </dd></dl>
</div>
</div><p>
<a class="anchor" name="b436dc6eadd1cfe258159ac671798653"></a><!-- doxytag: member="linebreakdef.h::get_next_char_utf32" ref="b436dc6eadd1cfe258159ac671798653" args="(const utf32_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> get_next_char_utf32 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the next Unicode character in a UTF-32 sequence.
<p>
The index will be advanced to the next character.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-32 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in dwords </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered</dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>This function will be prefixed with <code>lb_</code> in the future. </dd></dl>
</div>
</div><p>
<a class="anchor" name="d6e67ab4880e304d6ac730d545027a7f"></a><!-- doxytag: member="linebreakdef.h::get_next_char_utf8" ref="d6e67ab4880e304d6ac730d545027a7f" args="(const utf8_t *s, size_t len, size_t *ip)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> get_next_char_utf8 </td>
<td>(</td>
<td class="paramtype">const <a class="el" href="linebreak_8h.html#6103b2105588f239c593e779e605038a">utf8_t</a> *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t *&nbsp;</td>
<td class="paramname"> <em>ip</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Gets the next Unicode character in a UTF-8 sequence.
<p>
The index will be advanced to the next complete character, unless the end of string is reached in the middle of a UTF-8 sequence.<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input UTF-8 string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the string in bytes </td></tr>
<tr><td valign="top"><tt>[in,out]</tt>&nbsp;</td><td valign="top"><em>ip</em>&nbsp;</td><td>pointer to the index </td></tr>
</table>
</dl>
<dl class="return" compact><dt><b>Returns:</b></dt><dd>the Unicode character beginning at the index; or <a class="el" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1" title="Constant value to mark the end of string.">EOS</a> if end of input is encountered</dd></dl>
<dl class="deprecated" compact><dt><b><a class="el" href="deprecated.html#_deprecated000001">Deprecated:</a></b></dt><dd>This function will be prefixed with <code>lb_</code> in the future. </dd></dl>
</div>
</div><p>
<a class="anchor" name="0e86da0f08579bd9bfeb437f5fab15fe"></a><!-- doxytag: member="linebreakdef.h::set_linebreaks" ref="0e86da0f08579bd9bfeb437f5fab15fe" args="(const void *s, size_t len, const char *lang, char *brks, get_next_char_t get_next_char)" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">void set_linebreaks </td>
<td>(</td>
<td class="paramtype">const void *&nbsp;</td>
<td class="paramname"> <em>s</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">size_t&nbsp;</td>
<td class="paramname"> <em>len</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">const char *&nbsp;</td>
<td class="paramname"> <em>lang</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype">char *&nbsp;</td>
<td class="paramname"> <em>brks</em>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">get_next_char_t</a>&nbsp;</td>
<td class="paramname"> <em>get_next_char</em></td><td>&nbsp;</td>
</tr>
<tr>
<td></td>
<td>)</td>
<td></td><td></td><td></td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Sets the line breaking information for a generic input string.
<p>
<dl compact><dt><b>Parameters:</b></dt><dd>
<table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>s</em>&nbsp;</td><td>input string </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>len</em>&nbsp;</td><td>length of the input </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>lang</em>&nbsp;</td><td>language of the input </td></tr>
<tr><td valign="top"><tt>[out]</tt>&nbsp;</td><td valign="top"><em>brks</em>&nbsp;</td><td>pointer to the output breaking data, containing <a class="el" href="linebreak_8h.html#367d64258fd90864a467687cd1736b77" title="Break is mandatory.">LINEBREAK_MUSTBREAK</a>, <a class="el" href="linebreak_8h.html#229f34b0b72ccb2e53d0936a1e61a363" title="Break is allowed.">LINEBREAK_ALLOWBREAK</a>, <a class="el" href="linebreak_8h.html#dd176a107633817050bedf6eb4f491cc" title="No break is possible.">LINEBREAK_NOBREAK</a>, or <a class="el" href="linebreak_8h.html#5adf3d4831b89cb3e40e9bd31a73a39d" title="A UTF-8/16 sequence is unfinished.">LINEBREAK_INSIDEACHAR</a> </td></tr>
<tr><td valign="top"><tt>[in]</tt>&nbsp;</td><td valign="top"><em>get_next_char</em>&nbsp;</td><td>function to get the next UTF-32 character </td></tr>
</table>
</dl>
</div>
</div><p>
<hr><h2>Variable Documentation</h2>
<a class="anchor" name="bbd8c6b6e4e1c8ad2da83f23f81ac29a"></a><!-- doxytag: member="linebreakdef.h::lb_prop_default" ref="bbd8c6b6e4e1c8ad2da83f23f81ac29a" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> <a class="el" href="linebreakdef_8h.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a">lb_prop_default</a>[] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Default line breaking properties as from the Unicode Web site.
<p>
</div>
</div><p>
<a class="anchor" name="82efdfa4115828df9158e183f1a9983d"></a><!-- doxytag: member="linebreakdef.h::lb_prop_lang_map" ref="82efdfa4115828df9158e183f1a9983d" args="[]" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakPropertiesLang.html">LineBreakPropertiesLang</a> <a class="el" href="linebreakdef_8h.html#82efdfa4115828df9158e183f1a9983d">lb_prop_lang_map</a>[] </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Association data of language-specific line breaking properties with language names.
<p>
This is the definition for the static data in this file. If you want more flexibility, or do not need the data here, you may want to redefine <em>lb_prop_lang_map</em> in your C source file.
</div>
</div><p>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,146 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: linebreakdef.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="files.html"><span>File&nbsp;List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
<h1>linebreakdef.h</h1><a href="linebreakdef_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/* vim: set tabstop=4 shiftwidth=4: */</span>
<a name="l00002"></a>00002
<a name="l00003"></a>00003 <span class="comment">/*</span>
<a name="l00004"></a>00004 <span class="comment"> * Line breaking in a Unicode sequence. Designed to be used in a</span>
<a name="l00005"></a>00005 <span class="comment"> * generic text renderer.</span>
<a name="l00006"></a>00006 <span class="comment"> *</span>
<a name="l00007"></a>00007 <span class="comment"> * Copyright (C) 2008-2009 Wu Yongwei &lt;wuyongwei at gmail dot com&gt;</span>
<a name="l00008"></a>00008 <span class="comment"> *</span>
<a name="l00009"></a>00009 <span class="comment"> * This software is provided 'as-is', without any express or implied</span>
<a name="l00010"></a>00010 <span class="comment"> * warranty. In no event will the author be held liable for any damages</span>
<a name="l00011"></a>00011 <span class="comment"> * arising from the use of this software.</span>
<a name="l00012"></a>00012 <span class="comment"> *</span>
<a name="l00013"></a>00013 <span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span>
<a name="l00014"></a>00014 <span class="comment"> * including commercial applications, and to alter it and redistribute</span>
<a name="l00015"></a>00015 <span class="comment"> * it freely, subject to the following restrictions:</span>
<a name="l00016"></a>00016 <span class="comment"> *</span>
<a name="l00017"></a>00017 <span class="comment"> * 1. The origin of this software must not be misrepresented; you must</span>
<a name="l00018"></a>00018 <span class="comment"> * not claim that you wrote the original software. If you use this</span>
<a name="l00019"></a>00019 <span class="comment"> * software in a product, an acknowledgement in the product</span>
<a name="l00020"></a>00020 <span class="comment"> * documentation would be appreciated but is not required.</span>
<a name="l00021"></a>00021 <span class="comment"> * 2. Altered source versions must be plainly marked as such, and must</span>
<a name="l00022"></a>00022 <span class="comment"> * not be misrepresented as being the original software.</span>
<a name="l00023"></a>00023 <span class="comment"> * 3. This notice may not be removed or altered from any source</span>
<a name="l00024"></a>00024 <span class="comment"> * distribution.</span>
<a name="l00025"></a>00025 <span class="comment"> *</span>
<a name="l00026"></a>00026 <span class="comment"> * The main reference is Unicode Standard Annex 14 (UAX #14):</span>
<a name="l00027"></a>00027 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/&gt;</span>
<a name="l00028"></a>00028 <span class="comment"> *</span>
<a name="l00029"></a>00029 <span class="comment"> * When this library was designed, this annex was at Revision 19, for</span>
<a name="l00030"></a>00030 <span class="comment"> * Unicode 5.0.0:</span>
<a name="l00031"></a>00031 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-19.html&gt;</span>
<a name="l00032"></a>00032 <span class="comment"> *</span>
<a name="l00033"></a>00033 <span class="comment"> * This library has been updated according to Revision 22, for</span>
<a name="l00034"></a>00034 <span class="comment"> * Unicode 5.1.0:</span>
<a name="l00035"></a>00035 <span class="comment"> * &lt;URL:http://www.unicode.org/reports/tr14/tr14-22.html&gt;</span>
<a name="l00036"></a>00036 <span class="comment"> *</span>
<a name="l00037"></a>00037 <span class="comment"> * The Unicode Terms of Use are available at</span>
<a name="l00038"></a>00038 <span class="comment"> * &lt;URL:http://www.unicode.org/copyright.html&gt;</span>
<a name="l00039"></a>00039 <span class="comment"> */</span>
<a name="l00040"></a>00040
<a name="l00055"></a><a class="code" href="linebreakdef_8h.html#adbbc7b02d94a4c18646813ac8d7dec1">00055</a> <span class="preprocessor">#define EOS 0xFFFF</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span>
<a name="l00061"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">00061</a> <span class="keyword">enum</span> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070" title="Line break classes.">LineBreakClass</a>
<a name="l00062"></a>00062 {
<a name="l00063"></a>00063 <span class="comment">/* This is used to signal an error condition. */</span>
<a name="l00064"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723">00064</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070926181b709c80b3b50e929c2a151b723" title="Undefined.">LBP_Undefined</a>,
<a name="l00066"></a>00066 <span class="comment">/* The following break classes are treated in the pair table. */</span>
<a name="l00067"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3">00067</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070ce49119a43e68388f6201e0b8e1752a3" title="Opening punctuation.">LBP_OP</a>,
<a name="l00068"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d">00068</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407013de437628c74f3ae2bc82c0bed4dd3d" title="Closing punctuation.">LBP_CL</a>,
<a name="l00069"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e">00069</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c39763b5b0557dddcec94a381ef30f4e" title="Ambiguous quotation.">LBP_QU</a>,
<a name="l00070"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7">00070</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040700550bdd01f16132d2897fc5000f58df7" title="Glue.">LBP_GL</a>,
<a name="l00071"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0">00071</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040701cbbcff8d381e12574aec3679990e3f0" title="Non-starters.">LBP_NS</a>,
<a name="l00072"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0">00072</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070694a3a0a4cf1649ca938e4cb8064f3b0" title="Exclamation/Interrogation.">LBP_EX</a>,
<a name="l00073"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097">00073</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407047f9a3d5b87cd350905f552ffa3da097" title="Symbols allowing break after.">LBP_SY</a>,
<a name="l00074"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e">00074</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098ddb858ed33918bce8784a60c36712e" title="Infix separator.">LBP_IS</a>,
<a name="l00075"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57">00075</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070985024038b0a61a40df014013daa7d57" title="Prefix.">LBP_PR</a>,
<a name="l00076"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba">00076</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c7d5be8568020554e49bb4c01ca1fdba" title="Postfix.">LBP_PO</a>,
<a name="l00077"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28">00077</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707d6ec3c06dfdee326bca876365e5be28" title="Numeric.">LBP_NU</a>,
<a name="l00078"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281">00078</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407099a0353e48d4453d0acf01da43655281" title="Alphabetic.">LBP_AL</a>,
<a name="l00079"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55">00079</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070277e68f51ab2a52445f0e7e219b8bd55" title="Ideographic.">LBP_ID</a>,
<a name="l00080"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73">00080</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e5285b1bd6bf868b1655b8ad3cb9cc73" title="Inseparable characters.">LBP_IN</a>,
<a name="l00081"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883">00081</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707cf4d61e77f0d1f8974f1b21379d2883" title="Hyphen.">LBP_HY</a>,
<a name="l00082"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74">00082</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708487a95ef080e81a013162e107a4bc74" title="Break after.">LBP_BA</a>,
<a name="l00083"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d">00083</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407098dbcbc080626fbc0ff7d4f2b8b86d7d" title="Break before.">LBP_BB</a>,
<a name="l00084"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63">00084</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407046fe18e486c79c3835a587fb15ad0c63" title="Break on either side (but not pair).">LBP_B2</a>,
<a name="l00085"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee">00085</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070a58613e52b70bda371b48ca2d89d85ee" title="Zero-width space.">LBP_ZW</a>,
<a name="l00086"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1">00086</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070de6aff21f968efc84109e502c5c469c1" title="Combining marks.">LBP_CM</a>,
<a name="l00087"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa">00087</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407000085861924d3758649cfd7dc0ec3daa" title="Word joiner.">LBP_WJ</a>,
<a name="l00088"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc">00088</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407087a5464b708121503da98654e02c2cfc" title="Hangul LV.">LBP_H2</a>,
<a name="l00089"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380">00089</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070e898c79c281f9d12c4adfa12834f4380" title="Hangul LVT.">LBP_H3</a>,
<a name="l00090"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb">00090</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040702cb194fd3b6e0295a134ad735f8f75eb" title="Hangul L Jamo.">LBP_JL</a>,
<a name="l00091"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8">00091</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707759e3988158319f9efe87e322804cd8" title="Hangul V Jamo.">LBP_JV</a>,
<a name="l00092"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf">00092</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707851519f0dac4f922b4144315bb711bf" title="Hangul T Jamo.">LBP_JT</a>,
<a name="l00094"></a>00094 <span class="comment">/* The following break classes are not treated in the pair table */</span>
<a name="l00095"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3">00095</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070c9dcacac1d71f0f8ca7bbfe670620dd3" title="Ambiguous (alphabetic or ideograph).">LBP_AI</a>,
<a name="l00096"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626">00096</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707b0aae40955328f649ec66b23ecf1626" title="Break (mandatory).">LBP_BK</a>,
<a name="l00097"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1">00097</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070485f9b3c86d8b6f800bba048f1bf47b1" title="Contingent break.">LBP_CB</a>,
<a name="l00098"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2">00098</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040708f6991e8defca4aa9e6485dbb32628a2" title="Carriage return.">LBP_CR</a>,
<a name="l00099"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab">00099</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070944522607828ef422c419633f68c8cab" title="Line feed.">LBP_LF</a>,
<a name="l00100"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf">00100</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070cfefd6df8344cc5601ce7786aee51fcf" title="Next line.">LBP_NL</a>,
<a name="l00101"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769">00101</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407038b102b238de030fe74906fb0fcfb769" title="South-East Asian.">LBP_SA</a>,
<a name="l00102"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817">00102</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070d6764678f5d80d86324a6f29c0561817" title="Surrogates.">LBP_SG</a>,
<a name="l00103"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4">00103</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd040707605e7c192d43e2ef0596e92446dfba4" title="Space.">LBP_SP</a>,
<a name="l00104"></a><a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0">00104</a> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd0407049450c35ed2a20d252e707322964bdf0" title="Unknown.">LBP_XX</a>
<a name="l00105"></a>00105 };
<a name="l00106"></a>00106
<a name="l00111"></a><a class="code" href="structLineBreakProperties.html">00111</a> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a>
<a name="l00112"></a>00112 {
<a name="l00113"></a><a class="code" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372">00113</a> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372" title="Starting coding point.">start</a>;
<a name="l00114"></a><a class="code" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14">00114</a> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14" title="End coding point.">end</a>;
<a name="l00115"></a><a class="code" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba">00115</a> <span class="keyword">enum</span> <a class="code" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070" title="Line break classes.">LineBreakClass</a> <a class="code" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba" title="The line breaking property.">prop</a>;
<a name="l00116"></a>00116 };
<a name="l00117"></a>00117
<a name="l00122"></a><a class="code" href="structLineBreakPropertiesLang.html">00122</a> <span class="keyword">struct </span><a class="code" href="structLineBreakPropertiesLang.html" title="Struct for association of language-specific line breaking properties with language...">LineBreakPropertiesLang</a>
<a name="l00123"></a>00123 {
<a name="l00124"></a><a class="code" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d">00124</a> <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d" title="Language name.">lang</a>;
<a name="l00125"></a><a class="code" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488">00125</a> <span class="keywordtype">size_t</span> <a class="code" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488" title="Length of name to match.">namelen</a>;
<a name="l00126"></a><a class="code" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d">00126</a> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a> *<a class="code" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d" title="Pointer to associated data.">lbp</a>;
<a name="l00127"></a>00127 };
<a name="l00128"></a>00128
<a name="l00133"></a><a class="code" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3">00133</a> <span class="keyword">typedef</span> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> (*<a class="code" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3" title="Abstract function interface for get_next_char_utf8, get_next_char_utf16, and get_next_char_utf32...">get_next_char_t</a>)(<span class="keyword">const</span> <span class="keywordtype">void</span> *, size_t, <span class="keywordtype">size_t</span> *);
<a name="l00134"></a>00134
<a name="l00135"></a>00135 <span class="comment">/* Declarations */</span>
<a name="l00136"></a>00136 <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structLineBreakProperties.html" title="Struct for entries of line break properties.">LineBreakProperties</a> <a class="code" href="linebreakdata_8c.html#bbd8c6b6e4e1c8ad2da83f23f81ac29a" title="Default line breaking properties as from the Unicode Web site.">lb_prop_default</a>[];
<a name="l00137"></a>00137 <span class="keyword">extern</span> <span class="keyword">struct </span><a class="code" href="structLineBreakPropertiesLang.html" title="Struct for association of language-specific line breaking properties with language...">LineBreakPropertiesLang</a> <a class="code" href="linebreakdef_8c.html#82efdfa4115828df9158e183f1a9983d" title="Association data of language-specific line breaking properties with language names...">lb_prop_lang_map</a>[];
<a name="l00138"></a>00138
<a name="l00139"></a>00139 <span class="comment">/* Function Prototypes */</span>
<a name="l00140"></a>00140
<a name="l00153"></a>00153 <span class="keywordtype">void</span> <a class="code" href="linebreak_8c.html#0e86da0f08579bd9bfeb437f5fab15fe" title="Sets the line breaking information for a generic input string.">set_linebreaks</a>(
<a name="l00154"></a>00154 <span class="keyword">const</span> <span class="keywordtype">void</span> *s,
<a name="l00155"></a>00155 <span class="keywordtype">size_t</span> len,
<a name="l00156"></a>00156 <span class="keyword">const</span> <span class="keywordtype">char</span> *<a class="code" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d" title="Language name.">lang</a>,
<a name="l00157"></a>00157 <span class="keywordtype">char</span> *brks,
<a name="l00158"></a>00158 <a class="code" href="linebreakdef_8h.html#d76de249e1f8334f318f9ee97ccc77c3" title="Abstract function interface for get_next_char_utf8, get_next_char_utf16, and get_next_char_utf32...">get_next_char_t</a> get_next_char);
<a name="l00159"></a>00159
<a name="l00160"></a>00160 <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#d6e67ab4880e304d6ac730d545027a7f" title="Gets the next Unicode character in a UTF-8 sequence.">get_next_char_utf8</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#6103b2105588f239c593e779e605038a" title="Type for UTF-8 data points.">utf8_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00161"></a>00161 <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#1358bfc18e5c58f3bf86d41da9915964" title="Gets the next Unicode character in a UTF-16 sequence.">get_next_char_utf16</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#4dce96cad338d9281612277b2d80950c" title="Type for UTF-16 data points.">utf16_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
<a name="l00162"></a>00162 <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> <a class="code" href="linebreak_8c.html#b436dc6eadd1cfe258159ac671798653" title="Gets the next Unicode character in a UTF-32 sequence.">get_next_char_utf32</a>(<span class="keyword">const</span> <a class="code" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25" title="Type for UTF-32 data points.">utf32_t</a> *s, <span class="keywordtype">size_t</span> len, <span class="keywordtype">size_t</span> *ip);
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,28 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: Page Index</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li class="current"><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>Related Pages</h1>Here is a list of all related documentation pages:<ul>
<li><a class="el" href="deprecated.html">Deprecated List</a>
</ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,106 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: LineBreakProperties Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>LineBreakProperties Struct Reference</h1><!-- doxytag: class="LineBreakProperties" -->Struct for entries of line break properties.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&gt;</code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372">start</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Starting coding point. <a href="#1fe368ff9b53f52305c8dca687395372"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14">end</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End coding point. <a href="#f6ff463e88f6c694661aa10222404a14"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba">prop</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">The line breaking property. <a href="#46d34ea3f514f8f082d92a441a6665ba"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Struct for entries of line break properties.
<p>
The array of the entries <em>must</em> be sorted. <hr><h2>Field Documentation</h2>
<a class="anchor" name="f6ff463e88f6c694661aa10222404a14"></a><!-- doxytag: member="LineBreakProperties::end" ref="f6ff463e88f6c694661aa10222404a14" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> <a class="el" href="structLineBreakProperties.html#f6ff463e88f6c694661aa10222404a14">LineBreakProperties::end</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
End coding point.
<p>
</div>
</div><p>
<a class="anchor" name="46d34ea3f514f8f082d92a441a6665ba"></a><!-- doxytag: member="LineBreakProperties::prop" ref="46d34ea3f514f8f082d92a441a6665ba" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">enum <a class="el" href="linebreakdef_8h.html#884b6565d87a81bbf549980bbdd04070">LineBreakClass</a> <a class="el" href="structLineBreakProperties.html#46d34ea3f514f8f082d92a441a6665ba">LineBreakProperties::prop</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
The line breaking property.
<p>
</div>
</div><p>
<a class="anchor" name="1fe368ff9b53f52305c8dca687395372"></a><!-- doxytag: member="LineBreakProperties::start" ref="1fe368ff9b53f52305c8dca687395372" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> <a class="el" href="structLineBreakProperties.html#1fe368ff9b53f52305c8dca687395372">LineBreakProperties::start</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Starting coding point.
<p>
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,82 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: LineBreakPropertiesIndex Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>LineBreakPropertiesIndex Struct Reference</h1><!-- doxytag: class="LineBreakPropertiesIndex" -->Struct for the second-level index to the line breaking properties.
<a href="#_details">More...</a>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a>&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesIndex.html#7a5207276632f772309f8cf2877c9eae">end</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">End coding point. <a href="#7a5207276632f772309f8cf2877c9eae"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesIndex.html#de56f82faa0703e4eafddb0fc4ba6528">lbp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to line breaking properties. <a href="#de56f82faa0703e4eafddb0fc4ba6528"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Struct for the second-level index to the line breaking properties. <hr><h2>Field Documentation</h2>
<a class="anchor" name="7a5207276632f772309f8cf2877c9eae"></a><!-- doxytag: member="LineBreakPropertiesIndex::end" ref="7a5207276632f772309f8cf2877c9eae" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname"><a class="el" href="linebreak_8h.html#4f775bae0642c213be2c526018283c25">utf32_t</a> <a class="el" href="structLineBreakPropertiesIndex.html#7a5207276632f772309f8cf2877c9eae">LineBreakPropertiesIndex::end</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
End coding point.
<p>
</div>
</div><p>
<a class="anchor" name="de56f82faa0703e4eafddb0fc4ba6528"></a><!-- doxytag: member="LineBreakPropertiesIndex::lbp" ref="de56f82faa0703e4eafddb0fc4ba6528" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>* <a class="el" href="structLineBreakPropertiesIndex.html#de56f82faa0703e4eafddb0fc4ba6528">LineBreakPropertiesIndex::lbp</a><code> [read]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Pointer to line breaking properties.
<p>
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="linebreak_8c.html">linebreak.c</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -1,104 +0,0 @@
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>liblinebreak: LineBreakPropertiesLang Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css">
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.9 -->
<div class="navigation" id="top">
<div class="tabs">
<ul>
<li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
<li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
<li class="current"><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="files.html"><span>Files</span></a></li>
</ul>
</div>
<div class="tabs">
<ul>
<li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
<li><a href="classes.html"><span>Data&nbsp;Structure&nbsp;Index</span></a></li>
<li><a href="functions.html"><span>Data&nbsp;Fields</span></a></li>
</ul>
</div>
</div>
<div class="contents">
<h1>LineBreakPropertiesLang Struct Reference</h1><!-- doxytag: class="LineBreakPropertiesLang" -->Struct for association of language-specific line breaking properties with language names.
<a href="#_details">More...</a>
<p>
<code>#include &lt;<a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a>&gt;</code>
<p>
<table border="0" cellpadding="0" cellspacing="0">
<tr><td></td></tr>
<tr><td colspan="2"><br><h2>Data Fields</h2></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">const char *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d">lang</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Language name. <a href="#e961b49d11e272adc590cf06e9f6100d"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">size_t&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488">namelen</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Length of name to match. <a href="#b5132ed92c5964a5cfecbb21de206488"></a><br></td></tr>
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a> *&nbsp;</td><td class="memItemRight" valign="bottom"><a class="el" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d">lbp</a></td></tr>
<tr><td class="mdescLeft">&nbsp;</td><td class="mdescRight">Pointer to associated data. <a href="#e4b7339a372a0ccbf97e380aa440ff9d"></a><br></td></tr>
</table>
<hr><a name="_details"></a><h2>Detailed Description</h2>
Struct for association of language-specific line breaking properties with language names. <hr><h2>Field Documentation</h2>
<a class="anchor" name="e961b49d11e272adc590cf06e9f6100d"></a><!-- doxytag: member="LineBreakPropertiesLang::lang" ref="e961b49d11e272adc590cf06e9f6100d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">const char* <a class="el" href="structLineBreakPropertiesLang.html#e961b49d11e272adc590cf06e9f6100d">LineBreakPropertiesLang::lang</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Language name.
<p>
</div>
</div><p>
<a class="anchor" name="e4b7339a372a0ccbf97e380aa440ff9d"></a><!-- doxytag: member="LineBreakPropertiesLang::lbp" ref="e4b7339a372a0ccbf97e380aa440ff9d" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">struct <a class="el" href="structLineBreakProperties.html">LineBreakProperties</a>* <a class="el" href="structLineBreakPropertiesLang.html#e4b7339a372a0ccbf97e380aa440ff9d">LineBreakPropertiesLang::lbp</a><code> [read]</code> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Pointer to associated data.
<p>
</div>
</div><p>
<a class="anchor" name="b5132ed92c5964a5cfecbb21de206488"></a><!-- doxytag: member="LineBreakPropertiesLang::namelen" ref="b5132ed92c5964a5cfecbb21de206488" args="" -->
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">size_t <a class="el" href="structLineBreakPropertiesLang.html#b5132ed92c5964a5cfecbb21de206488">LineBreakPropertiesLang::namelen</a> </td>
</tr>
</table>
</div>
<div class="memdoc">
<p>
Length of name to match.
<p>
</div>
</div><p>
<hr>The documentation for this struct was generated from the following file:<ul>
<li><a class="el" href="linebreakdef_8h_source.html">linebreakdef.h</a></ul>
</div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun May 3 13:20:57 2009 for liblinebreak by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.9 </small></address>
</body>
</html>

View file

@ -20,7 +20,7 @@
package org.geometerplus.zlibrary.text.view; package org.geometerplus.zlibrary.text.view;
import java.util.*; import java.util.*;
//import org.vimgadgets.linebreak.LineBreak; import org.vimgadgets.linebreak.LineBreak;
import org.geometerplus.zlibrary.core.image.*; import org.geometerplus.zlibrary.core.image.*;
import org.geometerplus.zlibrary.text.model.*; import org.geometerplus.zlibrary.text.model.*;
@ -52,7 +52,6 @@ public final class ZLTextParagraphCursor {
} }
void fill() { void fill() {
//new LineBreak("en");
final ArrayList<ZLTextElement> elements = myElements; final ArrayList<ZLTextElement> elements = myElements;
for (ZLTextParagraph.EntryIterator it = myParagraph.iterator(); it.hasNext(); ) { for (ZLTextParagraph.EntryIterator it = myParagraph.iterator(); it.hasNext(); ) {
it.next(); it.next();
@ -94,6 +93,11 @@ public final class ZLTextParagraphCursor {
private void processTextEntry(final char[] data, final int offset, final int length) { private void processTextEntry(final char[] data, final int offset, final int length) {
if (length != 0) { if (length != 0) {
final LineBreak breaker = new LineBreak("en");
final byte[] breaks = new byte[length];
System.err.println(length);
breaker.setLineBreaks(data, offset, length, breaks);
final ZLTextElement hSpace = ZLTextElement.HSpace; final ZLTextElement hSpace = ZLTextElement.HSpace;
final int end = offset + length; final int end = offset + length;
int firstNonSpace = -1; int firstNonSpace = -1;

View file

@ -21,12 +21,12 @@ package org.vimgadgets.linebreak;
public final class LineBreak { public final class LineBreak {
static { static {
System.loadLibrary("linebreak"); System.loadLibrary("LineBreak");
init(); init();
} }
private static native void init(); private static native void init();
private static native void setLineBreaksForCharArray(char[] data, String lang, byte[] breaks); private static native void setLineBreaksForCharArray(char[] data, int offset, int length, String lang, byte[] breaks);
private static native void setLineBreaksForString(String data, String lang, byte[] breaks); private static native void setLineBreaksForString(String data, String lang, byte[] breaks);
private final String myLanguage; private final String myLanguage;
@ -35,8 +35,8 @@ public final class LineBreak {
myLanguage = lang; myLanguage = lang;
} }
public void setLineBreaks(char[] data, byte[] breaks) { public void setLineBreaks(char[] data, int offset, int length, byte[] breaks) {
setLineBreaksForCharArray(data, myLanguage, breaks); setLineBreaksForCharArray(data, offset, length, myLanguage, breaks);
} }
public void setLineBreaks(String data, byte[] breaks) { public void setLineBreaks(String data, byte[] breaks) {