home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / Script.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-01-30  |  35.9 KB  |  903 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Script.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __SCRIPT__
  13. #define __SCRIPT__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #ifndef __QUICKDRAW__
  23. #include <Quickdraw.h>
  24. /*    #include <QuickdrawText.h>                                    */
  25. /*        #include <IntlResources.h>                                */
  26. #endif
  27.  
  28. #ifndef __INTLRESOURCES__
  29. #endif
  30.  
  31. #ifndef __EVENTS__
  32. #include <Events.h>
  33. /*    #include <OSUtils.h>                                        */
  34. #endif
  35.  
  36. enum  {
  37. /* Script System constants */
  38.     smSystemScript                = -1,                            /*designates system script.*/
  39.     smCurrentScript                = -2,                            /*designates current font script.*/
  40.     smAllScripts                = -3,                            /*designates any script    */
  41.     smRoman                        = 0,                            /*Roman*/
  42.     smJapanese                    = 1,                            /*Japanese*/
  43.     smTradChinese                = 2,                            /*Traditional Chinese*/
  44.     smKorean                    = 3,                            /*Korean*/
  45.     smArabic                    = 4,                            /*Arabic*/
  46.     smHebrew                    = 5,                            /*Hebrew*/
  47.     smGreek                        = 6,                            /*Greek*/
  48.     smCyrillic                    = 7,                            /*Cyrillic*/
  49.     smRSymbol                    = 8,                            /*Right-left symbol*/
  50.     smDevanagari                = 9,                            /*Devanagari*/
  51.     smGurmukhi                    = 10,                            /*Gurmukhi*/
  52.     smGujarati                    = 11,                            /*Gujarati*/
  53.     smOriya                        = 12,                            /*Oriya*/
  54.     smBengali                    = 13,                            /*Bengali*/
  55.     smTamil                        = 14,                            /*Tamil*/
  56.     smTelugu                    = 15,                            /*Telugu*/
  57.     smKannada                    = 16,                            /*Kannada/Kanarese*/
  58.     smMalayalam                    = 17                            /*Malayalam*/
  59. };
  60.  
  61. enum  {
  62.     smSinhalese                    = 18,                            /*Sinhalese*/
  63.     smBurmese                    = 19,                            /*Burmese*/
  64.     smKhmer                        = 20,                            /*Khmer/Cambodian*/
  65.     smThai                        = 21,                            /*Thai*/
  66.     smLaotian                    = 22,                            /*Laotian*/
  67.     smGeorgian                    = 23,                            /*Georgian*/
  68.     smArmenian                    = 24,                            /*Armenian*/
  69.     smSimpChinese                = 25,                            /*Simplified Chinese*/
  70.     smTibetan                    = 26,                            /*Tibetan*/
  71.     smMongolian                    = 27,                            /*Mongolian*/
  72.     smGeez                        = 28,                            /*Geez/Ethiopic*/
  73.     smEthiopic                    = 28,                            /*Synonym for smGeez*/
  74.     smEastEurRoman                = 29,                            /*Synonym for smSlavic*/
  75.     smVietnamese                = 30,                            /*Vietnamese*/
  76.     smExtArabic                    = 31,                            /*extended Arabic*/
  77.     smUninterp                    = 32,                            /*uninterpreted symbols, e.g. palette symbols*/
  78.     smKlingon                    = 32,                            /*Klingon*/
  79. /*Obsolete names for script systems (kept for backward compatibility)*/
  80.     smChinese                    = 2,                            /*(use smTradChinese or smSimpChinese)*/
  81.     smRussian                    = 7,                            /*(old name for smCyrillic)*/
  82. /* smMaldivian = 25;         (no more smMaldivian!)*/
  83.     smAmharic                    = 28,                            /*(old name for smGeez)*/
  84.     smSlavic                    = 29                            /*(old name for smEastEurRoman)*/
  85. };
  86.  
  87. enum  {
  88.     smSindhi                    = 31,                            /*(old name for smExtArabic)*/
  89. /* Language Codes */
  90.     langEnglish                    = 0,                            /* smRoman script */
  91.     langFrench                    = 1,                            /* smRoman script */
  92.     langGerman                    = 2,                            /* smRoman script */
  93.     langItalian                    = 3,                            /* smRoman script */
  94.     langDutch                    = 4,                            /* smRoman script */
  95.     langSwedish                    = 5,                            /* smRoman script */
  96.     langSpanish                    = 6,                            /* smRoman script */
  97.     langDanish                    = 7,                            /* smRoman script */
  98.     langPortuguese                = 8,                            /* smRoman script */
  99.     langNorwegian                = 9,                            /* smRoman script */
  100.     langHebrew                    = 10,                            /* smHebrew script */
  101.     langJapanese                = 11,                            /* smJapanese script */
  102.     langArabic                    = 12,                            /* smArabic script */
  103.     langFinnish                    = 13,                            /* smRoman script */
  104.     langGreek                    = 14,                            /* smGreek script */
  105.     langIcelandic                = 15,                            /* extended Roman script */
  106.     langMaltese                    = 16,                            /* extended Roman script */
  107.     langTurkish                    = 17,                            /* extended Roman script */
  108.     langCroatian                = 18,                            /* Serbo-Croatian in extended Roman script */
  109.     langTradChinese                = 19                            /* Chinese in traditional characters */
  110. };
  111.  
  112. enum  {
  113.     langUrdu                    = 20,                            /* smArabic script */
  114.     langHindi                    = 21,                            /* smDevanagari script */
  115.     langThai                    = 22,                            /* smThai script */
  116.     langKorean                    = 23,                            /* smKorean script */
  117.     langLithuanian                = 24,                            /* smEastEurRoman script */
  118.     langPolish                    = 25,                            /* smEastEurRoman script */
  119.     langHungarian                = 26,                            /* smEastEurRoman script */
  120.     langEstonian                = 27,                            /* smEastEurRoman script */
  121.     langLettish                    = 28,                            /* smEastEurRoman script */
  122.     langLatvian                    = 28,                            /* Synonym for langLettish */
  123.     langSaamisk                    = 29,                            /* ext. Roman script, lang. of the Sami/Lapp people of Scand. */
  124.     langLappish                    = 29,                            /* Synonym for langSaamisk */
  125.     langFaeroese                = 30,                            /* smRoman script */
  126.     langFarsi                    = 31,                            /* smArabic script */
  127.     langPersian                    = 31,                            /* Synonym for langFarsi */
  128.     langRussian                    = 32,                            /* smCyrillic script */
  129.     langSimpChinese                = 33,                            /* Chinese in simplified characters */
  130.     langFlemish                    = 34,                            /* smRoman script */
  131.     langIrish                    = 35,                            /* smRoman script */
  132.     langAlbanian                = 36                            /* smRoman script */
  133. };
  134.  
  135. enum  {
  136.     langRomanian                = 37,                            /* smEastEurRoman script */
  137.     langCzech                    = 38,                            /* smEastEurRoman script */
  138.     langSlovak                    = 39,                            /* smEastEurRoman script */
  139.     langSlovenian                = 40,                            /* smEastEurRoman script */
  140.     langYiddish                    = 41,                            /* smHebrew script */
  141.     langSerbian                    = 42,                            /* Serbo-Croatian in smCyrillic script */
  142.     langMacedonian                = 43,                            /* smCyrillic script */
  143.     langBulgarian                = 44,                            /* smCyrillic script */
  144.     langUkrainian                = 45,                            /* smCyrillic script */
  145.     langByelorussian            = 46,                            /* smCyrillic script */
  146.     langUzbek                    = 47,                            /* smCyrillic script */
  147.     langKazakh                    = 48,                            /* smCyrillic script */
  148.     langAzerbaijani                = 49,                            /* Azerbaijani in smCyrillic script (USSR) */
  149.     langAzerbaijanAr            = 50,                            /* Azerbaijani in smArabic script (Iran) */
  150.     langArmenian                = 51,                            /* smArmenian script */
  151.     langGeorgian                = 52,                            /* smGeorgian script */
  152.     langMoldavian                = 53,                            /* smCyrillic script */
  153.     langKirghiz                    = 54,                            /* smCyrillic script */
  154.     langTajiki                    = 55,                            /* smCyrillic script */
  155.     langTurkmen                    = 56                            /* smCyrillic script */
  156. };
  157.  
  158. enum  {
  159.     langMongolian                = 57,                            /* Mongolian in smMongolian script */
  160.     langMongolianCyr            = 58,                            /* Mongolian in smCyrillic script */
  161.     langPashto                    = 59,                            /* smArabic script */
  162.     langKurdish                    = 60,                            /* smArabic script */
  163.     langKashmiri                = 61,                            /* smArabic script */
  164.     langSindhi                    = 62,                            /* smExtArabic script */
  165.     langTibetan                    = 63,                            /* smTibetan script */
  166.     langNepali                    = 64,                            /* smDevanagari script */
  167.     langSanskrit                = 65,                            /* smDevanagari script */
  168.     langMarathi                    = 66,                            /* smDevanagari script */
  169.     langBengali                    = 67,                            /* smBengali script */
  170.     langAssamese                = 68,                            /* smBengali script */
  171.     langGujarati                = 69,                            /* smGujarati script */
  172.     langPunjabi                    = 70,                            /* smGurmukhi script */
  173.     langOriya                    = 71,                            /* smOriya script */
  174.     langMalayalam                = 72,                            /* smMalayalam script */
  175.     langKannada                    = 73,                            /* smKannada script */
  176.     langTamil                    = 74,                            /* smTamil script */
  177.     langTelugu                    = 75,                            /* smTelugu script */
  178.     langSinhalese                = 76                            /* smSinhalese script */
  179. };
  180.  
  181. enum  {
  182.     langBurmese                    = 77,                            /* smBurmese script */
  183.     langKhmer                    = 78,                            /* smKhmer script */
  184.     langLao                        = 79,                            /* smLaotian script */
  185.     langVietnamese                = 80,                            /* smVietnamese script */
  186.     langIndonesian                = 81,                            /* smRoman script */
  187.     langTagalog                    = 82,                            /* smRoman script */
  188.     langMalayRoman                = 83,                            /* Malay in smRoman script */
  189.     langMalayArabic                = 84,                            /* Malay in smArabic script */
  190.     langAmharic                    = 85,                            /* smEthiopic script */
  191.     langTigrinya                = 86,                            /* smEthiopic script */
  192.     langGalla                    = 87,                            /* smEthiopic script */
  193.     langOromo                    = 87,                            /* Synonym for langGalla */
  194.     langSomali                    = 88,                            /* smRoman script */
  195.     langSwahili                    = 89,                            /* smRoman script */
  196.     langRuanda                    = 90,                            /* smRoman script */
  197.     langRundi                    = 91,                            /* smRoman script */
  198.     langChewa                    = 92,                            /* smRoman script */
  199.     langMalagasy                = 93,                            /* smRoman script */
  200.     langEsperanto                = 94,                            /* extended Roman script */
  201.     langWelsh                    = 128                            /* smRoman script */
  202. };
  203.  
  204. enum  {
  205.     langBasque                    = 129,                            /* smRoman script */
  206.     langCatalan                    = 130,                            /* smRoman script */
  207.     langLatin                    = 131,                            /* smRoman script */
  208.     langQuechua                    = 132,                            /* smRoman script */
  209.     langGuarani                    = 133,                            /* smRoman script */
  210.     langAymara                    = 134,                            /* smRoman script */
  211.     langTatar                    = 135,                            /* smCyrillic script */
  212.     langUighur                    = 136,                            /* smArabic script */
  213.     langDzongkha                = 137,                            /* (lang of Bhutan) smTibetan script */
  214.     langJavaneseRom                = 138,                            /* Javanese in smRoman script */
  215.     langSundaneseRom            = 139,                            /* Sundanese in smRoman script */
  216. /* Obsolete names, kept for backward compatibility */
  217.     langPortugese                = 8,                            /* old misspelled version, kept for compatibility */
  218.     langMalta                    = 16,                            /* old misspelled version, kept for compatibility */
  219.     langYugoslavian                = 18,                            /* (use langCroatian, langSerbian, etc.) */
  220.     langChinese                    = 19,                            /* (use langTradChinese or langSimpChinese) */
  221.     langLapponian                = 29                            /* Synonym for langSaamisk, not correct name */
  222. };
  223.  
  224. enum  {
  225. /* Regional version codes */
  226.     verUS                        = 0,
  227.     verFrance                    = 1,
  228.     verBritain                    = 2,
  229.     verGermany                    = 3,
  230.     verItaly                    = 4,
  231.     verNetherlands                = 5,
  232.     verFrBelgiumLux                = 6,                            /* French for Belgium & Luxembourg */
  233.     verSweden                    = 7,
  234.     verSpain                    = 8,
  235.     verDenmark                    = 9,
  236.     verPortugal                    = 10,
  237.     verFrCanada                    = 11,
  238.     verNorway                    = 12
  239. };
  240.  
  241. enum  {
  242.     verIsrael                    = 13,
  243.     verJapan                    = 14,
  244.     verAustralia                = 15,
  245.     verArabic                    = 16,                            /* synonym for verArabia */
  246.     verFinland                    = 17,
  247.     verFrSwiss                    = 18,                            /* French Swiss */
  248.     verGrSwiss                    = 19,                            /* German Swiss */
  249.     verGreece                    = 20,
  250.     verIceland                    = 21,
  251.     verMalta                    = 22,
  252.     verCyprus                    = 23,
  253.     verTurkey                    = 24,
  254.     verYugoCroatian                = 25,                            /* Croatian system for Yugoslavia */
  255.     verIndiaHindi                = 33,                            /* Hindi system for India */
  256.     verPakistan                    = 34,
  257.     verLithuania                = 41,
  258.     verPoland                    = 42,
  259.     verHungary                    = 43,
  260.     verEstonia                    = 44,
  261.     verLatvia                    = 45
  262. };
  263.  
  264. enum  {
  265.     verLapland                    = 46,
  266.     verFaeroeIsl                = 47,
  267.     verIran                        = 48,
  268.     verRussia                    = 49,
  269.     verIreland                    = 50,                            /* English-language version for Ireland */
  270.     verKorea                    = 51,
  271.     verChina                    = 52,
  272.     verTaiwan                    = 53,
  273.     verThailand                    = 54
  274. };
  275.  
  276. #define minCountry verUS
  277.  
  278. #define maxCountry verThailand
  279.  
  280.  
  281. /*Obsolete region code names, kept for backward compatibility*/
  282.  
  283. enum  {
  284.     verBelgiumLux                = 6,                            /* (use verFrBelgiumLux instead, less ambiguous) */
  285.     verArabia                    = 16,
  286.     verYugoslavia                = 25,                            /* (use verYugoCroatian instead, less ambiguous) */
  287.     verIndia                    = 33,                            /* (use verIndiaHindi instead, less ambiguous) */
  288. /* Calendar Codes */
  289.     calGregorian                = 0,
  290.     calArabicCivil                = 1,
  291.     calArabicLunar                = 2,
  292.     calJapanese                    = 3,
  293.     calJewish                    = 4,
  294.     calCoptic                    = 5,
  295.     calPersian                    = 6,
  296. /* Integer Format Codes */
  297.     intWestern                    = 0,
  298.     intArabic                    = 1,
  299.     intRoman                    = 2,
  300.     intJapanese                    = 3,
  301.     intEuropean                    = 4,
  302.     intOutputMask                = 0x8000,
  303. /* CharByte byte types */
  304.     smSingleByte                = 0,
  305.     smFirstByte                    = -1,
  306.     smLastByte                    = 1,
  307.     smMiddleByte                = 2,
  308. /* CharType field masks */
  309.     smcTypeMask                    = 0x000F,
  310.     smcReserved                    = 0x00F0
  311. };
  312.  
  313. enum  {
  314.     smcClassMask                = 0x0F00,
  315.     smcOrientationMask            = 0x1000,                        /*two-byte script glyph orientation*/
  316.     smcRightMask                = 0x2000,
  317.     smcUpperMask                = 0x4000,
  318.     smcDoubleMask                = 0x8000,
  319. /* Basic CharType character types */
  320.     smCharPunct                    = 0x0000,
  321.     smCharAscii                    = 0x0001,
  322.     smCharEuro                    = 0x0007,
  323.     smCharExtAscii                = 0x0007,                        /* More correct synonym for smCharEuro */
  324. /* Additional CharType character types for script systems */
  325.     smCharKatakana                = 0x0002,                        /*Japanese Katakana*/
  326.     smCharHiragana                = 0x0003,                        /*Japanese Hiragana*/
  327.     smCharIdeographic            = 0x0004,                        /*Hanzi, Kanji, Hanja*/
  328.     smCharTwoByteGreek            = 0x0005,                        /*2-byte Greek in Far East systems*/
  329.     smCharTwoByteRussian        = 0x0006,                        /*2-byte Cyrillic in Far East systems*/
  330.     smCharBidirect                = 0x0008,                        /*Arabic/Hebrew*/
  331.     smCharContextualLR            = 0x0009,                        /*Contextual left-right: Thai, Indic scripts*/
  332.     smCharNonContextualLR        = 0x000A,                        /*Non-contextual left-right: Cyrillic, Greek*/
  333.     smCharHangul                = 0x000C,                        /*Korean Hangul*/
  334.     smCharJamo                    = 0x000D,                        /*Korean Jamo*/
  335.     smCharBopomofo                = 0x000E,                        /*Chinese Bopomofo*/
  336. /* old names for some of above, for backward compatibility */
  337.     smCharFISKana                = 0x0002,                        /*Katakana*/
  338.     smCharFISGana                = 0x0003,                        /*Hiragana*/
  339.     smCharFISIdeo                = 0x0004                        /*Hanzi, Kanji, Hanja*/
  340. };
  341.  
  342. enum  {
  343.     smCharFISGreek                = 0x0005,                        /*2-byte Greek in Far East systems*/
  344.     smCharFISRussian            = 0x0006,                        /*2-byte Cyrillic in Far East systems*/
  345. /* CharType classes for punctuation (smCharPunct) */
  346.     smPunctNormal                = 0x0000,
  347.     smPunctNumber                = 0x0100,
  348.     smPunctSymbol                = 0x0200,
  349.     smPunctBlank                = 0x0300,
  350. /* Additional CharType classes for punctuation in two-byte systems */
  351.     smPunctRepeat                = 0x0400,                        /* repeat marker */
  352.     smPunctGraphic                = 0x0500,                        /* line graphics */
  353. /* CharType Katakana and Hiragana classes for two-byte systems */
  354.     smKanaSmall                    = 0x0100,                        /*small kana character*/
  355.     smKanaHardOK                = 0x0200,                        /*can have dakuten*/
  356.     smKanaSoftOK                = 0x0300,                        /*can have dakuten or han-dakuten*/
  357. /* CharType Ideographic classes for two-byte systems */
  358.     smIdeographicLevel1            = 0x0000,                        /*level 1 char*/
  359.     smIdeographicLevel2            = 0x0100,                        /*level 2 char*/
  360.     smIdeographicUser            = 0x0200,                        /*user char*/
  361. /* old names for above, for backward compatibility */
  362.     smFISClassLvl1                = 0x0000,                        /*level 1 char*/
  363.     smFISClassLvl2                = 0x0100,                        /*level 2 char*/
  364.     smFISClassUser                = 0x0200,                        /*user char*/
  365. /* CharType Jamo classes for Korean systems */
  366.     smJamoJaeum                    = 0x0000,                        /*simple consonant char*/
  367.     smJamoBogJaeum                = 0x0100,                        /*complex consonant char*/
  368.     smJamoMoeum                    = 0x0200                        /*simple vowel char*/
  369. };
  370.  
  371. enum  {
  372.     smJamoBogMoeum                = 0x0300,                        /*complex vowel char*/
  373. /* CharType glyph orientation for two-byte systems */
  374.     smCharHorizontal            = 0x0000,                        /* horizontal character form, or for both */
  375.     smCharVertical                = 0x1000,                        /* vertical character form */
  376. /* CharType directions */
  377.     smCharLeft                    = 0x0000,
  378.     smCharRight                    = 0x2000,
  379. /* CharType case modifers */
  380.     smCharLower                    = 0x0000,
  381.     smCharUpper                    = 0x4000,
  382. /* CharType character size modifiers (1 or multiple bytes). */
  383.     smChar1byte                    = 0x0000,
  384.     smChar2byte                    = 0x8000,
  385. /* TransliterateText target types for Roman */
  386.     smTransAscii                = 0,                            /*convert to ASCII*/
  387.     smTransNative                = 1,                            /*convert to font script*/
  388.     smTransCase                    = 0xFE,                            /*convert case for all text*/
  389.     smTransSystem                = 0xFF,                            /*convert to system script*/
  390. /* TransliterateText target types for two-byte scripts */
  391.     smTransAscii1                = 2,                            /*1-byte Roman*/
  392.     smTransAscii2                = 3,                            /*2-byte Roman*/
  393.     smTransKana1                = 4,                            /*1-byte Japanese Katakana*/
  394.     smTransKana2                = 5                                /*2-byte Japanese Katakana*/
  395. };
  396.  
  397. enum  {
  398.     smTransGana2                = 7,                            /*2-byte Japanese Hiragana (no 1-byte Hiragana)*/
  399.     smTransHangul2                = 8,                            /*2-byte Korean Hangul*/
  400.     smTransJamo2                = 9,                            /*2-byte Korean Jamo*/
  401.     smTransBopomofo2            = 10,                            /*2-byte Chinese Bopomofo*/
  402. /* TransliterateText target modifiers */
  403.     smTransLower                = 0x4000,                        /*target becomes lowercase*/
  404.     smTransUpper                = 0x8000,                        /*target becomes uppercase*/
  405. /* TransliterateText resource format numbers */
  406.     smTransRuleBaseFormat        = 1,                            /*Rule based trsl resource format */
  407.     smTransHangulFormat            = 2,                            /*Table based Hangul trsl resource format*/
  408. /* TransliterateText property flags */
  409.     smTransPreDoubleByting        = 1,                            /*Convert all text to double byte before transliteration*/
  410.     smTransPreLowerCasing        = 2,                            /*Convert all text to lower case before transliteration*/
  411. /* TransliterateText source mask - general */
  412.     smMaskAll                    = (long)0xFFFFFFFF,                /*Convert all text*/
  413. /* TransliterateText source masks */
  414.     smMaskAscii                    = 0x00000001,                    /*2^smTransAscii*/
  415.     smMaskNative                = 0x00000002,                    /*2^smTransNative*/
  416. /* TransliterateText source masks for two-byte scripts */
  417.     smMaskAscii1                = 0x00000004,                    /*2^smTransAscii1*/
  418.     smMaskAscii2                = 0x00000008,                    /*2^smTransAscii2*/
  419.     smMaskKana1                    = 0x00000010,                    /*2^smTransKana1*/
  420.     smMaskKana2                    = 0x00000020,                    /*2^smTransKana2*/
  421.     smMaskGana2                    = 0x00000080,                    /*2^smTransGana2*/
  422.     smMaskHangul2                = 0x00000100,                    /*2^smTransHangul2*/
  423.     smMaskJamo2                    = 0x00000200,                    /*2^smTransJamo2*/
  424.     smMaskBopomofo2                = 0x00000400,                    /*2^smTransBopomofo2*/
  425. /* Result values from GetScriptManagerVariable and SetScriptManagerVariable calls. */
  426.     smNotInstalled                = 0,                            /*routine not available in script*/
  427.     smBadVerb                    = -1,                            /*Bad verb passed to a routine*/
  428.     smBadScript                    = -2                            /*Bad script code passed to a routine*/
  429. };
  430.  
  431. enum  {
  432. /* Values for script redraw flag. */
  433.     smRedrawChar                = 0,                            /*Redraw character only*/
  434.     smRedrawWord                = 1,                            /*Redraw entire word (2-byte systems)*/
  435.     smRedrawLine                = -1,                            /*Redraw entire line (bidirectional systems)*/
  436. /* GetScriptManagerVariable and SetScriptManagerVariable verbs */
  437.     smVersion                    = 0,                            /*Script Manager version number*/
  438.     smMunged                    = 2,                            /*Globals change count*/
  439.     smEnabled                    = 4,                            /*Count of enabled scripts, incl Roman*/
  440.     smBidirect                    = 6,                            /*At least one bidirectional script*/
  441.     smFontForce                    = 8,                            /*Force font flag*/
  442.     smIntlForce                    = 10,                            /*Force intl flag*/
  443.     smForced                    = 12,                            /*Script was forced to system script*/
  444.     smDefault                    = 14,                            /*Script was defaulted to Roman script*/
  445.     smPrint                        = 16,                            /*Printer action routine*/
  446.     smSysScript                    = 18,                            /*System script*/
  447.     smLastScript                = 20,                            /*Last keyboard script*/
  448.     smKeyScript                    = 22,                            /*Keyboard script*/
  449.     smSysRef                    = 24,                            /*System folder refNum*/
  450.     smKeyCache                    = 26,                            /*obsolete*/
  451.     smKeySwap                    = 28,                            /*Swapping table handle*/
  452.     smGenFlags                    = 30,                            /*General flags long*/
  453.     smOverride                    = 32                            /*Script override flags*/
  454. };
  455.  
  456. enum  {
  457.     smCharPortion                = 34,                            /*Ch vs SpExtra proportion*/
  458. /* New for System 7.0: */
  459.     smDoubleByte                = 36,                            /*Flag for double-byte script installed*/
  460.     smKCHRCache                    = 38,                            /*Returns pointer to KCHR cache*/
  461.     smRegionCode                = 40,                            /*Returns current region code (verXxx)*/
  462.     smKeyDisableState            = 42,                            /*Returns current keyboard disable state*/
  463. /* GetScriptVariable and SetScriptVariable verbs.
  464. Note: Verbs private to script systems are negative, while
  465. those general across script systems are non-negative. */
  466.     smScriptVersion                = 0,                            /*Script software version*/
  467.     smScriptMunged                = 2,                            /*Script entry changed count*/
  468.     smScriptEnabled                = 4,                            /*Script enabled flag*/
  469.     smScriptRight                = 6,                            /*Right to left flag*/
  470.     smScriptJust                = 8,                            /*Justification flag*/
  471.     smScriptRedraw                = 10,                            /*Word redraw flag*/
  472.     smScriptSysFond                = 12,                            /*Preferred system font*/
  473.     smScriptAppFond                = 14,                            /*Preferred Application font*/
  474.     smScriptBundle                = 16,                            /*Beginning of itlb verbs*/
  475.     smScriptNumber                = 16,                            /*Script itl0 id*/
  476.     smScriptDate                = 18,                            /*Script itl1 id*/
  477.     smScriptSort                = 20,                            /*Script itl2 id*/
  478.     smScriptFlags                = 22,                            /*flags word*/
  479.     smScriptToken                = 24,                            /*Script itl4 id*/
  480.     smScriptEncoding            = 26,                            /*id of optional itl5, if present*/
  481.     smScriptLang                = 28                            /*Current language for script*/
  482. };
  483.  
  484. enum  {
  485.     smScriptNumDate                = 30,                            /*Script Number/Date formats.*/
  486.     smScriptKeys                = 32,                            /*Script KCHR id*/
  487.     smScriptIcon                = 34,                            /*ID # of SICN or kcs#/kcs4/kcs8 suite*/
  488.     smScriptPrint                = 36,                            /*Script printer action routine*/
  489.     smScriptTrap                = 38,                            /*Trap entry pointer*/
  490.     smScriptCreator                = 40,                            /*Script file creator*/
  491.     smScriptFile                = 42,                            /*Script file name*/
  492.     smScriptName                = 44,                            /*Script name*/
  493. /* There is a hole here for old Kanji private verbs 46-76 
  494.  
  495.  New for System 7.0: */
  496.     smScriptMonoFondSize        = 78,                            /*default monospace FOND (hi) & size (lo)*/
  497.     smScriptPrefFondSize        = 80,                            /*preferred FOND (hi) & size (lo)*/
  498.     smScriptSmallFondSize        = 82,                            /*default small FOND (hi) & size (lo)*/
  499.     smScriptSysFondSize            = 84,                            /*default system FOND (hi) & size (lo)*/
  500.     smScriptAppFondSize            = 86,                            /*default app FOND (hi) & size (lo)*/
  501.     smScriptHelpFondSize        = 88,                            /*default Help Mgr FOND (hi) & size (lo)*/
  502.     smScriptValidStyles            = 90,                            /*mask of valid styles for script*/
  503.     smScriptAliasStyle            = 92,                            /*style (set) to use for aliases*/
  504. /* Special script code values for International Utilities */
  505.     iuSystemScript                = -1,                            /* <obsolete>  system script */
  506.     iuCurrentScript                = -2,                            /* <obsolete>  current script (for font of grafPort) */
  507. /* Negative verbs for KeyScript */
  508.     smKeyNextScript                = -1,                            /* Switch to next available script */
  509.     smKeySysScript                = -2,                            /* Switch to the system script */
  510.     smKeySwapScript                = -3,                            /* Switch to previously-used script */
  511. /* New for System 7.0: */
  512.     smKeyNextKybd                = -4                            /* Switch to next keyboard in current keyscript */
  513. };
  514.  
  515. enum  {
  516.     smKeySwapKybd                = -5,                            /* Switch to previously-used keyboard in current keyscript */
  517.     smKeyDisableKybds            = -6,                            /* Disable keyboards not in system or Roman script */
  518.     smKeyEnableKybds            = -7,                            /* Re-enable keyboards for all enabled scripts */
  519.     smKeyToggleInline            = -8,                            /* Toggle inline input for current keyscript */
  520.     smKeyToggleDirection        = -9,                            /* Toggle default line direction (TESysJust) */
  521.     smKeyNextInputMethod        = -10,                            /* Switch to next input method in current keyscript */
  522.     smKeySwapInputMethod        = -11,                            /* Switch to last-used input method in current keyscript */
  523.     smKeyDisableKybdSwitch        = -12,                            /* Disable switching from the current keyboard */
  524.     smKeySetDirLeftRight        = -15,                            /* Set default line dir to left-right, align left */
  525.     smKeySetDirRightLeft        = -16,                            /* Set default line dir to right-left, align right */
  526.     smKeyRoman                    = -17,                            /* Set keyscript to Roman. Does nothing if Roman-only
  527.                                         system, unlike KeyScript(smRoman) which forces
  528.                                         an update to current default Roman keyboard */
  529. /* Bits in the smScriptFlags word
  530. (bits above 8 are non-static) */
  531.     smsfIntellCP                = 0,                            /*Script has intelligent cut & paste*/
  532.     smsfSingByte                = 1,                            /*Script has only single bytes*/
  533.     smsfNatCase                    = 2,                            /*Native chars have upper & lower case*/
  534.     smsfContext                    = 3,                            /*Script is contextual*/
  535.     smsfNoForceFont                = 4,                            /*Script will not force characters*/
  536.     smsfB0Digits                = 5,                            /*Script has alternate digits at B0-B9*/
  537.     smsfAutoInit                = 6,                            /*Auto initialize the script*/
  538.     smsfUnivExt                    = 7,                            /*Script is handled by universal extension*/
  539.     smsfSynchUnstyledTE            = 8,                            /*Script synchronizes for unstyled TE*/
  540.     smsfForms                    = 13,                            /*Uses contextual forms for letters*/
  541.     smsfLigatures                = 14,                            /*Uses contextual ligatures*/
  542.     smsfReverse                    = 15,                            /*Reverses native text, right-left*/
  543. /* Bits in the smGenFlags long.
  544. First (high-order) byte is set from itlc flags byte. */
  545.     smfShowIcon                    = 31,                            /*Show icon even if only one script*/
  546.     smfDualCaret                = 30,                            /*Use dual caret for mixed direction text*/
  547.     smfNameTagEnab                = 29,                            /*Reserved for internal use*/
  548.     smfUseAssocFontInfo            = 28                            /*Use the associated font info for FontMetrics calls <48>*/
  549. };
  550.  
  551. enum  {
  552. /* Roman script constants 
  553.  
  554.  The following are here for backward compatibility, but should not be used. 
  555.  This information should be obtained using GetScript. */
  556.     romanSysFond                = 0x3FFF,                        /*system font id number*/
  557.     romanAppFond                = 3,                            /*application font id number*/
  558.     romanFlags                    = 0x0007,                        /*roman settings*/
  559. /* Script Manager font equates. */
  560.     smFondStart                    = 0x4000,                        /*start from 16K*/
  561.     smFondEnd                    = 0xC000,                        /*past end of range at 48K*/
  562. /* Miscellaneous font equates. */
  563.     smUprHalfCharSet            = 0x80,                            /*first char code in top half of std char set*/
  564. /* Character Set Extensions */
  565.     diaeresisUprY                = 0xD9,
  566.     fraction                    = 0xDA,
  567.     intlCurrency                = 0xDB,
  568.     leftSingGuillemet            = 0xDC,
  569.     rightSingGuillemet            = 0xDD,
  570.     fiLigature                    = 0xDE,
  571.     flLigature                    = 0xDF,
  572.     dblDagger                    = 0xE0,
  573.     centeredDot                    = 0xE1,
  574.     baseSingQuote                = 0xE2,
  575.     baseDblQuote                = 0xE3,
  576.     perThousand                    = 0xE4,
  577.     circumflexUprA                = 0xE5
  578. };
  579.  
  580. enum  {
  581.     circumflexUprE                = 0xE6,
  582.     acuteUprA                    = 0xE7,
  583.     diaeresisUprE                = 0xE8,
  584.     graveUprE                    = 0xE9,
  585.     acuteUprI                    = 0xEA,
  586.     circumflexUprI                = 0xEB,
  587.     diaeresisUprI                = 0xEC,
  588.     graveUprI                    = 0xED,
  589.     acuteUprO                    = 0xEE,
  590.     circumflexUprO                = 0xEF,
  591.     appleLogo                    = 0xF0,
  592.     graveUprO                    = 0xF1,
  593.     acuteUprU                    = 0xF2,
  594.     circumflexUprU                = 0xF3,
  595.     graveUprU                    = 0xF4,
  596.     dotlessLwrI                    = 0xF5,
  597.     circumflex                    = 0xF6,
  598.     tilde                        = 0xF7,
  599.     macron                        = 0xF8,
  600.     breveMark                    = 0xF9
  601. };
  602.  
  603. enum  {
  604.     overDot                        = 0xFA,
  605.     ringMark                    = 0xFB,
  606.     cedilla                        = 0xFC,
  607.     doubleAcute                    = 0xFD,
  608.     ogonek                        = 0xFE,
  609.     hachek                        = 0xFF,
  610. /* TokenType values */
  611.     tokenIntl                    = 4,                            /*the itl resource number of the tokenizer*/
  612.     tokenEmpty                    = -1                            /*used internally as an empty flag*/
  613. };
  614.  
  615. enum  {
  616.     tokenUnknown                = 0,                            /*chars that do not match a defined token type*/
  617.     tokenWhite                    = 1,                            /*white space*/
  618.     tokenLeftLit                = 2,                            /*literal begin*/
  619.     tokenRightLit                = 3,                            /*literal end*/
  620.     tokenAlpha                    = 4,                            /*alphabetic*/
  621.     tokenNumeric                = 5,                            /*numeric*/
  622.     tokenNewLine                = 6,                            /*new line*/
  623.     tokenLeftComment            = 7,                            /*open comment*/
  624.     tokenRightComment            = 8,                            /*close comment*/
  625.     tokenLiteral                = 9,                            /*literal*/
  626.     tokenEscape                    = 10,                            /*character escape (e.g. '\' in "\n", "\t")*/
  627.     tokenAltNum                    = 11,                            /*alternate number (e.g. $B0-B9 in Arabic,Hebrew)*/
  628.     tokenRealNum                = 12,                            /*real number*/
  629.     tokenAltReal                = 13,                            /*alternate real number*/
  630.     tokenReserve1                = 14,                            /*reserved*/
  631.     tokenReserve2                = 15,                            /*reserved*/
  632.     tokenLeftParen                = 16,                            /*open parenthesis*/
  633.     tokenRightParen                = 17,                            /*close parenthesis*/
  634.     tokenLeftBracket            = 18,                            /*open square bracket*/
  635.     tokenRightBracket            = 19                            /*close square bracket*/
  636. };
  637.  
  638. enum  {
  639.     tokenLeftCurly                = 20,                            /*open curly bracket*/
  640.     tokenRightCurly                = 21,                            /*close curly bracket*/
  641.     tokenLeftEnclose            = 22,                            /*open guillemet*/
  642.     tokenRightEnclose            = 23,                            /*close guillemet*/
  643.     tokenPlus                    = 24,
  644.     tokenMinus                    = 25,
  645.     tokenAsterisk                = 26,                            /*times/multiply*/
  646.     tokenDivide                    = 27,
  647.     tokenPlusMinus                = 28,                            /*plus or minus symbol*/
  648.     tokenSlash                    = 29,
  649.     tokenBackSlash                = 30,
  650.     tokenLess                    = 31,                            /*less than symbol*/
  651.     tokenGreat                    = 32,                            /*greater than symbol*/
  652.     tokenEqual                    = 33,
  653.     tokenLessEqual2                = 34,                            /*less than or equal, 2 characters (e.g. <=)*/
  654.     tokenLessEqual1                = 35,                            /*less than or equal, 1 character*/
  655.     tokenGreatEqual2            = 36,                            /*greater than or equal, 2 characters (e.g. >=)*/
  656.     tokenGreatEqual1            = 37,                            /*greater than or equal, 1 character*/
  657.     token2Equal                    = 38,                            /*double equal (e.g. ==)*/
  658.     tokenColonEqual                = 39                            /*colon equal*/
  659. };
  660.  
  661. enum  {
  662.     tokenNotEqual                = 40,                            /*not equal, 1 character*/
  663.     tokenLessGreat                = 41,                            /*less/greater, Pascal not equal (e.g. <>)*/
  664.     tokenExclamEqual            = 42,                            /*exclamation equal, C not equal (e.g. !=)*/
  665.     tokenExclam                    = 43,                            /*exclamation point*/
  666.     tokenTilde                    = 44,                            /*centered tilde*/
  667.     tokenComma                    = 45,
  668.     tokenPeriod                    = 46,
  669.     tokenLeft2Quote                = 47,                            /*open double quote*/
  670.     tokenRight2Quote            = 48,                            /*close double quote*/
  671.     tokenLeft1Quote                = 49,                            /*open single quote*/
  672.     tokenRight1Quote            = 50,                            /*close single quote*/
  673.     token2Quote                    = 51,                            /*double quote*/
  674.     token1Quote                    = 52,                            /*single quote*/
  675.     tokenSemicolon                = 53,
  676.     tokenPercent                = 54,
  677.     tokenCaret                    = 55,
  678.     tokenUnderline                = 56,
  679.     tokenAmpersand                = 57,
  680.     tokenAtSign                    = 58,
  681.     tokenBar                    = 59                            /*vertical bar*/
  682. };
  683.  
  684. enum  {
  685.     tokenQuestion                = 60,
  686.     tokenPi                        = 61,                            /*lower-case pi*/
  687.     tokenRoot                    = 62,                            /*square root symbol*/
  688.     tokenSigma                    = 63,                            /*capital sigma*/
  689.     tokenIntegral                = 64,                            /*integral sign*/
  690.     tokenMicro                    = 65,
  691.     tokenCapPi                    = 66,                            /*capital pi*/
  692.     tokenInfinity                = 67,
  693.     tokenColon                    = 68,
  694.     tokenHash                    = 69,                            /*e.g. #*/
  695.     tokenDollar                    = 70,
  696.     tokenNoBreakSpace            = 71,                            /*non-breaking space*/
  697.     tokenFraction                = 72,
  698.     tokenIntlCurrency            = 73,
  699.     tokenLeftSingGuillemet        = 74,
  700.     tokenRightSingGuillemet        = 75,
  701.     tokenPerThousand            = 76,
  702.     tokenEllipsis                = 77,
  703.     tokenCenterDot                = 78,
  704.     tokenNil                    = 127
  705. };
  706.  
  707. enum  {
  708.     delimPad                    = -2,
  709. /* obsolete, misspelled token names kept for backward compatibility */
  710.     tokenTilda                    = 44,
  711.     tokenCarat                    = 55
  712. };
  713.  
  714. enum  {
  715. /* Table selectors for GetItlTable */
  716.     smWordSelectTable            = 0,                            /* get word select break table from 'itl2' */
  717.     smWordWrapTable                = 1,                            /* get word wrap break table from 'itl2' */
  718.     smNumberPartsTable            = 2,                            /* get default number parts table from 'itl4' */
  719.     smUnTokenTable                = 3,                            /* get unToken table from 'itl4' */
  720.     smWhiteSpaceList            = 4,                            /* get white space list from 'itl4' */
  721.     iuWordSelectTable            = 0,                            /* <obsolete>  get word select break table from 'itl2' */
  722.     iuWordWrapTable                = 1,                            /* <obsolete>  get word wrap break table from 'itl2' */
  723.     iuNumberPartsTable            = 2,                            /* <obsolete>  get default number parts table from 'itl4' */
  724.     iuUnTokenTable                = 3,                            /* <obsolete>  get unToken table from 'itl4' */
  725.     iuWhiteSpaceList            = 4                                /* <obsolete>  get white space list from 'itl4' */
  726. };
  727.  
  728.  
  729. /* end of stuff moved from Packages.h */
  730.  
  731. enum  {
  732.     tokenOK,
  733.     tokenOverflow,
  734.     stringOverflow,
  735.     badDelim,
  736.     badEnding,
  737.     crash
  738. };
  739.  
  740. typedef unsigned char TokenResults;
  741.  
  742. typedef char CharByteTable[256];
  743.  
  744. typedef short TokenType;
  745.  
  746. typedef TokenType DelimType[2];
  747.  
  748. typedef TokenType CommentType[4];
  749.  
  750. #if defined(powerc) || defined (__powerc)
  751. #pragma options align=mac68k
  752. #endif
  753. struct TokenRec {
  754.     TokenType                    theToken;
  755.     Ptr                            position;                        /*pointer into original source*/
  756.     long                        length;                            /*length of text in original source*/
  757.     StringPtr                    stringPosition;                    /*Pascal/C string copy of identifier*/
  758. };
  759. #if defined(powerc) || defined(__powerc)
  760. #pragma options align=reset
  761. #endif
  762.  
  763. typedef struct TokenRec TokenRec;
  764.  
  765. typedef TokenRec *TokenRecPtr;
  766.  
  767. #if defined(powerc) || defined (__powerc)
  768. #pragma options align=mac68k
  769. #endif
  770. struct TokenBlock {
  771.     Ptr                            source;                            /*pointer to stream of characters*/
  772.     long                        sourceLength;                    /*length of source stream*/
  773.     Ptr                            tokenList;                        /*pointer to array of tokens*/
  774.     long                        tokenLength;                    /*maximum length of TokenList*/
  775.     long                        tokenCount;                        /*number tokens generated by tokenizer*/
  776.     Ptr                            stringList;                        /*pointer to stream of identifiers*/
  777.     long                        stringLength;                    /*length of string list*/
  778.     long                        stringCount;                    /*number of bytes currently used*/
  779.     Boolean                        doString;                        /*make strings & put into StringList*/
  780.     Boolean                        doAppend;                        /*append to TokenList rather than replace*/
  781.     Boolean                        doAlphanumeric;                    /*identifiers may include numeric*/
  782.     Boolean                        doNest;                            /*do comments nest?*/
  783.     TokenType                    leftDelims[2];
  784.     TokenType                    rightDelims[2];
  785.     TokenType                    leftComment[4];
  786.     TokenType                    rightComment[4];
  787.     TokenType                    escapeCode;                        /*escape symbol code*/
  788.     TokenType                    decimalCode;
  789.     Handle                        itlResource;                    /*handle to itl4 resource of current script*/
  790.     long                        reserved[8];                    /*must be zero!*/
  791. };
  792. #if defined(powerc) || defined(__powerc)
  793. #pragma options align=reset
  794. #endif
  795.  
  796. typedef struct TokenBlock TokenBlock;
  797.  
  798. typedef TokenBlock *TokenBlockPtr;
  799.  
  800. #ifdef __cplusplus
  801. extern "C" {
  802. #endif
  803.  
  804. #if USESCODEFRAGMENTS
  805. extern pascal short GetSysDirection(void);
  806. #else
  807. #define GetSysDirection() (* (short*) 0x0BAC)
  808.  
  809. #endif
  810.  
  811. extern pascal short FontScript(void)
  812.  FOURWORDINLINE(0x2F3C, 0x8200, 0x0000, 0xA8B5);
  813. extern pascal short IntlScript(void)
  814.  FOURWORDINLINE(0x2F3C, 0x8200, 0x0002, 0xA8B5);
  815. extern pascal void KeyScript(short code)
  816.  FOURWORDINLINE(0x2F3C, 0x8002, 0x0004, 0xA8B5);
  817. extern pascal short CharByte(Ptr textBuf, short textOffset)
  818.  FOURWORDINLINE(0x2F3C, 0x8206, 0x0010, 0xA8B5);
  819. extern pascal short CharType(Ptr textBuf, short textOffset)
  820.  FOURWORDINLINE(0x2F3C, 0x8206, 0x0012, 0xA8B5);
  821. extern pascal Boolean IsCmdChar(const EventRecord *eventRecord, short test)
  822.  FOURWORDINLINE(0x2F3C, 0x8206, 0xFFD0, 0xA8B5);
  823. extern pascal OSErr Transliterate(Handle srcHandle, Handle dstHandle, short target, long srcMask)
  824.  FOURWORDINLINE(0x2F3C, 0x820E, 0x0018, 0xA8B5);
  825. extern pascal Boolean ParseTable(CharByteTable table)
  826.  FOURWORDINLINE(0x2F3C, 0x8204, 0x0022, 0xA8B5);
  827. extern pascal void SetSysDirection(short newDirection)
  828.  TWOWORDINLINE(0x31DF, 0x0BAC);
  829. extern pascal TokenResults IntlTokenize(TokenBlockPtr tokenParam)
  830.  FOURWORDINLINE(0x2F3C, 0x8204, 0xFFFA, 0xA8B5);
  831. extern pascal short FontToScript(short fontNumber)
  832.  FOURWORDINLINE(0x2F3C, 0x8202, 0x0006, 0xA8B5);
  833. extern pascal long GetScriptManagerVariable(short selector)
  834.  FOURWORDINLINE(0x2F3C, 0x8402, 0x0008, 0xA8B5);
  835. extern pascal OSErr SetScriptManagerVariable(short selector, long param)
  836.  FOURWORDINLINE(0x2F3C, 0x8206, 0x000A, 0xA8B5);
  837. extern pascal long GetScriptVariable(short script, short selector)
  838.  FOURWORDINLINE(0x2F3C, 0x8404, 0x000C, 0xA8B5);
  839. extern pascal long GetScript(short script, short verb)
  840.  FOURWORDINLINE(0x2F3C, 0x8404, 0x000C, 0xA8B5);
  841. extern pascal OSErr SetScriptVariable(short script, short selector, long param)
  842.  FOURWORDINLINE(0x2F3C, 0x8208, 0x000E, 0xA8B5);
  843. extern pascal OSErr SetScript(short script, short verb, long param)
  844.  FOURWORDINLINE(0x2F3C, 0x8208, 0x000E, 0xA8B5);
  845.  
  846. /*  New for 7.1  */
  847.  
  848. extern pascal UniversalProcPtr GetScriptUtilityAddress(short selector, Boolean Before, ScriptCode script)
  849.  FOURWORDINLINE(0x2F3C, 0xC404, 0x0038, 0xA8B5);
  850. extern pascal void SetScriptUtilityAddress(short selector, Boolean Before, UniversalProcPtr routineAddr, ScriptCode script)
  851.  FOURWORDINLINE(0x2F3C, 0xC008, 0x003A, 0xA8B5);
  852. extern pascal UniversalProcPtr GetScriptQDPatchAddress(short trapNum, Boolean Before, Boolean forPrinting, ScriptCode script)
  853.  FOURWORDINLINE(0x2F3C, 0xC406, 0x003C, 0xA8B5);
  854. extern pascal void SetScriptQDPatchAddress(short trapNum, Boolean Before, Boolean forPrinting, UniversalProcPtr routineAddr, ScriptCode script)
  855.  FOURWORDINLINE(0x2F3C, 0xC00A, 0x003E, 0xA8B5);
  856. extern pascal short CharacterByteType(Ptr textBuf, short textOffset, ScriptCode script)
  857.  FOURWORDINLINE(0x2F3C, 0xC206, 0x0010, 0xA8B5);
  858. extern pascal short CharacterType(Ptr textBuf, short textOffset, ScriptCode script)
  859.  FOURWORDINLINE(0x2F3C, 0xC206, 0x0012, 0xA8B5);
  860. extern pascal OSErr TransliterateText(Handle srcHandle, Handle dstHandle, short target, long srcMask, ScriptCode script)
  861.  FOURWORDINLINE(0x2F3C, 0xC20E, 0x0018, 0xA8B5);
  862. extern pascal Boolean FillParseTable(CharByteTable table, ScriptCode script)
  863.  FOURWORDINLINE(0x2F3C, 0xC204, 0x0022, 0xA8B5);
  864.  
  865. /* Moved from Packages.h */
  866.  
  867. extern pascal Intl0Hndl GetIntlResource(short theID)
  868.  THREEWORDINLINE(0x3F3C, 0x0006, 0xA9ED);
  869. extern pascal void SetIntlResource(short refNum, short theID, Intl0Hndl intlHandle)
  870.  THREEWORDINLINE(0x3F3C, 0x0008, 0xA9ED);
  871. extern pascal void ClearIntlResourceCache(void)
  872.  THREEWORDINLINE(0x3F3C, 0x0018, 0xA9ED);
  873. extern pascal void GetIntlResourceTable(ScriptCode script, short tableCode, Intl0Hndl *itlHandle, long *offset, long *length)
  874.  THREEWORDINLINE(0x3F3C, 0x0024, 0xA9ED);
  875. #if OLDROUTINENAMES
  876. #define SetSysJust(newJust) SetSysDirection(newJust)
  877.  
  878. #define GetSysJust() GetSysDirection()
  879.  
  880. #define Font2Script(fontNumber) FontToScript(fontNumber)
  881.  
  882. #define GetEnvirons(verb) GetScriptManagerVariable(verb)
  883.  
  884. #define SetEnvirons(verb, param) SetScriptManagerVariable(verb, param)
  885.  
  886. #define IUGetIntl(theID) GetIntlResource(theID)
  887.  
  888. #define IUSetIntl(refNum, theID, intlHandle) SetIntlResource(refNum, theID, intlHandle)
  889.  
  890. #define IUClearCache() ClearIntlResourceCache()
  891.  
  892. #define IUGetItlTable(script, tableCode, itlHandle, offset, length)  \
  893.     GetIntlResourceTable(script, tableCode, itlHandle, offset, length)
  894.  
  895. #endif
  896.  
  897. #ifdef __cplusplus
  898. }
  899. #endif
  900.  
  901. #endif
  902.  
  903.