1/*********************************************************************** 2* * 3* This software is part of the ast package * 4* Copyright (c) 1985-2010 AT&T Intellectual Property * 5* and is licensed under the * 6* Common Public License, Version 1.0 * 7* by AT&T Intellectual Property * 8* * 9* A copy of the License is available at * 10* http://www.opensource.org/licenses/cpl1.0.txt * 11* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 12* * 13* Information and Software Systems Research * 14* AT&T Research * 15* Florham Park NJ * 16* * 17* Glenn Fowler <gsf@research.att.com> * 18* David Korn <dgk@research.att.com> * 19* Phong Vo <kpv@research.att.com> * 20* * 21***********************************************************************/ 22 23/* : : generated by proto : : */ 24/* : : generated by ./lcgen : : */ 25 26 27#ifndef _LC_H 28#if !defined(__PROTO__) 29#include <prototyped.h> 30#endif 31#if !defined(__LINKAGE__) 32#define __LINKAGE__ /* 2004-08-11 transition */ 33#endif 34 35#define _LC_H 1 36 37#include <ast.h> 38 39#define LC_abbreviated 0x00001 40#define LC_checked 0x00002 41#define LC_debug 0x00004 42#define LC_default 0x00008 43#define LC_defined 0x00010 44#define LC_local 0x00020 45#define LC_primary 0x00040 46#define LC_qualified 0x00080 47#define LC_undefined 0x00100 48#define LC_utf8 0x00200 49#define LC_verbose 0x00400 50#define LC_setlocale 0x10000 51#define LC_setenv 0x20000 52#define LC_user 0x40000 53#define LC_language_attribute_max 2 54#define LC_territory_language_max 4 55 56struct Lc_s; 57 58typedef struct Lc_info_s 59{ 60 const struct Lc_s* lc; 61 unsigned long number; 62 __V_* data; 63} Lc_info_t; 64 65typedef struct Lc_attribute_s 66{ 67 const char* name; 68 unsigned long flags; 69 unsigned long index; 70} Lc_attribute_t; 71 72typedef struct Lc_charset_s 73{ 74 const char* code; 75 const char* alternates; 76 const char* ms; 77 unsigned long index; 78} Lc_charset_t; 79 80typedef struct Lc_language_s 81{ 82 const char* code; 83 const char* name; 84 const char* alternates; 85 const Lc_charset_t* charset; 86 unsigned long flags; 87 unsigned long index; 88 const Lc_attribute_t* attributes[LC_language_attribute_max]; 89} Lc_language_t; 90 91typedef struct Lc_territory_s 92{ 93 const char* code; 94 const char* name; 95 unsigned long flags; 96 unsigned long index; 97 const Lc_language_t* languages[LC_territory_language_max]; 98#ifdef _LC_TERRITORY_PRIVATE_ 99 _LC_TERRITORY_PRIVATE_ 100#endif 101} Lc_territory_t; 102 103typedef struct Lc_map_s 104{ 105 const char* code; 106 const Lc_language_t* language; 107 const Lc_territory_t* territory; 108 const Lc_charset_t* charset; 109 const Lc_attribute_t* attribute; 110} Lc_map_t; 111 112typedef struct Lc_attribute_list_s 113{ 114 struct Lc_attribute_list_s* next; 115 const Lc_attribute_t* attribute; 116} Lc_attribute_list_t; 117 118typedef struct Lc_s 119{ 120 const char* name; 121 const char* code; 122 const Lc_language_t* language; 123 const Lc_territory_t* territory; 124 const Lc_charset_t* charset; 125 const Lc_attribute_list_t* attributes; 126 unsigned long flags; 127 unsigned long index; 128#ifdef _LC_PRIVATE_ 129 _LC_PRIVATE_ 130#endif 131} Lc_t; 132 133struct Lc_category_s; 134 135typedef int (*Lc_category_set_f) __PROTO__((struct Lc_category_s*)); 136 137typedef struct Lc_category_s 138{ 139 const char* name; 140 int external; 141 int internal; 142 Lc_category_set_f setf; 143 Lc_t* prev; 144 unsigned int flags; 145} Lc_category_t; 146 147#if _BLD_ast && defined(__EXPORT__) 148#undef __MANGLE__ 149#define __MANGLE__ __LINKAGE__ __EXPORT__ 150#endif 151 152extern __MANGLE__ size_t lccanon __PROTO__((Lc_t*, unsigned long flags, char*, size_t)); 153extern __MANGLE__ Lc_category_t* lccategories __PROTO__((void)); 154extern __MANGLE__ int lcindex __PROTO__((int, int)); 155extern __MANGLE__ Lc_info_t* lcinfo __PROTO__((int)); 156extern __MANGLE__ Lc_t* lcmake __PROTO__((const char*)); 157extern __MANGLE__ Lc_t* lcscan __PROTO__((Lc_t*)); 158 159#undef __MANGLE__ 160#define __MANGLE__ __LINKAGE__ 161 162#endif 163