dmake: do not set MAKEFLAGS=k
[unleashed/tickless.git] / usr / src / lib / libast / common / man / astsa.3
blob5b588a8ebeb076768245e97f7ef6ed5aa31c4d1d
1 .fp 5 CW
2 .de Af
3 .ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
4 .if !\a\\$4\a\a .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
5 ..
6 .de aF
7 .ie \a\\$3\a\a .ft \\$1
8 .el \{\
9 .ds ;G \&
10 .nr ;G \\n(.f
11 .Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
12 \\*(;G
13 .ft \\n(;G \}
15 .de L
16 .aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
18 .de LR
19 .aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
21 .de RL
22 .aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
24 .de EX          \" start example
25 .ta 1i 2i 3i 4i 5i 6i
26 .PP
27 .PD 0
28 .ft 5
29 .nf
31 .de EE          \" end example
32 .fi
33 .ft
34 .PD
35 .PP
37 .de Tp
38 .fl
39 .ne 3
40 .TP
42 .de Ss
43 .fl
44 .ne 3
45 .SS "\\$1"
47 .ta 1.0i 2.0i 3.0i 4.0i 5.0i
48 .TH ASTSA 3
49 .SH NAME
50 astsa \- standalone libast support
51 .SH SYNOPSIS
52 .EX
53 #include <ast.h>
54 #include <ccode.h>
55 #include <error.h>
56 #include <option.h>
57 #include <stk.h>
58 .EE
59 .SH DESCRIPTION
60 .B astsa
61 is a standalone subset of
62 .BR ast (3)
63 that requires only
64 .BR cdt (3)
65 and
66 .BR sfio (3).
67 .PP
68 .B <ast.h>
69 includes
70 .BR <ast_common.h> ,
71 .B <stdarg.h>
73 .BR <varargs.h> ,
74 .BR <sfio.h> ,
75 .BR <limits.h> ,
76 and
77 .B <limits.h>
78 and
79 .B <unistd.h>
80 if supported by the local system.
81 .PP
82 The macros and functions provided by
83 .B <ast.h>
84 are described below.
85 The other headers are described in
86 .BR ccode (3),
87 .BR error (3),
88 .BR optget (3),
89 and
90 .BR stk (3).
91 .SH MACROS
92 .Ss "size_t elementsof(\fIx\fP)"
93 Evaluates to the number of elements in the array variable
94 .IR x .
95 .Ss "\fItype\fP* newof(void* old, \fItype\fP, size_t \fIelements\fP, size_t \fIextra\fP)"
96 Equivalent to (\fItype\fP*)realloc((char*)\fIold\fP,sizeof(\fItype\fP)*\fIelements\fP+\fIextra\fP)
97 if \fIold\fP!=0 and
98 (\fItype\fP*)calloc(1,sizeof(\fItype\fP)*\fIelements\fP+\fIextra\fP)
99 otherwise.
100 .Ss "\fItype\fP* oldof(void* old, \fItype\fP, size_t \fIelements\fP, size_t \fIextra\fP)"
101 Equivalent to (\fItype\fP*)realloc((char*)\fIold\fP,sizeof(\fItype\fP)*\fIelements\fP+\fIextra\fP)
102 if \fIold\fP!=0 and
103 (\fItype\fP*)malloc(1,sizeof(\fItype\fP)*\fIelements\fP+\fIextra\fP)
104 otherwise.
105 .Ss "size_t roundof(\fIx\fP,\fIy\fP)"
106 Evaluates to \fIx\fP rounded up to the next power of 2 boundary \fIy\fP.
107 .Ss "int ssizeof(\fIx\fP)"
108 Equivalent to (int)sizeof(\fIx\fP).
109 .Ss "int streq(\fIa\fP,\fIb\fP)"
110 Equivalent to (*(\fIa\fP)==*(\fIb\fP)&&strcmp(\fIa\fP,\fIb\fP)==0).
111 .Ss "int strneq(\fIa\fP,\fIb\fP,\fIn\fP)"
112 Equivalent to (*(\fIa\fP)==*(\fIb\fP)&&strncmp(\fIa\fP,\fIb\fP,\fIn\fP)==0).
113 .SH FUNCTIONS
114 .Ss "void astwinsize(int \fIfd\fP, int* \fIplines\fP, int* \fIpcolumns\fP)"
115 If \fIplines\fP!=0 then *\fIplines\fP is set to the number of lines on the
116 tty device corresponding to \fIfd\fP.
117 If \fIpcolumns\fP!=0 then *\fIpcolumns\fP is set to the number of columns
118 on the tty device corresponding to \fIfd\fP.
119 The default if \fIfd\fP is not a terminal device, or if \fIfd\fP queries fail,
120 is 24 lines and 80 columns.
121 .Ss "char* fmterror(int \fIerrno\fP)"
122 Returns the error message text corresponding to the
123 .BR errno (3)
124 \fIerrno\fP.
125 .Ss "char* strerror(int \fIerrno\fP)"
126 Equivalent to fmterror(\fIerrno\fP).
127 .Ss "int strgrpmatch(const char* \fIstring\fP, const char* \fIpattern\fP, int* \fIsub\fP, int \fInsub\fP, int \fIflags\fP)"
128 Matches the null terminated \fIstring\fP against the null terminated
129 .BR ksh (1)
130 augmented \fIpattern\fP.
131 If \fIsub\fP!=0 then \fIsub\fP[2*\fIi\fP] is set to the start offset and \fIsub\fP[2*\fIi\fP+1] is set
132 to the end offset of the \fIi\fP-th parenthesized subexpression.
133 \fInsub\fP is 1/2 the number of elements in \fIsub\fP.
134 \fIflags\fP controls the matching:
136 \f5STR_MAXIMAL\fP:
137 Maximal match.
138 The default is minimal (first) match.
140 \f5STR_LEFT\fP:
141 Implicit left anchor.
143 \f5STR_RIGHT\fP:
144 Implicit right anchor.
146 \f5STR_ICASE\fP:
147 Ignore case.
149 \f5STR_GROUP\fP:
150 (|&) inside [@|*|+{n,m}](...) only.
151 .Ss "int strmatch(const char* \fIstring\fP, const char* \fIpattern\fP, int* \fIsub\fP, int \fInsub\fP, int \fIflags\fP)"
152 Equivalent to strgrpmatch(\fIstring\fP,\fIpattern\fP,0,0,STR_MAXIMAL|STR_LEFT|STR_RIGHT).
153 .SH "SEE ALSO"
154 .BR ast (3),
155 .BR ccode (3),
156 .BR cdt (3),
157 .BR error (3),
158 .BR malloc (3),
159 .BR option (3),
160 .BR sfio (3),
161 .BR stk (3)