14887Schin /*********************************************************************** 24887Schin * * 34887Schin * This software is part of the ast package * 4*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 54887Schin * and is licensed under the * 64887Schin * Common Public License, Version 1.0 * 78462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 84887Schin * * 94887Schin * A copy of the License is available at * 104887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 114887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 124887Schin * * 134887Schin * Information and Software Systems Research * 144887Schin * AT&T Research * 154887Schin * Florham Park NJ * 164887Schin * * 174887Schin * Glenn Fowler <gsf@research.att.com> * 184887Schin * David Korn <dgk@research.att.com> * 194887Schin * Phong Vo <kpv@research.att.com> * 204887Schin * * 214887Schin ***********************************************************************/ 224887Schin 234887Schin /* : : generated by proto : : */ 244887Schin /* : : generated by ./lcgen : : */ 254887Schin 264887Schin 274887Schin #ifndef _LC_H 284887Schin #if !defined(__PROTO__) 294887Schin #include <prototyped.h> 304887Schin #endif 314887Schin #if !defined(__LINKAGE__) 324887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 334887Schin #endif 344887Schin 354887Schin #define _LC_H 1 364887Schin 374887Schin #include <ast.h> 384887Schin 394887Schin #define LC_abbreviated 0x00001 404887Schin #define LC_checked 0x00002 4110898Sroland.mainz@nrubsig.org #define LC_debug 0x00004 4210898Sroland.mainz@nrubsig.org #define LC_default 0x00008 4310898Sroland.mainz@nrubsig.org #define LC_defined 0x00010 444887Schin #define LC_local 0x00020 454887Schin #define LC_primary 0x00040 464887Schin #define LC_qualified 0x00080 474887Schin #define LC_undefined 0x00100 4810898Sroland.mainz@nrubsig.org #define LC_utf8 0x00200 4910898Sroland.mainz@nrubsig.org #define LC_verbose 0x00400 50*12068SRoger.Faulkner@Oracle.COM #define LC_setlocale 0x10000 51*12068SRoger.Faulkner@Oracle.COM #define LC_setenv 0x20000 52*12068SRoger.Faulkner@Oracle.COM #define LC_user 0x40000 534887Schin #define LC_language_attribute_max 2 544887Schin #define LC_territory_language_max 4 554887Schin 564887Schin struct Lc_s; 574887Schin 584887Schin typedef struct Lc_info_s 594887Schin { 604887Schin const struct Lc_s* lc; 614887Schin unsigned long number; 624887Schin __V_* data; 634887Schin } Lc_info_t; 644887Schin 654887Schin typedef struct Lc_attribute_s 664887Schin { 674887Schin const char* name; 684887Schin unsigned long flags; 694887Schin unsigned long index; 704887Schin } Lc_attribute_t; 714887Schin 724887Schin typedef struct Lc_charset_s 734887Schin { 744887Schin const char* code; 754887Schin const char* alternates; 764887Schin const char* ms; 774887Schin unsigned long index; 784887Schin } Lc_charset_t; 794887Schin 804887Schin typedef struct Lc_language_s 814887Schin { 824887Schin const char* code; 834887Schin const char* name; 844887Schin const char* alternates; 854887Schin const Lc_charset_t* charset; 864887Schin unsigned long flags; 874887Schin unsigned long index; 884887Schin const Lc_attribute_t* attributes[LC_language_attribute_max]; 894887Schin } Lc_language_t; 904887Schin 914887Schin typedef struct Lc_territory_s 924887Schin { 934887Schin const char* code; 944887Schin const char* name; 954887Schin unsigned long flags; 964887Schin unsigned long index; 974887Schin const Lc_language_t* languages[LC_territory_language_max]; 984887Schin #ifdef _LC_TERRITORY_PRIVATE_ 994887Schin _LC_TERRITORY_PRIVATE_ 1004887Schin #endif 1014887Schin } Lc_territory_t; 1024887Schin 1034887Schin typedef struct Lc_map_s 1044887Schin { 1054887Schin const char* code; 1064887Schin const Lc_language_t* language; 1074887Schin const Lc_territory_t* territory; 1084887Schin const Lc_charset_t* charset; 1094887Schin const Lc_attribute_t* attribute; 1104887Schin } Lc_map_t; 1114887Schin 1124887Schin typedef struct Lc_attribute_list_s 1134887Schin { 1144887Schin struct Lc_attribute_list_s* next; 1154887Schin const Lc_attribute_t* attribute; 1164887Schin } Lc_attribute_list_t; 1174887Schin 1184887Schin typedef struct Lc_s 1194887Schin { 1204887Schin const char* name; 1214887Schin const char* code; 1224887Schin const Lc_language_t* language; 1234887Schin const Lc_territory_t* territory; 1244887Schin const Lc_charset_t* charset; 1254887Schin const Lc_attribute_list_t* attributes; 1264887Schin unsigned long flags; 1274887Schin unsigned long index; 1284887Schin #ifdef _LC_PRIVATE_ 1294887Schin _LC_PRIVATE_ 1304887Schin #endif 1314887Schin } Lc_t; 1324887Schin 1334887Schin struct Lc_category_s; 1344887Schin 1354887Schin typedef int (*Lc_category_set_f) __PROTO__((struct Lc_category_s*)); 1364887Schin 1374887Schin typedef struct Lc_category_s 1384887Schin { 1394887Schin const char* name; 1404887Schin int external; 1414887Schin int internal; 1424887Schin Lc_category_set_f setf; 1434887Schin Lc_t* prev; 144*12068SRoger.Faulkner@Oracle.COM unsigned int flags; 1454887Schin } Lc_category_t; 1464887Schin 1474887Schin #if _BLD_ast && defined(__EXPORT__) 1484887Schin #undef __MANGLE__ 1494887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 1504887Schin #endif 1514887Schin 1524887Schin extern __MANGLE__ size_t lccanon __PROTO__((Lc_t*, unsigned long flags, char*, size_t)); 1534887Schin extern __MANGLE__ Lc_category_t* lccategories __PROTO__((void)); 1544887Schin extern __MANGLE__ int lcindex __PROTO__((int, int)); 1554887Schin extern __MANGLE__ Lc_info_t* lcinfo __PROTO__((int)); 1564887Schin extern __MANGLE__ Lc_t* lcmake __PROTO__((const char*)); 1574887Schin extern __MANGLE__ Lc_t* lcscan __PROTO__((Lc_t*)); 1584887Schin 1594887Schin #undef __MANGLE__ 1604887Schin #define __MANGLE__ __LINKAGE__ 1614887Schin 1624887Schin #endif 163