1da2e3ebdSchinThe advanced software technology department has been collecting useful C 2da2e3ebdSchinroutines in a single library called libast. libast is used by nmake, the 3da2e3ebdSchinnmake cpp (which is mainly based on another library (libpp)), CIA 4da2e3ebdSchin(C information abstractor from Robin Chen), and a collection of other 5da2e3ebdSchin/bin and /usr/bin commands that benefit from concentrating functionality 6da2e3ebdSchinin libast. 7da2e3ebdSchin 8da2e3ebdSchinMore detail is available in the man pages. libast contains: 9da2e3ebdSchin 10da2e3ebdSchin (1) routines to support a generic environment for 11da2e3ebdSchin a variety of UNIX operating system variants 12da2e3ebdSchin 13da2e3ebdSchin (2) routines that update standard libc routines 14da2e3ebdSchin 15da2e3ebdSchin (3) routines shared between several commands 16da2e3ebdSchin 17da2e3ebdSchinIf you already have nmake 2.0 or newer installed then use 18da2e3ebdSchin`nmake install' from this directory, otherwise use 19da2e3ebdSchinship/shipin from the root of the distribution directory tree. 20da2e3ebdSchin 21da2e3ebdSchinSome of the routines not found in section 3: 22da2e3ebdSchin 23da2e3ebdSchinhash: generic, scoped hash table support 24da2e3ebdSchin 25da2e3ebdSchin hashalloc create a hash table or push new scope 26da2e3ebdSchin hashdump debug dump of one or all hash tables 27da2e3ebdSchin hashfree free a hashalloc()'d table 28da2e3ebdSchin hashlook low level name lookup 29da2e3ebdSchin hashscan entry generator for scoped table scan 30da2e3ebdSchin hashsize explicitly change table size (usually automatic) 31da2e3ebdSchin hashwalk apply function to each table entry 32da2e3ebdSchin memhash return hash code for n-char chunk of memory 33da2e3ebdSchin strhash return hash code for null terminated string 34da2e3ebdSchin 35da2e3ebdSchininclude/ast: libast support headers 36da2e3ebdSchin 37da2e3ebdSchin align.h compile time type alignmnent support 38da2e3ebdSchin dirent.h POSIX directory(3) interface definitions 39da2e3ebdSchin error.h error() interface definitions 40da2e3ebdSchin ftw.h ftwalk() interface definitions 41da2e3ebdSchin hash.h hash*() interface definitions 42da2e3ebdSchin ls.h strls() interface definitions 43da2e3ebdSchin re.h re*() interface definitions 44da2e3ebdSchin tar.h POSIX ustar format interface definitions 45da2e3ebdSchin tm.h tm*() interface definitions 46da2e3ebdSchin 47da2e3ebdSchinmisc: 48da2e3ebdSchin 49da2e3ebdSchin cmdargs apply a sequence of cmd line option parsers 50da2e3ebdSchin cmdopen like popen() but stdin and stdout are specified 51da2e3ebdSchin cvtatoe convert ASCII to EBCDIC 52da2e3ebdSchin cvtetoa convert EBCDIC to ASCII 53da2e3ebdSchin error output generic error and trace messages 54da2e3ebdSchin ftwalk an ftw(3) that works -- used in new tw(1) 55da2e3ebdSchin getcwd uses $PWD if ok, doesn't use /bin/pwd 56da2e3ebdSchin getshell return full path of shell for cmdopen() 57da2e3ebdSchin ooptget optget() for obsolete ar(1) and tar(1) options 58da2e3ebdSchin optget YA getopt(3) but no argc or error message output 59da2e3ebdSchin pathaccess find file with specific acces on list of dirs 60da2e3ebdSchin pathcanon canonicalize path name in place 61da2e3ebdSchin pathcmd return full path name of executable using $PATH 62da2e3ebdSchin pathroot determine `related root' directory for command 63da2e3ebdSchin perror uses strerror() 64da2e3ebdSchin readargs append each line of file to argv[0] 65da2e3ebdSchin 66da2e3ebdSchinre: egrep(1) and ed(1) style re's from V9 67da2e3ebdSchin (not the good awk(1) algorithm) 68da2e3ebdSchin 69da2e3ebdSchin recomp compile re pattern 70da2e3ebdSchin reerror report re*() errors 71da2e3ebdSchin reexec match string using compiled re 72da2e3ebdSchin resub ed(1) style substitute using last reexec() 73da2e3ebdSchin 74da2e3ebdSchinstring: 75da2e3ebdSchin 76da2e3ebdSchin chresc return next char in string converting \ sequences 77da2e3ebdSchin ctoi convert char constant string to int 78da2e3ebdSchin strcopy like strcpy(3) but returns end of destination 79da2e3ebdSchin strdup malloc(3) and strcpy(3) smashed together 80da2e3ebdSchin strerror return error message string given errno 81da2e3ebdSchin stresc convert \ sequences in string in place 82da2e3ebdSchin streval evaluate C expression in string 83da2e3ebdSchin strls ls -l format support 84da2e3ebdSchin strmatch Korn shell file pattern match 85da2e3ebdSchin strmode return ls -l style output given st.st_mode 86da2e3ebdSchin strsignal return signal id string given SIG* number 87da2e3ebdSchin strtape convert generic tape unit to /dev/* file 88da2e3ebdSchin token generate space separated tokens in string 89da2e3ebdSchin 90da2e3ebdSchintm: time conversion support 91da2e3ebdSchin 92da2e3ebdSchin tmdate convert date string to time_t 93da2e3ebdSchin tmform format time_t to date string 94da2e3ebdSchin tmmake return current time_t 95da2e3ebdSchin tmtime convert struct tm to time_t 96