summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/Script.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Script.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/Script.h')
-rw-r--r--common/quicktime_win32/Script.h1422
1 files changed, 1422 insertions, 0 deletions
diff --git a/common/quicktime_win32/Script.h b/common/quicktime_win32/Script.h
new file mode 100644
index 0000000..55131dd
--- /dev/null
+++ b/common/quicktime_win32/Script.h
@@ -0,0 +1,1422 @@
+/*
+ File: Script.h
+
+ Contains: Script Manager interfaces
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 1986-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 __SCRIPT__
+#define __SCRIPT__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __INTLRESOURCES__
+#include <IntlResources.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
+
+/* Meta script codes:*/
+enum {
+ smSystemScript = -1, /* designates system script.*/
+ smCurrentScript = -2, /* designates current font script.*/
+ smAllScripts = -3 /* designates any script*/
+};
+
+/*
+ Script codes:
+ These specify a Mac OS encoding that is related to a FOND ID range.
+ Some of the encodings have several variants (e.g. for different localized systems)
+ which all share the same script code.
+ Not all of these script codes are currently supported by Apple software.
+ Notes:
+ - Script code 0 (smRoman) is also used (instead of smGreek) for the Greek encoding
+ in the Greek localized system.
+ - Script code 28 (smEthiopic) is also used for the Inuit encoding in the Inuktitut
+ system.
+*/
+enum {
+ smRoman = 0,
+ smJapanese = 1,
+ smTradChinese = 2, /* Traditional Chinese*/
+ smKorean = 3,
+ smArabic = 4,
+ smHebrew = 5,
+ smGreek = 6,
+ smCyrillic = 7,
+ smRSymbol = 8, /* Right-left symbol*/
+ smDevanagari = 9,
+ smGurmukhi = 10,
+ smGujarati = 11,
+ smOriya = 12,
+ smBengali = 13,
+ smTamil = 14,
+ smTelugu = 15,
+ smKannada = 16, /* Kannada/Kanarese*/
+ smMalayalam = 17,
+ smSinhalese = 18,
+ smBurmese = 19,
+ smKhmer = 20, /* Khmer/Cambodian*/
+ smThai = 21,
+ smLao = 22,
+ smGeorgian = 23,
+ smArmenian = 24,
+ smSimpChinese = 25, /* Simplified Chinese*/
+ smTibetan = 26,
+ smMongolian = 27,
+ smEthiopic = 28,
+ smGeez = 28, /* Synonym for smEthiopic*/
+ smCentralEuroRoman = 29, /* For Czech, Slovak, Polish, Hungarian, Baltic langs*/
+ smVietnamese = 30,
+ smExtArabic = 31, /* extended Arabic*/
+ smUninterp = 32 /* uninterpreted symbols, e.g. palette symbols*/
+};
+
+/* Extended script code for full Unicode input*/
+enum {
+ smUnicodeScript = 0x7E
+};
+
+/* Obsolete script code names (kept for backward compatibility):*/
+enum {
+ smChinese = 2, /* (Use smTradChinese or smSimpChinese)*/
+ smRussian = 7, /* Use smCyrillic*/
+ /* smMaldivian = 25: deleted, no code for Maldivian*/
+ smLaotian = 22, /* Use smLao */
+ smAmharic = 28, /* Use smEthiopic or smGeez*/
+ smSlavic = 29, /* Use smCentralEuroRoman*/
+ smEastEurRoman = 29, /* Use smCentralEuroRoman*/
+ smSindhi = 31, /* Use smExtArabic*/
+ smKlingon = 32
+};
+
+/*
+ Language codes:
+ These specify a language implemented using a particular Mac OS encoding.
+ Not all of these language codes are currently supported by Apple software.
+*/
+enum {
+ langEnglish = 0, /* smRoman script*/
+ langFrench = 1, /* smRoman script*/
+ langGerman = 2, /* smRoman script*/
+ langItalian = 3, /* smRoman script*/
+ langDutch = 4, /* smRoman script*/
+ langSwedish = 5, /* smRoman script*/
+ langSpanish = 6, /* smRoman script*/
+ langDanish = 7, /* smRoman script*/
+ langPortuguese = 8, /* smRoman script*/
+ langNorwegian = 9, /* smRoman script*/
+ langHebrew = 10, /* smHebrew script*/
+ langJapanese = 11, /* smJapanese script*/
+ langArabic = 12, /* smArabic script*/
+ langFinnish = 13, /* smRoman script*/
+ langGreek = 14, /* Greek script using smRoman script code*/
+ langIcelandic = 15, /* modified smRoman/Icelandic script*/
+ langMaltese = 16, /* Roman script*/
+ langTurkish = 17, /* modified smRoman/Turkish script*/
+ langCroatian = 18, /* modified smRoman/Croatian script*/
+ langTradChinese = 19, /* Chinese (Mandarin) in traditional characters*/
+ langUrdu = 20, /* smArabic script*/
+ langHindi = 21, /* smDevanagari script*/
+ langThai = 22, /* smThai script*/
+ langKorean = 23 /* smKorean script*/
+};
+
+enum {
+ langLithuanian = 24, /* smCentralEuroRoman script*/
+ langPolish = 25, /* smCentralEuroRoman script*/
+ langHungarian = 26, /* smCentralEuroRoman script*/
+ langEstonian = 27, /* smCentralEuroRoman script*/
+ langLatvian = 28, /* smCentralEuroRoman script*/
+ langSami = 29, /* language of the Sami people of N. Scandinavia */
+ langFaroese = 30, /* modified smRoman/Icelandic script */
+ langFarsi = 31, /* modified smArabic/Farsi script*/
+ langPersian = 31, /* Synonym for langFarsi*/
+ langRussian = 32, /* smCyrillic script*/
+ langSimpChinese = 33, /* Chinese (Mandarin) in simplified characters*/
+ langFlemish = 34, /* smRoman script*/
+ langIrishGaelic = 35, /* smRoman or modified smRoman/Celtic script (without dot above) */
+ langAlbanian = 36, /* smRoman script*/
+ langRomanian = 37, /* modified smRoman/Romanian script*/
+ langCzech = 38, /* smCentralEuroRoman script*/
+ langSlovak = 39, /* smCentralEuroRoman script*/
+ langSlovenian = 40, /* modified smRoman/Croatian script*/
+ langYiddish = 41, /* smHebrew script*/
+ langSerbian = 42, /* smCyrillic script*/
+ langMacedonian = 43, /* smCyrillic script*/
+ langBulgarian = 44, /* smCyrillic script*/
+ langUkrainian = 45, /* modified smCyrillic/Ukrainian script*/
+ langByelorussian = 46, /* smCyrillic script*/
+ langBelorussian = 46 /* Synonym for langByelorussian */
+};
+
+enum {
+ langUzbek = 47, /* Cyrillic script*/
+ langKazakh = 48, /* Cyrillic script*/
+ langAzerbaijani = 49, /* Azerbaijani in Cyrillic script*/
+ langAzerbaijanAr = 50, /* Azerbaijani in Arabic script*/
+ langArmenian = 51, /* smArmenian script*/
+ langGeorgian = 52, /* smGeorgian script*/
+ langMoldavian = 53, /* smCyrillic script*/
+ langKirghiz = 54, /* Cyrillic script*/
+ langTajiki = 55, /* Cyrillic script*/
+ langTurkmen = 56, /* Cyrillic script*/
+ langMongolian = 57, /* Mongolian in smMongolian script*/
+ langMongolianCyr = 58, /* Mongolian in Cyrillic script*/
+ langPashto = 59, /* Arabic script*/
+ langKurdish = 60, /* smArabic script*/
+ langKashmiri = 61, /* Arabic script*/
+ langSindhi = 62, /* Arabic script*/
+ langTibetan = 63, /* smTibetan script*/
+ langNepali = 64, /* smDevanagari script*/
+ langSanskrit = 65, /* smDevanagari script*/
+ langMarathi = 66, /* smDevanagari script*/
+ langBengali = 67, /* smBengali script*/
+ langAssamese = 68, /* smBengali script*/
+ langGujarati = 69, /* smGujarati script*/
+ langPunjabi = 70 /* smGurmukhi script*/
+};
+
+enum {
+ langOriya = 71, /* smOriya script*/
+ langMalayalam = 72, /* smMalayalam script*/
+ langKannada = 73, /* smKannada script*/
+ langTamil = 74, /* smTamil script*/
+ langTelugu = 75, /* smTelugu script*/
+ langSinhalese = 76, /* smSinhalese script*/
+ langBurmese = 77, /* smBurmese script*/
+ langKhmer = 78, /* smKhmer script*/
+ langLao = 79, /* smLao script*/
+ langVietnamese = 80, /* smVietnamese script*/
+ langIndonesian = 81, /* smRoman script*/
+ langTagalog = 82, /* Roman script*/
+ langMalayRoman = 83, /* Malay in smRoman script*/
+ langMalayArabic = 84, /* Malay in Arabic script*/
+ langAmharic = 85, /* smEthiopic script*/
+ langTigrinya = 86, /* smEthiopic script*/
+ langOromo = 87, /* smEthiopic script*/
+ langSomali = 88, /* smRoman script*/
+ langSwahili = 89, /* smRoman script*/
+ langKinyarwanda = 90, /* smRoman script*/
+ langRuanda = 90, /* synonym for langKinyarwanda*/
+ langRundi = 91, /* smRoman script*/
+ langNyanja = 92, /* smRoman script*/
+ langChewa = 92, /* synonym for langNyanja*/
+ langMalagasy = 93, /* smRoman script*/
+ langEsperanto = 94 /* Roman script*/
+};
+
+enum {
+ langWelsh = 128, /* modified smRoman/Celtic script*/
+ langBasque = 129, /* smRoman script*/
+ langCatalan = 130, /* smRoman script*/
+ langLatin = 131, /* smRoman script*/
+ langQuechua = 132, /* smRoman script*/
+ langGuarani = 133, /* smRoman script*/
+ langAymara = 134, /* smRoman script*/
+ langTatar = 135, /* Cyrillic script*/
+ langUighur = 136, /* Arabic script*/
+ langDzongkha = 137, /* (lang of Bhutan) smTibetan script*/
+ langJavaneseRom = 138, /* Javanese in smRoman script*/
+ langSundaneseRom = 139, /* Sundanese in smRoman script*/
+ langGalician = 140, /* smRoman script*/
+ langAfrikaans = 141 /* smRoman script */
+};
+
+enum {
+ langBreton = 142, /* smRoman or modified smRoman/Celtic script */
+ langInuktitut = 143, /* Inuit script using smEthiopic script code */
+ langScottishGaelic = 144, /* smRoman or modified smRoman/Celtic script */
+ langManxGaelic = 145, /* smRoman or modified smRoman/Celtic script */
+ langIrishGaelicScript = 146, /* modified smRoman/Gaelic script (using dot above) */
+ langTongan = 147, /* smRoman script */
+ langGreekPoly = 148, /* smGreek script */
+ langGreenlandic = 149, /* smRoman script */
+ langAzerbaijanRoman = 150 /* Azerbaijani in Roman script */
+};
+
+enum {
+ langUnspecified = 32767 /* Special code for use in resources (such as 'itlm') */
+};
+
+/*
+ Obsolete language code names (kept for backward compatibility):
+ Misspelled, ambiguous, misleading, considered pejorative, archaic, etc.
+*/
+enum {
+ langPortugese = 8, /* Use langPortuguese*/
+ langMalta = 16, /* Use langMaltese*/
+ langYugoslavian = 18, /* (use langCroatian, langSerbian, etc.)*/
+ langChinese = 19, /* (use langTradChinese or langSimpChinese)*/
+ langLettish = 28, /* Use langLatvian */
+ langLapponian = 29, /* Use langSami*/
+ langLappish = 29, /* Use langSami*/
+ langSaamisk = 29, /* Use langSami */
+ langFaeroese = 30, /* Use langFaroese */
+ langIrish = 35, /* Use langIrishGaelic */
+ langGalla = 87, /* Use langOromo */
+ langAfricaans = 141 /* Use langAfrikaans */
+};
+
+/*
+ Region codes:
+ These typically specify a combination of a language code and a particular region.
+ Some of these numeric values are reserved just for extra resource IDs associated
+ with certain regions; these are not actual region codes, and are noted in the comments.
+ Not all of the region codes are currently supported by Apple software.
+ When relevant, the following list also provides:
+ - The Apple part number (P/N) code for software localized for the specified region.
+ - The two-letter ISO language and country codes (from ISO 639 and ISO 3166). The
+ language code (lowercase) is first, then '_', then the country code (uppercase).
+*/
+
+enum {
+ /* P/N ISO codes comments*/
+ verUS = 0, /* en_US*/
+ verFrance = 1, /* F fr_FR*/
+ verBritain = 2, /* B en_GB*/
+ verGermany = 3, /* D de_DE*/
+ verItaly = 4, /* T it_IT*/
+ verNetherlands = 5, /* N nl_NL*/
+ verFlemish = 6, /* FN nl_BE Flemish (Dutch) for Belgium */
+ verSweden = 7, /* S sv_SE*/
+ verSpain = 8, /* E es_ES Spanish for Spain*/
+ verDenmark = 9, /* DK da_DK*/
+ verPortugal = 10, /* PO pt_PT Portuguese for Portugal*/
+ verFrCanada = 11, /* C fr_CA French for Canada*/
+ verNorway = 12, /* H no_NO,nb_NO Bokm.l*/
+ verIsrael = 13, /* HB he_IL,iw_IL Hebrew*/
+ verJapan = 14, /* J ja_JP*/
+ verAustralia = 15, /* X en_AU English for Australia*/
+ verArabic = 16, /* AB ar Arabic for N Africa, Arabian peninsula, Levant*/
+ verFinland = 17, /* K fi_FI*/
+ verFrSwiss = 18, /* SF fr_CH French Swiss*/
+ verGrSwiss = 19, /* SD de_CH German Swiss*/
+ verGreece = 20, /* GR el_GR Monotonic Greek (modern)*/
+ verIceland = 21, /* IS is_IS*/
+ verMalta = 22, /* MA mt_MT*/
+ verCyprus = 23, /* CY _CY Greek or Turkish language? Checking...*/
+ verTurkey = 24, /* TU tr_TR*/
+ verYugoCroatian = 25 /* YU Croatian for Yugoslavia; now use verCroatia (68)*/
+};
+
+enum {
+ verNetherlandsComma = 26, /* ID for KCHR resource - Dutch*/
+ verBelgiumLuxPoint = 27, /* ID for KCHR resource - Belgium*/
+ verCanadaComma = 28, /* ID for KCHR resource - Canadian ISO*/
+ verCanadaPoint = 29, /* ID for KCHR resource - Canadian; now unused*/
+ vervariantPortugal = 30, /* ID for resource; now unused*/
+ vervariantNorway = 31, /* ID for resource; now unused*/
+ vervariantDenmark = 32 /* ID for KCHR resource - Danish Mac Plus*/
+};
+
+enum {
+ verIndiaHindi = 33, /* hi_IN Hindi for India*/
+ verPakistanUrdu = 34, /* UR ur_PK Urdu for Pakistan */
+ verTurkishModified = 35,
+ verItalianSwiss = 36, /* ST it_CH Italian Swiss*/
+ verInternational = 37, /* Z en English for international use */
+ /* 38 is unassigned*/
+ verRomania = 39, /* RO ro_RO*/
+ verGreecePoly = 40, /* grc Polytonic Greek (classical) */
+ verLithuania = 41, /* LT lt_LT*/
+ verPoland = 42, /* PL pl_PL*/
+ verHungary = 43, /* MG hu_HU*/
+ verEstonia = 44, /* EE et_EE*/
+ verLatvia = 45, /* LV lv_LV*/
+ verSami = 46, /* se */
+ verFaroeIsl = 47, /* FA fo_FO */
+ verIran = 48, /* PS fa_IR Persian/Farsi*/
+ verRussia = 49, /* RS ru_RU Russian*/
+ verIreland = 50, /* GA ga_IE Irish Gaelic for Ireland (without dot above) */
+ verKorea = 51, /* KH ko_KR*/
+ verChina = 52, /* CH zh_CN Simplified Chinese*/
+ verTaiwan = 53, /* TA zh_TW Traditional Chinese*/
+ verThailand = 54, /* TH th_TH*/
+ verScriptGeneric = 55, /* SS Generic script system (no language or script) */
+ verCzech = 56, /* CZ cs_CZ*/
+ verSlovak = 57, /* SL sk_SK*/
+ verFarEastGeneric = 58, /* FE Generic Far East system (no language or script) */
+ verMagyar = 59, /* Unused; see verHungary*/
+ verBengali = 60, /* bn Bangladesh or India*/
+ verByeloRussian = 61 /* BY be_BY*/
+};
+
+enum {
+ verUkraine = 62, /* UA uk_UA*/
+ /* 63 is unassigned*/
+ verGreeceAlt = 64, /* unused */
+ verSerbian = 65, /* SR sr_YU,sh_YU */
+ verSlovenian = 66, /* SV sl_SI */
+ verMacedonian = 67, /* MD mk_MK */
+ verCroatia = 68, /* CR hr_HR,sh_HR*/
+ /* 69 is unassigned*/
+ verGermanReformed = 70, /* de_DE Reformed orthography (used formerly unassigned 70) */
+ verBrazil = 71, /* BR pt_BR Portuguese for Brazil*/
+ verBulgaria = 72, /* BG bg_BG*/
+ verCatalonia = 73, /* CA ca_ES Catalan for Spain*/
+ verMultilingual = 74, /* ZM mul (no language or script)*/
+ verScottishGaelic = 75, /* GD gd*/
+ verManxGaelic = 76, /* GV gv Isle of Man*/
+ verBreton = 77, /* BZ br*/
+ verNunavut = 78, /* IU iu_CA Inuktitut for Canada*/
+ verWelsh = 79, /* CU cy*/
+ /* 80 is ID for KCHR resource - Canadian CSA*/
+ verIrishGaelicScript = 81, /* GS ga_IE Irish Gaelic for Ireland (using dot above)*/
+ verEngCanada = 82, /* V en_CA English for Canada*/
+ verBhutan = 83, /* BH dz_BT Dzongkha for Bhutan*/
+ verArmenian = 84, /* HY hy_AM*/
+ verGeorgian = 85, /* KR ka_GE*/
+ verSpLatinAmerica = 86, /* LA es Spanish for Latin America*/
+ /* 87 is ID for KCHR resource - Spanish ISO*/
+ verTonga = 88, /* TS to_TO*/
+ /* 89 is ID for KCHR resource - Polish Modified*/
+ /* 90 is ID for KCHR resource - Catalan ISO*/
+ verFrenchUniversal = 91, /* fr French generic*/
+ verAustria = 92, /* AU de_AT German for Austria*/
+ /* Y 93 is unused alternate for verSpLatinAmerica*/
+ verGujarati = 94, /* gu_IN*/
+ verPunjabi = 95, /* pa Pakistan or India*/
+ verIndiaUrdu = 96, /* ur_IN Urdu for India*/
+ verVietnam = 97 /* vi_VN*/
+};
+
+enum {
+ verFrBelgium = 98, /* BF fr_BE French for Belgium */
+ verUzbek = 99, /* BD uz_UZ */
+ verSingapore = 100, /* SG */
+ verNynorsk = 101, /* NY nn_NO Norwegian Nynorsk */
+ verAfrikaans = 102, /* AK af_ZA */
+ verEsperanto = 103, /* eo */
+ verMarathi = 104, /* mr_IN */
+ verTibetan = 105, /* bo */
+ verNepal = 106, /* ne_NP */
+ verGreenland = 107, /* kl */
+ verIrelandEnglish = 108 /* en_IE English for Ireland, with Euro for currency*/
+};
+
+/*
+ Other extra resource IDs assigned in the same number space:
+ 179 is ID for KCHR & itl_ resources - Cornish
+ 581 is ID for KCHR resource - Irish Gaelic script alternate
+ 582 is ID for KCHR resource - Ogham
+ 779 is ID for KCHR resource - Welsh alternate
+ 1111 is ID for KCHR resource - French numeric
+*/
+
+/*
+ Obsolete region code names (kept for backward compatibility):
+ Misspelled or alternate form, ambiguous, misleading, considered pejorative, archaic, etc.
+*/
+enum {
+ verFrBelgiumLux = 6, /* Incorrect; 6 is Flemish, not French, for Belgium; use verFlemish */
+ verBelgiumLux = 6, /* Use verFlemish*/
+ verArabia = 16, /* Use verArabic*/
+ verYugoslavia = 25, /* Use verYugoCroatian (same number, now unused), or newer verCroatia*/
+ verIndia = 33, /* Use verIndiaHindi*/
+ verPakistan = 34, /* Use verPakistanUrdu */
+ verRumania = 39, /* Alternate for verRomania */
+ verGreekAncient = 40, /* Use verGreecePoly */
+ verLapland = 46, /* Use verSami */
+ verFaeroeIsl = 47, /* Use verFaroeIsl */
+ verGenericFE = 58, /* Use verFarEastGeneric */
+ verBelarus = 61, /* Alternate for verByelorussian */
+ verUkrania = 62, /* Use verUkraine*/
+ verAlternateGr = 64, /* Use verGreeceAlt */
+ verSerbia = 65, /* Alternate for verSerbian */
+ verSlovenia = 66, /* Alternate for verSlovenian */
+ verMacedonia = 67, /* Alternate for verMacedonian */
+ verBrittany = 77, /* Alternate for verBreton */
+ verWales = 79, /* Alternate for verWelsh */
+ verArmenia = 84, /* Alternate for verArmenian */
+ verGeorgia = 85, /* Alternate for verGeorgian */
+ verAustriaGerman = 92, /* Use verAustria */
+ verTibet = 105 /* Use verTibetan */
+};
+
+enum {
+ minCountry = verUS,
+ maxCountry = verGreenland
+};
+
+enum {
+ /* Calendar Codes */
+ calGregorian = 0,
+ calArabicCivil = 1,
+ calArabicLunar = 2,
+ calJapanese = 3,
+ calJewish = 4,
+ calCoptic = 5,
+ calPersian = 6
+};
+
+enum {
+ /* Integer Format Codes */
+ intWestern = 0,
+ intArabic = 1,
+ intRoman = 2,
+ intJapanese = 3,
+ intEuropean = 4,
+ intOutputMask = 0x8000
+};
+
+enum {
+ /* CharByte byte types */
+ smSingleByte = 0,
+ smFirstByte = -1,
+ smLastByte = 1,
+ smMiddleByte = 2
+};
+
+enum {
+ /* CharType field masks */
+ smcTypeMask = 0x000F,
+ smcReserved = 0x00F0,
+ smcClassMask = 0x0F00,
+ smcOrientationMask = 0x1000, /*two-byte script glyph orientation*/
+ smcRightMask = 0x2000,
+ smcUpperMask = 0x4000,
+ smcDoubleMask = 0x8000
+};
+
+enum {
+ /* Basic CharType character types */
+ smCharPunct = 0x0000,
+ smCharAscii = 0x0001,
+ smCharEuro = 0x0007,
+ smCharExtAscii = 0x0007, /* More correct synonym for smCharEuro */
+ /* Additional CharType character types for script systems */
+ smCharKatakana = 0x0002, /*Japanese Katakana*/
+ smCharHiragana = 0x0003, /*Japanese Hiragana*/
+ smCharIdeographic = 0x0004, /*Hanzi, Kanji, Hanja*/
+ smCharTwoByteGreek = 0x0005, /*2-byte Greek in Far East systems*/
+ smCharTwoByteRussian = 0x0006, /*2-byte Cyrillic in Far East systems*/
+ smCharBidirect = 0x0008, /*Arabic/Hebrew*/
+ smCharContextualLR = 0x0009, /*Contextual left-right: Thai, Indic scripts*/
+ smCharNonContextualLR = 0x000A, /*Non-contextual left-right: Cyrillic, Greek*/
+ smCharHangul = 0x000C, /*Korean Hangul*/
+ smCharJamo = 0x000D, /*Korean Jamo*/
+ smCharBopomofo = 0x000E, /*Chinese Bopomofo*/
+ smCharGanaKana = 0x000F, /*Shared for Japanese Hiragana & Katakana*/
+ /* old names for some of above, for backward compatibility */
+ smCharFISKana = 0x0002, /*Katakana*/
+ smCharFISGana = 0x0003, /*Hiragana*/
+ smCharFISIdeo = 0x0004 /*Hanzi, Kanji, Hanja*/
+};
+
+enum {
+ smCharFISGreek = 0x0005, /*2-byte Greek in Far East systems*/
+ smCharFISRussian = 0x0006, /*2-byte Cyrillic in Far East systems*/
+ /* CharType classes for punctuation (smCharPunct) */
+ smPunctNormal = 0x0000,
+ smPunctNumber = 0x0100,
+ smPunctSymbol = 0x0200,
+ smPunctBlank = 0x0300, /* Additional CharType classes for punctuation in two-byte systems */
+ smPunctRepeat = 0x0400, /* repeat marker */
+ smPunctGraphic = 0x0500, /* line graphics */
+ /* CharType Katakana and Hiragana classes for two-byte systems */
+ smKanaSmall = 0x0100, /*small kana character*/
+ smKanaHardOK = 0x0200, /*can have dakuten*/
+ smKanaSoftOK = 0x0300, /*can have dakuten or han-dakuten*/
+ /* CharType Ideographic classes for two-byte systems */
+ smIdeographicLevel1 = 0x0000, /*level 1 char*/
+ smIdeographicLevel2 = 0x0100, /*level 2 char*/
+ smIdeographicUser = 0x0200, /*user char*/
+ /* old names for above, for backward compatibility */
+ smFISClassLvl1 = 0x0000, /*level 1 char*/
+ smFISClassLvl2 = 0x0100, /*level 2 char*/
+ smFISClassUser = 0x0200, /*user char*/
+ /* CharType Jamo classes for Korean systems */
+ smJamoJaeum = 0x0000, /*simple consonant char*/
+ smJamoBogJaeum = 0x0100, /*complex consonant char*/
+ smJamoMoeum = 0x0200, /*simple vowel char*/
+ smJamoBogMoeum = 0x0300 /*complex vowel char*/
+};
+
+enum {
+ /* CharType glyph orientation for two-byte systems */
+ smCharHorizontal = 0x0000, /* horizontal character form, or for both */
+ smCharVertical = 0x1000, /* vertical character form */
+ /* CharType directions */
+ smCharLeft = 0x0000,
+ smCharRight = 0x2000, /* CharType case modifers */
+ smCharLower = 0x0000,
+ smCharUpper = 0x4000, /* CharType character size modifiers (1 or multiple bytes). */
+ smChar1byte = 0x0000,
+ smChar2byte = 0x8000
+};
+
+enum {
+ /* TransliterateText target types for Roman */
+ smTransAscii = 0, /*convert to ASCII*/
+ smTransNative = 1, /*convert to font script*/
+ smTransCase = 0xFE, /*convert case for all text*/
+ smTransSystem = 0xFF, /*convert to system script*/
+ /* TransliterateText target types for two-byte scripts */
+ smTransAscii1 = 2, /*1-byte Roman*/
+ smTransAscii2 = 3, /*2-byte Roman*/
+ smTransKana1 = 4, /*1-byte Japanese Katakana*/
+ smTransKana2 = 5 /*2-byte Japanese Katakana*/
+};
+
+enum {
+ smTransGana2 = 7, /*2-byte Japanese Hiragana (no 1-byte Hiragana)*/
+ smTransHangul2 = 8, /*2-byte Korean Hangul*/
+ smTransJamo2 = 9, /*2-byte Korean Jamo*/
+ smTransBopomofo2 = 10, /*2-byte Chinese Bopomofo*/
+ /* TransliterateText target modifiers */
+ smTransLower = 0x4000, /*target becomes lowercase*/
+ smTransUpper = 0x8000, /*target becomes uppercase*/
+ /* TransliterateText resource format numbers */
+ smTransRuleBaseFormat = 1, /*Rule based trsl resource format */
+ smTransHangulFormat = 2, /*Table based Hangul trsl resource format*/
+ /* TransliterateText property flags */
+ smTransPreDoubleByting = 1, /*Convert all text to double byte before transliteration*/
+ smTransPreLowerCasing = 2 /*Convert all text to lower case before transliteration*/
+};
+
+enum {
+ /* TransliterateText source mask - general */
+ smMaskAll = (long)0xFFFFFFFF, /*Convert all text*/
+ /* TransliterateText source masks */
+ smMaskAscii = 0x00000001, /*2^smTransAscii*/
+ smMaskNative = 0x00000002, /*2^smTransNative*/
+ /* TransliterateText source masks for two-byte scripts */
+ smMaskAscii1 = 0x00000004, /*2^smTransAscii1*/
+ smMaskAscii2 = 0x00000008, /*2^smTransAscii2*/
+ smMaskKana1 = 0x00000010, /*2^smTransKana1*/
+ smMaskKana2 = 0x00000020, /*2^smTransKana2*/
+ smMaskGana2 = 0x00000080, /*2^smTransGana2*/
+ smMaskHangul2 = 0x00000100, /*2^smTransHangul2*/
+ smMaskJamo2 = 0x00000200, /*2^smTransJamo2*/
+ smMaskBopomofo2 = 0x00000400 /*2^smTransBopomofo2*/
+};
+
+enum {
+ /* Result values from GetScriptManagerVariable and SetScriptManagerVariable calls. */
+ smNotInstalled = 0, /*routine not available in script*/
+ smBadVerb = -1, /*Bad verb passed to a routine*/
+ smBadScript = -2 /*Bad script code passed to a routine*/
+};
+
+enum {
+ /* Values for script redraw flag. */
+ smRedrawChar = 0, /*Redraw character only*/
+ smRedrawWord = 1, /*Redraw entire word (2-byte systems)*/
+ smRedrawLine = -1 /*Redraw entire line (bidirectional systems)*/
+};
+
+enum {
+ /* GetScriptManagerVariable and SetScriptManagerVariable verbs */
+ smVersion = 0, /*Script Manager version number*/
+ smMunged = 2, /*Globals change count*/
+ smEnabled = 4, /*Count of enabled scripts, incl Roman*/
+ smBidirect = 6, /*At least one bidirectional script*/
+ smFontForce = 8, /*Force font flag*/
+ smIntlForce = 10, /*Force intl flag*/
+ smForced = 12, /*Script was forced to system script*/
+ smDefault = 14, /*Script was defaulted to Roman script*/
+ smPrint = 16, /*Printer action routine*/
+ smSysScript = 18, /*System script*/
+ smLastScript = 20, /*Last keyboard script*/
+ smKeyScript = 22, /*Keyboard script*/
+ smSysRef = 24, /*System folder refNum*/
+ smKeyCache = 26, /*obsolete*/
+ smKeySwap = 28, /*Swapping table handle*/
+ smGenFlags = 30, /*General flags long*/
+ smOverride = 32, /*Script override flags*/
+ smCharPortion = 34, /*Ch vs SpExtra proportion*/
+ /* New for System 7.0: */
+ smDoubleByte = 36, /*Flag for double-byte script installed*/
+ smKCHRCache = 38, /*Returns pointer to KCHR cache*/
+ smRegionCode = 40, /*Returns current region code (verXxx)*/
+ smKeyDisableState = 42 /*Returns current keyboard disable state*/
+};
+
+enum {
+ /* GetScriptVariable and SetScriptVariable verbs. */
+ /* Note: Verbs private to script systems are negative, while */
+ /* those general across script systems are non-negative. */
+ smScriptVersion = 0, /*Script software version*/
+ smScriptMunged = 2, /*Script entry changed count*/
+ smScriptEnabled = 4, /*Script enabled flag*/
+ smScriptRight = 6, /*Right to left flag*/
+ smScriptJust = 8, /*Justification flag*/
+ smScriptRedraw = 10, /*Word redraw flag*/
+ smScriptSysFond = 12, /*Preferred system font*/
+ smScriptAppFond = 14, /*Preferred Application font*/
+ smScriptBundle = 16, /*Beginning of itlb verbs*/
+ smScriptNumber = 16, /*Script itl0 id*/
+ smScriptDate = 18, /*Script itl1 id*/
+ smScriptSort = 20, /*Script itl2 id*/
+ smScriptFlags = 22, /*flags word*/
+ smScriptToken = 24, /*Script itl4 id*/
+ smScriptEncoding = 26, /*id of optional itl5, if present*/
+ smScriptLang = 28 /*Current language for script*/
+};
+
+enum {
+ smScriptNumDate = 30, /*Script Number/Date formats.*/
+ smScriptKeys = 32, /*Script KCHR id*/
+ smScriptIcon = 34, /*ID # of SICN or kcs#/kcs4/kcs8 suite*/
+ smScriptPrint = 36, /*Script printer action routine*/
+ smScriptTrap = 38, /*Trap entry pointer*/
+ smScriptCreator = 40, /*Script file creator*/
+ smScriptFile = 42, /*Script file name*/
+ smScriptName = 44, /*Script name*/
+ /* There is a hole here for old Kanji private verbs 46-76 */
+ /* New for System 7.0: */
+ smScriptMonoFondSize = 78, /*default monospace FOND (hi) & size (lo)*/
+ smScriptPrefFondSize = 80, /*preferred FOND (hi) & size (lo)*/
+ smScriptSmallFondSize = 82, /*default small FOND (hi) & size (lo)*/
+ smScriptSysFondSize = 84, /*default system FOND (hi) & size (lo)*/
+ smScriptAppFondSize = 86, /*default app FOND (hi) & size (lo)*/
+ smScriptHelpFondSize = 88, /*default Help Mgr FOND (hi) & size (lo)*/
+ smScriptValidStyles = 90, /*mask of valid styles for script*/
+ smScriptAliasStyle = 92 /*style (set) to use for aliases*/
+};
+
+/* special negative verbs for Get/SetScriptVariable that were associated with WorldScriptI */
+/* move them here to be public */
+enum {
+ /* WorldScript private verbs */
+ smLayoutCache = -309, /* HiWrd(param) is # entries, LoWrd is max input length*/
+ smOldVerbSupport = -311, /* param is added to old verbs to map to WSI verb*/
+ smSetKashidas = -291, /* param is ON or OFF, old verb = -36*/
+ smSetKashProp = -287, /* param is kashida proportion, old verb = -32*/
+ smScriptSysBase = -281, /* param is associated font to use w/ system font (old verb = -26)*/
+ smScriptAppBase = -283, /* param is associated font to use w/ app font (old verb = -28)*/
+ smScriptFntBase = -285, /* param is associated font to use w/ all other fonts (old verb = -30)*/
+ smScriptLigatures = -263, /* old verb = -8*/
+ smScriptNumbers = -267 /* old verb = -12*/
+};
+
+enum {
+ /* Special script code values for International Utilities */
+ iuSystemScript = -1, /* <obsolete> system script */
+ iuCurrentScript = -2 /* <obsolete> current script (for font of grafPort) */
+};
+
+enum {
+ /* Negative verbs for KeyScript */
+ smKeyNextScript = -1, /* Switch to next available script */
+ smKeySysScript = -2, /* Switch to the system script */
+ smKeySwapScript = -3, /* Switch to previously-used script */
+ /* New for System 7.0: */
+ smKeyNextKybd = -4, /* Switch to next keyboard in current keyscript */
+ smKeySwapKybd = -5, /* Switch to previously-used keyboard in current keyscript */
+ smKeyDisableKybds = -6, /* Disable keyboards not in system or Roman script */
+ smKeyEnableKybds = -7, /* Re-enable keyboards for all enabled scripts */
+ smKeyToggleInline = -8, /* Toggle inline input for current keyscript */
+ smKeyToggleDirection = -9, /* Toggle default line direction (TESysJust) */
+ smKeyNextInputMethod = -10, /* Switch to next input method in current keyscript */
+ smKeySwapInputMethod = -11, /* Switch to last-used input method in current keyscript */
+ smKeyDisableKybdSwitch = -12, /* Disable switching from the current keyboard */
+ smKeySetDirLeftRight = -15, /* Set default line dir to left-right, align left */
+ smKeySetDirRightLeft = -16, /* Set default line dir to right-left, align right */
+ smKeyRoman = -17 /* Set keyscript to Roman. Does nothing if Roman-only system, unlike KeyScript(smRoman) which forces an update to current default Roman keyboard */
+};
+
+/* Optional font and keyboard script synchronization */
+enum {
+ /* One more flag in the smGenFlags long. */
+ smfDisableKeyScriptSync = 27 /*Disable font and keyboard script synchronization*/
+};
+
+enum {
+ /* We should define masks, too. */
+ smfDisableKeyScriptSyncMask = 1L << smfDisableKeyScriptSync /*Disable font and keyboard script synchronization mask*/
+};
+
+enum {
+ /* Force keyboard script switching flag and mask for zero and positive KeyScript verbs */
+ smKeyForceKeyScriptBit = 7, /* Force keyboard script switching flag */
+ smKeyForceKeyScriptMask = 1 << smKeyForceKeyScriptBit /* its mask */
+};
+
+enum {
+ /* Bits in the smScriptFlags word */
+ /* (bits above 8 are non-static) */
+ smsfIntellCP = 0, /*Script has intelligent cut & paste*/
+ smsfSingByte = 1, /*Script has only single bytes*/
+ smsfNatCase = 2, /*Native chars have upper & lower case*/
+ smsfContext = 3, /*Script is contextual*/
+ smsfNoForceFont = 4, /*Script will not force characters*/
+ smsfB0Digits = 5, /*Script has alternate digits at B0-B9*/
+ smsfAutoInit = 6, /*Auto initialize the script*/
+ smsfUnivExt = 7, /*Script is handled by universal extension*/
+ smsfSynchUnstyledTE = 8, /*Script synchronizes for unstyled TE*/
+ smsfForms = 13, /*Uses contextual forms for letters*/
+ smsfLigatures = 14, /*Uses contextual ligatures*/
+ smsfReverse = 15, /*Reverses native text, right-left*/
+ /* Bits in the smGenFlags long. */
+ /* First (high-order) byte is set from itlc flags byte. */
+ smfShowIcon = 31, /*Show icon even if only one script*/
+ smfDualCaret = 30, /*Use dual caret for mixed direction text*/
+ smfNameTagEnab = 29, /*Reserved for internal use*/
+ smfUseAssocFontInfo = 28 /*Use the associated font info for FontMetrics calls <48>*/
+};
+
+enum {
+ /* Roman script constants */
+ /* The following are here for backward compatibility, but should not be used. */
+ /* This information should be obtained using GetScript. */
+ romanSysFond = 0x3FFF, /*system font id number*/
+ romanAppFond = 3, /*application font id number*/
+ romanFlags = 0x0007, /*roman settings*/
+ /* Script Manager font equates. */
+ smFondStart = 0x4000, /*start from 16K*/
+ smFondEnd = 0xC000, /*past end of range at 48K*/
+ /* Miscellaneous font equates. */
+ smUprHalfCharSet = 0x80 /*first char code in top half of std char set*/
+};
+
+enum {
+ /* Character Set Extensions */
+ diaeresisUprY = 0xD9,
+ fraction = 0xDA,
+ intlCurrency = 0xDB,
+ leftSingGuillemet = 0xDC,
+ rightSingGuillemet = 0xDD,
+ fiLigature = 0xDE,
+ flLigature = 0xDF,
+ dblDagger = 0xE0,
+ centeredDot = 0xE1,
+ baseSingQuote = 0xE2,
+ baseDblQuote = 0xE3,
+ perThousand = 0xE4,
+ circumflexUprA = 0xE5,
+ circumflexUprE = 0xE6,
+ acuteUprA = 0xE7,
+ diaeresisUprE = 0xE8,
+ graveUprE = 0xE9,
+ acuteUprI = 0xEA,
+ circumflexUprI = 0xEB,
+ diaeresisUprI = 0xEC,
+ graveUprI = 0xED,
+ acuteUprO = 0xEE,
+ circumflexUprO = 0xEF,
+ appleLogo = 0xF0,
+ graveUprO = 0xF1,
+ acuteUprU = 0xF2,
+ circumflexUprU = 0xF3,
+ graveUprU = 0xF4,
+ dotlessLwrI = 0xF5,
+ circumflex = 0xF6,
+ tilde = 0xF7,
+ macron = 0xF8,
+ breveMark = 0xF9,
+ overDot = 0xFA,
+ ringMark = 0xFB,
+ cedilla = 0xFC,
+ doubleAcute = 0xFD,
+ ogonek = 0xFE,
+ hachek = 0xFF
+};
+
+enum {
+ /* ScriptTokenType values */
+ tokenIntl = 4, /*the itl resource number of the tokenizer*/
+ tokenEmpty = -1 /*used internally as an empty flag*/
+};
+
+enum {
+ tokenUnknown = 0, /*chars that do not match a defined token type*/
+ tokenWhite = 1, /*white space*/
+ tokenLeftLit = 2, /*literal begin*/
+ tokenRightLit = 3, /*literal end*/
+ tokenAlpha = 4, /*alphabetic*/
+ tokenNumeric = 5, /*numeric*/
+ tokenNewLine = 6, /*new line*/
+ tokenLeftComment = 7, /*open comment*/
+ tokenRightComment = 8, /*close comment*/
+ tokenLiteral = 9, /*literal*/
+ tokenEscape = 10, /*character escape (e.g. '\' in "\n", "\t")*/
+ tokenAltNum = 11, /*alternate number (e.g. $B0-B9 in Arabic,Hebrew)*/
+ tokenRealNum = 12, /*real number*/
+ tokenAltReal = 13, /*alternate real number*/
+ tokenReserve1 = 14, /*reserved*/
+ tokenReserve2 = 15, /*reserved*/
+ tokenLeftParen = 16, /*open parenthesis*/
+ tokenRightParen = 17, /*close parenthesis*/
+ tokenLeftBracket = 18, /*open square bracket*/
+ tokenRightBracket = 19 /*close square bracket*/
+};
+
+enum {
+ tokenLeftCurly = 20, /*open curly bracket*/
+ tokenRightCurly = 21, /*close curly bracket*/
+ tokenLeftEnclose = 22, /*open guillemet*/
+ tokenRightEnclose = 23, /*close guillemet*/
+ tokenPlus = 24,
+ tokenMinus = 25,
+ tokenAsterisk = 26, /*times/multiply*/
+ tokenDivide = 27,
+ tokenPlusMinus = 28, /*plus or minus symbol*/
+ tokenSlash = 29,
+ tokenBackSlash = 30,
+ tokenLess = 31, /*less than symbol*/
+ tokenGreat = 32, /*greater than symbol*/
+ tokenEqual = 33,
+ tokenLessEqual2 = 34, /*less than or equal, 2 characters (e.g. <=)*/
+ tokenLessEqual1 = 35, /*less than or equal, 1 character*/
+ tokenGreatEqual2 = 36, /*greater than or equal, 2 characters (e.g. >=)*/
+ tokenGreatEqual1 = 37, /*greater than or equal, 1 character*/
+ token2Equal = 38, /*double equal (e.g. ==)*/
+ tokenColonEqual = 39 /*colon equal*/
+};
+
+enum {
+ tokenNotEqual = 40, /*not equal, 1 character*/
+ tokenLessGreat = 41, /*less/greater, Pascal not equal (e.g. <>)*/
+ tokenExclamEqual = 42, /*exclamation equal, C not equal (e.g. !=)*/
+ tokenExclam = 43, /*exclamation point*/
+ tokenTilde = 44, /*centered tilde*/
+ tokenComma = 45,
+ tokenPeriod = 46,
+ tokenLeft2Quote = 47, /*open double quote*/
+ tokenRight2Quote = 48, /*close double quote*/
+ tokenLeft1Quote = 49, /*open single quote*/
+ tokenRight1Quote = 50, /*close single quote*/
+ token2Quote = 51, /*double quote*/
+ token1Quote = 52, /*single quote*/
+ tokenSemicolon = 53,
+ tokenPercent = 54,
+ tokenCaret = 55,
+ tokenUnderline = 56,
+ tokenAmpersand = 57,
+ tokenAtSign = 58,
+ tokenBar = 59 /*vertical bar*/
+};
+
+enum {
+ tokenQuestion = 60,
+ tokenPi = 61, /*lower-case pi*/
+ tokenRoot = 62, /*square root symbol*/
+ tokenSigma = 63, /*capital sigma*/
+ tokenIntegral = 64, /*integral sign*/
+ tokenMicro = 65,
+ tokenCapPi = 66, /*capital pi*/
+ tokenInfinity = 67,
+ tokenColon = 68,
+ tokenHash = 69, /*e.g. #*/
+ tokenDollar = 70,
+ tokenNoBreakSpace = 71, /*non-breaking space*/
+ tokenFraction = 72,
+ tokenIntlCurrency = 73,
+ tokenLeftSingGuillemet = 74,
+ tokenRightSingGuillemet = 75,
+ tokenPerThousand = 76,
+ tokenEllipsis = 77,
+ tokenCenterDot = 78,
+ tokenNil = 127
+};
+
+enum {
+ delimPad = -2, /* obsolete, misspelled token names kept for backward compatibility */
+ tokenTilda = 44,
+ tokenCarat = 55
+};
+
+enum {
+ /* Table selectors for GetItlTable */
+ smWordSelectTable = 0, /* get word select break table from 'itl2' */
+ smWordWrapTable = 1, /* get word wrap break table from 'itl2' */
+ smNumberPartsTable = 2, /* get default number parts table from 'itl4' */
+ smUnTokenTable = 3, /* get unToken table from 'itl4' */
+ smWhiteSpaceList = 4, /* get white space list from 'itl4' */
+ iuWordSelectTable = 0, /* <obsolete> get word select break table from 'itl2' */
+ iuWordWrapTable = 1, /* <obsolete> get word wrap break table from 'itl2' */
+ iuNumberPartsTable = 2, /* <obsolete> get default number parts table from 'itl4' */
+ iuUnTokenTable = 3, /* <obsolete> get unToken table from 'itl4' */
+ iuWhiteSpaceList = 4 /* <obsolete> get white space list from 'itl4' */
+};
+
+/* end of stuff moved from Packages.h */
+enum {
+ tokenOK = 0, /* TokenResults */
+ tokenOverflow = 1, /* TokenResults */
+ stringOverflow = 2, /* TokenResults */
+ badDelim = 3, /* TokenResults */
+ badEnding = 4, /* TokenResults */
+ crash = 5 /* TokenResults */
+};
+
+typedef SInt8 TokenResults;
+typedef char CharByteTable[256];
+/* "TokenType" was renamed to "ScriptTokenType" because of a name collisions*/
+typedef short ScriptTokenType;
+#if TARGET_OS_MAC
+typedef ScriptTokenType TokenType;
+#endif /* TARGET_OS_MAC */
+
+typedef ScriptTokenType DelimType[2];
+typedef ScriptTokenType CommentType[4];
+struct TokenRec {
+ ScriptTokenType theToken;
+ Ptr position; /*pointer into original source*/
+ long length; /*length of text in original source*/
+ StringPtr stringPosition; /*Pascal/C string copy of identifier*/
+};
+typedef struct TokenRec TokenRec;
+typedef TokenRec * TokenRecPtr;
+struct TokenBlock {
+ Ptr source; /*pointer to stream of characters*/
+ long sourceLength; /*length of source stream*/
+ Ptr tokenList; /*pointer to array of tokens*/
+ long tokenLength; /*maximum length of TokenList*/
+ long tokenCount; /*number tokens generated by tokenizer*/
+ Ptr stringList; /*pointer to stream of identifiers*/
+ long stringLength; /*length of string list*/
+ long stringCount; /*number of bytes currently used*/
+ Boolean doString; /*make strings & put into StringList*/
+ Boolean doAppend; /*append to TokenList rather than replace*/
+ Boolean doAlphanumeric; /*identifiers may include numeric*/
+ Boolean doNest; /*do comments nest?*/
+ ScriptTokenType leftDelims[2];
+ ScriptTokenType rightDelims[2];
+ ScriptTokenType leftComment[4];
+ ScriptTokenType rightComment[4];
+ ScriptTokenType escapeCode; /*escape symbol code*/
+ ScriptTokenType decimalCode;
+ Handle itlResource; /*handle to itl4 resource of current script*/
+ long reserved[8]; /*must be zero!*/
+};
+typedef struct TokenBlock TokenBlock;
+typedef TokenBlock * TokenBlockPtr;
+/*
+ * GetSysDirection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+GetSysDirection(void) TWOWORDINLINE(0x3EB8, 0x0BAC);
+
+
+/*
+ * SetSysDirection()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+SetSysDirection(short value) TWOWORDINLINE(0x31DF, 0x0BAC);
+
+
+/*
+ * FontScript()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+FontScript(void) FOURWORDINLINE(0x2F3C, 0x8200, 0x0000, 0xA8B5);
+
+
+/*
+ * IntlScript()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+IntlScript(void) FOURWORDINLINE(0x2F3C, 0x8200, 0x0002, 0xA8B5);
+
+
+/*
+ * FontToScript()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+FontToScript(short fontNumber) FOURWORDINLINE(0x2F3C, 0x8202, 0x0006, 0xA8B5);
+
+
+/*
+ * GetScriptManagerVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( long )
+GetScriptManagerVariable(short selector) FOURWORDINLINE(0x2F3C, 0x8402, 0x0008, 0xA8B5);
+
+
+/*
+ * SetScriptManagerVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+SetScriptManagerVariable(
+ short selector,
+ long param) FOURWORDINLINE(0x2F3C, 0x8206, 0x000A, 0xA8B5);
+
+
+/*
+ * GetScriptVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( long )
+GetScriptVariable(
+ short script,
+ short selector) FOURWORDINLINE(0x2F3C, 0x8404, 0x000C, 0xA8B5);
+
+
+/*
+ * SetScriptVariable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+SetScriptVariable(
+ short script,
+ short selector,
+ long param) FOURWORDINLINE(0x2F3C, 0x8208, 0x000E, 0xA8B5);
+
+
+/*
+ * CharacterByteType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+CharacterByteType(
+ Ptr textBuf,
+ short textOffset,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC206, 0x0010, 0xA8B5);
+
+
+/*
+ * CharacterType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( short )
+CharacterType(
+ Ptr textBuf,
+ short textOffset,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC206, 0x0012, 0xA8B5);
+
+
+/*
+ * TransliterateText()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( OSErr )
+TransliterateText(
+ Handle srcHandle,
+ Handle dstHandle,
+ short target,
+ long srcMask,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC20E, 0x0018, 0xA8B5);
+
+
+/*
+ * FillParseTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Boolean )
+FillParseTable(
+ CharByteTable table,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC204, 0x0022, 0xA8B5);
+
+
+/*
+ * GetIntlResource()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( Handle )
+GetIntlResource(short theID) THREEWORDINLINE(0x3F3C, 0x0006, 0xA9ED);
+
+
+/*
+ * ClearIntlResourceCache()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+ClearIntlResourceCache(void) THREEWORDINLINE(0x3F3C, 0x0018, 0xA9ED);
+
+
+/*
+ * GetIntlResourceTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( void )
+GetIntlResourceTable(
+ ScriptCode script,
+ short tableCode,
+ Handle * itlHandle,
+ long * offset,
+ long * length) THREEWORDINLINE(0x3F3C, 0x0024, 0xA9ED);
+
+
+#if CALL_NOT_IN_CARBON
+/*
+ * GetScriptUtilityAddress()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( UniversalProcPtr )
+GetScriptUtilityAddress(
+ short selector,
+ Boolean Before,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC404, 0x0038, 0xA8B5);
+
+
+/*
+ * SetScriptUtilityAddress()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+SetScriptUtilityAddress(
+ short selector,
+ Boolean Before,
+ UniversalProcPtr routineAddr,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC008, 0x003A, 0xA8B5);
+
+
+/*
+ * GetScriptQDPatchAddress()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( UniversalProcPtr )
+GetScriptQDPatchAddress(
+ short trapNum,
+ Boolean Before,
+ Boolean forPrinting,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC406, 0x003C, 0xA8B5);
+
+
+/*
+ * SetScriptQDPatchAddress()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+SetScriptQDPatchAddress(
+ short trapNum,
+ Boolean Before,
+ Boolean forPrinting,
+ UniversalProcPtr routineAddr,
+ ScriptCode script) FOURWORDINLINE(0x2F3C, 0xC00A, 0x003E, 0xA8B5);
+
+
+/*
+ * SetIntlResource()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( void )
+SetIntlResource(
+ short refNum,
+ short theID,
+ Handle intlHandle) THREEWORDINLINE(0x3F3C, 0x0008, 0xA9ED);
+
+
+/*
+ * CharByte()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( short )
+CharByte(
+ Ptr textBuf,
+ short textOffset) FOURWORDINLINE(0x2F3C, 0x8206, 0x0010, 0xA8B5);
+
+
+/*
+ * CharType()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( short )
+CharType(
+ Ptr textBuf,
+ short textOffset) FOURWORDINLINE(0x2F3C, 0x8206, 0x0012, 0xA8B5);
+
+
+/*
+ * Transliterate()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( OSErr )
+Transliterate(
+ Handle srcHandle,
+ Handle dstHandle,
+ short target,
+ long srcMask) FOURWORDINLINE(0x2F3C, 0x820E, 0x0018, 0xA8B5);
+
+
+/*
+ * ParseTable()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: not available
+ * Mac OS X: not available
+ */
+EXTERN_API( Boolean )
+ParseTable(CharByteTable table) FOURWORDINLINE(0x2F3C, 0x8204, 0x0022, 0xA8B5);
+
+
+
+#endif /* CALL_NOT_IN_CARBON */
+
+/*
+ * IntlTokenize()
+ *
+ * Availability:
+ * Non-Carbon CFM: in InterfaceLib 7.1 and later
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API( TokenResults )
+IntlTokenize(TokenBlockPtr tokenParam) FOURWORDINLINE(0x2F3C, 0x8204, 0xFFFA, 0xA8B5);
+
+
+#if OLDROUTINENAMES
+#define SetSysJust(newJust) SetSysDirection(newJust)
+#define GetSysJust() GetSysDirection()
+#define Font2Script(fontNumber) FontToScript(fontNumber)
+#define GetEnvirons(verb) GetScriptManagerVariable(verb)
+#define SetEnvirons(verb, param) SetScriptManagerVariable(verb, param)
+#define GetScript(script, verb) GetScriptVariable(script, verb)
+#define SetScript(script, verb, param) SetScriptVariable(script, verb, param)
+#define IUGetIntl(theID) GetIntlResource(theID)
+#define IUSetIntl(refNum, theID, intlHandle) SetIntlResource(refNum, theID, intlHandle)
+#define IUClearCache() ClearIntlResourceCache()
+#define IUGetItlTable(script, tableCode, itlHandle, offset, length) \
+ GetIntlResourceTable(script, tableCode, itlHandle, offset, length)
+#endif /* OLDROUTINENAMES */
+
+
+
+#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 /* __SCRIPT__ */
+