ASTSA(3)

NAME
astsa - standalone libast support

SYNOPSIS
    #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
Evaluates to the number of elements in the array variable x. Equivalent to (type*)realloc((char*)old,sizeof(type)*elements+extra) if old!=0 and (type*)calloc(1,sizeof(type)*elements+extra) otherwise. Equivalent to (type*)realloc((char*)old,sizeof(type)*elements+extra) if old!=0 and (type*)malloc(1,sizeof(type)*elements+extra) otherwise. Evaluates to x rounded up to the next power of 2 boundary y. Equivalent to (int)sizeof(x).

FUNCTIONS
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. Returns the error message text corresponding to the errno(3) errno. Equivalent to fmterror(errno). 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 sub-expression. nsub is 1/2 the number of elements in sub. flags controls the matching: STR_MAXIMAL: Maximal match. The default is minimal (first) match. STR_LEFT: Implicit left anchor. STR_RIGHT: Implicit right anchor. STR_ICASE: Ignore case. STR_GROUP: (|&) inside [@|*|+{n,m}](...) only. 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)