X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/e316fc14bef26f958937aec0e6854b61f71a3b34..09dded3d8606e8e4406fffcf477ceb4a1c97fee2:/librarian/font-optimizer/ext/Font-TTF/lib/Font/TTF/OTTags.pm diff --git a/librarian/font-optimizer/ext/Font-TTF/lib/Font/TTF/OTTags.pm b/librarian/font-optimizer/ext/Font-TTF/lib/Font/TTF/OTTags.pm new file mode 100644 index 0000000..71338e2 --- /dev/null +++ b/librarian/font-optimizer/ext/Font-TTF/lib/Font/TTF/OTTags.pm @@ -0,0 +1,706 @@ +package Font::TTF::OTTags; + +=head1 NAME + +Font::TTF::OTTags - Utilities for TrueType/OpenType tags + +=head1 SYNOPSIS + + use Font::TTF::OTTags qw( %tttags %ttnames readtagsfile ); + + # Look at built-in stuff: + $script_tag = $tttags{'SCRIPT'}{'Cypriot Syllabary'}; + $lang_name = $ttnames{'LANGUAGE'}{'AFK '} + + # Read latest tags file to add to built-in definitions + readtagsfile ("C:\\Program Files\\Microsoft VOLT\\TAGS.txt"); + +First-level keys to %tttags and %ttnames are: + +=over + +'SCRIPT' -- retrieve script tag or name + +'LANGUAGE' -- retrieve language tag or name + +'FEATURE' -- retrieve feature tag or name + +=back + +Built-in data has been derived from Microsoft's tag registry at +L, +updated to draft v1.5 of the OpenType Spec. + +=head1 METHODS + +=cut + +use strict; +use vars qw( %tttags %ttnames @EXPORT_OK @ISA ); +require Exporter; +@ISA = qw( Exporter ); +@EXPORT_OK = qw( %tttags %ttnames readtagsfile); + + +%tttags = ( + +# All data below derived from VOLT 1.3 TAGS.txt file. +# For conveninence of human checking, these are now sorted alphabetically. + +'SCRIPT' => { + "Arabic" => "arab", + "Armenian" => "armn", + "Balinese" => "bali", + "Bengali v.2" => "bng2", + "Bengali" => "beng", + "Bopomofo" => "bopo", + "Braille" => "brai", + "Buginese" => "bugi", + "Buhid" => "buhd", + "Byzantine Music" => "byzm", + "CJK Ideographic" => "hani", + "Canadian Syllabics" => "cans", + "Carian" => "cari", + "Cham" => "cham", + "Cherokee" => "cher", + "Coptic" => "copt", + "Cypriot Syllabary" => "cprt", + "Cyrillic" => "cyrl", + "Default" => "DFLT", + "Deseret" => "dsrt", + "Devanagari v.2" => "dev2", + "Devanagari" => "deva", + "Ethiopic" => "ethi", + "Georgian" => "geor", + "Glagolitic" => "glag", + "Gothic" => "goth", + "Greek" => "grek", + "Gujarati v.2" => "gjr2", + "Gujarati" => "gujr", + "Gurmukhi v.2" => "gur2", + "Gurmukhi" => "guru", + "Hangul Jamo" => "jamo", + "Hangul" => "hang", + "Hanunoo" => "hano", + "Hebrew" => "hebr", + "Hiragana" => "kana", + "Javanese" => "java", + "Kannada v.2" => "knd2", + "Kannada" => "knda", + "Katakana" => "kana", + "Kayah Li" => "kali", + "Kharosthi" => "khar", + "Khmer" => "khmr", + "Lao" => "lao ", + "Latin" => "latn", + "Lepcha" => "lepc", + "Limbu" => "limb", + "Linear B" => "linb", + "Lycian" => "lyci", + "Lydian" => "lydi", + "Malayalam v.2" => "mlm2", + "Malayalam" => "mlym", + "Mathematical Alphanumeric Symbols" => "math", + "Mongolian" => "mong", + "Musical Symbols" => "musc", + "Myanmar" => "mymr", + "N'Ko" => "nko ", + "New Tai Lue" => "talu", + "Ogham" => "ogam", + "Ol Chiki" => "olck", + "Old Italic" => "ital", + "Old Persian Cuneiform" => "xpeo", + "Oriya v.2" => "ory2", + "Oriya" => "orya", + "Osmanya" => "osma", + "Phags-pa" => "phag", + "Phoenician" => "phnx", + "Rejang" => "rjng", + "Runic" => "runr", + "Saurashtra" => "saur", + "Shavian" => "shaw", + "Sinhala" => "sinh", + "Sumero-Akkadian Cuneiform" => "xsux", + "Sundanese" => "sund", + "Syloti Nagri" => "sylo", + "Syriac" => "syrc", + "Tagalog" => "tglg", + "Tagbanwa" => "tagb", + "Tai Le" => "tale", + "Tamil v.2" => "tml2", + "Tamil" => "taml", + "Telugu v.2" => "tel2", + "Telugu" => "telu", + "Thaana" => "thaa", + "Thai" => "thai", + "Tibetan" => "tibt", + "Tifinagh" => "tfng", + "Ugaritic Cuneiform" => "ugar", + "Vai" => "vai ", + "Yi" => "yi ", + }, + +'LANGUAGE' => { + "Aari" => "ARI ", + "Abaza" => "ABA ", + "Abkhazian" => "ABK ", + "Adyghe" => "ADY ", + "Afar" => "AFR ", + "Afrikaans" => "AFK ", + "Agaw" => "AGW ", + "Albanian" => "SQI ", + "Alsatian" => "ALS ", + "Altai" => "ALT ", + "Amharic" => "AMH ", + "Arabic" => "ARA ", + "Arakanese" => "ARK ", + "Armenian" => "HYE ", + "Assamese" => "ASM ", + "Athapaskan" => "ATH ", + "Avar" => "AVR ", + "Awadhi" => "AWA ", + "Aymara" => "AYM ", + "Azeri" => "AZE ", + "Badaga" => "BAD ", + "Baghelkhandi" => "BAG ", + "Balante" => "BLN ", + "Balkar" => "BAL ", + "Balochi" => "BLI ", + "Balti" => "BLT ", + "Bambara" => "BMB ", + "Bamileke" => "BML ", + "Bashkir" => "BSH ", + "Basque" => "EUQ ", + "Baule" => "BAU ", + "Belarussian" => "BEL ", + "Bemba" => "BEM ", + "Bench" => "BCH ", + "Bengali" => "BEN ", + "Berber" => "BBR ", + "Beti" => "BTI ", + "Bhili" => "BHI ", + "Bhojpuri" => "BHO ", + "Bible Cree" => "BCR ", + "Bikol" => "BIK ", + "Bilen" => "BIL ", + "Blackfoot" => "BKF ", + "Bosnian" => "BOS ", + "Brahui" => "BRH ", + "Braj Bhasha" => "BRI ", + "Breton" => "BRE ", + "Bulgarian" => "BGR ", + "Burmese" => "BRM ", + "Carrier" => "CRR ", + "Catalan" => "CAT ", + "Cebuano" => "CEB ", + "Chaha Gurage" => "CHG ", + "Chattisgarhi" => "CHH ", + "Chechen" => "CHE ", + "Cherokee" => "CHR ", + "Chichewa" => "CHI ", + "Chin" => "QIN ", + "Chinese Hong Kong" => "ZHH ", + "Chinese Phonetic" => "ZHP ", + "Chinese Simplified" => "ZHS ", + "Chinese Traditional" => "ZHT ", + "Chipewyan" => "CHP ", + "Chukchi" => "CHK ", + "Church Slavonic" => "CSL ", + "Chuvash" => "CHU ", + "Comorian" => "CMR ", + "Coptic" => "COP ", + "Corsican" => "COS ", + "Cree" => "CRE ", + "Crimean Tatar" => "CRT ", + "Croatian" => "HRV ", + "Czech" => "CSY ", + "Dangme" => "DNG ", + "Danish" => "DAN ", + "Dargwa" => "DAR ", + "Dari" => "DRI ", + "Default" => "dflt", + "Dhivehi (OBSOLETE)" => "DHV ", + "Dhivehi" => "DIV ", + "Dinka" => "DNK ", + "Djerma" => "DJR ", + "Dogri" => "DGR ", + "Dungan" => "DUN ", + "Dutch" => "NLD ", + "Dzongkha" => "DZN ", + "Eastern Cree" => "ECR ", + "Ebira" => "EBI ", + "Edo" => "EDO ", + "Efik" => "EFI ", + "English" => "ENG ", + "Erzya" => "ERZ ", + "Esperanto" => "NTO ", + "Estonian" => "ETI ", + "Even" => "EVN ", + "Evenki" => "EVK ", + "Ewe" => "EWE ", + "Faroese" => "FOS ", + "Farsi" => "FAR ", + "Fijian" => "FJI ", + "Filipino" => "PIL ", + "Finnish" => "FIN ", + "Flemish" => "FLE ", + "Fon" => "FON ", + "Forest Nenets" => "FNE ", + "French Antillean" => "FAN ", + "French" => "FRA ", + "Frisian" => "FRI ", + "Friulian" => "FRL ", + "Fulani" => "FUL ", + "Futa" => "FTA ", + "Ga" => "GAD ", + "Gaelic" => "GAE ", + "Gagauz" => "GAG ", + "Galician" => "GAL ", + "Garhwali" => "GAW ", + "Garo" => "GRO ", + "Garshuni" => "GAR ", + "Ge'ez" => "GEZ ", + "Georgian" => "KAT ", + "German" => "DEU ", + "Gilyak" => "GIL ", + "Gondi" => "GON ", + "Greek" => "ELL ", + "Greenlandic" => "GRN ", + "Guarani" => "GUA ", + "Gujarati" => "GUJ ", + "Gumuz" => "GMZ ", + "Haitian" => "HAI ", + "Halam" => "HAL ", + "Hammer-Banna" => "HBN ", + "Harari" => "HRI ", + "Harauti" => "HAR ", + "Hausa" => "HAU ", + "Hawaiin" => "HAW ", + "Hebrew" => "IWR ", + "High Mari" => "HMA ", + "Hiligaynon" => "HIL ", + "Hindi" => "HIN ", + "Hindko" => "HND ", + "Ho" => "HO ", + "Hungarian" => "HUN ", + "Icelandic" => "ISL ", + "Igbo" => "IBO ", + "Ijo" => "IJO ", + "Ilokano" => "ILO ", + "Inari Sami" => "ISM ", + "Indonesian" => "IND ", + "Ingush" => "ING ", + "Inuktitut" => "INU ", + "Irish Traditional" => "IRT ", + "Irish" => "IRI ", + "Italian" => "ITA ", + "Japanese" => "JAN ", + "Javanese" => "JAV ", + "Judezmo" => "JUD ", + "Jula" => "JUL ", + "Kabardian" => "KAB ", + "Kachchi" => "KAC ", + "Kalenjin" => "KAL ", + "Kalmyk" => "KLM ", + "Kamba" => "KMB ", + "Kannada" => "KAN ", + "Kanuri" => "KNR ", + "Karachay" => "KAR ", + "Karaim" => "KRM ", + "Karakalpak" => "KRK ", + "Karelian" => "KRL ", + "Karen" => "KRN ", + "Kashmiri" => "KSH ", + "Kazakh" => "KAZ ", + "Kebena" => "KEB ", + "Khakass" => "KHA ", + "Khanty-Kazim" => "KHK ", + "Khanty-Shurishkar" => "KHS ", + "Khanty-Vakhi" => "KHV ", + "Khasi" => "KSI ", + "Khmer" => "KHM ", + "Khowar" => "KHW ", + "Khutsuri Georgian" => "KGE ", + "Kikongo" => "KON ", + "Kikuyu" => "KIK ", + "Kildin Sami" => "KSM ", + "Kirghiz" => "KIR ", + "Kisii" => "KIS ", + "Kodagu" => "KOD ", + "Kokni" => "KKN ", + "Komi-Permyak" => "KOP ", + "Komi-Zyrian" => "KOZ ", + "Komo" => "KMO ", + "Komso" => "KMS ", + "Konkani" => "KOK ", + "Koorete" => "KRT ", + "Korean Old Hangul" => "KOH ", + "Korean" => "KOR ", + "Koryak" => "KYK ", + "Kpelle" => "KPL ", + "Krio" => "KRI ", + "Kui" => "KUI ", + "Kulvi" => "KUL ", + "Kumaoni" => "KMN ", + "Kumyk" => "KUM ", + "Kurdish" => "KUR ", + "Kurukh" => "KUU ", + "Kuy" => "KUY ", + "L-Cree" => "LCR ", + "Ladakhi" => "LDK ", + "Ladin" => "LAD ", + "Lahuli" => "LAH ", + "Lak" => "LAK ", + "Lambani" => "LAM ", + "Lao" => "LAO ", + "Latin" => "LAT ", + "Latvian" => "LVI ", + "Laz" => "LAZ ", + "Lezgi" => "LEZ ", + "Limbu" => "LMB ", + "Lingala" => "LIN ", + "Lithuanian" => "LTH ", + "Lomwe" => "LMW ", + "Low Mari" => "LMA ", + "Lower Sorbian" => "LSB ", + "Luba" => "LUB ", + "Luganda" => "LUG ", + "Luhya" => "LUH ", + "Lule Sami" => "LSM ", + "Luo" => "LUO ", + "Luxembourgish" => "LTZ ", + "Macedonian" => "MKD ", + "Maithili" => "MTH ", + "Majang" => "MAJ ", + "Makua" => "MAK ", + "Malagasy" => "MLG ", + "Malay" => "MLY ", + "Malayalam Reformed" => "MLR ", + "Malayalam Traditional" => "MAL ", + "Male" => "MLE ", + "Malinke" => "MLN ", + "Maltese" => "MTS ", + "Manchu" => "MCH ", + "Mandinka" => "MND ", + "Maninka" => "MNK ", + "Manipuri" => "MNI ", + "Mansi" => "MAN ", + "Manx Gaelic" => "MNX ", + "Maori" => "MRI ", + "Mapudungun" => "MAP ", + "Marathi" => "MAR ", + "Marwari" => "MAW ", + "Mbundu" => "MBN ", + "Me'en" => "MEN ", + "Mende" => "MDE ", + "Mizo" => "MIZ ", + "Mohawk" => "MOH ", + "Moksha" => "MOK ", + "Moldavian" => "MOL ", + "Mon" => "MON ", + "Mongolian" => "MNG ", + "Moose Cree" => "MCR ", + "Moroccan" => "MOR ", + "Mundari" => "MUN ", + "N'Ko" => "NKO ", + "N-Cree" => "NCR ", + "Naga-Assamese" => "NAG ", + "Nagari" => "NGR ", + "Nanai" => "NAN ", + "Naskapi" => "NAS ", + "Ndebele" => "NDB ", + "Ndonga" => "NDG ", + "Nepali" => "NEP ", + "Newari" => "NEW ", + "Nisi" => "NIS ", + "Niuean" => "NIU ", + "Nkole" => "NKL ", + "Nogai" => "NOG ", + "Northern Sami" => "NSM ", + "Northern Tai" => "NTA ", + "Norway House Cree" => "NHC ", + "Norwegian" => "NOR ", + "Nynorsk" => "NYN ", + "Occitan" => "OCI ", + "Oji-Cree" => "OCR ", + "Ojibway" => "OJB ", + "Oriya" => "ORI ", + "Oromo" => "ORO ", + "Ossetian" => "OSS ", + "Palaung" => "PLG ", + "Palestinian Aramaic" => "PAA ", + "Pali" => "PAL ", + "Palpa" => "PAP ", + "Pashto" => "PAS ", + "Polish" => "PLK ", + "Polytonic Greek" => "PGR ", + "Portuguese" => "PTG ", + "Provencal" => "PRO ", + "Punjabi" => "PAN ", + "R-Cree" => "RCR ", + "Rajasthani" => "RAJ ", + "Rhaeto-Romanic" => "RMS ", + "Riang" => "RIA ", + "Romanian" => "ROM ", + "Romany" => "ROY ", + "Ruanda" => "RUA ", + "Russian Buriat" => "RBU ", + "Russian" => "RUS ", + "Rusyn" => "RSY ", + "Sadri" => "SAD ", + "Samoan" => "SMO ", + "Sango" => "SGO ", + "Sanskrit" => "SAN ", + "Santali" => "SAT ", + "Saraiki" => "SRK ", + "Sayisi" => "SAY ", + "Sekota" => "SEK ", + "Selkup" => "SEL ", + "Sena" => "SNA ", + "Serbian" => "SRB ", + "Serer" => "SRR ", + "Shan" => "SHN ", + "Sibe" => "SIB ", + "Sidamo" => "SID ", + "Silte Gurage" => "SIG ", + "Sindhi" => "SND ", + "Sinhalese" => "SNH ", + "Skolt Sami" => "SKS ", + "Slavey" => "SLA ", + "Slovak" => "SKY ", + "Slovenian" => "SLV ", + "Sodo Gurage" => "SOG ", + "Somali" => "SML ", + "Soninke" => "SNK ", + "Sotho" => "SOT ", + "South Slavey" => "SSL ", + "Southern Sami" => "SSM ", + "Spanish" => "ESP ", + "Suri" => "SUR ", + "Sutu" => "SXT ", + "Svan" => "SVA ", + "Swadaya Aramaic" => "SWA ", + "Swahili" => "SWK ", + "Swazi" => "SWZ ", + "Swedish" => "SVE ", + "Syriac" => "SYR ", + "TH-Cree" => "TCR ", + "Tabasaran" => "TAB ", + "Tahitian" => "THT ", + "Tai Lue" => "XBD ", + "Tajiki" => "TAJ ", + "Tamil" => "TAM ", + "Tatar" => "TAT ", + "Telugu" => "TEL ", + "Temne" => "TMN ", + "Thai" => "THA ", + "Tibetan" => "TIB ", + "Tigre" => "TGR ", + "Tigrinya" => "TGY ", + "Todo" => "TOD ", + "Tonga" => "TNG ", + "Tongan" => "TGN ", + "Tsonga" => "TSG ", + "Tswana" => "TNA ", + "Tulu" => "TUL ", + "Tundra Nenets" => "TNE ", + "Turkish" => "TRK ", + "Turkmen" => "TKM ", + "Turoyo Aramaic" => "TUA ", + "Tuvin" => "TUV ", + "Twi" => "TWI ", + "Udmurt" => "UDM ", + "Ukrainian" => "UKR ", + "Upper Sorbian" => "USB ", + "Urdu" => "URD ", + "Uyghur" => "UYG ", + "Uzbek" => "UZB ", + "Venda" => "VEN ", + "Vietnamese" => "VIT ", + "Wa" => "WA ", + "Wagdi" => "WAG ", + "Welsh" => "WEL ", + "West-Cree" => "WCR ", + "Wolof" => "WLF ", + "Woods Cree" => "DCR ", + "Xhosa" => "XHS ", + "Y-Cree" => "YCR ", + "Yakut" => "YAK ", + "Yi Classic" => "YIC ", + "Yi Modern" => "YIM ", + "Yiddish" => "JII ", + "Yoruba" => "YBA ", + "Zande" => "ZND ", + "Zulu" => "ZUL ", + }, + +'FEATURE' => { + "Above-Base Forms" => "abvf", + "Above-Base Mark Positioning" => "abvm", + "Above-Base Substitutions" => "abvs", + "Access All Alternates" => "aalt", + "Akhands" => "akhn", + "Alternate Annotation Forms" => "nalt", + "Alternate Half Widths" => "halt", + "Alternate Vertical Half Metrics" => "vhal", + "Alternate Vertical Metrics" => "valt", + "Alternative Fractions" => "afrc", + "Below-Base Forms" => "blwf", + "Below-Base Mark Positioning" => "blwm", + "Below-Base Substitutions" => "blws", + "Capital Spacing" => "cpsp", + "Case-Sensitive Forms" => "case", + "Centered CJK Punctuation" => "cpct", + "Conjunct Forms After Ro" => "cfar", + "Conjunct Forms" => "cjct", + "Contextual Alternates" => "calt", + "Contextual Ligatures" => "clig", + "Contextual Swash" => "cswh", + "Cursive Positioning" => "curs", + "Default Processing" => "dflt", + "Denominators" => "dnom", + "Diphthongs (OBSOLETE)" => "dpng", + "Discretionary Ligatures" => "dlig", + "Distances" => "dist", + "Expert Forms" => "expt", + "Final Glyph On Line Alternates" => "falt", + "Fractions" => "frac", + "Full Widths" => "fwid", + "Glyph Composition/Decomposition" => "ccmp", + "Halant Forms" => "haln", + "Half Forms" => "half", + "Half Widths" => "hwid", + "Hangul" => "hngl", + "Historical Forms" => "hist", + "Historical Ligatures" => "hlig", + "Hojo (JIS X 0212-1990) Kanji Forms" => "hojo", + "Horizontal Kana Alternates" => "hkna", + "Initial Forms" => "init", + "Isolated Forms" => "isol", + "Italics" => "ital", + "JIS2004 Forms" => "jp04", + "JIS78 Forms" => "jp78", + "JIS83 Forms" => "jp83", + "JIS90 Forms" => "jp90", + "Justification Alternates" => "jalt", + "Kerning" => "kern", + "Leading Jamo Forms" => "ljmo", + "Left Bounds" => "lfbd", + "Lining Figures" => "lnum", + "Localized Forms" => "locl", + "Mark Positioning via Substitution" => "mset", + "Mark Positioning" => "mark", + "Mark to Mark Positioning" => "mkmk", + "Mathematical Greek" => "mgrk", + "Medial Forms #2" => "med2", + "Medial Forms" => "medi", + "NLC Kanji Forms" => "nlck", + "Nukta Forms" => "nukt", + "Numerators" => "numr", + "Oldstyle Figures" => "onum", + "Optical Bounds" => "opbd", + "Optical Size" => "size", + "Ordinals" => "ordn", + "Ornaments" => "ornm", + "Petite Capitals From Capitals" => "c2pc", + "Petite Capitals" => "pcap", + "Post-base Forms" => "pstf", + "Post-base Substitutions" => "psts", + "Pre-base Forms" => "pref", + "Pre-base Substitutions" => "pres", + "Proportional Alternate Vertical Metrics" => "vpal", + "Proportional Alternate Widths" => "palt", + "Proportional Figures" => "pnum", + "Proportional Kana" => "pkna", + "Proportional Widths" => "pwid", + "Quarter Widths" => "qwid", + "Rakar Forms" => "rkrf", + "Randomize" => "rand", + "Reph Forms" => "rphf", + "Required Ligatures" => "rlig", + "Right Bounds" => "rtbd", + "Right-To-Left Alternates" => "rtla", + "Ruby Notation Forms" => "ruby", + "Scientific Inferiors" => "sinf", + "Simplified Forms" => "smpl", + "Slashed Zero" => "zero", + "Small Capitals From Capitals" => "c2sc", + "Small Capitals" => "smcp", + "Standard Ligatures" => "liga", + "Stylistic Alternates" => "salt", + "Stylistic Set 1" => "ss01", + "Stylistic Set 10" => "ss10", + "Stylistic Set 11" => "ss11", + "Stylistic Set 12" => "ss12", + "Stylistic Set 13" => "ss13", + "Stylistic Set 14" => "ss14", + "Stylistic Set 15" => "ss15", + "Stylistic Set 16" => "ss16", + "Stylistic Set 17" => "ss17", + "Stylistic Set 18" => "ss18", + "Stylistic Set 19" => "ss19", + "Stylistic Set 2" => "ss02", + "Stylistic Set 20" => "ss20", + "Stylistic Set 3" => "ss03", + "Stylistic Set 4" => "ss04", + "Stylistic Set 5" => "ss05", + "Stylistic Set 6" => "ss06", + "Stylistic Set 7" => "ss07", + "Stylistic Set 8" => "ss08", + "Stylistic Set 9" => "ss09", + "Subscript" => "subs", + "Superscript" => "sups", + "Swash" => "swsh", + "Tabular Figures" => "tnum", + "Terminal Forms #2" => "fin2", + "Terminal Forms #3" => "fin3", + "Terminal Forms" => "fina", + "Third Widths" => "twid", + "Titling" => "titl", + "Traditional Forms" => "trad", + "Traditional Name Forms" => "tnam", + "Trailing Jamo Forms" => "tjmo", + "Unicase" => "unic", + "Vattu Variants" => "vatu", + "Vertical Alternates and Rotation" => "vrt2", + "Vertical Kana Alternates" => "vkna", + "Vertical Kerning" => "vkrn", + "Vertical Writing" => "vert", + "Vowel Jamo Forms" => "vjmo", + } +); + +{ + foreach my $s (qw ( SCRIPT LANGUAGE FEATURE ) ) + { + map { $ttnames{$s}{$tttags{$s}{$_}} = $_ } keys %{$tttags{$s}}; + } +} + + +=head2 readtagsfile ( filename ) + +Read a file in the syntax of Tags.txt (included with Microsoft VOLT) to obtain additional/replacement tag definitions. + +Returns 0 if can't open the file; else 1. + +=cut + +sub readtagsfile +{ + my $fname = shift; + open (TAGS, $fname) or return 0; + my ($what, $name, $tag); + while () + { + ($what, $name, $tag) = (m/"([^"]*)", "([^"]*)", "([^"]*)"/); #" + $ttnames{$what}{$tag} = $name; + $tttags{$what}{$name} = $tag; + } + close TAGS; + return 1; +} + + + +1;