14887Schin 24887Schin /* : : generated by proto : : */ 34887Schin /*********************************************************************** 44887Schin * * 54887Schin * This software is part of the ast package * 6*12068SRoger.Faulkner@Oracle.COM * Copyright (c) 1985-2010 AT&T Intellectual Property * 74887Schin * and is licensed under the * 84887Schin * Common Public License, Version 1.0 * 98462SApril.Chin@Sun.COM * by AT&T Intellectual Property * 104887Schin * * 114887Schin * A copy of the License is available at * 124887Schin * http://www.opensource.org/licenses/cpl1.0.txt * 134887Schin * (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) * 144887Schin * * 154887Schin * Information and Software Systems Research * 164887Schin * AT&T Research * 174887Schin * Florham Park NJ * 184887Schin * * 194887Schin * Glenn Fowler <gsf@research.att.com> * 204887Schin * David Korn <dgk@research.att.com> * 214887Schin * Phong Vo <kpv@research.att.com> * 224887Schin * * 234887Schin ***********************************************************************/ 244887Schin 254887Schin 264887Schin /* 274887Schin * Glenn Fowler 284887Schin * AT&T Research 294887Schin * 304887Schin * character code map interface 314887Schin * 324887Schin * NOTE: used for mapping between 8-bit character encodings 334887Schin * ISO character sets are handled by sfio 344887Schin */ 354887Schin 364887Schin #ifndef _CHARCODE_H 374887Schin #if !defined(__PROTO__) 384887Schin #include <prototyped.h> 394887Schin #endif 404887Schin #if !defined(__LINKAGE__) 414887Schin #define __LINKAGE__ /* 2004-08-11 transition */ 424887Schin #endif 434887Schin 444887Schin #define _CHARCODE_H 1 454887Schin 46*12068SRoger.Faulkner@Oracle.COM #include <ast_common.h> 474887Schin #include <ast_ccode.h> 484887Schin 494887Schin typedef struct Ccmap_s 504887Schin { 514887Schin const char* name; /* code set name */ 524887Schin const char* match; /* strmatch() pattern */ 534887Schin const char* desc; /* code set description */ 544887Schin const char* canon; /* canonical name format */ 554887Schin const char* index; /* default index */ 564887Schin int ccode; /* <ccode.h> code index */ 574887Schin __V_* data; /* map specific data */ 584887Schin } Ccmap_t; 594887Schin 604887Schin #if _BLD_ast && defined(__EXPORT__) 614887Schin #undef __MANGLE__ 624887Schin #define __MANGLE__ __LINKAGE__ __EXPORT__ 634887Schin #endif 644887Schin 654887Schin extern __MANGLE__ unsigned char* _ccmap __PROTO__((int, int)); 664887Schin extern __MANGLE__ __V_* _ccmapcpy __PROTO__((unsigned char*, __V_*, const __V_*, size_t)); 674887Schin extern __MANGLE__ __V_* _ccmapstr __PROTO__((unsigned char*, __V_*, size_t)); 684887Schin 694887Schin extern __MANGLE__ int ccmapid __PROTO__((const char*)); 704887Schin extern __MANGLE__ char* ccmapname __PROTO__((int)); 714887Schin extern __MANGLE__ __V_* ccnative __PROTO__((__V_*, const __V_*, size_t)); 724887Schin extern __MANGLE__ Ccmap_t* ccmaplist __PROTO__((Ccmap_t*)); 734887Schin 744887Schin #undef __MANGLE__ 754887Schin #define __MANGLE__ __LINKAGE__ 764887Schin 774887Schin #define CCOP(i,o) ((i)==(o)?0:(((o)<<8)|(i))) 784887Schin #define CCIN(x) ((x)&0xFF) 794887Schin #define CCOUT(x) (((x)>>8)&0xFF) 804887Schin #define CCCONVERT(x) ((x)&0xFF00) 814887Schin 824887Schin #define CCCVT(x) CCMAP(x,0) 834887Schin #define CCMAP(i,o) ((i)==(o)?(unsigned char*)0:_ccmap(i,o)) 844887Schin #define CCMAPCHR(m,c) ((m)?(m)[c]:(c)) 854887Schin #define CCMAPCPY(m,t,f,n) ((m)?_ccmapcpy(m,t,f,n):memcpy(t,f,n)) 864887Schin #define CCMAPSTR(m,s,n) ((m)?_ccmapstr(m,s,n):(__V_*)(s)) 874887Schin 884887Schin #define ccmap(i,o) CCMAP(i,o) 894887Schin #define ccmapchr(m,c) CCMAPCHR(m,c) 904887Schin #define ccmapcpy(m,t,f,n) CCMAPCPY(m,t,f,n) 914887Schin #define ccmapstr(m,s,n) CCMAPSTR(m,s,n) 924887Schin 934887Schin #define CCMAPC(c,i,o) ((i)==(o)?(c):CCMAP(i,o)[c]) 944887Schin #define CCMAPM(t,f,n,i,o) ((i)==(o)?memcpy(t,f,n):_ccmapcpy(CCMAP(i,o),t,f,n)) 954887Schin #define CCMAPS(s,n,i,o) ((i)==(o)?(__V_*)(s):_ccmapstr(CCMAP(i,o),s,n)) 964887Schin 974887Schin #define ccmapc(c,i,o) CCMAPC(c,i,o) 984887Schin #define ccmapm(t,f,n,i,o) CCMAPM(t,f,n,i,o) 994887Schin #define ccmaps(s,n,i,o) CCMAPS(s,n,i,o) 1004887Schin 1014887Schin #endif 102