mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
Fix a large number of typos and other problems (#110)
Most of these fixes are for typos and extra whitespace at the end of lines. These are the notable changes: - Fixed a compatibility issue with how asterisks are displayed using certain fonts. Bug report: https://github.com/att/ast/issues/764 - Fixed a bug in the man page that caused searches for the '|' character to fail. Bug report: https://github.com/att/ast/issues/871 - Removed a duplicate description of 'set -B' from the man page. Bug report: https://github.com/att/ast/issues/789 - Added documentation for options missing from the ksh man page (applies to 'hist -N', 'sleep -s', 'whence -q' and many of ulimit's options). Bug reports: https://github.com/att/ast/issues/948 https://github.com/att/ast/issues/503#issuecomment-386649715 https://github.com/att/ast/issues/507#issuecomment-507924608 - Applied the following ksh2020 documentation fixes: https://github.com/att/ast/pull/351 https://github.com/att/ast/pull/352 - Fixed a minor GCC -Wformat warning in procopen.c by changing a sentinel to NULL.
This commit is contained in:
parent
338586896d
commit
f9fdbfc9e9
66 changed files with 487 additions and 432 deletions
|
@ -34,7 +34,7 @@ hash: generic, scoped hash table support
|
|||
|
||||
include/ast: libast support headers
|
||||
|
||||
align.h compile time type alignmnent support
|
||||
align.h compile time type alignment support
|
||||
dirent.h POSIX directory(3) interface definitions
|
||||
error.h error() interface definitions
|
||||
ftw.h ftwalk() interface definitions
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
12-07-25 pathprobe.c: fix read() loop to handle EINTR
|
||||
12-06-28 vmalloc/malloc.c: use sbrk() unless VMALLOC_OPTIONS=mmap or asoinit(0,0,0)!=0 (workaround until next malloc update)
|
||||
12-06-28 aso/aso.c: asoinit(0,0,0): 0: no specific init, 1: app initialized
|
||||
12-06-27 sfio/sfvprintf.c: allow { L* z* } aliases for I* -- posix will probably pick one
|
||||
12-06-27 sfio/sfvprintf.c: allow { L* z* } aliases for I* -- POSIX will probably pick one
|
||||
12-06-26 regex/regnexec.c: fix uninitialized variable reference
|
||||
12-06-26 comp/setlocale.c: utf8_wctomb() now calls (the correct) wc2utf8()
|
||||
12-06-25 string/chresc.c: accept \u[U+<hex>] and \u{U+<hex>}
|
||||
|
@ -10,7 +10,7 @@
|
|||
12-06-18 sfio/_sfopen.c: add 'e' => O_CLOEXEC
|
||||
12-06-18 features/fcntl.c: add #define O_CLOEXEC 0 if not defined
|
||||
12-06-13 features/float: handle __mips c99 peculiarities
|
||||
12-06-13 features/standards: handle __MACH__ posix peculiarities
|
||||
12-06-13 features/standards: handle __MACH__ POSIX peculiarities
|
||||
12-06-08 sfio/sfclose.c,sfmode.c: sfclose() for sfopopen() stream returns sh-compatible $?
|
||||
12-06-08 comp/strtold.c: fix header botch that missed ldexpl() prototype -- ouch
|
||||
12-06-06 misc/proclib.h: partially undo <ast_standards.h> for leaked ancient bsd-isms
|
||||
|
@ -143,7 +143,7 @@
|
|||
10-08-11 misc/conformance.c: check ast_env_serial for dynamic astconf() changes
|
||||
10-08-11 port/lcgen.c: remember to fudge Table_t.count for synthesized entries
|
||||
10-08-04 include/ast.h,comp/setlocale.c: add { debug C.UTF-8 } mbalpha() mbwidth()
|
||||
10-08-02 misc/translate.c: add NLSPATH message cache check
|
||||
10-08-02 misc/translate.c: add NLSPATH message cache check
|
||||
10-07-29 string/fmtint.c: fix nasty bug that rendered "1000" as "1"
|
||||
10-07-27 setlocale,lsgen,localeconv: handle C vs C_EU decimal thousands sep
|
||||
10-07-26 misc/optget.c: fix interaction with nested plugin/builtin calls
|
||||
|
@ -213,7 +213,7 @@
|
|||
10-01-01 ast_std.h: add { AST_LC_internal AST_LC_setenv }
|
||||
09-12-24 comp/setlocale.c: fix setlocale(LC_ALL,"") when already initialized
|
||||
09-12-17 misc/optget.c: handle mixed solaris usage="x:f:(in)yo:(out)"
|
||||
09-12-11 regex/regcomp.c: posix semantics for [z-a]
|
||||
09-12-11 regex/regcomp.c: POSIX semantics for [z-a]
|
||||
09-12-11 regex/regcomp.c: fix BRE/ERE ^^ logic
|
||||
09-12-11 regex/regcomp.c: fix regcomb() for REG_LEFT|REG_RIGHT
|
||||
09-12-11 regex/regcomp.c: bm complete=0 if REX_END
|
||||
|
@ -304,7 +304,7 @@
|
|||
08-07-21 include/glob.h,misc/glob.c: GLOB_STARSTAR only forces lstat on chdir
|
||||
08-07-17 sfio: sync with kpv
|
||||
08-07-17 misc/optget.c: call astwinsize() each time terminal width required
|
||||
08-07-16 sfio/sfvscanf.c: fix %% to skip leading space per posix
|
||||
08-07-16 sfio/sfvscanf.c: fix %% to skip leading space per POSIX
|
||||
08-07-16 vmalloc/vmbest.c: add VMCHECK=m, VM_mmap to favor mmap() alloc
|
||||
08-07-16 features/stdio,stdio/f(read|write).c: size_t return value!! ouch
|
||||
08-06-24 tm/tmxfmt.c: fix %z to handle tm_isdst -- doh
|
||||
|
@ -330,7 +330,7 @@
|
|||
08-03-06 misc/optget.c: ---* and +++* are now operands
|
||||
08-03-06 misc/errorx.c: fix old error_info.translate workaround
|
||||
08-02-05 regex/regcomp.c: allow REG_SHELL {,n}... => {0,n}...
|
||||
08-02-27 misc/stk.c: top element during allocation relocated to top
|
||||
08-02-27 misc/stk.c: top element during allocation relocated to top
|
||||
08-02-18 include/ip6.h,string/strtoip6.c,fmtip6.c: add ipv6 addr support
|
||||
08-02-14 regex/regsubexec.c: fix null match (tricky)
|
||||
08-02-14 regex/regsubcomp.c: fix SRE to match ksh
|
||||
|
@ -403,12 +403,12 @@
|
|||
07-02-14 include/int.h: drop
|
||||
07-02-14 include/sfio.h: add SF_WCWIDTH
|
||||
07-02-12 comp/conf.sh: fix CONF_LIMIT bug that missed ULONG_MAX etc.
|
||||
07-02-12 comp/conf.tab: *LONGLONG* => *LLONG* to match posix
|
||||
07-02-12 features/float: *LONGLONG* => *LLONG* to match posix
|
||||
07-02-12 comp/conf.tab: *LONGLONG* => *LLONG* to match POSIX
|
||||
07-02-12 features/float: *LONGLONG* => *LLONG* to match POSIX
|
||||
07-02-12 port/astconf.c: handle CONF_LIMITS_DEF with no deferral
|
||||
07-02-12 stdio/vasprintf.c: add trailing '\0' -- doh
|
||||
07-02-04 string/fmtelapsed.c: fix naive multi month/year logic
|
||||
07-02-02 misc/optget.c: add --??posix for getopts(1)/getopt(3)
|
||||
07-02-02 misc/optget.c: add --??POSIX for getopts(1)/getopt(3)
|
||||
07-01-26 string/chresc.c: use mbchar()
|
||||
07-01-26 misc/optget.c: handle "o:-:" usage for old-style long options
|
||||
07-01-22 sfio/sfdisc.c,sfpool.c: handle push on streams with pending peek
|
||||
|
@ -502,7 +502,7 @@
|
|||
06-06-27 features/float,sfio/sfcvt.c: fix Nan logic
|
||||
06-06-27 port/astmath.c: fix long double isnan() test
|
||||
06-06-27 features/map.c: _map_libc for std => _ast_std
|
||||
06-06-25 string/strperm.c: handle posix = w.r.t. umask
|
||||
06-06-25 string/strperm.c: handle POSIX = w.r.t. umask
|
||||
06-06-19 port/mnt.c,features/fs: handle netbsd getmntent api change
|
||||
06-06-18 regex/regstat.c: add REG_LITERAL check
|
||||
06-06-11 cdt/dtview.c: update from kpv
|
||||
|
@ -750,9 +750,9 @@
|
|||
vmalloc/malloc.c: _AST_mem_method==_mem_* to force mem get method
|
||||
sfio/sfputr.c: __ia64 memccpy is bogus -- how many tries do they get?
|
||||
path/pathshell.c: verify abs path and access(path,X_OK) -- duh
|
||||
vmalloc/vmhdr.h: add private _Vmessage() for non-sfio ASSERT()
|
||||
vmalloc/vmhdr.h: add private _Vmessage() for non-sfio ASSERT()
|
||||
port/astconf.c: fix bug that always returned the minmax value
|
||||
03-06-11 comp/*.c: reorder macro hding for mvs.390 and <ast_map.h>
|
||||
03-06-11 comp/*.c: reorder macro hding for mvs.390 and <ast_map.h>
|
||||
features/vmalloc: add _lib_brk and _lib_sbrk verification
|
||||
include/ast_std.h,etc.: add _map_malloc for malloc => _ast_malloc
|
||||
comp/conf.sh: fix SI_* and *_SI_* macro redefs
|
||||
|
@ -774,7 +774,7 @@
|
|||
03-05-24 misc/optget.c: fix (ancient) argv null dereference
|
||||
03-05-23 comp/getcwd.c: don't intercept on _WINIX -- unreliable st_ino
|
||||
03-05-22 sfio/sfsprintf.c: n<0 => don't append '\0'
|
||||
03-05-18 misc/fts.c: re-stat FTS_DP to update nlink/times
|
||||
03-05-18 misc/fts.c: re-stat FTS_DP to update nlink/times
|
||||
misc/fts.c: add FTSENT.stack to eliminate getlist() recursion
|
||||
regex/ucs_names.h: use "..." catenation to placate some cc's
|
||||
03-05-11 string/strtoi.h: handle "-" "+" "0x" "11#"
|
||||
|
@ -1429,7 +1429,7 @@
|
|||
98-06-19 tokscan: add %f %g
|
||||
98-06-01 disc/sf*.c: memset(0) after disc malloc()
|
||||
98-05-11 strelapsed: y==Y
|
||||
fts: pathcanon() top list
|
||||
fts: pathcanon() top list
|
||||
98-04-01 error: error_info.time for all msgs, just after cmd id
|
||||
error: no sfsync(sfstdin)
|
||||
sfio: sfpool, Sffmt_t update
|
||||
|
@ -1539,7 +1539,7 @@
|
|||
sfio.h,stdio.h,ast_common.h: pollution cleanup
|
||||
magic.c: add | op for switch
|
||||
Makefile: stdio.h was on both HEADERSRC and HEADERGEN -- don't do that
|
||||
drop pp:notice to get <sfio.h> ... <ast.h> to work
|
||||
drop pp:notice to get <sfio.h> ... <ast.h> to work
|
||||
regex: add [[:<:]]==\< and [[:>:]]==\> for bsd compat
|
||||
mime.c: ignore X-* headers while scanning for Content-*
|
||||
magic.c: check for negative indirect offsets
|
||||
|
@ -1549,7 +1549,7 @@
|
|||
magic.c: MAGIFILE is now a : file list
|
||||
mnt.c: another 4.4 bsd fix -- users must include <sys/crap.h>
|
||||
common: fix _WIN32 chicken&egg with va_copy
|
||||
sfio: forgot to set f->val along with _Sfi in sfexcept()
|
||||
sfio: forgot to set f->val along with _Sfi in sfexcept()
|
||||
Makefile: add mini target for uwin libmini.a
|
||||
sfcvt.c: workaround for flaky long double optimizers
|
||||
features/common: fix to work with va_list==void*
|
||||
|
@ -1562,7 +1562,7 @@
|
|||
regerror: fix for xopen
|
||||
getopt: fix for xopen
|
||||
magic: add ciao virtual database
|
||||
astconf: posix/strict/xopen implies "standard" conformance
|
||||
astconf: POSIX/strict/xopen implies "standard" conformance
|
||||
fs3d.h: hide mount prototype
|
||||
ast_std.h,mnt.c,features/fs: ncr port tweaks
|
||||
96-10-31 version 5.0
|
||||
|
@ -1694,7 +1694,7 @@
|
|||
oops object / shared library compat with _sfgetl2 _sfgetu2
|
||||
95-09-11 add getopt() compatibility
|
||||
add fstat,lstat,mknod,stat fixes for _x versions in sys/stat.h
|
||||
add getconf CONFORMANCE - posix for things that aren't ast default
|
||||
add getconf CONFORMANCE - POSIX for things that aren't ast default
|
||||
sfio_t.h: #ifndef _SFIO_H #include "sfio.h" #endif
|
||||
snarf vmalloc from kpv
|
||||
95-08-11 fix malloc bug in magic
|
||||
|
@ -1780,7 +1780,7 @@
|
|||
, treated like :space: between stropt() options
|
||||
fix procopen() fd dup to ignore self-dups
|
||||
add library id[] to misc/state.c
|
||||
add ftwalk(FTW_METAPHYSICAL) for posix -H
|
||||
add ftwalk(FTW_METAPHYSICAL) for POSIX -H
|
||||
sfvprintf() now handles balanced () in %()
|
||||
add tmfmt() with buffer size check to replace tmform()
|
||||
add fmttime() calling tmfmt() to fit fmt*() mold
|
||||
|
@ -1789,9 +1789,9 @@
|
|||
add EXTTYPE extended header to tar.h
|
||||
95-02-14 sfmove() buffer size overflow fix
|
||||
add _SFSTDIO_H to sfio.h
|
||||
rename setenv() to setenviron() -- posix finally decided
|
||||
rename setenv() to setenviron() -- POSIX finally decided
|
||||
rename <option.h> opt_* to opt_info.*
|
||||
update features/unistd.c for _SC_* and _PC_* posix additions
|
||||
update features/unistd.c for _SC_* and _PC_* POSIX additions
|
||||
95-01-19 (char*)uchar cast in fmtesc()
|
||||
fix hash bucket memory leak in hashlook() [via John Mocenigo]
|
||||
update strings/strtape()
|
||||
|
|
|
@ -38,7 +38,7 @@ memmove(void* to, const void* from, register size_t n)
|
|||
if (n <= 0) /* works if size_t is signed or not */
|
||||
;
|
||||
else if (in + n <= out || out + n <= in)
|
||||
return(memcpy(to, from, n)); /* hope it's fast*/
|
||||
return(memcpy(to, from, n)); /* hope it's fast */
|
||||
else if (out < in)
|
||||
do *out++ = *in++; while (--n > 0);
|
||||
else
|
||||
|
|
|
@ -529,7 +529,7 @@ runve(int mode, const char* path, char* const* argv, char* const* envv)
|
|||
* (3) /c/(WINNT|WINDOWS)/system32 /c/(WINNT|WINDOWS)
|
||||
* (4) the directories on $PATH
|
||||
* there are no cygwin dlls in (3), so if (1) and (2) fail
|
||||
* to produce the required dlls its up to (4)
|
||||
* to produce the required dlls it's up to (4)
|
||||
*
|
||||
* the standard allows PATH to be anything once the path
|
||||
* to an executable is determined; this code ensures that PATH
|
||||
|
|
|
@ -241,7 +241,7 @@ tst real_vfork note{ vfork child shares data with parent }end execute{
|
|||
}
|
||||
}end
|
||||
|
||||
tst lib_posix_spawn unistd.h stdlib.h spawn.h -Dfork=______fork note{ posix_spawn exists and it works and its worth using }end status{
|
||||
tst lib_posix_spawn unistd.h stdlib.h spawn.h -Dfork=______fork note{ posix_spawn exists, it works and it's worth using }end status{
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/wait.h>
|
||||
|
@ -304,7 +304,7 @@ tst lib_posix_spawn unistd.h stdlib.h spawn.h -Dfork=______fork note{ posix_spaw
|
|||
NOTE("SIGHUP ignored in parent not ignored in child");
|
||||
_exit(0);
|
||||
}
|
||||
/* must return exec-type errors or its useless to us *unless* there is no [v]fork() */
|
||||
/* must return exec-type errors or it's useless to us *unless* there is no [v]fork() */
|
||||
n = strlen(cmd[0]);
|
||||
if (n >= (sizeof(tmp) - 3))
|
||||
{
|
||||
|
|
|
@ -75,7 +75,7 @@ is ANSI, K&R and C++ compatible and includes or defines the equivalent of
|
|||
.L <string.h>
|
||||
and
|
||||
.LR <unistd.h> .
|
||||
Other libraries that depend on
|
||||
Other libraries that depend on
|
||||
.B libast
|
||||
may also have headers installed in the
|
||||
.L include/ast
|
||||
|
|
|
@ -134,7 +134,7 @@ on the same \f5dest\fP with values, say \fIv1\fP and \fIv2\fP.
|
|||
The eventual value in \f5dest\fP
|
||||
will be as if \f5*dest += 2\fP was performed in a single-threaded execution.
|
||||
|
||||
That should be constrasted with a situation where, instead of \f5asoinc32()\fP or \f5asodec32()\fP,
|
||||
That should be contrasted with a situation where, instead of \f5asoinc32()\fP or \f5asodec32()\fP,
|
||||
only normal increment (++) or decrement (--) were used.
|
||||
Then, the end result could be either \f5*dest += 1\fP or \f5*dest += 2\fP,
|
||||
depending on states of the hardware cache and process scheduling.
|
||||
|
|
|
@ -76,7 +76,7 @@ is
|
|||
then
|
||||
\f5"/"\fP
|
||||
is used.
|
||||
Otherwise if
|
||||
Otherwise if
|
||||
.I path
|
||||
is not
|
||||
.L 0
|
||||
|
@ -136,7 +136,7 @@ command options.
|
|||
.TP
|
||||
.L UNIVERSE
|
||||
.L ucb
|
||||
for
|
||||
for
|
||||
.I Berkeley
|
||||
style and
|
||||
.L att
|
||||
|
@ -168,7 +168,7 @@ relative to
|
|||
.IR path .
|
||||
If
|
||||
.I notify
|
||||
returns
|
||||
returns
|
||||
.L 0
|
||||
then the configuration parameter value is not changed.
|
||||
.PP
|
||||
|
@ -188,7 +188,7 @@ or
|
|||
.L R_OK|W_OK
|
||||
then all configuration parameters are listed.
|
||||
.L R_OK
|
||||
lists the readonly configuration parameters and
|
||||
lists the readonly configuration parameters and
|
||||
.L W_OK
|
||||
lists the settable configuration parameters.
|
||||
.L X_OK
|
||||
|
|
|
@ -340,7 +340,7 @@ the key as defined by the \f5Dtdisc_t.size\fP field.
|
|||
.PP
|
||||
.Ss " Void_t* (*memoryf)(Dt_t* dt, Void_t* addr, size_t size, Dtdisc_t* disc)"
|
||||
If not \f5NULL\fP, \f5memoryf\fP is used to allocate and free memory.
|
||||
When \f5addr\fP is \f5NULL\fP, a memory segment of size \f5size\fP is requested.
|
||||
When \f5addr\fP is \f5NULL\fP, a memory segment of size \f5size\fP is requested.
|
||||
If \f5addr\fP is not \f5NULL\fP and \f5size\fP is zero, \f5addr\fP is to be freed.
|
||||
If \f5addr\fP is not \f5NULL\fP and \f5size\fP is positive,
|
||||
\f5addr\fP is to be resized to the given size.
|
||||
|
@ -485,7 +485,7 @@ For \f5Dtset\fP, \f5Dtbag\fP, \f5Dtrhset\fP and \f5Dtrhbag\fP,
|
|||
objects are ordered by some internal order defined at the time when these
|
||||
functions are called.
|
||||
|
||||
Objects in a dictionary or a viewpath can be walked using
|
||||
Objects in a dictionary or a viewpath can be walked using
|
||||
a \f5for(;;)\fP loop as below.
|
||||
.Cs
|
||||
for(obj = dtfirst(dt); obj; obj = dtnext(dt,obj))
|
||||
|
|
|
@ -57,7 +57,7 @@ is not 0 then
|
|||
is set to point to the next character in
|
||||
.I s
|
||||
on return.
|
||||
0 is returned and
|
||||
0 is returned and
|
||||
.I e
|
||||
is not modified when the end of
|
||||
.I s
|
||||
|
@ -77,9 +77,9 @@ value until up to the number of characters in an
|
|||
.I int
|
||||
is reached.
|
||||
This operation is inherently machine-dependent,
|
||||
but at least its defined in one place.
|
||||
but at least it's defined in one place.
|
||||
.PP
|
||||
The following
|
||||
The following
|
||||
.B \e
|
||||
escape sequences are recognized:
|
||||
.TP
|
||||
|
|
|
@ -73,7 +73,7 @@ A
|
|||
is appended to the message text, so none should appear in the
|
||||
.L printf
|
||||
format.
|
||||
If
|
||||
If
|
||||
.I error_info.id
|
||||
is not
|
||||
.L 0
|
||||
|
@ -92,7 +92,7 @@ returns the
|
|||
argument, but on some systems it may do language translation via lookup
|
||||
on the original source text.
|
||||
.RL ( error
|
||||
calls
|
||||
calls
|
||||
.L ERROR_translate
|
||||
with a 0
|
||||
.L flag
|
||||
|
@ -107,7 +107,7 @@ Debug messages are prefixed with
|
|||
.BI debug level.
|
||||
If
|
||||
.I "errno != error_info.last_errno"
|
||||
then
|
||||
then
|
||||
.I error_info.last_errno
|
||||
is set to
|
||||
.I errno
|
||||
|
@ -164,7 +164,7 @@ to the message after
|
|||
A usage message is emitted.
|
||||
.TP
|
||||
.L ERROR_PROMPT
|
||||
The trailing
|
||||
The trailing
|
||||
.I newline
|
||||
is suppressed.
|
||||
.TP
|
||||
|
@ -179,7 +179,7 @@ The message is from a library routine.
|
|||
The elements of the global struct
|
||||
.I error_info
|
||||
control error output and actions.
|
||||
Parts of
|
||||
Parts of
|
||||
.I error_info
|
||||
can be initialized from the
|
||||
.L ERROR_OPTIONS
|
||||
|
@ -192,14 +192,14 @@ options, described below.
|
|||
.I "int core"
|
||||
If
|
||||
.I "error_info.core != 0"
|
||||
then
|
||||
then
|
||||
.I "level >= error_info.core"
|
||||
generates a core dump.
|
||||
Initialized by
|
||||
.EX
|
||||
ERROR_OPTIONS="core=\fIlevel\fP"
|
||||
.EE
|
||||
where
|
||||
where
|
||||
.I level
|
||||
can be a number or one of
|
||||
.LR error ,
|
||||
|
@ -247,7 +247,7 @@ are defined
|
|||
.RL ( _TRACE_
|
||||
is defined by
|
||||
.I makerules
|
||||
when
|
||||
when
|
||||
.L CCFLAGS
|
||||
contains
|
||||
.LR \-g ).
|
||||
|
@ -264,7 +264,7 @@ and
|
|||
.L message
|
||||
call
|
||||
.L liberror
|
||||
and
|
||||
and
|
||||
.L error
|
||||
respectively if
|
||||
.IR "error_info.trace<0" .
|
||||
|
|
|
@ -57,18 +57,18 @@ via
|
|||
or
|
||||
.IR at .
|
||||
.PP
|
||||
.L findopen
|
||||
returns a handle to a
|
||||
.L findopen
|
||||
returns a handle to a
|
||||
.I fastfind
|
||||
stream for the
|
||||
.I ksh
|
||||
stream for the
|
||||
.I ksh
|
||||
file pattern
|
||||
.IR pattern .
|
||||
.L findnext
|
||||
returns the next pathname that matches the pattern specified by
|
||||
.IR handle .
|
||||
.L findnext
|
||||
returns
|
||||
returns
|
||||
.L 0
|
||||
when no more pathnames match the pattern.
|
||||
Finally,
|
||||
|
@ -78,7 +78,7 @@ closes the
|
|||
stream for
|
||||
.IR handle .
|
||||
.SH BUGS
|
||||
These rotuines are only as good as the
|
||||
These routines are only as good as the
|
||||
.I fastfind
|
||||
information which is in the system administration domain.
|
||||
.SH "SEE ALSO"
|
||||
|
|
|
@ -167,7 +167,7 @@ mode string for the file mode bits in
|
|||
.IR mode .
|
||||
If
|
||||
.I "external != 0"
|
||||
then
|
||||
then
|
||||
.I mode
|
||||
is
|
||||
.IR modecanon (3)
|
||||
|
@ -191,7 +191,7 @@ pattern
|
|||
.L fmtsignal
|
||||
returns the signal name, sans
|
||||
.LR SIG ,
|
||||
for the signal number
|
||||
for the signal number
|
||||
.IR sig .
|
||||
If
|
||||
.I "sig < 0"
|
||||
|
|
|
@ -51,7 +51,7 @@ formats
|
|||
.IR ls (1)
|
||||
style file information into the buffer
|
||||
.IR buf .
|
||||
A pointer to the trailing 0 in
|
||||
A pointer to the trailing 0 in
|
||||
.I buf
|
||||
is returned.
|
||||
.I name
|
||||
|
@ -130,7 +130,7 @@ The user and group fields are each
|
|||
.B LS_W_NAME
|
||||
characters wide,
|
||||
the
|
||||
.B LS_INUMBER
|
||||
.B LS_INUMBER
|
||||
field is
|
||||
.B LS_W_INUMBER
|
||||
characters wide,
|
||||
|
|
|
@ -114,7 +114,7 @@ The \fIuserf\fP prototype is:
|
|||
char* path; /* full pathname */
|
||||
short pathlen; /* strlen(path) */
|
||||
unsigned short info; /* type of object */
|
||||
unsigned short status; /* status of object */
|
||||
unsigned short status; /* status of object */
|
||||
short level; /* depth of object on the search path */
|
||||
short namelen; /* strlen(name) */
|
||||
char name[]; /* file name of object */
|
||||
|
@ -206,7 +206,7 @@ The \fIcomparf\fP prototype is:
|
|||
\fIFtwalk\fR normally returns 0.
|
||||
On hard errors such as running out of memory, it returns -1.
|
||||
\fIFtwalk\fR may also return other values as discussed with respect
|
||||
to \fIuserf\fR.
|
||||
to \fIuserf\fR.
|
||||
.PP
|
||||
\fIFtwflags\fR returns a combination of \fB0, FTW_META, FTW_PHYSICAL\fR
|
||||
according to the
|
||||
|
|
|
@ -49,7 +49,7 @@ char* getcwd(char* \fIbuf\fP, size_t \fIlen\fP);
|
|||
.L getcwd
|
||||
copies the absolute path name of the current directory info into
|
||||
.I buf
|
||||
of length
|
||||
of length
|
||||
.IR len .
|
||||
The return path may be longer than
|
||||
.LR PATH_MAX .
|
||||
|
@ -57,10 +57,10 @@ If
|
|||
.I "buff == 0"
|
||||
then space is allocated via
|
||||
.IR malloc (3)
|
||||
and
|
||||
and
|
||||
.I len
|
||||
extra characters are reserved after the generated path name.
|
||||
A pointer to the path name is returned,
|
||||
A pointer to the path name is returned,
|
||||
.L 0
|
||||
on error.
|
||||
.SH "SEE ALSO"
|
||||
|
|
|
@ -52,7 +52,7 @@ and its
|
|||
.IR value .
|
||||
A
|
||||
.I key
|
||||
is a sequence of
|
||||
is a sequence of
|
||||
.L char
|
||||
elements and a
|
||||
.I value
|
||||
|
@ -116,7 +116,7 @@ The number of lookup collisions.
|
|||
.RE
|
||||
.TP
|
||||
.L "Hash_table_t* scope"
|
||||
The table that this scope covers,
|
||||
The table that this scope covers,
|
||||
.L NULL
|
||||
if the table is not a scope.
|
||||
.TP
|
||||
|
@ -215,11 +215,11 @@ if
|
|||
is specified and
|
||||
.IR strcmp (3)
|
||||
otherwise.
|
||||
The first argument is the
|
||||
The first argument is the
|
||||
.I key
|
||||
from the current hash bucket on the
|
||||
from the current hash bucket on the
|
||||
.I "collision chain"
|
||||
and the second argument is the user supplied
|
||||
and the second argument is the user supplied
|
||||
.IR key .
|
||||
.TP
|
||||
.L "HASH_free, (int(*)()) free"
|
||||
|
@ -230,7 +230,7 @@ If
|
|||
was set in
|
||||
.L hashalloc
|
||||
then the hash bucket pointer is passed, otherwise the bucket
|
||||
.L value
|
||||
.L value
|
||||
pointer is passed.
|
||||
.TP
|
||||
.L "HASH_hash, (int(*)()) hash"
|
||||
|
@ -275,7 +275,7 @@ Changes the hash table flags by
|
|||
.IR or ing
|
||||
in
|
||||
.LR flags .
|
||||
The flags, which may be
|
||||
The flags, which may be
|
||||
.IR or ed
|
||||
together, are:
|
||||
.RS
|
||||
|
@ -321,7 +321,7 @@ in the hash table
|
|||
.L tab
|
||||
according to
|
||||
.L flags
|
||||
and
|
||||
and
|
||||
.LR value .
|
||||
A
|
||||
.L Hash_bucket_t
|
||||
|
@ -408,7 +408,7 @@ value is returned.
|
|||
For
|
||||
.L HASH_LOOKUP
|
||||
the bucket
|
||||
.L value
|
||||
.L value
|
||||
field is returned,
|
||||
.L NULL
|
||||
if the bucket is not found.
|
||||
|
@ -481,7 +481,7 @@ in the hash table
|
|||
.LR tab .
|
||||
If
|
||||
.L flags
|
||||
is
|
||||
is
|
||||
.L HASH_NOSCOPE
|
||||
then only the top level hash table is used, otherwise the walk includes
|
||||
all scope covered tables.
|
||||
|
@ -514,7 +514,7 @@ pointer for a sequential scan on the hash table
|
|||
.LR tab .
|
||||
If
|
||||
.L flags
|
||||
is
|
||||
is
|
||||
.L HASH_NOSCOPE
|
||||
then only the top level hash table is used, otherwise the scan includes
|
||||
all scope covered tables.
|
||||
|
@ -534,9 +534,9 @@ If no elements remain then
|
|||
is returned.
|
||||
.TP
|
||||
.L "void hashdone(Hash_position_t* pos)"
|
||||
Completes a scan initiated by
|
||||
Completes a scan initiated by
|
||||
.L hashscan()
|
||||
on
|
||||
on
|
||||
.LR pos .
|
||||
.TP
|
||||
.L "int hashset(Hash_table_t* tab, int flags)"
|
||||
|
@ -567,14 +567,14 @@ may be cleared.
|
|||
Dumps hash table accounting info to standard error.
|
||||
If
|
||||
.L tab
|
||||
is
|
||||
is
|
||||
.L NULL
|
||||
then all allocated hash tables are dumped, otherwise only information on
|
||||
.L tab
|
||||
is dumped.
|
||||
If
|
||||
.L flags
|
||||
is
|
||||
is
|
||||
.L HASH_BUCKET
|
||||
then the hash bucket
|
||||
.I key-value
|
||||
|
|
|
@ -62,7 +62,7 @@ These routines provide an interface to the
|
|||
command magic file.
|
||||
.L magicopen
|
||||
returns a magic session handle that is passed to all of the other routines.
|
||||
.I flags
|
||||
.I flags
|
||||
may be
|
||||
.TP
|
||||
.L MAGIC_MIME
|
||||
|
@ -94,13 +94,13 @@ loads the magic file named by
|
|||
.I path
|
||||
into the magic session.
|
||||
.I flags
|
||||
are the same as with
|
||||
are the same as with
|
||||
.LR magicopen .
|
||||
More than one magic file can be loaded into a session;
|
||||
the files are searched in load order.
|
||||
If
|
||||
.I path
|
||||
is
|
||||
is
|
||||
.L 0
|
||||
then the default magic file is loaded.
|
||||
.PP
|
||||
|
@ -133,7 +133,7 @@ flag then
|
|||
.I st
|
||||
is assumed to contain valid stat information, otherwise
|
||||
.L magictype
|
||||
calls
|
||||
calls
|
||||
.L stat
|
||||
on
|
||||
.IR st .
|
||||
|
@ -150,7 +150,7 @@ However, with the extended format it is possible to write a single
|
|||
magic file that works on all platforms.
|
||||
Most of the net magic files floating around work with
|
||||
.LR magic ,
|
||||
but they usually double up on
|
||||
but they usually double up on
|
||||
.I le
|
||||
and
|
||||
.I be
|
||||
|
@ -227,7 +227,7 @@ field is either the offset into the data upon which the current entry operates
|
|||
or a file metadata identifier.
|
||||
Offsets are either integer constants or offset expressions.
|
||||
An offset expression is contained in (...) and is a combination of
|
||||
integral arithmetic operators and the
|
||||
integral arithmetic operators and the
|
||||
.L @
|
||||
indirection operator.
|
||||
Indirections take the form
|
||||
|
@ -238,9 +238,9 @@ The size of the indirection value is taken either from one of the suffixes
|
|||
.LR H (short, 2 chars),
|
||||
.LR L (long, 4 chars),
|
||||
pr
|
||||
.LR Q (quead, 8 chars),
|
||||
.LR Q (quad, 8 chars),
|
||||
or from the
|
||||
.L type
|
||||
.L type
|
||||
field.
|
||||
Valid file metadata identifiers are:
|
||||
.TP
|
||||
|
@ -372,7 +372,7 @@ field takes the form
|
|||
.LI & number
|
||||
where
|
||||
.I number
|
||||
is
|
||||
is
|
||||
.I anded
|
||||
with the integral value at
|
||||
.L offset
|
||||
|
@ -389,13 +389,13 @@ field entries above.
|
|||
means any value and applies to all types.
|
||||
Integral
|
||||
.L type
|
||||
expression take the form [\fIoperator\fP] \fIoperand\P where
|
||||
expression take the form [\fIoperator\fP] \fIoperand\P where
|
||||
.I operand
|
||||
is compared with the data value at
|
||||
.L offset
|
||||
using
|
||||
.IR operator .
|
||||
.I operator
|
||||
.I operator
|
||||
may be one of
|
||||
.LR < .
|
||||
.LR <= ,
|
||||
|
@ -407,7 +407,7 @@ or
|
|||
defaults to
|
||||
.L ==
|
||||
if omitted.
|
||||
.I operand
|
||||
.I operand
|
||||
may be an integral constant or one of the following builtin function calls:
|
||||
.TP
|
||||
.L magic()
|
||||
|
@ -415,7 +415,7 @@ A recursive call to the magic algorithm starting with the data at
|
|||
.LR offset .
|
||||
.TP
|
||||
\f5loop(\fIfunction\fP,\fIoffset\fP,\fIincrement\fP)\fR
|
||||
Call
|
||||
Call
|
||||
.I function
|
||||
starting at
|
||||
.I offset
|
||||
|
@ -447,7 +447,7 @@ then a
|
|||
is placed between the descriptions
|
||||
(most optional descriptions start with
|
||||
.IR comma .)
|
||||
The data value at
|
||||
The data value at
|
||||
.L offset
|
||||
can be referenced in the description using
|
||||
.L %s
|
||||
|
|
|
@ -62,7 +62,7 @@ and
|
|||
may be the same.
|
||||
.PP
|
||||
.L memdup
|
||||
copies the
|
||||
copies the
|
||||
.I n
|
||||
byte buffer
|
||||
.I buf
|
||||
|
@ -86,11 +86,11 @@ and
|
|||
may be the same.
|
||||
.PP
|
||||
.L memzero
|
||||
sets the first
|
||||
sets the first
|
||||
.I n
|
||||
bytes in
|
||||
.I buf
|
||||
to
|
||||
to
|
||||
.IR 0 .
|
||||
.SH "SEE ALSO"
|
||||
Proposed Bell Laboratories ASCII/EBCDIC standard, April 16, 1979.
|
||||
|
|
|
@ -62,7 +62,7 @@ These routines provide an interface to the MIME type database.
|
|||
.L mimeopen
|
||||
returns a mime session handle that is passed to all of the other routines.
|
||||
The
|
||||
.I flags
|
||||
.I flags
|
||||
argument is currently unused.
|
||||
.PP
|
||||
.L mimeclose
|
||||
|
@ -93,7 +93,7 @@ More than one mime file can be loaded into a session;
|
|||
the files are searched in load order.
|
||||
If
|
||||
.I path
|
||||
is
|
||||
is
|
||||
.L 0
|
||||
then the default mime file is loaded.
|
||||
.PP
|
||||
|
|
|
@ -98,7 +98,7 @@ The traditional bit access macro (\f5S_\fP prefix changes to \f5X_\fP) are:
|
|||
and
|
||||
.L X_IRWXO .
|
||||
.LI X_ITYPE( mode )
|
||||
returns the type bits for
|
||||
returns the type bits for
|
||||
.IR mode .
|
||||
.SH "SEE ALSO"
|
||||
pax(1), stat(2)
|
||||
|
|
|
@ -67,7 +67,7 @@ Path buffers are assumed to be of size
|
|||
.L <ast.h>
|
||||
always defines
|
||||
.LR PATH_MAX ,
|
||||
even if it indeterminant on the local system.
|
||||
even if it's indeterminate on the local system.
|
||||
Yes, this was probably a bad choice, but it was made about 10 years ago.
|
||||
We will probably move to a <stk.h> based implementation.
|
||||
.PP
|
||||
|
@ -80,7 +80,7 @@ with access
|
|||
.L mode
|
||||
using the
|
||||
.L :
|
||||
separated directories in
|
||||
separated directories in
|
||||
.IR dirs .
|
||||
Both
|
||||
.I a
|
||||
|
@ -109,11 +109,11 @@ A regular file.
|
|||
.L PATH_ABSOLUTE
|
||||
Generated path name is rooted at
|
||||
.LR / .
|
||||
.I path
|
||||
.I path
|
||||
is returned, 0 on error.
|
||||
.PP
|
||||
.L pathbin
|
||||
returns a pointer to the
|
||||
returns a pointer to the
|
||||
.L :
|
||||
separated list of directories to search for executable commands.
|
||||
The
|
||||
|
@ -130,7 +130,7 @@ canonicalizes the path
|
|||
in place.
|
||||
A pointer to the trailing 0 in the canonicalized path is returned.
|
||||
A canonical path has:
|
||||
redundant
|
||||
redundant
|
||||
.L .
|
||||
and
|
||||
.L /
|
||||
|
@ -156,7 +156,7 @@ Symbolic links are resolved at each component.
|
|||
If an error occurs and either of
|
||||
.L PATH_DOTDOT
|
||||
or
|
||||
.L PATH_EXISTS
|
||||
.L PATH_EXISTS
|
||||
is set then
|
||||
.I path
|
||||
will contain the components following the failure point.
|
||||
|
@ -205,7 +205,7 @@ is longer than
|
|||
then it is split up into a sequence of relative paths and
|
||||
.I chdir
|
||||
is called on each of these.
|
||||
For any given system, if you got to a directory, then
|
||||
For any given system, if you got to a directory, then
|
||||
.L pathcd
|
||||
can get you back, modulo permission and link changes.
|
||||
.PP
|
||||
|
@ -231,13 +231,13 @@ by converting non-standard dynamic link text to
|
|||
converts in the other direction.
|
||||
.PP
|
||||
.L pathkey
|
||||
generates in
|
||||
generates in
|
||||
.I key
|
||||
a 14 character lookup key (plus terminating 0) for the language
|
||||
.I lang
|
||||
processor in
|
||||
.IR path .
|
||||
A poihter to the key is returned, 0 on error.
|
||||
A pointer to the key is returned, 0 on error.
|
||||
If
|
||||
.I "key == 0"
|
||||
then space is allocated via
|
||||
|
@ -270,9 +270,9 @@ and the
|
|||
environment variable (set by
|
||||
.IR ksh (1) )
|
||||
are used for related root searching.
|
||||
If
|
||||
If
|
||||
.I p
|
||||
also contains a
|
||||
also contains a
|
||||
.L /
|
||||
then
|
||||
.I ../p
|
||||
|
@ -367,14 +367,14 @@ where the length of
|
|||
if !=0, is limited to 5, the length of
|
||||
.I <pid>
|
||||
(the base 64 representation of the current process id)
|
||||
is limited to 3, and
|
||||
is limited to 3, and
|
||||
.I <suf>
|
||||
(an internally generated suffix that avoid file confilicts)
|
||||
(an internally generated suffix that avoid file conflicts)
|
||||
is limited to 3.
|
||||
The generated path name conforms to the classic UNIX 14 char and the DOS
|
||||
.LR 8.3
|
||||
limitations.
|
||||
Both
|
||||
Both
|
||||
.I dir
|
||||
and
|
||||
.I pfx
|
||||
|
|
|
@ -92,10 +92,10 @@ In this case
|
|||
is set to indicate the error.
|
||||
.TP
|
||||
.L ispreroot
|
||||
Non-zero is returned if
|
||||
Non-zero is returned if
|
||||
.I dir
|
||||
is the current process preroot.
|
||||
If
|
||||
If
|
||||
.I dir
|
||||
is
|
||||
.B 0
|
||||
|
@ -124,7 +124,7 @@ with the process preroot set to
|
|||
must be a
|
||||
.BR 0 -terminated
|
||||
argument array.
|
||||
If
|
||||
If
|
||||
.I argv
|
||||
is
|
||||
.B 0
|
||||
|
|
|
@ -72,12 +72,12 @@ and flags in
|
|||
.IR flags .
|
||||
.PP
|
||||
.I command
|
||||
is searched for using the
|
||||
is searched for using the
|
||||
.L PATH
|
||||
environment variable from the calling environment.
|
||||
If
|
||||
.I command
|
||||
is
|
||||
is
|
||||
.L 0
|
||||
then the current shell is used (see
|
||||
.IR pathshell (3)).
|
||||
|
@ -85,7 +85,7 @@ If
|
|||
.I envv
|
||||
is not
|
||||
.L 0
|
||||
then it is a
|
||||
then it is a
|
||||
.L 0
|
||||
terminated vector of
|
||||
\fIname\fP[=\fIvalue\fP]
|
||||
|
@ -110,9 +110,9 @@ and will appear at the top of the child environment.
|
|||
.PP
|
||||
If
|
||||
.I opv
|
||||
is not
|
||||
is not
|
||||
.L 0
|
||||
then it is a 0 terminaled vector of operations to perform.
|
||||
then it is a zero-terminated vector of operations to perform.
|
||||
In the following
|
||||
.I context
|
||||
is a combination of
|
||||
|
@ -131,7 +131,7 @@ is closed in
|
|||
\f5PROC_FD_DUP(\fIfrom\fP,\fIto\fP,\fIcontext\fP)\fR
|
||||
The file descriptor
|
||||
.I from
|
||||
is
|
||||
is
|
||||
.IR dup (2)'d
|
||||
into the file descriptor
|
||||
.I to
|
||||
|
@ -155,7 +155,7 @@ in the child context.
|
|||
\f5PROC_SYS_PGRP(\fIpgid\fP)\fR
|
||||
The child process group is set to
|
||||
.IR pgid .
|
||||
.I pgid
|
||||
.I pgid
|
||||
may have the following values:
|
||||
.TP
|
||||
.L <0
|
||||
|
@ -190,7 +190,7 @@ when
|
|||
is a shell script.
|
||||
.TP
|
||||
.L PROC_BACKGROUND
|
||||
Standard shell
|
||||
Standard shell
|
||||
.L &
|
||||
setup is done for the child process.
|
||||
.TP
|
||||
|
@ -241,7 +241,7 @@ if it is a shell script.
|
|||
.L PROC_PRIVELEGED
|
||||
If the effective user id is
|
||||
.L 0
|
||||
then the child real user id is set to
|
||||
then the child real user id is set to
|
||||
.L 0
|
||||
and the child real group id is set to the effective group id.
|
||||
.TP
|
||||
|
@ -274,7 +274,7 @@ The child process id.
|
|||
.TP
|
||||
.L "pid_t \fIpgrp\fP"
|
||||
The child process group.
|
||||
.TP
|
||||
.TP
|
||||
.L "int \fIrfd\fP"
|
||||
A read file descriptor connected to
|
||||
.IR command 's
|
||||
|
@ -308,9 +308,9 @@ Presumably some other mechanism will be used to wait for
|
|||
.IR proc.pid .
|
||||
.PP
|
||||
.L procrun
|
||||
combines
|
||||
combines
|
||||
.L procopen
|
||||
and
|
||||
and
|
||||
.L procclose
|
||||
with the flags
|
||||
.L PROC_GID|PROC_UID
|
||||
|
|
|
@ -105,7 +105,7 @@ then the array
|
|||
is filled with character pointers to the substrings of
|
||||
.I source
|
||||
that correspond to the
|
||||
parenthesized subexpressions of
|
||||
parenthesized subexpressions of
|
||||
.IR pattern :
|
||||
.I re\->match[i].sp
|
||||
points to the beginning and
|
||||
|
@ -128,12 +128,12 @@ are filled with zeros.
|
|||
Matches involving
|
||||
.LR * ,
|
||||
.LR + ,
|
||||
and
|
||||
and
|
||||
.L ?
|
||||
are extended as far as possible.
|
||||
A maximum of 9 subexpressions will be matched.
|
||||
The structure of elements of
|
||||
.I re\->match
|
||||
.I re\->match
|
||||
is:
|
||||
.nf
|
||||
.ta 8n
|
||||
|
@ -168,7 +168,7 @@ string delimited by
|
|||
.LI re\->match[ n ].sp
|
||||
and
|
||||
.LI re\->match[ n ].ep .
|
||||
Each instance of
|
||||
Each instance of
|
||||
.L &
|
||||
is replaced by the string delimited by
|
||||
.I re\->match[0].sp
|
||||
|
|
|
@ -165,7 +165,7 @@ long sffmtversion(Sffmt_t* fe, type);
|
|||
.ft 5
|
||||
Void_t* sfsetbuf(Sfio_t* f, Void_t* buf, size_t size);
|
||||
int sfsync(Sfio_t* f);
|
||||
int sfpoll(Sfio_t** flist, int n, int timeout);
|
||||
int sfpoll(Sfio_t** flist, int n, int timeout);
|
||||
Sfio_t* sfpool(Sfio_t* f, Sfio_t* poolf, int mode);
|
||||
int sfpurge(Sfio_t* f);
|
||||
.ft 1
|
||||
|
@ -188,7 +188,7 @@ SF_DPUSH
|
|||
SF_DPOP
|
||||
SF_DPOLL
|
||||
SF_DBUFFER
|
||||
SF_SYNC
|
||||
SF_SYNC
|
||||
SF_PURGE
|
||||
SF_FINAL
|
||||
SF_READY
|
||||
|
@ -283,7 +283,7 @@ stream pools for automatic data synchronization.
|
|||
Applications can extend the \f5sfprintf()/sfscanf()\fP functions
|
||||
to define their own conversion patterns as well as redefine existing ones.
|
||||
.PP
|
||||
A discipline defines analogues of
|
||||
A discipline defines analogues of
|
||||
the system calls \f5read(2), write(2)\fP and \f5lseek(2)\fP.
|
||||
Such system calls or their discipline replacements are used to process stream data.
|
||||
Henceforth, ``\fIsystem call\fP'' will refer to either a system call
|
||||
|
@ -455,8 +455,8 @@ no longer behave as macros. Thus, an application that requires such fast macro f
|
|||
should leave \f5SF_MTSAFE\fP off and performs explicit locking with \f5sfmutex()\fP.
|
||||
.Tp
|
||||
\f5SF_IOINTR\fP:
|
||||
This flag indicates that I/O system calls should not be resumed
|
||||
after being interrupted by signals. It is useful for
|
||||
This flag indicates that I/O system calls should not be resumed
|
||||
after being interrupted by signals. It is useful for
|
||||
aborting I/O operations on such interruptions. Note, however,
|
||||
that certain operating systems (e.g., BSD Unix systems) may automatically
|
||||
resume interrupted system calls outside the scope of the library. On such systems,
|
||||
|
@ -784,7 +784,7 @@ from input stream \f5fr\fP to output stream \f5fw\fP.
|
|||
|
||||
An object can be either a byte if the record separator argument
|
||||
\f5rsc\fP is negative or a record of \f5rsc\fP is non-negative.
|
||||
In the latter case, a record is incomplete if it does not end in \f5rsc\fP.
|
||||
In the latter case, a record is incomplete if it does not end in \f5rsc\fP.
|
||||
Generally speaking, a stream can have at most one incomplete record.
|
||||
If \f5n\fP is negative, all complete objects of \f5fr\fP will be moved.
|
||||
Otherwise, \f5n\fP indicates the number of objects to move.
|
||||
|
@ -866,7 +866,7 @@ call can be obtained in another \f5sfreserve()\fP call with the argument
|
|||
\f5type\fP being \f5SF_LASTR\fP. The second argument \f5n\fP
|
||||
to \f5sfreserve()\fP will be ignored in this case.
|
||||
|
||||
A \f5sfreserve()\fP call is successful if it can obtain a data block
|
||||
A \f5sfreserve()\fP call is successful if it can obtain a data block
|
||||
of size at least the absolute value of \f5n\fP.
|
||||
For a \f5SF_READ\fP atream, the argument \f5n\fP is treated as follows:
|
||||
.Tp
|
||||
|
@ -986,7 +986,7 @@ which contains the following elements:
|
|||
|
||||
char* form; /* format string to stack */
|
||||
va_list args; /* corresponding arg list */
|
||||
|
||||
|
||||
int fmt; /* pattern being processed */
|
||||
ssize_t size; /* object size */
|
||||
int flags; /* formatting control flags */
|
||||
|
@ -1100,7 +1100,7 @@ Arguments are always processed in order and
|
|||
\f5fe->extf\fP is called exactly once per argument.
|
||||
Note that, when \f5pos$\fP (below) is not used anywhere in a format string,
|
||||
each argument is used exactly once per a corresponding pattern.
|
||||
In that case, \f5fe->extf\fP is called
|
||||
In that case, \f5fe->extf\fP is called
|
||||
as soon as the pattern is recognized and before any scanning or formatting.
|
||||
On the other hand, when \f5pos$\fP is used in a format string,
|
||||
an argument may be used multiple times.
|
||||
|
@ -1257,7 +1257,7 @@ In the second case, a given decimal value would define a size while
|
|||
Then, if the conversion specifier is \f5s\fP, this size defines the
|
||||
length of the string or strings being formatted (see the discussion of \f5base\fP below).
|
||||
For integer and floating point patterns,
|
||||
the size is used to select a type from one of the below lists as
|
||||
the size is used to select a type from one of the below lists as
|
||||
indicated by the conversion specifier:
|
||||
|
||||
.nf
|
||||
|
@ -1270,7 +1270,7 @@ indicated by the conversion specifier:
|
|||
|
||||
The selection algorithm always matches types from left to right in any given list.
|
||||
Although selection is generally based on sizes in bytes,
|
||||
for compatibility with Microsoft-C, the size 64
|
||||
for compatibility with Microsoft-C, the size 64
|
||||
is matched with an appropriate type with the same number of bits, if any.
|
||||
If the given size does not match any of the listed types,
|
||||
it shall match one of \f5int\fP, \f5unsigned int\fP, and \f5double\fP
|
||||
|
@ -1517,7 +1517,7 @@ indicated by the conversion specifier:
|
|||
|
||||
The selection algorithm always matches types from left to right in any given list.
|
||||
Although selection is generally based on sizes in bytes,
|
||||
for compatibility with Microsoft-C, the size 64
|
||||
for compatibility with Microsoft-C, the size 64
|
||||
is matched with an appropriate type with the same number of bits, if any.
|
||||
If the given size does not match any of the listed types,
|
||||
it shall match one of \f5int\fP, \f5unsigned int\fP, and \f5double\fP
|
||||
|
@ -1738,7 +1738,7 @@ the discipline that was pushed down.
|
|||
|
||||
Note that a discipline can be used on only one stream at a time.
|
||||
An application should take care to allocate different discipline
|
||||
structures for use with different streams.
|
||||
structures for use with different streams.
|
||||
A discipline structure is of the type \f5Sfdisc_t\fP which
|
||||
contains the following public fields:
|
||||
|
||||
|
@ -1854,7 +1854,7 @@ I/O modes are ready.
|
|||
.Tp
|
||||
\f5SF_SYNC\fP, \f5SF_PURGE\fP:
|
||||
If \f5SF_IOCHECK\fP is set,
|
||||
these events are raised respectively for a \f5sfsync()\fP or \f5sfpurge()\fP call.
|
||||
these events are raised respectively for a \f5sfsync()\fP or \f5sfpurge()\fP call.
|
||||
In each case, the respective event is raised once before the appropriate
|
||||
operation (synchronization or purging) with \f5((int)value)\fP being \f51\fP
|
||||
and once after with \f5((int)value)\fP being \f50\fP.
|
||||
|
@ -2066,7 +2066,7 @@ On such a call, if the return value is negative, \f5sfwalk()\fP will terminate.
|
|||
Otherwise, it returns the return value from the last invocation of \f5walkf()\fP.
|
||||
|
||||
As an example, the call \f5sfwalk(walkf, data, SF_READ)\fP will iterate over all streams
|
||||
opened for reading. Similarly, \f5sfwalk(walkf, data, SF_READ|SF_WRITE)\fP
|
||||
opened for reading. Similarly, \f5sfwalk(walkf, data, SF_READ|SF_WRITE)\fP
|
||||
iterates over all streams opened for both reading and writing.
|
||||
Lastly, \f5sfwalk(walkf, data, 0)\fP iterates over all streams.
|
||||
|
||||
|
|
|
@ -90,7 +90,7 @@ do this on systems that don't support
|
|||
.IR fork (2).
|
||||
This makes porting to NT and Windows a snap: a simple
|
||||
.IR iffe (1)
|
||||
probe provides a
|
||||
probe provides a
|
||||
.L spawnveg
|
||||
implementation using the NT or Windows process primitives.
|
||||
.SH "SEE ALSO"
|
||||
|
|
|
@ -56,14 +56,14 @@ install it as the active stack.
|
|||
A stack is created with the \f5stakcreate\fP() function.
|
||||
A \fIflags\fP argument of \f5STAK_SMALL\fP indicates that unused
|
||||
space on the stack should be freed whenever this stack ceases
|
||||
to be the active stack.
|
||||
to be the active stack.
|
||||
If successful,
|
||||
\f5stakcreate\fP() returns a pointer to a stack whose reference
|
||||
count is 1.
|
||||
Otherwise, \f5stakcreate\fP() returns a null pointer.
|
||||
The \f5staklink\fP() function increases the reference count for the
|
||||
given \fIstack\fP.
|
||||
The \f5stakinstall\fP() function
|
||||
The \f5stakinstall\fP() function
|
||||
makes the specified \fIstack\fP the active stack and returns a pointer
|
||||
to the previous active stack.
|
||||
When the \fIoverflow\fP argument is not null,
|
||||
|
@ -113,7 +113,7 @@ If \fIaddress\fP is not the address of an object on the
|
|||
stack the result is undefined.
|
||||
.PP
|
||||
The remaining functions are used to build the current object incrementally.
|
||||
An object that is built incrementally on the stack will
|
||||
An object that is built incrementally on the stack will
|
||||
always occupy contiguous memory within a stack frame but
|
||||
until \f5stakfreeze\fP() is called,
|
||||
the location in memory for the object can change.
|
||||
|
@ -123,7 +123,7 @@ Initially, this offset is zero, and the offset changes as a result
|
|||
of the operations you specify.
|
||||
The \f5stakseek\fP() function is used set the offset for the
|
||||
current object.
|
||||
The \fIoffset\fP argument to \f5stakseek\fP() specifies the new
|
||||
The \fIoffset\fP argument to \f5stakseek\fP() specifies the new
|
||||
offset for the current object.
|
||||
The frame will be extended or moved
|
||||
if \f5offset\fP causes the new current offset to extend beyond the
|
||||
|
|
|
@ -57,14 +57,14 @@ install it as the active stack.
|
|||
A stack is created with the \f5stkopen\fP() function.
|
||||
A \fIflags\fP argument of \f5STK_SMALL\fP indicates that unused
|
||||
space on the stack should be freed whenever this stack ceases
|
||||
to be the active stack.
|
||||
to be the active stack.
|
||||
If successful,
|
||||
\f5stkopen\fP() returns a pointer to a stack whose reference
|
||||
count is 1.
|
||||
Otherwise, \f5stkopen\fP() returns a null pointer.
|
||||
The \f5stklink\fP() function increases the reference count for the
|
||||
given \fIstack\fP.
|
||||
The \f5stkinstall\fP() function
|
||||
The \f5stkinstall\fP() function
|
||||
makes the specified \fIstack\fP the active stack and returns a pointer
|
||||
to the previous active stack.
|
||||
When the \fIoverflow\fP argument is not null,
|
||||
|
@ -115,7 +115,7 @@ stack the result is undefined.
|
|||
.PP
|
||||
The \f5sfio\fP(3) output functions can be used to build
|
||||
current object incrementally.
|
||||
An object that is built incrementally on the stack will
|
||||
An object that is built incrementally on the stack will
|
||||
always occupy contiguous memory within a stack frame but
|
||||
until \f5stkfreeze\fP() is called,
|
||||
the location in memory for the object can change.
|
||||
|
@ -125,7 +125,7 @@ Initially, this offset is zero, and the offset changes as a result
|
|||
of the operations you specify.
|
||||
The \f5stkseek\fP() function is used set the offset for the
|
||||
current object.
|
||||
The \fIoffset\fP argument to \f5stkseek\fP() specifies the new
|
||||
The \fIoffset\fP argument to \f5stkseek\fP() specifies the new
|
||||
offset for the current object.
|
||||
The frame will be extended or moved
|
||||
if \f5offset\fP causes the new current offset to extend beyond the
|
||||
|
|
|
@ -43,7 +43,7 @@ stresc \- convert character constants in string
|
|||
.L "int stresc(char* s)"
|
||||
.SH DESCRIPTION
|
||||
.I stresc
|
||||
converts
|
||||
converts
|
||||
.L \e
|
||||
character constant expressions in the nul-terminated string
|
||||
.I s
|
||||
|
|
|
@ -66,7 +66,7 @@ Except for
|
|||
.I &
|
||||
and
|
||||
.IR ! ,
|
||||
each shell pattern has an equivalent
|
||||
each shell pattern has an equivalent
|
||||
.IR egrep (1)
|
||||
construct.
|
||||
.EX
|
||||
|
|
|
@ -74,7 +74,7 @@ where
|
|||
.I name
|
||||
must be one of the option names in
|
||||
.IR tab ,
|
||||
.I value
|
||||
.I value
|
||||
is an optional value, and
|
||||
.B no
|
||||
is for Boolean options.
|
||||
|
@ -108,7 +108,7 @@ is not found in
|
|||
.I tab
|
||||
then
|
||||
.I fun
|
||||
is called with
|
||||
is called with
|
||||
.I p
|
||||
pointing to an internal
|
||||
.I namval
|
||||
|
|
|
@ -48,7 +48,7 @@ applies a file permission expression in the nul-terminated string
|
|||
to the initial file permission mask
|
||||
.IR p .
|
||||
The new permission mask is returned.
|
||||
If
|
||||
If
|
||||
.I e
|
||||
not 0 then
|
||||
.I *e
|
||||
|
|
|
@ -56,7 +56,7 @@ elements using the comparison function
|
|||
.I compare
|
||||
returns
|
||||
.L \-1
|
||||
if
|
||||
if
|
||||
.I a
|
||||
is lexicographically less than
|
||||
.IR b ,
|
||||
|
@ -67,7 +67,7 @@ is equal to
|
|||
.IR b ,
|
||||
and
|
||||
.L 1
|
||||
if
|
||||
if
|
||||
.I a
|
||||
is lexicographically greater than
|
||||
.IR b .
|
||||
|
|
|
@ -47,7 +47,7 @@ converts the generic tape device specification in the nul-terminated string
|
|||
.I s
|
||||
to a local tape device pathname.
|
||||
A pointer to the device pathname is returned.
|
||||
If
|
||||
If
|
||||
.I e
|
||||
not 0 then
|
||||
.I *e
|
||||
|
|
|
@ -46,7 +46,7 @@ strton \- convert string to long integer
|
|||
converts the nul-terminated string
|
||||
.I s
|
||||
to a long integer.
|
||||
If
|
||||
If
|
||||
.I e
|
||||
not 0 then
|
||||
.I *e
|
||||
|
@ -63,7 +63,7 @@ All but
|
|||
are optional.
|
||||
.I sign
|
||||
may be \+ or \-.
|
||||
.I base
|
||||
.I base
|
||||
may be:
|
||||
.TP
|
||||
.B 0x
|
||||
|
|
|
@ -60,7 +60,7 @@ and
|
|||
.PP
|
||||
.L swapop
|
||||
returns the swap operation required to convert the
|
||||
.L width
|
||||
.L width
|
||||
byte integer
|
||||
.L external
|
||||
to the
|
||||
|
@ -85,7 +85,7 @@ and
|
|||
.L 1
|
||||
with bytes
|
||||
.L 2
|
||||
and
|
||||
and
|
||||
.LR 3 .
|
||||
.TP
|
||||
.L 4
|
||||
|
@ -101,7 +101,7 @@ in the header
|
|||
described in
|
||||
.IR int (3).
|
||||
.PP
|
||||
.L swapget
|
||||
.L swapget
|
||||
returns the
|
||||
.L width
|
||||
byte integer in the buffer
|
||||
|
@ -109,7 +109,7 @@ byte integer in the buffer
|
|||
swapped according to
|
||||
.LR op .
|
||||
.PP
|
||||
.L swapput
|
||||
.L swapput
|
||||
copies the
|
||||
.L width
|
||||
byte integer
|
||||
|
@ -122,16 +122,16 @@ swapped according to
|
|||
is returned.
|
||||
.PP
|
||||
.L swapmem
|
||||
swaps
|
||||
swaps
|
||||
.L n
|
||||
bytes from the buffer
|
||||
.L from
|
||||
to the buffer
|
||||
.L to
|
||||
according to
|
||||
according to
|
||||
.LR op .
|
||||
.L to
|
||||
and
|
||||
and
|
||||
.L from
|
||||
may be the same.
|
||||
.SH "SEE ALSO"
|
||||
|
|
|
@ -42,8 +42,8 @@ tab \- simple table lookup routines
|
|||
.SH SYNOPSIS
|
||||
.L "#include <ast.h>"
|
||||
.sp
|
||||
.L "int tabindex(const void* tab, int size, const char* name);"
|
||||
.L "void* tablook(const void* tab, int size, const char* name);"
|
||||
.L "int tabindex(const void* tab, int size, const char* name);"
|
||||
.L "void* tablook(const void* tab, int size, const char* name);"
|
||||
.SH DESCRIPTION
|
||||
These routines do linear lookups in
|
||||
.I small
|
||||
|
|
|
@ -46,7 +46,7 @@ The
|
|||
.I tm
|
||||
library supports conversion between
|
||||
string date specifications,
|
||||
seconds reolution
|
||||
seconds resolution
|
||||
.L time_t
|
||||
clock values and
|
||||
.LR Tm_t .
|
||||
|
@ -356,7 +356,7 @@ The nanosecond part of the time.
|
|||
\fB%Q\fP\fI<delim>recent<delim>distant<delim>\fP
|
||||
Recent dates are formatted with
|
||||
.I recent
|
||||
and distand dates are formatted with
|
||||
and distant dates are formatted with
|
||||
.IR distant ,
|
||||
where
|
||||
.I <delim>
|
||||
|
@ -400,7 +400,7 @@ character.
|
|||
.IR hh : mm : ss .
|
||||
.TP
|
||||
.B u
|
||||
Weeday number with 1 for Monday, 7 for Sunday.
|
||||
Weekday number with 1 for Monday, 7 for Sunday.
|
||||
.TP
|
||||
.B U
|
||||
Week number with Sunday as the first day.
|
||||
|
@ -507,9 +507,9 @@ then it specifies a time zone other that the local time zone.
|
|||
.TP
|
||||
.L "void tmset(Tm_zone_t* zone);"
|
||||
.L tmset
|
||||
sets the reference timezoe to
|
||||
sets the reference timezone to
|
||||
.LR zone .
|
||||
.L tm_info.local
|
||||
.L tm_info.local
|
||||
points to the local timezone and
|
||||
.L tm_info.zone
|
||||
points to the current reference timezone.
|
||||
|
|
|
@ -385,9 +385,9 @@ then it specifies a time zone other that the local time zone.
|
|||
.TP
|
||||
.L "void tmset(Tm_zone_t* zone);"
|
||||
.L tmset
|
||||
sets the reference timezoe to
|
||||
sets the reference timezone to
|
||||
.LR zone .
|
||||
.L tm_info.local
|
||||
.L tm_info.local
|
||||
points to the local timezone and
|
||||
.L tm_info.zone
|
||||
points to the current reference timezone.
|
||||
|
|
|
@ -84,7 +84,7 @@ then it will point to the next unread character in
|
|||
on return.
|
||||
The number of scanned tokens is returned.
|
||||
.L \-1
|
||||
is returned if
|
||||
is returned if
|
||||
.L string
|
||||
was not empty and
|
||||
.L format
|
||||
|
@ -116,7 +116,7 @@ is a line splice.
|
|||
.L %
|
||||
in
|
||||
.L format
|
||||
prefixes format conversion characters; each conversion character
|
||||
prefixes format conversion characters; each conversion character
|
||||
corresponds to a
|
||||
.L tokscan
|
||||
argument following the
|
||||
|
@ -125,7 +125,7 @@ argument.
|
|||
The format conversions are:
|
||||
.TP
|
||||
.L %c
|
||||
A single
|
||||
A single
|
||||
.LR char .
|
||||
.TP
|
||||
.L "%hd %d %ld"
|
||||
|
@ -185,7 +185,7 @@ to
|
|||
.L tokscan
|
||||
above converts quoted
|
||||
.I carriage-return
|
||||
back to
|
||||
back to
|
||||
.IR newline ),
|
||||
and deletes
|
||||
.I "# ... newline"
|
||||
|
@ -206,7 +206,7 @@ then
|
|||
is a 0 terminated string;
|
||||
otherwise
|
||||
.L input
|
||||
is an open
|
||||
is an open
|
||||
.L Sfio_t*
|
||||
stream.
|
||||
If
|
||||
|
|
|
@ -53,7 +53,7 @@ loads a string vector from lines in
|
|||
.LR string .
|
||||
.L string
|
||||
may be modified upon return.
|
||||
Each line in
|
||||
Each line in
|
||||
.L string
|
||||
is treated as a new vector element.
|
||||
Lines with
|
||||
|
@ -64,15 +64,15 @@ joins consecutive lines.
|
|||
A string vector pointer is returned, 0 on error.
|
||||
.PP
|
||||
.L vecfile
|
||||
constructs a string vector by calling
|
||||
.L vecload
|
||||
constructs a string vector by calling
|
||||
.L vecload
|
||||
on the contents of the file named by
|
||||
.LR path .
|
||||
The string vector pointer is returned, 0 on error.
|
||||
.PP
|
||||
.L vecstring
|
||||
constructs a string vector by calling
|
||||
.L vecload
|
||||
constructs a string vector by calling
|
||||
.L vecload
|
||||
on a copy of
|
||||
.LR string .
|
||||
The string vector pointer is returned, 0 on error.
|
||||
|
@ -92,7 +92,7 @@ inserts the string vector
|
|||
.L vecload
|
||||
or
|
||||
.LR vecstring )
|
||||
between
|
||||
between
|
||||
.L "(*argvp)[0]"
|
||||
and
|
||||
.LR "(*argvp)[1]" ,
|
||||
|
@ -108,7 +108,7 @@ is called before the return.
|
|||
is returned if the insertion failed.
|
||||
.SH EXAMPLES
|
||||
.L vecargs
|
||||
is commonly used to modify command
|
||||
is commonly used to modify command
|
||||
.L argv
|
||||
from fixed files.
|
||||
For example,
|
||||
|
|
|
@ -53,7 +53,7 @@ vmalloc \- virtual memory allocation
|
|||
.MW "int vmstat(Vmalloc_t* vm, Vmstat_t* statb);"
|
||||
.MW "int vmtrace(int fd);"
|
||||
.MW "int vmtrbusy(Vmalloc_t* vm);"
|
||||
.MW "Void_t* vmdata(Vmalloc_t* vm);"
|
||||
.MW "Void_t* vmdata(Vmalloc_t* vm);"
|
||||
.fi
|
||||
.SS "Malloc-compatible functions"
|
||||
.nf
|
||||
|
@ -268,7 +268,7 @@ a structure with these members:
|
|||
.fi
|
||||
.in -.5i
|
||||
.TP
|
||||
.MW round
|
||||
.MW round
|
||||
If this value is positive, all size arguments to the
|
||||
\f5memoryf\fP function will be multiples of it.
|
||||
.TP
|
||||
|
@ -410,7 +410,7 @@ By default, this file descriptor is 2, the standard error.
|
|||
checks a region using \f5Vmdebug\fP or \f5Vmbest\fP for integrity.
|
||||
If \f5Vmdebug\fP, this also checks for block overwriting errors.
|
||||
On errors, \fIvmdbwarn\fP is called.
|
||||
If flag \f5VM_DBCHECK\fP is on,
|
||||
If flag \f5VM_DBCHECK\fP is on,
|
||||
\fIvmdbcheck\fP is called at each invocation of
|
||||
\fIvmalloc\fP, \fIvmfree\fP, or \fIvmresize\fP.
|
||||
.PP
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
* FF_dir FF_gnu with sfgetl/sfputl and trailing / on dirs (FF_dir_magic)
|
||||
* FF_typ FF_dir with (mime) types (FF_typ_magic)
|
||||
*
|
||||
* the bigram encoding steals the eighth bit (that's why its FF_old)
|
||||
* the bigram encoding steals the eighth bit (that's why it's FF_old)
|
||||
* maybe one day we'll limit it to readonly:
|
||||
*
|
||||
* 0-2*FF_OFF likeliest differential counts + offset to make nonnegative
|
||||
|
|
|
@ -599,7 +599,7 @@ procopen(const char* cmd, char** argv, char** envv, long* modv, int flags)
|
|||
if (!fork())
|
||||
{
|
||||
sfsprintf(path, sizeof(path), "%d", getppid());
|
||||
execlp("trace", "trace", "-p", path, NiL);
|
||||
execlp("trace", "trace", "-p", path, NULL);
|
||||
_exit(EXIT_NOTFOUND);
|
||||
}
|
||||
sleep(2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue