xref: /titanic_51/usr/src/lib/libast/common/man/astsa.3 (revision c10c16dec587a0662068f6e2991c29ed3a9db943)
.fp 5 CW .. .nr ;G \\n(.f .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9" \\*(;G .. .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" .. .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" .. .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" ..

0

..

.. .fl

.. .fl

"\\$1"
..
ASTSA 3
NAME
astsa - standalone libast support
SYNOPSIS
.EX #include <ast.h> #include <ccode.h> #include <error.h> #include <option.h> #include <stk.h>
DESCRIPTION
astsa is a standalone subset of ast (3) that requires only cdt (3) and sfio (3).

<ast.h> includes <ast_common.h> , <stdarg.h> or <varargs.h> , <sfio.h> , <limits.h> , and <limits.h> and <unistd.h> if supported by the local system.

The macros and functions provided by <ast.h> are described below. The other headers are described in ccode (3), error (3), optget (3), and stk (3).

MACROS
.Ss "size_t elementsof(x)" Evaluates to the number of elements in the array variable x . .Ss "type* newof(void* old, type, size_t elements, size_t extra)" Equivalent to (type*)realloc((char*)old,sizeof(type)*elements+extra) if old!=0 and (type*)calloc(1,sizeof(type)*elements+extra) otherwise. .Ss "type* oldof(void* old, type, size_t elements, size_t extra)" Equivalent to (type*)realloc((char*)old,sizeof(type)*elements+extra) if old!=0 and (type*)malloc(1,sizeof(type)*elements+extra) otherwise. .Ss "size_t roundof(x,y)" Evaluates to x rounded up to the next power of 2 boundary y. .Ss "int ssizeof(x)" Equivalent to (int)sizeof(x). .Ss "int streq(a,b)" Equivalent to (*(a)==*(b)&&strcmp(a,b)==0). .Ss "int strneq(a,b,n)" Equivalent to (*(a)==*(b)&&strncmp(a,b,n)==0).
FUNCTIONS
.Ss "void astwinsize(int fd, int* plines, int* pcolumns)" If plines!=0 then *plines is set to the number of lines on the tty device corresponding to fd. If pcolumns!=0 then *pcolumns is set to the number of columns on the tty device corresponding to fd. The default if fd is not a terminal device, or if fd queries fail, is 24 lines and 80 columns. .Ss "char* fmterror(int errno)" Returns the error message text corresponding to the errno (3) errno. .Ss "char* strerror(int errno)" Equivalent to fmterror(errno). .Ss "int strgrpmatch(const char* string, const char* pattern, int* sub, int nsub, int flags)" Matches the null terminated string against the null terminated ksh (1) augmented pattern. If sub!=0 then sub[2*i] is set to the start offset and sub[2*i+1] is set to the end offset of the i-th parenthesized subexpression. nsub is 1/2 the number of elements in sub. flags controls the matching: .Tp \f5STR_MAXIMAL: Maximal match. The default is minimal (first) match. .Tp \f5STR_LEFT: Implicit left anchor. .Tp \f5STR_RIGHT: Implicit right anchor. .Tp \f5STR_ICASE: Ignore case. .Tp \f5STR_GROUP: (|&) inside [@|*|+{n,m}](...) only. .Ss "int strmatch(const char* string, const char* pattern, int* sub, int nsub, int flags)" Equivalent to strgrpmatch(string,pattern,0,0,STR_MAXIMAL|STR_LEFT|STR_RIGHT).
"SEE ALSO"
ast (3), ccode (3), cdt (3), error (3), malloc (3), option (3), sfio (3), stk (3)