2 * fribidi-unicode.h - general Unicode definitions
4 * $Id: fribidi-unicode.h,v 1.7 2006-01-31 03:23:13 behdad Exp $
6 * $Date: 2006-01-31 03:23:13 $
8 * $Source: /home/behdad/src/fdo/fribidi/togit/git/../fribidi/fribidi2/lib/fribidi-unicode.h,v $
11 * Behdad Esfahbod, 2001, 2002, 2004
13 * Copyright (C) 2004 Sharif FarsiWeb, Inc
14 * Copyright (C) 2001,2002 Behdad Esfahbod
16 * This library is free software; you can redistribute it and/or
17 * modify it under the terms of the GNU Lesser General Public
18 * License as published by the Free Software Foundation; either
19 * version 2.1 of the License, or (at your option) any later version.
21 * This library is distributed in the hope that it will be useful,
22 * but WITHOUT ANY WARRANTY; without even the implied warranty of
23 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24 * Lesser General Public License for more details.
26 * You should have received a copy of the GNU Lesser General Public License
27 * along with this library, in a file named COPYING; if not, write to the
28 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
29 * Boston, MA 02110-1301, USA
31 * For licensing issues, contact <license@farsiweb.info>.
33 #ifndef _FRIBIDI_UNICODE_H
34 #define _FRIBIDI_UNICODE_H
36 #include "fribidi-common.h"
38 #include "fribidi-types.h"
40 #include "fribidi-begindecls.h"
42 /* We do not support surrogates yet */
43 #define FRIBIDI_UNICODE_CHARS (sizeof(FriBidiChar) >= 4 ? 0x110000 : 0xFFFE)
45 /* Unicode version - FRIBIDI_UNICODE_VERSION */
46 #if DONT_HAVE_FRIBIDI_UNICODE_VERSION_H+0
47 # define FRIBIDI_UNICODE_VERSION "unknown"
48 #else /* !DONT_HAVE_FRIBIDI_UNICODE_VERSION_H */
49 # include "fribidi-unicode-version.h"
50 #endif /* !DONT_HAVE_FRIBIDI_UNICODE_VERSION_H */
52 #define fribidi_unicode_version FRIBIDI_NAMESPACE(unicode_version)
53 /* An string containing the version the Unicode standard implemented,
54 * in the form of "x.y.z", or "unknown". */
55 extern const char *fribidi_unicode_version;
58 /* Unicode Bidirectional Algorithm definitions: */
60 /* Number of types defined in the bidi algorithm */
61 #define FRIBIDI_BIDI_NUM_TYPES 19
63 /* The maximum embedding level value assigned by explicit marks */
64 #define FRIBIDI_BIDI_MAX_EXPLICIT_LEVEL 61
65 /* The maximum *number* of different resolved embedding levels: 0-62 */
66 #define FRIBIDI_BIDI_MAX_RESOLVED_LEVELS 63
69 /* A few Unicode characters: */
71 /* Bidirectional marks */
72 #define FRIBIDI_CHAR_LRM 0x200E
73 #define FRIBIDI_CHAR_RLM 0x200F
74 #define FRIBIDI_CHAR_LRE 0x202A
75 #define FRIBIDI_CHAR_RLE 0x202B
76 #define FRIBIDI_CHAR_PDF 0x202C
77 #define FRIBIDI_CHAR_LRO 0x202D
78 #define FRIBIDI_CHAR_RLO 0x202E
80 /* Line and Paragraph Separators */
81 #define FRIBIDI_CHAR_LS 0x2028
82 #define FRIBIDI_CHAR_PS 0x2029
84 /* Arabic Joining marks */
85 #define FRIBIDI_CHAR_ZWNJ 0x200C
86 #define FRIBIDI_CHAR_ZWJ 0x200D
88 /* Hebrew and Arabic */
89 #define FRIBIDI_CHAR_HEBREW_ALEF 0x05D0
90 #define FRIBIDI_CHAR_ARABIC_ALEF 0x0627
91 #define FRIBIDI_CHAR_ARABIC_ZERO 0x0660
92 #define FRIBIDI_CHAR_PERSIAN_ZERO 0x06F0
95 #define FRIBIDI_CHAR_ZWNBSP 0xFEFF
97 /* Char we place for a deleted slot, to delete later */
98 #define FRIBIDI_CHAR_FILL FRIBIDI_CHAR_ZWNBSP
100 #include "fribidi-enddecls.h"
102 #endif /* !_FRIBIDI_UNICODE_H */
103 /* Editor directions:
104 * vim:textwidth=78:tabstop=8:shiftwidth=2:autoindent:cindent