Blame src/lib/libast/astsa/ast.h

Packit Service a8c26c
/***********************************************************************
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*               This software is part of the ast package               *
Packit Service a8c26c
*          Copyright (c) 1985-2012 AT&T Intellectual Property          *
Packit Service a8c26c
*                      and is licensed under the                       *
Packit Service a8c26c
*                 Eclipse Public License, Version 1.0                  *
Packit Service a8c26c
*                    by AT&T Intellectual Property                     *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*                A copy of the License is available at                 *
Packit Service a8c26c
*          http://www.eclipse.org/org/documents/epl-v10.html           *
Packit Service a8c26c
*         (with md5 checksum b35adb5213ca9657e911e9befb180842)         *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*              Information and Software Systems Research               *
Packit Service a8c26c
*                            AT&T Research                             *
Packit Service a8c26c
*                           Florham Park NJ                            *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
*                 Glenn Fowler <gsf@research.att.com>                  *
Packit Service a8c26c
*                  David Korn <dgk@research.att.com>                   *
Packit Service a8c26c
*                   Phong Vo <kpv@research.att.com>                    *
Packit Service a8c26c
*                                                                      *
Packit Service a8c26c
***********************************************************************/
Packit Service a8c26c
#pragma prototyped
Packit Service a8c26c
/*
Packit Service a8c26c
 * standalone mini ast+sfio interface
Packit Service a8c26c
 */
Packit Service a8c26c
Packit Service a8c26c
#ifndef _AST_H
Packit Service a8c26c
#define _AST_H		1
Packit Service a8c26c
Packit Service a8c26c
#include <ast_sa.h>
Packit Service a8c26c
#include <ast_common.h>
Packit Service a8c26c
Packit Service a8c26c
#include <stdio.h>
Packit Service a8c26c
#include <stdlib.h>
Packit Service a8c26c
#include <string.h>
Packit Service a8c26c
#include <limits.h>
Packit Service a8c26c
Packit Service a8c26c
#define FMT_EXP_CHAR	0x020		/* expand single byte chars	*/
Packit Service a8c26c
#define FMT_EXP_LINE	0x040		/* expand \n and \r		*/
Packit Service a8c26c
#define FMT_EXP_WIDE	0x080		/* expand \u \U \x wide chars	*/
Packit Service a8c26c
#define FMT_EXP_NOCR	0x100		/* skip \r			*/
Packit Service a8c26c
#define FMT_EXP_NONL	0x200		/* skip \n			*/
Packit Service a8c26c
Packit Service a8c26c
#define STR_MAXIMAL	01		/* maximal match		*/
Packit Service a8c26c
#define STR_LEFT	02		/* implicit left anchor		*/
Packit Service a8c26c
#define STR_RIGHT	04		/* implicit right anchor	*/
Packit Service a8c26c
#define STR_ICASE	010		/* ignore case			*/
Packit Service a8c26c
#define STR_GROUP	020		/* (|&) inside [@|&](...) only	*/
Packit Service a8c26c
Packit Service a8c26c
typedef int (*Error_f)(void*, void*, int, ...);
Packit Service a8c26c
Packit Service a8c26c
typedef struct
Packit Service a8c26c
{
Packit Service a8c26c
Packit Service a8c26c
	char*		id;
Packit Service a8c26c
Packit Service a8c26c
	struct
Packit Service a8c26c
	{
Packit Service a8c26c
	unsigned int	serial;
Packit Service a8c26c
	unsigned int	set;
Packit Service a8c26c
	}		locale;
Packit Service a8c26c
Packit Service a8c26c
	long		tmp_long;
Packit Service a8c26c
	size_t		tmp_size;
Packit Service a8c26c
	short		tmp_short;
Packit Service a8c26c
	char		tmp_char;
Packit Service a8c26c
	wchar_t		tmp_wchar;
Packit Service a8c26c
Packit Service a8c26c
	int		(*collate)(const char*, const char*);
Packit Service a8c26c
Packit Service a8c26c
	int		tmp_int;
Packit Service a8c26c
	void*		tmp_pointer;
Packit Service a8c26c
Packit Service a8c26c
	int		mb_cur_max;
Packit Service a8c26c
	int		(*mb_len)(const char*, size_t);
Packit Service a8c26c
	int		(*mb_towc)(wchar_t*, const char*, size_t);
Packit Service a8c26c
	size_t		(*mb_xfrm)(char*, const char*, size_t);
Packit Service a8c26c
	int		(*mb_width)(wchar_t);
Packit Service a8c26c
	int		(*mb_conv)(char*, wchar_t);
Packit Service a8c26c
Packit Service a8c26c
	unsigned int	env_serial;
Packit Service a8c26c
Packit Service a8c26c
	char		pad[944];
Packit Service a8c26c
Packit Service a8c26c
} _Ast_info_t;
Packit Service a8c26c
Packit Service a8c26c
#define ast		_ast_info_
Packit Service a8c26c
Packit Service a8c26c
#define elementsof(x)	(sizeof(x)/sizeof(x[0]))
Packit Service a8c26c
#define integralof(x)	(((char*)(x))-((char*)0))
Packit Service a8c26c
#define newof(p,t,n,x)	((p)?(t*)realloc((char*)(p),sizeof(t)*(n)+(x)):(t*)calloc(1,sizeof(t)*(n)+(x)))
Packit Service a8c26c
#define oldof(p,t,n,x)	((p)?(t*)realloc((char*)(p),sizeof(t)*(n)+(x)):(t*)malloc(sizeof(t)*(n)+(x)))
Packit Service a8c26c
#define pointerof(x)	((void*)((char*)0+(x)))
Packit Service a8c26c
#define roundof(x,y)	(((x)+(y)-1)&~((y)-1))
Packit Service a8c26c
Packit Service a8c26c
#ifndef offsetof
Packit Service a8c26c
#define offsetof(type,member) ((unsigned long)&(((type*)0)->member))
Packit Service a8c26c
#endif
Packit Service a8c26c
Packit Service a8c26c
#if defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
Packit Service a8c26c
#define NiL			0
Packit Service a8c26c
#define NoP(x)			(void)(x)
Packit Service a8c26c
#else
Packit Service a8c26c
#define NiL			((char*)0)
Packit Service a8c26c
#define NoP(x)			(&x,1)
Packit Service a8c26c
#endif
Packit Service a8c26c
Packit Service a8c26c
#define conformance(a,b)	"ast"
Packit Service a8c26c
#define fmtident(s)		((char*)(s)+10)
Packit Service a8c26c
#define mbchar(s)		(*s++)
Packit Service a8c26c
#define setlocale(a,b)
Packit Service a8c26c
Packit Service a8c26c
#define streq(a,b)		(*(a)==*(b)&&!strcmp(a,b))
Packit Service a8c26c
#define strneq(a,b,n)		(*(a)==*(b)&&!strncmp(a,b,n))
Packit Service a8c26c
#define strton(s,t,b,f)		strtol(s,t,0)
Packit Service a8c26c
#define strtonll(s,t,b,f)	strtoll(s,t,0)
Packit Service a8c26c
Packit Service a8c26c
#define Sfio_t		FILE
Packit Service a8c26c
Packit Service a8c26c
#define sfstdin		stdin
Packit Service a8c26c
#define sfstdout	stdout
Packit Service a8c26c
#define sfstderr	stderr
Packit Service a8c26c
Packit Service a8c26c
#define sfclose(f)	fclose(f)
Packit Service a8c26c
#define sffileno(f)	fileno(f)
Packit Service a8c26c
#define sfgetc(f)	fgetc(f)
Packit Service a8c26c
#define sfopen(f,n,m)	fopen(n,m)
Packit Service a8c26c
#define sfputc(f,c)	fputc(c,f)
Packit Service a8c26c
#define sfread(f,b,n)	fread(b,n,1,f)
Packit Service a8c26c
#define sfseek(f,p,w)	fseek(f,p,w)
Packit Service a8c26c
#define sfset(f,v,n)
Packit Service a8c26c
#define sfsync(f)	fflush(f)
Packit Service a8c26c
#define sfwrite(f,b,n)	fwrite(b,n,1,f)
Packit Service a8c26c
Packit Service a8c26c
#define sfprintf	fprintf
Packit Service a8c26c
#define sfsprintf	snprintf
Packit Service a8c26c
#define sfvprintf	vfprintf
Packit Service a8c26c
Packit Service a8c26c
#define sfscanf		fscanf
Packit Service a8c26c
Packit Service a8c26c
#define sfgetr		_sf_getr
Packit Service a8c26c
Packit Service a8c26c
#include <sfstr.h>
Packit Service a8c26c
Packit Service a8c26c
extern _Ast_info_t	ast;
Packit Service a8c26c
Packit Service a8c26c
extern int		astwinsize(int, int*, int*);
Packit Service a8c26c
extern int		chresc(const char*, char**);
Packit Service a8c26c
extern char*		fmtbuf(size_t);
Packit Service a8c26c
extern char*		fmtip4(uint32_t, int);
Packit Service a8c26c
extern char*		sfgetr(Sfio_t*, int, int);
Packit Service a8c26c
extern char*		strcopy(char*, const char*);
Packit Service a8c26c
extern int		strmatch(const char*, const char*);
Packit Service a8c26c
extern int		strtoip4(const char*, char**, uint32_t*, unsigned char*);
Packit Service a8c26c
Packit Service a8c26c
#endif