README revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
9290425bdccce17688292f7e8a9a837648440263Eugen KuksaThe advanced software technology department has been collecting useful C
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksaroutines in a single library called libast. libast is used by nmake, the
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksanmake cpp (which is mainly based on another library (libpp)), CIA
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa(C information abstractor from Robin Chen), and a collection of other
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa/bin and /usr/bin commands that benefit from concentrating functionality
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksain libast.
d327eb79653cf7820fe583473ab35816d44cd757Eugen Kuksa
9290425bdccce17688292f7e8a9a837648440263Eugen KuksaMore detail is available in the man pages. libast contains:
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa (1) routines to support a generic environment for
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa a variety of UNIX operating system variants
c52069b22e64cc3f501801e22e18764b13e50456Eugen Kuksa
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa (2) routines that update standard libc routines
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa (3) routines shared between several commands
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa
9290425bdccce17688292f7e8a9a837648440263Eugen KuksaIf you already have nmake 2.0 or newer installed then use
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa`nmake install' from this directory, otherwise use
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksaship/shipin from the root of the distribution directory tree.
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa
d327eb79653cf7820fe583473ab35816d44cd757Eugen KuksaSome of the routines not found in section 3:
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa
c52069b22e64cc3f501801e22e18764b13e50456Eugen Kuksahash: generic, scoped hash table support
c52069b22e64cc3f501801e22e18764b13e50456Eugen Kuksa
c52069b22e64cc3f501801e22e18764b13e50456Eugen Kuksa hashalloc create a hash table or push new scope
c52069b22e64cc3f501801e22e18764b13e50456Eugen Kuksa hashdump debug dump of one or all hash tables
9290425bdccce17688292f7e8a9a837648440263Eugen Kuksa hashfree free a hashalloc()'d table
hashlook low level name lookup
hashscan entry generator for scoped table scan
hashsize explicitly change table size (usually automatic)
hashwalk apply function to each table entry
memhash return hash code for n-char chunk of memory
strhash return hash code for null terminated string
include/ast: libast support headers
align.h compile time type alignmnent support
dirent.h POSIX directory(3) interface definitions
error.h error() interface definitions
ftw.h ftwalk() interface definitions
hash.h hash*() interface definitions
ls.h strls() interface definitions
re.h re*() interface definitions
tar.h POSIX ustar format interface definitions
tm.h tm*() interface definitions
misc:
cmdargs apply a sequence of cmd line option parsers
cmdopen like popen() but stdin and stdout are specified
cvtatoe convert ASCII to EBCDIC
cvtetoa convert EBCDIC to ASCII
error output generic error and trace messages
ftwalk an ftw(3) that works -- used in new tw(1)
getcwd uses $PWD if ok, doesn't use /bin/pwd
getshell return full path of shell for cmdopen()
ooptget optget() for obsolete ar(1) and tar(1) options
optget YA getopt(3) but no argc or error message output
pathaccess find file with specific acces on list of dirs
pathcanon canonicalize path name in place
pathcmd return full path name of executable using $PATH
pathroot determine `related root' directory for command
perror uses strerror()
readargs append each line of file to argv[0]
re: egrep(1) and ed(1) style re's from V9
(not the good awk(1) algorithm)
recomp compile re pattern
reerror report re*() errors
reexec match string using compiled re
resub ed(1) style substitute using last reexec()
string:
chresc return next char in string converting \ sequences
ctoi convert char constant string to int
strcopy like strcpy(3) but returns end of destination
strdup malloc(3) and strcpy(3) smashed together
strerror return error message string given errno
stresc convert \ sequences in string in place
streval evaluate C expression in string
strls ls -l format support
strmatch Korn shell file pattern match
strmode return ls -l style output given st.st_mode
strsignal return signal id string given SIG* number
strtape convert generic tape unit to /dev/* file
token generate space separated tokens in string
tm: time conversion support
tmdate convert date string to time_t
tmform format time_t to date string
tmmake return current time_t
tmtime convert struct tm to time_t