source: trunk/third/glib2/glib/gunibreak.c @ 20721

Revision 20721, 2.2 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20720, which included commits to RCS files with non-trunk default branches.
Line 
1/* gunibreak.c - line break properties
2 *
3 *  Copyright 2000 Red Hat, Inc.
4 *
5 * The Gnome Library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public License as
7 * published by the Free Software Foundation; either version 2 of the
8 * License, or (at your option) any later version.
9 *
10 * The Gnome Library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13 * Lesser General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with the Gnome Library; see the file COPYING.LIB.  If not,
17 * write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
18 *   Boston, MA 02111-1307, USA.
19 */
20
21#include "config.h"
22
23#include <stdlib.h>
24
25#include "glib.h"
26#include "gunibreak.h"
27
28#define TPROP_PART1(Page, Char) \
29  ((break_property_table_part1[Page] >= G_UNICODE_MAX_TABLE_INDEX) \
30   ? (break_property_table_part1[Page] - G_UNICODE_MAX_TABLE_INDEX) \
31   : (break_property_data[break_property_table_part1[Page]][Char]))
32
33#define TPROP_PART2(Page, Char) \
34  ((break_property_table_part2[Page] >= G_UNICODE_MAX_TABLE_INDEX) \
35   ? (break_property_table_part2[Page] - G_UNICODE_MAX_TABLE_INDEX) \
36   : (break_property_data[break_property_table_part2[Page]][Char]))
37
38#define PROP(Char) \
39  (((Char) <= G_UNICODE_LAST_CHAR_PART1) \
40   ? TPROP_PART1 ((Char) >> 8, (Char) & 0xff) \
41   : (((Char) >= 0xe0000 && (Char) <= G_UNICODE_LAST_CHAR) \
42      ? TPROP_PART2 (((Char) - 0xe0000) >> 8, (Char) & 0xff) \
43      : G_UNICODE_BREAK_UNKNOWN))
44
45/**
46 * g_unichar_break_type:
47 * @c: a Unicode character
48 *
49 * Determines the break type of @c. @c should be a Unicode character
50 * (to derive a character from UTF-8 encoded text, use
51 * g_utf8_get_char()). The break type is used to find word and line
52 * breaks ("text boundaries"), Pango implements the Unicode boundary
53 * resolution algorithms and normally you would use a function such
54 * as pango_break() instead of caring about break types yourself.
55 *
56 * Return value: the break type of @c
57 **/
58GUnicodeBreakType
59g_unichar_break_type (gunichar c)
60{
61  return PROP (c);
62}
Note: See TracBrowser for help on using the repository browser.