summaryrefslogtreecommitdiff
path: root/pango/mini-fribidi/fribidi_types.h
diff options
context:
space:
mode:
Diffstat (limited to 'pango/mini-fribidi/fribidi_types.h')
-rw-r--r--pango/mini-fribidi/fribidi_types.h313
1 files changed, 0 insertions, 313 deletions
diff --git a/pango/mini-fribidi/fribidi_types.h b/pango/mini-fribidi/fribidi_types.h
deleted file mode 100644
index dc41865b..00000000
--- a/pango/mini-fribidi/fribidi_types.h
+++ /dev/null
@@ -1,313 +0,0 @@
-/* FriBidi - Library of BiDi algorithm
- * Copyright (C) 1999,2000 Dov Grobgeld, and
- * Copyright (C) 2001,2002 Behdad Esfahbod.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License
- * along with this library, in a file named COPYING; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place, Suite 330,
- * Boston, MA 02111-1307, USA
- *
- * For licensing issues, contact <dov@imagic.weizmann.ac.il> and
- * <fwpg@sharif.edu>.
- */
-#ifndef FRIBIDI_TYPES_H
-#define FRIBIDI_TYPES_H
-
-#include "fribidi_config.h"
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
- typedef gboolean fribidi_boolean;
-
- typedef gint8 fribidi_int8;
- typedef guint8 fribidi_uint8;
- typedef gint16 fribidi_int16;
- typedef guint16 fribidi_uint16;
- typedef gint32 fribidi_int32;
- typedef guint32 fribidi_uint32;
- typedef gint fribidi_int;
- typedef guint fribidi_uint;
-
-
- typedef fribidi_int8 FriBidiLevel;
- typedef gunichar FriBidiChar;
- typedef gsize FriBidiStrIndex;
- typedef fribidi_int32 FriBidiMaskType;
- typedef FriBidiMaskType FriBidiCharType;
-
- char *fribidi_type_name (FriBidiCharType c);
-
-/* The following type is used by fribidi_utils */
- typedef struct
- {
- FriBidiStrIndex length;
- void *attribute;
- }
- FriBidiRunType;
-
-/* The following type is used by fribdi_utils */
- typedef struct _FriBidiList FriBidiList;
- struct _FriBidiList
- {
- void *data;
- FriBidiList *next;
- FriBidiList *prev;
- };
-
-#ifndef FRIBIDI_MAX_STRING_LENGTH
-#define FRIBIDI_MAX_STRING_LENGTH (FriBidiStrIndex) \
- (sizeof (FriBidiStrIndex) == 2 ? \
- 0x7FFE : (sizeof (FriBidiStrIndex) == 1 ? \
- 0x7E : 0x7FFFFFFEL))
-#endif
-
-
-/*
- * Define some bit masks, that character types are based on, each one has
- * only one bit on.
- */
-
-/* Do not use enum, because 16bit processors do not allow 32bit enum values. */
-
-#define FRIBIDI_MASK_RTL 0x00000001L /* Is right to left */
-#define FRIBIDI_MASK_ARABIC 0x00000002L /* Is arabic */
-
-/* Each char can be only one of the three following. */
-#define FRIBIDI_MASK_STRONG 0x00000010L /* Is strong */
-#define FRIBIDI_MASK_WEAK 0x00000020L /* Is weak */
-#define FRIBIDI_MASK_NEUTRAL 0x00000040L /* Is neutral */
-#define FRIBIDI_MASK_SENTINEL 0x00000080L /* Is sentinel: SOT, EOT */
-/* Sentinels are not valid chars, just identify the start and end of strings. */
-
-/* Each char can be only one of the five following. */
-#define FRIBIDI_MASK_LETTER 0x00000100L /* Is letter: L, R, AL */
-#define FRIBIDI_MASK_NUMBER 0x00000200L /* Is number: EN, AN */
-#define FRIBIDI_MASK_NUMSEPTER 0x00000400L /* Is number separator or terminator: ES, ET, CS */
-#define FRIBIDI_MASK_SPACE 0x00000800L /* Is space: BN, BS, SS, WS */
-#define FRIBIDI_MASK_EXPLICIT 0x00001000L /* Is expilict mark: LRE, RLE, LRO, RLO, PDF */
-
-/* Can be on only if FRIBIDI_MASK_SPACE is also on. */
-#define FRIBIDI_MASK_SEPARATOR 0x00002000L /* Is test separator: BS, SS */
-/* Can be on only if FRIBIDI_MASK_EXPLICIT is also on. */
-#define FRIBIDI_MASK_OVERRIDE 0x00004000L /* Is explicit override: LRO, RLO */
-
-/* The following must be to make types pairwise different, some of them can
- be removed but are here because of efficiency (make queries faster). */
-
-#define FRIBIDI_MASK_ES 0x00010000L
-#define FRIBIDI_MASK_ET 0x00020000L
-#define FRIBIDI_MASK_CS 0x00040000L
-
-#define FRIBIDI_MASK_NSM 0x00080000L
-#define FRIBIDI_MASK_BN 0x00100000L
-
-#define FRIBIDI_MASK_BS 0x00200000L
-#define FRIBIDI_MASK_SS 0x00400000L
-#define FRIBIDI_MASK_WS 0x00800000L
-
-/* We reserve the sign bit for user's private use: we will never use it,
- then negative character types will be never assigned. */
-
-
-/*
- * Define values for FriBidiCharType
- */
-
-/* Strong left to right */
-#define FRIBIDI_TYPE_LTR ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER )
-/* Right to left characters */
-#define FRIBIDI_TYPE_RTL ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER \
- + FRIBIDI_MASK_RTL)
-/* Arabic characters */
-#define FRIBIDI_TYPE_AL ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_LETTER \
- + FRIBIDI_MASK_RTL + FRIBIDI_MASK_ARABIC )
-/* Left-To-Right embedding */
-#define FRIBIDI_TYPE_LRE (FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT)
-/* Right-To-Left embedding */
-#define FRIBIDI_TYPE_RLE ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
- + FRIBIDI_MASK_RTL )
-/* Left-To-Right override */
-#define FRIBIDI_TYPE_LRO ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
- + FRIBIDI_MASK_OVERRIDE )
-/* Right-To-Left override */
-#define FRIBIDI_TYPE_RLO ( FRIBIDI_MASK_STRONG + FRIBIDI_MASK_EXPLICIT \
- + FRIBIDI_MASK_RTL + FRIBIDI_MASK_OVERRIDE )
-
-/* Pop directional override */
-#define FRIBIDI_TYPE_PDF ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_EXPLICIT )
-/* European digit */
-#define FRIBIDI_TYPE_EN ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER )
-/* Arabic digit */
-#define FRIBIDI_TYPE_AN ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMBER \
- + FRIBIDI_MASK_ARABIC )
-/* European number separator */
-#define FRIBIDI_TYPE_ES ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
- + FRIBIDI_MASK_ES )
-/* European number terminator */
-#define FRIBIDI_TYPE_ET ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
- + FRIBIDI_MASK_ET )
-/* Common Separator */
-#define FRIBIDI_TYPE_CS ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NUMSEPTER \
- + FRIBIDI_MASK_CS )
-/* Non spacing mark */
-#define FRIBIDI_TYPE_NSM ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_NSM )
-/* Boundary neutral */
-#define FRIBIDI_TYPE_BN ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_SPACE \
- + FRIBIDI_MASK_BN )
-
-/* Block separator */
-#define FRIBIDI_TYPE_BS ( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
- + FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_BS )
-/* Segment separator */
-#define FRIBIDI_TYPE_SS ( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
- + FRIBIDI_MASK_SEPARATOR + FRIBIDI_MASK_SS )
-/* Whitespace */
-#define FRIBIDI_TYPE_WS ( FRIBIDI_MASK_NEUTRAL + FRIBIDI_MASK_SPACE \
- + FRIBIDI_MASK_WS )
-/* Other Neutral */
-#define FRIBIDI_TYPE_ON ( FRIBIDI_MASK_NEUTRAL )
-
-/* The following are used to identify the paragraph direction,
- types L, R, N are not used internally anymore, and recommended to use
- LTR, RTL and ON instead, didn't removed because of compatability. */
-#define FRIBIDI_TYPE_L ( FRIBIDI_TYPE_LTR )
-#define FRIBIDI_TYPE_R ( FRIBIDI_TYPE_RTL )
-#define FRIBIDI_TYPE_N ( FRIBIDI_TYPE_ON )
-/* Weak left to right */
-#define FRIBIDI_TYPE_WL ( FRIBIDI_MASK_WEAK )
-/* Weak right to left */
-#define FRIBIDI_TYPE_WR ( FRIBIDI_MASK_WEAK + FRIBIDI_MASK_RTL )
-
-/* The following are only used internally */
-
-/* Start of text */
-#define FRIBIDI_TYPE_SOT ( FRIBIDI_MASK_SENTINEL )
-/* End of text */
-#define FRIBIDI_TYPE_EOT ( FRIBIDI_MASK_SENTINEL + FRIBIDI_MASK_RTL )
-
-/*
- * End of define values for FriBidiCharType
- */
-
-
-/*
- * Defining macros for needed queries, It is fully dependent on the
- * implementation of FriBidiCharType.
- */
-
-
-/* Is private-use value? */
-#define FRIBIDI_TYPE_PRIVATE(p) ((p) < 0)
-
-/* Return the direction of the level number, FRIBIDI_TYPE_LTR for even and
- FRIBIDI_TYPE_RTL for odds. */
-#define FRIBIDI_LEVEL_TO_DIR(lev) (FRIBIDI_TYPE_LTR | (lev & 1))
-
-/* Return the minimum level of the direction, 0 for FRIBIDI_TYPE_LTR and
- 1 for FRIBIDI_TYPE_RTL and FRIBIDI_TYPE_AL. */
-#define FRIBIDI_DIR_TO_LEVEL(dir) ((FriBidiLevel)(dir & 1))
-
-/* Is right to left? */
-#define FRIBIDI_IS_RTL(p) ((p) & FRIBIDI_MASK_RTL)
-/* Is arabic? */
-#define FRIBIDI_IS_ARABIC(p) ((p) & FRIBIDI_MASK_ARABIC)
-
-/* Is strong? */
-#define FRIBIDI_IS_STRONG(p) ((p) & FRIBIDI_MASK_STRONG)
-/* Is weak? */
-#define FRIBIDI_IS_WEAK(p) ((p) & FRIBIDI_MASK_WEAK)
-/* Is neutral? */
-#define FRIBIDI_IS_NEUTRAL(p) ((p) & FRIBIDI_MASK_NEUTRAL)
-/* Is sentinel? */
-#define FRIBIDI_IS_SENTINEL(p) ((p) & FRIBIDI_MASK_SENTINEL)
-
-/* Is letter: L, R, AL? */
-#define FRIBIDI_IS_LETTER(p) ((p) & FRIBIDI_MASK_LETTER)
-/* Is number: EN, AN? */
-#define FRIBIDI_IS_NUMBER(p) ((p) & FRIBIDI_MASK_NUMBER)
-/* Is number separator or terminator: ES, ET, CS? */
-#define FRIBIDI_IS_NUMBER_SEPARATOR_OR_TERMINATOR(p) \
- ((p) & FRIBIDI_MASK_NUMSEPTER)
-/* Is space: BN, BS, SS, WS? */
-#define FRIBIDI_IS_SPACE(p) ((p) & FRIBIDI_MASK_SPACE)
-/* Is explicit mark: LRE, RLE, LRO, RLO, PDF? */
-#define FRIBIDI_IS_EXPLICIT(p) ((p) & FRIBIDI_MASK_EXPLICIT)
-
-/* Is test separator: BS, SS? */
-#define FRIBIDI_IS_SEPARATOR(p) ((p) & FRIBIDI_MASK_SEPARATOR)
-
-/* Is explicit override: LRO, RLO? */
-#define FRIBIDI_IS_OVERRIDE(p) ((p) & FRIBIDI_MASK_OVERRIDE)
-
-/* Some more: */
-
-/* Is left to right letter: LTR? */
-#define FRIBIDI_IS_LTR_LETTER(p) \
- ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) == FRIBIDI_MASK_LETTER)
-
-/* Is right to left letter: RTL, AL? */
-#define FRIBIDI_IS_RTL_LETTER(p) \
- ((p) & (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL) \
- == (FRIBIDI_MASK_LETTER | FRIBIDI_MASK_RTL))
-
-/* Is ES or CS: ES, CS? */
-#define FRIBIDI_IS_ES_OR_CS(p) \
- ((p) & (FRIBIDI_MASK_ES | FRIBIDI_MASK_CS))
-
-/* Is explicit or BN: LRE, RLE, LRO, RLO, PDF, BN? */
-#define FRIBIDI_IS_EXPLICIT_OR_BN(p) \
- ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_BN))
-
-/* Is explicit or separator or BN or WS: LRE, RLE, LRO, RLO, PDF, BS, SS, BN, WS? */
-#define FRIBIDI_IS_EXPLICIT_OR_SEPARATOR_OR_BN_OR_WS(p) \
- ((p) & (FRIBIDI_MASK_EXPLICIT | FRIBIDI_MASK_SEPARATOR \
- | FRIBIDI_MASK_BN | FRIBIDI_MASK_WS))
-
-/* Define some conversions. */
-
-/* Change numbers: EN, AN to RTL. */
-#define FRIBIDI_CHANGE_NUMBER_TO_RTL(p) \
- (FRIBIDI_IS_NUMBER(p) ? FRIBIDI_TYPE_RTL : (p))
-
-/* Override status of an explicit mark: LRO->LTR, RLO->RTL, otherwise->ON. */
-#define FRIBIDI_EXPLICIT_TO_OVERRIDE_DIR(p) \
- (FRIBIDI_IS_OVERRIDE(p) ? FRIBIDI_LEVEL_TO_DIR(FRIBIDI_DIR_TO_LEVEL(p)) \
- : FRIBIDI_TYPE_ON)
-
-
-/*
- * Define character types that char_type_tables use.
- * define them to be 0, 1, 2, ... and then in fribidi_char_type.c map them
- * to FriBidiCharTypes.
- */
- typedef char FriBidiPropCharType;
-
- enum FriBidiPropEnum
- {
-#define _FRIBIDI_ADD_TYPE(TYPE) FRIBIDI_PROP_TYPE_##TYPE,
-#include "fribidi_types.i"
-#undef _FRIBIDI_ADD_TYPE
- FRIBIDI_TYPES_COUNT /* Number of different character types */
- };
-
-/* Map fribidi_prop_types to fribidi_types */
- extern const FriBidiCharType fribidi_prop_to_type[];
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif