mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-12 11:49:09 +00:00
1
This commit is contained in:
@@ -0,0 +1,577 @@
|
||||
/*
|
||||
File: UnicodeUtilities.h
|
||||
|
||||
Contains: Types, constants, prototypes for Unicode Utilities (Unicode input and text utils)
|
||||
|
||||
Version: QuickTime 7.3
|
||||
|
||||
Copyright: (c) 2007 (c) 1997-2001 by Apple Computer, Inc., all rights reserved.
|
||||
|
||||
Bugs?: For bug reports, consult the following page on
|
||||
the World Wide Web:
|
||||
|
||||
http://developer.apple.com/bugreporter/
|
||||
|
||||
*/
|
||||
#ifndef __UNICODEUTILITIES__
|
||||
#define __UNICODEUTILITIES__
|
||||
|
||||
#ifndef __MACTYPES__
|
||||
#include <MacTypes.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifndef __MACLOCALES__
|
||||
#include <MacLocales.h>
|
||||
#endif
|
||||
|
||||
#ifndef __TEXTCOMMON__
|
||||
#include <TextCommon.h>
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#if PRAGMA_ONCE
|
||||
#pragma once
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#if PRAGMA_IMPORT
|
||||
#pragma import on
|
||||
#endif
|
||||
|
||||
#if PRAGMA_STRUCT_ALIGN
|
||||
#pragma options align=mac68k
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(push, 2)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack(2)
|
||||
#endif
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
CONSTANTS & DATA STRUCTURES for UCKeyTranslate & UCKeyboardLayout ('uchr' resource)
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
UCKeyOutput & related stuff
|
||||
The interpretation of UCKeyOutput depends on bits 15-14.
|
||||
If they are 01, then bits 0-13 are an index in UCKeyStateRecordsIndex (resource-wide list).
|
||||
If they are 10, then bits 0-13 are an index in UCKeySequenceDataIndex (resource-wide list),
|
||||
or if UCKeySequenceDataIndex is not present or the index is beyond the end of the list,
|
||||
then bits 0-15 are a single Unicode character.
|
||||
Otherwise, bits 0-15 are a single Unicode character; a value of 0xFFFE-0xFFFF means no character
|
||||
output.
|
||||
UCKeyCharSeq is similar, but does not support indices in UCKeyStateRecordsIndex. For bits 15-14:
|
||||
If they are 10, then bits 0-13 are an index in UCKeySequenceDataIndex (resource-wide list),
|
||||
or if UCKeySequenceDataIndex is not present or the index is beyond the end of the list,
|
||||
then bits 0-15 are a single Unicode character.
|
||||
Otherwise, bits 0-15 are a single Unicode character; a value of 0xFFFE-0xFFFF means no character
|
||||
output.
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
typedef UInt16 UCKeyOutput;
|
||||
typedef UInt16 UCKeyCharSeq;
|
||||
enum {
|
||||
kUCKeyOutputStateIndexMask = 0x4000,
|
||||
kUCKeyOutputSequenceIndexMask = 0x8000,
|
||||
kUCKeyOutputTestForIndexMask = 0xC000, /* test bits 14-15*/
|
||||
kUCKeyOutputGetIndexMask = 0x3FFF /* get bits 0-13*/
|
||||
};
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
UCKeyStateRecord & related stuff
|
||||
The UCKeyStateRecord information is used as follows. If the current state is zero,
|
||||
output stateZeroCharData and set the state to stateZeroNextState. If the current state
|
||||
is non-zero and there is an entry for it in stateEntryData, then output the corresponding
|
||||
charData and set the state to nextState. Otherwise, output the state terminator from
|
||||
UCKeyStateTerminators for the current state (or nothing if there is no UCKeyStateTerminators
|
||||
table or it has no entry for the current state), then output stateZeroCharData and set the
|
||||
state to stateZeroNextState.
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
struct UCKeyStateRecord {
|
||||
UCKeyCharSeq stateZeroCharData;
|
||||
UInt16 stateZeroNextState;
|
||||
UInt16 stateEntryCount;
|
||||
UInt16 stateEntryFormat;
|
||||
/* This is followed by an array of stateEntryCount elements*/
|
||||
/* in the specified format. Here we just show a dummy array.*/
|
||||
UInt32 stateEntryData[1];
|
||||
};
|
||||
typedef struct UCKeyStateRecord UCKeyStateRecord;
|
||||
/*
|
||||
Here are the codes for entry formats currently defined.
|
||||
Each entry maps from curState to charData and nextState.
|
||||
*/
|
||||
enum {
|
||||
kUCKeyStateEntryTerminalFormat = 0x0001,
|
||||
kUCKeyStateEntryRangeFormat = 0x0002
|
||||
};
|
||||
|
||||
/*
|
||||
For UCKeyStateEntryTerminal -
|
||||
nextState is always 0, so we don't have a field for it
|
||||
*/
|
||||
|
||||
struct UCKeyStateEntryTerminal {
|
||||
UInt16 curState;
|
||||
UCKeyCharSeq charData;
|
||||
};
|
||||
typedef struct UCKeyStateEntryTerminal UCKeyStateEntryTerminal;
|
||||
/*
|
||||
For UCKeyStateEntryRange -
|
||||
If curState >= curStateStart and curState <= curStateStart+curStateRange,
|
||||
then it matches the entry, and we transform charData and nextState as follows:
|
||||
If charData < 0xFFFE, then charData += (curState-curStateStart)*deltaMultiplier
|
||||
If nextState != 0, then nextState += (curState-curStateStart)*deltaMultiplier
|
||||
*/
|
||||
struct UCKeyStateEntryRange {
|
||||
UInt16 curStateStart;
|
||||
UInt8 curStateRange;
|
||||
UInt8 deltaMultiplier;
|
||||
UCKeyCharSeq charData;
|
||||
UInt16 nextState;
|
||||
};
|
||||
typedef struct UCKeyStateEntryRange UCKeyStateEntryRange;
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
UCKeyboardLayout & related stuff
|
||||
The UCKeyboardLayout struct given here is only for the resource header. It specifies
|
||||
offsets to the various subtables which each have their own structs, given below.
|
||||
The keyboardTypeHeadList array selects table offsets that depend on keyboardType. The
|
||||
first entry in keyboardTypeHeadList is the default entry, which will be used if the
|
||||
keyboardType passed to UCKeyTranslate does not match any other entry - i.e. does not fall
|
||||
within the range keyboardTypeFirst..keyboardTypeLast for some entry. The first entry
|
||||
should have keyboardTypeFirst = keyboardTypeLast = 0.
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
struct UCKeyboardTypeHeader {
|
||||
UInt32 keyboardTypeFirst; /* first keyboardType in this entry*/
|
||||
UInt32 keyboardTypeLast; /* last keyboardType in this entry*/
|
||||
ByteOffset keyModifiersToTableNumOffset; /* required*/
|
||||
ByteOffset keyToCharTableIndexOffset; /* required*/
|
||||
ByteOffset keyStateRecordsIndexOffset; /* 0 => no table*/
|
||||
ByteOffset keyStateTerminatorsOffset; /* 0 => no table*/
|
||||
ByteOffset keySequenceDataIndexOffset; /* 0 => no table*/
|
||||
};
|
||||
typedef struct UCKeyboardTypeHeader UCKeyboardTypeHeader;
|
||||
struct UCKeyboardLayout {
|
||||
/* header only; other tables accessed via offsets*/
|
||||
UInt16 keyLayoutHeaderFormat; /* =kUCKeyLayoutHeaderFormat*/
|
||||
UInt16 keyLayoutDataVersion; /* 0x0100 = 1.0, 0x0110 = 1.1, etc.*/
|
||||
ByteOffset keyLayoutFeatureInfoOffset; /* may be 0 */
|
||||
ItemCount keyboardTypeCount; /* Dimension for keyboardTypeHeadList[] */
|
||||
UCKeyboardTypeHeader keyboardTypeList[1];
|
||||
};
|
||||
typedef struct UCKeyboardLayout UCKeyboardLayout;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
struct UCKeyLayoutFeatureInfo {
|
||||
UInt16 keyLayoutFeatureInfoFormat; /* =kUCKeyLayoutFeatureInfoFormat*/
|
||||
UInt16 reserved;
|
||||
UniCharCount maxOutputStringLength; /* longest possible output string*/
|
||||
};
|
||||
typedef struct UCKeyLayoutFeatureInfo UCKeyLayoutFeatureInfo;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
struct UCKeyModifiersToTableNum {
|
||||
UInt16 keyModifiersToTableNumFormat; /* =kUCKeyModifiersToTableNumFormat*/
|
||||
UInt16 defaultTableNum; /* For modifier combos not in tableNum[]*/
|
||||
ItemCount modifiersCount; /* Dimension for tableNum[]*/
|
||||
UInt8 tableNum[1];
|
||||
|
||||
/* Then there is padding to a 4-byte boundary with bytes containing 0, if necessary.*/
|
||||
};
|
||||
typedef struct UCKeyModifiersToTableNum UCKeyModifiersToTableNum;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
struct UCKeyToCharTableIndex {
|
||||
UInt16 keyToCharTableIndexFormat; /* =kUCKeyToCharTableIndexFormat*/
|
||||
UInt16 keyToCharTableSize; /* Max keyCode (128 for ADB keyboards)*/
|
||||
ItemCount keyToCharTableCount; /* Dimension for keyToCharTableOffsets[] (usually 6 to 12 tables)*/
|
||||
ByteOffset keyToCharTableOffsets[1];
|
||||
|
||||
/* Each offset in keyToCharTableOffsets is from the beginning of the resource to a*/
|
||||
/* table as follows:*/
|
||||
/* UCKeyOutput keyToCharData[keyToCharTableSize];*/
|
||||
/* These tables follow the UCKeyToCharTableIndex.*/
|
||||
/* Then there is padding to a 4-byte boundary with bytes containing 0, if necessary.*/
|
||||
};
|
||||
typedef struct UCKeyToCharTableIndex UCKeyToCharTableIndex;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
struct UCKeyStateRecordsIndex {
|
||||
UInt16 keyStateRecordsIndexFormat; /* =kUCKeyStateRecordsIndexFormat*/
|
||||
UInt16 keyStateRecordCount; /* Dimension for keyStateRecordOffsets[]*/
|
||||
ByteOffset keyStateRecordOffsets[1];
|
||||
|
||||
/* Each offset in keyStateRecordOffsets is from the beginning of the resource to a*/
|
||||
/* UCKeyStateRecord. These UCKeyStateRecords follow the keyStateRecordOffsets[] array.*/
|
||||
/* Then there is padding to a 4-byte boundary with bytes containing 0, if necessary.*/
|
||||
};
|
||||
typedef struct UCKeyStateRecordsIndex UCKeyStateRecordsIndex;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
struct UCKeyStateTerminators {
|
||||
UInt16 keyStateTerminatorsFormat; /* =kUCKeyStateTerminatorsFormat*/
|
||||
UInt16 keyStateTerminatorCount; /* Dimension for keyStateTerminators[] (# of nonzero states)*/
|
||||
UCKeyCharSeq keyStateTerminators[1];
|
||||
|
||||
/* Note: keyStateTerminators[0] is terminator for state 1, etc.*/
|
||||
/* Then there is padding to a 4-byte boundary with bytes containing 0, if necessary.*/
|
||||
};
|
||||
typedef struct UCKeyStateTerminators UCKeyStateTerminators;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
struct UCKeySequenceDataIndex {
|
||||
UInt16 keySequenceDataIndexFormat; /* =kUCKeySequenceDataIndexFormat*/
|
||||
UInt16 charSequenceCount; /* Dimension of charSequenceOffsets[] is charSequenceCount+1*/
|
||||
UInt16 charSequenceOffsets[1];
|
||||
|
||||
/* Each offset in charSequenceOffsets is in bytes, from the beginning of*/
|
||||
/* UCKeySequenceDataIndex to a sequence of UniChars; the next offset indicates the*/
|
||||
/* end of the sequence. The UniChar sequences follow the UCKeySequenceDataIndex.*/
|
||||
/* Then there is padding to a 4-byte boundary with bytes containing 0, if necessary.*/
|
||||
};
|
||||
typedef struct UCKeySequenceDataIndex UCKeySequenceDataIndex;
|
||||
/* -------------------------------------------------------------------------------------------------*/
|
||||
/* Current format codes for the various tables (bits 12-15 indicate which table)*/
|
||||
|
||||
enum {
|
||||
kUCKeyLayoutHeaderFormat = 0x1002,
|
||||
kUCKeyLayoutFeatureInfoFormat = 0x2001,
|
||||
kUCKeyModifiersToTableNumFormat = 0x3001,
|
||||
kUCKeyToCharTableIndexFormat = 0x4001,
|
||||
kUCKeyStateRecordsIndexFormat = 0x5001,
|
||||
kUCKeyStateTerminatorsFormat = 0x6001,
|
||||
kUCKeySequenceDataIndexFormat = 0x7001
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
Constants for keyAction parameter in UCKeyTranslate()
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
enum {
|
||||
kUCKeyActionDown = 0, /* key is going down*/
|
||||
kUCKeyActionUp = 1, /* key is going up*/
|
||||
kUCKeyActionAutoKey = 2, /* auto-key down*/
|
||||
kUCKeyActionDisplay = 3 /* get information for key display (as in Key Caps) */
|
||||
};
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
Bit assignments & masks for keyTranslateOptions parameter in UCKeyTranslate()
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
enum {
|
||||
kUCKeyTranslateNoDeadKeysBit = 0 /* Prevents setting any new dead-key states*/
|
||||
};
|
||||
|
||||
enum {
|
||||
kUCKeyTranslateNoDeadKeysMask = 1L << kUCKeyTranslateNoDeadKeysBit
|
||||
};
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
CONSTANTS & DATA STRUCTURES for Unicode Collation
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
/* constant for LocaleOperationClass*/
|
||||
enum {
|
||||
kUnicodeCollationClass = FOUR_CHAR_CODE('ucol')
|
||||
};
|
||||
|
||||
typedef struct OpaqueCollatorRef* CollatorRef;
|
||||
typedef UInt32 UCCollateOptions;
|
||||
enum {
|
||||
/* Sensitivity options*/
|
||||
kUCCollateComposeInsensitiveMask = 1L << 1,
|
||||
kUCCollateWidthInsensitiveMask = 1L << 2,
|
||||
kUCCollateCaseInsensitiveMask = 1L << 3,
|
||||
kUCCollateDiacritInsensitiveMask = 1L << 4, /* Other general options */
|
||||
kUCCollatePunctuationSignificantMask = 1L << 15, /* Number-handling options */
|
||||
kUCCollateDigitsOverrideMask = 1L << 16,
|
||||
kUCCollateDigitsAsNumberMask = 1L << 17
|
||||
};
|
||||
|
||||
enum {
|
||||
kUCCollateStandardOptions = kUCCollateComposeInsensitiveMask | kUCCollateWidthInsensitiveMask
|
||||
};
|
||||
|
||||
/*
|
||||
Special values to specify various invariant orders for UCCompareTextNoLocale.
|
||||
These values use the high 8 bits of UCCollateOptions.
|
||||
*/
|
||||
enum {
|
||||
kUCCollateTypeHFSExtended = 1
|
||||
};
|
||||
|
||||
/* These constants are used for masking and shifting the invariant order type.*/
|
||||
enum {
|
||||
kUCCollateTypeSourceMask = 0x000000FF,
|
||||
kUCCollateTypeShiftBits = 24
|
||||
};
|
||||
|
||||
enum {
|
||||
kUCCollateTypeMask = kUCCollateTypeSourceMask << kUCCollateTypeShiftBits
|
||||
};
|
||||
|
||||
|
||||
typedef UInt32 UCCollationValue;
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
CONSTANTS & DATA STRUCTURES for Unicode TextBreak
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
/* constant for LocaleOperationClass*/
|
||||
enum {
|
||||
kUnicodeTextBreakClass = FOUR_CHAR_CODE('ubrk')
|
||||
};
|
||||
|
||||
typedef struct OpaqueTextBreakLocatorRef* TextBreakLocatorRef;
|
||||
typedef UInt32 UCTextBreakType;
|
||||
enum {
|
||||
kUCTextBreakCharMask = 1L << 0,
|
||||
kUCTextBreakClusterMask = 1L << 2,
|
||||
kUCTextBreakWordMask = 1L << 4,
|
||||
kUCTextBreakLineMask = 1L << 6
|
||||
};
|
||||
|
||||
typedef UInt32 UCTextBreakOptions;
|
||||
enum {
|
||||
kUCTextBreakLeadingEdgeMask = 1L << 0,
|
||||
kUCTextBreakGoBackwardsMask = 1L << 1,
|
||||
kUCTextBreakIterateMask = 1L << 2
|
||||
};
|
||||
|
||||
/*
|
||||
-------------------------------------------------------------------------------------------------
|
||||
FUNCTION PROTOTYPES
|
||||
-------------------------------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* UCKeyTranslate()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesCoreLib 8.5 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( OSStatus )
|
||||
UCKeyTranslate(
|
||||
const UCKeyboardLayout * keyLayoutPtr,
|
||||
UInt16 virtualKeyCode,
|
||||
UInt16 keyAction,
|
||||
UInt32 modifierKeyState,
|
||||
UInt32 keyboardType,
|
||||
OptionBits keyTranslateOptions,
|
||||
UInt32 * deadKeyState,
|
||||
UniCharCount maxStringLength,
|
||||
UniCharCount * actualStringLength,
|
||||
UniChar unicodeString[]);
|
||||
|
||||
|
||||
/* Standard collation functions*/
|
||||
/*
|
||||
* UCCreateCollator()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCCreateCollator(
|
||||
LocaleRef locale,
|
||||
LocaleOperationVariant opVariant,
|
||||
UCCollateOptions options,
|
||||
CollatorRef * collatorRef);
|
||||
|
||||
|
||||
/*
|
||||
* UCGetCollationKey()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCGetCollationKey(
|
||||
CollatorRef collatorRef,
|
||||
const UniChar * textPtr,
|
||||
UniCharCount textLength,
|
||||
ItemCount maxKeySize,
|
||||
ItemCount * actualKeySize,
|
||||
UCCollationValue collationKey[]);
|
||||
|
||||
|
||||
/*
|
||||
* UCCompareCollationKeys()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesCoreLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCCompareCollationKeys(
|
||||
const UCCollationValue * key1Ptr,
|
||||
ItemCount key1Length,
|
||||
const UCCollationValue * key2Ptr,
|
||||
ItemCount key2Length,
|
||||
Boolean * equivalent,
|
||||
SInt32 * order);
|
||||
|
||||
|
||||
/*
|
||||
* UCCompareText()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCCompareText(
|
||||
CollatorRef collatorRef,
|
||||
const UniChar * text1Ptr,
|
||||
UniCharCount text1Length,
|
||||
const UniChar * text2Ptr,
|
||||
UniCharCount text2Length,
|
||||
Boolean * equivalent,
|
||||
SInt32 * order);
|
||||
|
||||
|
||||
/*
|
||||
* UCDisposeCollator()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCDisposeCollator(CollatorRef * collatorRef);
|
||||
|
||||
|
||||
/* Simple collation using default locale*/
|
||||
|
||||
/*
|
||||
* UCCompareTextDefault()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCCompareTextDefault(
|
||||
UCCollateOptions options,
|
||||
const UniChar * text1Ptr,
|
||||
UniCharCount text1Length,
|
||||
const UniChar * text2Ptr,
|
||||
UniCharCount text2Length,
|
||||
Boolean * equivalent,
|
||||
SInt32 * order);
|
||||
|
||||
|
||||
|
||||
/* Simple locale-independent collation*/
|
||||
|
||||
/*
|
||||
* UCCompareTextNoLocale()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesCoreLib 8.6 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCCompareTextNoLocale(
|
||||
UCCollateOptions options,
|
||||
const UniChar * text1Ptr,
|
||||
UniCharCount text1Length,
|
||||
const UniChar * text2Ptr,
|
||||
UniCharCount text2Length,
|
||||
Boolean * equivalent,
|
||||
SInt32 * order);
|
||||
|
||||
|
||||
/* Standard text break (text boundary) functions*/
|
||||
/*
|
||||
* UCCreateTextBreakLocator()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 9.0 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCCreateTextBreakLocator(
|
||||
LocaleRef locale,
|
||||
LocaleOperationVariant opVariant,
|
||||
UCTextBreakType breakTypes,
|
||||
TextBreakLocatorRef * breakRef);
|
||||
|
||||
|
||||
/*
|
||||
* UCFindTextBreak()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 9.0 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCFindTextBreak(
|
||||
TextBreakLocatorRef breakRef,
|
||||
UCTextBreakType breakType,
|
||||
UCTextBreakOptions options,
|
||||
const UniChar * textPtr,
|
||||
UniCharCount textLength,
|
||||
UniCharArrayOffset startOffset,
|
||||
UniCharArrayOffset * breakOffset);
|
||||
|
||||
|
||||
/*
|
||||
* UCDisposeTextBreakLocator()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in UnicodeUtilitiesLib 9.0 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
UCDisposeTextBreakLocator(TextBreakLocatorRef * breakRef);
|
||||
|
||||
|
||||
|
||||
#if PRAGMA_STRUCT_ALIGN
|
||||
#pragma options align=reset
|
||||
#elif PRAGMA_STRUCT_PACKPUSH
|
||||
#pragma pack(pop)
|
||||
#elif PRAGMA_STRUCT_PACK
|
||||
#pragma pack()
|
||||
#endif
|
||||
|
||||
#ifdef PRAGMA_IMPORT_OFF
|
||||
#pragma import off
|
||||
#elif PRAGMA_IMPORT
|
||||
#pragma import reset
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __UNICODEUTILITIES__ */
|
||||
|
||||
Reference in New Issue
Block a user