|
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
|