mc.h revision 7c2fbfb345896881c631598ee3852ce9ce33fb07
/* : : generated by proto : : */
/***********************************************************************
* *
* This software is part of the ast package *
* Copyright (c) 1985-2008 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
* *
* A copy of the License is available at *
* http://www.opensource.org/licenses/cpl1.0.txt *
* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
* *
* Information and Software Systems Research *
* AT&T Research *
* Florham Park NJ *
* *
* Glenn Fowler <gsf@research.att.com> *
* David Korn <dgk@research.att.com> *
* Phong Vo <kpv@research.att.com> *
* *
***********************************************************************/
/*
* machine independent binary message catalog interface
*
* file layout
* all numbers are sfputu() format
*
* 4 char magic (^M^S^G0)
* <method locale YYYY-MM-DD>\0
* (<optional strings>\0)*
* \0
* string table size
* #msgs total
* #max set number
* #set-id 1
* #msgs in set 1
* ...
* #set-id #sets
* #msgs in set #sets
* end of sets (0)
* msg(1,1) size
* ...
* msg(#sets,#msgs) size
* string table
*/
#ifndef _MC_H
#if !defined(__PROTO__)
#include <prototyped.h>
#endif
#if !defined(__LINKAGE__)
#define __LINKAGE__ /* 2004-08-11 transition */
#endif
#define _MC_H
#include <ast.h>
#define MC_MAGIC "\015\023\007\000"
#define MC_MAGIC_SIZE 4
#define MC_SET_MAX 1023
#define MC_NUM_MAX 32767
#define MC_NLS (1<<10)
#define MC_MESSAGE_SET(s) mcindex(s,NiL,NiL,NiL)
typedef struct
{
char** msg;
int num;
int gen;
} Mcset_t;
typedef struct
{
Mcset_t* set;
int num;
int gen;
char* translation;
#ifdef _MC_PRIVATE_
_MC_PRIVATE_
#endif
} Mc_t;
#if _BLD_ast && defined(__EXPORT__)
#undef __MANGLE__
#define __MANGLE__ __LINKAGE__ __EXPORT__
#endif
extern __MANGLE__ char* mcfind __PROTO__((char*, const char*, const char*, int, int));
extern __MANGLE__ Mc_t* mcopen __PROTO__((Sfio_t*));
extern __MANGLE__ char* mcget __PROTO__((Mc_t*, int, int, const char*));
extern __MANGLE__ int mcput __PROTO__((Mc_t*, int, int, const char*));
extern __MANGLE__ int mcdump __PROTO__((Mc_t*, Sfio_t*));
extern __MANGLE__ int mcindex __PROTO__((const char*, char**, int*, int*));
extern __MANGLE__ int mcclose __PROTO__((Mc_t*));
#undef __MANGLE__
#define __MANGLE__ __LINKAGE__
#endif