summaryrefslogtreecommitdiff
path: root/usr/src/lib/libast/common
diff options
context:
space:
mode:
authorRoland Mainz <roland.mainz@nrubsig.org>2009-10-28 10:36:39 -0700
committerRoland Mainz <roland.mainz@nrubsig.org>2009-10-28 10:36:39 -0700
commit34f9b3eef6fdadbda0a846aa4d68691ac40eace5 (patch)
tree0b0fdfb35f8eb9324728de5a99e50e939aca650f /usr/src/lib/libast/common
parent14969419acb89bb74e6c95fa472119b710224440 (diff)
downloadillumos-joyent-34f9b3eef6fdadbda0a846aa4d68691ac40eace5.tar.gz
Portions contributed by Olga Kryzhanovska <olga.kryzhanovska@gmail.com>
PSARC/2009/063 ksh93 update 2 PSARC/2009/248 ksh93 update to 2009-03-10 PSARC/2009/249 more ksh93 command conversions 6888396 libast sources should not include localedef.h 6605478 ksh93 profile shell option does not work 6631006 ksh93 hangs in situations that ksh handles okay 6661487 logname reports nothing after running the script command 6705126 first call to read doesn't honor new setting of HISTFILE 6764665 *libpp* Array overrun in libpp 6765756 *libast* Array overruns in libast 6769332 Recursive function+command substitutions terminate shell after 257 iterations 6777491 *ksh93* lacks arithmetric function iszero() 6778077 *ksh93* does not understand "THAW" as a signal for use with trap 6789247 [ku1] libast/ksh93 1-digit hexfloat base conversion rounds incorrectly 6791838 *ksh93* unset of a variable which is not set should return 0 6793714 RFE: Update /usr/bin/comm to AT&T AST "comm" 6793719 RFE: Update /usr/bin/cut to AT&T AST "cut" 6793721 RFE: Update /usr/bin/paste to AT&T AST "paste" 6793722 RFE: Update /usr/bin/cmp to AT&T AST "cmp" 6793726 RFE: Update /usr/bin/uniq to AT&T AST "uniq" 6793735 RFE: Update /usr/bin/wc to AT&T AST "wc" 6793744 RFE: Add /usr/share/doc/ksh/ for ksh93 documentation 6793747 RFE: Provide "print" builtin as /usr/bin/print for external applications 6793763 RFE: Update /usr/bin/ksh93 to ast-ksh.2009-05-05 6794952 RFE: Enable "globstar" mode in /etc/ksh.kshrc (= interactive ksh93 shells) 6805792 [ku1] Moving local compound var into array does not work 6805794 [ku1] printf returns "invalid character constant" for $ printf "%d\n" "'<euro>" 6805795 [ku1] ksh93 does not differ between -0 and +0 6805797 [ku1]Can't append to nodes of an array of compound vars if addressing them via nameref 6805799 Indexed compound variable arrays do not work... 6805800 [ku1] Declaring associative compound array does not work 6805813 RFE: Update /usr/bin/join to AT&T AST "join". 6805819 RFE: Update /usr/bin/tee to AT&T AST "tee". 6809663 shlint missing ending newline on errors 6811916 ksh93 repeatedly segfaults when "tee" builtin is interrupted via <ctrl-c> in interactive mode 6821113 SUNWosdem package issues 6828644 RFE: Update /usr/bin/logname to AT&T AST "logname". 6828692 RFE: Update /usr/bin/cksum to AT&T AST "cksum". 6834184 ksh93 gets SIGSEGV if HISTFILE is changed in place. 6834207 ksh93 gets SIGSEGV on interactive function definition with HISTSIZE unset 6835835 ksh93 "cat" builtin does not handle "-n" correctly 6841442 Need exception list for OS/Net trees managed via Subversion 6848486 "echo ${test}" with test undefined crashes the shell 6850672 ksh93 (VISUAL=vi) crashes with memory fault while scrolling through history 6855875 typeset -X x ; print $x # does not print sufficient digits to restore value 6857344 /usr/bin/hash core dump with invalid arguments 6866676 Need test suite module to test the kernel support for compiled shell scripts 6881017 Subshell doesn't exit, holds pipe open preventing callers from exiting 6884409 fts functions in libast library can result in segv with deep dir trees (similar to CERT VU#590371)
Diffstat (limited to 'usr/src/lib/libast/common')
-rw-r--r--usr/src/lib/libast/common/RELEASE59
-rw-r--r--usr/src/lib/libast/common/cdt/dtclose.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtdisc.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtextract.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtflatten.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dthash.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dthdr.h2
-rw-r--r--usr/src/lib/libast/common/cdt/dtlist.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtmethod.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtnew.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtopen.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtrenew.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtrestore.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtsize.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtstat.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtstrhash.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dttree.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dttreeset.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtview.c2
-rw-r--r--usr/src/lib/libast/common/cdt/dtwalk.c2
-rw-r--r--usr/src/lib/libast/common/comp/atexit.c2
-rw-r--r--usr/src/lib/libast/common/comp/basename.c2
-rw-r--r--usr/src/lib/libast/common/comp/catopen.c2
-rw-r--r--usr/src/lib/libast/common/comp/closelog.c2
-rw-r--r--usr/src/lib/libast/common/comp/conf.sh2
-rw-r--r--usr/src/lib/libast/common/comp/conf.tab1
-rw-r--r--usr/src/lib/libast/common/comp/creat64.c2
-rw-r--r--usr/src/lib/libast/common/comp/dirname.c2
-rw-r--r--usr/src/lib/libast/common/comp/dup2.c2
-rw-r--r--usr/src/lib/libast/common/comp/eaccess.c2
-rw-r--r--usr/src/lib/libast/common/comp/errno.c2
-rw-r--r--usr/src/lib/libast/common/comp/execlp.c2
-rw-r--r--usr/src/lib/libast/common/comp/execve.c2
-rw-r--r--usr/src/lib/libast/common/comp/execvp.c2
-rw-r--r--usr/src/lib/libast/common/comp/execvpe.c2
-rw-r--r--usr/src/lib/libast/common/comp/fcntl.c2
-rw-r--r--usr/src/lib/libast/common/comp/fmtmsglib.c2
-rw-r--r--usr/src/lib/libast/common/comp/fnmatch.c2
-rw-r--r--usr/src/lib/libast/common/comp/fnmatch.h2
-rw-r--r--usr/src/lib/libast/common/comp/frexp.c2
-rw-r--r--usr/src/lib/libast/common/comp/frexpl.c2
-rw-r--r--usr/src/lib/libast/common/comp/fsync.c2
-rw-r--r--usr/src/lib/libast/common/comp/ftw.c2
-rw-r--r--usr/src/lib/libast/common/comp/ftw.h2
-rw-r--r--usr/src/lib/libast/common/comp/getdate.c2
-rw-r--r--usr/src/lib/libast/common/comp/getgroups.c2
-rw-r--r--usr/src/lib/libast/common/comp/getlogin.c2
-rw-r--r--usr/src/lib/libast/common/comp/getopt.c2
-rw-r--r--usr/src/lib/libast/common/comp/getopt.h2
-rw-r--r--usr/src/lib/libast/common/comp/getoptl.c2
-rw-r--r--usr/src/lib/libast/common/comp/getpgrp.c2
-rw-r--r--usr/src/lib/libast/common/comp/getsubopt.c2
-rw-r--r--usr/src/lib/libast/common/comp/getwd.c2
-rw-r--r--usr/src/lib/libast/common/comp/gross.c2
-rw-r--r--usr/src/lib/libast/common/comp/hsearch.c2
-rw-r--r--usr/src/lib/libast/common/comp/iconv.c2
-rw-r--r--usr/src/lib/libast/common/comp/killpg.c2
-rw-r--r--usr/src/lib/libast/common/comp/libgen.h2
-rw-r--r--usr/src/lib/libast/common/comp/link.c2
-rw-r--r--usr/src/lib/libast/common/comp/localeconv.c2
-rw-r--r--usr/src/lib/libast/common/comp/lstat.c2
-rw-r--r--usr/src/lib/libast/common/comp/memccpy.c2
-rw-r--r--usr/src/lib/libast/common/comp/memchr.c2
-rw-r--r--usr/src/lib/libast/common/comp/memcmp.c2
-rw-r--r--usr/src/lib/libast/common/comp/memcpy.c2
-rw-r--r--usr/src/lib/libast/common/comp/memmove.c2
-rw-r--r--usr/src/lib/libast/common/comp/memset.c2
-rw-r--r--usr/src/lib/libast/common/comp/mkdir.c2
-rw-r--r--usr/src/lib/libast/common/comp/mkfifo.c2
-rw-r--r--usr/src/lib/libast/common/comp/mknod.c2
-rw-r--r--usr/src/lib/libast/common/comp/mktemp.c2
-rw-r--r--usr/src/lib/libast/common/comp/mktime.c2
-rw-r--r--usr/src/lib/libast/common/comp/mount.c2
-rw-r--r--usr/src/lib/libast/common/comp/nftw.c2
-rw-r--r--usr/src/lib/libast/common/comp/open.c2
-rw-r--r--usr/src/lib/libast/common/comp/openlog.c2
-rw-r--r--usr/src/lib/libast/common/comp/putenv.c2
-rw-r--r--usr/src/lib/libast/common/comp/re_comp.c2
-rw-r--r--usr/src/lib/libast/common/comp/re_comp.h2
-rw-r--r--usr/src/lib/libast/common/comp/readlink.c2
-rw-r--r--usr/src/lib/libast/common/comp/realpath.c2
-rw-r--r--usr/src/lib/libast/common/comp/regcmp.c2
-rw-r--r--usr/src/lib/libast/common/comp/regexp.c2
-rw-r--r--usr/src/lib/libast/common/comp/regexp.h2
-rw-r--r--usr/src/lib/libast/common/comp/remove.c2
-rw-r--r--usr/src/lib/libast/common/comp/rename.c2
-rw-r--r--usr/src/lib/libast/common/comp/resolvepath.c2
-rw-r--r--usr/src/lib/libast/common/comp/rmdir.c2
-rw-r--r--usr/src/lib/libast/common/comp/setenv.c2
-rw-r--r--usr/src/lib/libast/common/comp/setlocale.c243
-rw-r--r--usr/src/lib/libast/common/comp/setlogmask.c2
-rw-r--r--usr/src/lib/libast/common/comp/setpgid.c2
-rw-r--r--usr/src/lib/libast/common/comp/setsid.c2
-rw-r--r--usr/src/lib/libast/common/comp/sigunblock.c2
-rw-r--r--usr/src/lib/libast/common/comp/spawnveg.c6
-rw-r--r--usr/src/lib/libast/common/comp/statvfs.c2
-rw-r--r--usr/src/lib/libast/common/comp/strcasecmp.c2
-rw-r--r--usr/src/lib/libast/common/comp/strchr.c2
-rw-r--r--usr/src/lib/libast/common/comp/strftime.c2
-rw-r--r--usr/src/lib/libast/common/comp/strncasecmp.c2
-rw-r--r--usr/src/lib/libast/common/comp/strptime.c26
-rw-r--r--usr/src/lib/libast/common/comp/strrchr.c2
-rw-r--r--usr/src/lib/libast/common/comp/strstr.c2
-rw-r--r--usr/src/lib/libast/common/comp/strtod.c2
-rw-r--r--usr/src/lib/libast/common/comp/strtol.c2
-rw-r--r--usr/src/lib/libast/common/comp/strtold.c2
-rw-r--r--usr/src/lib/libast/common/comp/strtoll.c2
-rw-r--r--usr/src/lib/libast/common/comp/strtoul.c2
-rw-r--r--usr/src/lib/libast/common/comp/strtoull.c2
-rw-r--r--usr/src/lib/libast/common/comp/swab.c2
-rw-r--r--usr/src/lib/libast/common/comp/symlink.c2
-rw-r--r--usr/src/lib/libast/common/comp/syslog.c6
-rw-r--r--usr/src/lib/libast/common/comp/system.c2
-rw-r--r--usr/src/lib/libast/common/comp/tempnam.c2
-rw-r--r--usr/src/lib/libast/common/comp/tmpnam.c2
-rw-r--r--usr/src/lib/libast/common/comp/transition.c2
-rw-r--r--usr/src/lib/libast/common/comp/tsearch.c2
-rw-r--r--usr/src/lib/libast/common/comp/unlink.c2
-rw-r--r--usr/src/lib/libast/common/comp/unsetenv.c2
-rw-r--r--usr/src/lib/libast/common/comp/vfork.c2
-rw-r--r--usr/src/lib/libast/common/comp/waitpid.c2
-rw-r--r--usr/src/lib/libast/common/comp/wc.c2
-rw-r--r--usr/src/lib/libast/common/comp/wordexp.c2
-rw-r--r--usr/src/lib/libast/common/comp/wordexp.h2
-rw-r--r--usr/src/lib/libast/common/dir/dirlib.h2
-rw-r--r--usr/src/lib/libast/common/dir/getdents.c2
-rw-r--r--usr/src/lib/libast/common/dir/opendir.c2
-rw-r--r--usr/src/lib/libast/common/dir/readdir.c2
-rw-r--r--usr/src/lib/libast/common/dir/rewinddir.c2
-rw-r--r--usr/src/lib/libast/common/dir/seekdir.c2
-rw-r--r--usr/src/lib/libast/common/dir/telldir.c2
-rw-r--r--usr/src/lib/libast/common/disc/memfatal.c5
-rw-r--r--usr/src/lib/libast/common/disc/sfdcdio.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcdos.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcfilter.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdchdr.h2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcmore.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcprefix.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcseekable.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcslow.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcsubstr.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdctee.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfdcunion.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfkeyprintf.c2
-rw-r--r--usr/src/lib/libast/common/disc/sfstrtmp.c2
-rw-r--r--usr/src/lib/libast/common/features/align.c2
-rw-r--r--usr/src/lib/libast/common/features/botch.c2
-rw-r--r--usr/src/lib/libast/common/features/common16
-rw-r--r--usr/src/lib/libast/common/features/fcntl.c2
-rw-r--r--usr/src/lib/libast/common/features/float24
-rw-r--r--usr/src/lib/libast/common/features/lib9
-rw-r--r--usr/src/lib/libast/common/features/libpath.sh2
-rw-r--r--usr/src/lib/libast/common/features/limits.c2
-rw-r--r--usr/src/lib/libast/common/features/map.c4
-rw-r--r--usr/src/lib/libast/common/features/mode.c2
-rw-r--r--usr/src/lib/libast/common/features/param.sh2
-rw-r--r--usr/src/lib/libast/common/features/preroot.sh2
-rw-r--r--usr/src/lib/libast/common/features/sfinit.c2
-rw-r--r--usr/src/lib/libast/common/features/sig.sh2
-rw-r--r--usr/src/lib/libast/common/features/signal.c2
-rw-r--r--usr/src/lib/libast/common/features/standards32
-rw-r--r--usr/src/lib/libast/common/features/sys1
-rw-r--r--usr/src/lib/libast/common/features/tmx2
-rw-r--r--usr/src/lib/libast/common/features/uwin2
-rw-r--r--usr/src/lib/libast/common/features/vmalloc4
-rw-r--r--usr/src/lib/libast/common/hash/hashalloc.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashdump.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashfree.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashlast.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashlib.h2
-rw-r--r--usr/src/lib/libast/common/hash/hashlook.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashscan.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashsize.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashview.c2
-rw-r--r--usr/src/lib/libast/common/hash/hashwalk.c2
-rw-r--r--usr/src/lib/libast/common/hash/memhash.c2
-rw-r--r--usr/src/lib/libast/common/hash/memsum.c2
-rw-r--r--usr/src/lib/libast/common/hash/strhash.c2
-rw-r--r--usr/src/lib/libast/common/hash/strkey.c2
-rw-r--r--usr/src/lib/libast/common/hash/strsum.c2
-rw-r--r--usr/src/lib/libast/common/include/ast.h9
-rw-r--r--usr/src/lib/libast/common/include/ast_dir.h2
-rw-r--r--usr/src/lib/libast/common/include/ast_getopt.h2
-rw-r--r--usr/src/lib/libast/common/include/ast_std.h22
-rw-r--r--usr/src/lib/libast/common/include/ast_version.h4
-rw-r--r--usr/src/lib/libast/common/include/ast_windows.h2
-rw-r--r--usr/src/lib/libast/common/include/ccode.h2
-rw-r--r--usr/src/lib/libast/common/include/cdt.h2
-rw-r--r--usr/src/lib/libast/common/include/cmdarg.h2
-rw-r--r--usr/src/lib/libast/common/include/debug.h29
-rw-r--r--usr/src/lib/libast/common/include/dt.h2
-rw-r--r--usr/src/lib/libast/common/include/error.h2
-rw-r--r--usr/src/lib/libast/common/include/find.h2
-rw-r--r--usr/src/lib/libast/common/include/fnv.h2
-rw-r--r--usr/src/lib/libast/common/include/fs3d.h7
-rw-r--r--usr/src/lib/libast/common/include/fts.h21
-rw-r--r--usr/src/lib/libast/common/include/ftwalk.h8
-rw-r--r--usr/src/lib/libast/common/include/glob.h2
-rw-r--r--usr/src/lib/libast/common/include/hash.h2
-rw-r--r--usr/src/lib/libast/common/include/hashkey.h2
-rw-r--r--usr/src/lib/libast/common/include/hashpart.h2
-rw-r--r--usr/src/lib/libast/common/include/ip6.h2
-rw-r--r--usr/src/lib/libast/common/include/ls.h6
-rw-r--r--usr/src/lib/libast/common/include/magic.h2
-rw-r--r--usr/src/lib/libast/common/include/magicid.h2
-rw-r--r--usr/src/lib/libast/common/include/mc.h2
-rw-r--r--usr/src/lib/libast/common/include/mime.h2
-rw-r--r--usr/src/lib/libast/common/include/mnt.h2
-rw-r--r--usr/src/lib/libast/common/include/modecanon.h2
-rw-r--r--usr/src/lib/libast/common/include/modex.h2
-rw-r--r--usr/src/lib/libast/common/include/namval.h2
-rw-r--r--usr/src/lib/libast/common/include/option.h2
-rw-r--r--usr/src/lib/libast/common/include/proc.h2
-rw-r--r--usr/src/lib/libast/common/include/recfmt.h2
-rw-r--r--usr/src/lib/libast/common/include/regex.h4
-rw-r--r--usr/src/lib/libast/common/include/sfdisc.h2
-rw-r--r--usr/src/lib/libast/common/include/sfio.h4
-rw-r--r--usr/src/lib/libast/common/include/sfio_s.h2
-rw-r--r--usr/src/lib/libast/common/include/sfio_t.h2
-rw-r--r--usr/src/lib/libast/common/include/shcmd.h15
-rw-r--r--usr/src/lib/libast/common/include/stack.h2
-rw-r--r--usr/src/lib/libast/common/include/stak.h2
-rw-r--r--usr/src/lib/libast/common/include/stk.h2
-rw-r--r--usr/src/lib/libast/common/include/swap.h2
-rw-r--r--usr/src/lib/libast/common/include/tar.h2
-rw-r--r--usr/src/lib/libast/common/include/times.h2
-rw-r--r--usr/src/lib/libast/common/include/tm.h7
-rw-r--r--usr/src/lib/libast/common/include/tok.h2
-rw-r--r--usr/src/lib/libast/common/include/usage.h2
-rw-r--r--usr/src/lib/libast/common/include/vdb.h2
-rw-r--r--usr/src/lib/libast/common/include/vecargs.h2
-rw-r--r--usr/src/lib/libast/common/include/vmalloc.h2
-rw-r--r--usr/src/lib/libast/common/include/wait.h2
-rw-r--r--usr/src/lib/libast/common/man/ip6.385
-rw-r--r--usr/src/lib/libast/common/man/regex.3163
-rw-r--r--usr/src/lib/libast/common/man/sfio.359
-rw-r--r--usr/src/lib/libast/common/misc/astintercept.c2
-rw-r--r--usr/src/lib/libast/common/misc/cmdarg.c5
-rw-r--r--usr/src/lib/libast/common/misc/debug.c2
-rw-r--r--usr/src/lib/libast/common/misc/error.c2
-rw-r--r--usr/src/lib/libast/common/misc/errorf.c2
-rw-r--r--usr/src/lib/libast/common/misc/errormsg.c2
-rw-r--r--usr/src/lib/libast/common/misc/errorx.c2
-rw-r--r--usr/src/lib/libast/common/misc/fastfind.c2
-rw-r--r--usr/src/lib/libast/common/misc/findlib.h2
-rw-r--r--usr/src/lib/libast/common/misc/fmtrec.c2
-rw-r--r--usr/src/lib/libast/common/misc/fs3d.c24
-rw-r--r--usr/src/lib/libast/common/misc/fts.c1001
-rw-r--r--usr/src/lib/libast/common/misc/ftwalk.c2
-rw-r--r--usr/src/lib/libast/common/misc/ftwflags.c2
-rw-r--r--usr/src/lib/libast/common/misc/getcwd.c2
-rw-r--r--usr/src/lib/libast/common/misc/getenv.c71
-rw-r--r--usr/src/lib/libast/common/misc/glob.c2
-rw-r--r--usr/src/lib/libast/common/misc/intercepts.h2
-rw-r--r--usr/src/lib/libast/common/misc/liberror.c2
-rw-r--r--usr/src/lib/libast/common/misc/libevent.c2
-rw-r--r--usr/src/lib/libast/common/misc/magic.c2
-rw-r--r--usr/src/lib/libast/common/misc/mime.c2
-rw-r--r--usr/src/lib/libast/common/misc/mimelib.h2
-rw-r--r--usr/src/lib/libast/common/misc/mimetype.c2
-rw-r--r--usr/src/lib/libast/common/misc/optctx.c2
-rw-r--r--usr/src/lib/libast/common/misc/optesc.c2
-rw-r--r--usr/src/lib/libast/common/misc/optget.c61
-rw-r--r--usr/src/lib/libast/common/misc/optjoin.c2
-rw-r--r--usr/src/lib/libast/common/misc/optlib.h6
-rw-r--r--usr/src/lib/libast/common/misc/procclose.c2
-rw-r--r--usr/src/lib/libast/common/misc/procfree.c2
-rw-r--r--usr/src/lib/libast/common/misc/proclib.h2
-rw-r--r--usr/src/lib/libast/common/misc/procopen.c2
-rw-r--r--usr/src/lib/libast/common/misc/procrun.c2
-rw-r--r--usr/src/lib/libast/common/misc/recfmt.c2
-rw-r--r--usr/src/lib/libast/common/misc/reclen.c2
-rw-r--r--usr/src/lib/libast/common/misc/recstr.c4
-rw-r--r--usr/src/lib/libast/common/misc/setenviron.c2
-rw-r--r--usr/src/lib/libast/common/misc/sigcrit.c2
-rw-r--r--usr/src/lib/libast/common/misc/sigdata.c2
-rw-r--r--usr/src/lib/libast/common/misc/signal.c2
-rw-r--r--usr/src/lib/libast/common/misc/stack.c2
-rw-r--r--usr/src/lib/libast/common/misc/state.c2
-rw-r--r--usr/src/lib/libast/common/misc/stk.c2
-rw-r--r--usr/src/lib/libast/common/misc/systrace.c2
-rw-r--r--usr/src/lib/libast/common/misc/translate.c4
-rw-r--r--usr/src/lib/libast/common/misc/univdata.c2
-rw-r--r--usr/src/lib/libast/common/misc/univlib.h2
-rw-r--r--usr/src/lib/libast/common/obsolete/spawn.c2
-rw-r--r--usr/src/lib/libast/common/path/pathaccess.c2
-rw-r--r--usr/src/lib/libast/common/path/pathbin.c2
-rw-r--r--usr/src/lib/libast/common/path/pathcanon.c2
-rw-r--r--usr/src/lib/libast/common/path/pathcat.c2
-rw-r--r--usr/src/lib/libast/common/path/pathcd.c2
-rw-r--r--usr/src/lib/libast/common/path/pathcheck.c2
-rw-r--r--usr/src/lib/libast/common/path/pathexists.c2
-rw-r--r--usr/src/lib/libast/common/path/pathfind.c2
-rw-r--r--usr/src/lib/libast/common/path/pathgetlink.c2
-rw-r--r--usr/src/lib/libast/common/path/pathkey.c4
-rw-r--r--usr/src/lib/libast/common/path/pathnative.c2
-rw-r--r--usr/src/lib/libast/common/path/pathpath.c2
-rw-r--r--usr/src/lib/libast/common/path/pathposix.c2
-rw-r--r--usr/src/lib/libast/common/path/pathprobe.c2
-rw-r--r--usr/src/lib/libast/common/path/pathprog.c119
-rw-r--r--usr/src/lib/libast/common/path/pathrepl.c2
-rw-r--r--usr/src/lib/libast/common/path/pathsetlink.c2
-rw-r--r--usr/src/lib/libast/common/path/pathshell.c2
-rw-r--r--usr/src/lib/libast/common/path/pathstat.c2
-rw-r--r--usr/src/lib/libast/common/path/pathtemp.c2
-rw-r--r--usr/src/lib/libast/common/path/pathtmp.c2
-rw-r--r--usr/src/lib/libast/common/port/astconf.c160
-rw-r--r--usr/src/lib/libast/common/port/astcopy.c2
-rw-r--r--usr/src/lib/libast/common/port/astdynamic.c2
-rw-r--r--usr/src/lib/libast/common/port/astlicense.c6
-rw-r--r--usr/src/lib/libast/common/port/astmath.c2
-rw-r--r--usr/src/lib/libast/common/port/astquery.c2
-rw-r--r--usr/src/lib/libast/common/port/aststatic.c2
-rw-r--r--usr/src/lib/libast/common/port/astwinsize.c2
-rw-r--r--usr/src/lib/libast/common/port/iblocks.c2
-rw-r--r--usr/src/lib/libast/common/port/lc.c5
-rw-r--r--usr/src/lib/libast/common/port/lcgen.c11
-rw-r--r--usr/src/lib/libast/common/port/lclang.h2
-rw-r--r--usr/src/lib/libast/common/port/lclib.h2
-rw-r--r--usr/src/lib/libast/common/port/mc.c2
-rw-r--r--usr/src/lib/libast/common/port/mnt.c2
-rw-r--r--usr/src/lib/libast/common/port/touch.c2
-rw-r--r--usr/src/lib/libast/common/preroot/getpreroot.c2
-rw-r--r--usr/src/lib/libast/common/preroot/ispreroot.c2
-rw-r--r--usr/src/lib/libast/common/preroot/realopen.c2
-rw-r--r--usr/src/lib/libast/common/preroot/setpreroot.c2
-rw-r--r--usr/src/lib/libast/common/regex/regalloc.c2
-rw-r--r--usr/src/lib/libast/common/regex/regcache.c2
-rw-r--r--usr/src/lib/libast/common/regex/regclass.c2
-rw-r--r--usr/src/lib/libast/common/regex/regcoll.c2
-rw-r--r--usr/src/lib/libast/common/regex/regcomp.c18
-rw-r--r--usr/src/lib/libast/common/regex/regdecomp.c2
-rw-r--r--usr/src/lib/libast/common/regex/regerror.c2
-rw-r--r--usr/src/lib/libast/common/regex/regexec.c2
-rw-r--r--usr/src/lib/libast/common/regex/regfatal.c2
-rw-r--r--usr/src/lib/libast/common/regex/reginit.c2
-rw-r--r--usr/src/lib/libast/common/regex/reglib.h6
-rw-r--r--usr/src/lib/libast/common/regex/regnexec.c12
-rw-r--r--usr/src/lib/libast/common/regex/regrecord.c2
-rw-r--r--usr/src/lib/libast/common/regex/regrexec.c2
-rw-r--r--usr/src/lib/libast/common/regex/regstat.c2
-rw-r--r--usr/src/lib/libast/common/regex/regsub.c2
-rw-r--r--usr/src/lib/libast/common/regex/regsubcomp.c2
-rw-r--r--usr/src/lib/libast/common/regex/regsubexec.c2
-rw-r--r--usr/src/lib/libast/common/regex/ucs_names.h2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfclrerr.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfdlen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfeof.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sferror.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sffileno.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfgetc.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfgetl.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfgetl2.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfgetu.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfgetu2.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfllen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfopen.c45
-rw-r--r--usr/src/lib/libast/common/sfio/_sfputc.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfputd.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfputl.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfputm.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfputu.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfslen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfstacked.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfulen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/_sfvalue.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfclose.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfclrlock.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfcvt.c47
-rw-r--r--usr/src/lib/libast/common/sfio/sfdisc.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfdlen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfecvt.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfexcept.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfextern.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sffcvt.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sffilbuf.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfflsbuf.c24
-rw-r--r--usr/src/lib/libast/common/sfio/sfgetd.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfgetl.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfgetm.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfgetr.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfgetu.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfhdr.h5
-rw-r--r--usr/src/lib/libast/common/sfio/sfllen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfmode.c5
-rw-r--r--usr/src/lib/libast/common/sfio/sfmove.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfmutex.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfnew.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfnotify.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfnputc.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfopen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfpeek.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfpkrd.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfpoll.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfpool.c25
-rw-r--r--usr/src/lib/libast/common/sfio/sfpopen.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfprintf.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfprints.c4
-rw-r--r--usr/src/lib/libast/common/sfio/sfpurge.c6
-rw-r--r--usr/src/lib/libast/common/sfio/sfputd.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfputl.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfputm.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfputr.c5
-rw-r--r--usr/src/lib/libast/common/sfio/sfputu.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfraise.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfrd.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfread.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfreserve.c8
-rw-r--r--usr/src/lib/libast/common/sfio/sfresize.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfscanf.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfseek.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfset.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfsetbuf.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfsetfd.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfsize.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfsk.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfstack.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfstrtod.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfstrtof.h9
-rw-r--r--usr/src/lib/libast/common/sfio/sfswap.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfsync.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sftable.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sftell.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sftmp.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfungetc.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfvprintf.c8
-rw-r--r--usr/src/lib/libast/common/sfio/sfvscanf.c4
-rw-r--r--usr/src/lib/libast/common/sfio/sfwalk.c67
-rw-r--r--usr/src/lib/libast/common/sfio/sfwr.c2
-rw-r--r--usr/src/lib/libast/common/sfio/sfwrite.c2
-rw-r--r--usr/src/lib/libast/common/sfio/vthread.h2
-rw-r--r--usr/src/lib/libast/common/std/bytesex.h2
-rw-r--r--usr/src/lib/libast/common/std/dirent.h2
-rw-r--r--usr/src/lib/libast/common/std/endian.h2
-rw-r--r--usr/src/lib/libast/common/std/iconv.h2
-rw-r--r--usr/src/lib/libast/common/std/nl_types.h2
-rw-r--r--usr/src/lib/libast/common/std/stdio.h2
-rw-r--r--usr/src/lib/libast/common/std/wchar.h2
-rw-r--r--usr/src/lib/libast/common/stdio/_doprnt.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_doscan.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_filbuf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_flsbuf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdfun.c6
-rw-r--r--usr/src/lib/libast/common/stdio/_stdopen.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdsprnt.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdvbuf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdvsnprnt.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdvsprnt.c2
-rw-r--r--usr/src/lib/libast/common/stdio/_stdvsscn.c2
-rw-r--r--usr/src/lib/libast/common/stdio/asprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/clearerr.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fclose.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fcloseall.c57
-rw-r--r--usr/src/lib/libast/common/stdio/fdopen.c2
-rw-r--r--usr/src/lib/libast/common/stdio/feof.c2
-rw-r--r--usr/src/lib/libast/common/stdio/ferror.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fflush.c8
-rw-r--r--usr/src/lib/libast/common/stdio/fgetc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fgetpos.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fgets.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fgetwc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fgetws.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fileno.c2
-rw-r--r--usr/src/lib/libast/common/stdio/flockfile.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fmemopen.c (renamed from usr/src/lib/libast/common/stdio/stdio_gnu.c)48
-rw-r--r--usr/src/lib/libast/common/stdio/fopen.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fpurge.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fputc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fputs.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fputwc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fputws.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fread.c2
-rw-r--r--usr/src/lib/libast/common/stdio/freopen.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fseek.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fseeko.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fsetpos.c2
-rw-r--r--usr/src/lib/libast/common/stdio/ftell.c2
-rw-r--r--usr/src/lib/libast/common/stdio/ftello.c2
-rw-r--r--usr/src/lib/libast/common/stdio/ftrylockfile.c2
-rw-r--r--usr/src/lib/libast/common/stdio/funlockfile.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fwide.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fwprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fwrite.c2
-rw-r--r--usr/src/lib/libast/common/stdio/fwscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/getc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/getchar.c2
-rw-r--r--usr/src/lib/libast/common/stdio/getdelim.c96
-rw-r--r--usr/src/lib/libast/common/stdio/getline.c36
-rw-r--r--usr/src/lib/libast/common/stdio/getw.c2
-rw-r--r--usr/src/lib/libast/common/stdio/getwc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/getwchar.c2
-rw-r--r--usr/src/lib/libast/common/stdio/pclose.c2
-rw-r--r--usr/src/lib/libast/common/stdio/popen.c2
-rw-r--r--usr/src/lib/libast/common/stdio/printf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/putc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/putchar.c2
-rw-r--r--usr/src/lib/libast/common/stdio/puts.c2
-rw-r--r--usr/src/lib/libast/common/stdio/putw.c2
-rw-r--r--usr/src/lib/libast/common/stdio/putwc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/putwchar.c2
-rw-r--r--usr/src/lib/libast/common/stdio/rewind.c2
-rw-r--r--usr/src/lib/libast/common/stdio/scanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/setbuf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/setbuffer.c2
-rw-r--r--usr/src/lib/libast/common/stdio/setlinebuf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/setvbuf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/snprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/sprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/sscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/stdhdr.h2
-rw-r--r--usr/src/lib/libast/common/stdio/stdio_c99.c2
-rw-r--r--usr/src/lib/libast/common/stdio/swprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/swscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/tmpfile.c2
-rw-r--r--usr/src/lib/libast/common/stdio/ungetc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/ungetwc.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vasprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vfprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vfscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vfwprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vfwscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vsnprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vsprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vsscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vswprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vswscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vwprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/vwscanf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/wprintf.c2
-rw-r--r--usr/src/lib/libast/common/stdio/wscanf.c2
-rw-r--r--usr/src/lib/libast/common/string/base64.c2
-rw-r--r--usr/src/lib/libast/common/string/ccmap.c2
-rw-r--r--usr/src/lib/libast/common/string/ccmapid.c2
-rw-r--r--usr/src/lib/libast/common/string/ccnative.c2
-rw-r--r--usr/src/lib/libast/common/string/chresc.c2
-rw-r--r--usr/src/lib/libast/common/string/chrtoi.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtbase.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtbuf.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtclock.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtdev.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtelapsed.c2
-rw-r--r--usr/src/lib/libast/common/string/fmterror.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtesc.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtfmt.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtfs.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtgid.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtident.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtip4.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtip6.c7
-rw-r--r--usr/src/lib/libast/common/string/fmtls.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtmatch.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtmode.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtnum.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtperm.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtre.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtscale.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtsignal.c2
-rw-r--r--usr/src/lib/libast/common/string/fmttime.c2
-rw-r--r--usr/src/lib/libast/common/string/fmttmx.c2
-rw-r--r--usr/src/lib/libast/common/string/fmttv.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtuid.c2
-rw-r--r--usr/src/lib/libast/common/string/fmtversion.c2
-rw-r--r--usr/src/lib/libast/common/string/memdup.c2
-rw-r--r--usr/src/lib/libast/common/string/modedata.c2
-rw-r--r--usr/src/lib/libast/common/string/modei.c2
-rw-r--r--usr/src/lib/libast/common/string/modelib.h2
-rw-r--r--usr/src/lib/libast/common/string/modex.c2
-rw-r--r--usr/src/lib/libast/common/string/stracmp.c2
-rw-r--r--usr/src/lib/libast/common/string/strcopy.c2
-rw-r--r--usr/src/lib/libast/common/string/strdup.c2
-rw-r--r--usr/src/lib/libast/common/string/strelapsed.c2
-rw-r--r--usr/src/lib/libast/common/string/strerror.c2
-rw-r--r--usr/src/lib/libast/common/string/stresc.c2
-rw-r--r--usr/src/lib/libast/common/string/streval.c2
-rw-r--r--usr/src/lib/libast/common/string/strexpr.c2
-rw-r--r--usr/src/lib/libast/common/string/strgid.c2
-rw-r--r--usr/src/lib/libast/common/string/strlcat.c15
-rw-r--r--usr/src/lib/libast/common/string/strlcpy.c2
-rw-r--r--usr/src/lib/libast/common/string/strlook.c2
-rw-r--r--usr/src/lib/libast/common/string/strmatch.c2
-rw-r--r--usr/src/lib/libast/common/string/strmode.c2
-rw-r--r--usr/src/lib/libast/common/string/strnacmp.c2
-rw-r--r--usr/src/lib/libast/common/string/strncopy.c2
-rw-r--r--usr/src/lib/libast/common/string/strnpcmp.c51
-rw-r--r--usr/src/lib/libast/common/string/strntod.c2
-rw-r--r--usr/src/lib/libast/common/string/strntol.c2
-rw-r--r--usr/src/lib/libast/common/string/strntold.c2
-rw-r--r--usr/src/lib/libast/common/string/strntoll.c2
-rw-r--r--usr/src/lib/libast/common/string/strnton.c2
-rw-r--r--usr/src/lib/libast/common/string/strntonll.c2
-rw-r--r--usr/src/lib/libast/common/string/strntoul.c2
-rw-r--r--usr/src/lib/libast/common/string/strntoull.c2
-rw-r--r--usr/src/lib/libast/common/string/strnvcmp.c86
-rw-r--r--usr/src/lib/libast/common/string/stropt.c2
-rw-r--r--usr/src/lib/libast/common/string/strpcmp.c44
-rw-r--r--usr/src/lib/libast/common/string/strperm.c2
-rw-r--r--usr/src/lib/libast/common/string/strpsearch.c2
-rw-r--r--usr/src/lib/libast/common/string/strsearch.c2
-rw-r--r--usr/src/lib/libast/common/string/strsort.c2
-rw-r--r--usr/src/lib/libast/common/string/strtape.c2
-rw-r--r--usr/src/lib/libast/common/string/strtoi.h6
-rw-r--r--usr/src/lib/libast/common/string/strtoip4.c2
-rw-r--r--usr/src/lib/libast/common/string/strtoip6.c2
-rw-r--r--usr/src/lib/libast/common/string/strton.c2
-rw-r--r--usr/src/lib/libast/common/string/strtonll.c2
-rw-r--r--usr/src/lib/libast/common/string/struid.c2
-rw-r--r--usr/src/lib/libast/common/string/struniq.c2
-rw-r--r--usr/src/lib/libast/common/string/strvcmp.c74
-rw-r--r--usr/src/lib/libast/common/string/swapget.c2
-rw-r--r--usr/src/lib/libast/common/string/swapmem.c2
-rw-r--r--usr/src/lib/libast/common/string/swapop.c2
-rw-r--r--usr/src/lib/libast/common/string/swapput.c2
-rw-r--r--usr/src/lib/libast/common/string/tok.c2
-rw-r--r--usr/src/lib/libast/common/string/tokline.c2
-rw-r--r--usr/src/lib/libast/common/string/tokscan.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmdata.c63
-rw-r--r--usr/src/lib/libast/common/tm/tmdate.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmequiv.c4
-rw-r--r--usr/src/lib/libast/common/tm/tmfix.c16
-rw-r--r--usr/src/lib/libast/common/tm/tmfmt.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmform.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmgoff.c2
-rw-r--r--usr/src/lib/libast/common/tm/tminit.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmleap.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmlex.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmlocale.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmmake.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmpoff.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmscan.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmsleep.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmtime.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmtype.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmweek.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmword.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmxdate.c1055
-rw-r--r--usr/src/lib/libast/common/tm/tmxduration.c81
-rw-r--r--usr/src/lib/libast/common/tm/tmxfmt.c236
-rw-r--r--usr/src/lib/libast/common/tm/tmxgettime.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmxleap.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmxmake.c84
-rw-r--r--usr/src/lib/libast/common/tm/tmxscan.c27
-rw-r--r--usr/src/lib/libast/common/tm/tmxsettime.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmxsleep.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmxtime.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmxtouch.c2
-rw-r--r--usr/src/lib/libast/common/tm/tmzone.c2
-rw-r--r--usr/src/lib/libast/common/tm/tvcmp.c2
-rw-r--r--usr/src/lib/libast/common/tm/tvgettime.c2
-rw-r--r--usr/src/lib/libast/common/tm/tvsettime.c2
-rw-r--r--usr/src/lib/libast/common/tm/tvsleep.c2
-rw-r--r--usr/src/lib/libast/common/tm/tvtouch.c2
-rw-r--r--usr/src/lib/libast/common/uwin/a64l.c2
-rw-r--r--usr/src/lib/libast/common/uwin/cbrt.c2
-rw-r--r--usr/src/lib/libast/common/uwin/err.c2
-rw-r--r--usr/src/lib/libast/common/uwin/getpass.c2
-rw-r--r--usr/src/lib/libast/common/uwin/rand48.c2
-rw-r--r--usr/src/lib/libast/common/uwin/rint.c2
-rw-r--r--usr/src/lib/libast/common/vec/vecargs.c2
-rw-r--r--usr/src/lib/libast/common/vec/vecfile.c2
-rw-r--r--usr/src/lib/libast/common/vec/vecfree.c2
-rw-r--r--usr/src/lib/libast/common/vec/vecload.c2
-rw-r--r--usr/src/lib/libast/common/vec/vecstring.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/malloc.c24
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmbest.c84
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmclear.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmclose.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmdcheap.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmdebug.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmdisc.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmexit.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmgetmem.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmhdr.h12
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmlast.c3
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmmopen.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmopen.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmpool.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmprivate.c6
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmprofile.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmregion.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmsegment.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmset.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmstat.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmstrdup.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmtrace.c2
-rw-r--r--usr/src/lib/libast/common/vmalloc/vmwalk.c2
691 files changed, 4146 insertions, 1951 deletions
diff --git a/usr/src/lib/libast/common/RELEASE b/usr/src/lib/libast/common/RELEASE
index 75937141cc..67be1c3484 100644
--- a/usr/src/lib/libast/common/RELEASE
+++ b/usr/src/lib/libast/common/RELEASE
@@ -1,3 +1,62 @@
+09-10-05 _sfopen.c: add but ignore 'F' flags for stdio compatibility
+09-09-28 fts.h,ftwalk.h,fts.c: promote { namelen pathlen level } to (s)size_t
+09-09-28 locales: add AST_LC_LANG for $LANG
+09-09-28 setlocale.c: fix logic for dynamic { LANG LC_ALL LC_* } changes
+09-09-17 include/sfio.h,sfio/sfwalk.c: add sfwalk()
+09-09-09 sfio/sfputr.c: add SIGPIPE hang fix
+09-08-24 sfio/sfreserve.c: fix SF_UNBOUND logic with pushed streams
+09-08-18 include/ast_std.h,ast.h: add ast.mb_sync to sync mbchar() after error
+09-08-17 comp/setlocale.c: add AST_LC_utf8 and { utf8_mbtowc() utf8_mblen() }
+09-08-11 comp/setlocale.c: treat "en"/"en_US" AST_LC_MESSAGES as "C"/"POSIX"
+09-08-10 vmalloc/vmhdr.h: add user-defined _AST_PAGESIZE and computed VMHEAPINCR
+09-08-09 comp/conf.tab: add NPROCESSORS_MAX
+09-07-29 astlicense.c: fix first name=value logic error
+09-07-22 string/fmtip6.c: don't drop trailing 0 in 44::1:0:0
+09-06-30 port/astconf.c: standard PATH_RESOLVE is "physical" (not "metaphysical")
+09-06-19 vmalloc: sync with kpv
+09-06-19 include/shcmd.h: add sh_context(p) cast
+09-06-11 misc/magic.tab: differentiate pc 386 32/64 bit dll/exe/obj
+09-06-06 port/astconf.c: fix look->name null pointer reference
+09-06-05 port/astconf.c: fix 'UNIVERSE = value' synthesize logic
+09-05-25 tm/tmxduration.c: add
+09-05-08 comp/syslog.c: add _UWIN /var/log/syslog preference
+09-05-01 comp/setlocale.c: fix _UWIN intercepts to return NiL on unknown locales
+09-04-27 sfio/sfpool.c: fix bug that did not return pool on delete
+09-04-22 include/regex.h,regex/regcomp.c: add REG_REGEXP <regexp.h> compatibility
+09-04-15 tm/tmxdate.c: handle "4th thursday in november"
+09-03-31 string/strvcmp.c,string/strnvcmp.c: add version strcmp(3)
+09-03-31 string/strpcmp.c,string/strnpcmp.c: add path prefix strcmp(3)
+09-03-29 misc/optget.c: clean up num = number casts
+09-03-04 tm/tmxmake.c: add tmxtm() with zone override
+09-03-03 tm/tmxfmt.c: add %(...)<c>, specifically %(...)z for output zone
+09-02-22 tm/tmxdate.c: add iso P... durations
+09-02-02 path/pathprog.c: add
+09-02-02 misc/opthdr.h,optget.c: fix flags mixup, handle old '-' as option
+09-02-02 sfio/sfprints.c: fix sfvaprints() return value to not count trailing '\0'
+09-02-02 misc/cmdarg.c: handle !defined(ARG_MAX)
+09-02-02 port/astconf.c: fix UNIVERSE overwrite of null[] value!
+09-01-31 features/sys: drop header sys/localedef.h
+09-01-28 include/fs3d.h,misc/fs3d.c: mount() => fs3d_mount() for diff std prototypes
+09-01-14 misc/fts_open.c: delay top list reorder until first fts_read()
+09-01-14 include/ls.h: LS_W_INUMBER => 9 to accomodate large st_ino
+09-01-14 misc/optget.c: expand STYLE_usage input text
+09-01-09 features/uwin,stdio/_stdfun.c: iffe for _p__iob and __p__iob
+09-01-09 misc/magic.tab: add ISO filesystem image entries
+09-01-07 string/strtoi.c: strtol() etc. do not consume [lLuU] suffix -- thanks jkf
+09-01-07 sfio/sfstrtof.h: strtod() etc. do not consume [fFlL] suffix -- thanks jkf
+09-01-05 string/strlcat.c: fix logic to match docs (not that easy)
+08-12-30 tm/tmxdate.c,include/tm.h: add TM_WORK { "workday" "working" "work" }
+08-12-28 sfio/sfcvt.c: fix 'a' format rounding
+08-12-21 tm/tmdata.c: add 2008-12-31+23:59:60-0000 leap second event
+08-12-19 tm/tmxdate.c: check for dates near the epoch rolling back to the future
+08-12-19 tm/tmxfmt.c: change %s for now==0 to be the epoch
+08-12-07 include/ast_std.h,misc/getenv.c: no _ast_getenv for uwin ast54 compatibility
+08-12-07 tm/tmxfmt.c: add %[_][EO]K for [space pad] [full|long] iso
+08-12-07 sfio/sfvscanf.c: fix ok[] short by one allocation
+08-12-07 comp/setlocale.c: fix off by one composite initialition loop test
+08-12-07 path/pathkey.c: fix off by one loop test
+08-12-04 vmalloc/vmbest.c: catch sbrk() wraparound
+08-12-04 comp/spawnveg.c: clean up attrs on failure too
08-11-04 regex/regcomp.c: fix locale [!-...] and [^-...] re-initialization
08-11-04 stdio: add flockfile.c ftrylockfile.c funlockfile.c
08-10-24 port/astconf.c: handle multiple/trailing '/' in universe initialization
diff --git a/usr/src/lib/libast/common/cdt/dtclose.c b/usr/src/lib/libast/common/cdt/dtclose.c
index 174f49e771..e5cc3fbfcd 100644
--- a/usr/src/lib/libast/common/cdt/dtclose.c
+++ b/usr/src/lib/libast/common/cdt/dtclose.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtdisc.c b/usr/src/lib/libast/common/cdt/dtdisc.c
index 1d29cfde96..453977bf10 100644
--- a/usr/src/lib/libast/common/cdt/dtdisc.c
+++ b/usr/src/lib/libast/common/cdt/dtdisc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtextract.c b/usr/src/lib/libast/common/cdt/dtextract.c
index 7e943d4432..2176713289 100644
--- a/usr/src/lib/libast/common/cdt/dtextract.c
+++ b/usr/src/lib/libast/common/cdt/dtextract.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtflatten.c b/usr/src/lib/libast/common/cdt/dtflatten.c
index 6224ee7bb4..cac5308713 100644
--- a/usr/src/lib/libast/common/cdt/dtflatten.c
+++ b/usr/src/lib/libast/common/cdt/dtflatten.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dthash.c b/usr/src/lib/libast/common/cdt/dthash.c
index d9dcbdcdd0..f5f2cdcaf2 100644
--- a/usr/src/lib/libast/common/cdt/dthash.c
+++ b/usr/src/lib/libast/common/cdt/dthash.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dthdr.h b/usr/src/lib/libast/common/cdt/dthdr.h
index 1deff63b5c..acb9d64c2f 100644
--- a/usr/src/lib/libast/common/cdt/dthdr.h
+++ b/usr/src/lib/libast/common/cdt/dthdr.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtlist.c b/usr/src/lib/libast/common/cdt/dtlist.c
index abdfd5ac87..3d37f7bfbb 100644
--- a/usr/src/lib/libast/common/cdt/dtlist.c
+++ b/usr/src/lib/libast/common/cdt/dtlist.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtmethod.c b/usr/src/lib/libast/common/cdt/dtmethod.c
index de1d575854..594831bcaf 100644
--- a/usr/src/lib/libast/common/cdt/dtmethod.c
+++ b/usr/src/lib/libast/common/cdt/dtmethod.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtnew.c b/usr/src/lib/libast/common/cdt/dtnew.c
index 7900e9dca9..312631050c 100644
--- a/usr/src/lib/libast/common/cdt/dtnew.c
+++ b/usr/src/lib/libast/common/cdt/dtnew.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtopen.c b/usr/src/lib/libast/common/cdt/dtopen.c
index 5db01152ec..62d16d40a1 100644
--- a/usr/src/lib/libast/common/cdt/dtopen.c
+++ b/usr/src/lib/libast/common/cdt/dtopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtrenew.c b/usr/src/lib/libast/common/cdt/dtrenew.c
index 7d5fcf3b25..521688bcf1 100644
--- a/usr/src/lib/libast/common/cdt/dtrenew.c
+++ b/usr/src/lib/libast/common/cdt/dtrenew.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtrestore.c b/usr/src/lib/libast/common/cdt/dtrestore.c
index a5fea8f443..610382b4a5 100644
--- a/usr/src/lib/libast/common/cdt/dtrestore.c
+++ b/usr/src/lib/libast/common/cdt/dtrestore.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtsize.c b/usr/src/lib/libast/common/cdt/dtsize.c
index 0e96feabf3..21b4d74bd7 100644
--- a/usr/src/lib/libast/common/cdt/dtsize.c
+++ b/usr/src/lib/libast/common/cdt/dtsize.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtstat.c b/usr/src/lib/libast/common/cdt/dtstat.c
index 42c2bc3692..eda7509b85 100644
--- a/usr/src/lib/libast/common/cdt/dtstat.c
+++ b/usr/src/lib/libast/common/cdt/dtstat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtstrhash.c b/usr/src/lib/libast/common/cdt/dtstrhash.c
index 6a6330bb0c..60701f8d72 100644
--- a/usr/src/lib/libast/common/cdt/dtstrhash.c
+++ b/usr/src/lib/libast/common/cdt/dtstrhash.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dttree.c b/usr/src/lib/libast/common/cdt/dttree.c
index 413008b51c..0c7ca3f793 100644
--- a/usr/src/lib/libast/common/cdt/dttree.c
+++ b/usr/src/lib/libast/common/cdt/dttree.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dttreeset.c b/usr/src/lib/libast/common/cdt/dttreeset.c
index e3187b9e42..0975f92ce8 100644
--- a/usr/src/lib/libast/common/cdt/dttreeset.c
+++ b/usr/src/lib/libast/common/cdt/dttreeset.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtview.c b/usr/src/lib/libast/common/cdt/dtview.c
index 5977d07170..d7f77e32c1 100644
--- a/usr/src/lib/libast/common/cdt/dtview.c
+++ b/usr/src/lib/libast/common/cdt/dtview.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/cdt/dtwalk.c b/usr/src/lib/libast/common/cdt/dtwalk.c
index 03a25f829a..4c456ff227 100644
--- a/usr/src/lib/libast/common/cdt/dtwalk.c
+++ b/usr/src/lib/libast/common/cdt/dtwalk.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/atexit.c b/usr/src/lib/libast/common/comp/atexit.c
index e1ad5cba32..ba814e84f9 100644
--- a/usr/src/lib/libast/common/comp/atexit.c
+++ b/usr/src/lib/libast/common/comp/atexit.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/basename.c b/usr/src/lib/libast/common/comp/basename.c
index 50b6987765..7b5c87273a 100644
--- a/usr/src/lib/libast/common/comp/basename.c
+++ b/usr/src/lib/libast/common/comp/basename.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/catopen.c b/usr/src/lib/libast/common/comp/catopen.c
index b95b53f0c5..5039f1280b 100644
--- a/usr/src/lib/libast/common/comp/catopen.c
+++ b/usr/src/lib/libast/common/comp/catopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/closelog.c b/usr/src/lib/libast/common/comp/closelog.c
index f9c97e5595..8d1c0ee3f4 100644
--- a/usr/src/lib/libast/common/comp/closelog.c
+++ b/usr/src/lib/libast/common/comp/closelog.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/conf.sh b/usr/src/lib/libast/common/comp/conf.sh
index 115faeb7fd..0e5dcca89d 100644
--- a/usr/src/lib/libast/common/comp/conf.sh
+++ b/usr/src/lib/libast/common/comp/conf.sh
@@ -1,7 +1,7 @@
########################################################################
# #
# This software is part of the ast package #
-# Copyright (c) 1985-2008 AT&T Intellectual Property #
+# Copyright (c) 1985-2009 AT&T Intellectual Property #
# and is licensed under the #
# Common Public License, Version 1.0 #
# by AT&T Intellectual Property #
diff --git a/usr/src/lib/libast/common/comp/conf.tab b/usr/src/lib/libast/common/comp/conf.tab
index 36200e6a11..d141d603bd 100644
--- a/usr/src/lib/libast/common/comp/conf.tab
+++ b/usr/src/lib/libast/common/comp/conf.tab
@@ -305,6 +305,7 @@ NL_SPECMAX C QQ 1 L
NL_TEXTMAX XOPEN XX 1 L LINE_MAX
NO_TRUNC POSIX PC 1 FUW
NPROCESSORS_CONF SVID SC 1 0
+NPROCESSORS_MAX SVID SC 1 0
NPROCESSORS_ONLN SVID SC 1 0
NPROC_CONF C QQ 1 L
NPROC_ONLN C QQ 1 L
diff --git a/usr/src/lib/libast/common/comp/creat64.c b/usr/src/lib/libast/common/comp/creat64.c
index 5a34f18cde..2217f2886c 100644
--- a/usr/src/lib/libast/common/comp/creat64.c
+++ b/usr/src/lib/libast/common/comp/creat64.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/dirname.c b/usr/src/lib/libast/common/comp/dirname.c
index df97ae4485..95248e13a7 100644
--- a/usr/src/lib/libast/common/comp/dirname.c
+++ b/usr/src/lib/libast/common/comp/dirname.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/dup2.c b/usr/src/lib/libast/common/comp/dup2.c
index ad06e845c5..2a7f9ce740 100644
--- a/usr/src/lib/libast/common/comp/dup2.c
+++ b/usr/src/lib/libast/common/comp/dup2.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/eaccess.c b/usr/src/lib/libast/common/comp/eaccess.c
index 80abf8d033..f69376b019 100644
--- a/usr/src/lib/libast/common/comp/eaccess.c
+++ b/usr/src/lib/libast/common/comp/eaccess.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/errno.c b/usr/src/lib/libast/common/comp/errno.c
index 650e3ae5eb..db8a97d4df 100644
--- a/usr/src/lib/libast/common/comp/errno.c
+++ b/usr/src/lib/libast/common/comp/errno.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/execlp.c b/usr/src/lib/libast/common/comp/execlp.c
index dee7e9efee..85f6c7a5d5 100644
--- a/usr/src/lib/libast/common/comp/execlp.c
+++ b/usr/src/lib/libast/common/comp/execlp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/execve.c b/usr/src/lib/libast/common/comp/execve.c
index 5aeed0a89b..58bb970771 100644
--- a/usr/src/lib/libast/common/comp/execve.c
+++ b/usr/src/lib/libast/common/comp/execve.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/execvp.c b/usr/src/lib/libast/common/comp/execvp.c
index c4cd302fb7..e60c9b3b97 100644
--- a/usr/src/lib/libast/common/comp/execvp.c
+++ b/usr/src/lib/libast/common/comp/execvp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/execvpe.c b/usr/src/lib/libast/common/comp/execvpe.c
index 7d5104f688..9ac075dc47 100644
--- a/usr/src/lib/libast/common/comp/execvpe.c
+++ b/usr/src/lib/libast/common/comp/execvpe.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/fcntl.c b/usr/src/lib/libast/common/comp/fcntl.c
index ed8ca3b0e0..88a63babaa 100644
--- a/usr/src/lib/libast/common/comp/fcntl.c
+++ b/usr/src/lib/libast/common/comp/fcntl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/fmtmsglib.c b/usr/src/lib/libast/common/comp/fmtmsglib.c
index ad42438a05..04ef94674c 100644
--- a/usr/src/lib/libast/common/comp/fmtmsglib.c
+++ b/usr/src/lib/libast/common/comp/fmtmsglib.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/fnmatch.c b/usr/src/lib/libast/common/comp/fnmatch.c
index ebee4f455f..e893616943 100644
--- a/usr/src/lib/libast/common/comp/fnmatch.c
+++ b/usr/src/lib/libast/common/comp/fnmatch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/fnmatch.h b/usr/src/lib/libast/common/comp/fnmatch.h
index a4d4296ab5..6b60659ce9 100644
--- a/usr/src/lib/libast/common/comp/fnmatch.h
+++ b/usr/src/lib/libast/common/comp/fnmatch.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/frexp.c b/usr/src/lib/libast/common/comp/frexp.c
index eabb2d5702..7408dfed1f 100644
--- a/usr/src/lib/libast/common/comp/frexp.c
+++ b/usr/src/lib/libast/common/comp/frexp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/frexpl.c b/usr/src/lib/libast/common/comp/frexpl.c
index 7b5c160d2a..3f9adbfd91 100644
--- a/usr/src/lib/libast/common/comp/frexpl.c
+++ b/usr/src/lib/libast/common/comp/frexpl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/fsync.c b/usr/src/lib/libast/common/comp/fsync.c
index 1917d180e1..0f8abef90f 100644
--- a/usr/src/lib/libast/common/comp/fsync.c
+++ b/usr/src/lib/libast/common/comp/fsync.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/ftw.c b/usr/src/lib/libast/common/comp/ftw.c
index fde4482441..7ce30162ca 100644
--- a/usr/src/lib/libast/common/comp/ftw.c
+++ b/usr/src/lib/libast/common/comp/ftw.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/ftw.h b/usr/src/lib/libast/common/comp/ftw.h
index cb7105f67d..080fa8ddb4 100644
--- a/usr/src/lib/libast/common/comp/ftw.h
+++ b/usr/src/lib/libast/common/comp/ftw.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getdate.c b/usr/src/lib/libast/common/comp/getdate.c
index 710917b9a7..1e6f0f6f09 100644
--- a/usr/src/lib/libast/common/comp/getdate.c
+++ b/usr/src/lib/libast/common/comp/getdate.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getgroups.c b/usr/src/lib/libast/common/comp/getgroups.c
index 39532ff303..014221e348 100644
--- a/usr/src/lib/libast/common/comp/getgroups.c
+++ b/usr/src/lib/libast/common/comp/getgroups.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getlogin.c b/usr/src/lib/libast/common/comp/getlogin.c
index 0e5e7f05bd..20322d55c8 100644
--- a/usr/src/lib/libast/common/comp/getlogin.c
+++ b/usr/src/lib/libast/common/comp/getlogin.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getopt.c b/usr/src/lib/libast/common/comp/getopt.c
index 37436d2d4b..d70413f799 100644
--- a/usr/src/lib/libast/common/comp/getopt.c
+++ b/usr/src/lib/libast/common/comp/getopt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getopt.h b/usr/src/lib/libast/common/comp/getopt.h
index bfb7ddcc63..9b50e5feef 100644
--- a/usr/src/lib/libast/common/comp/getopt.h
+++ b/usr/src/lib/libast/common/comp/getopt.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getoptl.c b/usr/src/lib/libast/common/comp/getoptl.c
index 9135065e72..8c94e7aebb 100644
--- a/usr/src/lib/libast/common/comp/getoptl.c
+++ b/usr/src/lib/libast/common/comp/getoptl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getpgrp.c b/usr/src/lib/libast/common/comp/getpgrp.c
index 22eb3ee993..39d9cb4137 100644
--- a/usr/src/lib/libast/common/comp/getpgrp.c
+++ b/usr/src/lib/libast/common/comp/getpgrp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getsubopt.c b/usr/src/lib/libast/common/comp/getsubopt.c
index 5c22480a03..4aa6697871 100644
--- a/usr/src/lib/libast/common/comp/getsubopt.c
+++ b/usr/src/lib/libast/common/comp/getsubopt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/getwd.c b/usr/src/lib/libast/common/comp/getwd.c
index a221c00b90..ce7a56137e 100644
--- a/usr/src/lib/libast/common/comp/getwd.c
+++ b/usr/src/lib/libast/common/comp/getwd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/gross.c b/usr/src/lib/libast/common/comp/gross.c
index beccc9c2c5..259e37c853 100644
--- a/usr/src/lib/libast/common/comp/gross.c
+++ b/usr/src/lib/libast/common/comp/gross.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/hsearch.c b/usr/src/lib/libast/common/comp/hsearch.c
index ba8b7af1f2..8f8b06d22a 100644
--- a/usr/src/lib/libast/common/comp/hsearch.c
+++ b/usr/src/lib/libast/common/comp/hsearch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/iconv.c b/usr/src/lib/libast/common/comp/iconv.c
index 24ecd0da8b..5772f78780 100644
--- a/usr/src/lib/libast/common/comp/iconv.c
+++ b/usr/src/lib/libast/common/comp/iconv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/killpg.c b/usr/src/lib/libast/common/comp/killpg.c
index 56359a1c99..84e27d96d5 100644
--- a/usr/src/lib/libast/common/comp/killpg.c
+++ b/usr/src/lib/libast/common/comp/killpg.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/libgen.h b/usr/src/lib/libast/common/comp/libgen.h
index 4c1fc07b1f..fb3025171a 100644
--- a/usr/src/lib/libast/common/comp/libgen.h
+++ b/usr/src/lib/libast/common/comp/libgen.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/link.c b/usr/src/lib/libast/common/comp/link.c
index fead99e39e..5593a43e2e 100644
--- a/usr/src/lib/libast/common/comp/link.c
+++ b/usr/src/lib/libast/common/comp/link.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/localeconv.c b/usr/src/lib/libast/common/comp/localeconv.c
index 28afa2e555..bfb878a52c 100644
--- a/usr/src/lib/libast/common/comp/localeconv.c
+++ b/usr/src/lib/libast/common/comp/localeconv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/lstat.c b/usr/src/lib/libast/common/comp/lstat.c
index 99fd406e8d..b67356d3b3 100644
--- a/usr/src/lib/libast/common/comp/lstat.c
+++ b/usr/src/lib/libast/common/comp/lstat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/memccpy.c b/usr/src/lib/libast/common/comp/memccpy.c
index 1f70b624a9..2928e0c475 100644
--- a/usr/src/lib/libast/common/comp/memccpy.c
+++ b/usr/src/lib/libast/common/comp/memccpy.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/memchr.c b/usr/src/lib/libast/common/comp/memchr.c
index 51ced6c317..9a1525eca3 100644
--- a/usr/src/lib/libast/common/comp/memchr.c
+++ b/usr/src/lib/libast/common/comp/memchr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/memcmp.c b/usr/src/lib/libast/common/comp/memcmp.c
index 9d6a5166b7..33700fe54c 100644
--- a/usr/src/lib/libast/common/comp/memcmp.c
+++ b/usr/src/lib/libast/common/comp/memcmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/memcpy.c b/usr/src/lib/libast/common/comp/memcpy.c
index 2738fcaaef..6a6c4f0e82 100644
--- a/usr/src/lib/libast/common/comp/memcpy.c
+++ b/usr/src/lib/libast/common/comp/memcpy.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/memmove.c b/usr/src/lib/libast/common/comp/memmove.c
index 5100dadb42..73eebc360b 100644
--- a/usr/src/lib/libast/common/comp/memmove.c
+++ b/usr/src/lib/libast/common/comp/memmove.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/memset.c b/usr/src/lib/libast/common/comp/memset.c
index db73f12591..88605d6c8f 100644
--- a/usr/src/lib/libast/common/comp/memset.c
+++ b/usr/src/lib/libast/common/comp/memset.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/mkdir.c b/usr/src/lib/libast/common/comp/mkdir.c
index c75a1702cb..6ad37d915b 100644
--- a/usr/src/lib/libast/common/comp/mkdir.c
+++ b/usr/src/lib/libast/common/comp/mkdir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/mkfifo.c b/usr/src/lib/libast/common/comp/mkfifo.c
index 0d917954c5..df8e4ec06c 100644
--- a/usr/src/lib/libast/common/comp/mkfifo.c
+++ b/usr/src/lib/libast/common/comp/mkfifo.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/mknod.c b/usr/src/lib/libast/common/comp/mknod.c
index 9f5a67875e..8d8ec6efbf 100644
--- a/usr/src/lib/libast/common/comp/mknod.c
+++ b/usr/src/lib/libast/common/comp/mknod.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/mktemp.c b/usr/src/lib/libast/common/comp/mktemp.c
index 73a5b811cb..fc79301f11 100644
--- a/usr/src/lib/libast/common/comp/mktemp.c
+++ b/usr/src/lib/libast/common/comp/mktemp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/mktime.c b/usr/src/lib/libast/common/comp/mktime.c
index 8ebd366f39..691184645e 100644
--- a/usr/src/lib/libast/common/comp/mktime.c
+++ b/usr/src/lib/libast/common/comp/mktime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/mount.c b/usr/src/lib/libast/common/comp/mount.c
index 3106302ea6..c444aebea6 100644
--- a/usr/src/lib/libast/common/comp/mount.c
+++ b/usr/src/lib/libast/common/comp/mount.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/nftw.c b/usr/src/lib/libast/common/comp/nftw.c
index 134acadf11..6372869a9c 100644
--- a/usr/src/lib/libast/common/comp/nftw.c
+++ b/usr/src/lib/libast/common/comp/nftw.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/open.c b/usr/src/lib/libast/common/comp/open.c
index aae54589fe..06b2874e92 100644
--- a/usr/src/lib/libast/common/comp/open.c
+++ b/usr/src/lib/libast/common/comp/open.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/openlog.c b/usr/src/lib/libast/common/comp/openlog.c
index 8d2e22f562..17b1a8fa4a 100644
--- a/usr/src/lib/libast/common/comp/openlog.c
+++ b/usr/src/lib/libast/common/comp/openlog.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/putenv.c b/usr/src/lib/libast/common/comp/putenv.c
index 82fc7424fe..a94dc44457 100644
--- a/usr/src/lib/libast/common/comp/putenv.c
+++ b/usr/src/lib/libast/common/comp/putenv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/re_comp.c b/usr/src/lib/libast/common/comp/re_comp.c
index 086b185841..9892cfcf2c 100644
--- a/usr/src/lib/libast/common/comp/re_comp.c
+++ b/usr/src/lib/libast/common/comp/re_comp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/re_comp.h b/usr/src/lib/libast/common/comp/re_comp.h
index 4801721024..d4eaa98e3c 100644
--- a/usr/src/lib/libast/common/comp/re_comp.h
+++ b/usr/src/lib/libast/common/comp/re_comp.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/readlink.c b/usr/src/lib/libast/common/comp/readlink.c
index 72192e6fc8..e0a6ac3664 100644
--- a/usr/src/lib/libast/common/comp/readlink.c
+++ b/usr/src/lib/libast/common/comp/readlink.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/realpath.c b/usr/src/lib/libast/common/comp/realpath.c
index 4688ca132a..4b01835f25 100644
--- a/usr/src/lib/libast/common/comp/realpath.c
+++ b/usr/src/lib/libast/common/comp/realpath.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/regcmp.c b/usr/src/lib/libast/common/comp/regcmp.c
index 8006fdae68..81c7c730f1 100644
--- a/usr/src/lib/libast/common/comp/regcmp.c
+++ b/usr/src/lib/libast/common/comp/regcmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/regexp.c b/usr/src/lib/libast/common/comp/regexp.c
index fa26310361..37eb3dd107 100644
--- a/usr/src/lib/libast/common/comp/regexp.c
+++ b/usr/src/lib/libast/common/comp/regexp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/regexp.h b/usr/src/lib/libast/common/comp/regexp.h
index 2217e987a4..1dd06ac12a 100644
--- a/usr/src/lib/libast/common/comp/regexp.h
+++ b/usr/src/lib/libast/common/comp/regexp.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/remove.c b/usr/src/lib/libast/common/comp/remove.c
index af8a4e0422..b920ed1b90 100644
--- a/usr/src/lib/libast/common/comp/remove.c
+++ b/usr/src/lib/libast/common/comp/remove.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/rename.c b/usr/src/lib/libast/common/comp/rename.c
index 5da4955b98..4089d04aab 100644
--- a/usr/src/lib/libast/common/comp/rename.c
+++ b/usr/src/lib/libast/common/comp/rename.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/resolvepath.c b/usr/src/lib/libast/common/comp/resolvepath.c
index a3be273646..3641e85466 100644
--- a/usr/src/lib/libast/common/comp/resolvepath.c
+++ b/usr/src/lib/libast/common/comp/resolvepath.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/rmdir.c b/usr/src/lib/libast/common/comp/rmdir.c
index 71b5154f48..8db360d758 100644
--- a/usr/src/lib/libast/common/comp/rmdir.c
+++ b/usr/src/lib/libast/common/comp/rmdir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/setenv.c b/usr/src/lib/libast/common/comp/setenv.c
index 4d0031fd08..15a012dfb1 100644
--- a/usr/src/lib/libast/common/comp/setenv.c
+++ b/usr/src/lib/libast/common/comp/setenv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/setlocale.c b/usr/src/lib/libast/common/comp/setlocale.c
index c212b9fc10..86759ee222 100644
--- a/usr/src/lib/libast/common/comp/setlocale.c
+++ b/usr/src/lib/libast/common/comp/setlocale.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -69,6 +69,10 @@ extern int mblen(const char*, size_t);
#define AST_LC_CANONICAL LC_abbreviated
#endif
+#ifndef AST_LC_test
+#define AST_LC_test (1L<<27)
+#endif
+
#if _UWIN
#include <ast_windows.h>
@@ -114,7 +118,11 @@ native_locale(const char* locale, char* buf, size_t siz)
break;
}
if (!ctry)
+ {
+ if (!lang)
+ return 0;
ctry = SUBLANG_DEFAULT;
+ }
}
lcid = MAKELCID(MAKELANGID(lang, ctry), SORT_DEFAULT);
}
@@ -141,14 +149,15 @@ native_setlocale(int category, const char* locale)
char* sys;
char buf[256];
+ if (!(usr = native_locale(locale, buf, sizeof(buf))))
+ return 0;
+
/*
* win32 doesn't have LC_MESSAGES
*/
if (category == LC_MESSAGES)
return (char*)locale;
- if (!(usr = native_locale(locale, buf, sizeof(buf))))
- return 0;
sys = uwin_setlocale(category, usr);
if (ast.locale.set & AST_LC_debug)
sfprintf(sfstderr, "locale uwin %17s %-24s %-24s\n", lc_categories[lcindex(category, 0)].name, usr, sys);
@@ -528,6 +537,93 @@ sjis_mbtowc(register wchar_t* p, register const char* s, size_t n)
#endif
+#define utf8_wctomb wctomb
+
+static const uint32_t utf8mask[] =
+{
+ 0x00000000,
+ 0x00000000,
+ 0xffffff80,
+ 0xfffff800,
+ 0xffff0000,
+ 0xffe00000,
+ 0xfc000000,
+};
+
+static const signed char utf8tab[256] =
+{
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
+ 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6,-1,-1,
+};
+
+static int
+utf8_mbtowc(wchar_t* wp, const char* str, size_t n)
+{
+ register unsigned char* sp = (unsigned char*)str;
+ register int m;
+ register int i;
+ register int c;
+ register wchar_t w = 0;
+
+ if (!sp || !n)
+ return 0;
+ if ((m = utf8tab[*sp]) > 0)
+ {
+ if (m > n)
+ return -1;
+ if (wp)
+ {
+ if (m == 1)
+ {
+ *wp = *sp;
+ return 1;
+ }
+ w = *sp & ((1<<(8-m))-1);
+ for (i = m - 1; i > 0; i--)
+ {
+ c = *++sp;
+ if ((c&0xc0) != 0x80)
+ goto invalid;
+ w = (w<<6) | (c&0x3f);
+ }
+ if (!(utf8mask[m] & w) || w >= 0xd800 && (w <= 0xdfff || w >= 0xfffe && w <= 0xffff))
+ goto invalid;
+ *wp = w;
+ }
+ return m;
+ }
+ if (!*sp)
+ return 0;
+ invalid:
+#ifdef EILSEQ
+ errno = EILSEQ;
+#endif
+ ast.mb_sync = (const char*)sp - str;
+ return -1;
+}
+
+static int
+utf8_mblen(const char* str, size_t n)
+{
+ wchar_t w;
+
+ return utf8_mbtowc(&w, str, n);
+}
+
/*
* called when LC_CTYPE initialized or changes
*/
@@ -535,6 +631,7 @@ sjis_mbtowc(register wchar_t* p, register const char* s, size_t n)
static int
set_ctype(Lc_category_t* cp)
{
+ ast.mb_sync = 0;
if (locales[cp->internal]->flags & LC_debug)
{
ast.mb_cur_max = DEBUG_MB_CUR_MAX;
@@ -551,6 +648,15 @@ set_ctype(Lc_category_t* cp)
ast.mb_width = default_wcwidth;
ast.mb_conv = 0;
}
+ else if ((locales[cp->internal]->flags & LC_utf8) && !(ast.locale.set & AST_LC_test))
+ {
+ ast.mb_cur_max = 6;
+ ast.mb_len = utf8_mblen;
+ ast.mb_towc = utf8_mbtowc;
+ if (!(ast.mb_width = wcwidth))
+ ast.mb_width = default_wcwidth;
+ ast.mb_conv = utf8_wctomb;
+ }
else
{
if (!(ast.mb_width = wcwidth))
@@ -576,6 +682,19 @@ set_ctype(Lc_category_t* cp)
}
#endif
}
+ if (ast.locale.set & (AST_LC_debug|AST_LC_setlocale))
+ sfprintf(sfstderr, "locale info %17s MB_CUR_MAX=%d%s%s%s%s\n"
+ , cp->name
+ , ast.mb_cur_max
+ , ast.mb_len == debug_mblen ? " debug_mblen" : ast.mb_len == mblen ? " mblen" : ""
+ , ast.mb_towc == debug_mbtowc ? " debug_mbtowc" : ast.mb_towc == mbtowc ? " mbtowc"
+#ifdef mb_state
+ : ast.mb_towc == sjis_mbtowc ? " sjis_mbtowc"
+#endif
+ : ""
+ , ast.mb_width == debug_wcwidth ? " debug_wcwidth" : ast.mb_width == wcwidth ? " wcwidth" : ast.mb_width == default_wcwidth ? " default_wcwidth" : ""
+ , ast.mb_conv == debug_wctomb ? " debug_wctomb" : ast.mb_conv == wctomb ? " wctomb" : ""
+ );
return 0;
}
@@ -630,11 +749,21 @@ Lc_category_t lc_categories[] =
{ "LC_PAPER", LC_PAPER, AST_LC_PAPER, 0 },
};
-static const Namval_t options[] =
+static Lc_t* lang;
+static Lc_t* lc_all;
+
+typedef struct Unamval_s
+{
+ char* name;
+ unsigned int value;
+} Unamval_t;
+
+static const Unamval_t options[] =
{
"debug", AST_LC_debug,
"find", AST_LC_find,
"setlocale", AST_LC_setlocale,
+ "test", AST_LC_test,
"translate", AST_LC_translate,
0, 0
};
@@ -649,9 +778,9 @@ setopt(void* a, const void* p, int n, const char* v)
if (p)
{
if (n)
- ast.locale.set |= ((Namval_t*)p)->value;
+ ast.locale.set |= ((Unamval_t*)p)->value;
else
- ast.locale.set &= ~((Namval_t*)p)->value;
+ ast.locale.set &= ~((Unamval_t*)p)->value;
}
return 0;
}
@@ -690,7 +819,7 @@ single(int category, Lc_t* lc)
const char* sys;
int i;
- if (!lc && !(lc = lc_categories[category].prev))
+ if (!lc && !(lc = lc_all) && !(lc = lc_categories[category].prev) && !(lc = lang))
lc = lcmake(NiL);
if (locales[category] != lc)
{
@@ -738,7 +867,7 @@ single(int category, Lc_t* lc)
locales[category] = lc_categories[category].prev;
return 0;
}
- if (lc->flags & LC_default)
+ if ((lc->flags & LC_default) || category == AST_LC_MESSAGES && lc->name[0] == 'e' && lc->name[1] == 'n' && (lc->name[2] == 0 || lc->name[2] == '_' && lc->name[3] == 'U'))
ast.locale.set &= ~(1<<category);
else
ast.locale.set |= (1<<category);
@@ -759,6 +888,7 @@ composite(register const char* s, int initialize)
register int j;
register int k;
int n;
+ int m;
const char* w;
Lc_t* p;
int cat[AST_LC_COUNT];
@@ -802,10 +932,10 @@ composite(register const char* s, int initialize)
}
else if (*s++ == ';')
{
- if ((n = s - w - 1) >= sizeof(buf))
- n = sizeof(buf) - 1;
- memcpy(buf, w, n);
- buf[n] = 0;
+ if ((m = s - w - 1) >= sizeof(buf))
+ m = sizeof(buf) - 1;
+ memcpy(buf, w, m);
+ buf[m] = 0;
p = lcmake(buf);
break;
}
@@ -824,7 +954,7 @@ composite(register const char* s, int initialize)
else if (!lc_categories[cat[i]].prev)
lc_categories[cat[i]].prev = p;
}
- while (s[0] == '/' && s[1] && n < AST_LC_COUNT)
+ while (s[0] == '/' && s[1] && n < (AST_LC_COUNT - 1))
{
n++;
for (w = ++s; *s && *s != '/'; s++);
@@ -855,6 +985,12 @@ composite(register const char* s, int initialize)
/*
* setlocale() intercept
+ *
+ * locale:
+ * 0 query
+ * "" initialize from environment
+ * "-" unset
+ * * set
*/
char*
@@ -881,7 +1017,7 @@ _ast_setlocale(int category, const char* locale)
*/
compose:
- if (category != AST_LC_ALL)
+ if (category != AST_LC_ALL && category != AST_LC_LANG)
return (char*)locales[category]->name;
if (!sp && !(sp = sfstropen()))
return 0;
@@ -916,9 +1052,12 @@ _ast_setlocale(int category, const char* locale)
return sfstruse(sp);
}
if (!ast.locale.serial++)
+ {
stropt(getenv("LC_OPTIONS"), options, sizeof(*options), setopt, NiL);
+ initialized = 0;
+ }
if (*locale)
- p = lcmake(locale);
+ p = streq(locale, "-") ? (Lc_t*)0 : lcmake(locale);
else if (!initialized)
{
char* u;
@@ -930,63 +1069,75 @@ _ast_setlocale(int category, const char* locale)
*/
u = 0;
- if (!(a = getenv("LC_ALL")) || !*a)
+ if ((s = getenv("LANG")) && *s)
{
- for (i = 1; i < AST_LC_COUNT; i++)
- if ((s = getenv(lc_categories[i].name)) && *s)
- {
- if (streq(s, local) && (u || (u = native_locale(locale, tmp, sizeof(tmp)))))
- s = u;
- lc_categories[i].prev = lcmake(s);
- }
- a = getenv("LANG");
+ if (streq(s, local) && (u || (u = native_locale(locale, tmp, sizeof(tmp)))))
+ s = u;
+ lang = lcmake(s);
}
- if (a)
+ else
+ lang = 0;
+ if ((s = getenv("LC_ALL")) && *s)
{
- if (streq(a, local) && (u || (u = native_locale(locale, tmp, sizeof(tmp)))))
- a = u;
- if (composite(a, 1))
- a = 0;
+ if (streq(s, local) && (u || (u = native_locale(locale, tmp, sizeof(tmp)))))
+ s = u;
+ lc_all = lcmake(s);
}
- p = 0;
+ else
+ lc_all = 0;
for (i = 1; i < AST_LC_COUNT; i++)
- {
- if (!lc_categories[i].prev)
+ if ((s = getenv(lc_categories[i].name)) && *s)
{
- if (!p && !(p = lcmake(a)))
- break;
- lc_categories[i].prev = p;
+ if (streq(s, local) && (u || (u = native_locale(locale, tmp, sizeof(tmp)))))
+ s = u;
+ lc_categories[i].prev = lcmake(s);
}
- if (!single(i, lc_categories[i].prev))
+ else
+ lc_categories[i].prev = 0;
+ for (i = 1; i < AST_LC_COUNT; i++)
+ if (!single(i, lc_all ? lc_all : lc_categories[i].prev))
{
while (i--)
single(i, NiL);
return 0;
}
- }
if (ast.locale.set & AST_LC_debug)
for (i = 1; i < AST_LC_COUNT; i++)
- sfprintf(sfstderr, "locale env %17s %s\n", lc_categories[i].name, locales[i]->name);
+ sfprintf(sfstderr, "locale env %17s %16s %16s\n", lc_categories[i].name, locales[i]->name, lc_categories[i].prev ? lc_categories[i].prev->name : (char*)0);
initialized = 1;
goto compose;
}
- else if (!(p = lc_categories[category].prev))
+ else if (category == AST_LC_LANG || !(p = lc_categories[category].prev))
p = lcmake("C");
- if (category != AST_LC_ALL)
+ if (category == AST_LC_LANG)
+ {
+ if (lang != p)
+ {
+ lang = p;
+ if (!lc_all)
+ for (i = 1; i < AST_LC_COUNT; i++)
+ if (!single(i, lc_categories[i].prev))
+ {
+ while (i--)
+ single(i, NiL);
+ return 0;
+ }
+ }
+ }
+ else if (category != AST_LC_ALL)
return single(category, p);
- else if (!(i = composite(locale, 0)))
+ else if ((i = composite(locale, 0)) < 0)
+ return 0;
+ else if (lc_all != p)
{
- if (!p)
- return 0;
+ lc_all = p;
for (i = 1; i < AST_LC_COUNT; i++)
- if (!single(i, p))
+ if (!single(i, lc_all ? lc_all : lc_categories[i].prev))
{
while (i--)
single(i, NiL);
return 0;
}
}
- else if (i < 0)
- return 0;
goto compose;
}
diff --git a/usr/src/lib/libast/common/comp/setlogmask.c b/usr/src/lib/libast/common/comp/setlogmask.c
index bd79000a77..3e14c6c131 100644
--- a/usr/src/lib/libast/common/comp/setlogmask.c
+++ b/usr/src/lib/libast/common/comp/setlogmask.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/setpgid.c b/usr/src/lib/libast/common/comp/setpgid.c
index d21372604e..b758a3f0aa 100644
--- a/usr/src/lib/libast/common/comp/setpgid.c
+++ b/usr/src/lib/libast/common/comp/setpgid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/setsid.c b/usr/src/lib/libast/common/comp/setsid.c
index a7c0107891..77acd0cac7 100644
--- a/usr/src/lib/libast/common/comp/setsid.c
+++ b/usr/src/lib/libast/common/comp/setsid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/sigunblock.c b/usr/src/lib/libast/common/comp/sigunblock.c
index f62d37f2fb..161a6c8366 100644
--- a/usr/src/lib/libast/common/comp/sigunblock.c
+++ b/usr/src/lib/libast/common/comp/sigunblock.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/spawnveg.c b/usr/src/lib/libast/common/comp/spawnveg.c
index e3d93a5959..092fc56a72 100644
--- a/usr/src/lib/libast/common/comp/spawnveg.c
+++ b/usr/src/lib/libast/common/comp/spawnveg.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -52,7 +52,7 @@ spawnveg(const char* path, char* const argv[], char* const envv[], pid_t pgid)
posix_spawnattr_t attr;
if (err = posix_spawnattr_init(&attr))
- goto bad;
+ goto nope;
if (pgid)
{
if (pgid <= 1)
@@ -76,6 +76,8 @@ spawnveg(const char* path, char* const argv[], char* const envv[], pid_t pgid)
#endif
return pid;
bad:
+ posix_spawnattr_destroy(&attr);
+ nope:
errno = err;
return -1;
}
diff --git a/usr/src/lib/libast/common/comp/statvfs.c b/usr/src/lib/libast/common/comp/statvfs.c
index 3a8c8b35dd..2da0f59778 100644
--- a/usr/src/lib/libast/common/comp/statvfs.c
+++ b/usr/src/lib/libast/common/comp/statvfs.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strcasecmp.c b/usr/src/lib/libast/common/comp/strcasecmp.c
index 9eb0a72880..c387e1442b 100644
--- a/usr/src/lib/libast/common/comp/strcasecmp.c
+++ b/usr/src/lib/libast/common/comp/strcasecmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strchr.c b/usr/src/lib/libast/common/comp/strchr.c
index c4aaecae79..c0188a13ca 100644
--- a/usr/src/lib/libast/common/comp/strchr.c
+++ b/usr/src/lib/libast/common/comp/strchr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strftime.c b/usr/src/lib/libast/common/comp/strftime.c
index e7ce692756..cb6c720210 100644
--- a/usr/src/lib/libast/common/comp/strftime.c
+++ b/usr/src/lib/libast/common/comp/strftime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strncasecmp.c b/usr/src/lib/libast/common/comp/strncasecmp.c
index 0f4e4e8b3f..ca3c484bbc 100644
--- a/usr/src/lib/libast/common/comp/strncasecmp.c
+++ b/usr/src/lib/libast/common/comp/strncasecmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strptime.c b/usr/src/lib/libast/common/comp/strptime.c
index 2c0d9d0a1c..38eb16da15 100644
--- a/usr/src/lib/libast/common/comp/strptime.c
+++ b/usr/src/lib/libast/common/comp/strptime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -27,7 +27,7 @@
#define strptime ______strptime
#include <ast.h>
-#include <tm.h>
+#include <tmx.h>
#undef strptime
@@ -51,8 +51,8 @@ strptime(const char* s, const char* format, struct tm* ts)
char* f;
time_t t;
Tm_t tm;
- Tm_t* tn;
+ memset(&tm, 0, sizeof(tm));
tm.tm_sec = ts->tm_sec;
tm.tm_min = ts->tm_min;
tm.tm_hour = ts->tm_hour;
@@ -66,16 +66,16 @@ strptime(const char* s, const char* format, struct tm* ts)
t = tmscan(s, &e, format, &f, &t, 0);
if (e == (char*)s || *f)
return 0;
- tn = tmmake(&t);
- ts->tm_sec = tn->tm_sec;
- ts->tm_min = tn->tm_min;
- ts->tm_hour = tn->tm_hour;
- ts->tm_mday = tn->tm_mday;
- ts->tm_mon = tn->tm_mon;
- ts->tm_year = tn->tm_year;
- ts->tm_wday = tn->tm_wday;
- ts->tm_yday = tn->tm_yday;
- ts->tm_isdst = tn->tm_isdst;
+ tmxtm(&tm, tmxclock(&t), NiL);
+ ts->tm_sec = tm.tm_sec;
+ ts->tm_min = tm.tm_min;
+ ts->tm_hour = tm.tm_hour;
+ ts->tm_mday = tm.tm_mday;
+ ts->tm_mon = tm.tm_mon;
+ ts->tm_year = tm.tm_year;
+ ts->tm_wday = tm.tm_wday;
+ ts->tm_yday = tm.tm_yday;
+ ts->tm_isdst = tm.tm_isdst;
return e;
}
diff --git a/usr/src/lib/libast/common/comp/strrchr.c b/usr/src/lib/libast/common/comp/strrchr.c
index aa14262e02..03bfbcd05c 100644
--- a/usr/src/lib/libast/common/comp/strrchr.c
+++ b/usr/src/lib/libast/common/comp/strrchr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strstr.c b/usr/src/lib/libast/common/comp/strstr.c
index 3a5c0a0203..255c5a3710 100644
--- a/usr/src/lib/libast/common/comp/strstr.c
+++ b/usr/src/lib/libast/common/comp/strstr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strtod.c b/usr/src/lib/libast/common/comp/strtod.c
index 10ace03ed6..e33d8a5a55 100644
--- a/usr/src/lib/libast/common/comp/strtod.c
+++ b/usr/src/lib/libast/common/comp/strtod.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strtol.c b/usr/src/lib/libast/common/comp/strtol.c
index e396298532..dfcf217710 100644
--- a/usr/src/lib/libast/common/comp/strtol.c
+++ b/usr/src/lib/libast/common/comp/strtol.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strtold.c b/usr/src/lib/libast/common/comp/strtold.c
index 954426dfb8..c4d86bd995 100644
--- a/usr/src/lib/libast/common/comp/strtold.c
+++ b/usr/src/lib/libast/common/comp/strtold.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strtoll.c b/usr/src/lib/libast/common/comp/strtoll.c
index 4bcc902860..141b80bad2 100644
--- a/usr/src/lib/libast/common/comp/strtoll.c
+++ b/usr/src/lib/libast/common/comp/strtoll.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strtoul.c b/usr/src/lib/libast/common/comp/strtoul.c
index 3d1484bca3..4fa25c081b 100644
--- a/usr/src/lib/libast/common/comp/strtoul.c
+++ b/usr/src/lib/libast/common/comp/strtoul.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/strtoull.c b/usr/src/lib/libast/common/comp/strtoull.c
index eda6b831de..a1f7d5c142 100644
--- a/usr/src/lib/libast/common/comp/strtoull.c
+++ b/usr/src/lib/libast/common/comp/strtoull.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/swab.c b/usr/src/lib/libast/common/comp/swab.c
index 3eb4c89509..6418fef6b5 100644
--- a/usr/src/lib/libast/common/comp/swab.c
+++ b/usr/src/lib/libast/common/comp/swab.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/symlink.c b/usr/src/lib/libast/common/comp/symlink.c
index 46f479c56f..fc0850e548 100644
--- a/usr/src/lib/libast/common/comp/symlink.c
+++ b/usr/src/lib/libast/common/comp/symlink.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/syslog.c b/usr/src/lib/libast/common/comp/syslog.c
index 7d552c7708..bf62295474 100644
--- a/usr/src/lib/libast/common/comp/syslog.c
+++ b/usr/src/lib/libast/common/comp/syslog.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -43,7 +43,11 @@ Syslog_state_t log = { LOG_USER, -1, 0, ~0 };
static const Namval_t attempt[] =
{
+#if _UWIN
+ "/var/log/syslog", 0,
+#endif
"/dev/log", 0,
+ "var/log/syslog", 0,
"lib/syslog/log", 0,
"/dev/console", LOG_CONS,
};
diff --git a/usr/src/lib/libast/common/comp/system.c b/usr/src/lib/libast/common/comp/system.c
index 59adb526a3..91722fb77b 100644
--- a/usr/src/lib/libast/common/comp/system.c
+++ b/usr/src/lib/libast/common/comp/system.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/tempnam.c b/usr/src/lib/libast/common/comp/tempnam.c
index 05273af113..7b11525ea9 100644
--- a/usr/src/lib/libast/common/comp/tempnam.c
+++ b/usr/src/lib/libast/common/comp/tempnam.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/tmpnam.c b/usr/src/lib/libast/common/comp/tmpnam.c
index c10df67d52..21190586e3 100644
--- a/usr/src/lib/libast/common/comp/tmpnam.c
+++ b/usr/src/lib/libast/common/comp/tmpnam.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/transition.c b/usr/src/lib/libast/common/comp/transition.c
index bb9dce1c89..2656846315 100644
--- a/usr/src/lib/libast/common/comp/transition.c
+++ b/usr/src/lib/libast/common/comp/transition.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/tsearch.c b/usr/src/lib/libast/common/comp/tsearch.c
index 0882dddc8d..a47a14d9a7 100644
--- a/usr/src/lib/libast/common/comp/tsearch.c
+++ b/usr/src/lib/libast/common/comp/tsearch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/unlink.c b/usr/src/lib/libast/common/comp/unlink.c
index e2d073e01a..ccf1bff60f 100644
--- a/usr/src/lib/libast/common/comp/unlink.c
+++ b/usr/src/lib/libast/common/comp/unlink.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/unsetenv.c b/usr/src/lib/libast/common/comp/unsetenv.c
index efd6b66a16..1280abf5b6 100644
--- a/usr/src/lib/libast/common/comp/unsetenv.c
+++ b/usr/src/lib/libast/common/comp/unsetenv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/vfork.c b/usr/src/lib/libast/common/comp/vfork.c
index eae503d715..cb6ce68021 100644
--- a/usr/src/lib/libast/common/comp/vfork.c
+++ b/usr/src/lib/libast/common/comp/vfork.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/waitpid.c b/usr/src/lib/libast/common/comp/waitpid.c
index d7cc7d175c..25c72ebed9 100644
--- a/usr/src/lib/libast/common/comp/waitpid.c
+++ b/usr/src/lib/libast/common/comp/waitpid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/wc.c b/usr/src/lib/libast/common/comp/wc.c
index 53b70f04f7..2b53f5de23 100644
--- a/usr/src/lib/libast/common/comp/wc.c
+++ b/usr/src/lib/libast/common/comp/wc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/wordexp.c b/usr/src/lib/libast/common/comp/wordexp.c
index 3922160469..2adf720207 100644
--- a/usr/src/lib/libast/common/comp/wordexp.c
+++ b/usr/src/lib/libast/common/comp/wordexp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/comp/wordexp.h b/usr/src/lib/libast/common/comp/wordexp.h
index 1b0a0cc74c..e63b85a60a 100644
--- a/usr/src/lib/libast/common/comp/wordexp.h
+++ b/usr/src/lib/libast/common/comp/wordexp.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/dirlib.h b/usr/src/lib/libast/common/dir/dirlib.h
index d98d24d6e5..21ebe2b21e 100644
--- a/usr/src/lib/libast/common/dir/dirlib.h
+++ b/usr/src/lib/libast/common/dir/dirlib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/getdents.c b/usr/src/lib/libast/common/dir/getdents.c
index f2c82e2657..e17ceb4a50 100644
--- a/usr/src/lib/libast/common/dir/getdents.c
+++ b/usr/src/lib/libast/common/dir/getdents.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/opendir.c b/usr/src/lib/libast/common/dir/opendir.c
index c45e48f671..e8d37f8a98 100644
--- a/usr/src/lib/libast/common/dir/opendir.c
+++ b/usr/src/lib/libast/common/dir/opendir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/readdir.c b/usr/src/lib/libast/common/dir/readdir.c
index 3dc095b01f..6c8f81c471 100644
--- a/usr/src/lib/libast/common/dir/readdir.c
+++ b/usr/src/lib/libast/common/dir/readdir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/rewinddir.c b/usr/src/lib/libast/common/dir/rewinddir.c
index 6467b586a7..2bf0515e2a 100644
--- a/usr/src/lib/libast/common/dir/rewinddir.c
+++ b/usr/src/lib/libast/common/dir/rewinddir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/seekdir.c b/usr/src/lib/libast/common/dir/seekdir.c
index 9d254ab585..9aa81635b4 100644
--- a/usr/src/lib/libast/common/dir/seekdir.c
+++ b/usr/src/lib/libast/common/dir/seekdir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/dir/telldir.c b/usr/src/lib/libast/common/dir/telldir.c
index d96314aba0..1fd9036996 100644
--- a/usr/src/lib/libast/common/dir/telldir.c
+++ b/usr/src/lib/libast/common/dir/telldir.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/memfatal.c b/usr/src/lib/libast/common/disc/memfatal.c
index adba253257..94aec989f7 100644
--- a/usr/src/lib/libast/common/disc/memfatal.c
+++ b/usr/src/lib/libast/common/disc/memfatal.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -72,7 +72,8 @@ memfatal(void)
{
Vmdisc_t* disc;
- if (disc = vmdisc(Vmheap, NiL))
+ malloc(0);
+ if (disc = vmdisc(Vmregion, NiL))
disc->exceptf = nomalloc;
}
diff --git a/usr/src/lib/libast/common/disc/sfdcdio.c b/usr/src/lib/libast/common/disc/sfdcdio.c
index 806b35ef74..142a66f917 100644
--- a/usr/src/lib/libast/common/disc/sfdcdio.c
+++ b/usr/src/lib/libast/common/disc/sfdcdio.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcdos.c b/usr/src/lib/libast/common/disc/sfdcdos.c
index e1e42bd624..3587bbae89 100644
--- a/usr/src/lib/libast/common/disc/sfdcdos.c
+++ b/usr/src/lib/libast/common/disc/sfdcdos.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcfilter.c b/usr/src/lib/libast/common/disc/sfdcfilter.c
index 83f0e6e023..a850d0c7cf 100644
--- a/usr/src/lib/libast/common/disc/sfdcfilter.c
+++ b/usr/src/lib/libast/common/disc/sfdcfilter.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdchdr.h b/usr/src/lib/libast/common/disc/sfdchdr.h
index ed8ccbe62a..1cfa62a27e 100644
--- a/usr/src/lib/libast/common/disc/sfdchdr.h
+++ b/usr/src/lib/libast/common/disc/sfdchdr.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcmore.c b/usr/src/lib/libast/common/disc/sfdcmore.c
index 6b79a10f2a..0857011bc0 100644
--- a/usr/src/lib/libast/common/disc/sfdcmore.c
+++ b/usr/src/lib/libast/common/disc/sfdcmore.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcprefix.c b/usr/src/lib/libast/common/disc/sfdcprefix.c
index daab181964..db6ecbf9bc 100644
--- a/usr/src/lib/libast/common/disc/sfdcprefix.c
+++ b/usr/src/lib/libast/common/disc/sfdcprefix.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcseekable.c b/usr/src/lib/libast/common/disc/sfdcseekable.c
index caaa94e34d..57214ea2f7 100644
--- a/usr/src/lib/libast/common/disc/sfdcseekable.c
+++ b/usr/src/lib/libast/common/disc/sfdcseekable.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcslow.c b/usr/src/lib/libast/common/disc/sfdcslow.c
index 5e96b890de..ec50275eff 100644
--- a/usr/src/lib/libast/common/disc/sfdcslow.c
+++ b/usr/src/lib/libast/common/disc/sfdcslow.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcsubstr.c b/usr/src/lib/libast/common/disc/sfdcsubstr.c
index f166ed7201..3e393c47b8 100644
--- a/usr/src/lib/libast/common/disc/sfdcsubstr.c
+++ b/usr/src/lib/libast/common/disc/sfdcsubstr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdctee.c b/usr/src/lib/libast/common/disc/sfdctee.c
index adccfbc377..53940f8346 100644
--- a/usr/src/lib/libast/common/disc/sfdctee.c
+++ b/usr/src/lib/libast/common/disc/sfdctee.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfdcunion.c b/usr/src/lib/libast/common/disc/sfdcunion.c
index 6565fe0e6b..95fdbea623 100644
--- a/usr/src/lib/libast/common/disc/sfdcunion.c
+++ b/usr/src/lib/libast/common/disc/sfdcunion.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfkeyprintf.c b/usr/src/lib/libast/common/disc/sfkeyprintf.c
index 6abe2a0f11..12aec244ea 100644
--- a/usr/src/lib/libast/common/disc/sfkeyprintf.c
+++ b/usr/src/lib/libast/common/disc/sfkeyprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/disc/sfstrtmp.c b/usr/src/lib/libast/common/disc/sfstrtmp.c
index e970b8be76..965a8470ec 100644
--- a/usr/src/lib/libast/common/disc/sfstrtmp.c
+++ b/usr/src/lib/libast/common/disc/sfstrtmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/align.c b/usr/src/lib/libast/common/features/align.c
index 9220ef1280..800052a5de 100644
--- a/usr/src/lib/libast/common/features/align.c
+++ b/usr/src/lib/libast/common/features/align.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/botch.c b/usr/src/lib/libast/common/features/botch.c
index 490d70b35d..c45f5806f4 100644
--- a/usr/src/lib/libast/common/features/botch.c
+++ b/usr/src/lib/libast/common/features/botch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/common b/usr/src/lib/libast/common/features/common
index ebb697fedb..75b4b2489e 100644
--- a/usr/src/lib/libast/common/features/common
+++ b/usr/src/lib/libast/common/features/common
@@ -425,7 +425,15 @@ tst - -DTRY=1 - -DTRY=1 -Dvoid=char - -DTRY=2 - -DTRY=3 - -DTRY=4 output{
main()
{
int r;
+
printf("\n#ifndef va_listref\n");
+ printf("#ifndef va_start\n");
+ printf("#if __STD_C\n");
+ printf("#include <stdarg.h>\n");
+ printf("#else\n");
+ printf("#include <varargs.h>\n");
+ printf("#endif\n");
+ printf("#endif\n");
#if TRY == 4
printf("#define va_listref(p) (&(p))\t");
printf("/* pass va_list to varargs function */\n");
@@ -478,14 +486,6 @@ tst - -DTRY=1 - -DTRY=1 -Dvoid=char - -DTRY=2 - -DTRY=3 - -DTRY=4 output{
#endif
#endif
- printf("#ifndef va_start\n");
- printf("#if __STD_C\n");
- printf("#include <stdarg.h>\n");
- printf("#else\n");
- printf("#include <varargs.h>\n");
- printf("#endif\n");
- printf("#endif\n");
-
printf("#endif\n");
return 0;
}
diff --git a/usr/src/lib/libast/common/features/fcntl.c b/usr/src/lib/libast/common/features/fcntl.c
index fa0f8c8ee0..e761889788 100644
--- a/usr/src/lib/libast/common/features/fcntl.c
+++ b/usr/src/lib/libast/common/features/fcntl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/float b/usr/src/lib/libast/common/features/float
index 5125e5ddc2..de27bb235b 100644
--- a/usr/src/lib/libast/common/features/float
+++ b/usr/src/lib/libast/common/features/float
@@ -952,7 +952,11 @@ tst - -DN=1 - -DN=2 note{ _ast_fltmax_t maximum integral type }end output{
}
}end
-tst - -DSCAN=1 - -lm -DSTRTO=1 - -DDIV=1 - -DEXP=1 - -DADD=1 - -DMPY=1 note{ INF and NAN memory representations }end output{
+tst - -DSCAN=1 - -lm -DSTRTO=1 - -DMAC=1 - -DDIV=1 - -DEXP=1 - -DADD=1 - -DMPY=1 note{ INF and NAN memory representations }end output{
+ #if MAC
+ #define _AIX_COMPATIBILITY 1
+ #define _FP_MODE_VARIABLE 1
+ #endif
#include "FEATURE/common"
#include <stdio.h>
#include <sys/types.h>
@@ -1104,7 +1108,13 @@ tst - -DSCAN=1 - -lm -DSTRTO=1 - -DDIV=1 - -DEXP=1 - -DADD=1 - -DMPY=1 note{ INF
#if MPY
f *= 2;
#endif
+ #if MAC
+ f = FLT_QNAN;
+ #endif
list("flt", "nan", &f, sizeof(f));
+ #if MAC
+ f = FLT_INFINITY;
+ #endif
list("flt", "inf", &f, sizeof(f));
#endif
}
@@ -1131,7 +1141,13 @@ tst - -DSCAN=1 - -lm -DSTRTO=1 - -DDIV=1 - -DEXP=1 - -DADD=1 - -DMPY=1 note{ INF
#if MPY
f *= 2;
#endif
+ #if MAC
+ f = DBL_QNAN;
+ #endif
list("dbl", "nan", &f, sizeof(f));
+ #if MAC
+ f = DBL_INFINITY;
+ #endif
list("dbl", "inf", &f, sizeof(f));
#endif
}
@@ -1158,7 +1174,13 @@ tst - -DSCAN=1 - -lm -DSTRTO=1 - -DDIV=1 - -DEXP=1 - -DADD=1 - -DMPY=1 note{ INF
#if MPY
f *= 2;
#endif
+ #if MAC
+ f = LDBL_QNAN;
+ #endif
list("ldbl", "nan", &f, sizeof(f));
+ #if MAC
+ f = LDBL_INFINITY;
+ #endif
list("ldbl", "inf", &f, sizeof(f));
#endif
}
diff --git a/usr/src/lib/libast/common/features/lib b/usr/src/lib/libast/common/features/lib
index 8795cefa05..d2a41d7b61 100644
--- a/usr/src/lib/libast/common/features/lib
+++ b/usr/src/lib/libast/common/features/lib
@@ -453,6 +453,15 @@ tst lib_memccpy string.h unistd.h stdlib.h fcntl.h signal.h sys/types.h sys/stat
size_t siz;
int i;
#endif
+
+ #if defined(__ia64) || defined(__ia64__) || defined(__itanium__)
+ /*
+ * 0 faith that the itanium coders will ever get this right
+ * prove me wrong
+ */
+
+ return 1;
+ #endif
/*
* early mac osx failed here -- fixed 3Q 2001
diff --git a/usr/src/lib/libast/common/features/libpath.sh b/usr/src/lib/libast/common/features/libpath.sh
index 22aaee01a6..fa9ca95daa 100644
--- a/usr/src/lib/libast/common/features/libpath.sh
+++ b/usr/src/lib/libast/common/features/libpath.sh
@@ -1,7 +1,7 @@
########################################################################
# #
# This software is part of the ast package #
-# Copyright (c) 1985-2008 AT&T Intellectual Property #
+# Copyright (c) 1985-2009 AT&T Intellectual Property #
# and is licensed under the #
# Common Public License, Version 1.0 #
# by AT&T Intellectual Property #
diff --git a/usr/src/lib/libast/common/features/limits.c b/usr/src/lib/libast/common/features/limits.c
index 57f41bea1b..51965f6fac 100644
--- a/usr/src/lib/libast/common/features/limits.c
+++ b/usr/src/lib/libast/common/features/limits.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/map.c b/usr/src/lib/libast/common/features/map.c
index e647b62797..373706f048 100644
--- a/usr/src/lib/libast/common/features/map.c
+++ b/usr/src/lib/libast/common/features/map.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -187,6 +187,8 @@ main()
printf("#define pathposix _ast_pathposix\n");
printf("#undef pathprobe\n");
printf("#define pathprobe _ast_pathprobe\n");
+ printf("#undef pathprog\n");
+ printf("#define pathprog _ast_pathprog\n");
printf("#undef pathrepl\n");
printf("#define pathrepl _ast_pathrepl\n");
printf("#undef pathsetlink\n");
diff --git a/usr/src/lib/libast/common/features/mode.c b/usr/src/lib/libast/common/features/mode.c
index 79f42f620f..ea82970e78 100644
--- a/usr/src/lib/libast/common/features/mode.c
+++ b/usr/src/lib/libast/common/features/mode.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/param.sh b/usr/src/lib/libast/common/features/param.sh
index 6ac2dae5ee..b58ebfc9ac 100644
--- a/usr/src/lib/libast/common/features/param.sh
+++ b/usr/src/lib/libast/common/features/param.sh
@@ -1,7 +1,7 @@
########################################################################
# #
# This software is part of the ast package #
-# Copyright (c) 1985-2008 AT&T Intellectual Property #
+# Copyright (c) 1985-2009 AT&T Intellectual Property #
# and is licensed under the #
# Common Public License, Version 1.0 #
# by AT&T Intellectual Property #
diff --git a/usr/src/lib/libast/common/features/preroot.sh b/usr/src/lib/libast/common/features/preroot.sh
index 340ffd68d0..44e8596ad9 100644
--- a/usr/src/lib/libast/common/features/preroot.sh
+++ b/usr/src/lib/libast/common/features/preroot.sh
@@ -1,7 +1,7 @@
########################################################################
# #
# This software is part of the ast package #
-# Copyright (c) 1985-2008 AT&T Intellectual Property #
+# Copyright (c) 1985-2009 AT&T Intellectual Property #
# and is licensed under the #
# Common Public License, Version 1.0 #
# by AT&T Intellectual Property #
diff --git a/usr/src/lib/libast/common/features/sfinit.c b/usr/src/lib/libast/common/features/sfinit.c
index 82bb7a1f66..5a47c3e76c 100644
--- a/usr/src/lib/libast/common/features/sfinit.c
+++ b/usr/src/lib/libast/common/features/sfinit.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/sig.sh b/usr/src/lib/libast/common/features/sig.sh
index ce00815fe1..b67b2b1f3b 100644
--- a/usr/src/lib/libast/common/features/sig.sh
+++ b/usr/src/lib/libast/common/features/sig.sh
@@ -1,7 +1,7 @@
########################################################################
# #
# This software is part of the ast package #
-# Copyright (c) 1985-2008 AT&T Intellectual Property #
+# Copyright (c) 1985-2009 AT&T Intellectual Property #
# and is licensed under the #
# Common Public License, Version 1.0 #
# by AT&T Intellectual Property #
diff --git a/usr/src/lib/libast/common/features/signal.c b/usr/src/lib/libast/common/features/signal.c
index 1bce5eeb2f..f3c89f3574 100644
--- a/usr/src/lib/libast/common/features/signal.c
+++ b/usr/src/lib/libast/common/features/signal.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/features/standards b/usr/src/lib/libast/common/features/standards
index 9250fae63e..adee277e20 100644
--- a/usr/src/lib/libast/common/features/standards
+++ b/usr/src/lib/libast/common/features/standards
@@ -1,3 +1,4 @@
+set stdio
if tst note{ _ALL_SOURCE & _ISOC99_SOURCE & _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
#define _ALL_SOURCE 1
#define _ISOC99_SOURCE 1
@@ -33,6 +34,37 @@ if tst note{ _ALL_SOURCE & _ISOC99_SOURCE & _POSIX_SOURCE & _POSIX_C_SOURCE & _X
#define __EXTENSIONS__ 1
#endif
}
+elif tst note{ _ALL_SOURCE & _ISOC99_SOURCE & _POSIX_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
+ #define _ALL_SOURCE 1
+ #define _ISOC99_SOURCE 1
+ #define _POSIX_SOURCE 1
+ #define _XOPEN_SOURCE 9900
+ #define _GNU_SOURCE 1
+ #define __EXTENSIONS__ 1
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <stdlib.h>
+ #include <unistd.h>
+ }end {
+ #ifndef _ALL_SOURCE
+ #define _ALL_SOURCE 1
+ #endif
+ #ifndef _ISOC99_SOURCE
+ #define _ISOC99_SOURCE 1
+ #endif
+ #ifndef _POSIX_SOURCE
+ #define _POSIX_SOURCE 1
+ #endif
+ #ifndef _XOPEN_SOURCE
+ #define _XOPEN_SOURCE 9900
+ #endif
+ #ifndef _GNU_SOURCE
+ #define _GNU_SOURCE 1
+ #endif
+ #ifndef __EXTENSIONS__
+ #define __EXTENSIONS__ 1
+ #endif
+ }
elif tst note{ _ISOC99_SOURCE & _POSIX_SOURCE & _POSIX_C_SOURCE & _XOPEN_SOURCE & __EXTENSIONS__ works }end compile{
#define _ISOC99_SOURCE 1
#define _POSIX_SOURCE 1
diff --git a/usr/src/lib/libast/common/features/sys b/usr/src/lib/libast/common/features/sys
index 3e30180cbf..87ad1e5f4a 100644
--- a/usr/src/lib/libast/common/features/sys
+++ b/usr/src/lib/libast/common/features/sys
@@ -45,7 +45,6 @@ header unistd.h
header limits.h
header fcntl.h
header locale.h
-header sys/localedef.h
typ dev_t,nlink_t fail{
echo "#ifndef $m"
diff --git a/usr/src/lib/libast/common/features/tmx b/usr/src/lib/libast/common/features/tmx
index 6db5dbcc52..ebf5c0ff81 100644
--- a/usr/src/lib/libast/common/features/tmx
+++ b/usr/src/lib/libast/common/features/tmx
@@ -86,12 +86,14 @@ cat{
#endif
extern Time_t tmxdate(const char*, char**, Time_t);
+ extern Time_t tmxduration(const char*, char**);
extern char* tmxfmt(char*, size_t, const char*, Time_t);
extern Time_t tmxleap(Time_t);
extern Tm_t* tmxmake(Time_t);
extern Time_t tmxscan(const char*, char**, const char*, char**, Time_t, long);
extern int tmxsleep(Time_t);
extern Time_t tmxtime(Tm_t*, int);
+ extern Tm_t* tmxtm(Tm_t*, Time_t, Tm_zone_t*);
extern Time_t tmxgettime(void);
extern int tmxsettime(Time_t);
diff --git a/usr/src/lib/libast/common/features/uwin b/usr/src/lib/libast/common/features/uwin
index 8c4640fcc9..9ff3ab078f 100644
--- a/usr/src/lib/libast/common/features/uwin
+++ b/usr/src/lib/libast/common/features/uwin
@@ -1,6 +1,6 @@
lib a64l,acosh,asinh,atanh,cbrt,ceil,crypt,erf,exp,expm1,floor
lib gamma,getpass,lgamma,log,log1p,random,rcmd,rint,srand48
lib copysign,logb,finite,drem,sqrt,ilogb,remainder,scalb
-lib _copysign,_finite,_scalb,__iob_func,_p__iob
+lib _copysign,_finite,_scalb,__iob_func,_p__iob,__p__iob
dat _iob
diff --git a/usr/src/lib/libast/common/features/vmalloc b/usr/src/lib/libast/common/features/vmalloc
index cc33c8f81f..2ef415cd2b 100644
--- a/usr/src/lib/libast/common/features/vmalloc
+++ b/usr/src/lib/libast/common/features/vmalloc
@@ -116,6 +116,9 @@ lib alloca note{ alloca exists }end link{
}end
tst mal_alloca note{ alloca is based on malloc() }end execute{
+ #if __CYGWIN__
+ int main() { return 1; }
+ #else
#if _hdr_alloca
#include <alloca.h>
#endif
@@ -131,6 +134,7 @@ tst mal_alloca note{ alloca is based on malloc() }end execute{
{ alloca(10);
return 1;
}
+ #endif
}end
tst stk_down note{ stack grows downward }end execute{
diff --git a/usr/src/lib/libast/common/hash/hashalloc.c b/usr/src/lib/libast/common/hash/hashalloc.c
index e9be11083e..0dba5e6c19 100644
--- a/usr/src/lib/libast/common/hash/hashalloc.c
+++ b/usr/src/lib/libast/common/hash/hashalloc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashdump.c b/usr/src/lib/libast/common/hash/hashdump.c
index ee96b88d53..c453a40c0c 100644
--- a/usr/src/lib/libast/common/hash/hashdump.c
+++ b/usr/src/lib/libast/common/hash/hashdump.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashfree.c b/usr/src/lib/libast/common/hash/hashfree.c
index 14fd4e6bcd..f01337e1cf 100644
--- a/usr/src/lib/libast/common/hash/hashfree.c
+++ b/usr/src/lib/libast/common/hash/hashfree.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashlast.c b/usr/src/lib/libast/common/hash/hashlast.c
index e3459fd89a..6457a1a1ab 100644
--- a/usr/src/lib/libast/common/hash/hashlast.c
+++ b/usr/src/lib/libast/common/hash/hashlast.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashlib.h b/usr/src/lib/libast/common/hash/hashlib.h
index 8ca9d17e17..34e61d6afb 100644
--- a/usr/src/lib/libast/common/hash/hashlib.h
+++ b/usr/src/lib/libast/common/hash/hashlib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashlook.c b/usr/src/lib/libast/common/hash/hashlook.c
index b5292f94c0..99dec30ecc 100644
--- a/usr/src/lib/libast/common/hash/hashlook.c
+++ b/usr/src/lib/libast/common/hash/hashlook.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashscan.c b/usr/src/lib/libast/common/hash/hashscan.c
index 313ebd3957..9294ee6356 100644
--- a/usr/src/lib/libast/common/hash/hashscan.c
+++ b/usr/src/lib/libast/common/hash/hashscan.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashsize.c b/usr/src/lib/libast/common/hash/hashsize.c
index 62e363085c..0016cec631 100644
--- a/usr/src/lib/libast/common/hash/hashsize.c
+++ b/usr/src/lib/libast/common/hash/hashsize.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashview.c b/usr/src/lib/libast/common/hash/hashview.c
index 6da2ab3179..161a2ae38f 100644
--- a/usr/src/lib/libast/common/hash/hashview.c
+++ b/usr/src/lib/libast/common/hash/hashview.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/hashwalk.c b/usr/src/lib/libast/common/hash/hashwalk.c
index 90fc6201df..c98f764d4a 100644
--- a/usr/src/lib/libast/common/hash/hashwalk.c
+++ b/usr/src/lib/libast/common/hash/hashwalk.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/memhash.c b/usr/src/lib/libast/common/hash/memhash.c
index d045c9b4a4..e293e2bb86 100644
--- a/usr/src/lib/libast/common/hash/memhash.c
+++ b/usr/src/lib/libast/common/hash/memhash.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/memsum.c b/usr/src/lib/libast/common/hash/memsum.c
index ce59e6dd52..6fad3b6f10 100644
--- a/usr/src/lib/libast/common/hash/memsum.c
+++ b/usr/src/lib/libast/common/hash/memsum.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/strhash.c b/usr/src/lib/libast/common/hash/strhash.c
index f993b0dae7..da88165683 100644
--- a/usr/src/lib/libast/common/hash/strhash.c
+++ b/usr/src/lib/libast/common/hash/strhash.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/strkey.c b/usr/src/lib/libast/common/hash/strkey.c
index 57176e9581..00932cc02e 100644
--- a/usr/src/lib/libast/common/hash/strkey.c
+++ b/usr/src/lib/libast/common/hash/strkey.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/hash/strsum.c b/usr/src/lib/libast/common/hash/strsum.c
index 2c4d302777..f45e61f485 100644
--- a/usr/src/lib/libast/common/hash/strsum.c
+++ b/usr/src/lib/libast/common/hash/strsum.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/ast.h b/usr/src/lib/libast/common/include/ast.h
index ec3834159a..f9c99e866c 100644
--- a/usr/src/lib/libast/common/include/ast.h
+++ b/usr/src/lib/libast/common/include/ast.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -176,7 +176,7 @@ typedef struct
#define mbcoll() (ast.mb_xfrm!=0)
#define mbwide() (mbmax()>1)
-#define mbchar(p) (mbwide()?((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0?((p+=ast.tmp_int),ast.tmp_wchar):(p++,ast.tmp_int)):(*(unsigned char*)(p++)))
+#define mbchar(p) (mbwide()?((ast.tmp_int=(*ast.mb_towc)(&ast.tmp_wchar,(char*)(p),mbmax()))>0?((p+=ast.tmp_int),ast.tmp_wchar):(p+=ast.mb_sync+1,ast.tmp_int)):(*(unsigned char*)(p++)))
#define mbinit() (mbwide()?(*ast.mb_towc)((wchar_t*)0,(char*)0,mbmax()):0)
#define mbsize(p) (mbwide()?(*ast.mb_len)((char*)(p),mbmax()):((p),1))
#define mbconv(s,w) (ast.mb_conv?(*ast.mb_conv)(s,w):((*(s)=(w)),1))
@@ -291,6 +291,7 @@ extern size_t pathnative(const char*, char*, size_t);
extern char* pathpath(char*, const char*, const char*, int);
extern size_t pathposix(const char*, char*, size_t);
extern char* pathprobe(char*, char*, const char*, const char*, const char*, int);
+extern size_t pathprog(const char*, char*, size_t);
extern char* pathrepl(char*, const char*, const char*);
extern int pathsetlink(const char*, const char*);
extern char* pathshell(void);
@@ -311,6 +312,7 @@ extern int strmatch(const char*, const char*);
extern int strmode(const char*);
extern int strnacmp(const char*, const char*, size_t);
extern char* strncopy(char*, const char*, size_t);
+extern int strnpcmp(const char*, const char*, size_t);
extern double strntod(const char*, size_t, char**);
extern _ast_fltmax_t strntold(const char*, size_t, char**);
extern long strntol(const char*, size_t, char**, int);
@@ -319,7 +321,9 @@ extern long strnton(const char*, size_t, char**, char*, int);
extern unsigned long strntoul(const char*, size_t, char**, int);
extern intmax_t strntonll(const char*, size_t, char**, char*, int);
extern uintmax_t strntoull(const char*, size_t, char**, int);
+extern int strnvcmp(const char*, const char*, size_t);
extern int stropt(const char*, const void*, int, int(*)(void*, const void*, int, const char*), void*);
+extern int strpcmp(const char*, const char*);
extern int strperm(const char*, char**, int);
extern void* strpsearch(const void*, size_t, size_t, const char*, char**);
extern void* strsearch(const void*, size_t, size_t, Strcmp_f, const char*, void*);
@@ -332,6 +336,7 @@ extern long strton(const char*, char**, char*, int);
extern intmax_t strtonll(const char*, char**, char*, int);
extern int struid(const char*);
extern int struniq(char**, int);
+extern int strvcmp(const char*, const char*);
#undef extern
diff --git a/usr/src/lib/libast/common/include/ast_dir.h b/usr/src/lib/libast/common/include/ast_dir.h
index ead03c1eee..672ce007f7 100644
--- a/usr/src/lib/libast/common/include/ast_dir.h
+++ b/usr/src/lib/libast/common/include/ast_dir.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/ast_getopt.h b/usr/src/lib/libast/common/include/ast_getopt.h
index b1d262670f..85e2b2b0ee 100644
--- a/usr/src/lib/libast/common/include/ast_getopt.h
+++ b/usr/src/lib/libast/common/include/ast_getopt.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/ast_std.h b/usr/src/lib/libast/common/include/ast_std.h
index b9ae148c62..11c01b3776 100644
--- a/usr/src/lib/libast/common/include/ast_std.h
+++ b/usr/src/lib/libast/common/include/ast_std.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -107,22 +107,27 @@ struct lconv
#define extern __EXPORT__
#endif
+#if !_UWIN /* for ast54 compatibility */
+
#undef getenv
#define getenv _ast_getenv
+#undef setenviron
+#define setenviron _ast_setenviron
+
+extern char* getenv(const char*);
+
+#endif
+
#undef localeconv
#define localeconv _ast_localeconv
#undef setlocale
#define setlocale _ast_setlocale
-#undef setenviron
-#define setenviron _ast_setenviron
-
#undef strerror
#define strerror _ast_strerror
-extern char* getenv(const char*);
extern struct lconv* localeconv(void);
extern char* setenviron(const char*);
extern char* setlocale(int, const char*);
@@ -149,6 +154,7 @@ extern char* strerror(int);
#define AST_LC_MEASUREMENT 12
#define AST_LC_PAPER 13
#define AST_LC_COUNT 14
+#define AST_LC_LANG 255
#define AST_LC_find (1L<<28)
#define AST_LC_debug (1L<<29)
@@ -197,6 +203,9 @@ extern char* strerror(int);
#ifndef LC_PAPER
#define LC_PAPER (-AST_LC_PAPER)
#endif
+#ifndef LC_LANG
+#define LC_LANG (-AST_LC_LANG)
+#endif
#undef extern
@@ -237,8 +246,9 @@ typedef struct
int (*mb_conv)(char*, wchar_t);
uint32_t env_serial;
+ uint32_t mb_sync;
- char pad[944];
+ char pad[940];
} _Ast_info_t;
diff --git a/usr/src/lib/libast/common/include/ast_version.h b/usr/src/lib/libast/common/include/ast_version.h
index 585bdce431..a15cf03d2c 100644
--- a/usr/src/lib/libast/common/include/ast_version.h
+++ b/usr/src/lib/libast/common/include/ast_version.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -25,4 +25,4 @@
* AT&T Research
*/
-#define _AST_VERSION 20080910L
+#define _AST_VERSION 20090202L
diff --git a/usr/src/lib/libast/common/include/ast_windows.h b/usr/src/lib/libast/common/include/ast_windows.h
index da18e66cc6..4bbd94bab5 100644
--- a/usr/src/lib/libast/common/include/ast_windows.h
+++ b/usr/src/lib/libast/common/include/ast_windows.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/ccode.h b/usr/src/lib/libast/common/include/ccode.h
index c4312af2e9..9c33ce2cc7 100644
--- a/usr/src/lib/libast/common/include/ccode.h
+++ b/usr/src/lib/libast/common/include/ccode.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/cdt.h b/usr/src/lib/libast/common/include/cdt.h
index 3dc5b7b7f8..f2f0389296 100644
--- a/usr/src/lib/libast/common/include/cdt.h
+++ b/usr/src/lib/libast/common/include/cdt.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/cmdarg.h b/usr/src/lib/libast/common/include/cmdarg.h
index 07307edc9f..3dbaf20e83 100644
--- a/usr/src/lib/libast/common/include/cmdarg.h
+++ b/usr/src/lib/libast/common/include/cmdarg.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/debug.h b/usr/src/lib/libast/common/include/debug.h
index e0637d2f46..76c21ca069 100644
--- a/usr/src/lib/libast/common/include/debug.h
+++ b/usr/src/lib/libast/common/include/debug.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -46,14 +46,17 @@
#define DEBUG_ASSERT(p) ((p) ? 0 : (debug_fatal(__FILE__, __LINE__),0))
#define DEBUG_COUNT(n) ((n) += 1)
#define DEBUG_TALLY(c,n,v) ((c) ? ((n) += (v)) : (n))
+#define DEBUG_INCREASE(n) ((n) += 1)
+#define DEBUG_DECREASE(n) ((n) -= 1)
#define DEBUG_DECLARE(t,v) t v
#define DEBUG_SET(n,v) ((n) = (v))
#define DEBUG_PRINT(fd,s,v) do {char _b[1024];write(fd,_b,sfsprintf(_b,sizeof(_b),s,v));} while(0)
#define DEBUG_WRITE(fd,d,n) write((fd),(d),(n))
#define DEBUG_TEMP(temp) (temp) /* debugging stuff that should be removed */
-#define DEBUG_RETURN(x) (debug_fatal(__FILE__, __LINE__), (x))
-#define DEBUG_BREAK (debug_fatal(__FILE__, __LINE__))
+#define DEBUG_BREAK break
+#define DEBUG_CONTINUE continue
#define DEBUG_GOTO(label) do { debug_fatal(__FILE__, __LINE__); goto label; } while(0)
+#define DEBUG_RETURN(x) do { debug_fatal(__FILE__, __LINE__); return(x); } while(0)
#else
@@ -66,15 +69,31 @@
#define DEBUG_ASSERT(p)
#define DEBUG_COUNT(n)
#define DEBUG_TALLY(c,n,v)
+#define DEBUG_INCREASE(n)
+#define DEBUG_DECREASE(n)
#define DEBUG_DECLARE(t,v)
#define DEBUG_SET(n,v)
#define DEBUG_PRINT(fd,s,v)
#define DEBUG_WRITE(fd,d,n)
-#define DEBUG_KPV(x)
-#define DEBUG_RETURN(x) return(x)
+#define DEBUG_TEMP(x)
#define DEBUG_BREAK break
+#define DEBUG_CONTINUE continue
#define DEBUG_GOTO(label) goto label
+#define DEBUG_RETURN(x) return(x)
+
+#endif
+#ifndef BREAK
+#define BREAK DEBUG_BREAK
+#endif
+#ifndef CONTINUE
+#define CONTINUE DEBUG_CONTINUE
+#endif
+#ifndef GOTO
+#define GOTO(label) DEBUG_GOTO(label)
+#endif
+#ifndef RETURN
+#define RETURN(x) DEBUG_RETURN(x)
#endif
#if _BLD_ast && defined(__EXPORT__)
diff --git a/usr/src/lib/libast/common/include/dt.h b/usr/src/lib/libast/common/include/dt.h
index 54824790c6..b0bb7c54db 100644
--- a/usr/src/lib/libast/common/include/dt.h
+++ b/usr/src/lib/libast/common/include/dt.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/error.h b/usr/src/lib/libast/common/include/error.h
index e10f80d69f..848f760817 100644
--- a/usr/src/lib/libast/common/include/error.h
+++ b/usr/src/lib/libast/common/include/error.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/find.h b/usr/src/lib/libast/common/include/find.h
index 46946a1d08..b7d5810202 100644
--- a/usr/src/lib/libast/common/include/find.h
+++ b/usr/src/lib/libast/common/include/find.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/fnv.h b/usr/src/lib/libast/common/include/fnv.h
index 89c39598f4..743b6c26fe 100644
--- a/usr/src/lib/libast/common/include/fnv.h
+++ b/usr/src/lib/libast/common/include/fnv.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/fs3d.h b/usr/src/lib/libast/common/include/fs3d.h
index acedc1b017..37338ab898 100644
--- a/usr/src/lib/libast/common/include/fs3d.h
+++ b/usr/src/lib/libast/common/include/fs3d.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -95,13 +95,16 @@
#define FS3D_SIZE(n) ((n)<<4)
#define FS3D_SIZEOF(n) ((n)>>4)
-extern int mount(const char*, char*, int, void*);
+#if !_BLD_3d
+#define mount(s,t,f,d) fs3d_mount(s,t,f,d)
+#endif
#if _BLD_ast && defined(__EXPORT__)
#define extern __EXPORT__
#endif
extern int fs3d(int);
+extern int fs3d_mount(const char*, char*, int, void*);
extern char* pathnext(char*, char*, long*);
#undef extern
diff --git a/usr/src/lib/libast/common/include/fts.h b/usr/src/lib/libast/common/include/fts.h
index 3464b1fc7d..8425145c35 100644
--- a/usr/src/lib/libast/common/include/fts.h
+++ b/usr/src/lib/libast/common/include/fts.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -112,16 +112,21 @@ struct Ftsent
long fts_number; /* local numeric value */
int fts_errno; /* errno for this entry */
unsigned short fts_info; /* info flags */
- unsigned short fts_namelen; /* strlen(fts_name) */
- unsigned short fts_pathlen; /* strlen(fts_path) */
- short fts_level; /* file tree depth, 0 at top */
+
+ unsigned short _fts_namelen; /* old fts_namelen */
+ unsigned short _fts_pathlen; /* old fts_pathlen */
+ short _fts_level; /* old fts_level */
+
+ short _fts_status; /* <ftwalk.h> compatibility */
+ struct stat _fts_statb; /* <ftwalk.h> compatibility */
+
+ FTS* fts; /* fts_open() handle */
+ size_t fts_namelen; /* strlen(fts_name) */
+ size_t fts_pathlen; /* strlen(fts_path) */
+ ssize_t fts_level; /* file tree depth, 0 at top */
#ifdef _FTSENT_PRIVATE_
_FTSENT_PRIVATE_
-#else
- short _fts_pad_1; /* <ftwalk.h> compatibility */
- struct stat _fts_pad_2; /* <ftwalk.h> compatibility */
- FTS* fts; /* fts_open() handle */
#endif
};
diff --git a/usr/src/lib/libast/common/include/ftwalk.h b/usr/src/lib/libast/common/include/ftwalk.h
index f7b1216061..9557c1ea51 100644
--- a/usr/src/lib/libast/common/include/ftwalk.h
+++ b/usr/src/lib/libast/common/include/ftwalk.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -43,6 +43,8 @@
#define fts_parent parent
#define fts_path path
#define fts_pathlen pathlen
+#define _fts_status status
+#define _fts_statb statb
#define FTSENT Ftw_t /* <fts.h> internal */
#define Ftsent FTW /* <fts.h> internal */
@@ -54,10 +56,6 @@
void* pointer; /* local pointer value */ \
} local;
-#define _FTSENT_PRIVATE_ /* fts internal */ \
- short status; /* internal status */ \
- struct stat statb; /* fts_statp data */
-
#include <fts.h>
/*
diff --git a/usr/src/lib/libast/common/include/glob.h b/usr/src/lib/libast/common/include/glob.h
index 5469884213..1554c435e1 100644
--- a/usr/src/lib/libast/common/include/glob.h
+++ b/usr/src/lib/libast/common/include/glob.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/hash.h b/usr/src/lib/libast/common/include/hash.h
index 50ea5e1831..e118141c05 100644
--- a/usr/src/lib/libast/common/include/hash.h
+++ b/usr/src/lib/libast/common/include/hash.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/hashkey.h b/usr/src/lib/libast/common/include/hashkey.h
index f47c53a64a..55158d62fe 100644
--- a/usr/src/lib/libast/common/include/hashkey.h
+++ b/usr/src/lib/libast/common/include/hashkey.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/hashpart.h b/usr/src/lib/libast/common/include/hashpart.h
index c12f9bd396..898fdbb674 100644
--- a/usr/src/lib/libast/common/include/hashpart.h
+++ b/usr/src/lib/libast/common/include/hashpart.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/ip6.h b/usr/src/lib/libast/common/include/ip6.h
index 4a7f2df01e..37de82c03c 100644
--- a/usr/src/lib/libast/common/include/ip6.h
+++ b/usr/src/lib/libast/common/include/ip6.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/ls.h b/usr/src/lib/libast/common/include/ls.h
index 7fe969071b..b3d49d3e5b 100644
--- a/usr/src/lib/libast/common/include/ls.h
+++ b/usr/src/lib/libast/common/include/ls.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -67,8 +67,8 @@
#define LS_USER (1<<10) /* first user flag bit */
#define LS_W_BLOCKS 6 /* LS_BLOCKS field width */
-#define LS_W_INUMBER 7 /* LS_INUMBER field width */
-#define LS_W_LONG 55 /* LS_LONG width (w/o names) */
+#define LS_W_INUMBER 9 /* LS_INUMBER field width */
+#define LS_W_LONG 57 /* LS_LONG width (w/o names) */
#define LS_W_LINK 4 /* link text width (w/o names) */
#define LS_W_MARK 1 /* LS_MARK field width */
#define LS_W_NAME 9 /* group|user name field width */
diff --git a/usr/src/lib/libast/common/include/magic.h b/usr/src/lib/libast/common/include/magic.h
index b6827316c5..c143d4ed1f 100644
--- a/usr/src/lib/libast/common/include/magic.h
+++ b/usr/src/lib/libast/common/include/magic.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/magicid.h b/usr/src/lib/libast/common/include/magicid.h
index 65fbdbfab7..3b5acf7812 100644
--- a/usr/src/lib/libast/common/include/magicid.h
+++ b/usr/src/lib/libast/common/include/magicid.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/mc.h b/usr/src/lib/libast/common/include/mc.h
index e4d8fd049d..b66e42e54b 100644
--- a/usr/src/lib/libast/common/include/mc.h
+++ b/usr/src/lib/libast/common/include/mc.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/mime.h b/usr/src/lib/libast/common/include/mime.h
index e50929ed82..114e178475 100644
--- a/usr/src/lib/libast/common/include/mime.h
+++ b/usr/src/lib/libast/common/include/mime.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/mnt.h b/usr/src/lib/libast/common/include/mnt.h
index 1e03907f0b..08400acd94 100644
--- a/usr/src/lib/libast/common/include/mnt.h
+++ b/usr/src/lib/libast/common/include/mnt.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/modecanon.h b/usr/src/lib/libast/common/include/modecanon.h
index 4f51bdea96..058f50a89e 100644
--- a/usr/src/lib/libast/common/include/modecanon.h
+++ b/usr/src/lib/libast/common/include/modecanon.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/modex.h b/usr/src/lib/libast/common/include/modex.h
index f8d119ec64..675b2168e5 100644
--- a/usr/src/lib/libast/common/include/modex.h
+++ b/usr/src/lib/libast/common/include/modex.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/namval.h b/usr/src/lib/libast/common/include/namval.h
index d66647451e..f8f65ab2cb 100644
--- a/usr/src/lib/libast/common/include/namval.h
+++ b/usr/src/lib/libast/common/include/namval.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/option.h b/usr/src/lib/libast/common/include/option.h
index 874c06ff88..9e96ee7998 100644
--- a/usr/src/lib/libast/common/include/option.h
+++ b/usr/src/lib/libast/common/include/option.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/proc.h b/usr/src/lib/libast/common/include/proc.h
index 43bf3a1791..000f638b21 100644
--- a/usr/src/lib/libast/common/include/proc.h
+++ b/usr/src/lib/libast/common/include/proc.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/recfmt.h b/usr/src/lib/libast/common/include/recfmt.h
index 65a58dfaf9..6d7999f263 100644
--- a/usr/src/lib/libast/common/include/recfmt.h
+++ b/usr/src/lib/libast/common/include/recfmt.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/regex.h b/usr/src/lib/libast/common/include/regex.h
index a1ecf9d4be..3e9400e8ed 100644
--- a/usr/src/lib/libast/common/include/regex.h
+++ b/usr/src/lib/libast/common/include/regex.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -71,6 +71,8 @@
#define REG_SHELL_ESCAPED 0x00400000 /* \ not special */
#define REG_SHELL_PATH 0x00800000 /* explicit / match */
+#define REG_REGEXP 0x40000000 /* <regexp.h> compatibility */
+
/* regexec flags */
#define REG_NOTBOL 0x00000040 /* ^ is not a special char */
diff --git a/usr/src/lib/libast/common/include/sfdisc.h b/usr/src/lib/libast/common/include/sfdisc.h
index 0fdd0f297c..b7b0781e38 100644
--- a/usr/src/lib/libast/common/include/sfdisc.h
+++ b/usr/src/lib/libast/common/include/sfdisc.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/sfio.h b/usr/src/lib/libast/common/include/sfio.h
index 11317dad65..3506f5c955 100644
--- a/usr/src/lib/libast/common/include/sfio.h
+++ b/usr/src/lib/libast/common/include/sfio.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -48,6 +48,7 @@ typedef ssize_t (*Sfread_f)_ARG_((Sfio_t*, Void_t*, size_t, Sfdisc_t*));
typedef ssize_t (*Sfwrite_f)_ARG_((Sfio_t*, const Void_t*, size_t, Sfdisc_t*));
typedef Sfoff_t (*Sfseek_f)_ARG_((Sfio_t*, Sfoff_t, int, Sfdisc_t*));
typedef int (*Sfexcept_f)_ARG_((Sfio_t*, int, Void_t*, Sfdisc_t*));
+typedef int (*Sfwalk_f)_ARG_((Sfio_t*, Void_t*));
/* discipline structure */
struct _sfdisc_s
@@ -232,6 +233,7 @@ extern Sfio_t* sfpopen _ARG_((Sfio_t*, const char*, const char*));
extern Sfio_t* sfstack _ARG_((Sfio_t*, Sfio_t*));
extern Sfio_t* sfswap _ARG_((Sfio_t*, Sfio_t*));
extern Sfio_t* sftmp _ARG_((size_t));
+extern int sfwalk _ARG_((Sfwalk_f, Void_t*, int));
extern int sfpurge _ARG_((Sfio_t*));
extern int sfpoll _ARG_((Sfio_t**, int, int));
extern Void_t* sfreserve _ARG_((Sfio_t*, ssize_t, int));
diff --git a/usr/src/lib/libast/common/include/sfio_s.h b/usr/src/lib/libast/common/include/sfio_s.h
index 19a23d4772..46b2348b9c 100644
--- a/usr/src/lib/libast/common/include/sfio_s.h
+++ b/usr/src/lib/libast/common/include/sfio_s.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/sfio_t.h b/usr/src/lib/libast/common/include/sfio_t.h
index c5251d3f34..5c819865c8 100644
--- a/usr/src/lib/libast/common/include/sfio_t.h
+++ b/usr/src/lib/libast/common/include/sfio_t.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/shcmd.h b/usr/src/lib/libast/common/include/shcmd.h
index b25d2467a5..4189f92c39 100644
--- a/usr/src/lib/libast/common/include/shcmd.h
+++ b/usr/src/lib/libast/common/include/shcmd.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -66,18 +66,19 @@ typedef struct Shbltin_s
# undef Shell_t
# undef Namval_t
#else
-# define sh_run(c, ac, av) ((c)?(*((Shbltin_t*)(c))->shrun)(ac,av):-1)
-# define sh_system(c,str) ((c)?(*((Shbltin_t*)(c))->shtrap)(str,0):system(str))
-# define sh_exit(c,n) ((c)?(*((Shbltin_t*)(c))->shexit)(n):exit(n))
-# define sh_checksig(c) ((c) && ((Shbltin_t*)(c))->sigset)
+# define sh_context(c) ((Shbltin_t*)(c))
+# define sh_run(c, ac, av) ((c)?(*sh_context(c)->shrun)(ac,av):-1)
+# define sh_system(c,str) ((c)?(*sh_context(c)->shtrap)(str,0):system(str))
+# define sh_exit(c,n) ((c)?(*sh_context(c)->shexit)(n):exit(n))
+# define sh_checksig(c) ((c) && sh_context(c)->sigset)
# if defined(SFIO_VERSION) || defined(_AST_H)
# define LIB_INIT(c)
# else
-# define LIB_INIT(c) ((c) && (((Shbltin_t*)(c))->nosfio = 1))
+# define LIB_INIT(c) ((c) && (sh_context(c)->nosfio = 1))
# endif
# ifndef _CMD_H
# define cmdinit(ac,av,c,cat,flg) do { if((ac)<=0) return(0); \
- (((Shbltin_t*)(c))->notify = ((flg)&ERROR_NOTIFY)?1:0);} while(0)
+ (sh_context(c)->notify = ((flg)&ERROR_NOTIFY)?1:0);} while(0)
# endif
#endif
diff --git a/usr/src/lib/libast/common/include/stack.h b/usr/src/lib/libast/common/include/stack.h
index 2d9d03835f..a9e0451567 100644
--- a/usr/src/lib/libast/common/include/stack.h
+++ b/usr/src/lib/libast/common/include/stack.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/stak.h b/usr/src/lib/libast/common/include/stak.h
index 4d0c49648d..a7b9185553 100644
--- a/usr/src/lib/libast/common/include/stak.h
+++ b/usr/src/lib/libast/common/include/stak.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/stk.h b/usr/src/lib/libast/common/include/stk.h
index 53bcde612f..5fd7430291 100644
--- a/usr/src/lib/libast/common/include/stk.h
+++ b/usr/src/lib/libast/common/include/stk.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/swap.h b/usr/src/lib/libast/common/include/swap.h
index bce2045bd5..868e3fd418 100644
--- a/usr/src/lib/libast/common/include/swap.h
+++ b/usr/src/lib/libast/common/include/swap.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/tar.h b/usr/src/lib/libast/common/include/tar.h
index a6794fd420..a9e6af4585 100644
--- a/usr/src/lib/libast/common/include/tar.h
+++ b/usr/src/lib/libast/common/include/tar.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/times.h b/usr/src/lib/libast/common/include/times.h
index 4f442ca3ee..ec7f14d5ec 100644
--- a/usr/src/lib/libast/common/include/times.h
+++ b/usr/src/lib/libast/common/include/times.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/tm.h b/usr/src/lib/libast/common/include/tm.h
index 1a490a63a5..84b3ae182c 100644
--- a/usr/src/lib/libast/common/include/tm.h
+++ b/usr/src/lib/libast/common/include/tm.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -93,8 +93,9 @@
#define TM_ERA_YEAR 115
#define TM_ORDINALS 116
#define TM_FINAL 126
+#define TM_WORK 129
-#define TM_NFORM 129
+#define TM_NFORM 132
typedef struct /* leap second info */
{
@@ -114,7 +115,7 @@ typedef struct /* time zone info */
typedef struct /* tm library readonly data */
{
char** format; /* default TM_* format strings */
- char* lex; /* format lex type classes */
+ unsigned char* lex; /* format lex type classes */
char* digit; /* output digits */
short* days; /* days in month i */
short* sum; /* days in months before i */
diff --git a/usr/src/lib/libast/common/include/tok.h b/usr/src/lib/libast/common/include/tok.h
index 5b8a5fa1df..0d23994eca 100644
--- a/usr/src/lib/libast/common/include/tok.h
+++ b/usr/src/lib/libast/common/include/tok.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/usage.h b/usr/src/lib/libast/common/include/usage.h
index d969a0e4c1..e2bea60f9c 100644
--- a/usr/src/lib/libast/common/include/usage.h
+++ b/usr/src/lib/libast/common/include/usage.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/vdb.h b/usr/src/lib/libast/common/include/vdb.h
index ed1251a2d8..c03e85e5b3 100644
--- a/usr/src/lib/libast/common/include/vdb.h
+++ b/usr/src/lib/libast/common/include/vdb.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/vecargs.h b/usr/src/lib/libast/common/include/vecargs.h
index 45d3e683f1..d36a403752 100644
--- a/usr/src/lib/libast/common/include/vecargs.h
+++ b/usr/src/lib/libast/common/include/vecargs.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/vmalloc.h b/usr/src/lib/libast/common/include/vmalloc.h
index 8cf3e9b974..0115078cf5 100644
--- a/usr/src/lib/libast/common/include/vmalloc.h
+++ b/usr/src/lib/libast/common/include/vmalloc.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/include/wait.h b/usr/src/lib/libast/common/include/wait.h
index c64bf8f47f..ed8a1d3209 100644
--- a/usr/src/lib/libast/common/include/wait.h
+++ b/usr/src/lib/libast/common/include/wait.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/man/ip6.3 b/usr/src/lib/libast/common/man/ip6.3
new file mode 100644
index 0000000000..1dadb05d9d
--- /dev/null
+++ b/usr/src/lib/libast/common/man/ip6.3
@@ -0,0 +1,85 @@
+.fp 5 B
+.de Af
+.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
+.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
+..
+.de aF
+.ie \\$3 .ft \\$1
+.el \{\
+.ds ;G \&
+.nr ;G \\n(.f
+.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
+\\*(;G
+.ft \\n(;G \}
+..
+.de L
+.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
+..
+.de LR
+.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
+..
+.de RL
+.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
+..
+.de EX \" start example
+.ta 1i 2i 3i 4i 5i 6i
+.PP
+.RS
+.PD 0
+.ft 5
+.nf
+..
+.de EE \" end example
+.fi
+.ft
+.PD
+.RE
+.PP
+..
+.TH IP6 3
+.SH NAME
+ip6 \- IP V6 address support
+.SH SYNOPSIS
+.EX
+#include <ip6.h>
+
+char* fmtip6(unsigned char* addr, int bits);
+int strtoip6(const char* str, char** end, unsigned char* addr, unsigned char* bits);
+.EE
+
+.SH DESCRIPTION
+.L fmtip6()
+formats the IPV6 address
+.L addr
+with optional prefix bits
+.L bits
+(0 if not a prefix) into a thread-specific 0-terminated temporary buffer and returns a pointer
+to the formatted value.
+
+.PP
+.L strtoip6()
+converts a formatted IPV6 address from the 0-terminated string
+.L str
+into a host order IPV6 address in
+.L addr
+which must be a buffer of at least
+.L IP6ADDR
+bytes.
+If
+.L bits
+is not 0 then an optional
+.BI / bits
+(prefix size in bits) is parsed and
+.L *bits
+is set to the number of prefix bits.
+If
+.L end
+is not 0 then
+.L *end
+will point to the first unparsed character in
+.L str
+on return.
+0 is returned on success, -1 on failure.
+
+.SH "SEE ALSO"
+dss(1)
diff --git a/usr/src/lib/libast/common/man/regex.3 b/usr/src/lib/libast/common/man/regex.3
new file mode 100644
index 0000000000..7c15d21c46
--- /dev/null
+++ b/usr/src/lib/libast/common/man/regex.3
@@ -0,0 +1,163 @@
+.fp 5 B
+.de Af
+.ds ;G \\*(;G\\f\\$1\\$3\\f\\$2
+.if !\\$4 .Af \\$2 \\$1 "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
+..
+.de aF
+.ie \\$3 .ft \\$1
+.el \{\
+.ds ;G \&
+.nr ;G \\n(.f
+.Af "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7" "\\$8" "\\$9"
+\\*(;G
+.ft \\n(;G \}
+..
+.de L
+.aF 5 \\n(.f "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
+..
+.de LR
+.aF 5 1 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
+..
+.de RL
+.aF 1 5 "\\$1" "\\$2" "\\$3" "\\$4" "\\$5" "\\$6" "\\$7"
+..
+.de EX \" start example
+.ta 1i 2i 3i 4i 5i 6i
+.PP
+.RS
+.PD 0
+.ft 5
+.nf
+..
+.de EE \" end example
+.fi
+.ft
+.PD
+.RE
+.PP
+..
+.TH REGEX 3
+.SH NAME
+regex \- regular expression interface
+.SH SYNOPSIS
+.EX
+#include <regex.h>
+
+int regcomp(regex_t* \fIre\fP, const char* \fIregex\fP, int \fIcflags\fP);
+int regexec(const regex_t* \fIre\fP, const char* \fIstring\fP, size_t \fInmatch\fP, regmatch_t \fIpmatch\fP[], int \fIeflags\fP);
+size_t regerror(int \fIcode\fP, const regex_t* \fIre\fP, char* \fIerrbuf\fP, size_t \fIerrbuf_size\fP);
+void regfree(regex_t* \fIre\fP);
+
+regclass_t regclass(const char* \fIstr\fP, char** \fIend\fP);
+int regaddclass(const char* \fIname\fP, regclass_t \fIclassf\fP);
+int regcollate(const char* \fIstr\fP, char** \fIend\fP, char* \fIbuf\fP, int \fIsize\fP);
+
+int regcomb(regex_t* \fIre_1\fP, regex_t* \fIre_2\fP);
+size_t regdecomp(regex_t* \fIre\fP, regflags_t \fIflags\fP, char* \fIbuf\fP, size_t \fIsize\fP);
+int regdup(regex_t* \fIre_old\fP, regex_t* \fIre_new\fP);
+regstat_t* regstat(const regex_t* \fIre\fP);
+
+regex_t* regcache(const char* \fIpattern\fP, regflags_t \fIflags\fP, int* \fIpcode\fP);
+
+int regncomp(regex_t* \fIre\fP, const char* \fIpattern\fP, size_t \fIsize\fP, regflags_t \fIflags\fP);
+int regnexec(const regex_t* \fIre\fP, const char* \fIsubject\fP, size_t \fIsize\fP, size_t \fInmatch\fP, regmatch_t* \fImatch\fP, regflags_t \fIflags\fP);
+int regrecord(const regex_t* \fIre\fP);
+int regrexec(const regex_t* \fIre\fP, const char* \fIbuf\fP, size_t \fIsize\fP, size_t \fInmatch\fP, regmatch_t* \fImatch\fP, regflags_t \fIflags\fP, int \fIsep\fP, void* \fIhandle\fP, regrecord_t \fIrecordf\fP);
+void regfatal(regex_t* \fIre\fP, int \fIlevel\fP, int \fIcode\fP);
+void regfatalpat(regex_t* \fIre\fP, int \fIlevel\fP, int \fIcode\fP, const char* \fIpattern\fP);
+
+int regsubcomp(regex_t* \fIre\fP, const char* \fIstr\fP, const regflags_t* \fImap\fP, int \fIminmatch\fP, regflags_t \fIflags\fP);
+int regsubexec(const regex_t* \fIre\fP, const char* \fIsubject\fP, size_t \fInmatch\fP, regmatch_t* match);
+int regsubflags(regex_t* \fIre\fP, const char* \fIstr\fP, char** \fIend\fP, int \fIdelim\fP, const regflags_t* \fImap\fP, int* \fIpm\fP, regflags_t* \fIpf\fP);
+void regsubfree(regex_t* \fIre\fP);
+.EE
+
+.SH DESCRIPTION
+.LR regcomp() ,
+.LR regexec() ,
+.LR regerror() ,
+and
+.L regfree()
+are the POSIX regular expression functions.
+The remaining functions are
+.B ast
+extensions.
+.B ast
+also provides
+.I flags
+extensions to the
+.LR regcomp() ,
+.LR regexec()
+functions and
+.I code
+extensions to the
+.L regerror()
+function.
+
+.PP
+.L regcache()
+maintains a cache of compiled regular expressions for patterns of size
+255 bytes or less.
+The initial cache size is 8.
+.L pattern
+and
+.L flags
+are passed to
+.L regcomp()
+with an
+.L re
+pointer maintained by
+.LR regcache() .
+.LR pcode ,
+if not 0, points to the return value of the
+.L regcomp()
+call.
+If the
+.L regcomp()
+call fails,
+.L regcache()
+returns 0 and
+.L pcode
+will point to the non-zero error code.
+Do not call
+.L regfree()
+on the
+.L re
+returned by
+.LR regcache() .
+Both
+.L pattern
+and
+.L flags
+are used to match entries in the cache.
+When the cache is full the least recently used
+.L re
+is freed (via
+.LR regfree() )
+to make space for the new pattern.
+Any
+.L re
+previously returned by
+.L regcache()
+may be freed (invalidated) on the next call to
+.LR regcache() .
+If
+.L pattern
+is longer that 255 bytes then it is still passed on to
+.LR regcomp() ,
+but it will not be cached.
+If
+.L pattern
+is 0 then the cache is flushed.
+In addition, if the integer value of
+.L flags
+is greater than the current cache size, the cache size is increased
+to that integer value.
+0 is always returned when
+.L pattern
+is 0;
+.L pcode
+will point to a non-zero value on error.
+
+.SH "SEE ALSO"
+strmatch(3)
diff --git a/usr/src/lib/libast/common/man/sfio.3 b/usr/src/lib/libast/common/man/sfio.3
index df6037537a..bd805d4ec9 100644
--- a/usr/src/lib/libast/common/man/sfio.3
+++ b/usr/src/lib/libast/common/man/sfio.3
@@ -1,5 +1,5 @@
.fp 5 CW
-.TH SFIO 3 "01 February 2005"
+.TH SFIO 3 "01 June 2008"
.SH NAME
\fBsfio\fR \- safe/fast string/file input/output
.SH SYNOPSIS
@@ -218,7 +218,9 @@ int sferror(Sfio_t* f);
int sfclrerr(Sfio_t* f);
int sfclrlock(Sfio_t* f);
-int sfnotify(void (*notify)(Sfio_t* f, int type, int fd));
+int sfnotify(void (*notify)(Sfio_t* f, int type, Void_t* data));
+
+int sfwalk(Sfwalk_f walkf, Void_t* data, int type);
.ft 1
.fi
.Ss "MISCELLANEOUS FUNCTIONS"
@@ -647,10 +649,11 @@ using the option \f5u\fP when opening a file.
.Ss "int sfmutex(Sfio_t* f, int type)"
This function acquires or releases a mutex
(mutually exclusive) lock on the stream \f5f\fP.
-It can be used by a thread to delineate a sequence of I/O operations
+It can be used by a thread to serialize a sequence of I/O operations
executed together in some critical section.
\f5sfmutex()\fP is implicitly used by
-all Sfio operations on a stream with the flag \f5SF_MTSAFE\fP.
+all Sfio operations on a stream with the flag \f5SF_MTSAFE\fP to
+protect it from concurrent accesses via multiple threads.
\f5sfmutex()\fP returns \f50\fP on success and some non-zero value on failure.
Each stream has a lock count which starts at \f50\fP.
@@ -666,7 +669,8 @@ The \f5type\fP argument of \f5sfmutex()\fP takes on the below values:
.Tp
\f5SFMTX_LOCK\fP:
Locking a stream if it is unlocked or increasing the lock count of the stream
-if it is already locked by the same thread.
+if it is already locked by the same thread. This call will block until it is
+possible to lock the stream.
.Tp
\f5SFMTX_TRYLOCK\fP:
This is the non-blocking version of \f5SFMTX_LOCK\fP.
@@ -1555,7 +1559,7 @@ If \fIbase\fP is larger than \f536\fP, the set of digits is:
.Ss "BUFFERING, SYNCHRONIZATION"
.PP
.Ss " Void_t* sfsetbuf(Sfio_t* f, Void_t* buf, size_t size)"
-This function changed the buffering scheme for the stream \f5f\fP.
+This function changes the buffering scheme for the stream \f5f\fP.
The stream will be synchronized before any buffer modification.
If a new buffer is successfully set and the old buffer has not been freed,
\f5sfsetbuf()\fP returns the old buffer. Otherwise, it returns \f5NULL\fP.
@@ -2003,26 +2007,55 @@ For example, it may be used before a long jump (\f5longjmp(3)\fP)
out of some discipline I/O function to restore the internal stream states.
\f5sfclrlock()\fP returns the current set of flags.
-.Ss " int sfnotify((void(*)notify)(Sfio_t*, int, int) )"
+.Ss " int sfnotify((void(*)notify)(Sfio_t*, int, void*) )"
This sets a function \f5(*notify)()\fP to be called
-as \f5(*notify)(f,type,file)\fP on various stream events.
-Arguments \f5f\fP and \f5file\fP are stream and related file descriptor.
-Argument \f5type\fP indicates the reason for the call:
+as \f5(*notify)(f, type, data)\fP on various stream events.
+Arguments \f5type\fP and \f5data\fP indicate the reason for the call and accompanying data:
.Tp
\f5SF_NEW\fP:
-\f5f\fP is being opened and \f5file\fP is the underlying file descriptor.
+\f5f\fP is being opened and \f5data\fP is the underlying file descriptor.
.Tp
\f5SF_CLOSING\fP (\f5SF_CLOSE\fP):
-\f5f\fP and \f5file\fP are being closed.
+\f5f\fP is the stream being closed and \f5data\fP is the underlying file descriptor.
.Tp
\f5SF_SETFD\fP:
-The file descriptor of \f5f\fP is being changed to \f5file\fP (see \f5sfsetfd()\fP.)
+The file descriptor of \f5f\fP is being changed to the one
+defined by \f5data\fP (see \f5sfsetfd()\fP.)
.Tp
\f5SF_READ\fP:
An attempt to change \f5f\fP to read mode failed.
+\f5data\fP is the file descriptor of the stream.
.Tp
\f5SF_WRITE\fP:
An attempt to change \f5f\fP to write mode failed.
+\f5data\fP is the file descriptor of the stream.
+.Tp
+\f5SF_MTACCESS\fP:
+When a notifying function was registered (see \f5sfnotify()\fP),
+every Sfio call on a stream with flag \f5SF_MTSAFE\fP will
+invoke the notifying function
+once on entry after the stream is locked
+as \f5(*notify)(f, SF_MTACCESS, Sfio_t** fp), and
+once on return before unlocking as
+as \f5(*notify)(f, SF_MTACCESS, (Sfio_t**)0).
+In the call entry case,
+the notification function could use the argument \f5fp\fP
+to set a stream that would be used for performing the actual I/O operation.
+In this way, certain global streams such as the standard streams \f5sfstdin\fP,
+\f5sfstdout\fP and \f5sfstderr\fP could be made to act differently when used
+in different streams.
+
+.Ss " int sfwalk(Sfwalk_f walkf, Void_t* data, int type)"
+This function invokes \f5(*walkf)(f, data)\fP on every open stream \f5f\fP
+whose flags as defined by \f5sfset()\fP contains all bit flags given in \f5type\fP.
+On such a call, if the return value is negative, \f5sfwalk()\fP will terminate.
+\f5sfwalk()\fP returns 0 if no stream was processed.
+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
+iterates over all streams opened for both reading and writing.
+Lastly, \f5sfwalk(walkf, data, 0)\fP iterates over all streams.
.PP
.Ss "MISCELLANEOUS FUNCTIONS"
diff --git a/usr/src/lib/libast/common/misc/astintercept.c b/usr/src/lib/libast/common/misc/astintercept.c
index 414224aa03..23f5322489 100644
--- a/usr/src/lib/libast/common/misc/astintercept.c
+++ b/usr/src/lib/libast/common/misc/astintercept.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/cmdarg.c b/usr/src/lib/libast/common/misc/cmdarg.c
index b27f2152c7..cdcbd02b87 100644
--- a/usr/src/lib/libast/common/misc/cmdarg.c
+++ b/usr/src/lib/libast/common/misc/cmdarg.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -34,6 +34,9 @@
#include "cmdarg.h"
+#ifndef ARG_MAX
+#define ARG_MAX (64*1024)
+#endif
#ifndef EXIT_QUIT
#define EXIT_QUIT 255
#endif
diff --git a/usr/src/lib/libast/common/misc/debug.c b/usr/src/lib/libast/common/misc/debug.c
index 2304eb7a2b..0ac2459f36 100644
--- a/usr/src/lib/libast/common/misc/debug.c
+++ b/usr/src/lib/libast/common/misc/debug.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/error.c b/usr/src/lib/libast/common/misc/error.c
index faab838264..1999468db9 100644
--- a/usr/src/lib/libast/common/misc/error.c
+++ b/usr/src/lib/libast/common/misc/error.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/errorf.c b/usr/src/lib/libast/common/misc/errorf.c
index be41031d60..f909c3d31a 100644
--- a/usr/src/lib/libast/common/misc/errorf.c
+++ b/usr/src/lib/libast/common/misc/errorf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/errormsg.c b/usr/src/lib/libast/common/misc/errormsg.c
index 95b974e01e..8845b22209 100644
--- a/usr/src/lib/libast/common/misc/errormsg.c
+++ b/usr/src/lib/libast/common/misc/errormsg.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/errorx.c b/usr/src/lib/libast/common/misc/errorx.c
index f88d49232d..214e0734d4 100644
--- a/usr/src/lib/libast/common/misc/errorx.c
+++ b/usr/src/lib/libast/common/misc/errorx.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/fastfind.c b/usr/src/lib/libast/common/misc/fastfind.c
index ef5d13139d..0f3e043d39 100644
--- a/usr/src/lib/libast/common/misc/fastfind.c
+++ b/usr/src/lib/libast/common/misc/fastfind.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/findlib.h b/usr/src/lib/libast/common/misc/findlib.h
index fa21a9e977..f48ba32665 100644
--- a/usr/src/lib/libast/common/misc/findlib.h
+++ b/usr/src/lib/libast/common/misc/findlib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/fmtrec.c b/usr/src/lib/libast/common/misc/fmtrec.c
index 78b8b46e23..371c373e3f 100644
--- a/usr/src/lib/libast/common/misc/fmtrec.c
+++ b/usr/src/lib/libast/common/misc/fmtrec.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/fs3d.c b/usr/src/lib/libast/common/misc/fs3d.c
index 91b73dd121..a486448021 100644
--- a/usr/src/lib/libast/common/misc/fs3d.c
+++ b/usr/src/lib/libast/common/misc/fs3d.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -28,7 +28,12 @@
* only active for non-shared 3d library
*/
+#define mount ______mount
+
#include <ast.h>
+
+#undef mount
+
#include <fs3d.h>
int
@@ -92,3 +97,20 @@ fs3d(register int op)
fsview = -1;
return 0;
}
+
+/*
+ * user code that includes <fs3d.h> will have mount() mapped to fs3d_mount()
+ * this restricts the various "standard" mount prototype conflicts to this spot
+ * this means that code that includes <fs3d.h> cannot access the real mount
+ * (at least without some additional macro hackery
+ */
+
+#undef mount
+
+extern int mount(const char*, char*, int, void*);
+
+int
+fs3d_mount(const char* source, char* target, int flags, void* data)
+{
+ return mount(source, target, flags, data);
+}
diff --git a/usr/src/lib/libast/common/misc/fts.c b/usr/src/lib/libast/common/misc/fts.c
index 29c638cada..8506f84fe9 100644
--- a/usr/src/lib/libast/common/misc/fts.c
+++ b/usr/src/lib/libast/common/misc/fts.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -39,6 +39,9 @@ struct Ftsent;
typedef int (*Compar_f)(struct Ftsent* const*, struct Ftsent* const*);
typedef int (*Stat_f)(const char*, struct stat*);
+#define _fts_status status
+#define _fts_statb statb
+
#define _FTS_PRIVATE_ \
FTSENT* parent; /* top parent */ \
FTSENT* todo; /* todo list */ \
@@ -55,11 +58,11 @@ typedef int (*Stat_f)(const char*, struct stat*);
FTSENT* pwd; /* pwd parent */ \
DIR* dir; /* current dir stream */ \
Compar_f comparf; /* node comparison func */ \
- int baselen; /* current strlen(base) */ \
+ size_t baselen; /* current strlen(base) */ \
+ size_t homesize; /* sizeof(home) */ \
int cd; /* chdir status */ \
int cpname; \
int flags; /* fts_open() flags */ \
- int homesize; /* sizeof(home) */ \
int nd; \
unsigned char children; \
unsigned char fs3d; \
@@ -78,9 +81,6 @@ typedef int (*Stat_f)(const char*, struct stat*);
*/
#define _FTSENT_PRIVATE_ \
- short status; /* internal status */ \
- struct stat statb; /* fts_statp data */ \
- FTS* fts; /* fts_open() handle */ \
int nd; /* popdir() count */ \
FTSENT* left; /* left child */ \
FTSENT* right; /* right child */ \
@@ -174,10 +174,10 @@ static Notify_t* notify;
*/
static FTSENT*
-node(FTS* fts, FTSENT* parent, register char* name, register int namelen)
+node(FTS* fts, FTSENT* parent, register char* name, register size_t namelen)
{
register FTSENT* f;
- register int n;
+ register size_t n;
if (fts->free && namelen < MINNAME)
{
@@ -199,11 +199,17 @@ node(FTS* fts, FTSENT* parent, register char* name, register int namelen)
f->status = 0;
f->symlink = 0;
f->fts_level = (f->fts_parent = parent)->fts_level + 1;
+#if __OBSOLETE__ < 20140101
+ f->_fts_level = (short)f->fts_level;
+#endif
f->fts_link = 0;
f->fts_pointer = 0;
f->fts_number = 0;
f->fts_errno = 0;
f->fts_namelen = namelen;
+#if __OBSOLETE__ < 20140101
+ f->_fts_namelen = (unsigned short)f->fts_namelen;
+#endif
f->fts_name = f->name;
f->fts_statp = &f->statb;
memcpy(f->fts_name, name, namelen + 1);
@@ -389,7 +395,10 @@ getlist(register FTSENT** top, register FTSENT** bot, register FTSENT* root)
break;
}
if (!(root = stack))
+ {
+ (*bot)->fts_link = 0;
return;
+ }
stack = stack->stack;
}
}
@@ -565,27 +574,27 @@ info(FTS* fts, register FTSENT* f, const char* path, struct stat* sp, int flags)
/*
* get top list of elements to process
+ * ordering delayed until first fts_read()
+ * to give caller a chance to set fts->handle
*/
static FTSENT*
toplist(FTS* fts, register char* const* pathnames)
{
register char* path;
- register struct stat* sb;
register FTSENT* f;
- register FTSENT* root;
+ register FTSENT* top;
+ register FTSENT* bot;
int physical;
int metaphysical;
char* s;
- FTSENT* top;
- FTSENT* bot;
struct stat st;
if (fts->flags & FTS_NOSEEDOTDIR)
fts->flags &= ~FTS_SEEDOTDIR;
physical = (fts->flags & FTS_PHYSICAL);
metaphysical = (fts->flags & (FTS_META|FTS_PHYSICAL)) == (FTS_META|FTS_PHYSICAL);
- top = bot = root = 0;
+ top = bot = 0;
while (path = *pathnames++)
{
/*
@@ -625,14 +634,16 @@ toplist(FTS* fts, register char* const* pathnames)
*s = 0;
f->fts_namelen = s - path;
}
- sb = f->fts_statp;
+#if __OBSOLETE__ < 20140101
+ f->_fts_namelen = (unsigned short)f->fts_namelen;
+#endif
if (!*path)
{
errno = ENOENT;
f->fts_info = FTS_NS;
}
else
- info(fts, f, path, sb, fts->flags);
+ info(fts, f, path, f->fts_statp, fts->flags);
#ifdef S_ISLNK
/*
@@ -642,13 +653,11 @@ toplist(FTS* fts, register char* const* pathnames)
if (metaphysical && f->fts_info == FTS_SL && stat(path, &st) >= 0)
{
- *sb = st;
- info(fts, f, NiL, sb, 0);
+ *f->fts_statp = st;
+ info(fts, f, NiL, f->fts_statp, 0);
}
#endif
- if (fts->comparf)
- root = search(f, root, fts->comparf, 1);
- else if (bot)
+ if (bot)
{
bot->fts_link = f;
bot = f;
@@ -656,23 +665,40 @@ toplist(FTS* fts, register char* const* pathnames)
else
top = bot = f;
}
- if (fts->comparf)
- getlist(&top, &bot, root);
return top;
}
/*
+ * order fts->todo if fts->comparf != 0
+ */
+
+static void
+order(FTS* fts)
+{
+ register FTSENT* f;
+ register FTSENT* root;
+ FTSENT* top;
+ FTSENT* bot;
+
+ top = bot = root = 0;
+ for (f = fts->todo; f; f = f->fts_link)
+ root = search(f, root, fts->comparf, 1);
+ getlist(&top, &bot, root);
+ fts->todo = top;
+}
+
+/*
* resize the path buffer
* note that free() is not used because we may need to chdir(fts->home)
* if there isn't enough space to continue
*/
static int
-resize(register FTS* fts, int inc)
+resize(register FTS* fts, size_t inc)
{
register char* old;
register char* newp;
- register int n_old;
+ register size_t n_old;
/*
* add space for "/." used in testing FTS_DNX
@@ -744,6 +770,9 @@ fts_open(char* const* pathnames, int flags, int (*comparf)(FTSENT* const*, FTSEN
fts->parent->fts_info = FTS_D;
memcpy(fts->parent->fts_accpath = fts->parent->fts_path = fts->parent->fts_name = fts->parent->name, ".", 2);
fts->parent->fts_level = -1;
+#if __OBSOLETE__ < 20140101
+ fts->parent->_fts_level = (short)fts->parent->fts_level;
+#endif
fts->parent->fts_statp = &fts->parent->statb;
fts->parent->must = 2;
fts->parent->type = DT_UNKNOWN;
@@ -782,597 +811,603 @@ fts_read(register FTS* fts)
register int n;
register FTSENT* f;
struct dirent* d;
- int i;
+ size_t i;
FTSENT* t;
Notify_t* p;
#ifdef verify
struct stat sb;
#endif
- for (;;) switch (fts->state)
- {
+ for (;;)
+ switch (fts->state)
+ {
- case FTS_top_return:
+ case FTS_top_return:
- f = fts->todo;
- t = 0;
- while (f)
- if (f->status == FTS_SKIP)
- {
- if (t)
+ f = fts->todo;
+ t = 0;
+ while (f)
+ if (f->status == FTS_SKIP)
{
- t->fts_link = f->fts_link;
- drop(fts, f);
- f = t->fts_link;
+ if (t)
+ {
+ t->fts_link = f->fts_link;
+ drop(fts, f);
+ f = t->fts_link;
+ }
+ else
+ {
+ fts->todo = f->fts_link;
+ drop(fts, f);
+ f = fts->todo;
+ }
}
else
{
- fts->todo = f->fts_link;
- drop(fts, f);
- f = fts->todo;
+ t = f;
+ f = f->fts_link;
}
- }
- else
- {
- t = f;
- f = f->fts_link;
- }
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
- case 0:
+ case 0:
- if (!(f = fts->todo))
- return 0;
- /*FALLTHROUGH*/
+ if (!fts->state && fts->comparf)
+ order(fts);
+ if (!(f = fts->todo))
+ return 0;
+ /*FALLTHROUGH*/
- case FTS_todo:
+ case FTS_todo:
- /*
- * process the top object on the stack
- */
+ /*
+ * process the top object on the stack
+ */
- fts->root = fts->top = fts->bot = 0;
+ fts->root = fts->top = fts->bot = 0;
- /*
- * initialize the top level
- */
+ /*
+ * initialize the top level
+ */
- if (f->fts_level == 0)
- {
- fts->parent->fts_number = f->fts_number;
- fts->parent->fts_pointer = f->fts_pointer;
- fts->parent->fts_statp = f->fts_statp;
- fts->parent->statb = *f->fts_statp;
- f->fts_parent = fts->parent;
- fts->diroot = 0;
- if (fts->cd == 0)
- pathcd(fts->home, NiL);
- else if (fts->cd < 0)
- fts->cd = 0;
- fts->pwd = f->fts_parent;
- fts->curdir = fts->cd ? 0 : f->fts_parent;
- *(fts->base = fts->path) = 0;
- }
+ if (f->fts_level == 0)
+ {
+ fts->parent->fts_number = f->fts_number;
+ fts->parent->fts_pointer = f->fts_pointer;
+ fts->parent->fts_statp = f->fts_statp;
+ fts->parent->statb = *f->fts_statp;
+ f->fts_parent = fts->parent;
+ fts->diroot = 0;
+ if (fts->cd == 0)
+ pathcd(fts->home, NiL);
+ else if (fts->cd < 0)
+ fts->cd = 0;
+ fts->pwd = f->fts_parent;
+ fts->curdir = fts->cd ? 0 : f->fts_parent;
+ *(fts->base = fts->path) = 0;
+ }
- /*
- * chdir to parent if asked for
- */
+ /*
+ * chdir to parent if asked for
+ */
- if (fts->cd < 0)
- {
- fts->cd = setdir(fts->home, fts->path);
- fts->pwd = f->fts_parent;
- fts->curdir = fts->cd ? 0 : f->fts_parent;
- }
+ if (fts->cd < 0)
+ {
+ fts->cd = setdir(fts->home, fts->path);
+ fts->pwd = f->fts_parent;
+ fts->curdir = fts->cd ? 0 : f->fts_parent;
+ }
- /*
- * add object's name to the path
- */
+ /*
+ * add object's name to the path
+ */
- if ((fts->baselen = f->fts_namelen) >= (fts->endbuf - fts->base) && resize(fts, fts->baselen))
- return 0;
- memcpy(fts->base, f->name, fts->baselen + 1);
- fts->name = fts->cd ? fts->path : fts->base;
- /*FALLTHROUGH*/
+ if ((fts->baselen = f->fts_namelen) >= (fts->endbuf - fts->base) && resize(fts, fts->baselen))
+ return 0;
+ memcpy(fts->base, f->name, fts->baselen + 1);
+ fts->name = fts->cd ? fts->path : fts->base;
+ /*FALLTHROUGH*/
- case FTS_preorder:
+ case FTS_preorder:
- /*
- * check for cycle and open dir
- */
+ /*
+ * check for cycle and open dir
+ */
- if (f->fts_info == FTS_D)
- {
- if ((fts->diroot = search(f, fts->diroot, statcmp, 0)) != f || f->fts_level > 0 && (t = f) && statcmp(&t, &f->fts_parent) == 0)
+ if (f->fts_info == FTS_D)
{
- f->fts_info = FTS_DC;
- f->fts_cycle = fts->diroot;
+ if ((fts->diroot = search(f, fts->diroot, statcmp, 0)) != f || f->fts_level > 0 && (t = f) && statcmp(&t, &f->fts_parent) == 0)
+ {
+ f->fts_info = FTS_DC;
+ f->fts_cycle = fts->diroot;
+ }
+ else if (!(fts->flags & FTS_TOP) && (!(fts->flags & FTS_XDEV) || f->statb.st_dev == f->fts_parent->statb.st_dev))
+ {
+ /*
+ * buffer is known to be large enough here!
+ */
+
+ if (fts->base[fts->baselen - 1] != '/')
+ memcpy(fts->base + fts->baselen, "/.", 3);
+ if (!(fts->dir = opendir(fts->name)))
+ f->fts_info = FTS_DNX;
+ fts->base[fts->baselen] = 0;
+ if (!fts->dir && !(fts->dir = opendir(fts->name)))
+ f->fts_info = FTS_DNR;
+ }
}
- else if (!(fts->flags & FTS_TOP) && (!(fts->flags & FTS_XDEV) || f->statb.st_dev == f->fts_parent->statb.st_dev))
+ f->nd = f->fts_info & ~FTS_DNX;
+ if (f->nd || !(fts->flags & FTS_NOPREORDER))
{
- /*
- * buffer is known to be large enough here!
- */
-
- if (fts->base[fts->baselen - 1] != '/')
- memcpy(fts->base + fts->baselen, "/.", 3);
- if (!(fts->dir = opendir(fts->name)))
- f->fts_info = FTS_DNX;
- fts->base[fts->baselen] = 0;
- if (!fts->dir && !(fts->dir = opendir(fts->name)))
- f->fts_info = FTS_DNR;
+ fts->current = f;
+ fts->link = f->fts_link;
+ f->fts_link = 0;
+ f->fts_path = PATH(fts, fts->path, f->fts_level);
+ f->fts_pathlen = (fts->base - f->fts_path) + fts->baselen;
+ f->fts_accpath = ACCESS(fts, f);
+ fts->state = FTS_preorder_return;
+ goto note;
}
- }
- f->nd = f->fts_info & ~FTS_DNX;
- if (f->nd || !(fts->flags & FTS_NOPREORDER))
- {
- fts->current = f;
- fts->link = f->fts_link;
- f->fts_link = 0;
- f->fts_path = PATH(fts, fts->path, f->fts_level);
- f->fts_pathlen = (fts->base - f->fts_path) + fts->baselen;
- f->fts_accpath = ACCESS(fts, f);
- fts->state = FTS_preorder_return;
- goto note;
- }
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
- case FTS_preorder_resume:
+ case FTS_preorder_resume:
- /*
- * prune
- */
+ /*
+ * prune
+ */
- if (!fts->dir || f->nd || f->status == FTS_SKIP)
- {
- if (fts->dir)
+ if (!fts->dir || f->nd || f->status == FTS_SKIP)
{
- closedir(fts->dir);
- fts->dir = 0;
+ if (fts->dir)
+ {
+ closedir(fts->dir);
+ fts->dir = 0;
+ }
+ fts->state = FTS_popstack;
+ continue;
}
- fts->state = FTS_popstack;
- continue;
- }
- /*
- * FTS_D or FTS_DNX, about to read children
- */
+ /*
+ * FTS_D or FTS_DNX, about to read children
+ */
- if (fts->cd == 0)
- {
- if ((fts->cd = chdir(fts->name)) < 0)
- pathcd(fts->home, NiL);
- else if (fts->pwd != f)
- {
- f->pwd = fts->pwd;
- fts->pwd = f;
- }
- fts->curdir = fts->cd < 0 ? 0 : f;
- }
- fts->nostat = fts->children > 1 || f->fts_info == FTS_DNX;
- fts->cpname = fts->cd && !fts->nostat || !fts->children && !fts->comparf;
- fts->dotdot = 0;
- fts->endbase = fts->base + fts->baselen;
- if (fts->endbase[-1] != '/')
- *fts->endbase++ = '/';
- fts->current = f;
- /*FALLTHROUGH*/
-
- case FTS_readdir:
-
- while (d = readdir(fts->dir))
- {
- s = d->d_name;
- if (s[0] == '.')
+ if (fts->cd == 0)
{
- if (s[1] == 0)
+ if ((fts->cd = chdir(fts->name)) < 0)
+ pathcd(fts->home, NiL);
+ else if (fts->pwd != f)
{
- fts->current->nlink--;
- if (!(fts->flags & FTS_SEEDOT))
- continue;
- n = 1;
+ f->pwd = fts->pwd;
+ fts->pwd = f;
}
- else if (s[1] == '.' && s[2] == 0)
+ fts->curdir = fts->cd < 0 ? 0 : f;
+ }
+ fts->nostat = fts->children > 1 || f->fts_info == FTS_DNX;
+ fts->cpname = fts->cd && !fts->nostat || !fts->children && !fts->comparf;
+ fts->dotdot = 0;
+ fts->endbase = fts->base + fts->baselen;
+ if (fts->endbase[-1] != '/')
+ *fts->endbase++ = '/';
+ fts->current = f;
+ /*FALLTHROUGH*/
+
+ case FTS_readdir:
+
+ while (d = readdir(fts->dir))
+ {
+ s = d->d_name;
+ if (s[0] == '.')
{
- fts->current->nlink--;
- if (fts->current->must == 1)
- fts->current->must = 0;
- if (!(fts->flags & FTS_SEEDOT))
- continue;
- n = 2;
+ if (s[1] == 0)
+ {
+ fts->current->nlink--;
+ if (!(fts->flags & FTS_SEEDOT))
+ continue;
+ n = 1;
+ }
+ else if (s[1] == '.' && s[2] == 0)
+ {
+ fts->current->nlink--;
+ if (fts->current->must == 1)
+ fts->current->must = 0;
+ if (!(fts->flags & FTS_SEEDOT))
+ continue;
+ n = 2;
+ }
+ else
+ n = 0;
}
else
n = 0;
- }
- else
- n = 0;
-
- /*
- * make a new entry
- */
-
- i = D_NAMLEN(d);
- if (!(f = node(fts, fts->current, s, i)))
- return 0;
- TYPE(f, D_TYPE(d));
- /*
- * check for space
- */
+ /*
+ * make a new entry
+ */
- if (i >= fts->endbuf - fts->endbase)
- {
- if (resize(fts, i))
+ i = D_NAMLEN(d);
+ if (!(f = node(fts, fts->current, s, i)))
return 0;
- fts->endbase = fts->base + fts->baselen;
- if (fts->endbase[-1] != '/')
- fts->endbase++;
- }
- if (fts->cpname)
- {
- memcpy(fts->endbase, s, i + 1);
- if (fts->cd)
- s = fts->path;
- }
- if (n)
- {
+ TYPE(f, D_TYPE(d));
+
/*
- * don't recurse on . and ..
+ * check for space
*/
- if (n == 1)
- f->fts_statp = fts->current->fts_statp;
- else
+ if (i >= fts->endbuf - fts->endbase)
{
- if (f->fts_info != FTS_NS)
- fts->dotdot = f;
- if (fts->current->fts_parent->fts_level < 0)
+ if (resize(fts, i))
+ return 0;
+ fts->endbase = fts->base + fts->baselen;
+ if (fts->endbase[-1] != '/')
+ fts->endbase++;
+ }
+ if (fts->cpname)
+ {
+ memcpy(fts->endbase, s, i + 1);
+ if (fts->cd)
+ s = fts->path;
+ }
+ if (n)
+ {
+ /*
+ * don't recurse on . and ..
+ */
+
+ if (n == 1)
+ f->fts_statp = fts->current->fts_statp;
+ else
{
- f->fts_statp = &fts->current->fts_parent->statb;
- info(fts, f, s, f->fts_statp, 0);
+ if (f->fts_info != FTS_NS)
+ fts->dotdot = f;
+ if (fts->current->fts_parent->fts_level < 0)
+ {
+ f->fts_statp = &fts->current->fts_parent->statb;
+ info(fts, f, s, f->fts_statp, 0);
+ }
+ else
+ f->fts_statp = fts->current->fts_parent->fts_statp;
}
+ f->fts_info = FTS_DOT;
+ }
+ else if ((fts->nostat || SKIP(fts, f)) && (f->fts_info = FTS_NSOK) || info(fts, f, s, &f->statb, fts->flags))
+ f->statb.st_ino = D_FILENO(d);
+ if (fts->comparf)
+ fts->root = search(f, fts->root, fts->comparf, 1);
+ else if (fts->children || f->fts_info == FTS_D || f->fts_info == FTS_SL)
+ {
+ if (fts->top)
+ fts->bot = fts->bot->fts_link = f;
else
- f->fts_statp = fts->current->fts_parent->fts_statp;
+ fts->top = fts->bot = f;
}
- f->fts_info = FTS_DOT;
- }
- else if ((fts->nostat || SKIP(fts, f)) && (f->fts_info = FTS_NSOK) || info(fts, f, s, &f->statb, fts->flags))
- f->statb.st_ino = D_FILENO(d);
- if (fts->comparf)
- fts->root = search(f, fts->root, fts->comparf, 1);
- else if (fts->children || f->fts_info == FTS_D || f->fts_info == FTS_SL)
- {
- if (fts->top)
- fts->bot = fts->bot->fts_link = f;
else
- fts->top = fts->bot = f;
+ {
+ /*
+ * terminal node
+ */
+
+ f->fts_path = PATH(fts, fts->path, 1);
+ f->fts_pathlen = fts->endbase - f->fts_path + f->fts_namelen;
+ f->fts_accpath = ACCESS(fts, f);
+ fts->previous = fts->current;
+ fts->current = f;
+ fts->state = FTS_terminal;
+ goto note;
+ }
}
- else
- {
+
+ /*
+ * done with the directory
+ */
+
+ closedir(fts->dir);
+ fts->dir = 0;
+ if (fts->root)
+ getlist(&fts->top, &fts->bot, fts->root);
+ if (fts->children)
+ {
/*
- * terminal node
+ * try moving back to parent dir
*/
- f->fts_path = PATH(fts, fts->path, 1);
- f->fts_pathlen = fts->endbase - f->fts_path + f->fts_namelen;
+ fts->base[fts->baselen] = 0;
+ if (fts->cd <= 0)
+ {
+ f = fts->current->fts_parent;
+ if (fts->cd < 0
+ || f != fts->curdir
+ || !fts->dotdot
+ || !SAME(f->fts_statp, fts->dotdot->fts_statp)
+ || fts->pwd && fts->pwd->symlink
+ || (fts->cd = chdir("..")) < 0
+#ifdef verify
+ || stat(".", &sb) < 0
+ || !SAME(&sb, fts->dotdot->fts_statp)
+#endif
+ )
+ fts->cd = setpdir(fts->home, fts->path, fts->base);
+ if (fts->pwd)
+ fts->pwd = fts->pwd->pwd;
+ fts->curdir = fts->cd ? 0 : f;
+ }
+ f = fts->current;
+ fts->link = f->fts_link;
+ f->fts_link = fts->top;
+ f->fts_path = PATH(fts, fts->path, f->fts_level);
+ f->fts_pathlen = (fts->base - f->fts_path) + f->fts_namelen;
f->fts_accpath = ACCESS(fts, f);
- fts->previous = fts->current;
- fts->current = f;
- fts->state = FTS_terminal;
+ fts->state = FTS_children_return;
goto note;
}
- }
-
- /*
- * done with the directory
- */
+ /*FALLTHROUGH*/
- closedir(fts->dir);
- fts->dir = 0;
- if (fts->root)
- getlist(&fts->top, &fts->bot, fts->root);
- if (fts->children)
- {
- /*
- * try moving back to parent dir
- */
+ case FTS_children_resume:
fts->base[fts->baselen] = 0;
- if (fts->cd <= 0)
+ if (fts->top)
{
- f = fts->current->fts_parent;
- if (fts->cd < 0
- || f != fts->curdir
- || !fts->dotdot
- || !SAME(f->fts_statp, fts->dotdot->fts_statp)
- || fts->pwd && fts->pwd->symlink
- || (fts->cd = chdir("..")) < 0
-#ifdef verify
- || stat(".", &sb) < 0
- || !SAME(&sb, fts->dotdot->fts_statp)
-#endif
- )
- fts->cd = setpdir(fts->home, fts->path, fts->base);
- if (fts->pwd)
- fts->pwd = fts->pwd->pwd;
- fts->curdir = fts->cd ? 0 : f;
+ fts->bot->fts_link = fts->todo;
+ fts->todo = fts->top;
+ fts->top = 0;
}
- f = fts->current;
- fts->link = f->fts_link;
- f->fts_link = fts->top;
- f->fts_path = PATH(fts, fts->path, f->fts_level);
- f->fts_pathlen = (fts->base - f->fts_path) + f->fts_namelen;
- f->fts_accpath = ACCESS(fts, f);
- fts->state = FTS_children_return;
- goto note;
- }
- /*FALLTHROUGH*/
+ /*FALLTHROUGH*/
- case FTS_children_resume:
+ case FTS_popstack:
- fts->base[fts->baselen] = 0;
- if (fts->top)
- {
- fts->bot->fts_link = fts->todo;
- fts->todo = fts->top;
- fts->top = 0;
- }
- /*FALLTHROUGH*/
-
- case FTS_popstack:
-
- /*
- * pop objects completely processed
- */
+ /*
+ * pop objects completely processed
+ */
- fts->nd = 0;
- f = fts->current;
- /*FALLTHROUGH*/
+ fts->nd = 0;
+ f = fts->current;
+ /*FALLTHROUGH*/
- case FTS_popstack_resume:
+ case FTS_popstack_resume:
- while (fts->todo && f == fts->todo)
- {
- t = f->fts_parent;
- if ((f->fts_info & FTS_DP) == FTS_D)
+ while (fts->todo && f == fts->todo)
{
- /*
- * delete from <dev,ino> tree
- */
-
- if (f != fts->diroot)
- fts->diroot = search(f, fts->diroot, statcmp, 0);
- fts->diroot = deleteroot(fts->diroot);
- if (f == fts->curdir)
- {
- fts->nd++;
- fts->curdir = t;
- }
-
- /*
- * perform post-order processing
- */
-
- if (!(fts->flags & FTS_NOPOSTORDER) &&
- f->status != FTS_SKIP &&
- f->status != FTS_NOPOSTORDER)
+ t = f->fts_parent;
+ if ((f->fts_info & FTS_DP) == FTS_D)
{
/*
- * move to parent dir
+ * delete from <dev,ino> tree
*/
- if (fts->nd > 0)
- fts->cd = popdirs(fts);
- if (fts->cd < 0)
- fts->cd = setpdir(fts->home, fts->path, fts->base);
- fts->curdir = fts->cd ? 0 : t;
- f->fts_info = FTS_DP;
- f->fts_path = PATH(fts, fts->path, f->fts_level);
- f->fts_pathlen = (fts->base - f->fts_path) + f->fts_namelen;
- f->fts_accpath = ACCESS(fts, f);
+ if (f != fts->diroot)
+ fts->diroot = search(f, fts->diroot, statcmp, 0);
+ fts->diroot = deleteroot(fts->diroot);
+ if (f == fts->curdir)
+ {
+ fts->nd++;
+ fts->curdir = t;
+ }
/*
- * re-stat to update nlink/times
+ * perform post-order processing
*/
- stat(f->fts_accpath, f->fts_statp);
- fts->link = f->fts_link;
- f->fts_link = 0;
- fts->state = FTS_popstack_return;
- goto note;
+ if (!(fts->flags & FTS_NOPOSTORDER) &&
+ f->status != FTS_SKIP &&
+ f->status != FTS_NOPOSTORDER)
+ {
+ /*
+ * move to parent dir
+ */
+
+ if (fts->nd > 0)
+ fts->cd = popdirs(fts);
+ if (fts->cd < 0)
+ fts->cd = setpdir(fts->home, fts->path, fts->base);
+ fts->curdir = fts->cd ? 0 : t;
+ f->fts_info = FTS_DP;
+ f->fts_path = PATH(fts, fts->path, f->fts_level);
+ f->fts_pathlen = (fts->base - f->fts_path) + f->fts_namelen;
+ f->fts_accpath = ACCESS(fts, f);
+
+ /*
+ * re-stat to update nlink/times
+ */
+
+ stat(f->fts_accpath, f->fts_statp);
+ fts->link = f->fts_link;
+ f->fts_link = 0;
+ fts->state = FTS_popstack_return;
+ goto note;
+ }
}
- }
- /*
- * reset base
- */
+ /*
+ * reset base
+ */
- if (fts->base > fts->path + t->fts_namelen)
- fts->base--;
- *fts->base = 0;
- fts->base -= t->fts_namelen;
+ if (fts->base > fts->path + t->fts_namelen)
+ fts->base--;
+ *fts->base = 0;
+ fts->base -= t->fts_namelen;
+
+ /*
+ * try again or delete from top of stack
+ */
+
+ if (f->status == FTS_AGAIN)
+ {
+ f->fts_info = FTS_D;
+ f->status = 0;
+ }
+ else
+ {
+ fts->todo = fts->todo->fts_link;
+ drop(fts, f);
+ }
+ f = t;
+ }
/*
- * try again or delete from top of stack
+ * reset current directory
*/
- if (f->status == FTS_AGAIN)
+ if (fts->nd > 0 && popdirs(fts) < 0)
{
- f->fts_info = FTS_D;
- f->status = 0;
+ pathcd(fts->home, NiL);
+ fts->curdir = 0;
+ fts->cd = -1;
}
- else
+ if (fts->todo)
{
- fts->todo = fts->todo->fts_link;
- drop(fts, f);
+ if (*fts->base)
+ fts->base += f->fts_namelen;
+ if (*(fts->base - 1) != '/')
+ *fts->base++ = '/';
+ *fts->base = 0;
+ f = fts->todo;
+ fts->state = FTS_todo;
+ continue;
}
- f = t;
- }
-
- /*
- * reset current directory
- */
-
- if (fts->nd > 0 && popdirs(fts) < 0)
- {
- pathcd(fts->home, NiL);
- fts->curdir = 0;
- fts->cd = -1;
- }
- if (fts->todo)
- {
- if (*fts->base)
- fts->base += f->fts_namelen;
- if (*(fts->base - 1) != '/')
- *fts->base++ = '/';
- *fts->base = 0;
- f = fts->todo;
- fts->state = FTS_todo;
- continue;
- }
- return 0;
+ return 0;
- case FTS_children_return:
+ case FTS_children_return:
- f = fts->current;
- f->fts_link = fts->link;
+ f = fts->current;
+ f->fts_link = fts->link;
- /*
- * chdir down again
- */
+ /*
+ * chdir down again
+ */
- i = f->fts_info != FTS_DNX;
- n = f->status == FTS_SKIP;
- if (!n && fts->cd == 0)
- {
- if ((fts->cd = chdir(fts->base)) < 0)
- pathcd(fts->home, NiL);
- else if (fts->pwd != f)
+ i = f->fts_info != FTS_DNX;
+ n = f->status == FTS_SKIP;
+ if (!n && fts->cd == 0)
{
- f->pwd = fts->pwd;
- fts->pwd = f;
+ if ((fts->cd = chdir(fts->base)) < 0)
+ pathcd(fts->home, NiL);
+ else if (fts->pwd != f)
+ {
+ f->pwd = fts->pwd;
+ fts->pwd = f;
+ }
+ fts->curdir = fts->cd ? 0 : f;
}
- fts->curdir = fts->cd ? 0 : f;
- }
- /*
- * prune
- */
+ /*
+ * prune
+ */
- if (fts->base[fts->baselen - 1] != '/')
- fts->base[fts->baselen] = '/';
- for (fts->bot = 0, f = fts->top; f; )
- if (n || f->status == FTS_SKIP)
- {
- if (fts->bot)
- fts->bot->fts_link = f->fts_link;
+ if (fts->base[fts->baselen - 1] != '/')
+ fts->base[fts->baselen] = '/';
+ for (fts->bot = 0, f = fts->top; f; )
+ if (n || f->status == FTS_SKIP)
+ {
+ if (fts->bot)
+ fts->bot->fts_link = f->fts_link;
+ else
+ fts->top = f->fts_link;
+ drop(fts, f);
+ f = fts->bot ? fts->bot->fts_link : fts->top;
+ }
else
- fts->top = f->fts_link;
- drop(fts, f);
- f = fts->bot ? fts->bot->fts_link : fts->top;
- }
- else
- {
- if (fts->children > 1 && i)
{
- if (f->status == FTS_STAT)
- info(fts, f, NiL, f->fts_statp, 0);
- else if (f->fts_info == FTS_NSOK && !SKIP(fts, f))
+ if (fts->children > 1 && i)
{
- s = f->fts_name;
- if (fts->cd)
+ if (f->status == FTS_STAT)
+ info(fts, f, NiL, f->fts_statp, 0);
+ else if (f->fts_info == FTS_NSOK && !SKIP(fts, f))
{
- memcpy(fts->endbase, s, f->fts_namelen + 1);
- s = fts->path;
+ s = f->fts_name;
+ if (fts->cd)
+ {
+ memcpy(fts->endbase, s, f->fts_namelen + 1);
+ s = fts->path;
+ }
+ info(fts, f, s, f->fts_statp, fts->flags);
}
- info(fts, f, s, f->fts_statp, fts->flags);
}
+ fts->bot = f;
+ f = f->fts_link;
}
- fts->bot = f;
- f = f->fts_link;
- }
- fts->children = 0;
- fts->state = FTS_children_resume;
- continue;
+ fts->children = 0;
+ fts->state = FTS_children_resume;
+ continue;
- case FTS_popstack_return:
+ case FTS_popstack_return:
- f = fts->todo;
- f->fts_link = fts->link;
- f->fts_info = f->status == FTS_AGAIN ? FTS_DP : 0;
- fts->state = FTS_popstack_resume;
- continue;
+ f = fts->todo;
+ f->fts_link = fts->link;
+ f->fts_info = f->status == FTS_AGAIN ? FTS_DP : 0;
+ fts->state = FTS_popstack_resume;
+ continue;
- case FTS_preorder_return:
+ case FTS_preorder_return:
- f = fts->current;
- f->fts_link = fts->link;
+ f = fts->current;
+ f->fts_link = fts->link;
- /*
- * follow symlink if asked to
- */
+ /*
+ * follow symlink if asked to
+ */
- if (f->status == FTS_FOLLOW)
- {
- f->status = 0;
- if (f->fts_info == FTS_SL || ISTYPE(f, DT_LNK) || f->fts_info == FTS_NSOK)
+ if (f->status == FTS_FOLLOW)
{
- info(fts, f, f->fts_accpath, f->fts_statp, 0);
- if (f->fts_info != FTS_SL)
+ f->status = 0;
+ if (f->fts_info == FTS_SL || ISTYPE(f, DT_LNK) || f->fts_info == FTS_NSOK)
{
- fts->state = FTS_preorder;
- continue;
+ info(fts, f, f->fts_accpath, f->fts_statp, 0);
+ if (f->fts_info != FTS_SL)
+ {
+ fts->state = FTS_preorder;
+ continue;
+ }
}
}
- }
- /*
- * about to prune this f and already at home
- */
+ /*
+ * about to prune this f and already at home
+ */
- if (fts->cd == 0 && f->fts_level == 0 && f->nd)
- fts->cd = -1;
- fts->state = FTS_preorder_resume;
- continue;
+ if (fts->cd == 0 && f->fts_level == 0 && f->nd)
+ fts->cd = -1;
+ fts->state = FTS_preorder_resume;
+ continue;
- case FTS_terminal:
+ case FTS_terminal:
- f = fts->current;
- if (f->status == FTS_FOLLOW)
- {
- f->status = 0;
- if (f->fts_info == FTS_SL || ISTYPE(f, DT_LNK) || f->fts_info == FTS_NSOK)
+ f = fts->current;
+ if (f->status == FTS_FOLLOW)
{
- info(fts, f, f->fts_accpath, f->fts_statp, 0);
- if (f->symlink && f->fts_info != FTS_SL)
+ f->status = 0;
+ if (f->fts_info == FTS_SL || ISTYPE(f, DT_LNK) || f->fts_info == FTS_NSOK)
{
- if (!(f->fts_link = fts->top))
- fts->bot = f;
- fts->top = f;
- fts->current = fts->previous;
- fts->state = FTS_readdir;
- continue;
+ info(fts, f, f->fts_accpath, f->fts_statp, 0);
+ if (f->symlink && f->fts_info != FTS_SL)
+ {
+ if (!(f->fts_link = fts->top))
+ fts->bot = f;
+ fts->top = f;
+ fts->current = fts->previous;
+ fts->state = FTS_readdir;
+ continue;
+ }
}
}
- }
- f = f->fts_parent;
- drop(fts, fts->current);
- fts->current = f;
- fts->state = FTS_readdir;
- continue;
+ f = f->fts_parent;
+ drop(fts, fts->current);
+ fts->current = f;
+ fts->state = FTS_readdir;
+ continue;
- case FTS_error:
+ case FTS_error:
- return 0;
+ return 0;
- default:
+ default:
- fts->fts_errno = EINVAL;
- fts->state = FTS_error;
- return 0;
+ fts->fts_errno = EINVAL;
+ fts->state = FTS_error;
+ return 0;
- }
+ }
note:
+#if __OBSOLETE__ < 20140101
+ f->_fts_pathlen = (unsigned short)f->fts_pathlen;
+#endif
for (p = notify; p; p = p->next)
if ((n = (*p->notifyf)(fts, f, p->context)) > 0)
break;
@@ -1429,6 +1464,8 @@ fts_children(register FTS* fts, int flags)
case 0:
+ if (fts->comparf)
+ order(fts);
fts->state = FTS_top_return;
return fts->todo;
diff --git a/usr/src/lib/libast/common/misc/ftwalk.c b/usr/src/lib/libast/common/misc/ftwalk.c
index b8b3276279..ea33821944 100644
--- a/usr/src/lib/libast/common/misc/ftwalk.c
+++ b/usr/src/lib/libast/common/misc/ftwalk.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/ftwflags.c b/usr/src/lib/libast/common/misc/ftwflags.c
index 22899a52d2..6a2fe25e08 100644
--- a/usr/src/lib/libast/common/misc/ftwflags.c
+++ b/usr/src/lib/libast/common/misc/ftwflags.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/getcwd.c b/usr/src/lib/libast/common/misc/getcwd.c
index deee50b7a4..d6879304ca 100644
--- a/usr/src/lib/libast/common/misc/getcwd.c
+++ b/usr/src/lib/libast/common/misc/getcwd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/getenv.c b/usr/src/lib/libast/common/misc/getenv.c
index fa4407c1ef..5391beeaa8 100644
--- a/usr/src/lib/libast/common/misc/getenv.c
+++ b/usr/src/lib/libast/common/misc/getenv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -21,23 +21,88 @@
***********************************************************************/
#pragma prototyped
+#if _UWIN && __STDPP__
+__STDPP__directive pragma pp:hide getenv
+#endif
+
#include "intercepts.h"
+#if _UWIN && __STDPP__
+__STDPP__directive pragma pp:nohide getenv
+#endif
+
/*
* NOTE: the "intercepts" definition is here instead of astintercept.c because some
* static linkers miss lone references to "intercepts" without "astintercept()"
- * ALSO: { 0 } definition required by some dynamic linkers avers to common symbols
+ * ALSO: { 0 } definition required by some dynamic linkers averse to common symbols
+ * UWIN: no _ast_getenv macro map to maintain ast54 compatibility
*/
Intercepts_t intercepts = { 0 };
+#if _UWIN && !defined(getenv)
+
+#include <windows.h>
+
+extern char** environ;
+
+static char*
+default_getenv(const char* name)
+{
+ register char** av;
+ register const char* cp;
+ register const char* sp;
+ register char c0;
+ register char c1;
+
+ av = environ;
+ if (!av || !name || !(c0 = *name))
+ return 0;
+ if (!(c1 = *++name))
+ c1 = '=';
+ while (cp = *av++)
+ {
+ if (cp[0] != c0 || cp[1] != c1)
+ continue;
+ sp = name;
+ cp++;
+ while (*sp && *sp++ == *cp++);
+ if (*(sp-1) != *(cp-1))
+ continue;
+ if (*sp == 0 && *cp == '=')
+ return (char*)(cp+1);
+ }
+ return 0;
+}
+
+#endif
+
/*
* get name from the environment
*/
-char*
+#if defined(__EXPORT__) && defined(getenv)
+#define extern __EXPORT__
+#endif
+
+extern char*
getenv(const char* name)
{
+#if _UWIN && !defined(getenv) /* for ast54 compatibility */
+ HANDLE dll;
+
+ static char* (*posix_getenv)(const char*);
+
+ if (!posix_getenv)
+ {
+ if (dll = GetModuleHandle("posix.dll"))
+ posix_getenv = (char*(*)(const char*))GetProcAddress(dll, "getenv");
+ if (!posix_getenv)
+ posix_getenv = default_getenv;
+ }
+ return intercepts.intercept_getenv ? (*intercepts.intercept_getenv)(name) : (*posix_getenv)(name);
+#else
#undef getenv
return intercepts.intercept_getenv ? (*intercepts.intercept_getenv)(name) : getenv(name);
+#endif
}
diff --git a/usr/src/lib/libast/common/misc/glob.c b/usr/src/lib/libast/common/misc/glob.c
index 4178731409..999db2d3cd 100644
--- a/usr/src/lib/libast/common/misc/glob.c
+++ b/usr/src/lib/libast/common/misc/glob.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/intercepts.h b/usr/src/lib/libast/common/misc/intercepts.h
index d9c207bde4..0f1ecc917d 100644
--- a/usr/src/lib/libast/common/misc/intercepts.h
+++ b/usr/src/lib/libast/common/misc/intercepts.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/liberror.c b/usr/src/lib/libast/common/misc/liberror.c
index dbddb2e67d..43fb5697e3 100644
--- a/usr/src/lib/libast/common/misc/liberror.c
+++ b/usr/src/lib/libast/common/misc/liberror.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/libevent.c b/usr/src/lib/libast/common/misc/libevent.c
index 06b8eeaff4..8330580413 100644
--- a/usr/src/lib/libast/common/misc/libevent.c
+++ b/usr/src/lib/libast/common/misc/libevent.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/magic.c b/usr/src/lib/libast/common/misc/magic.c
index e26d59d37e..6b086a3b08 100644
--- a/usr/src/lib/libast/common/misc/magic.c
+++ b/usr/src/lib/libast/common/misc/magic.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/mime.c b/usr/src/lib/libast/common/misc/mime.c
index c08ed50dff..d5e9debb37 100644
--- a/usr/src/lib/libast/common/misc/mime.c
+++ b/usr/src/lib/libast/common/misc/mime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/mimelib.h b/usr/src/lib/libast/common/misc/mimelib.h
index 48ffa22c83..3c55acebf5 100644
--- a/usr/src/lib/libast/common/misc/mimelib.h
+++ b/usr/src/lib/libast/common/misc/mimelib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/mimetype.c b/usr/src/lib/libast/common/misc/mimetype.c
index 50955c96ee..7df8b6c0da 100644
--- a/usr/src/lib/libast/common/misc/mimetype.c
+++ b/usr/src/lib/libast/common/misc/mimetype.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/optctx.c b/usr/src/lib/libast/common/misc/optctx.c
index c255643ada..067236b5fd 100644
--- a/usr/src/lib/libast/common/misc/optctx.c
+++ b/usr/src/lib/libast/common/misc/optctx.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/optesc.c b/usr/src/lib/libast/common/misc/optesc.c
index e8e2f4f6c2..3e29f5051a 100644
--- a/usr/src/lib/libast/common/misc/optesc.c
+++ b/usr/src/lib/libast/common/misc/optesc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/optget.c b/usr/src/lib/libast/common/misc/optget.c
index 79041fb694..551051dca3 100644
--- a/usr/src/lib/libast/common/misc/optget.c
+++ b/usr/src/lib/libast/common/misc/optget.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -50,13 +50,13 @@
#define OPT_ignorecase 0x004 /* arg match ignores case */
#define OPT_invert 0x008 /* flag inverts long sense */
#define OPT_listof 0x010 /* arg is ' ' or ',' list */
-#define OPT_minus 0x021 /* '-' is an option flag */
-#define OPT_number 0x040 /* arg is strtonll() number */
-#define OPT_oneof 0x080 /* arg may be set once */
-#define OPT_optional 0x100 /* arg is optional */
-#define OPT_string 0x200 /* arg is string */
+#define OPT_number 0x020 /* arg is strtonll() number */
+#define OPT_oneof 0x040 /* arg may be set once */
+#define OPT_optional 0x080 /* arg is optional */
+#define OPT_string 0x100 /* arg is string */
#define OPT_preformat 0001 /* output preformat string */
+#define OPT_proprietary 0002 /* proprietary docs */
#define OPT_TYPE (OPT_flag|OPT_number|OPT_string)
@@ -902,6 +902,7 @@ init(register char* s, Optpass_t* p)
s += n;
}
p->opts = s;
+ message((-1, "version=%d prefix=%d section=%d flags=%04x catalog=%s", p->version, p->prefix, p->section, p->flags, p->catalog));
return 0;
}
@@ -2150,7 +2151,7 @@ opthelp(const char* oopts, const char* what)
}
else
return T(NiL, ID, "[* call optget() before opthelp() *]");
- if (style < STYLE_usage)
+ if (style <= STYLE_usage)
{
if (!(sp_text = sfstropen()) || !(sp_info = sfstropen()))
goto nospace;
@@ -2212,10 +2213,18 @@ opthelp(const char* oopts, const char* what)
sfputc(mp, '\n');
else
xl = 1;
- while (c = *p++)
+ psp = 0;
+ for (;;)
{
- switch (c)
+ switch (c = *p++)
{
+ case 0:
+ if (!(tsp = psp))
+ goto style_usage;
+ p = psp->ob;
+ psp = psp->next;
+ free(tsp);
+ continue;
case '\a':
c = 'a';
break;
@@ -2223,8 +2232,15 @@ opthelp(const char* oopts, const char* what)
c = 'b';
break;
case '\f':
- c = 'f';
- break;
+ psp = info(psp, p, NiL, sp_info);
+ if (psp->nb)
+ p = psp->nb;
+ else
+ {
+ p = psp->ob;
+ psp = psp->next;
+ }
+ continue;
case '\n':
c = 'n';
break;
@@ -2253,6 +2269,7 @@ opthelp(const char* oopts, const char* what)
sfputc(mp, '\\');
sfputc(mp, c);
}
+ style_usage:
continue;
case STYLE_keys:
a = 0;
@@ -3668,7 +3685,7 @@ opterror(register char* p, int version, char* catalog, int err)
register int c;
if (opt_info.num != LONG_MIN)
- opt_info.num = opt_info.number = 0;
+ opt_info.num = (long)(opt_info.number = 0);
if (!p || !(mp = opt_info.state->mp) && !(mp = opt_info.state->mp = sfstropen()))
goto nospace;
s = *p == '-' ? p : opt_info.name;
@@ -3762,7 +3779,7 @@ opterror(register char* p, int version, char* catalog, int err)
* `Usage: command '
* ':' error: opt_info.arg points to message sans `command: '
*
- * '-' '+' '?' ':' '#' '[' ']' ' '
+ * ':' '#' ' ' '[' ']'
* invalid option chars
*
* -- terminates option list and returns 0
@@ -4015,6 +4032,7 @@ optget(register char** argv, const char* oopts)
return 0;
if (c == '+')
opt_info.arg = 0;
+ message((-2, "c='%c' n=%d", c, n));
if (n == 2)
{
x = 0;
@@ -4117,7 +4135,7 @@ optget(register char** argv, const char* oopts)
*/
if (opt_info.num != LONG_MIN)
- opt_info.num = opt_info.number = !(k & OPT_cache_invert);
+ opt_info.num = (long)(opt_info.number = !(k & OPT_cache_invert));
if (!(k & (OPT_cache_string|OPT_cache_numeric)))
return c;
if (*(opt_info.arg = &argv[opt_info.index++][opt_info.offset]))
@@ -4259,7 +4277,7 @@ optget(register char** argv, const char* oopts)
}
continue;
}
- message((-20, "optget: opt %s w %s num %ld", show(s), w, num));
+ message((-20, "optget: opt %s c %c w %s num %ld", show(s), c, w, num));
if (*s == c && !w)
break;
else if (*s == '[')
@@ -4663,6 +4681,7 @@ optget(register char** argv, const char* oopts)
if (*s == GO)
s = skip(s + 1, 0, 0, 0, 0, 1, 1, version);
}
+ message((-21, "optget: opt %s", show(s)));
}
if (w && x)
{
@@ -4725,7 +4744,7 @@ optget(register char** argv, const char* oopts)
*/
if (opt_info.num != LONG_MIN)
- opt_info.num = opt_info.number = num;
+ opt_info.num = (long)(opt_info.number = num);
if ((n = *++s == '#') || *s == ':' || w && !nov && v && (optnumber(v, &e, NiL), n = !*e))
{
if (w)
@@ -4737,7 +4756,7 @@ optget(register char** argv, const char* oopts)
pop(psp);
return opterror("!", version, catalog, 0);
}
- opt_info.num = opt_info.number = 0;
+ opt_info.num = (long)(opt_info.number = 0);
}
else
{
@@ -4768,7 +4787,7 @@ optget(register char** argv, const char* oopts)
else
{
opt_info.arg = 0;
- opt_info.num = opt_info.number = 0;
+ opt_info.num = (long)(opt_info.number = 0);
}
break;
}
@@ -4988,7 +5007,7 @@ optget(register char** argv, const char* oopts)
}
}
} while (*(s = skip(s, 0, 0, 0, 1, 0, 1, version)) == '[');
- if (!(opt_info.num = opt_info.number = x))
+ if (!(opt_info.num = (long)(opt_info.number = x)))
{
pop(psp);
return opterror("*", version, catalog, 0);
@@ -5003,7 +5022,7 @@ optget(register char** argv, const char* oopts)
}
else
{
- opt_info.num = opt_info.number = num;
+ opt_info.num = (long)(opt_info.number = num);
if (!w && !argv[opt_info.index][opt_info.offset])
{
opt_info.offset = 0;
@@ -5148,7 +5167,7 @@ optstr(const char* str, const char* opts)
e = opt_info.name;
while (e < &opt_info.name[sizeof(opt_info.name)-1] && (*e++ = *s++));
opt_info.arg = 0;
- opt_info.num = opt_info.number = 0;
+ opt_info.num = (long)(opt_info.number = 0);
opt_info.option[0] = ':';
opt_info.option[1] = 0;
return '#';
diff --git a/usr/src/lib/libast/common/misc/optjoin.c b/usr/src/lib/libast/common/misc/optjoin.c
index bab68823fa..1f792e76e5 100644
--- a/usr/src/lib/libast/common/misc/optjoin.c
+++ b/usr/src/lib/libast/common/misc/optjoin.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/optlib.h b/usr/src/lib/libast/common/misc/optlib.h
index 08871b4012..ff697034f2 100644
--- a/usr/src/lib/libast/common/misc/optlib.h
+++ b/usr/src/lib/libast/common/misc/optlib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -39,8 +39,8 @@
#define OPT_long 0x08
#define OPT_numeric 0x10
#define OPT_old 0x20
-#define OPT_plus 0x40
-#define OPT_proprietary 0x80
+#define OPT_minus 0x40
+#define OPT_plus 0x80
#define OPT_cache_flag 0x01
#define OPT_cache_invert 0x02
diff --git a/usr/src/lib/libast/common/misc/procclose.c b/usr/src/lib/libast/common/misc/procclose.c
index 317ea584a1..07915f8b22 100644
--- a/usr/src/lib/libast/common/misc/procclose.c
+++ b/usr/src/lib/libast/common/misc/procclose.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/procfree.c b/usr/src/lib/libast/common/misc/procfree.c
index 6a7d429af6..c3effe4456 100644
--- a/usr/src/lib/libast/common/misc/procfree.c
+++ b/usr/src/lib/libast/common/misc/procfree.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/proclib.h b/usr/src/lib/libast/common/misc/proclib.h
index 55801fec6b..85dc1f7d2d 100644
--- a/usr/src/lib/libast/common/misc/proclib.h
+++ b/usr/src/lib/libast/common/misc/proclib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/procopen.c b/usr/src/lib/libast/common/misc/procopen.c
index ba026296c0..541fba6c14 100644
--- a/usr/src/lib/libast/common/misc/procopen.c
+++ b/usr/src/lib/libast/common/misc/procopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/procrun.c b/usr/src/lib/libast/common/misc/procrun.c
index 757613eb00..e6dd204d74 100644
--- a/usr/src/lib/libast/common/misc/procrun.c
+++ b/usr/src/lib/libast/common/misc/procrun.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/recfmt.c b/usr/src/lib/libast/common/misc/recfmt.c
index 404c809634..f056984e39 100644
--- a/usr/src/lib/libast/common/misc/recfmt.c
+++ b/usr/src/lib/libast/common/misc/recfmt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/reclen.c b/usr/src/lib/libast/common/misc/reclen.c
index 507619b35e..6ca007ee70 100644
--- a/usr/src/lib/libast/common/misc/reclen.c
+++ b/usr/src/lib/libast/common/misc/reclen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/recstr.c b/usr/src/lib/libast/common/misc/recstr.c
index f5e069c747..8ffed6ecfd 100644
--- a/usr/src/lib/libast/common/misc/recstr.c
+++ b/usr/src/lib/libast/common/misc/recstr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -180,8 +180,6 @@ recstr(register const char* s, char** e)
case '5': case '6': case '7': case '8': case '9':
v = 0;
a[n++] = strtol(s, &t, 0);
- if (t > s && (*(t - 1) == 'l' || *(t - 1) == 'L'))
- t--;
s = (const char*)t - 1;
continue;
}
diff --git a/usr/src/lib/libast/common/misc/setenviron.c b/usr/src/lib/libast/common/misc/setenviron.c
index bc42f192ca..c2e75da3d5 100644
--- a/usr/src/lib/libast/common/misc/setenviron.c
+++ b/usr/src/lib/libast/common/misc/setenviron.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/sigcrit.c b/usr/src/lib/libast/common/misc/sigcrit.c
index 5941e8cd4b..1627e4ee4c 100644
--- a/usr/src/lib/libast/common/misc/sigcrit.c
+++ b/usr/src/lib/libast/common/misc/sigcrit.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/sigdata.c b/usr/src/lib/libast/common/misc/sigdata.c
index b295004b98..6b5c8a337d 100644
--- a/usr/src/lib/libast/common/misc/sigdata.c
+++ b/usr/src/lib/libast/common/misc/sigdata.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/signal.c b/usr/src/lib/libast/common/misc/signal.c
index 1eb9ed26cb..c64d04b941 100644
--- a/usr/src/lib/libast/common/misc/signal.c
+++ b/usr/src/lib/libast/common/misc/signal.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/stack.c b/usr/src/lib/libast/common/misc/stack.c
index 3878653442..941c7fa0fb 100644
--- a/usr/src/lib/libast/common/misc/stack.c
+++ b/usr/src/lib/libast/common/misc/stack.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/state.c b/usr/src/lib/libast/common/misc/state.c
index ec0681e234..2e6ac5eb6b 100644
--- a/usr/src/lib/libast/common/misc/state.c
+++ b/usr/src/lib/libast/common/misc/state.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/stk.c b/usr/src/lib/libast/common/misc/stk.c
index 52f90137ff..90de21eac3 100644
--- a/usr/src/lib/libast/common/misc/stk.c
+++ b/usr/src/lib/libast/common/misc/stk.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/systrace.c b/usr/src/lib/libast/common/misc/systrace.c
index 38d8fa172d..506125ba92 100644
--- a/usr/src/lib/libast/common/misc/systrace.c
+++ b/usr/src/lib/libast/common/misc/systrace.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/translate.c b/usr/src/lib/libast/common/misc/translate.c
index 995cdcd51b..b8d79b9fe5 100644
--- a/usr/src/lib/libast/common/misc/translate.c
+++ b/usr/src/lib/libast/common/misc/translate.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -23,7 +23,7 @@
/*
* AT&T Research and SCO
- * ast i18n message translation
+ * ast l10n message translation
*/
#include "lclib.h"
diff --git a/usr/src/lib/libast/common/misc/univdata.c b/usr/src/lib/libast/common/misc/univdata.c
index afeeb943b9..865f3e8b9f 100644
--- a/usr/src/lib/libast/common/misc/univdata.c
+++ b/usr/src/lib/libast/common/misc/univdata.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/misc/univlib.h b/usr/src/lib/libast/common/misc/univlib.h
index 24a728a312..8ce891748e 100644
--- a/usr/src/lib/libast/common/misc/univlib.h
+++ b/usr/src/lib/libast/common/misc/univlib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/obsolete/spawn.c b/usr/src/lib/libast/common/obsolete/spawn.c
index 22f215ff85..3bc86e9854 100644
--- a/usr/src/lib/libast/common/obsolete/spawn.c
+++ b/usr/src/lib/libast/common/obsolete/spawn.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathaccess.c b/usr/src/lib/libast/common/path/pathaccess.c
index b23d7d30ad..c38b19a88e 100644
--- a/usr/src/lib/libast/common/path/pathaccess.c
+++ b/usr/src/lib/libast/common/path/pathaccess.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathbin.c b/usr/src/lib/libast/common/path/pathbin.c
index 58f4301142..97fff55e57 100644
--- a/usr/src/lib/libast/common/path/pathbin.c
+++ b/usr/src/lib/libast/common/path/pathbin.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathcanon.c b/usr/src/lib/libast/common/path/pathcanon.c
index c119bca002..72f4e6b444 100644
--- a/usr/src/lib/libast/common/path/pathcanon.c
+++ b/usr/src/lib/libast/common/path/pathcanon.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathcat.c b/usr/src/lib/libast/common/path/pathcat.c
index 92091826f8..75eebd420f 100644
--- a/usr/src/lib/libast/common/path/pathcat.c
+++ b/usr/src/lib/libast/common/path/pathcat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathcd.c b/usr/src/lib/libast/common/path/pathcd.c
index 363cb1f709..e2c921a3a4 100644
--- a/usr/src/lib/libast/common/path/pathcd.c
+++ b/usr/src/lib/libast/common/path/pathcd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathcheck.c b/usr/src/lib/libast/common/path/pathcheck.c
index 0bedbb185b..624cd35da4 100644
--- a/usr/src/lib/libast/common/path/pathcheck.c
+++ b/usr/src/lib/libast/common/path/pathcheck.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathexists.c b/usr/src/lib/libast/common/path/pathexists.c
index ceb5f2ec56..23c47e4820 100644
--- a/usr/src/lib/libast/common/path/pathexists.c
+++ b/usr/src/lib/libast/common/path/pathexists.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathfind.c b/usr/src/lib/libast/common/path/pathfind.c
index 6f1907589b..ce736e52bb 100644
--- a/usr/src/lib/libast/common/path/pathfind.c
+++ b/usr/src/lib/libast/common/path/pathfind.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathgetlink.c b/usr/src/lib/libast/common/path/pathgetlink.c
index 515b0dbcd9..408b6757ae 100644
--- a/usr/src/lib/libast/common/path/pathgetlink.c
+++ b/usr/src/lib/libast/common/path/pathgetlink.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathkey.c b/usr/src/lib/libast/common/path/pathkey.c
index dbe350ded3..7fe06995a6 100644
--- a/usr/src/lib/libast/common/path/pathkey.c
+++ b/usr/src/lib/libast/common/path/pathkey.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -151,7 +151,7 @@ pathkey(char* key, char* attr, const char* lang, const char* tool, const char* a
if (!(k = getenv("PROBE_ATTRIBUTES")))
k = getenv("VERSION_ENVIRONMENT");
if (k)
- while (c < elementsof(usr))
+ while (c < (elementsof(usr) - 1))
{
while (*k && (*k == ':' || *k == ' '))
k++;
diff --git a/usr/src/lib/libast/common/path/pathnative.c b/usr/src/lib/libast/common/path/pathnative.c
index 125ec26712..9075b49343 100644
--- a/usr/src/lib/libast/common/path/pathnative.c
+++ b/usr/src/lib/libast/common/path/pathnative.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathpath.c b/usr/src/lib/libast/common/path/pathpath.c
index f080bb63e3..cead8785f7 100644
--- a/usr/src/lib/libast/common/path/pathpath.c
+++ b/usr/src/lib/libast/common/path/pathpath.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathposix.c b/usr/src/lib/libast/common/path/pathposix.c
index d8d097c0fe..e6772e1881 100644
--- a/usr/src/lib/libast/common/path/pathposix.c
+++ b/usr/src/lib/libast/common/path/pathposix.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathprobe.c b/usr/src/lib/libast/common/path/pathprobe.c
index 09e629a665..be9e3bdcf5 100644
--- a/usr/src/lib/libast/common/path/pathprobe.c
+++ b/usr/src/lib/libast/common/path/pathprobe.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathprog.c b/usr/src/lib/libast/common/path/pathprog.c
new file mode 100644
index 0000000000..e184db0448
--- /dev/null
+++ b/usr/src/lib/libast/common/path/pathprog.c
@@ -0,0 +1,119 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+/*
+ * Glenn Fowler
+ * AT&T Research
+ *
+ * return the full path of the current program in path
+ * command!=0 is used as a default
+ */
+
+#include <ast.h>
+
+#if _WINIX
+#include <ast_windows.h>
+#include <ctype.h>
+#endif
+
+#include "FEATURE/prog"
+
+static size_t
+prog(const char* command, char* path, size_t size)
+{
+ ssize_t n;
+#if _WINIX || _lib_getexecname
+ char* s;
+#endif
+#if _WINIX
+ char* t;
+ char* e;
+ int c;
+ int q;
+#endif
+
+#ifdef _PROC_PROG
+ if ((n = readlink(_PROC_PROG, path, size)) > 0)
+ {
+ if (n < size)
+ path[n] = 0;
+ return n;
+ }
+#endif
+#if _lib_getexecname
+ if (s = (char*)getexecname())
+ {
+ n = strlen(s);
+ if (n < size)
+ strcpy(path, s);
+ return n;
+ }
+#endif
+#if _WINIX
+ if (s = GetCommandLine())
+ {
+ n = 0;
+ q = 0;
+ t = path;
+ e = path + size - 1;
+ while (c = *s++)
+ {
+ if (c == q)
+ q = 0;
+ else if (!q && c == '"')
+ q = c;
+ else if (!q && isspace(c))
+ break;
+ else if (t < e)
+ *t++ = c == '\\' ? '/' : c;
+ else
+ n++;
+ }
+ if (t < e)
+ *t = 0;
+ return (t - path) + n;
+ }
+#endif
+ if (command)
+ {
+ if ((n = strlen(command) + 1) <= size)
+ memcpy(path, command, n);
+ return n;
+ }
+ return 0;
+}
+
+size_t
+pathprog(const char* command, char* path, size_t size)
+{
+ ssize_t n;
+ char buf[PATH_MAX];
+
+ if ((n = prog(command, path, size)) > 0 && n <= size && *path != '/')
+ {
+ if (!pathpath(buf, path, NiL, PATH_REGULAR|PATH_EXECUTE))
+ n = 0;
+ else if ((n = strlen(buf) + 1) <= size)
+ memcpy(path, buf, n);
+ }
+ return n;
+}
diff --git a/usr/src/lib/libast/common/path/pathrepl.c b/usr/src/lib/libast/common/path/pathrepl.c
index dd424e473a..4a6d5372f5 100644
--- a/usr/src/lib/libast/common/path/pathrepl.c
+++ b/usr/src/lib/libast/common/path/pathrepl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathsetlink.c b/usr/src/lib/libast/common/path/pathsetlink.c
index 9c8a507a92..97e1069af5 100644
--- a/usr/src/lib/libast/common/path/pathsetlink.c
+++ b/usr/src/lib/libast/common/path/pathsetlink.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathshell.c b/usr/src/lib/libast/common/path/pathshell.c
index 2ed2987829..aae0c60237 100644
--- a/usr/src/lib/libast/common/path/pathshell.c
+++ b/usr/src/lib/libast/common/path/pathshell.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathstat.c b/usr/src/lib/libast/common/path/pathstat.c
index 2d13bbd334..d8c224fad3 100644
--- a/usr/src/lib/libast/common/path/pathstat.c
+++ b/usr/src/lib/libast/common/path/pathstat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathtemp.c b/usr/src/lib/libast/common/path/pathtemp.c
index 1656e1193e..3c4b72f59f 100644
--- a/usr/src/lib/libast/common/path/pathtemp.c
+++ b/usr/src/lib/libast/common/path/pathtemp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/path/pathtmp.c b/usr/src/lib/libast/common/path/pathtmp.c
index 98791c6aa2..0be0306a69 100644
--- a/usr/src/lib/libast/common/path/pathtmp.c
+++ b/usr/src/lib/libast/common/path/pathtmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/astconf.c b/usr/src/lib/libast/common/port/astconf.c
index c0b08e8386..3b3c7000a7 100644
--- a/usr/src/lib/libast/common/port/astconf.c
+++ b/usr/src/lib/libast/common/port/astconf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -26,7 +26,7 @@
* extended to allow some features to be set per-process
*/
-static const char id[] = "\n@(#)$Id: getconf (AT&T Research) 2008-04-24 $\0\n";
+static const char id[] = "\n@(#)$Id: getconf (AT&T Research) 2009-07-02 $\0\n";
#include "univlib.h"
@@ -40,6 +40,10 @@ static const char id[] = "\n@(#)$Id: getconf (AT&T Research) 2008-04-24 $\0\n";
#include "conftab.h"
#include "FEATURE/libpath"
+#ifndef DEBUG_astconf
+#define DEBUG_astconf 0
+#endif
+
#ifndef _pth_getconf
#undef ASTCONF_system
#define ASTCONF_system 0
@@ -64,23 +68,14 @@ static const char id[] = "\n@(#)$Id: getconf (AT&T Research) 2008-04-24 $\0\n";
# undef _lib_sysinfo
#endif
-#define OP_conformance 1
-#define OP_fs_3d 2
-#define OP_getconf 3
-#define OP_hosttype 4
-#define OP_libpath 5
-#define OP_libprefix 6
-#define OP_libsuffix 7
-#define OP_path_attributes 8
-#define OP_path_resolve 9
-#define OP_universe 10
-
#define CONF_ERROR (CONF_USER<<0)
#define CONF_READONLY (CONF_USER<<1)
#define CONF_ALLOC (CONF_USER<<2)
#define CONF_GLOBAL (CONF_USER<<3)
+#define DEFAULT(o) ((state.std||!dynamic[o].ast)?dynamic[o].std:dynamic[o].ast)
#define INITIALIZE() do{if(!state.data)synthesize(NiL,NiL,NiL);}while(0)
+#define STANDARD(v) (streq(v,"standard")||streq(v,"strict")||streq(v,"posix")||streq(v,"xopen"))
#define MAXVAL 256
@@ -101,7 +96,8 @@ typedef struct Feature_s
struct Feature_s*next;
const char* name;
char* value;
- char* strict;
+ char* std;
+ char* ast;
short length;
short standard;
unsigned int flags;
@@ -120,28 +116,33 @@ typedef struct
static Feature_t dynamic[] =
{
+#define OP_conformance 0
{
- &dynamic[1],
+ &dynamic[OP_conformance+1],
"CONFORMANCE",
"ast",
"standard",
+ "ast",
11,
CONF_AST,
0,
OP_conformance
},
+#define OP_fs_3d 1
{
- &dynamic[2],
+ &dynamic[OP_fs_3d+1],
"FS_3D",
&null[0],
"0",
+ 0,
5,
CONF_AST,
0,
OP_fs_3d
},
+#define OP_getconf 2
{
- &dynamic[3],
+ &dynamic[OP_getconf+1],
"GETCONF",
#ifdef _pth_getconf
_pth_getconf,
@@ -149,23 +150,27 @@ static Feature_t dynamic[] =
&null[0],
#endif
0,
+ 0,
7,
CONF_AST,
CONF_READONLY,
OP_getconf
},
+#define OP_hosttype 3
{
- &dynamic[4],
+ &dynamic[OP_hosttype+1],
"HOSTTYPE",
HOSTTYPE,
0,
+ 0,
8,
CONF_AST,
CONF_READONLY,
OP_hosttype
},
+#define OP_libpath 4
{
- &dynamic[5],
+ &dynamic[OP_libpath+1],
"LIBPATH",
#ifdef CONF_LIBPATH
CONF_LIBPATH,
@@ -173,13 +178,15 @@ static Feature_t dynamic[] =
&null[0],
#endif
0,
+ 0,
7,
CONF_AST,
0,
OP_libpath
},
+#define OP_libprefix 5
{
- &dynamic[6],
+ &dynamic[OP_libprefix+1],
"LIBPREFIX",
#ifdef CONF_LIBPREFIX
CONF_LIBPREFIX,
@@ -187,13 +194,15 @@ static Feature_t dynamic[] =
"lib",
#endif
0,
+ 0,
9,
CONF_AST,
0,
OP_libprefix
},
+#define OP_libsuffix 6
{
- &dynamic[7],
+ &dynamic[OP_libsuffix+1],
"LIBSUFFIX",
#ifdef CONF_LIBSUFFIX
CONF_LIBSUFFIX,
@@ -201,13 +210,15 @@ static Feature_t dynamic[] =
".so",
#endif
0,
+ 0,
9,
CONF_AST,
0,
OP_libsuffix
},
+#define OP_path_attributes 7
{
- &dynamic[8],
+ &dynamic[OP_path_attributes+1],
"PATH_ATTRIBUTES",
#if _WINIX
"c",
@@ -215,26 +226,31 @@ static Feature_t dynamic[] =
&null[0],
#endif
&null[0],
+ 0,
15,
CONF_AST,
CONF_READONLY,
OP_path_attributes
},
+#define OP_path_resolve 8
{
- &dynamic[9],
+ &dynamic[OP_path_resolve+1],
"PATH_RESOLVE",
&null[0],
+ "physical",
"metaphysical",
12,
CONF_AST,
0,
OP_path_resolve
},
+#define OP_universe 9
{
0,
"UNIVERSE",
&null[0],
"att",
+ 0,
8,
CONF_AST,
0,
@@ -252,6 +268,8 @@ typedef struct
const char* name;
Feature_t* features;
+ int std;
+
/* default initialization from here down */
int prefix;
@@ -266,7 +284,7 @@ typedef struct
} State_t;
-static State_t state = { "getconf", "_AST_FEATURES", dynamic };
+static State_t state = { "getconf", "_AST_FEATURES", dynamic, -1 };
static char* feature(const char*, const char*, const char*, unsigned int, Error_f);
@@ -293,9 +311,10 @@ synthesize(register Feature_t* fp, const char* path, const char* value)
register char* s;
register char* d;
register char* v;
+ register char* p;
register int n;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
if (fp)
error(-2, "astconf synthesize name=%s path=%s value=%s fp=%p%s", fp->name, path, value, fp, state.synthesizing ? " SYNTHESIZING" : "");
#endif
@@ -376,11 +395,11 @@ synthesize(register Feature_t* fp, const char* path, const char* value)
value = (const char*)d;
goto ok;
}
- for (s = d + n + 1; *s && !isspace(*s); s++);
+ for (s = p = d + n + 1; *s && !isspace(*s); s++);
for (; isspace(*s); s++);
for (v = s; *s && !isspace(*s); s++);
n = s - v;
- if (strneq(v, value, n))
+ if ((!path || *path == *p && strlen(path) == (v - p - 1) && !memcmp(path, p, v - p - 1)) && strneq(v, value, n))
goto ok;
for (; isspace(*s); s++);
if (*s)
@@ -433,6 +452,9 @@ synthesize(register Feature_t* fp, const char* path, const char* value)
for (s = (char*)path; *d = *s++; d++);
*d++ = ' ';
for (s = (char*)value; *d = *s++; d++);
+#if DEBUG_astconf
+ error(-3, "astconf synthesize %s", state.data - state.prefix);
+#endif
setenviron(state.data - state.prefix);
if (state.notify)
(*state.notify)(NiL, NiL, state.data - state.prefix);
@@ -466,7 +488,7 @@ initialize(register Feature_t* fp, const char* path, const char* command, const
register char* p;
register int ok = 1;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf initialize name=%s path=%s command=%s succeed=%s fail=%s fp=%p%s", fp->name, path, command, succeed, fail, fp, state.synthesizing ? " SYNTHESIZING" : "");
#endif
switch (fp->op)
@@ -484,7 +506,7 @@ initialize(register Feature_t* fp, const char* path, const char* command, const
ok = fs3d(FS3D_TEST);
break;
case OP_universe:
- ok = streq(_UNIV_DEFAULT, "att");
+ ok = streq(_UNIV_DEFAULT, DEFAULT(OP_universe));
/*FALLTHROUGH...*/
default:
if (p = getenv("PATH"))
@@ -493,7 +515,7 @@ initialize(register Feature_t* fp, const char* path, const char* command, const
register char* d = p;
Sfio_t* tmp;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf initialize name=%s ok=%d PATH=%s", fp->name, ok, p);
#endif
if (tmp = sfstropen())
@@ -566,6 +588,9 @@ initialize(register Feature_t* fp, const char* path, const char* command, const
}
break;
}
+#if DEBUG_astconf
+ error(-1, "AHA#%d state.std=%d %s [%s] std=%s ast=%s value=%s ok=%d", __LINE__, state.std, fp->name, ok ? succeed : fail, fp->std, fp->ast, fp->value, ok);
+#endif
synthesize(fp, path, ok ? succeed : fail);
}
@@ -579,7 +604,7 @@ format(register Feature_t* fp, const char* path, const char* value, unsigned int
register Feature_t* sp;
register int n;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf format name=%s path=%s value=%s flags=%04x fp=%p%s", fp->name, path, value, flags, fp, state.synthesizing ? " SYNTHESIZING" : "");
#endif
if (value)
@@ -590,15 +615,27 @@ format(register Feature_t* fp, const char* path, const char* value, unsigned int
{
case OP_conformance:
- if (value && (streq(value, "strict") || streq(value, "posix") || streq(value, "xopen")))
- value = fp->strict;
- n = streq(fp->value, fp->strict);
+ if (value && STANDARD(value))
+ value = fp->std;
+ n = state.std = streq(fp->value, fp->std);
+#if DEBUG_astconf
+ error(-1, "AHA#%d state.std=%d %s [%s] std=%s ast=%s value=%s", __LINE__, state.std, fp->name, value, fp->std, fp->ast, fp->value);
+#endif
if (!synthesize(fp, path, value))
- initialize(fp, path, NiL, fp->strict, fp->value);
- if (!n && streq(fp->value, fp->strict))
+ initialize(fp, path, NiL, fp->std, fp->value);
+#if DEBUG_astconf
+ error(-1, "AHA#%d state.std=%d %s [%s] std=%s ast=%s value=%s", __LINE__, state.std, fp->name, value, fp->std, fp->ast, fp->value);
+#endif
+ if (!n && STANDARD(fp->value))
+ {
+ state.std = 1;
for (sp = state.features; sp; sp = sp->next)
- if (sp->strict && sp->op && sp->op != OP_conformance)
- astconf(sp->name, path, sp->strict);
+ if (sp->std && sp->op && sp->op != OP_conformance)
+ astconf(sp->name, path, sp->std);
+ }
+#if DEBUG_astconf
+ error(-1, "AHA#%d state.std=%d %s [%s] std=%s ast=%s value=%s", __LINE__, state.std, fp->name, value, fp->std, fp->ast, fp->value);
+#endif
break;
case OP_fs_3d:
@@ -637,13 +674,13 @@ format(register Feature_t* fp, const char* path, const char* value, unsigned int
case OP_path_resolve:
if (!synthesize(fp, path, value))
- initialize(fp, path, NiL, "logical", "metaphysical");
+ initialize(fp, path, NiL, "logical", DEFAULT(OP_path_resolve));
break;
case OP_universe:
#if _lib_universe
if (getuniverse(fp->value) < 0)
- strcpy(fp->value, "att");
+ strcpy(fp->value, DEFAULT(OP_universe));
if (value)
setuniverse(value);
#else
@@ -672,9 +709,26 @@ format(register Feature_t* fp, const char* path, const char* value, unsigned int
strcpy(fp->value, univ_name[n - 1]);
#else
if (value && streq(path, "="))
- strcpy(fp->value, value);
+ {
+ if (state.synthesizing)
+ {
+ if (!(fp->flags & CONF_ALLOC))
+ fp->value = 0;
+ n = strlen(value);
+ if (!(fp->value = newof(fp->value, char, n, 1)))
+ fp->value = null;
+ else
+ {
+ fp->flags |= CONF_ALLOC;
+ memcpy(fp->value, value, n);
+ fp->value[n] = 0;
+ }
+ }
+ else
+ synthesize(fp, path, value);
+ }
else
- initialize(fp, path, "echo", "att", "ucb");
+ initialize(fp, path, "echo", DEFAULT(OP_universe), "ucb");
#endif
#endif
break;
@@ -704,7 +758,7 @@ feature(const char* name, const char* path, const char* value, unsigned int flag
if (value && (streq(value, "-") || streq(value, "0")))
value = null;
for (fp = state.features; fp && !streq(fp->name, name); fp = fp->next);
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf feature name=%s path=%s value=%s flags=%04x fp=%p%s", name, path, value, flags, fp, state.synthesizing ? " SYNTHESIZING" : "");
#endif
if (!fp)
@@ -720,9 +774,11 @@ feature(const char* name, const char* path, const char* value, unsigned int flag
(*conferror)(&state, &state, 2, "%s: out of space", name);
return 0;
}
+ fp->op = -1;
fp->name = (const char*)fp + sizeof(Feature_t);
strcpy((char*)fp->name, name);
fp->length = n;
+ fp->std = &null[0];
fp->next = state.features;
state.features = fp;
}
@@ -807,14 +863,14 @@ lookup(register Lookup_t* look, const char* name, unsigned int flags)
look->section = 1;
#endif
look->name = name;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf normal name=%s standard=%d section=%d call=%d flags=%04x elements=%d", look->name, look->standard, look->section, look->call, flags, conf_elements);
#endif
c = *((unsigned char*)name);
while (lo <= hi)
{
mid = lo + (hi - lo) / 2;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-3, "astconf lookup name=%s mid=%s", name, mid->name);
#endif
if (!(v = c - *((unsigned char*)mid->name)) && !(v = strcmp(name, mid->name)))
@@ -849,7 +905,7 @@ lookup(register Lookup_t* look, const char* name, unsigned int flags)
if (look->call < 0 && look->standard >= 0 && (look->section <= 1 || (mid->flags & CONF_MINMAX)))
look->flags |= CONF_MINMAX;
look->conf = mid;
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf lookup name=%s standard=%d:%d section=%d:%d call=%d:%d", look->name, look->standard, mid->standard, look->section, mid->section, look->call, mid->call);
#endif
return 1;
@@ -904,9 +960,9 @@ print(Sfio_t* sp, register Lookup_t* look, const char* name, const char* path, i
flags |= CONF_PREFIXED;
olderrno = errno;
errno = 0;
-#if DEBUG || DEBUG_astconf
- error(-1, "astconf name=%s:%s standard=%d section=%d call=%s op=%d flags=|%s%s%s%s%s:|%s%s%s%s%s%s%s%s%s%s"
- , name , p->name, p->standard, p->section, prefix[p->call + CONF_call].name, p->op
+#if DEBUG_astconf
+ error(-1, "astconf name=%s:%s:%s standard=%d section=%d call=%s op=%d flags=|%s%s%s%s%s:|%s%s%s%s%s%s%s%s%s%s"
+ , name, look->name, p->name, p->standard, p->section, prefix[p->call + CONF_call].name, p->op
, (flags & CONF_FEATURE) ? "FEATURE|" : ""
, (flags & CONF_LIMIT) ? "LIMIT|" : ""
, (flags & CONF_MINMAX) ? "MINMAX|" : ""
@@ -1035,7 +1091,7 @@ print(Sfio_t* sp, register Lookup_t* look, const char* name, const char* path, i
call = 0;
if (p->standard == CONF_AST)
{
- if (streq(look->name, "RELEASE") && (i = open("/proc/version", O_RDONLY)) >= 0)
+ if (streq(p->name, "RELEASE") && (i = open("/proc/version", O_RDONLY)) >= 0)
{
n = read(i, buf, sizeof(buf) - 1);
close(i);
@@ -1061,7 +1117,7 @@ print(Sfio_t* sp, register Lookup_t* look, const char* name, const char* path, i
predef:
if (look->standard == CONF_AST)
{
- if (streq(look->name, "VERSION"))
+ if (streq(p->name, "VERSION"))
{
v = _AST_VERSION;
break;
@@ -1253,7 +1309,7 @@ nativeconf(Proc_t** pp, const char* operand)
char* cmd[3];
long ops[2];
-#if DEBUG || DEBUG_astconf
+#if DEBUG_astconf
error(-2, "astconf defer %s %s", _pth_getconf, operand);
#endif
cmd[0] = (char*)state.id;
diff --git a/usr/src/lib/libast/common/port/astcopy.c b/usr/src/lib/libast/common/port/astcopy.c
index 74c47eca32..3634328d62 100644
--- a/usr/src/lib/libast/common/port/astcopy.c
+++ b/usr/src/lib/libast/common/port/astcopy.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/astdynamic.c b/usr/src/lib/libast/common/port/astdynamic.c
index faff88ad69..a772b67878 100644
--- a/usr/src/lib/libast/common/port/astdynamic.c
+++ b/usr/src/lib/libast/common/port/astdynamic.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/astlicense.c b/usr/src/lib/libast/common/port/astlicense.c
index 5e15cee13a..6627b20b6b 100644
--- a/usr/src/lib/libast/common/port/astlicense.c
+++ b/usr/src/lib/libast/common/port/astlicense.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -428,7 +428,8 @@ astlicense(char* p, int size, char* file, char* options, int cc1, int cc2, int c
line = 0;
for (;;)
{
- for (first = 1; c = *s; first = 0)
+ first = 1;
+ while (c = *s)
{
while (c == ' ' || c == '\t' || c == '\n' && ++line || c == '\r' || c == ',' || c == ';' || c == ')')
c = *++s;
@@ -640,6 +641,7 @@ astlicense(char* p, int size, char* file, char* options, int cc1, int cc2, int c
}
if (*s)
s++;
+ first = 0;
}
if (!options || !*(s = options))
break;
diff --git a/usr/src/lib/libast/common/port/astmath.c b/usr/src/lib/libast/common/port/astmath.c
index 8637dc9300..eba93b384b 100644
--- a/usr/src/lib/libast/common/port/astmath.c
+++ b/usr/src/lib/libast/common/port/astmath.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/astquery.c b/usr/src/lib/libast/common/port/astquery.c
index 3c45c861fc..2cfa7bd3d3 100644
--- a/usr/src/lib/libast/common/port/astquery.c
+++ b/usr/src/lib/libast/common/port/astquery.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/aststatic.c b/usr/src/lib/libast/common/port/aststatic.c
index 4ac6bc08a3..a4764670c2 100644
--- a/usr/src/lib/libast/common/port/aststatic.c
+++ b/usr/src/lib/libast/common/port/aststatic.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/astwinsize.c b/usr/src/lib/libast/common/port/astwinsize.c
index 21416eb9ec..350859a2b1 100644
--- a/usr/src/lib/libast/common/port/astwinsize.c
+++ b/usr/src/lib/libast/common/port/astwinsize.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/iblocks.c b/usr/src/lib/libast/common/port/iblocks.c
index 33e88f01dc..3fd30dcbde 100644
--- a/usr/src/lib/libast/common/port/iblocks.c
+++ b/usr/src/lib/libast/common/port/iblocks.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/lc.c b/usr/src/lib/libast/common/port/lc.c
index 0e6aa22cfc..d4f2158c2e 100644
--- a/usr/src/lib/libast/common/port/lc.c
+++ b/usr/src/lib/libast/common/port/lc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -125,6 +125,7 @@ lcindex(int category, int min)
case LC_COLLATE: return AST_LC_COLLATE;
case LC_CTYPE: return AST_LC_CTYPE;
case LC_IDENTIFICATION: return AST_LC_IDENTIFICATION;
+ case LC_LANG: return AST_LC_LANG;
case LC_MEASUREMENT: return AST_LC_MEASUREMENT;
case LC_MESSAGES: return AST_LC_MESSAGES;
case LC_MONETARY: return AST_LC_MONETARY;
@@ -703,6 +704,8 @@ lcmake(const char* name)
lc->language = lp ? lp : &lc_languages[0];
lc->territory = tp ? tp : &lc_territories[0];
lc->charset = cp ? cp : &lc_charsets[0];
+ if (!strcmp(lc->charset->code, "utf8"))
+ lc->flags |= LC_utf8;
lc->attributes = al;
for (i = 0; i < elementsof(lc->info); i++)
lc->info[i].lc = lc;
diff --git a/usr/src/lib/libast/common/port/lcgen.c b/usr/src/lib/libast/common/port/lcgen.c
index 1272faa5cd..4fd1271ce5 100644
--- a/usr/src/lib/libast/common/port/lcgen.c
+++ b/usr/src/lib/libast/common/port/lcgen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -323,14 +323,15 @@ char** argv;
fprintf(hf, "\n");
fprintf(hf, "#define LC_abbreviated\t\t0x00001\n");
fprintf(hf, "#define LC_checked\t\t0x00002\n");
- fprintf(hf, "#define LC_default\t\t0x00004\n");
- fprintf(hf, "#define LC_defined\t\t0x00008\n");
- fprintf(hf, "#define LC_debug\t\t0x00010\n");
+ fprintf(hf, "#define LC_debug\t\t0x00004\n");
+ fprintf(hf, "#define LC_default\t\t0x00008\n");
+ fprintf(hf, "#define LC_defined\t\t0x00010\n");
fprintf(hf, "#define LC_local\t\t0x00020\n");
fprintf(hf, "#define LC_primary\t\t0x00040\n");
fprintf(hf, "#define LC_qualified\t\t0x00080\n");
fprintf(hf, "#define LC_undefined\t\t0x00100\n");
- fprintf(hf, "#define LC_verbose\t\t0x00200\n");
+ fprintf(hf, "#define LC_utf8\t\t\t0x00200\n");
+ fprintf(hf, "#define LC_verbose\t\t0x00400\n");
fprintf(hf, "#define LC_user\t\t\t0x10000\n");
fprintf(lf, "/* : : generated by %s : : */\n", command);
fprintf(lf, "\n");
diff --git a/usr/src/lib/libast/common/port/lclang.h b/usr/src/lib/libast/common/port/lclang.h
index 0e0d1242f8..2433d9fcfa 100644
--- a/usr/src/lib/libast/common/port/lclang.h
+++ b/usr/src/lib/libast/common/port/lclang.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/lclib.h b/usr/src/lib/libast/common/port/lclib.h
index ae648a5168..50dc36ea53 100644
--- a/usr/src/lib/libast/common/port/lclib.h
+++ b/usr/src/lib/libast/common/port/lclib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/mc.c b/usr/src/lib/libast/common/port/mc.c
index 6b016578e8..e5637b5669 100644
--- a/usr/src/lib/libast/common/port/mc.c
+++ b/usr/src/lib/libast/common/port/mc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/mnt.c b/usr/src/lib/libast/common/port/mnt.c
index d7531b028c..37a6ed4812 100644
--- a/usr/src/lib/libast/common/port/mnt.c
+++ b/usr/src/lib/libast/common/port/mnt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/port/touch.c b/usr/src/lib/libast/common/port/touch.c
index 85e85009f6..f3974502bb 100644
--- a/usr/src/lib/libast/common/port/touch.c
+++ b/usr/src/lib/libast/common/port/touch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/preroot/getpreroot.c b/usr/src/lib/libast/common/preroot/getpreroot.c
index c8d82de894..e63b6678eb 100644
--- a/usr/src/lib/libast/common/preroot/getpreroot.c
+++ b/usr/src/lib/libast/common/preroot/getpreroot.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/preroot/ispreroot.c b/usr/src/lib/libast/common/preroot/ispreroot.c
index 7a99a1ab2f..d03bdbb4af 100644
--- a/usr/src/lib/libast/common/preroot/ispreroot.c
+++ b/usr/src/lib/libast/common/preroot/ispreroot.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/preroot/realopen.c b/usr/src/lib/libast/common/preroot/realopen.c
index 67be26f329..cbe6f0031d 100644
--- a/usr/src/lib/libast/common/preroot/realopen.c
+++ b/usr/src/lib/libast/common/preroot/realopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/preroot/setpreroot.c b/usr/src/lib/libast/common/preroot/setpreroot.c
index 7ea63abe93..fa482ec03a 100644
--- a/usr/src/lib/libast/common/preroot/setpreroot.c
+++ b/usr/src/lib/libast/common/preroot/setpreroot.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regalloc.c b/usr/src/lib/libast/common/regex/regalloc.c
index 6df78772a2..710800ef60 100644
--- a/usr/src/lib/libast/common/regex/regalloc.c
+++ b/usr/src/lib/libast/common/regex/regalloc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regcache.c b/usr/src/lib/libast/common/regex/regcache.c
index e306bb0855..f40f31fc09 100644
--- a/usr/src/lib/libast/common/regex/regcache.c
+++ b/usr/src/lib/libast/common/regex/regcache.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regclass.c b/usr/src/lib/libast/common/regex/regclass.c
index 2a4ada89ae..b68ef4b00b 100644
--- a/usr/src/lib/libast/common/regex/regclass.c
+++ b/usr/src/lib/libast/common/regex/regclass.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regcoll.c b/usr/src/lib/libast/common/regex/regcoll.c
index 6294becacd..178b635790 100644
--- a/usr/src/lib/libast/common/regex/regcoll.c
+++ b/usr/src/lib/libast/common/regex/regcoll.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regcomp.c b/usr/src/lib/libast/common/regex/regcomp.c
index 9b6dbf8f98..90098dfbc2 100644
--- a/usr/src/lib/libast/common/regex/regcomp.c
+++ b/usr/src/lib/libast/common/regex/regcomp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -121,6 +121,7 @@ typedef struct Cenv_s
int parno; /* number of last open paren */
int parnest; /* paren nest count */
int posixkludge; /* to make * nonspecial */
+ int regexp; /* <regexp.h> compatibility */
Token_t token; /* token lookahead */
Stats_t stats; /* RE statistics */
int terminator; /* pattern terminator */
@@ -1289,6 +1290,8 @@ bra(Cenv_t* env)
case 0:
goto error;
case ':':
+ if (env->regexp)
+ goto normal;
if (inrange == 1)
{
setadd(e->re.charclass, last);
@@ -1336,6 +1339,8 @@ bra(Cenv_t* env)
elements++;
continue;
case '=':
+ if (env->regexp)
+ goto normal;
if (inrange == 2)
goto erange;
if (inrange == 1)
@@ -1355,6 +1360,8 @@ bra(Cenv_t* env)
elements++;
continue;
case '.':
+ if (env->regexp)
+ goto normal;
if ((c = regcollate((char*)env->cursor, (char**)&env->cursor, (char*)buf, sizeof(buf))) < 0)
goto ecollate;
if (c > 1)
@@ -1363,6 +1370,7 @@ bra(Cenv_t* env)
complicated++;
break;
default:
+ normal:
if (*env->cursor == env->terminator || *env->cursor == env->delimiter && (env->flags & REG_ESCAPE))
goto error;
break;
@@ -1535,6 +1543,8 @@ bra(Cenv_t* env)
case 0:
goto error;
case ':':
+ if (env->regexp)
+ goto complicated_normal;
if (inrange == 1)
ce = col(ce, ic, rp, rw, rc, NiL, 0, 0);
if (!(f = regclass((char*)env->cursor, (char**)&env->cursor)))
@@ -1569,6 +1579,8 @@ bra(Cenv_t* env)
inrange = 0;
continue;
case '=':
+ if (env->regexp)
+ goto complicated_normal;
if (inrange == 2)
goto erange;
if (inrange == 1)
@@ -1629,12 +1641,15 @@ bra(Cenv_t* env)
c = *pp;
continue;
case '.':
+ if (env->regexp)
+ goto complicated_normal;
pp = (unsigned char*)cb[inrange];
if ((w = regcollate((char*)env->cursor, (char**)&env->cursor, (char*)pp, COLL_KEY_MAX)) < 0)
goto ecollate;
c = buf[0];
break;
default:
+ complicated_normal:
if (*env->cursor == env->terminator || *env->cursor == env->delimiter && (env->flags & REG_ESCAPE))
goto error;
break;
@@ -3226,6 +3241,7 @@ regcomp(regex_t* p, const char* pattern, regflags_t flags)
env.explicit = env.mappednewline;
p->env->leading = (env.flags & REG_SHELL_DOT) ? env.mappeddot : -1;
env.posixkludge = !(env.flags & (REG_EXTENDED|REG_SHELL));
+ env.regexp = !!(env.flags & REG_REGEXP);
env.token.lex = 0;
env.token.push = 0;
if (env.flags & REG_DELIMITED)
diff --git a/usr/src/lib/libast/common/regex/regdecomp.c b/usr/src/lib/libast/common/regex/regdecomp.c
index 7f400a81ce..a89722480a 100644
--- a/usr/src/lib/libast/common/regex/regdecomp.c
+++ b/usr/src/lib/libast/common/regex/regdecomp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regerror.c b/usr/src/lib/libast/common/regex/regerror.c
index 477f007da1..596e62ce45 100644
--- a/usr/src/lib/libast/common/regex/regerror.c
+++ b/usr/src/lib/libast/common/regex/regerror.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regexec.c b/usr/src/lib/libast/common/regex/regexec.c
index a5dca77586..3293c2207e 100644
--- a/usr/src/lib/libast/common/regex/regexec.c
+++ b/usr/src/lib/libast/common/regex/regexec.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regfatal.c b/usr/src/lib/libast/common/regex/regfatal.c
index 3da0162482..ccf3a1ec44 100644
--- a/usr/src/lib/libast/common/regex/regfatal.c
+++ b/usr/src/lib/libast/common/regex/regfatal.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/reginit.c b/usr/src/lib/libast/common/regex/reginit.c
index fa027fac53..133702b721 100644
--- a/usr/src/lib/libast/common/regex/reginit.c
+++ b/usr/src/lib/libast/common/regex/reginit.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/reglib.h b/usr/src/lib/libast/common/regex/reglib.h
index 4260ba901e..25f461debe 100644
--- a/usr/src/lib/libast/common/regex/reglib.h
+++ b/usr/src/lib/libast/common/regex/reglib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -65,6 +65,10 @@ typedef struct regsubop_s
#include <ctype.h>
#include <errno.h>
+#if _BLD_DEBUG && !defined(_AST_REGEX_DEBUG)
+#define _AST_REGEX_DEBUG 1
+#endif
+
#define MBSIZE(p) ((ast.tmp_int=mbsize(p))>0?ast.tmp_int:1)
#undef RE_DUP_MAX /* posix puts this in limits.h! */
diff --git a/usr/src/lib/libast/common/regex/regnexec.c b/usr/src/lib/libast/common/regex/regnexec.c
index a265d0ffd1..28763b471a 100644
--- a/usr/src/lib/libast/common/regex/regnexec.c
+++ b/usr/src/lib/libast/common/regex/regnexec.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -406,7 +406,7 @@ parserep(Env_t* env, Rex_t* rex, Rex_t* cont, unsigned char* s, int n)
int r = NONE;
Rex_t catcher;
- DEBUG_TEST(0x0010,(sfprintf(sfstdout, "AHA#%04d 0x%04x parserep %s %d %d %d `%-.*s'\n", __LINE__, debug_flag, rexname(rex->re.group.expr.rex), rex->lo, n, rex->hi, env->end - s, s)),(0));
+ DEBUG_TEST(0x0010,(sfprintf(sfstdout, "AHA#%04d 0x%04x parserep %s %d %d %d %d `%-.*s'\n", __LINE__, debug_flag, rexname(rex->re.group.expr.rex), rex->re.group.number, rex->lo, n, rex->hi, env->end - s, s)),(0));
if ((rex->flags & REG_MINIMAL) && n >= rex->lo && n < rex->hi)
{
if (env->stack && pospush(env, rex, s, END_ANY))
@@ -438,21 +438,19 @@ parserep(Env_t* env, Rex_t* rex, Rex_t* cont, unsigned char* s, int n)
rex->re.rep_catch.beg = s;
if (env->stack)
{
-DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x PUSH (%d,%d)(%d,%d) (%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo)),(0));
if (matchpush(env, rex))
return BAD;
if (pospush(env, rex, s, BEG_ONE))
return BAD;
-DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x PUSH (%d,%d)(%d,%d) (%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo)),(0));
+DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x PUSH %d (%d,%d)(%d,%d)(%d,%d) (%d,%d)(%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->best[2].rm_so, env->best[2].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo, env->match[2].rm_so, env->match[2].rm_eo)),(0));
}
r = parse(env, rex->re.group.expr.rex, &catcher, s);
- DEBUG_TEST(0x0010,(sfprintf(sfstdout, "AHA#%04d 0x%04x parserep parse %d `%-.*s'\n", __LINE__, debug_flag, r, env->end - s, s)),(0));
+ DEBUG_TEST(0x0010,(sfprintf(sfstdout, "AHA#%04d 0x%04x parserep parse %d %d `%-.*s'\n", __LINE__, debug_flag, rex->re.group.number, r, env->end - s, s)),(0));
if (env->stack)
{
-DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x POP (%d,%d)(%d,%d) (%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo)),(0));
pospop(env);
matchpop(env, rex);
-DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x POP (%d,%d)(%d,%d) (%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo)),(0));
+DEBUG_TEST(0x0004,(sfprintf(sfstdout,"AHA#%04d 0x%04x POP %d %d (%d,%d)(%d,%d)(%d,%d) (%d,%d)(%d,%d)(%d,%d)\n", __LINE__, debug_flag, rex->re.group.number, r, env->best[0].rm_so, env->best[0].rm_eo, env->best[1].rm_so, env->best[1].rm_eo, env->best[2].rm_so, env->best[2].rm_eo, env->match[0].rm_so, env->match[0].rm_eo, env->match[1].rm_so, env->match[1].rm_eo, env->match[2].rm_so, env->match[2].rm_eo)),(0));
}
switch (r)
{
diff --git a/usr/src/lib/libast/common/regex/regrecord.c b/usr/src/lib/libast/common/regex/regrecord.c
index 4247cec1b2..1f531aa63a 100644
--- a/usr/src/lib/libast/common/regex/regrecord.c
+++ b/usr/src/lib/libast/common/regex/regrecord.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regrexec.c b/usr/src/lib/libast/common/regex/regrexec.c
index bfda0a3b14..4b49a57d63 100644
--- a/usr/src/lib/libast/common/regex/regrexec.c
+++ b/usr/src/lib/libast/common/regex/regrexec.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regstat.c b/usr/src/lib/libast/common/regex/regstat.c
index 35f15e696d..c896068672 100644
--- a/usr/src/lib/libast/common/regex/regstat.c
+++ b/usr/src/lib/libast/common/regex/regstat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regsub.c b/usr/src/lib/libast/common/regex/regsub.c
index f456251b51..749c9d1a13 100644
--- a/usr/src/lib/libast/common/regex/regsub.c
+++ b/usr/src/lib/libast/common/regex/regsub.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regsubcomp.c b/usr/src/lib/libast/common/regex/regsubcomp.c
index 83a0664989..d7b3625049 100644
--- a/usr/src/lib/libast/common/regex/regsubcomp.c
+++ b/usr/src/lib/libast/common/regex/regsubcomp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/regsubexec.c b/usr/src/lib/libast/common/regex/regsubexec.c
index 5040167934..b4599ee5a1 100644
--- a/usr/src/lib/libast/common/regex/regsubexec.c
+++ b/usr/src/lib/libast/common/regex/regsubexec.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/regex/ucs_names.h b/usr/src/lib/libast/common/regex/ucs_names.h
index daf835f73e..13acdd5edd 100644
--- a/usr/src/lib/libast/common/regex/ucs_names.h
+++ b/usr/src/lib/libast/common/regex/ucs_names.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfclrerr.c b/usr/src/lib/libast/common/sfio/_sfclrerr.c
index fbae931f5d..a5c02aca9c 100644
--- a/usr/src/lib/libast/common/sfio/_sfclrerr.c
+++ b/usr/src/lib/libast/common/sfio/_sfclrerr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfdlen.c b/usr/src/lib/libast/common/sfio/_sfdlen.c
index 326ff1f6c4..179231a4c3 100644
--- a/usr/src/lib/libast/common/sfio/_sfdlen.c
+++ b/usr/src/lib/libast/common/sfio/_sfdlen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfeof.c b/usr/src/lib/libast/common/sfio/_sfeof.c
index e2946b30c8..d11e24b272 100644
--- a/usr/src/lib/libast/common/sfio/_sfeof.c
+++ b/usr/src/lib/libast/common/sfio/_sfeof.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sferror.c b/usr/src/lib/libast/common/sfio/_sferror.c
index fdcfc95369..39124c804d 100644
--- a/usr/src/lib/libast/common/sfio/_sferror.c
+++ b/usr/src/lib/libast/common/sfio/_sferror.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sffileno.c b/usr/src/lib/libast/common/sfio/_sffileno.c
index 1d38365c29..642bfe9f14 100644
--- a/usr/src/lib/libast/common/sfio/_sffileno.c
+++ b/usr/src/lib/libast/common/sfio/_sffileno.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfgetc.c b/usr/src/lib/libast/common/sfio/_sfgetc.c
index 22ed7b8547..dc83691c9c 100644
--- a/usr/src/lib/libast/common/sfio/_sfgetc.c
+++ b/usr/src/lib/libast/common/sfio/_sfgetc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfgetl.c b/usr/src/lib/libast/common/sfio/_sfgetl.c
index a9d57e32bd..fd084ebc8e 100644
--- a/usr/src/lib/libast/common/sfio/_sfgetl.c
+++ b/usr/src/lib/libast/common/sfio/_sfgetl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfgetl2.c b/usr/src/lib/libast/common/sfio/_sfgetl2.c
index a983a38492..4e0a66729b 100644
--- a/usr/src/lib/libast/common/sfio/_sfgetl2.c
+++ b/usr/src/lib/libast/common/sfio/_sfgetl2.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfgetu.c b/usr/src/lib/libast/common/sfio/_sfgetu.c
index 8d8a7434c2..adfc9370bd 100644
--- a/usr/src/lib/libast/common/sfio/_sfgetu.c
+++ b/usr/src/lib/libast/common/sfio/_sfgetu.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfgetu2.c b/usr/src/lib/libast/common/sfio/_sfgetu2.c
index ff12230a1e..c19ed29b86 100644
--- a/usr/src/lib/libast/common/sfio/_sfgetu2.c
+++ b/usr/src/lib/libast/common/sfio/_sfgetu2.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfllen.c b/usr/src/lib/libast/common/sfio/_sfllen.c
index 1a2e6922f7..478d7ed897 100644
--- a/usr/src/lib/libast/common/sfio/_sfllen.c
+++ b/usr/src/lib/libast/common/sfio/_sfllen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfopen.c b/usr/src/lib/libast/common/sfio/_sfopen.c
index e8a041759d..be64dc6a26 100644
--- a/usr/src/lib/libast/common/sfio/_sfopen.c
+++ b/usr/src/lib/libast/common/sfio/_sfopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -154,16 +154,17 @@ int* uflagp;
sflags = oflags = uflag = 0;
while(1) switch(*mode++)
{
- case 'w' :
- sflags |= SF_WRITE;
- oflags |= O_WRONLY | O_CREAT;
- if(!(sflags&SF_READ))
- oflags |= O_TRUNC;
- continue;
case 'a' :
sflags |= SF_WRITE | SF_APPENDWR;
oflags |= O_WRONLY | O_APPEND | O_CREAT;
continue;
+ case 'b' :
+ oflags |= O_BINARY;
+ continue;
+ case 'm' :
+ sflags |= SF_MTSAFE;
+ uflag = 0;
+ continue;
case 'r' :
sflags |= SF_READ;
oflags |= O_RDONLY;
@@ -171,31 +172,33 @@ int* uflagp;
case 's' :
sflags |= SF_STRING;
continue;
- case 'b' :
- oflags |= O_BINARY;
- continue;
case 't' :
oflags |= O_TEXT;
continue;
- case 'x' :
- oflags |= O_EXCL;
- continue;
- case '+' :
- if(sflags)
- sflags |= SF_READ|SF_WRITE;
- continue;
- case 'm' :
- sflags |= SF_MTSAFE;
- uflag = 0;
- continue;
case 'u' :
sflags &= ~SF_MTSAFE;
uflag = 1;
continue;
+ case 'w' :
+ sflags |= SF_WRITE;
+ oflags |= O_WRONLY | O_CREAT;
+ if(!(sflags&SF_READ))
+ oflags |= O_TRUNC;
+ continue;
+ case 'x' :
+ oflags |= O_EXCL;
+ continue;
+ case 'F':
+ /* stdio compatibility -- fd >= FOPEN_MAX (or other magic number) ok */
+ continue;
case 'W' :
sflags |= SF_WCWIDTH;
uflag = 0;
continue;
+ case '+' :
+ if(sflags)
+ sflags |= SF_READ|SF_WRITE;
+ continue;
default :
if(!(oflags&O_CREAT) )
oflags &= ~O_EXCL;
diff --git a/usr/src/lib/libast/common/sfio/_sfputc.c b/usr/src/lib/libast/common/sfio/_sfputc.c
index 27f3705ebc..d8255f8da1 100644
--- a/usr/src/lib/libast/common/sfio/_sfputc.c
+++ b/usr/src/lib/libast/common/sfio/_sfputc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfputd.c b/usr/src/lib/libast/common/sfio/_sfputd.c
index 0e02a6c30b..43e395980f 100644
--- a/usr/src/lib/libast/common/sfio/_sfputd.c
+++ b/usr/src/lib/libast/common/sfio/_sfputd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfputl.c b/usr/src/lib/libast/common/sfio/_sfputl.c
index 410d346562..16d3d00b42 100644
--- a/usr/src/lib/libast/common/sfio/_sfputl.c
+++ b/usr/src/lib/libast/common/sfio/_sfputl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfputm.c b/usr/src/lib/libast/common/sfio/_sfputm.c
index 30e41edf8c..79f1bad4ac 100644
--- a/usr/src/lib/libast/common/sfio/_sfputm.c
+++ b/usr/src/lib/libast/common/sfio/_sfputm.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfputu.c b/usr/src/lib/libast/common/sfio/_sfputu.c
index a83e9b9d14..69d4903e83 100644
--- a/usr/src/lib/libast/common/sfio/_sfputu.c
+++ b/usr/src/lib/libast/common/sfio/_sfputu.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfslen.c b/usr/src/lib/libast/common/sfio/_sfslen.c
index c86daec1f0..dcf6f60e62 100644
--- a/usr/src/lib/libast/common/sfio/_sfslen.c
+++ b/usr/src/lib/libast/common/sfio/_sfslen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfstacked.c b/usr/src/lib/libast/common/sfio/_sfstacked.c
index e16ec78b58..12b62bc025 100644
--- a/usr/src/lib/libast/common/sfio/_sfstacked.c
+++ b/usr/src/lib/libast/common/sfio/_sfstacked.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfulen.c b/usr/src/lib/libast/common/sfio/_sfulen.c
index 058e110e1a..e872fc2750 100644
--- a/usr/src/lib/libast/common/sfio/_sfulen.c
+++ b/usr/src/lib/libast/common/sfio/_sfulen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/_sfvalue.c b/usr/src/lib/libast/common/sfio/_sfvalue.c
index bafbe85f2c..89f55f5605 100644
--- a/usr/src/lib/libast/common/sfio/_sfvalue.c
+++ b/usr/src/lib/libast/common/sfio/_sfvalue.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfclose.c b/usr/src/lib/libast/common/sfio/sfclose.c
index 46377baabc..08f5d1c2a9 100644
--- a/usr/src/lib/libast/common/sfio/sfclose.c
+++ b/usr/src/lib/libast/common/sfio/sfclose.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfclrlock.c b/usr/src/lib/libast/common/sfio/sfclrlock.c
index ed6f253d68..211d16d20d 100644
--- a/usr/src/lib/libast/common/sfio/sfclrlock.c
+++ b/usr/src/lib/libast/common/sfio/sfclrlock.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfcvt.c b/usr/src/lib/libast/common/sfio/sfcvt.c
index 61312db04a..0022470438 100644
--- a/usr/src/lib/libast/common/sfio/sfcvt.c
+++ b/usr/src/lib/libast/common/sfio/sfcvt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -114,7 +114,8 @@ int format; /* conversion format */
{
reg char *sp;
reg long n, v;
- reg char *ep, *b, *endsp;
+ reg char *ep, *b, *endsp, *t;
+ int x;
_ast_flt_unsigned_max_t m;
static char lx[] = "0123456789abcdef";
@@ -193,7 +194,6 @@ int format; /* conversion format */
if(format & SFFMT_AFORMAT)
{ Sfdouble_t g;
- int x;
b = sp = buf;
ep = (format & SFFMT_UPPER) ? ux : lx;
if(n_digit <= 0 || n_digit >= (size - 9))
@@ -210,9 +210,7 @@ int format; /* conversion format */
while ((x -= 4) >= 0)
{ *sp++ = ep[(m >> x) & 0xf];
if (sp >= endsp)
- { ep = sp + 1;
- goto done;
- }
+ goto around;
}
f -= m;
f = ldexpl(f, 8 * sizeof(m));
@@ -369,13 +367,12 @@ int format; /* conversion format */
return SF_INF;
if(format & SFFMT_AFORMAT)
- { double g;
- int x;
+ { double g;
b = sp = buf;
ep = (format & SFFMT_UPPER) ? ux : lx;
if(n_digit <= 0 || n_digit >= (size - 9))
n_digit = size - 9;
- endsp = sp + n_digit;
+ endsp = sp + n_digit + 1;
g = frexp(f, &x);
*decpt = x;
@@ -387,9 +384,7 @@ int format; /* conversion format */
while ((x -= 4) >= 0)
{ *sp++ = ep[(m >> x) & 0xf];
if (sp >= endsp)
- { ep = sp + 1;
- goto done;
- }
+ goto around;
}
f -= m;
f = ldexp(f, 8 * sizeof(m));
@@ -503,9 +498,35 @@ int format; /* conversion format */
}
}
-done:
+ done:
*--ep = '\0';
if(len)
*len = ep-b;
return b;
+ around:
+ if (((m >> x) & 0xf) >= 8)
+ { t = sp - 1;
+ for (;;)
+ { if (--t <= b)
+ { (*decpt)++;
+ break;
+ }
+ switch (*t)
+ {
+ case 'f':
+ case 'F':
+ *t = '0';
+ continue;
+ case '9':
+ *t = ep[10];
+ break;
+ default:
+ (*t)++;
+ break;
+ }
+ break;
+ }
+ }
+ ep = sp + 1;
+ goto done;
}
diff --git a/usr/src/lib/libast/common/sfio/sfdisc.c b/usr/src/lib/libast/common/sfio/sfdisc.c
index 9bc9125445..cf390d1160 100644
--- a/usr/src/lib/libast/common/sfio/sfdisc.c
+++ b/usr/src/lib/libast/common/sfio/sfdisc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfdlen.c b/usr/src/lib/libast/common/sfio/sfdlen.c
index 404b89e859..8d4cd03c47 100644
--- a/usr/src/lib/libast/common/sfio/sfdlen.c
+++ b/usr/src/lib/libast/common/sfio/sfdlen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfecvt.c b/usr/src/lib/libast/common/sfio/sfecvt.c
index 85fa74b3f2..1e35ec231b 100644
--- a/usr/src/lib/libast/common/sfio/sfecvt.c
+++ b/usr/src/lib/libast/common/sfio/sfecvt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfexcept.c b/usr/src/lib/libast/common/sfio/sfexcept.c
index 52b20760d0..c427d5333c 100644
--- a/usr/src/lib/libast/common/sfio/sfexcept.c
+++ b/usr/src/lib/libast/common/sfio/sfexcept.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfextern.c b/usr/src/lib/libast/common/sfio/sfextern.c
index ddc96837d2..a7f4941153 100644
--- a/usr/src/lib/libast/common/sfio/sfextern.c
+++ b/usr/src/lib/libast/common/sfio/sfextern.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sffcvt.c b/usr/src/lib/libast/common/sfio/sffcvt.c
index bc108ea962..1d6a5ff397 100644
--- a/usr/src/lib/libast/common/sfio/sffcvt.c
+++ b/usr/src/lib/libast/common/sfio/sffcvt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sffilbuf.c b/usr/src/lib/libast/common/sfio/sffilbuf.c
index a6c2a4fa9c..5fa88a4918 100644
--- a/usr/src/lib/libast/common/sfio/sffilbuf.c
+++ b/usr/src/lib/libast/common/sfio/sffilbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfflsbuf.c b/usr/src/lib/libast/common/sfio/sfflsbuf.c
index 5e71fedb5d..a7018da0cc 100644
--- a/usr/src/lib/libast/common/sfio/sfflsbuf.c
+++ b/usr/src/lib/libast/common/sfio/sfflsbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -35,18 +35,18 @@ Sfio_t* f; /* write out the buffered content of this stream */
int c; /* if c>=0, c is also written out */
#endif
{
- ssize_t n, w;
+ ssize_t n, w, written;
uchar* data;
uchar outc;
int local, isall;
int inpc = c;
- SFMTXDECL(f);
+ SFMTXDECL(f); /* declare a local stream variable for multithreading */
SFMTXENTER(f,-1);
GETLOCAL(f,local);
- for(;; f->mode &= ~SF_LOCK)
+ for(written = 0;; f->mode &= ~SF_LOCK)
{ /* check stream mode */
if(SFMODE(f,local) != SF_WRITE && _sfmode(f,SF_WRITE,local) < 0)
SFMTXRETURN(f, -1);
@@ -96,16 +96,24 @@ int c; /* if c>=0, c is also written out */
if((w = SFWR(f,data,n,f->disc)) > 0)
{ if((n -= w) > 0) /* save unwritten data, then resume */
memcpy((char*)f->data,(char*)data+w,n);
+ written += w;
f->next = f->data+n;
if(c < 0 && (!isall || n == 0))
break;
}
else if(w == 0)
- { SFOPEN(f,local);
- SFMTXRETURN(f, -1);
+ { if(written > 0) /* some buffer was cleared */
+ break; /* do normal exit below */
+ else /* nothing was done, returning failure */
+ { SFOPEN(f,local);
+ SFMTXRETURN(f, -1);
+ }
+ }
+ else /* w < 0 means SF_EDISC or SF_ESTACK in sfwr() */
+ { if(c < 0) /* back to the calling write operation */
+ break;
+ else continue; /* try again to write out c */
}
- else if(c < 0)
- break;
}
SFOPEN(f,local);
diff --git a/usr/src/lib/libast/common/sfio/sfgetd.c b/usr/src/lib/libast/common/sfio/sfgetd.c
index b6e31af5f6..803761843b 100644
--- a/usr/src/lib/libast/common/sfio/sfgetd.c
+++ b/usr/src/lib/libast/common/sfio/sfgetd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfgetl.c b/usr/src/lib/libast/common/sfio/sfgetl.c
index cfd14632b1..fd7e3390b6 100644
--- a/usr/src/lib/libast/common/sfio/sfgetl.c
+++ b/usr/src/lib/libast/common/sfio/sfgetl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfgetm.c b/usr/src/lib/libast/common/sfio/sfgetm.c
index e2232c955c..7199c9c34d 100644
--- a/usr/src/lib/libast/common/sfio/sfgetm.c
+++ b/usr/src/lib/libast/common/sfio/sfgetm.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfgetr.c b/usr/src/lib/libast/common/sfio/sfgetr.c
index 64b10103be..7a1aa3184a 100644
--- a/usr/src/lib/libast/common/sfio/sfgetr.c
+++ b/usr/src/lib/libast/common/sfio/sfgetr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfgetu.c b/usr/src/lib/libast/common/sfio/sfgetu.c
index a6fb82d9d5..6f64003854 100644
--- a/usr/src/lib/libast/common/sfio/sfgetu.c
+++ b/usr/src/lib/libast/common/sfio/sfgetu.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfhdr.h b/usr/src/lib/libast/common/sfio/sfhdr.h
index 5fd9dd52fb..8fe2e3a52d 100644
--- a/usr/src/lib/libast/common/sfio/sfhdr.h
+++ b/usr/src/lib/libast/common/sfio/sfhdr.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -884,8 +884,7 @@ typedef struct _sfextern_s
#define GETLOCAL(f,v) ((v) = ((f)->mode&SF_LOCAL), (f)->mode &= ~SF_LOCAL, (v))
#define SFWRALL(f) ((f)->mode |= SF_RV)
#define SFISALL(f,v) ((((v) = (f)->mode&SF_RV) ? ((f)->mode &= ~SF_RV) : 0), \
- ((v) || (f)->extent < 0 || \
- ((f)->flags&(SF_SHARE|SF_APPENDWR|SF_WHOLE)) ) )
+ ((v) || ((f)->flags&(SF_SHARE|SF_APPENDWR|SF_WHOLE)) ) )
#define SFSK(f,a,o,d) (SETLOCAL(f),sfsk(f,(Sfoff_t)a,o,d))
#define SFRD(f,b,n,d) (SETLOCAL(f),sfrd(f,(Void_t*)b,n,d))
#define SFWR(f,b,n,d) (SETLOCAL(f),sfwr(f,(Void_t*)b,n,d))
diff --git a/usr/src/lib/libast/common/sfio/sfllen.c b/usr/src/lib/libast/common/sfio/sfllen.c
index 02b0657077..17381b15fa 100644
--- a/usr/src/lib/libast/common/sfio/sfllen.c
+++ b/usr/src/lib/libast/common/sfio/sfllen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfmode.c b/usr/src/lib/libast/common/sfio/sfmode.c
index d30e404881..1e9a2badd8 100644
--- a/usr/src/lib/libast/common/sfio/sfmode.c
+++ b/usr/src/lib/libast/common/sfio/sfmode.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -20,7 +20,7 @@
* *
***********************************************************************/
#include "sfhdr.h"
-static char* Version = "\n@(#)$Id: sfio (AT&T Research) 2008-07-17 $\0\n";
+static char* Version = "\n@(#)$Id: sfio (AT&T Labs - Research) 2009-09-15 $\0\n";
/* Functions to set a given stream to some desired mode
**
@@ -46,6 +46,7 @@ static char* Version = "\n@(#)$Id: sfio (AT&T Research) 2008-07-17 $\0\n";
** (%I1d is fixed to handle "signed char" correctly)
** 01/01/2004 Porting issues to various platforms resolved.
** 06/01/2008 Allowing notify() at entering/exiting thread-safe routines.
+** 09/15/2008 Add sfwalk().
*/
/* the below is for protecting the application from SIGPIPE */
diff --git a/usr/src/lib/libast/common/sfio/sfmove.c b/usr/src/lib/libast/common/sfio/sfmove.c
index ae1af300ad..8ac858c204 100644
--- a/usr/src/lib/libast/common/sfio/sfmove.c
+++ b/usr/src/lib/libast/common/sfio/sfmove.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfmutex.c b/usr/src/lib/libast/common/sfio/sfmutex.c
index c887a12f6e..2a1cc12eac 100644
--- a/usr/src/lib/libast/common/sfio/sfmutex.c
+++ b/usr/src/lib/libast/common/sfio/sfmutex.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfnew.c b/usr/src/lib/libast/common/sfio/sfnew.c
index 8c462eba8b..e163b750f3 100644
--- a/usr/src/lib/libast/common/sfio/sfnew.c
+++ b/usr/src/lib/libast/common/sfio/sfnew.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfnotify.c b/usr/src/lib/libast/common/sfio/sfnotify.c
index cee5b9909f..c5424f0018 100644
--- a/usr/src/lib/libast/common/sfio/sfnotify.c
+++ b/usr/src/lib/libast/common/sfio/sfnotify.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfnputc.c b/usr/src/lib/libast/common/sfio/sfnputc.c
index b58eb6989b..3b9bf164c8 100644
--- a/usr/src/lib/libast/common/sfio/sfnputc.c
+++ b/usr/src/lib/libast/common/sfio/sfnputc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfopen.c b/usr/src/lib/libast/common/sfio/sfopen.c
index ed7a664722..944bfa9f3b 100644
--- a/usr/src/lib/libast/common/sfio/sfopen.c
+++ b/usr/src/lib/libast/common/sfio/sfopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfpeek.c b/usr/src/lib/libast/common/sfio/sfpeek.c
index be92216d8a..40c827d48b 100644
--- a/usr/src/lib/libast/common/sfio/sfpeek.c
+++ b/usr/src/lib/libast/common/sfio/sfpeek.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfpkrd.c b/usr/src/lib/libast/common/sfio/sfpkrd.c
index 7769682432..398a880054 100644
--- a/usr/src/lib/libast/common/sfio/sfpkrd.c
+++ b/usr/src/lib/libast/common/sfio/sfpkrd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfpoll.c b/usr/src/lib/libast/common/sfio/sfpoll.c
index 708d81fe44..d26917e1c2 100644
--- a/usr/src/lib/libast/common/sfio/sfpoll.c
+++ b/usr/src/lib/libast/common/sfio/sfpoll.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfpool.c b/usr/src/lib/libast/common/sfio/sfpool.c
index bf94a76d82..c1a16fe32a 100644
--- a/usr/src/lib/libast/common/sfio/sfpool.c
+++ b/usr/src/lib/libast/common/sfio/sfpool.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -251,8 +251,9 @@ reg Sfio_t* pf;
reg int mode;
#endif
{
- reg Sfpool_t* p;
- reg Sfio_t* rv;
+ int k;
+ Sfpool_t* p;
+ Sfio_t* rv;
_Sfpmove = _sfpmove;
@@ -301,13 +302,21 @@ reg int mode;
SFLOCK(pf,0);
if(!pf) /* deleting f from its current pool */
- { if(!(p = f->pool) || p == &_Sfpool ||
- _sfpmove(f,-1) < 0 || _sfsetpool(f) < 0)
+ { if((p = f->pool) != NIL(Sfpool_t*) && p != &_Sfpool)
+ for(k = 0; k < p->n_sf && pf == NIL(Sfio_t*); ++k)
+ if(p->sf[k] != f) /* a stream != f represents the pool */
+ pf = p->sf[k];
+ if(!pf) /* already isolated */
+ { rv = f; /* just return self */
goto done;
+ }
+
+ if(_sfpmove(f,-1) < 0 || _sfsetpool(f) < 0)
+ goto done; /* can't delete */
- if((p = f->pool) == &_Sfpool || p->n_sf <= 0)
- rv = f;
- else rv = p->sf[0]; /* return head of pool */
+ if(!pf->pool || pf->pool == &_Sfpool || pf->pool->n_sf <= 0 )
+ rv = pf;
+ else rv = pf->pool->sf[0]; /* return head of old pool */
goto done;
}
diff --git a/usr/src/lib/libast/common/sfio/sfpopen.c b/usr/src/lib/libast/common/sfio/sfpopen.c
index d44b86e66f..d496c13e7b 100644
--- a/usr/src/lib/libast/common/sfio/sfpopen.c
+++ b/usr/src/lib/libast/common/sfio/sfpopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfprintf.c b/usr/src/lib/libast/common/sfio/sfprintf.c
index 46b07066b0..db8969bd27 100644
--- a/usr/src/lib/libast/common/sfio/sfprintf.c
+++ b/usr/src/lib/libast/common/sfio/sfprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfprints.c b/usr/src/lib/libast/common/sfio/sfprints.c
index 3e2c7261c7..402cefe5dc 100644
--- a/usr/src/lib/libast/common/sfio/sfprints.c
+++ b/usr/src/lib/libast/common/sfio/sfprints.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -96,7 +96,7 @@ va_list args;
{ if(!(*sp = (char*)malloc(n = strlen(s)+1)) )
return -1;
memcpy(*sp, s, n);
- return n;
+ return n - 1;
}
}
diff --git a/usr/src/lib/libast/common/sfio/sfpurge.c b/usr/src/lib/libast/common/sfio/sfpurge.c
index d24567c0cf..d0a0d48a3a 100644
--- a/usr/src/lib/libast/common/sfio/sfpurge.c
+++ b/usr/src/lib/libast/common/sfio/sfpurge.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -59,7 +59,7 @@ Sfio_t* f;
{ f->here -= f->endb - f->next;
if(f->data)
{ SFMUNMAP(f,f->data,f->endb-f->data);
- SFSK(f,f->here,SEEK_SET,f->disc);
+ (void)SFSK(f,f->here,SEEK_SET,f->disc);
}
SFOPEN(f,0);
SFMTXRETURN(f, 0);
@@ -82,7 +82,7 @@ Sfio_t* f;
case SF_READ:
if(f->extent >= 0 && f->endb > f->next)
{ f->here -= f->endb-f->next;
- SFSK(f,f->here,SEEK_SET,f->disc);
+ (void)SFSK(f,f->here,SEEK_SET,f->disc);
}
f->endb = f->next = f->data;
break;
diff --git a/usr/src/lib/libast/common/sfio/sfputd.c b/usr/src/lib/libast/common/sfio/sfputd.c
index a3a64f7c34..1409aa5c8b 100644
--- a/usr/src/lib/libast/common/sfio/sfputd.c
+++ b/usr/src/lib/libast/common/sfio/sfputd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfputl.c b/usr/src/lib/libast/common/sfio/sfputl.c
index 281452d1b0..2c64c9bb94 100644
--- a/usr/src/lib/libast/common/sfio/sfputl.c
+++ b/usr/src/lib/libast/common/sfio/sfputl.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfputm.c b/usr/src/lib/libast/common/sfio/sfputm.c
index 6652839cf3..5ee927401d 100644
--- a/usr/src/lib/libast/common/sfio/sfputm.c
+++ b/usr/src/lib/libast/common/sfio/sfputm.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfputr.c b/usr/src/lib/libast/common/sfio/sfputr.c
index 87dd1dd71a..2969cd8baa 100644
--- a/usr/src/lib/libast/common/sfio/sfputr.c
+++ b/usr/src/lib/libast/common/sfio/sfputr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -46,7 +46,8 @@ int rc; /* record separator. */
SFLOCK(f,0);
for(w = 0; (*s || rc >= 0); )
- { SFWPEEK(f,ps,p);
+ { if(SFWPEEK(f,ps,p) < 0)
+ break;
if(p == 0 || (f->flags&SF_WHOLE) )
{ n = strlen(s);
diff --git a/usr/src/lib/libast/common/sfio/sfputu.c b/usr/src/lib/libast/common/sfio/sfputu.c
index a72ba27592..fee187a1cd 100644
--- a/usr/src/lib/libast/common/sfio/sfputu.c
+++ b/usr/src/lib/libast/common/sfio/sfputu.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfraise.c b/usr/src/lib/libast/common/sfio/sfraise.c
index be98f6e15d..aab5d00024 100644
--- a/usr/src/lib/libast/common/sfio/sfraise.c
+++ b/usr/src/lib/libast/common/sfio/sfraise.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfrd.c b/usr/src/lib/libast/common/sfio/sfrd.c
index 515976d379..0eb881b19b 100644
--- a/usr/src/lib/libast/common/sfio/sfrd.c
+++ b/usr/src/lib/libast/common/sfio/sfrd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfread.c b/usr/src/lib/libast/common/sfio/sfread.c
index f0d893b2ba..c9377d4f68 100644
--- a/usr/src/lib/libast/common/sfio/sfread.c
+++ b/usr/src/lib/libast/common/sfio/sfread.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfreserve.c b/usr/src/lib/libast/common/sfio/sfreserve.c
index 0e9cdd6fdf..6c8726d4a3 100644
--- a/usr/src/lib/libast/common/sfio/sfreserve.c
+++ b/usr/src/lib/libast/common/sfio/sfreserve.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -110,7 +110,11 @@ int type; /* LOCKR: lock stream, LASTR: last record */
if(size == 0 || (f->mode&SF_WRITE))
iosz = -1;
else if(size < 0 && n == 0 && f->push) /* maybe stack-pop */
- iosz = sz; /* so only get what is asked for */
+ { if((iosz = f->push->endb - f->push->next) == 0)
+ iosz = f->push->size;
+ if(iosz < sz)
+ iosz = sz; /* so only get what is asked for */
+ }
else
{ iosz = sz - n; /* get enough to fulfill requirement */
if(size < 0 && iosz < (f->size - n) )
diff --git a/usr/src/lib/libast/common/sfio/sfresize.c b/usr/src/lib/libast/common/sfio/sfresize.c
index d9a6f77d6a..cd8e803346 100644
--- a/usr/src/lib/libast/common/sfio/sfresize.c
+++ b/usr/src/lib/libast/common/sfio/sfresize.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfscanf.c b/usr/src/lib/libast/common/sfio/sfscanf.c
index 68977ed7f0..c48e1a1419 100644
--- a/usr/src/lib/libast/common/sfio/sfscanf.c
+++ b/usr/src/lib/libast/common/sfio/sfscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfseek.c b/usr/src/lib/libast/common/sfio/sfseek.c
index 045911d7a9..d3ad987945 100644
--- a/usr/src/lib/libast/common/sfio/sfseek.c
+++ b/usr/src/lib/libast/common/sfio/sfseek.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfset.c b/usr/src/lib/libast/common/sfio/sfset.c
index 051aa5baed..8b1d57ec35 100644
--- a/usr/src/lib/libast/common/sfio/sfset.c
+++ b/usr/src/lib/libast/common/sfio/sfset.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfsetbuf.c b/usr/src/lib/libast/common/sfio/sfsetbuf.c
index 566e7191b7..d354f48497 100644
--- a/usr/src/lib/libast/common/sfio/sfsetbuf.c
+++ b/usr/src/lib/libast/common/sfio/sfsetbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfsetfd.c b/usr/src/lib/libast/common/sfio/sfsetfd.c
index f21193b540..911dcb3a5c 100644
--- a/usr/src/lib/libast/common/sfio/sfsetfd.c
+++ b/usr/src/lib/libast/common/sfio/sfsetfd.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfsize.c b/usr/src/lib/libast/common/sfio/sfsize.c
index bea3b42b23..75d7e0789e 100644
--- a/usr/src/lib/libast/common/sfio/sfsize.c
+++ b/usr/src/lib/libast/common/sfio/sfsize.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfsk.c b/usr/src/lib/libast/common/sfio/sfsk.c
index 6e7c542da7..5b717a5e07 100644
--- a/usr/src/lib/libast/common/sfio/sfsk.c
+++ b/usr/src/lib/libast/common/sfio/sfsk.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfstack.c b/usr/src/lib/libast/common/sfio/sfstack.c
index c2c86a7d58..2162f9f292 100644
--- a/usr/src/lib/libast/common/sfio/sfstack.c
+++ b/usr/src/lib/libast/common/sfio/sfstack.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfstrtod.c b/usr/src/lib/libast/common/sfio/sfstrtod.c
index a42e6b3551..0927e3c3e4 100644
--- a/usr/src/lib/libast/common/sfio/sfstrtod.c
+++ b/usr/src/lib/libast/common/sfio/sfstrtod.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfstrtof.h b/usr/src/lib/libast/common/sfio/sfstrtof.h
index bc7c0113a6..bdedd2db5e 100644
--- a/usr/src/lib/libast/common/sfio/sfstrtof.h
+++ b/usr/src/lib/libast/common/sfio/sfstrtof.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -33,6 +33,7 @@
* S2F_function the function name
* S2F_static <0:export =0:extern >0:static
* S2F_type 0:float 1:double 2:long.double
+ * S2F_qualifier 1 for optional [fFlL] qualifier suffix
* S2F_size 1 for interface with size_t second arg
* S2F_scan 1 for alternate interface with these arguments:
* void* handle
@@ -284,6 +285,8 @@ S2F_function(str, end) char* str; char** end;
m = -m;
}
+#if S2F_qualifier
+
/*
* consume the optional suffix
*/
@@ -297,6 +300,7 @@ S2F_function(str, end) char* str; char** end;
c = GET(s);
break;
}
+#endif
PUT(s);
if (v == 0)
return negative ? -v : v;
@@ -449,6 +453,8 @@ S2F_function(str, end) char* str; char** end;
digits += n;
}
+#if S2F_qualifier
+
/*
* consume the optional suffix
*/
@@ -462,6 +468,7 @@ S2F_function(str, end) char* str; char** end;
c = GET(s);
break;
}
+#endif
PUT(s);
/*
diff --git a/usr/src/lib/libast/common/sfio/sfswap.c b/usr/src/lib/libast/common/sfio/sfswap.c
index 0526591212..ca32892692 100644
--- a/usr/src/lib/libast/common/sfio/sfswap.c
+++ b/usr/src/lib/libast/common/sfio/sfswap.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfsync.c b/usr/src/lib/libast/common/sfio/sfsync.c
index 4bcd095226..9d2f1e06be 100644
--- a/usr/src/lib/libast/common/sfio/sfsync.c
+++ b/usr/src/lib/libast/common/sfio/sfsync.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sftable.c b/usr/src/lib/libast/common/sfio/sftable.c
index 23a82fbe77..c1e4651a53 100644
--- a/usr/src/lib/libast/common/sfio/sftable.c
+++ b/usr/src/lib/libast/common/sfio/sftable.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sftell.c b/usr/src/lib/libast/common/sfio/sftell.c
index bdd4dcef46..e46ed41b86 100644
--- a/usr/src/lib/libast/common/sfio/sftell.c
+++ b/usr/src/lib/libast/common/sfio/sftell.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sftmp.c b/usr/src/lib/libast/common/sfio/sftmp.c
index 47b6b34b69..1adf1066ae 100644
--- a/usr/src/lib/libast/common/sfio/sftmp.c
+++ b/usr/src/lib/libast/common/sfio/sftmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfungetc.c b/usr/src/lib/libast/common/sfio/sfungetc.c
index b51b558676..de2512892c 100644
--- a/usr/src/lib/libast/common/sfio/sfungetc.c
+++ b/usr/src/lib/libast/common/sfio/sfungetc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfvprintf.c b/usr/src/lib/libast/common/sfio/sfvprintf.c
index a78fe2f3b5..94c23703cc 100644
--- a/usr/src/lib/libast/common/sfio/sfvprintf.c
+++ b/usr/src/lib/libast/common/sfio/sfvprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -324,6 +324,12 @@ loop_fmt :
if(thousand > 0)
flags |= SFFMT_THOUSAND;
goto loop_flags;
+ case ',':
+ SFSETLOCALE(&decimal,&thousand);
+ if(thousand < 0)
+ thousand = fmt;
+ flags |= SFFMT_THOUSAND;
+ goto loop_flags;
case '.' :
dot += 1;
diff --git a/usr/src/lib/libast/common/sfio/sfvscanf.c b/usr/src/lib/libast/common/sfio/sfvscanf.c
index a6f008b651..9047b1a670 100644
--- a/usr/src/lib/libast/common/sfio/sfvscanf.c
+++ b/usr/src/lib/libast/common/sfio/sfvscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -122,7 +122,7 @@ int flag;
/* structure to match characters in a character class */
typedef struct _accept_s
-{ char ok[SF_MAXCHAR];
+{ char ok[SF_MAXCHAR+1];
int yes;
char *form, *endf;
#if _has_multibyte
diff --git a/usr/src/lib/libast/common/sfio/sfwalk.c b/usr/src/lib/libast/common/sfio/sfwalk.c
new file mode 100644
index 0000000000..a97b079924
--- /dev/null
+++ b/usr/src/lib/libast/common/sfio/sfwalk.c
@@ -0,0 +1,67 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#include "sfhdr.h"
+
+/* Walk streams and run operations on them
+**
+** Written by Kiem-Phong Vo.
+*/
+
+#if __STD_C
+int sfwalk(Sfwalk_f walkf, Void_t* data, int type)
+#else
+int sfwalk(walkf, data, type)
+Sfwalk_f walkf; /* return <0: stop, >=0: continue */
+Void_t* data;
+int type; /* walk streams with all given flags */
+#endif
+{
+ Sfpool_t *p;
+ Sfio_t *f;
+ int n, rv;
+
+ /* truly initializing std-streams before walking */
+ if(sfstdin->mode & SF_INIT)
+ _sfmode(sfstdin, (sfstdin->mode & SF_RDWR), 0);
+ if(sfstdout->mode & SF_INIT)
+ _sfmode(sfstdout, (sfstdout->mode & SF_RDWR), 0);
+ if(sfstderr->mode & SF_INIT)
+ _sfmode(sfstderr, (sfstderr->mode & SF_RDWR), 0);
+
+ for(rv = 0, p = &_Sfpool; p; p = p->next)
+ { for(n = 0; n < p->n_sf; )
+ { f = p->sf[n];
+
+ if(type != 0 && (f->_flags&type) != type )
+ continue; /* not in the interested set */
+
+ if((rv = (*walkf)(f, data)) < 0)
+ return rv;
+
+ if(p->sf[n] == f) /* move forward to next stream */
+ n += 1;
+ /* else - a sfclose() was done on current stream */
+ }
+ }
+
+ return rv;
+}
diff --git a/usr/src/lib/libast/common/sfio/sfwr.c b/usr/src/lib/libast/common/sfio/sfwr.c
index 80c3aecfe4..87f27ca3bd 100644
--- a/usr/src/lib/libast/common/sfio/sfwr.c
+++ b/usr/src/lib/libast/common/sfio/sfwr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/sfwrite.c b/usr/src/lib/libast/common/sfio/sfwrite.c
index 82f7a04e61..da36623347 100644
--- a/usr/src/lib/libast/common/sfio/sfwrite.c
+++ b/usr/src/lib/libast/common/sfio/sfwrite.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/sfio/vthread.h b/usr/src/lib/libast/common/sfio/vthread.h
index eb49278449..fa5f503e6c 100644
--- a/usr/src/lib/libast/common/sfio/vthread.h
+++ b/usr/src/lib/libast/common/sfio/vthread.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/bytesex.h b/usr/src/lib/libast/common/std/bytesex.h
index 95c43e160d..e105fc5f58 100644
--- a/usr/src/lib/libast/common/std/bytesex.h
+++ b/usr/src/lib/libast/common/std/bytesex.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/dirent.h b/usr/src/lib/libast/common/std/dirent.h
index b94f22215f..ea81d037a5 100644
--- a/usr/src/lib/libast/common/std/dirent.h
+++ b/usr/src/lib/libast/common/std/dirent.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/endian.h b/usr/src/lib/libast/common/std/endian.h
index 12539254b6..6ad7ddcaad 100644
--- a/usr/src/lib/libast/common/std/endian.h
+++ b/usr/src/lib/libast/common/std/endian.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/iconv.h b/usr/src/lib/libast/common/std/iconv.h
index 58bc8240d2..5b02759721 100644
--- a/usr/src/lib/libast/common/std/iconv.h
+++ b/usr/src/lib/libast/common/std/iconv.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/nl_types.h b/usr/src/lib/libast/common/std/nl_types.h
index 36c901d8ed..e71605ff40 100644
--- a/usr/src/lib/libast/common/std/nl_types.h
+++ b/usr/src/lib/libast/common/std/nl_types.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/stdio.h b/usr/src/lib/libast/common/std/stdio.h
index 42d7ed8269..2053ba8b27 100644
--- a/usr/src/lib/libast/common/std/stdio.h
+++ b/usr/src/lib/libast/common/std/stdio.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/std/wchar.h b/usr/src/lib/libast/common/std/wchar.h
index 7796480d09..5bd6aa3ba8 100644
--- a/usr/src/lib/libast/common/std/wchar.h
+++ b/usr/src/lib/libast/common/std/wchar.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_doprnt.c b/usr/src/lib/libast/common/stdio/_doprnt.c
index abe981daeb..5f02ffdd7b 100644
--- a/usr/src/lib/libast/common/stdio/_doprnt.c
+++ b/usr/src/lib/libast/common/stdio/_doprnt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_doscan.c b/usr/src/lib/libast/common/stdio/_doscan.c
index 1e1f40006b..8334f44bee 100644
--- a/usr/src/lib/libast/common/stdio/_doscan.c
+++ b/usr/src/lib/libast/common/stdio/_doscan.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_filbuf.c b/usr/src/lib/libast/common/stdio/_filbuf.c
index 48fc226ca7..420c429c91 100644
--- a/usr/src/lib/libast/common/stdio/_filbuf.c
+++ b/usr/src/lib/libast/common/stdio/_filbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_flsbuf.c b/usr/src/lib/libast/common/stdio/_flsbuf.c
index 4c335cec46..ecf9a2cbb6 100644
--- a/usr/src/lib/libast/common/stdio/_flsbuf.c
+++ b/usr/src/lib/libast/common/stdio/_flsbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdfun.c b/usr/src/lib/libast/common/stdio/_stdfun.c
index 94c8b77241..a6a82ae902 100644
--- a/usr/src/lib/libast/common/stdio/_stdfun.c
+++ b/usr/src/lib/libast/common/stdio/_stdfun.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -36,10 +36,12 @@ void _STUB_stdfun(){}
#if _lib___iob_func
#define IOB ((char*)__iob_func())
+#elif _lib___p__iob
+#define IOB ((char*)__p__iob())
#elif _dat__iob
#define IOB ((char*)_iob)
#else
-#define IOB ((char*)__p__iob())
+#define IOB ((char*)_p__iob())
#endif
#define IOBMAX (512*32)
diff --git a/usr/src/lib/libast/common/stdio/_stdopen.c b/usr/src/lib/libast/common/stdio/_stdopen.c
index cd2b40babf..0290aa9e5f 100644
--- a/usr/src/lib/libast/common/stdio/_stdopen.c
+++ b/usr/src/lib/libast/common/stdio/_stdopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdprintf.c b/usr/src/lib/libast/common/stdio/_stdprintf.c
index 0ccd914243..9f46637c9a 100644
--- a/usr/src/lib/libast/common/stdio/_stdprintf.c
+++ b/usr/src/lib/libast/common/stdio/_stdprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdscanf.c b/usr/src/lib/libast/common/stdio/_stdscanf.c
index 863847ccf2..998636a41f 100644
--- a/usr/src/lib/libast/common/stdio/_stdscanf.c
+++ b/usr/src/lib/libast/common/stdio/_stdscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdsprnt.c b/usr/src/lib/libast/common/stdio/_stdsprnt.c
index ebff0918a3..bd91deafd7 100644
--- a/usr/src/lib/libast/common/stdio/_stdsprnt.c
+++ b/usr/src/lib/libast/common/stdio/_stdsprnt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdvbuf.c b/usr/src/lib/libast/common/stdio/_stdvbuf.c
index 7ad8add7e6..6307c47115 100644
--- a/usr/src/lib/libast/common/stdio/_stdvbuf.c
+++ b/usr/src/lib/libast/common/stdio/_stdvbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdvsnprnt.c b/usr/src/lib/libast/common/stdio/_stdvsnprnt.c
index 4d07332060..fb992302cf 100644
--- a/usr/src/lib/libast/common/stdio/_stdvsnprnt.c
+++ b/usr/src/lib/libast/common/stdio/_stdvsnprnt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdvsprnt.c b/usr/src/lib/libast/common/stdio/_stdvsprnt.c
index 7a145eeef7..af3840f345 100644
--- a/usr/src/lib/libast/common/stdio/_stdvsprnt.c
+++ b/usr/src/lib/libast/common/stdio/_stdvsprnt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/_stdvsscn.c b/usr/src/lib/libast/common/stdio/_stdvsscn.c
index 451d036675..be57402e0c 100644
--- a/usr/src/lib/libast/common/stdio/_stdvsscn.c
+++ b/usr/src/lib/libast/common/stdio/_stdvsscn.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/asprintf.c b/usr/src/lib/libast/common/stdio/asprintf.c
index f7ed170751..bbf155196d 100644
--- a/usr/src/lib/libast/common/stdio/asprintf.c
+++ b/usr/src/lib/libast/common/stdio/asprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/clearerr.c b/usr/src/lib/libast/common/stdio/clearerr.c
index c7198a7c7a..39c202d1de 100644
--- a/usr/src/lib/libast/common/stdio/clearerr.c
+++ b/usr/src/lib/libast/common/stdio/clearerr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fclose.c b/usr/src/lib/libast/common/stdio/fclose.c
index e7cbcfd483..7ba4a27dda 100644
--- a/usr/src/lib/libast/common/stdio/fclose.c
+++ b/usr/src/lib/libast/common/stdio/fclose.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fcloseall.c b/usr/src/lib/libast/common/stdio/fcloseall.c
new file mode 100644
index 0000000000..37728c9dc5
--- /dev/null
+++ b/usr/src/lib/libast/common/stdio/fcloseall.c
@@ -0,0 +1,57 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include "stdhdr.h"
+
+#define MAXLOOP 3
+
+int
+fcloseall(void)
+{
+ Sfpool_t* p;
+ Sfpool_t* next;
+ int n;
+ int nclose;
+ int count;
+ int loop;
+
+ STDIO_INT(0, "fcloseall", int, (void), ())
+
+ for(loop = 0; loop < MAXLOOP; ++loop)
+ { nclose = count = 0;
+ for(p = &_Sfpool; p; p = next)
+ { /* find the next legitimate pool */
+ for(next = p->next; next; next = next->next)
+ if(next->n_sf > 0)
+ break;
+ for(n = 0; n < ((p == &_Sfpool) ? p->n_sf : 1); ++n)
+ { count += 1;
+ if(sfclose(p->sf[n]) >= 0)
+ nclose += 1;
+ }
+ }
+ if(nclose == count)
+ break;
+ }
+ return 0; /* always return 0 per GNU */
+}
diff --git a/usr/src/lib/libast/common/stdio/fdopen.c b/usr/src/lib/libast/common/stdio/fdopen.c
index 92e1d7d9e5..c356270653 100644
--- a/usr/src/lib/libast/common/stdio/fdopen.c
+++ b/usr/src/lib/libast/common/stdio/fdopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/feof.c b/usr/src/lib/libast/common/stdio/feof.c
index 8357345e69..e289f7c2b8 100644
--- a/usr/src/lib/libast/common/stdio/feof.c
+++ b/usr/src/lib/libast/common/stdio/feof.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/ferror.c b/usr/src/lib/libast/common/stdio/ferror.c
index 698ade88b8..53879696f5 100644
--- a/usr/src/lib/libast/common/stdio/ferror.c
+++ b/usr/src/lib/libast/common/stdio/ferror.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fflush.c b/usr/src/lib/libast/common/stdio/fflush.c
index e30eb34bd7..3abb8b4257 100644
--- a/usr/src/lib/libast/common/stdio/fflush.c
+++ b/usr/src/lib/libast/common/stdio/fflush.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -21,13 +21,17 @@
***********************************************************************/
#pragma prototyped
+#ifndef _USE_GNU
+#define _USE_GNU
+#endif
+
#include "stdhdr.h"
int
fflush(Sfio_t* f)
{
if (!f)
- return sfsync(NiL);
+ return fcloseall();
STDIO_INT(f, "fflush", int, (Sfio_t*), (f))
diff --git a/usr/src/lib/libast/common/stdio/fgetc.c b/usr/src/lib/libast/common/stdio/fgetc.c
index 880c4a5abd..a99d12bb0c 100644
--- a/usr/src/lib/libast/common/stdio/fgetc.c
+++ b/usr/src/lib/libast/common/stdio/fgetc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fgetpos.c b/usr/src/lib/libast/common/stdio/fgetpos.c
index 988a3ebf2f..df9573e8d8 100644
--- a/usr/src/lib/libast/common/stdio/fgetpos.c
+++ b/usr/src/lib/libast/common/stdio/fgetpos.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fgets.c b/usr/src/lib/libast/common/stdio/fgets.c
index 99880271a0..15368b5add 100644
--- a/usr/src/lib/libast/common/stdio/fgets.c
+++ b/usr/src/lib/libast/common/stdio/fgets.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fgetwc.c b/usr/src/lib/libast/common/stdio/fgetwc.c
index 03728d867e..65acb7925e 100644
--- a/usr/src/lib/libast/common/stdio/fgetwc.c
+++ b/usr/src/lib/libast/common/stdio/fgetwc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fgetws.c b/usr/src/lib/libast/common/stdio/fgetws.c
index d7e941c10a..d1d9acde30 100644
--- a/usr/src/lib/libast/common/stdio/fgetws.c
+++ b/usr/src/lib/libast/common/stdio/fgetws.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fileno.c b/usr/src/lib/libast/common/stdio/fileno.c
index f0cb8db31e..b5507afdc6 100644
--- a/usr/src/lib/libast/common/stdio/fileno.c
+++ b/usr/src/lib/libast/common/stdio/fileno.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/flockfile.c b/usr/src/lib/libast/common/stdio/flockfile.c
index 1da30178ef..5df7aa11a5 100644
--- a/usr/src/lib/libast/common/stdio/flockfile.c
+++ b/usr/src/lib/libast/common/stdio/flockfile.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/stdio_gnu.c b/usr/src/lib/libast/common/stdio/fmemopen.c
index ea420bb666..fa1cdb5adb 100644
--- a/usr/src/lib/libast/common/stdio/stdio_gnu.c
+++ b/usr/src/lib/libast/common/stdio/fmemopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -21,54 +21,12 @@
***********************************************************************/
#pragma prototyped
-/*
- * gnu stdio extensions
- */
-
#include "stdhdr.h"
-int
-fcloseall(void)
-{
- return sfsync(NiL) < 0 ? -1 : 0;
-}
-
Sfio_t*
fmemopen(void* buf, size_t size, const char* mode)
{
- return sfnew(NiL, buf, size, -1, SF_STRING|_sftype(mode, NiL, NiL));
-}
-
-ssize_t
-__getdelim(char** pbuf, size_t* psize, int del, Sfio_t* sp)
-{
- char* s;
- size_t n;
- size_t m;
+ STDIO_PTR(0, "fmemopen", Sfio_t*, (void*, size_t, const char*), (buf, size, mode))
- if (!(s = sfgetr(sp, del, 1)))
- return -1;
- n = sfsize(sp);
- m = n + 1;
- if (!*pbuf || m > *psize)
- {
- m = roundof(m, 1024);
- if (!(*pbuf = newof(*pbuf, char, m, 0)))
- return -1;
- *psize = m;
- }
- memcpy(*pbuf, s, n);
- return n;
-}
-
-ssize_t
-getdelim(char** pbuf, size_t* psize, int del, Sfio_t* sp)
-{
- return __getdelim(pbuf, psize, del, sp);
-}
-
-ssize_t
-getline(char** pbuf, size_t* psize, Sfio_t* sp)
-{
- return __getdelim(pbuf, psize, '\n', sp);
+ return sfnew(NiL, buf, size, -1, SF_STRING|_sftype(mode, NiL, NiL));
}
diff --git a/usr/src/lib/libast/common/stdio/fopen.c b/usr/src/lib/libast/common/stdio/fopen.c
index 27d942a04b..8c723e849a 100644
--- a/usr/src/lib/libast/common/stdio/fopen.c
+++ b/usr/src/lib/libast/common/stdio/fopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fprintf.c b/usr/src/lib/libast/common/stdio/fprintf.c
index c9974ff04c..345fce71cb 100644
--- a/usr/src/lib/libast/common/stdio/fprintf.c
+++ b/usr/src/lib/libast/common/stdio/fprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fpurge.c b/usr/src/lib/libast/common/stdio/fpurge.c
index e71564657e..2b57e51ac0 100644
--- a/usr/src/lib/libast/common/stdio/fpurge.c
+++ b/usr/src/lib/libast/common/stdio/fpurge.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fputc.c b/usr/src/lib/libast/common/stdio/fputc.c
index 1c4ece7e61..4ea662824c 100644
--- a/usr/src/lib/libast/common/stdio/fputc.c
+++ b/usr/src/lib/libast/common/stdio/fputc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fputs.c b/usr/src/lib/libast/common/stdio/fputs.c
index 1fd2c228b9..a5d5a94cd6 100644
--- a/usr/src/lib/libast/common/stdio/fputs.c
+++ b/usr/src/lib/libast/common/stdio/fputs.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fputwc.c b/usr/src/lib/libast/common/stdio/fputwc.c
index 0fe7f8c9e8..7f7637f7bd 100644
--- a/usr/src/lib/libast/common/stdio/fputwc.c
+++ b/usr/src/lib/libast/common/stdio/fputwc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fputws.c b/usr/src/lib/libast/common/stdio/fputws.c
index a37f961f5a..844088b694 100644
--- a/usr/src/lib/libast/common/stdio/fputws.c
+++ b/usr/src/lib/libast/common/stdio/fputws.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fread.c b/usr/src/lib/libast/common/stdio/fread.c
index 0caeebc590..d94c1f341d 100644
--- a/usr/src/lib/libast/common/stdio/fread.c
+++ b/usr/src/lib/libast/common/stdio/fread.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/freopen.c b/usr/src/lib/libast/common/stdio/freopen.c
index f774b91b47..1746a450b7 100644
--- a/usr/src/lib/libast/common/stdio/freopen.c
+++ b/usr/src/lib/libast/common/stdio/freopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fscanf.c b/usr/src/lib/libast/common/stdio/fscanf.c
index 73da47c4a2..6ab28131ea 100644
--- a/usr/src/lib/libast/common/stdio/fscanf.c
+++ b/usr/src/lib/libast/common/stdio/fscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fseek.c b/usr/src/lib/libast/common/stdio/fseek.c
index 84233b1b87..b6175f1b15 100644
--- a/usr/src/lib/libast/common/stdio/fseek.c
+++ b/usr/src/lib/libast/common/stdio/fseek.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fseeko.c b/usr/src/lib/libast/common/stdio/fseeko.c
index 1bafc4c97e..cb69bbeaa6 100644
--- a/usr/src/lib/libast/common/stdio/fseeko.c
+++ b/usr/src/lib/libast/common/stdio/fseeko.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fsetpos.c b/usr/src/lib/libast/common/stdio/fsetpos.c
index 9e5c193cad..3212b9499d 100644
--- a/usr/src/lib/libast/common/stdio/fsetpos.c
+++ b/usr/src/lib/libast/common/stdio/fsetpos.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/ftell.c b/usr/src/lib/libast/common/stdio/ftell.c
index 225b34f408..cf5b1336cf 100644
--- a/usr/src/lib/libast/common/stdio/ftell.c
+++ b/usr/src/lib/libast/common/stdio/ftell.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/ftello.c b/usr/src/lib/libast/common/stdio/ftello.c
index 0fbcbe153f..65ba754468 100644
--- a/usr/src/lib/libast/common/stdio/ftello.c
+++ b/usr/src/lib/libast/common/stdio/ftello.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/ftrylockfile.c b/usr/src/lib/libast/common/stdio/ftrylockfile.c
index d4c40a5ce1..b00fe135b7 100644
--- a/usr/src/lib/libast/common/stdio/ftrylockfile.c
+++ b/usr/src/lib/libast/common/stdio/ftrylockfile.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/funlockfile.c b/usr/src/lib/libast/common/stdio/funlockfile.c
index 6aee88a525..fb186a32cb 100644
--- a/usr/src/lib/libast/common/stdio/funlockfile.c
+++ b/usr/src/lib/libast/common/stdio/funlockfile.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fwide.c b/usr/src/lib/libast/common/stdio/fwide.c
index 4d472cafaa..4db3e3d4eb 100644
--- a/usr/src/lib/libast/common/stdio/fwide.c
+++ b/usr/src/lib/libast/common/stdio/fwide.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fwprintf.c b/usr/src/lib/libast/common/stdio/fwprintf.c
index 3e7579369b..7ced942740 100644
--- a/usr/src/lib/libast/common/stdio/fwprintf.c
+++ b/usr/src/lib/libast/common/stdio/fwprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fwrite.c b/usr/src/lib/libast/common/stdio/fwrite.c
index 94a192ae4f..2121d32c19 100644
--- a/usr/src/lib/libast/common/stdio/fwrite.c
+++ b/usr/src/lib/libast/common/stdio/fwrite.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/fwscanf.c b/usr/src/lib/libast/common/stdio/fwscanf.c
index 29838447a3..dc6e31667d 100644
--- a/usr/src/lib/libast/common/stdio/fwscanf.c
+++ b/usr/src/lib/libast/common/stdio/fwscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/getc.c b/usr/src/lib/libast/common/stdio/getc.c
index bfc0c9a0f6..b52909ef49 100644
--- a/usr/src/lib/libast/common/stdio/getc.c
+++ b/usr/src/lib/libast/common/stdio/getc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/getchar.c b/usr/src/lib/libast/common/stdio/getchar.c
index f1c4a168b3..5c85793bb6 100644
--- a/usr/src/lib/libast/common/stdio/getchar.c
+++ b/usr/src/lib/libast/common/stdio/getchar.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/getdelim.c b/usr/src/lib/libast/common/stdio/getdelim.c
new file mode 100644
index 0000000000..a24ad68fd8
--- /dev/null
+++ b/usr/src/lib/libast/common/stdio/getdelim.c
@@ -0,0 +1,96 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include "stdhdr.h"
+
+ssize_t
+getdelim(char** sp, size_t* np, int delim, Sfio_t* f)
+{
+ ssize_t m;
+ ssize_t n;
+ ssize_t k;
+ ssize_t p;
+ uchar* s;
+ uchar* ps;
+ SFMTXDECL(f);
+
+ STDIO_INT(f, "getdelim", ssize_t, (char**, size_t*, int, Sfio_t*), (sp, np, delim, f))
+
+ SFMTXENTER(f, -1);
+
+ if(delim < 0 || delim > 255 || !sp || !np) /* bad parameters */
+ SFMTXRETURN(f, -1);
+
+ if(f->mode != SF_READ && _sfmode(f,SF_READ,0) < 0)
+ SFMTXRETURN(f, -1);
+
+ SFLOCK(f,0);
+
+ if(!(s = (uchar*)(*sp)) || (n = *np) < 0)
+ { s = NIL(uchar*); n = 0; }
+ for(m = 0;; )
+ { /* read new data */
+ if((p = f->endb - (ps = f->next)) <= 0 )
+ { f->getr = delim;
+ f->mode |= SF_RC;
+ if(SFRPEEK(f,ps,p) <= 0)
+ { m = -1;
+ break;
+ }
+ }
+
+ for(k = 0; k < p; ++k) /* find the delimiter */
+ { if(ps[k] == delim)
+ { k += 1; /* include delim in copying */
+ break;
+ }
+ }
+
+ if((m+k+1) >= n ) /* make sure there is space */
+ { n = ((m+k+15)/8)*8;
+ if(!(s = (uchar*)realloc(s, n)) )
+ { *sp = 0; *np = 0;
+ m = -1;
+ break;
+ }
+ *sp = (char*)s; *np = n;
+ }
+
+ memcpy(s+m, ps, k); m += k;
+ f->next = ps+k; /* skip copied data in buffer */
+
+ if(s[m-1] == delim)
+ { s[m] = 0; /* 0-terminated */
+ break;
+ }
+ }
+
+ SFOPEN(f,0);
+ SFMTXRETURN(f,m);
+}
+
+ssize_t
+__getdelim(char** sp, size_t* np, int delim, Sfio_t* f)
+{
+ return getdelim(sp, np, delim, f);
+}
diff --git a/usr/src/lib/libast/common/stdio/getline.c b/usr/src/lib/libast/common/stdio/getline.c
new file mode 100644
index 0000000000..b4936c2b30
--- /dev/null
+++ b/usr/src/lib/libast/common/stdio/getline.c
@@ -0,0 +1,36 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#ifndef _USE_GNU
+#define _USE_GNU
+#endif
+
+#include "stdhdr.h"
+
+ssize_t
+getline(char** sp, size_t* np, Sfio_t* f)
+{
+ STDIO_INT(f, "getline", ssize_t, (char**, size_t*, Sfio_t*), (sp, np, f))
+
+ return getdelim(sp, np, '\n', f);
+}
diff --git a/usr/src/lib/libast/common/stdio/getw.c b/usr/src/lib/libast/common/stdio/getw.c
index 031f4588c5..264fd7b375 100644
--- a/usr/src/lib/libast/common/stdio/getw.c
+++ b/usr/src/lib/libast/common/stdio/getw.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/getwc.c b/usr/src/lib/libast/common/stdio/getwc.c
index 27d1273a86..970d1fb588 100644
--- a/usr/src/lib/libast/common/stdio/getwc.c
+++ b/usr/src/lib/libast/common/stdio/getwc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/getwchar.c b/usr/src/lib/libast/common/stdio/getwchar.c
index 2b08127e46..59b85f41c7 100644
--- a/usr/src/lib/libast/common/stdio/getwchar.c
+++ b/usr/src/lib/libast/common/stdio/getwchar.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/pclose.c b/usr/src/lib/libast/common/stdio/pclose.c
index 51bdf3071b..5c49dc9bea 100644
--- a/usr/src/lib/libast/common/stdio/pclose.c
+++ b/usr/src/lib/libast/common/stdio/pclose.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/popen.c b/usr/src/lib/libast/common/stdio/popen.c
index 0f15e8b961..38329fd259 100644
--- a/usr/src/lib/libast/common/stdio/popen.c
+++ b/usr/src/lib/libast/common/stdio/popen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/printf.c b/usr/src/lib/libast/common/stdio/printf.c
index 45dd3c8b5c..a191f32bc1 100644
--- a/usr/src/lib/libast/common/stdio/printf.c
+++ b/usr/src/lib/libast/common/stdio/printf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/putc.c b/usr/src/lib/libast/common/stdio/putc.c
index c42448dd6b..ad8742f63c 100644
--- a/usr/src/lib/libast/common/stdio/putc.c
+++ b/usr/src/lib/libast/common/stdio/putc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/putchar.c b/usr/src/lib/libast/common/stdio/putchar.c
index a43c666486..e339082c75 100644
--- a/usr/src/lib/libast/common/stdio/putchar.c
+++ b/usr/src/lib/libast/common/stdio/putchar.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/puts.c b/usr/src/lib/libast/common/stdio/puts.c
index 96c114a3d9..523383f93e 100644
--- a/usr/src/lib/libast/common/stdio/puts.c
+++ b/usr/src/lib/libast/common/stdio/puts.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/putw.c b/usr/src/lib/libast/common/stdio/putw.c
index 662a746d2a..bb120a8434 100644
--- a/usr/src/lib/libast/common/stdio/putw.c
+++ b/usr/src/lib/libast/common/stdio/putw.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/putwc.c b/usr/src/lib/libast/common/stdio/putwc.c
index 5929ca938b..21d0006257 100644
--- a/usr/src/lib/libast/common/stdio/putwc.c
+++ b/usr/src/lib/libast/common/stdio/putwc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/putwchar.c b/usr/src/lib/libast/common/stdio/putwchar.c
index 9d6215ecde..bbca267759 100644
--- a/usr/src/lib/libast/common/stdio/putwchar.c
+++ b/usr/src/lib/libast/common/stdio/putwchar.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/rewind.c b/usr/src/lib/libast/common/stdio/rewind.c
index ae475316ab..285857848e 100644
--- a/usr/src/lib/libast/common/stdio/rewind.c
+++ b/usr/src/lib/libast/common/stdio/rewind.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/scanf.c b/usr/src/lib/libast/common/stdio/scanf.c
index 459b3340e6..e06681ee09 100644
--- a/usr/src/lib/libast/common/stdio/scanf.c
+++ b/usr/src/lib/libast/common/stdio/scanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/setbuf.c b/usr/src/lib/libast/common/stdio/setbuf.c
index 54998bda2a..7ec63c4604 100644
--- a/usr/src/lib/libast/common/stdio/setbuf.c
+++ b/usr/src/lib/libast/common/stdio/setbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/setbuffer.c b/usr/src/lib/libast/common/stdio/setbuffer.c
index 9f2559e52a..18e6f5dac9 100644
--- a/usr/src/lib/libast/common/stdio/setbuffer.c
+++ b/usr/src/lib/libast/common/stdio/setbuffer.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/setlinebuf.c b/usr/src/lib/libast/common/stdio/setlinebuf.c
index d354a94d0d..ffb71365ce 100644
--- a/usr/src/lib/libast/common/stdio/setlinebuf.c
+++ b/usr/src/lib/libast/common/stdio/setlinebuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/setvbuf.c b/usr/src/lib/libast/common/stdio/setvbuf.c
index f2d5cc46c7..b8673fafe8 100644
--- a/usr/src/lib/libast/common/stdio/setvbuf.c
+++ b/usr/src/lib/libast/common/stdio/setvbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/snprintf.c b/usr/src/lib/libast/common/stdio/snprintf.c
index 20495a7354..fd22ea1088 100644
--- a/usr/src/lib/libast/common/stdio/snprintf.c
+++ b/usr/src/lib/libast/common/stdio/snprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/sprintf.c b/usr/src/lib/libast/common/stdio/sprintf.c
index c887627f9a..76f434e73d 100644
--- a/usr/src/lib/libast/common/stdio/sprintf.c
+++ b/usr/src/lib/libast/common/stdio/sprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/sscanf.c b/usr/src/lib/libast/common/stdio/sscanf.c
index 4d064d3758..014a328f7e 100644
--- a/usr/src/lib/libast/common/stdio/sscanf.c
+++ b/usr/src/lib/libast/common/stdio/sscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/stdhdr.h b/usr/src/lib/libast/common/stdio/stdhdr.h
index 1b0c160453..3436bb9fc5 100644
--- a/usr/src/lib/libast/common/stdio/stdhdr.h
+++ b/usr/src/lib/libast/common/stdio/stdhdr.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/stdio_c99.c b/usr/src/lib/libast/common/stdio/stdio_c99.c
index c75aad10e1..9bfe96ebba 100644
--- a/usr/src/lib/libast/common/stdio/stdio_c99.c
+++ b/usr/src/lib/libast/common/stdio/stdio_c99.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/swprintf.c b/usr/src/lib/libast/common/stdio/swprintf.c
index b7b412f726..4b43fccc33 100644
--- a/usr/src/lib/libast/common/stdio/swprintf.c
+++ b/usr/src/lib/libast/common/stdio/swprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/swscanf.c b/usr/src/lib/libast/common/stdio/swscanf.c
index acf72fdc48..6653930fba 100644
--- a/usr/src/lib/libast/common/stdio/swscanf.c
+++ b/usr/src/lib/libast/common/stdio/swscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/tmpfile.c b/usr/src/lib/libast/common/stdio/tmpfile.c
index cfcd311da5..7d19057681 100644
--- a/usr/src/lib/libast/common/stdio/tmpfile.c
+++ b/usr/src/lib/libast/common/stdio/tmpfile.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/ungetc.c b/usr/src/lib/libast/common/stdio/ungetc.c
index bf3f5fa8fc..dc86703317 100644
--- a/usr/src/lib/libast/common/stdio/ungetc.c
+++ b/usr/src/lib/libast/common/stdio/ungetc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/ungetwc.c b/usr/src/lib/libast/common/stdio/ungetwc.c
index 08c5aa362a..12aa1cc92a 100644
--- a/usr/src/lib/libast/common/stdio/ungetwc.c
+++ b/usr/src/lib/libast/common/stdio/ungetwc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vasprintf.c b/usr/src/lib/libast/common/stdio/vasprintf.c
index 6bdaf77fa0..1bb9609243 100644
--- a/usr/src/lib/libast/common/stdio/vasprintf.c
+++ b/usr/src/lib/libast/common/stdio/vasprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vfprintf.c b/usr/src/lib/libast/common/stdio/vfprintf.c
index cff1bd5d1d..42fca64d7e 100644
--- a/usr/src/lib/libast/common/stdio/vfprintf.c
+++ b/usr/src/lib/libast/common/stdio/vfprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vfscanf.c b/usr/src/lib/libast/common/stdio/vfscanf.c
index c9d4df1051..dd0d2a1a0d 100644
--- a/usr/src/lib/libast/common/stdio/vfscanf.c
+++ b/usr/src/lib/libast/common/stdio/vfscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vfwprintf.c b/usr/src/lib/libast/common/stdio/vfwprintf.c
index a4a274c340..06e4bfcdeb 100644
--- a/usr/src/lib/libast/common/stdio/vfwprintf.c
+++ b/usr/src/lib/libast/common/stdio/vfwprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vfwscanf.c b/usr/src/lib/libast/common/stdio/vfwscanf.c
index 4ae8697fca..7e3d9baa51 100644
--- a/usr/src/lib/libast/common/stdio/vfwscanf.c
+++ b/usr/src/lib/libast/common/stdio/vfwscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vprintf.c b/usr/src/lib/libast/common/stdio/vprintf.c
index 0824e692e9..983bf17118 100644
--- a/usr/src/lib/libast/common/stdio/vprintf.c
+++ b/usr/src/lib/libast/common/stdio/vprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vscanf.c b/usr/src/lib/libast/common/stdio/vscanf.c
index 4e36c27bb3..4e5d8a6f7d 100644
--- a/usr/src/lib/libast/common/stdio/vscanf.c
+++ b/usr/src/lib/libast/common/stdio/vscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vsnprintf.c b/usr/src/lib/libast/common/stdio/vsnprintf.c
index 8ce4424d40..d794845cbf 100644
--- a/usr/src/lib/libast/common/stdio/vsnprintf.c
+++ b/usr/src/lib/libast/common/stdio/vsnprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vsprintf.c b/usr/src/lib/libast/common/stdio/vsprintf.c
index 7f3c173aaf..365f54b8a8 100644
--- a/usr/src/lib/libast/common/stdio/vsprintf.c
+++ b/usr/src/lib/libast/common/stdio/vsprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vsscanf.c b/usr/src/lib/libast/common/stdio/vsscanf.c
index ea5a1adccd..f3a76d6d5e 100644
--- a/usr/src/lib/libast/common/stdio/vsscanf.c
+++ b/usr/src/lib/libast/common/stdio/vsscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vswprintf.c b/usr/src/lib/libast/common/stdio/vswprintf.c
index a3e90472b6..a6c1d84e48 100644
--- a/usr/src/lib/libast/common/stdio/vswprintf.c
+++ b/usr/src/lib/libast/common/stdio/vswprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vswscanf.c b/usr/src/lib/libast/common/stdio/vswscanf.c
index da785c3723..94dabdda18 100644
--- a/usr/src/lib/libast/common/stdio/vswscanf.c
+++ b/usr/src/lib/libast/common/stdio/vswscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vwprintf.c b/usr/src/lib/libast/common/stdio/vwprintf.c
index 77cdfcf99a..5b44f2caa8 100644
--- a/usr/src/lib/libast/common/stdio/vwprintf.c
+++ b/usr/src/lib/libast/common/stdio/vwprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/vwscanf.c b/usr/src/lib/libast/common/stdio/vwscanf.c
index fd388d0894..f9fa06eac8 100644
--- a/usr/src/lib/libast/common/stdio/vwscanf.c
+++ b/usr/src/lib/libast/common/stdio/vwscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/wprintf.c b/usr/src/lib/libast/common/stdio/wprintf.c
index 180c83ef72..5a3e5d5510 100644
--- a/usr/src/lib/libast/common/stdio/wprintf.c
+++ b/usr/src/lib/libast/common/stdio/wprintf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/stdio/wscanf.c b/usr/src/lib/libast/common/stdio/wscanf.c
index 607a109219..1aa647a5cf 100644
--- a/usr/src/lib/libast/common/stdio/wscanf.c
+++ b/usr/src/lib/libast/common/stdio/wscanf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/base64.c b/usr/src/lib/libast/common/string/base64.c
index 8132fdc3b7..e919cba7a6 100644
--- a/usr/src/lib/libast/common/string/base64.c
+++ b/usr/src/lib/libast/common/string/base64.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/ccmap.c b/usr/src/lib/libast/common/string/ccmap.c
index 139662c0f1..106d887da5 100644
--- a/usr/src/lib/libast/common/string/ccmap.c
+++ b/usr/src/lib/libast/common/string/ccmap.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/ccmapid.c b/usr/src/lib/libast/common/string/ccmapid.c
index 52369e32c3..fc1e7a071c 100644
--- a/usr/src/lib/libast/common/string/ccmapid.c
+++ b/usr/src/lib/libast/common/string/ccmapid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/ccnative.c b/usr/src/lib/libast/common/string/ccnative.c
index def38beee1..a3aa48e995 100644
--- a/usr/src/lib/libast/common/string/ccnative.c
+++ b/usr/src/lib/libast/common/string/ccnative.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/chresc.c b/usr/src/lib/libast/common/string/chresc.c
index ac9bb1c3df..e1b6fbe087 100644
--- a/usr/src/lib/libast/common/string/chresc.c
+++ b/usr/src/lib/libast/common/string/chresc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/chrtoi.c b/usr/src/lib/libast/common/string/chrtoi.c
index 929809ee7b..e41c37e15a 100644
--- a/usr/src/lib/libast/common/string/chrtoi.c
+++ b/usr/src/lib/libast/common/string/chrtoi.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtbase.c b/usr/src/lib/libast/common/string/fmtbase.c
index be5db317e1..5589d50ff8 100644
--- a/usr/src/lib/libast/common/string/fmtbase.c
+++ b/usr/src/lib/libast/common/string/fmtbase.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtbuf.c b/usr/src/lib/libast/common/string/fmtbuf.c
index 0423e21225..4202e780bf 100644
--- a/usr/src/lib/libast/common/string/fmtbuf.c
+++ b/usr/src/lib/libast/common/string/fmtbuf.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtclock.c b/usr/src/lib/libast/common/string/fmtclock.c
index 4a7f48eb48..1036fdee95 100644
--- a/usr/src/lib/libast/common/string/fmtclock.c
+++ b/usr/src/lib/libast/common/string/fmtclock.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtdev.c b/usr/src/lib/libast/common/string/fmtdev.c
index 3b591ea8bc..0a5886b234 100644
--- a/usr/src/lib/libast/common/string/fmtdev.c
+++ b/usr/src/lib/libast/common/string/fmtdev.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtelapsed.c b/usr/src/lib/libast/common/string/fmtelapsed.c
index 7df376be13..ec140a5a03 100644
--- a/usr/src/lib/libast/common/string/fmtelapsed.c
+++ b/usr/src/lib/libast/common/string/fmtelapsed.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmterror.c b/usr/src/lib/libast/common/string/fmterror.c
index 379510f352..da9c44efd4 100644
--- a/usr/src/lib/libast/common/string/fmterror.c
+++ b/usr/src/lib/libast/common/string/fmterror.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtesc.c b/usr/src/lib/libast/common/string/fmtesc.c
index 48b4efe8bd..a88844216b 100644
--- a/usr/src/lib/libast/common/string/fmtesc.c
+++ b/usr/src/lib/libast/common/string/fmtesc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtfmt.c b/usr/src/lib/libast/common/string/fmtfmt.c
index dddfb805d8..351460626b 100644
--- a/usr/src/lib/libast/common/string/fmtfmt.c
+++ b/usr/src/lib/libast/common/string/fmtfmt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtfs.c b/usr/src/lib/libast/common/string/fmtfs.c
index 1b7e0b1866..7b613bcb9a 100644
--- a/usr/src/lib/libast/common/string/fmtfs.c
+++ b/usr/src/lib/libast/common/string/fmtfs.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtgid.c b/usr/src/lib/libast/common/string/fmtgid.c
index 9e5c9fe957..55ad21700c 100644
--- a/usr/src/lib/libast/common/string/fmtgid.c
+++ b/usr/src/lib/libast/common/string/fmtgid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtident.c b/usr/src/lib/libast/common/string/fmtident.c
index 5210503c49..5a7f8418f6 100644
--- a/usr/src/lib/libast/common/string/fmtident.c
+++ b/usr/src/lib/libast/common/string/fmtident.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtip4.c b/usr/src/lib/libast/common/string/fmtip4.c
index 623ae26dc9..3faedbbbc0 100644
--- a/usr/src/lib/libast/common/string/fmtip4.c
+++ b/usr/src/lib/libast/common/string/fmtip4.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtip6.c b/usr/src/lib/libast/common/string/fmtip6.c
index d5c0a6b894..6e62d988a6 100644
--- a/usr/src/lib/libast/common/string/fmtip6.c
+++ b/usr/src/lib/libast/common/string/fmtip6.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -141,7 +141,10 @@ fmtip6(unsigned char* addr, int bits)
*s++ = ':';
*s++ = ':';
if ((i += r[m]) >= n)
+ {
+ z = 1;
break;
+ }
z = 0;
}
else if (i && !(i & 1))
@@ -163,6 +166,8 @@ fmtip6(unsigned char* addr, int bits)
*s++ = dig[k];
}
}
+ if (!z && *(s - 1) == ':')
+ *s++ = '0';
if (bits > 0 && bits <= 128)
s = dec(s, "/", bits);
*s = 0;
diff --git a/usr/src/lib/libast/common/string/fmtls.c b/usr/src/lib/libast/common/string/fmtls.c
index b8a835d2c1..6b92a5b3e1 100644
--- a/usr/src/lib/libast/common/string/fmtls.c
+++ b/usr/src/lib/libast/common/string/fmtls.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtmatch.c b/usr/src/lib/libast/common/string/fmtmatch.c
index 44428a1d4e..ac8ab6707d 100644
--- a/usr/src/lib/libast/common/string/fmtmatch.c
+++ b/usr/src/lib/libast/common/string/fmtmatch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtmode.c b/usr/src/lib/libast/common/string/fmtmode.c
index 542833582c..3445467972 100644
--- a/usr/src/lib/libast/common/string/fmtmode.c
+++ b/usr/src/lib/libast/common/string/fmtmode.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtnum.c b/usr/src/lib/libast/common/string/fmtnum.c
index b35ee66f1b..bfebea9f17 100644
--- a/usr/src/lib/libast/common/string/fmtnum.c
+++ b/usr/src/lib/libast/common/string/fmtnum.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtperm.c b/usr/src/lib/libast/common/string/fmtperm.c
index b88e9a71d3..0fd30dd9bf 100644
--- a/usr/src/lib/libast/common/string/fmtperm.c
+++ b/usr/src/lib/libast/common/string/fmtperm.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtre.c b/usr/src/lib/libast/common/string/fmtre.c
index 14f2df085c..05fc4ab69c 100644
--- a/usr/src/lib/libast/common/string/fmtre.c
+++ b/usr/src/lib/libast/common/string/fmtre.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtscale.c b/usr/src/lib/libast/common/string/fmtscale.c
index 2646c1b744..511acf5cde 100644
--- a/usr/src/lib/libast/common/string/fmtscale.c
+++ b/usr/src/lib/libast/common/string/fmtscale.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtsignal.c b/usr/src/lib/libast/common/string/fmtsignal.c
index de435505d3..88162606c1 100644
--- a/usr/src/lib/libast/common/string/fmtsignal.c
+++ b/usr/src/lib/libast/common/string/fmtsignal.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmttime.c b/usr/src/lib/libast/common/string/fmttime.c
index b67a0c788c..45ba4bff32 100644
--- a/usr/src/lib/libast/common/string/fmttime.c
+++ b/usr/src/lib/libast/common/string/fmttime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmttmx.c b/usr/src/lib/libast/common/string/fmttmx.c
index f79693aa11..b178cf46ae 100644
--- a/usr/src/lib/libast/common/string/fmttmx.c
+++ b/usr/src/lib/libast/common/string/fmttmx.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmttv.c b/usr/src/lib/libast/common/string/fmttv.c
index bdf8fabcdf..2478ca8991 100644
--- a/usr/src/lib/libast/common/string/fmttv.c
+++ b/usr/src/lib/libast/common/string/fmttv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtuid.c b/usr/src/lib/libast/common/string/fmtuid.c
index ae33c07848..2c9fb16227 100644
--- a/usr/src/lib/libast/common/string/fmtuid.c
+++ b/usr/src/lib/libast/common/string/fmtuid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/fmtversion.c b/usr/src/lib/libast/common/string/fmtversion.c
index 0868eafa04..e7829717dd 100644
--- a/usr/src/lib/libast/common/string/fmtversion.c
+++ b/usr/src/lib/libast/common/string/fmtversion.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/memdup.c b/usr/src/lib/libast/common/string/memdup.c
index f15de32dd9..d69cb9416c 100644
--- a/usr/src/lib/libast/common/string/memdup.c
+++ b/usr/src/lib/libast/common/string/memdup.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/modedata.c b/usr/src/lib/libast/common/string/modedata.c
index 9a73e9980f..c9d3a18e77 100644
--- a/usr/src/lib/libast/common/string/modedata.c
+++ b/usr/src/lib/libast/common/string/modedata.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/modei.c b/usr/src/lib/libast/common/string/modei.c
index 78cff935f5..cce5492601 100644
--- a/usr/src/lib/libast/common/string/modei.c
+++ b/usr/src/lib/libast/common/string/modei.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/modelib.h b/usr/src/lib/libast/common/string/modelib.h
index 6668ad2e24..8e6c6536f3 100644
--- a/usr/src/lib/libast/common/string/modelib.h
+++ b/usr/src/lib/libast/common/string/modelib.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/modex.c b/usr/src/lib/libast/common/string/modex.c
index 8a21f0c2da..d61856730a 100644
--- a/usr/src/lib/libast/common/string/modex.c
+++ b/usr/src/lib/libast/common/string/modex.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/stracmp.c b/usr/src/lib/libast/common/string/stracmp.c
index c0a0a2a5eb..3f34f01a24 100644
--- a/usr/src/lib/libast/common/string/stracmp.c
+++ b/usr/src/lib/libast/common/string/stracmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strcopy.c b/usr/src/lib/libast/common/string/strcopy.c
index 1815a5c685..7c73b363ad 100644
--- a/usr/src/lib/libast/common/string/strcopy.c
+++ b/usr/src/lib/libast/common/string/strcopy.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strdup.c b/usr/src/lib/libast/common/string/strdup.c
index 6831319620..a60ea63612 100644
--- a/usr/src/lib/libast/common/string/strdup.c
+++ b/usr/src/lib/libast/common/string/strdup.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strelapsed.c b/usr/src/lib/libast/common/string/strelapsed.c
index fe49de2034..04e9a68546 100644
--- a/usr/src/lib/libast/common/string/strelapsed.c
+++ b/usr/src/lib/libast/common/string/strelapsed.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strerror.c b/usr/src/lib/libast/common/string/strerror.c
index 54f6c8119c..74fbafc553 100644
--- a/usr/src/lib/libast/common/string/strerror.c
+++ b/usr/src/lib/libast/common/string/strerror.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/stresc.c b/usr/src/lib/libast/common/string/stresc.c
index eb53caa96c..d911accaec 100644
--- a/usr/src/lib/libast/common/string/stresc.c
+++ b/usr/src/lib/libast/common/string/stresc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/streval.c b/usr/src/lib/libast/common/string/streval.c
index 9b815c12a7..bfd26afcf4 100644
--- a/usr/src/lib/libast/common/string/streval.c
+++ b/usr/src/lib/libast/common/string/streval.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strexpr.c b/usr/src/lib/libast/common/string/strexpr.c
index d2055edfc6..8518916018 100644
--- a/usr/src/lib/libast/common/string/strexpr.c
+++ b/usr/src/lib/libast/common/string/strexpr.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strgid.c b/usr/src/lib/libast/common/string/strgid.c
index dce5b04bc1..18ec53d6f3 100644
--- a/usr/src/lib/libast/common/string/strgid.c
+++ b/usr/src/lib/libast/common/string/strgid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strlcat.c b/usr/src/lib/libast/common/string/strlcat.c
index 3bbd39c689..6c7d4d909b 100644
--- a/usr/src/lib/libast/common/string/strlcat.c
+++ b/usr/src/lib/libast/common/string/strlcat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -40,7 +40,7 @@ NoN(strlcat)
#else
/*
- * append at t onto s limiting total size of s to n
+ * append t onto s limiting total size of s to n
* s 0 terminated if n>0
* min(n,strlen(s))+strlen(t) returned
*/
@@ -52,12 +52,17 @@ NoN(strlcat)
extern size_t
strlcat(register char* s, register const char* t, register size_t n)
{
+ register size_t m;
const char* o = t;
- if (n)
+ if (m = n)
{
- while (--n && *s)
+ while (n && *s)
+ {
+ n--;
s++;
+ }
+ m -= n;
if (n)
do
{
@@ -72,7 +77,7 @@ strlcat(register char* s, register const char* t, register size_t n)
}
if (!n)
while (*t++);
- return t - o - 1;
+ return (t - o) + m - 1;
}
#endif
diff --git a/usr/src/lib/libast/common/string/strlcpy.c b/usr/src/lib/libast/common/string/strlcpy.c
index 40b4c41cd9..b389a95fdb 100644
--- a/usr/src/lib/libast/common/string/strlcpy.c
+++ b/usr/src/lib/libast/common/string/strlcpy.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strlook.c b/usr/src/lib/libast/common/string/strlook.c
index dbb05cd39d..a97ebe3205 100644
--- a/usr/src/lib/libast/common/string/strlook.c
+++ b/usr/src/lib/libast/common/string/strlook.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strmatch.c b/usr/src/lib/libast/common/string/strmatch.c
index 9d38777298..d5811b98d9 100644
--- a/usr/src/lib/libast/common/string/strmatch.c
+++ b/usr/src/lib/libast/common/string/strmatch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strmode.c b/usr/src/lib/libast/common/string/strmode.c
index e7e0d03ff2..5c6d2d6c4c 100644
--- a/usr/src/lib/libast/common/string/strmode.c
+++ b/usr/src/lib/libast/common/string/strmode.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strnacmp.c b/usr/src/lib/libast/common/string/strnacmp.c
index f32e943f3e..6813976786 100644
--- a/usr/src/lib/libast/common/string/strnacmp.c
+++ b/usr/src/lib/libast/common/string/strnacmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strncopy.c b/usr/src/lib/libast/common/string/strncopy.c
index 8441d905fd..3db15a33d4 100644
--- a/usr/src/lib/libast/common/string/strncopy.c
+++ b/usr/src/lib/libast/common/string/strncopy.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strnpcmp.c b/usr/src/lib/libast/common/string/strnpcmp.c
new file mode 100644
index 0000000000..a7344f063a
--- /dev/null
+++ b/usr/src/lib/libast/common/string/strnpcmp.c
@@ -0,0 +1,51 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include <ast.h>
+
+/*
+ * path prefix strncmp(3) -- longest first!
+ */
+
+int
+strnpcmp(register const char* a, register const char* b, size_t n)
+{
+ register const char* e;
+
+ e = a + n;
+ for (;;)
+ {
+ if (a >= e)
+ return 0;
+ if (*a != *b)
+ break;
+ if (!*a++)
+ return 0;
+ b++;
+ }
+ if (*a == 0 && *b == '/')
+ return 1;
+ if (*a == '/' && *b == 0)
+ return -1;
+ return (a < b) ? -1 : 1;
+}
diff --git a/usr/src/lib/libast/common/string/strntod.c b/usr/src/lib/libast/common/string/strntod.c
index fb42b59fca..a9d2dc8d18 100644
--- a/usr/src/lib/libast/common/string/strntod.c
+++ b/usr/src/lib/libast/common/string/strntod.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strntol.c b/usr/src/lib/libast/common/string/strntol.c
index 0cc0af02ec..65d3e58cd1 100644
--- a/usr/src/lib/libast/common/string/strntol.c
+++ b/usr/src/lib/libast/common/string/strntol.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strntold.c b/usr/src/lib/libast/common/string/strntold.c
index 83fcb9bf4a..53f320653b 100644
--- a/usr/src/lib/libast/common/string/strntold.c
+++ b/usr/src/lib/libast/common/string/strntold.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strntoll.c b/usr/src/lib/libast/common/string/strntoll.c
index 7aa5cd48b9..08862f8798 100644
--- a/usr/src/lib/libast/common/string/strntoll.c
+++ b/usr/src/lib/libast/common/string/strntoll.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strnton.c b/usr/src/lib/libast/common/string/strnton.c
index 43129dec1b..0466c79c6d 100644
--- a/usr/src/lib/libast/common/string/strnton.c
+++ b/usr/src/lib/libast/common/string/strnton.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strntonll.c b/usr/src/lib/libast/common/string/strntonll.c
index 5ab4077f18..ed6010a9c6 100644
--- a/usr/src/lib/libast/common/string/strntonll.c
+++ b/usr/src/lib/libast/common/string/strntonll.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strntoul.c b/usr/src/lib/libast/common/string/strntoul.c
index db65fa6c60..387c52c2e3 100644
--- a/usr/src/lib/libast/common/string/strntoul.c
+++ b/usr/src/lib/libast/common/string/strntoul.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strntoull.c b/usr/src/lib/libast/common/string/strntoull.c
index 985356e2d1..89b10593ee 100644
--- a/usr/src/lib/libast/common/string/strntoull.c
+++ b/usr/src/lib/libast/common/string/strntoull.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strnvcmp.c b/usr/src/lib/libast/common/string/strnvcmp.c
new file mode 100644
index 0000000000..7a6419d375
--- /dev/null
+++ b/usr/src/lib/libast/common/string/strnvcmp.c
@@ -0,0 +1,86 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include <ast.h>
+#include <ctype.h>
+
+/*
+ * version strncmp(3)
+ */
+
+int
+strnvcmp(register const char* a, register const char* b, size_t n)
+{
+ register const char* ae;
+ register const char* be;
+ register unsigned long na;
+ register unsigned long nb;
+
+ ae = a + n;
+ be = b + n;
+ for (;;)
+ {
+ if (a >= ae)
+ {
+ if (b >= be)
+ return 0;
+ return 1;
+ }
+ else if (b >= be)
+ return -1;
+ if (isdigit(*a) && isdigit(*b))
+ {
+ na = nb = 0;
+ while (a < ae && isdigit(*a))
+ na = na * 10 + *a++ - '0';
+ while (b < be && isdigit(*b))
+ nb = nb * 10 + *b++ - '0';
+ if (na < nb)
+ return -1;
+ if (na > nb)
+ return 1;
+ }
+ else if (*a != *b)
+ break;
+ else if (!*a)
+ return 0;
+ else
+ {
+ a++;
+ b++;
+ }
+ }
+ if (*a == 0)
+ return -1;
+ if (*b == 0)
+ return 1;
+ if (*a == '.')
+ return -1;
+ if (*b == '.')
+ return 1;
+ if (*a == '-')
+ return -1;
+ if (*b == '-')
+ return 1;
+ return *a < *b ? -1 : 1;
+}
diff --git a/usr/src/lib/libast/common/string/stropt.c b/usr/src/lib/libast/common/string/stropt.c
index 9890d9f8c1..7981345519 100644
--- a/usr/src/lib/libast/common/string/stropt.c
+++ b/usr/src/lib/libast/common/string/stropt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strpcmp.c b/usr/src/lib/libast/common/string/strpcmp.c
new file mode 100644
index 0000000000..a6bcedb80d
--- /dev/null
+++ b/usr/src/lib/libast/common/string/strpcmp.c
@@ -0,0 +1,44 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include <ast.h>
+
+/*
+ * path prefix strcmp(3) -- longest first!
+ */
+
+int
+strpcmp(register const char* a, register const char* b)
+{
+ while (*a == *b)
+ {
+ if (!*a++)
+ return 0;
+ b++;
+ }
+ if (*a == 0 && *b == '/')
+ return 1;
+ if (*a == '/' && *b == 0)
+ return -1;
+ return (a < b) ? -1 : 1;
+}
diff --git a/usr/src/lib/libast/common/string/strperm.c b/usr/src/lib/libast/common/string/strperm.c
index 2eab0fadd1..84ba6498d0 100644
--- a/usr/src/lib/libast/common/string/strperm.c
+++ b/usr/src/lib/libast/common/string/strperm.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strpsearch.c b/usr/src/lib/libast/common/string/strpsearch.c
index 69affd692e..fd7deaa5fc 100644
--- a/usr/src/lib/libast/common/string/strpsearch.c
+++ b/usr/src/lib/libast/common/string/strpsearch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strsearch.c b/usr/src/lib/libast/common/string/strsearch.c
index eebe7ac192..ffee3cbfd5 100644
--- a/usr/src/lib/libast/common/string/strsearch.c
+++ b/usr/src/lib/libast/common/string/strsearch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strsort.c b/usr/src/lib/libast/common/string/strsort.c
index 54e4067d5d..a34b36af2c 100644
--- a/usr/src/lib/libast/common/string/strsort.c
+++ b/usr/src/lib/libast/common/string/strsort.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strtape.c b/usr/src/lib/libast/common/string/strtape.c
index 75fc9ae5db..d2f54c720b 100644
--- a/usr/src/lib/libast/common/string/strtape.c
+++ b/usr/src/lib/libast/common/string/strtape.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strtoi.h b/usr/src/lib/libast/common/string/strtoi.h
index 3939aa2db7..ed53ec520e 100644
--- a/usr/src/lib/libast/common/string/strtoi.h
+++ b/usr/src/lib/libast/common/string/strtoi.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -37,6 +37,7 @@
* S2I_number the signed number type
* S2I_unumber the unsigned number type
* S2I_unsigned 1 for unsigned, 0 for signed
+ * S2I_qualifier 1 for optional qualifier suffix, 0 otherwise
* S2I_multiplier 1 for optional multiplier suffix, 0 otherwise
* S2I_size the second argument is the input string size
*
@@ -425,6 +426,8 @@ S2I_function(a, e, base) const char* a; char** e; int base;
c = *(s - 1);
}
+#if S2I_qualifier
+
/*
* optional qualifier suffix
*/
@@ -461,6 +464,7 @@ S2I_function(a, e, base) const char* a; char** e; int base;
break;
}
}
+#endif
if (S2I_valid(s))
{
#if S2I_multiplier
diff --git a/usr/src/lib/libast/common/string/strtoip4.c b/usr/src/lib/libast/common/string/strtoip4.c
index 66b4eb32fe..5c36fb8443 100644
--- a/usr/src/lib/libast/common/string/strtoip4.c
+++ b/usr/src/lib/libast/common/string/strtoip4.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strtoip6.c b/usr/src/lib/libast/common/string/strtoip6.c
index bfc8a00053..4372213a91 100644
--- a/usr/src/lib/libast/common/string/strtoip6.c
+++ b/usr/src/lib/libast/common/string/strtoip6.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strton.c b/usr/src/lib/libast/common/string/strton.c
index 35410be6d8..17728d8216 100644
--- a/usr/src/lib/libast/common/string/strton.c
+++ b/usr/src/lib/libast/common/string/strton.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strtonll.c b/usr/src/lib/libast/common/string/strtonll.c
index 520ee67698..abc3bcd7a0 100644
--- a/usr/src/lib/libast/common/string/strtonll.c
+++ b/usr/src/lib/libast/common/string/strtonll.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/struid.c b/usr/src/lib/libast/common/string/struid.c
index 51c3a7b6be..864a0fa759 100644
--- a/usr/src/lib/libast/common/string/struid.c
+++ b/usr/src/lib/libast/common/string/struid.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/struniq.c b/usr/src/lib/libast/common/string/struniq.c
index 061b9169b7..7a25d93a20 100644
--- a/usr/src/lib/libast/common/string/struniq.c
+++ b/usr/src/lib/libast/common/string/struniq.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/strvcmp.c b/usr/src/lib/libast/common/string/strvcmp.c
new file mode 100644
index 0000000000..510daa2758
--- /dev/null
+++ b/usr/src/lib/libast/common/string/strvcmp.c
@@ -0,0 +1,74 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include <ast.h>
+#include <ctype.h>
+
+/*
+ * version strcmp(3)
+ */
+
+int
+strvcmp(register const char* a, register const char* b)
+{
+ register unsigned long na;
+ register unsigned long nb;
+
+ for (;;)
+ {
+ if (isdigit(*a) && isdigit(*b))
+ {
+ na = nb = 0;
+ while (isdigit(*a))
+ na = na * 10 + *a++ - '0';
+ while (isdigit(*b))
+ nb = nb * 10 + *b++ - '0';
+ if (na < nb)
+ return -1;
+ if (na > nb)
+ return 1;
+ }
+ else if (*a != *b)
+ break;
+ else if (!*a)
+ return 0;
+ else
+ {
+ a++;
+ b++;
+ }
+ }
+ if (*a == 0)
+ return -1;
+ if (*b == 0)
+ return 1;
+ if (*a == '.')
+ return -1;
+ if (*b == '.')
+ return 1;
+ if (*a == '-')
+ return -1;
+ if (*b == '-')
+ return 1;
+ return *a < *b ? -1 : 1;
+}
diff --git a/usr/src/lib/libast/common/string/swapget.c b/usr/src/lib/libast/common/string/swapget.c
index cdcdc32cb0..423d7e3e88 100644
--- a/usr/src/lib/libast/common/string/swapget.c
+++ b/usr/src/lib/libast/common/string/swapget.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/swapmem.c b/usr/src/lib/libast/common/string/swapmem.c
index 8aa02d554b..efd50f8502 100644
--- a/usr/src/lib/libast/common/string/swapmem.c
+++ b/usr/src/lib/libast/common/string/swapmem.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/swapop.c b/usr/src/lib/libast/common/string/swapop.c
index 6071dcfeee..5d25e13ca0 100644
--- a/usr/src/lib/libast/common/string/swapop.c
+++ b/usr/src/lib/libast/common/string/swapop.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/swapput.c b/usr/src/lib/libast/common/string/swapput.c
index f2669b9337..f91719dd8e 100644
--- a/usr/src/lib/libast/common/string/swapput.c
+++ b/usr/src/lib/libast/common/string/swapput.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/tok.c b/usr/src/lib/libast/common/string/tok.c
index 32dda53e90..bddee19a32 100644
--- a/usr/src/lib/libast/common/string/tok.c
+++ b/usr/src/lib/libast/common/string/tok.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/tokline.c b/usr/src/lib/libast/common/string/tokline.c
index 42c122d2f3..47391d4af1 100644
--- a/usr/src/lib/libast/common/string/tokline.c
+++ b/usr/src/lib/libast/common/string/tokline.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/string/tokscan.c b/usr/src/lib/libast/common/string/tokscan.c
index 88b8a9693f..ba4a455769 100644
--- a/usr/src/lib/libast/common/string/tokscan.c
+++ b/usr/src/lib/libast/common/string/tokscan.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmdata.c b/usr/src/lib/libast/common/tm/tmdata.c
index a71ff9041e..a6ee4f6a1c 100644
--- a/usr/src/lib/libast/common/tm/tmdata.c
+++ b/usr/src/lib/libast/common/tm/tmdata.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -93,13 +93,15 @@ static char* format[] =
"sixth", "seventh", "eighth", "ninth", "tenth",
"final", "ending", "nth",
+
+ "work", "working", "workday",
};
/*
* format[] lex type classes
*/
-static char lex[] =
+static unsigned char lex[] =
{
TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,
TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,TM_MONTH_ABBREV,
@@ -153,6 +155,8 @@ static char lex[] =
TM_ORDINALS, TM_ORDINALS, TM_ORDINALS, TM_ORDINALS, TM_ORDINALS,
TM_FINAL, TM_FINAL, TM_FINAL,
+
+ TM_WORK, TM_WORK, TM_WORK,
};
/*
@@ -185,29 +189,30 @@ static short sum[] = { 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 36
static Tm_leap_t leap[] =
{
- 1136073622, 23, /* 2005-12-31+23:59:60 UTC*/
- 915148821, 22, /* 1998-12-31+23:59:60 UTC */
- 867715220, 21, /* 1997-06-30+23:59:60 UTC */
- 820454419, 20, /* 1995-12-31+23:59:60 UTC */
- 773020818, 19, /* 1994-06-30+23:59:60 UTC */
- 741484817, 18, /* 1993-06-30+23:59:60 UTC */
- 709948816, 17, /* 1992-06-30+23:59:60 UTC */
- 662688015, 16, /* 1990-12-31+23:59:60 UTC */
- 631152014, 15, /* 1989-12-31+23:59:60 UTC */
- 567993613, 14, /* 1987-12-31+23:59:60 UTC */
- 489024012, 13, /* 1985-06-30+23:59:60 UTC */
- 425865611, 12, /* 1983-06-30+23:59:60 UTC */
- 394329610, 11, /* 1982-06-30+23:59:60 UTC */
- 362793609, 10, /* 1981-06-30+23:59:60 UTC */
- 315532808, 9, /* 1979-12-31+23:59:60 UTC */
- 283996807, 8, /* 1978-12-31+23:59:60 UTC */
- 252460806, 7, /* 1977-12-31+23:59:60 UTC */
- 220924805, 6, /* 1976-12-31+23:59:60 UTC */
- 189302404, 5, /* 1975-12-31+23:59:60 UTC */
- 157766403, 4, /* 1974-12-31+23:59:60 UTC */
- 126230402, 3, /* 1973-12-31+23:59:60 UTC */
- 94694401, 2, /* 1972-12-31+23:59:60 UTC */
- 78796800, 1, /* 1972-06-30+23:59:60 UTC */
+ 1230768023, 24, /* 2008-12-31+23:59:60-0000 */
+ 1136073622, 23, /* 2005-12-31+23:59:60-0000 */
+ 915148821, 22, /* 1998-12-31+23:59:60-0000 */
+ 867715220, 21, /* 1997-06-30+23:59:60-0000 */
+ 820454419, 20, /* 1995-12-31+23:59:60-0000 */
+ 773020818, 19, /* 1994-06-30+23:59:60-0000 */
+ 741484817, 18, /* 1993-06-30+23:59:60-0000 */
+ 709948816, 17, /* 1992-06-30+23:59:60-0000 */
+ 662688015, 16, /* 1990-12-31+23:59:60-0000 */
+ 631152014, 15, /* 1989-12-31+23:59:60-0000 */
+ 567993613, 14, /* 1987-12-31+23:59:60-0000 */
+ 489024012, 13, /* 1985-06-30+23:59:60-0000 */
+ 425865611, 12, /* 1983-06-30+23:59:60-0000 */
+ 394329610, 11, /* 1982-06-30+23:59:60-0000 */
+ 362793609, 10, /* 1981-06-30+23:59:60-0000 */
+ 315532808, 9, /* 1979-12-31+23:59:60-0000 */
+ 283996807, 8, /* 1978-12-31+23:59:60-0000 */
+ 252460806, 7, /* 1977-12-31+23:59:60-0000 */
+ 220924805, 6, /* 1976-12-31+23:59:60-0000 */
+ 189302404, 5, /* 1975-12-31+23:59:60-0000 */
+ 157766403, 4, /* 1974-12-31+23:59:60-0000 */
+ 126230402, 3, /* 1973-12-31+23:59:60-0000 */
+ 94694401, 2, /* 1972-12-31+23:59:60-0000 */
+ 78796800, 1, /* 1972-06-30+23:59:60-0000 */
0, 0, /* can reference (tl+1) */
0, 0
};
@@ -240,10 +245,10 @@ static Tm_zone_t zone[] =
"CAN", "AST", "ADT", ( 4 * 60), TM_DST, /* Atlantic */
0, "NST", 0, ( 3 * 60 + 30), 0, /* Newfoundland */
"GBR", "", "BST", ( 0 * 60), TM_DST, /* British Summer */
- "EUR", "WET", 0, ( 0 * 60), TM_DST, /* Western Eurpoean */
- 0, "CET", 0, -( 1 * 60), TM_DST, /* Central European */
- 0, "MET", 0, -( 1 * 60), TM_DST, /* Middle European */
- 0, "EET", 0, -( 2 * 60), TM_DST, /* Eastern Eurpoean */
+ "EUR", "WET", "WEST", ( 0 * 60), TM_DST, /* Western Eurpoean */
+ 0, "CET", "CEST", -( 1 * 60), TM_DST, /* Central European */
+ 0, "MET", "MEST", -( 1 * 60), TM_DST, /* Middle European */
+ 0, "EET", "EEST", -( 2 * 60), TM_DST, /* Eastern Eurpoean */
"ISR", "IST", "IDT", -( 3 * 60), TM_DST, /* Israel */
"IND", "IST", 0, -( 5 * 60 + 30 ), 0, /* India */
"CHN", "HKT", 0, -( 8 * 60), 0, /* Hong Kong */
diff --git a/usr/src/lib/libast/common/tm/tmdate.c b/usr/src/lib/libast/common/tm/tmdate.c
index ff89abe081..6cc7cfe492 100644
--- a/usr/src/lib/libast/common/tm/tmdate.c
+++ b/usr/src/lib/libast/common/tm/tmdate.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmequiv.c b/usr/src/lib/libast/common/tm/tmequiv.c
index 0a630e21bb..d1e02d1215 100644
--- a/usr/src/lib/libast/common/tm/tmequiv.c
+++ b/usr/src/lib/libast/common/tm/tmequiv.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -32,7 +32,7 @@
/*
* use one of the 14 equivalent calendar years to determine
* daylight savings time for future years beyond the range
- * of the local system (via tmxmake())
+ * of the local system (via tmxtm())
*/
static const short equiv[] =
diff --git a/usr/src/lib/libast/common/tm/tmfix.c b/usr/src/lib/libast/common/tm/tmfix.c
index 048161ea70..11ede9c817 100644
--- a/usr/src/lib/libast/common/tm/tmfix.c
+++ b/usr/src/lib/libast/common/tm/tmfix.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -28,7 +28,7 @@
*/
#include <ast.h>
-#include <tm.h>
+#include <tmx.h>
#define DAYS(p) (tm_data.days[(p)->tm_mon]+((p)->tm_mon==1&&LEAP(p)))
#define LEAP(p) (tmisleapyear((p)->tm_year))
@@ -36,7 +36,7 @@
/*
* correct out of bounds fields in tm
*
- * tm_isdst is not changed -- call tmxmake() to get that
+ * tm_isdst is not changed -- call tmxtm() to get that
*
* tm is the return value
*/
@@ -65,6 +65,16 @@ tmfix(register Tm_t* tm)
* adjust from shortest to longest units
*/
+ if ((n = tm->tm_nsec) < 0)
+ {
+ tm->tm_sec -= (TMX_RESOLUTION - n) / TMX_RESOLUTION;
+ tm->tm_nsec = TMX_RESOLUTION - (-n) % TMX_RESOLUTION;
+ }
+ else if (n >= TMX_RESOLUTION)
+ {
+ tm->tm_sec += n / TMX_RESOLUTION;
+ tm->tm_nsec %= TMX_RESOLUTION;
+ }
if ((n = tm->tm_sec) < 0)
{
tm->tm_min -= (60 - n) / 60;
diff --git a/usr/src/lib/libast/common/tm/tmfmt.c b/usr/src/lib/libast/common/tm/tmfmt.c
index 8349a814b3..bfbc87c3e1 100644
--- a/usr/src/lib/libast/common/tm/tmfmt.c
+++ b/usr/src/lib/libast/common/tm/tmfmt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmform.c b/usr/src/lib/libast/common/tm/tmform.c
index 88040a0991..b486a91a57 100644
--- a/usr/src/lib/libast/common/tm/tmform.c
+++ b/usr/src/lib/libast/common/tm/tmform.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmgoff.c b/usr/src/lib/libast/common/tm/tmgoff.c
index 51d369757e..87ccbf001d 100644
--- a/usr/src/lib/libast/common/tm/tmgoff.c
+++ b/usr/src/lib/libast/common/tm/tmgoff.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tminit.c b/usr/src/lib/libast/common/tm/tminit.c
index fc2cb58a1d..95c6da2775 100644
--- a/usr/src/lib/libast/common/tm/tminit.c
+++ b/usr/src/lib/libast/common/tm/tminit.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmleap.c b/usr/src/lib/libast/common/tm/tmleap.c
index 1bbd94289d..5738462a96 100644
--- a/usr/src/lib/libast/common/tm/tmleap.c
+++ b/usr/src/lib/libast/common/tm/tmleap.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmlex.c b/usr/src/lib/libast/common/tm/tmlex.c
index 79d4b6f75d..f63630eb58 100644
--- a/usr/src/lib/libast/common/tm/tmlex.c
+++ b/usr/src/lib/libast/common/tm/tmlex.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmlocale.c b/usr/src/lib/libast/common/tm/tmlocale.c
index 7d542d16ce..7f52fc3f2c 100644
--- a/usr/src/lib/libast/common/tm/tmlocale.c
+++ b/usr/src/lib/libast/common/tm/tmlocale.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmmake.c b/usr/src/lib/libast/common/tm/tmmake.c
index df405877dd..fd8a9ca646 100644
--- a/usr/src/lib/libast/common/tm/tmmake.c
+++ b/usr/src/lib/libast/common/tm/tmmake.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmpoff.c b/usr/src/lib/libast/common/tm/tmpoff.c
index 9f52d92bf7..6863b3924b 100644
--- a/usr/src/lib/libast/common/tm/tmpoff.c
+++ b/usr/src/lib/libast/common/tm/tmpoff.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmscan.c b/usr/src/lib/libast/common/tm/tmscan.c
index 1ef02b07f1..2118076dd3 100644
--- a/usr/src/lib/libast/common/tm/tmscan.c
+++ b/usr/src/lib/libast/common/tm/tmscan.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmsleep.c b/usr/src/lib/libast/common/tm/tmsleep.c
index 69bc893020..1fb83075ea 100644
--- a/usr/src/lib/libast/common/tm/tmsleep.c
+++ b/usr/src/lib/libast/common/tm/tmsleep.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmtime.c b/usr/src/lib/libast/common/tm/tmtime.c
index 9853a3cc15..947fefb37a 100644
--- a/usr/src/lib/libast/common/tm/tmtime.c
+++ b/usr/src/lib/libast/common/tm/tmtime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmtype.c b/usr/src/lib/libast/common/tm/tmtype.c
index fb79fbc8ab..7a6ba38939 100644
--- a/usr/src/lib/libast/common/tm/tmtype.c
+++ b/usr/src/lib/libast/common/tm/tmtype.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmweek.c b/usr/src/lib/libast/common/tm/tmweek.c
index ce3f8a46a1..fdec924c51 100644
--- a/usr/src/lib/libast/common/tm/tmweek.c
+++ b/usr/src/lib/libast/common/tm/tmweek.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmword.c b/usr/src/lib/libast/common/tm/tmword.c
index 6e8b571138..3453ac0f77 100644
--- a/usr/src/lib/libast/common/tm/tmword.c
+++ b/usr/src/lib/libast/common/tm/tmword.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmxdate.c b/usr/src/lib/libast/common/tm/tmxdate.c
index 4307be04fd..76e9cd71df 100644
--- a/usr/src/lib/libast/common/tm/tmxdate.c
+++ b/usr/src/lib/libast/common/tm/tmxdate.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -38,6 +38,8 @@
#define dig3(s,n) ((n)=((*(s)++)-'0')*100,(n)+=((*(s)++)-'0')*10,(n)+=(*(s)++)-'0')
#define dig4(s,n) ((n)=((*(s)++)-'0')*1000,(n)+=((*(s)++)-'0')*100,(n)+=((*(s)++)-'0')*10,(n)+=(*(s)++)-'0')
+#undef BREAK
+
#define BREAK (1<<0)
#define CCYYMMDDHHMMSS (1<<1)
#define CRON (1<<2)
@@ -56,9 +58,12 @@
#define SECOND (1<<15)
#define THIS (1L<<16)
#define WDAY (1L<<17)
-#define YEAR (1L<<18)
-#define ZONE (1L<<19)
+#define WORK (1L<<18)
+#define YEAR (1L<<19)
+#define ZONE (1L<<20)
+#define FFMT "%s%s%s%s%s%s%s|"
+#define FLAGS(f) (f&EXACT)?"|EXACT":"",(f&LAST)?"|LAST":"",(f&THIS)?"|THIS":"",(f&NEXT)?"|NEXT":"",(f&ORDINAL)?"|ORDINAL":"",(f&FINAL)?"|FINAL":"",(f&WORK)?"|WORK":""
/*
* parse cron range into set
* return: -1:error 0:* 1:some
@@ -112,6 +117,36 @@ range(register char* s, char** e, char* set, int lo, int hi)
}
/*
+ * normalize <p,q> to power of 10 u in tm
+ */
+
+static void
+powerize(Tm_t* tm, unsigned long p, unsigned long q, unsigned long u)
+{
+ Time_t t = p;
+
+ while (q > u)
+ {
+ q /= 10;
+ t /= 10;
+ }
+ while (q < u)
+ {
+ q *= 10;
+ t *= 10;
+ }
+ tm->tm_nsec += (int)(t % TMX_RESOLUTION);
+ tm->tm_sec += (int)(t / TMX_RESOLUTION);
+}
+
+#define K1(c1) (c1)
+#define K2(c1,c2) (((c1)<<8)|(c2))
+#define K3(c1,c2,c3) (((c1)<<16)|((c2)<<8)|(c3))
+#define K4(c1,c2,c3,c4) (((c1)<<24)|((c2)<<16)|((c3)<<8)|(c4))
+
+#define P_INIT(n) w = n; p = q = 0; u = (char*)s + 1
+
+/*
* parse date expression in s and return Time_t value
*
* if non-null, e points to the first invalid sequence in s
@@ -130,6 +165,7 @@ tmxdate(register const char* s, char** e, Time_t now)
Time_t fix;
char* t;
char* u;
+ const char* o;
const char* x;
char* last;
char* type;
@@ -144,16 +180,17 @@ tmxdate(register const char* s, char** e, Time_t now)
int k;
int l;
long m;
- long p;
- long q;
+ unsigned long p;
+ unsigned long q;
Tm_zone_t* zp;
+ Tm_t ts;
char skip[UCHAR_MAX + 1];
/*
* check DATEMSK first
*/
- debug((error(-1, "AHA tmxdate 2008-05-22")));
+ debug((error(-1, "AHA tmxdate 2009-03-06")));
fix = tmxscan(s, &last, NiL, &t, now, 0);
if (t && !*last)
{
@@ -161,6 +198,7 @@ tmxdate(register const char* s, char** e, Time_t now)
*e = last;
return fix;
}
+ o = s;
reset:
@@ -168,9 +206,10 @@ tmxdate(register const char* s, char** e, Time_t now)
* use now for defaults
*/
- tm = tmxmake(now);
- tm_info.date = tm_info.zone;
+ tm = tmxtm(&ts, now, NiL);
+ tm_info.date = tm->tm_zone;
day = -1;
+ dir = 0;
dst = TM_DST;
set = state = 0;
type = 0;
@@ -183,12 +222,13 @@ tmxdate(register const char* s, char** e, Time_t now)
* get <weekday year month day hour minutes seconds ?[ds]t [ap]m>
*/
+ again:
for (;;)
{
state &= (state & HOLD) ? ~(HOLD) : ~(EXACT|LAST|NEXT|THIS);
if ((set|state) & (YEAR|MONTH|DAY))
skip['/'] = 1;
- message((-1, "AHA#%d state=%s%s%s%s| set=%s%s%s%s|", __LINE__, (state & EXACT) ? "|EXACT" : "", (state & LAST) ? "|LAST" : "", (state & THIS) ? "|THIS" : "", (state & NEXT) ? "|NEXT" : "", (set & EXACT) ? "|EXACT" : "", (set & LAST) ? "|LAST" : "", (set & THIS) ? "|THIS" : "", (set & NEXT) ? "|NEXT" : ""));
+ message((-1, "AHA#%d state=" FFMT " set=" FFMT, __LINE__, FLAGS(state), FLAGS(set)));
for (;;)
{
if (*s == '.' || *s == '-' || *s == '+')
@@ -234,6 +274,232 @@ tmxdate(register const char* s, char** e, Time_t now)
}
break;
}
+ if ((*s == 'P' || *s == 'p') && (!isalpha(*(s + 1)) || (*(s + 1) == 'T' || *(s + 1) == 't') && !isalpha(*(s + 2))))
+ {
+ Tm_t otm;
+
+ /*
+ * iso duration
+ */
+
+ otm = *tm;
+ t = (char*)s;
+ m = 0;
+ P_INIT('Y');
+ do
+ {
+ c = *++s;
+ duration_next:
+ switch (c)
+ {
+ case 0:
+ m++;
+ if ((char*)s > u)
+ {
+ s--;
+ c = '_';
+ goto duration_next;
+ }
+ break;
+ case 'T':
+ case 't':
+ m++;
+ if ((char*)s > u)
+ {
+ s++;
+ c = 'D';
+ goto duration_next;
+ }
+ continue;
+ case 'Y':
+ case 'y':
+ m = 0;
+ if (q > 1)
+ tm->tm_sec += (365L*24L*60L*60L) * p / q;
+ else
+ tm->tm_year += p;
+ P_INIT('M');
+ continue;
+ case 'm':
+ if (!m)
+ m = 1;
+ /*FALLTHROUGH*/
+ case 'M':
+ switch (*(s + 1))
+ {
+ case 'I':
+ case 'i':
+ s++;
+ m = 1;
+ w = 'S';
+ break;
+ case 'O':
+ case 'o':
+ s++;
+ m = 0;
+ w = 'H';
+ break;
+ case 'S':
+ case 's':
+ s++;
+ m = 2;
+ w = 's';
+ break;
+ }
+ switch (m)
+ {
+ case 0:
+ m = 1;
+ if (q > 1)
+ tm->tm_sec += (3042L*24L*60L*60L) * p / q / 100L;
+ else
+ tm->tm_mon += p;
+ break;
+ case 1:
+ m = 2;
+ if (q > 1)
+ tm->tm_sec += (60L) * p / q;
+ else
+ tm->tm_min += p;
+ break;
+ default:
+ if (q > 1)
+ powerize(tm, p, q, 1000UL);
+ else
+ tm->tm_nsec += p * 1000000L;
+ break;
+ }
+ P_INIT(w);
+ continue;
+ case 'W':
+ case 'w':
+ m = 0;
+ if (q > 1)
+ tm->tm_sec += (7L*24L*60L*60L) * p / q;
+ else
+ tm->tm_mday += 7 * p;
+ P_INIT('D');
+ continue;
+ case 'D':
+ case 'd':
+ m = 0;
+ if (q > 1)
+ tm->tm_sec += (24L*60L*60L) * p / q;
+ else
+ tm->tm_mday += p;
+ P_INIT('H');
+ continue;
+ case 'H':
+ case 'h':
+ m = 1;
+ if (q > 1)
+ tm->tm_sec += (60L*60L) * p / q;
+ else
+ tm->tm_hour += p;
+ P_INIT('m');
+ continue;
+ case 'S':
+ case 's':
+ m = 2;
+ /*FALLTHROUGH*/
+ case ' ':
+ case '_':
+ case '\n':
+ case '\r':
+ case '\t':
+ case '\v':
+ if (q > 1)
+ powerize(tm, p, q, 1000000000UL);
+ else
+ tm->tm_sec += p;
+ P_INIT('U');
+ continue;
+ case 'U':
+ case 'u':
+ switch (*(s + 1))
+ {
+ case 'S':
+ case 's':
+ s++;
+ break;
+ }
+ m = 0;
+ if (q > 1)
+ powerize(tm, p, q, 1000000UL);
+ else
+ tm->tm_nsec += p * 1000L;
+ P_INIT('N');
+ continue;
+ case 'N':
+ case 'n':
+ switch (*(s + 1))
+ {
+ case 'S':
+ case 's':
+ s++;
+ break;
+ }
+ m = 0;
+ if (q > 1)
+ powerize(tm, p, q, 1000000000UL);
+ else
+ tm->tm_nsec += p;
+ P_INIT('Y');
+ continue;
+ case '.':
+ if (q)
+ goto exact;
+ q = 1;
+ continue;
+ case '-':
+ c = 'M';
+ u = (char*)s++;
+ while (*++u && *u != ':')
+ if (*u == '-')
+ {
+ c = 'Y';
+ break;
+ }
+ goto duration_next;
+ case ':':
+ c = 'm';
+ u = (char*)s++;
+ while (*++u)
+ if (*u == ':')
+ {
+ c = 'H';
+ break;
+ }
+ goto duration_next;
+ case '0':
+ case '1':
+ case '2':
+ case '3':
+ case '4':
+ case '5':
+ case '6':
+ case '7':
+ case '8':
+ case '9':
+ q *= 10;
+ p = p * 10 + (c - '0');
+ continue;
+ default:
+ exact:
+ *tm = otm;
+ s = (const char*)t + 1;
+ if (*t == 'p')
+ {
+ state |= HOLD|EXACT;
+ set &= ~(EXACT|LAST|NEXT|THIS);
+ set |= state & (EXACT|LAST|NEXT|THIS);
+ }
+ goto again;
+ }
+ break;
+ } while (c);
+ continue;
+ }
f = -1;
if (*s == '+')
{
@@ -369,7 +635,7 @@ tmxdate(register const char* s, char** e, Time_t now)
if (flags & (MONTH|MDAY|WDAY))
{
fix = tmxtime(tm, zone);
- tm = tmxmake(fix);
+ tm = tmxtm(tm, fix, tm->tm_zone);
i = tm->tm_mon + 1;
j = tm->tm_mday;
k = tm->tm_wday;
@@ -387,7 +653,7 @@ tmxdate(register const char* s, char** e, Time_t now)
tt = tmxtime(tm, zone);
if (tt < fix)
goto done;
- tm = tmxmake(tt);
+ tm = tmxtm(tm, tt, tm->tm_zone);
i = tm->tm_mon + 1;
j = tm->tm_mday;
k = tm->tm_wday;
@@ -408,7 +674,7 @@ tmxdate(register const char* s, char** e, Time_t now)
{
tm->tm_mon = i - 1;
tm->tm_mday = j;
- tm = tmxmake(tmxtime(tm, zone));
+ tm = tmxtm(tm, tmxtime(tm, zone), tm->tm_zone);
i = tm->tm_mon + 1;
j = tm->tm_mday;
k = tm->tm_wday;
@@ -559,7 +825,8 @@ tmxdate(register const char* s, char** e, Time_t now)
}
else
n = -1;
- message((-1, "AHA#%d f=%d n=%d", __LINE__, f, n));
+ dir = f;
+ message((-1, "AHA#%d f=%d n=%d state=" FFMT, __LINE__, f, n, FLAGS(state)));
}
else
{
@@ -613,6 +880,8 @@ tmxdate(register const char* s, char** e, Time_t now)
}
else
dig4(s, m);
+ if (m < 1969 || m >= 3000)
+ break;
m -= 1900;
}
else if (i == 10)
@@ -805,353 +1074,481 @@ tmxdate(register const char* s, char** e, Time_t now)
else
break;
}
- if (isalpha(*s) && n < 1000)
+ if (isalpha(*s))
{
- if ((j = tmlex(s, &t, tm_info.format, TM_NFORM, tm_info.format + TM_SUFFIXES, TM_PARTS - TM_SUFFIXES)) >= 0)
+ if (n > 0)
{
- s = t;
- switch (tm_data.lex[j])
+ x = s;
+ q = *s++;
+ if (isalpha(*s))
+ {
+ q <<= 8;
+ q |= *s++;
+ if (isalpha(*s))
+ {
+ if (tmlex(s, &t, tm_info.format + TM_SUFFIXES, TM_PARTS - TM_SUFFIXES, NiL, 0) >= 0)
+ s = t;
+ if (isalpha(*s))
+ {
+ q <<= 8;
+ q |= *s++;
+ if (isalpha(*s))
+ {
+ q <<= 8;
+ q |= *s++;
+ if (isalpha(*s))
+ q = 0;
+ }
+ }
+ }
+ }
+ switch (q)
{
- case TM_EXACT:
- state |= HOLD|EXACT;
- set &= ~(EXACT|LAST|NEXT|THIS);
- set |= state & (EXACT|LAST|NEXT|THIS);
+ case K1('y'):
+ case K1('Y'):
+ case K2('y','r'):
+ case K2('Y','R'):
+ tm->tm_year += n;
+ set |= YEAR;
continue;
- case TM_LAST:
- state |= HOLD|LAST;
- set &= ~(EXACT|LAST|NEXT|THIS);
- set |= state & (EXACT|LAST|NEXT|THIS);
+ case K1('M'):
+ case K2('m','o'):
+ case K2('M','O'):
+ tm->tm_mon += n;
+ set |= MONTH;
continue;
- case TM_THIS:
- state |= HOLD|THIS;
- set &= ~(EXACT|LAST|NEXT|THIS);
- set |= state & (EXACT|LAST|NEXT|THIS);
- n = 0;
+ case K1('w'):
+ case K1('W'):
+ case K2('w','k'):
+ case K2('W','K'):
+ tm->tm_mday += n * 7;
+ set |= DAY;
continue;
- case TM_NEXT:
- /*
- * disambiguate english "last ... in"
- */
-
- if (!((state|set) & LAST))
+ case K1('d'):
+ case K1('D'):
+ case K2('d','a'):
+ case K2('d','y'):
+ case K2('D','A'):
+ case K2('D','Y'):
+ tm->tm_mday += n;
+ set |= DAY;
+ continue;
+ case K1('h'):
+ case K1('H'):
+ case K2('h','r'):
+ case K2('H','R'):
+ tm->tm_hour += n;
+ set |= HOUR;
+ continue;
+ case K1('m'):
+ case K2('m','n'):
+ case K2('M','N'):
+ tm->tm_min += n;
+ set |= MINUTE;
+ continue;
+ case K1('s'):
+ case K2('s','c'):
+ case K1('S'):
+ case K2('S','C'):
+ tm->tm_sec += n;
+ set |= SECOND;
+ continue;
+ case K2('m','s'):
+ case K3('m','s','c'):
+ case K4('m','s','e','c'):
+ case K2('M','S'):
+ case K3('M','S','C'):
+ case K4('M','S','E','C'):
+ tm->tm_nsec += n * 1000000L;
+ continue;
+ case K1('u'):
+ case K2('u','s'):
+ case K3('u','s','c'):
+ case K4('u','s','e','c'):
+ case K1('U'):
+ case K2('U','S'):
+ case K3('U','S','C'):
+ case K4('U','S','E','C'):
+ tm->tm_nsec += n * 1000L;
+ continue;
+ case K2('n','s'):
+ case K3('n','s','c'):
+ case K4('n','s','e','c'):
+ case K2('N','S'):
+ case K3('N','S','C'):
+ case K4('N','S','E','C'):
+ tm->tm_nsec += n;
+ continue;
+ }
+ s = x;
+ }
+ if (n < 1000)
+ {
+ if ((j = tmlex(s, &t, tm_info.format, TM_NFORM, tm_info.format + TM_SUFFIXES, TM_PARTS - TM_SUFFIXES)) >= 0)
+ {
+ s = t;
+ switch (tm_data.lex[j])
{
- state |= HOLD|NEXT;
+ case TM_EXACT:
+ state |= HOLD|EXACT;
set &= ~(EXACT|LAST|NEXT|THIS);
set |= state & (EXACT|LAST|NEXT|THIS);
continue;
- }
- /*FALLTHROUGH*/
- case TM_FINAL:
- state |= HOLD|THIS|FINAL;
- set &= ~(EXACT|LAST|NEXT|THIS);
- set |= state & (EXACT|LAST|NEXT|THIS|FINAL);
- continue;
- case TM_ORDINAL:
- j += TM_ORDINALS - TM_ORDINAL;
- message((-1, "AHA#%d j=%d", __LINE__, j));
- /*FALLTHROUGH*/
- case TM_ORDINALS:
- n = j - TM_ORDINALS + 1;
- message((-1, "AHA#%d n=%d", __LINE__, n));
- goto ordinal;
- case TM_MERIDIAN:
- if (f >= 0)
- f++;
- else if (state & LAST)
- f = -1;
- else if (state & THIS)
- f = 1;
- else if (state & NEXT)
- f = 2;
- else
- f = 0;
- if (n > 0)
- {
- if (n > 24)
- goto done;
- tm->tm_hour = n;
- }
- for (k = tm->tm_hour; k < 0; k += 24);
- k %= 24;
- if (j == TM_MERIDIAN)
- {
- if (k == 12)
- tm->tm_hour -= 12;
- }
- else if (k < 12)
- tm->tm_hour += 12;
- if (n > 0)
- goto clear_min;
- continue;
- case TM_DAY_ABBREV:
- j += TM_DAY - TM_DAY_ABBREV;
- /*FALLTHROUGH*/
- case TM_DAY:
- case TM_PARTS:
- case TM_HOURS:
- state |= set & (EXACT|LAST|NEXT|THIS);
- if (!(state & (LAST|NEXT|THIS)))
- for (;;)
+ case TM_LAST:
+ state |= HOLD|LAST;
+ set &= ~(EXACT|LAST|NEXT|THIS);
+ set |= state & (EXACT|LAST|NEXT|THIS);
+ continue;
+ case TM_THIS:
+ state |= HOLD|THIS;
+ set &= ~(EXACT|LAST|NEXT|THIS);
+ set |= state & (EXACT|LAST|NEXT|THIS);
+ n = 0;
+ continue;
+ case TM_NEXT:
+ /*
+ * disambiguate english "last ... in"
+ */
+
+ if (!((state|set) & LAST))
{
- while (skip[*s])
- s++;
- if ((k = tmlex(s, &t, tm_info.format + TM_LAST, TM_NOISE - TM_LAST, NiL, 0)) >= 0)
+ state |= HOLD|NEXT;
+ set &= ~(EXACT|LAST|NEXT|THIS);
+ set |= state & (EXACT|LAST|NEXT|THIS);
+ continue;
+ }
+ /*FALLTHROUGH*/
+ case TM_FINAL:
+ state |= HOLD|THIS|FINAL;
+ set &= ~(EXACT|LAST|NEXT|THIS);
+ set |= state & (EXACT|LAST|NEXT|THIS|FINAL);
+ continue;
+ case TM_WORK:
+ message((-1, "AHA#%d WORK", __LINE__));
+ state |= WORK;
+ set |= DAY;
+ if (state & LAST)
+ {
+ state &= ~LAST;
+ set &= ~LAST;
+ state |= FINAL;
+ set |= FINAL;
+ }
+ goto clear_hour;
+ case TM_ORDINAL:
+ j += TM_ORDINALS - TM_ORDINAL;
+ message((-1, "AHA#%d j=%d", __LINE__, j));
+ /*FALLTHROUGH*/
+ case TM_ORDINALS:
+ n = j - TM_ORDINALS + 1;
+ message((-1, "AHA#%d n=%d", __LINE__, n));
+ goto ordinal;
+ case TM_MERIDIAN:
+ if (f >= 0)
+ f++;
+ else if (state & LAST)
+ f = -1;
+ else if (state & THIS)
+ f = 1;
+ else if (state & NEXT)
+ f = 2;
+ else
+ f = 0;
+ if (n > 0)
+ {
+ if (n > 24)
+ goto done;
+ tm->tm_hour = n;
+ }
+ for (k = tm->tm_hour; k < 0; k += 24);
+ k %= 24;
+ if (j == TM_MERIDIAN)
+ {
+ if (k == 12)
+ tm->tm_hour -= 12;
+ }
+ else if (k < 12)
+ tm->tm_hour += 12;
+ if (n > 0)
+ goto clear_min;
+ continue;
+ case TM_DAY_ABBREV:
+ j += TM_DAY - TM_DAY_ABBREV;
+ /*FALLTHROUGH*/
+ case TM_DAY:
+ case TM_PARTS:
+ case TM_HOURS:
+ state |= set & (EXACT|LAST|NEXT|THIS);
+ if (!(state & (LAST|NEXT|THIS)))
+ for (;;)
{
- s = t;
- if (k <= 2)
- state |= LAST;
- else if (k <= 5)
- state |= THIS;
- else if (k <= 8)
- state |= NEXT;
+ while (skip[*s])
+ s++;
+ if ((k = tmlex(s, &t, tm_info.format + TM_LAST, TM_NOISE - TM_LAST, NiL, 0)) >= 0)
+ {
+ s = t;
+ if (k <= 2)
+ state |= LAST;
+ else if (k <= 5)
+ state |= THIS;
+ else if (k <= 8)
+ state |= NEXT;
+ else
+ state |= EXACT;
+ }
else
- state |= EXACT;
+ {
+ state |= (n > 0) ? NEXT : THIS;
+ break;
+ }
+ set &= ~(EXACT|LAST|NEXT|THIS);
+ set |= state & (EXACT|LAST|NEXT|THIS);
}
- else
+ /*FALLTHROUGH*/
+ case TM_DAYS:
+ message((-1, "AHA#%d n=%d j=%d f=%d state=" FFMT, __LINE__, n, j, f, FLAGS(state)));
+ if (n == -1)
+ {
+ /*
+ * disambiguate english "second"
+ */
+
+ if (j == TM_PARTS && f == -1)
{
- state |= (n > 0) ? NEXT : THIS;
- break;
+ state &= ~(LAST|NEXT|THIS|ORDINAL); /*AHA*/
+ n = 2;
+ goto ordinal;
}
- set &= ~(EXACT|LAST|NEXT|THIS);
- set |= state & (EXACT|LAST|NEXT|THIS);
+ n = 1;
}
- /*FALLTHROUGH*/
- case TM_DAYS:
- message((-1, "AHA#%d n=%d j=%d f=%d state=%s%s%s%s|", __LINE__, n, j, f, (state & EXACT) ? "|EXACT" : "", (state & LAST) ? "|LAST" : "", (state & THIS) ? "|THIS" : "", (state & NEXT) ? "|NEXT" : ""));
- if (n == -1)
- {
+
/*
- * disambiguate english "second"
+ * disambiguate "last" vs. { "previous" "final" }
*/
- if (j == TM_PARTS && f == -1)
+ while (isspace(*s))
+ s++;
+ message((-1, "AHA#%d disambiguate LAST s='%s'", __LINE__, s));
+ if ((k = tmlex(s, &t, tm_info.format + TM_NEXT, TM_EXACT - TM_NEXT, NiL, 0)) >= 0 || (k = tmlex(s, &t, tm_info.format + TM_PARTS + 3, 1, NiL, 0)) >= 0)
{
- state &= ~(LAST|NEXT|THIS|ORDINAL); /*AHA*/
- n = 2;
- goto ordinal;
+ s = t;
+ if (state & LAST)
+ {
+ state &= ~LAST;
+ set &= ~LAST;
+ state |= FINAL;
+ set |= FINAL;
+ message((-1, "AHA#%d LAST => FINAL", __LINE__));
+ }
+ else
+ state &= ~(THIS|NEXT);
}
- n = 1;
- }
-
- /*
- * disambiguate "last" vs. { "previous" "final" }
- */
-
- while (isspace(*s))
- s++;
- message((-1, "AHA#%d disambiguate LAST s='%s'", __LINE__, s));
- if ((k = tmlex(s, &t, tm_info.format + TM_NEXT, TM_EXACT - TM_NEXT, NiL, 0)) >= 0)
- {
- s = t;
+ message((-1, "AHA#%d disambiguate LAST k=%d", __LINE__, k));
if (state & LAST)
+ n = -n;
+ else if (!(state & NEXT))
+ n--;
+ m = (f > 0) ? f * n : n;
+ message((-1, "AHA#%d f=%d n=%d i=%d j=%d k=%d l=%d m=%d state=" FFMT, __LINE__, f, n, i, j, k, l, m, FLAGS(state)));
+ switch (j)
{
- state &= ~LAST;
- set &= ~LAST;
- state |= FINAL;
- set |= FINAL;
- message((-1, "AHA#%d LAST => FINAL", __LINE__));
+ case TM_DAYS+0:
+ tm->tm_mday--;
+ set |= DAY;
+ goto clear_hour;
+ case TM_DAYS+1:
+ set |= DAY;
+ goto clear_hour;
+ case TM_DAYS+2:
+ tm->tm_mday++;
+ set |= DAY;
+ goto clear_hour;
+ case TM_PARTS+0:
+ set |= SECOND;
+ if ((m < 0 ? -m : m) > (365L*24L*60L*60L))
+ {
+ now = tmxtime(tm, zone) + tmxsns(m, 0);
+ goto reset;
+ }
+ tm->tm_sec += m;
+ goto clear_nsec;
+ case TM_PARTS+1:
+ tm->tm_min += m;
+ set |= MINUTE;
+ goto clear_sec;
+ case TM_PARTS+2:
+ tm->tm_hour += m;
+ set |= MINUTE;
+ goto clear_min;
+ case TM_PARTS+3:
+ message((-1, "AHA#%d DAY m=%d n=%d%s", __LINE__, m, n, (state & LAST) ? " LAST" : ""));
+ if ((state & (LAST|NEXT|THIS)) == LAST)
+ tm->tm_mday = tm_data.days[tm->tm_mon] + (tm->tm_mon == 1 && tmisleapyear(tm->tm_year));
+ else if (state & ORDINAL)
+ tm->tm_mday = m + 1;
+ else
+ tm->tm_mday += m;
+ if (!(set & (FINAL|WORK)))
+ set |= HOUR;
+ goto clear_hour;
+ case TM_PARTS+4:
+ tm = tmxtm(tm, tmxtime(tm, zone), tm->tm_zone);
+ tm->tm_mday += 7 * m - tm->tm_wday + 1;
+ set |= DAY;
+ goto clear_hour;
+ case TM_PARTS+5:
+ tm->tm_mon += m;
+ set |= MONTH;
+ goto clear_mday;
+ case TM_PARTS+6:
+ tm->tm_year += m;
+ goto clear_mon;
+ case TM_HOURS+0:
+ tm->tm_mday += m;
+ set |= DAY;
+ goto clear_hour;
+ case TM_HOURS+1:
+ tm->tm_mday += m;
+ tm->tm_hour = 6;
+ set |= HOUR;
+ goto clear_min;
+ case TM_HOURS+2:
+ tm->tm_mday += m;
+ tm->tm_hour = 12;
+ set |= HOUR;
+ goto clear_min;
+ case TM_HOURS+3:
+ tm->tm_mday += m;
+ tm->tm_hour = 18;
+ set |= HOUR;
+ goto clear_min;
}
- else
- state &= ~(THIS|NEXT);
- }
- message((-1, "AHA#%d disambiguate LAST k=%d", __LINE__, k));
- if (state & LAST)
- n = -n;
- else if (!(state & NEXT))
- n--;
- m = (f > 0) ? f * n : n;
- message((-1, "AHA#%d f=%d n=%d i=%d j=%d k=%d l=%d m=%d state=%s%s%s%s|", __LINE__, f, n, i, j, k, l, m, (state & EXACT) ? "|EXACT" : "", (state & LAST) ? "|LAST" : "", (state & THIS) ? "|THIS" : "", (state & NEXT) ? "|NEXT" : ""));
- switch (j)
- {
- case TM_DAYS+0:
- tm->tm_mday--;
- set |= DAY;
- goto clear_hour;
- case TM_DAYS+1:
- set |= DAY;
- goto clear_hour;
- case TM_DAYS+2:
- tm->tm_mday++;
- set |= DAY;
- goto clear_hour;
- case TM_PARTS+0:
- set |= SECOND;
- if ((m < 0 ? -m : m) > (365L*24L*60L*60L))
+ if (m >= 0 && (state & ORDINAL))
+ tm->tm_mday = 1;
+ tm = tmxtm(tm, tmxtime(tm, zone), tm->tm_zone);
+ day = j -= TM_DAY;
+ if (!dir)
+ dir = m;
+ message((-1, "AHA#%d j=%d m=%d", __LINE__, j, m));
+ j -= tm->tm_wday;
+ message((-1, "AHA#%d mday=%d wday=%d day=%d dir=%d f=%d i=%d j=%d l=%d m=%d", __LINE__, tm->tm_mday, tm->tm_wday, day, dir, f, i, j, l, m));
+ if (state & (LAST|NEXT|THIS))
{
- now = tmxtime(tm, zone) + tmxsns(m, 0);
- goto reset;
+ if (state & ORDINAL)
+ {
+ while (isspace(*s))
+ s++;
+ if (isdigit(*s) || tmlex(s, &t, tm_info.format, TM_DAY_ABBREV, NiL, 0) >= 0)
+ {
+ state &= ~(LAST|NEXT|THIS);
+ goto clear_hour;
+ }
+ }
+ if (j < 0)
+ j += 7;
}
- tm->tm_sec += m;
- goto clear_nsec;
- case TM_PARTS+1:
- tm->tm_min += m;
- set |= MINUTE;
- goto clear_sec;
- case TM_PARTS+2:
- tm->tm_hour += m;
- set |= MINUTE;
- goto clear_min;
- case TM_PARTS+3:
- tm->tm_mday += m;
- if (!(set & FINAL))
- set |= HOUR;
- goto clear_hour;
- case TM_PARTS+4:
- tm = tmxmake(tmxtime(tm, zone));
- tm->tm_mday += 7 * m - tm->tm_wday + 1;
+ else if (j > 0)
+ j -= 7;
+ message((-1, "AHA#%d day=%d mday=%d f=%d m=%d j=%d state=" FFMT, __LINE__, day, tm->tm_mday, f, m, j, FLAGS(state)));
set |= DAY;
- goto clear_hour;
- case TM_PARTS+5:
- tm->tm_mon += m;
- set |= MONTH;
- goto clear_mday;
- case TM_PARTS+6:
- tm->tm_year += m;
- goto clear_mon;
- case TM_HOURS+0:
- tm->tm_mday += m;
- set |= DAY;
- goto clear_hour;
- case TM_HOURS+1:
- tm->tm_mday += m;
- tm->tm_hour = 6;
- set |= HOUR;
- goto clear_min;
- case TM_HOURS+2:
- tm->tm_mday += m;
- tm->tm_hour = 12;
- set |= HOUR;
- goto clear_min;
- case TM_HOURS+3:
- tm->tm_mday += m;
- tm->tm_hour = 18;
- set |= HOUR;
- goto clear_min;
- }
- if (m >= 0 && (state & ORDINAL))
- tm->tm_mday = 1;
- tm = tmxmake(tmxtime(tm, zone));
- day = j -= TM_DAY;
- dir = m;
- message((-1, "AHA#%d j=%d m=%d", __LINE__, j, m));
- j -= tm->tm_wday;
- message((-1, "AHA#%d mday=%d wday=%d day=%d dir=%d f=%d i=%d j=%d l=%d m=%d", __LINE__, tm->tm_mday, tm->tm_wday, day, dir, f, i, j, l, m));
- if (state & (LAST|NEXT|THIS))
- {
- if (state & ORDINAL)
+ if (set & (FINAL|WORK))
+ goto clear_hour;
+ else if (state & (LAST|NEXT|THIS))
{
- while (isspace(*s))
+ if (f >= 0)
+ day = -1;
+ else if (m > 0 && (state & (NEXT|YEAR|MONTH)) == NEXT && j >= 0)
+ m--;
+ tm->tm_mday += j + m * 7;
+ set &= ~(LAST|NEXT|THIS|ORDINAL); /*AHA*/
+ state &= ~(LAST|NEXT|THIS|ORDINAL); /*AHA*/
+ if (!(state & EXACT))
+ goto clear_hour;
+ }
+ continue;
+ case TM_MONTH_ABBREV:
+ j += TM_MONTH - TM_MONTH_ABBREV;
+ /*FALLTHROUGH*/
+ case TM_MONTH:
+ if (state & MONTH)
+ goto done;
+ state |= MONTH;
+ i = tm->tm_mon;
+ tm->tm_mon = j - TM_MONTH;
+ if (n < 0)
+ {
+ while (skip[*s])
s++;
- if (isdigit(*s) || tmlex(s, &t, tm_info.format, TM_DAY_ABBREV, NiL, 0) >= 0)
+ if (isdigit(*s))
{
- state &= ~(LAST|NEXT|THIS);
- goto clear_hour;
+ n = strtol(s, &t, 10);
+ if (n <= 31 && *t != ':')
+ s = t;
+ else
+ n = -1;
}
}
- if (j < 0)
- j += 7;
- }
- else if (j > 0)
- j -= 7;
- message((-1, "AHA#%d day=%d mday=%d f=%d m=%d j=%d state=%s%s%s%s|", __LINE__, day, tm->tm_mday, f, m, j, (state & EXACT) ? "|EXACT" : "", (state & LAST) ? "|LAST" : "", (state & THIS) ? "|THIS" : "", (state & NEXT) ? "|NEXT" : ""));
- set |= DAY;
- if (set & FINAL)
- goto clear_hour;
- else if (state & (LAST|NEXT|THIS))
- {
- if (f >= 0)
- day = -1;
- else if (m > 0 && (state & (NEXT|YEAR|MONTH)) == NEXT && j >= 0)
- m--;
- tm->tm_mday += j + m * 7;
- set &= ~(LAST|NEXT|THIS|ORDINAL); /*AHA*/
- state &= ~(LAST|NEXT|THIS|ORDINAL); /*AHA*/
- if (!(state & EXACT))
- goto clear_hour;
- }
- continue;
- case TM_MONTH_ABBREV:
- j += TM_MONTH - TM_MONTH_ABBREV;
- /*FALLTHROUGH*/
- case TM_MONTH:
- if (state & MONTH)
- goto done;
- state |= MONTH;
- i = tm->tm_mon;
- tm->tm_mon = j - TM_MONTH;
- if (n < 0)
- {
- while (skip[*s])
- s++;
- if (isdigit(*s))
+ if (n >= 0)
{
- n = strtol(s, &t, 10);
- if (n <= 31 && *t != ':')
- s = t;
- else
- n = -1;
+ if (n > 31)
+ goto done;
+ state |= DAY|MDAY;
+ tm->tm_mday = n;
+ if (f > 0)
+ tm->tm_year += f;
}
- }
- if (n >= 0)
- {
- if (n > 31)
+ if (state & (LAST|NEXT|THIS))
+ {
+ n = i;
+ goto rel_month;
+ }
+ continue;
+ case TM_UT:
+ if (state & ZONE)
goto done;
- state |= DAY|MDAY;
- tm->tm_mday = n;
- if (f > 0)
- tm->tm_year += f;
- }
- if (state & (LAST|NEXT|THIS))
- {
- n = i;
- goto rel_month;
- }
- continue;
- case TM_UT:
- if (state & ZONE)
- goto done;
- state |= ZONE;
- zone = tmgoff(s, &t, 0);
- s = t;
- continue;
- case TM_DT:
- if (!dst)
- goto done;
- if (!(state & ZONE))
- {
- dst = tm_info.zone->dst;
- zone = tm_info.zone->west;
+ state |= ZONE;
+ zone = tmgoff(s, &t, 0);
+ s = t;
+ continue;
+ case TM_DT:
+ if (!dst)
+ goto done;
+ if (!(state & ZONE))
+ {
+ dst = tm->tm_zone->dst;
+ zone = tm->tm_zone->west;
+ }
+ zone += tmgoff(s, &t, dst);
+ s = t;
+ dst = 0;
+ state |= ZONE;
+ continue;
+ case TM_NOISE:
+ continue;
}
- zone += tmgoff(s, &t, dst);
+ }
+ if (!(state & ZONE) && (zp = tmzone(s, &t, type, &dst)))
+ {
s = t;
- dst = 0;
+ zone = zp->west + dst;
+ tm_info.date = zp;
state |= ZONE;
- continue;
- case TM_NOISE:
- continue;
+ if (n < 0)
+ continue;
}
+ else if (!type && (zp = tmtype(s, &t)))
+ {
+ s = t;
+ type = zp->type;
+ if (n < 0)
+ continue;
+ }
+ state |= BREAK;
}
- if (!(state & ZONE) && (zp = tmzone(s, &t, type, &dst)))
- {
- s = t;
- zone = zp->west + dst;
- tm_info.date = zp;
- state |= ZONE;
- if (n < 0)
- continue;
- }
- else if (!type && (zp = tmtype(s, &t)))
- {
- s = t;
- type = zp->type;
- if (n < 0)
- continue;
- }
- state |= BREAK;
}
else if (*s == '/')
{
- if (!(state & (YEAR|MONTH)) && n >= 1900 && n < 3000 && (i = strtol(s + 1, &t, 10)) > 0 && i <= 12)
+ if (!(state & (YEAR|MONTH)) && n >= 1969 && n < 3000 && (i = strtol(s + 1, &t, 10)) > 0 && i <= 12)
{
state |= YEAR;
tm->tm_year = n - 1900;
@@ -1216,7 +1613,7 @@ tmxdate(register const char* s, char** e, Time_t now)
break;
if (w == 4)
{
- if ((state & YEAR) || n < 1900 || n >= 3000)
+ if ((state & YEAR) || n < 1969 || n >= 3000)
break;
state |= YEAR;
tm->tm_year = n - 1900;
@@ -1288,13 +1685,13 @@ tmxdate(register const char* s, char** e, Time_t now)
done:
if (day >= 0 && !(state & (MDAY|WDAY)))
{
- message((-1, "AHA#%d day=%d dir=%d%s", __LINE__, day, dir, (state & FINAL) ? " FINAL" : ""));
+ message((-1, "AHA#%d day=%d dir=%d state=" FFMT, __LINE__, day, dir, FLAGS(state)));
m = dir;
if (state & MONTH)
tm->tm_mday = 1;
else if (m < 0)
m++;
- tm = tmxmake(tmxtime(tm, zone));
+ tm = tmxtm(tm, tmxtime(tm, zone), tm->tm_zone);
j = day - tm->tm_wday;
if (j < 0)
j += 7;
@@ -1304,7 +1701,25 @@ tmxdate(register const char* s, char** e, Time_t now)
}
else if (day < 0 && (state & FINAL) && (set & DAY))
tm->tm_mday = tm_data.days[tm->tm_mon] + (tm->tm_mon == 1 && tmisleapyear(tm->tm_year));
+ if (state & WORK)
+ {
+ tm->tm_mday = (set & FINAL) ? (tm_data.days[tm->tm_mon] + (tm->tm_mon == 1 && tmisleapyear(tm->tm_year))) : 1;
+ tmfix(tm);
+ message((-1, "AHA#%d WORK mday=%d wday=%d", __LINE__, tm->tm_mday, tm->tm_wday));
+ if (tm->tm_wday == 0 && (j = 1) || tm->tm_wday == 6 && (j = 2))
+ {
+ if ((tm->tm_mday + j) > (tm_data.days[tm->tm_mon] + (tm->tm_mon == 1 && tmisleapyear(tm->tm_year))))
+ j -= 3;
+ tm->tm_mday += j;
+ }
+ }
+ now = tmxtime(tm, zone);
+ if (tm->tm_year <= 70 && tmxsec(now) > 31536000)
+ {
+ now = 0;
+ last = (char*)o;
+ }
if (e)
*e = last;
- return tmxtime(tm, zone);
+ return now;
}
diff --git a/usr/src/lib/libast/common/tm/tmxduration.c b/usr/src/lib/libast/common/tm/tmxduration.c
new file mode 100644
index 0000000000..d69eaa7fb8
--- /dev/null
+++ b/usr/src/lib/libast/common/tm/tmxduration.c
@@ -0,0 +1,81 @@
+/***********************************************************************
+* *
+* This software is part of the ast package *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
+* and is licensed under the *
+* Common Public License, Version 1.0 *
+* by AT&T Intellectual Property *
+* *
+* A copy of the License is available at *
+* http://www.opensource.org/licenses/cpl1.0.txt *
+* (with md5 checksum 059e8cd6165cb4c31e351f2b69388fd9) *
+* *
+* Information and Software Systems Research *
+* AT&T Research *
+* Florham Park NJ *
+* *
+* Glenn Fowler <gsf@research.att.com> *
+* David Korn <dgk@research.att.com> *
+* Phong Vo <kpv@research.att.com> *
+* *
+***********************************************************************/
+#pragma prototyped
+
+#include <tmx.h>
+#include <ctype.h>
+
+/*
+ * parse duration expression in s and return Time_t value
+ * if non-null, e points to the first unused char in s
+ * returns 0 with *e==s on error
+ */
+
+Time_t
+tmxduration(const char* s, char** e)
+{
+ double d;
+ Time_t ns;
+ Time_t ts;
+ Time_t now;
+ char* last;
+ char* t;
+ char* x;
+ Sfio_t* f;
+ int i;
+
+ now = TMX_NOW;
+ while (isspace(*s))
+ s++;
+ if (*s == 'P' || *s == 'p')
+ ns = tmxdate(s, &last, now) - now;
+ else
+ {
+ ns = strtod(s, &last) * TMX_RESOLUTION;
+ if (*last && (f = sfstropen()))
+ {
+ sfprintf(f, "exact %s", s);
+ t = sfstruse(f);
+ ts = tmxdate(t, &x, now);
+ if ((i = x - t - 6) > (last - s))
+ {
+ last = (char*)s + i;
+ ns = ts - now;
+ }
+ else
+ {
+ sfprintf(f, "p%s", s);
+ t = sfstruse(f);
+ ts = tmxdate(t, &x, now);
+ if ((i = x - t - 1) > (last - s))
+ {
+ last = (char*)s + i;
+ ns = ts - now;
+ }
+ }
+ sfstrclose(f);
+ }
+ }
+ if (e)
+ *e = last;
+ return ns;
+}
diff --git a/usr/src/lib/libast/common/tm/tmxfmt.c b/usr/src/lib/libast/common/tm/tmxfmt.c
index 5228d29036..03c16bebe2 100644
--- a/usr/src/lib/libast/common/tm/tmxfmt.c
+++ b/usr/src/lib/libast/common/tm/tmxfmt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -104,22 +104,26 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
int c;
int i;
int flags;
+ int alt;
int pad;
int delimiter;
int width;
int prec;
int parts;
+ char* arg;
char* f;
const char* oformat;
- Tm_t* tp;
+ Tm_t* tm;
Tm_zone_t* zp;
Time_t now;
Stack_t* sp;
Stack_t stack[8];
+ Tm_t ts;
+ char argbuf[256];
char fmt[32];
tmlocale();
- tp = tmxmake(t);
+ tm = tmxtm(&ts, t, NiL);
if (!format || !*format)
format = tm_info.deformat;
oformat = format;
@@ -146,6 +150,8 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
*cp++ = c;
continue;
}
+ alt = 0;
+ arg = 0;
pad = 0;
width = 0;
prec = 0;
@@ -162,6 +168,7 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
case 'O':
if (!isalpha(*format))
break;
+ alt = c;
continue;
case '0':
if (!parts)
@@ -196,6 +203,26 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
if (!parts++)
parts++;
continue;
+ case '(':
+ i = 1;
+ arg = argbuf;
+ for (;;)
+ {
+ if (!(c = *format++))
+ {
+ format--;
+ break;
+ }
+ else if (c == '(')
+ i++;
+ else if (c == ')' && !--i)
+ break;
+ else if (arg < &argbuf[sizeof(argbuf) - 1])
+ *arg++ = c;
+ }
+ *arg = 0;
+ arg = argbuf;
+ continue;
default:
break;
}
@@ -217,38 +244,37 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
format = tm_info.format[TM_DEFAULT];
continue;
case 'a': /* abbreviated day of week name */
- n = TM_DAY_ABBREV + tp->tm_wday;
+ n = TM_DAY_ABBREV + tm->tm_wday;
goto index;
case 'A': /* day of week name */
- n = TM_DAY + tp->tm_wday;
+ n = TM_DAY + tm->tm_wday;
goto index;
case 'b': /* abbreviated month name */
case 'h':
- n = TM_MONTH_ABBREV + tp->tm_mon;
+ n = TM_MONTH_ABBREV + tm->tm_mon;
goto index;
case 'B': /* month name */
- n = TM_MONTH + tp->tm_mon;
+ n = TM_MONTH + tm->tm_mon;
goto index;
case 'c': /* `ctime(3)' date sans newline */
p = tm_info.format[TM_CTIME];
goto push;
case 'C': /* 2 digit century */
- cp = number(cp, ep, (long)(1900 + tp->tm_year) / 100, 2, width, pad);
+ cp = number(cp, ep, (long)(1900 + tm->tm_year) / 100, 2, width, pad);
continue;
case 'd': /* day of month */
- cp = number(cp, ep, (long)tp->tm_mday, 2, width, pad);
+ cp = number(cp, ep, (long)tm->tm_mday, 2, width, pad);
continue;
case 'D': /* date */
p = tm_info.format[TM_DATE];
goto push;
case 'E': /* OBSOLETE no pad day of month */
- cp = number(cp, ep, (long)tp->tm_mday, 0, width, pad);
+ cp = number(cp, ep, (long)tm->tm_mday, 0, width, pad);
continue;
case 'e': /* blank padded day of month */
- cp = number(cp, ep, (long)tp->tm_mday, -2, width, pad);
+ cp = number(cp, ep, (long)tm->tm_mday, -2, width, pad);
continue;
case 'f': /* TM_DEFAULT override */
- case 'o': /* OBSOLETE */
p = tm_info.deformat;
goto push;
case 'F': /* ISO 8601:2000 standard date format */
@@ -256,15 +282,15 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
goto push;
case 'g': /* %V 2 digit year */
case 'G': /* %V 4 digit year */
- n = tp->tm_year + 1900;
- if (tp->tm_yday < 7)
+ n = tm->tm_year + 1900;
+ if (tm->tm_yday < 7)
{
- if (tmweek(tp, 2, -1, -1) >= 52)
+ if (tmweek(tm, 2, -1, -1) >= 52)
n--;
}
- else if (tp->tm_yday > 358)
+ else if (tm->tm_yday > 358)
{
- if (tmweek(tp, 2, -1, -1) <= 1)
+ if (tmweek(tm, 2, -1, -1) <= 1)
n++;
}
if (c == 'g')
@@ -277,27 +303,38 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
cp = number(cp, ep, (long)n, c, width, pad);
continue;
case 'H': /* hour (0 - 23) */
- cp = number(cp, ep, (long)tp->tm_hour, 2, width, pad);
+ cp = number(cp, ep, (long)tm->tm_hour, 2, width, pad);
continue;
case 'i': /* international `date(1)' date */
p = tm_info.format[TM_INTERNATIONAL];
goto push;
case 'I': /* hour (0 - 12) */
- if ((n = tp->tm_hour) > 12) n -= 12;
+ if ((n = tm->tm_hour) > 12) n -= 12;
else if (n == 0) n = 12;
cp = number(cp, ep, (long)n, 2, width, pad);
continue;
case 'J': /* Julian date (0 offset) */
- cp = number(cp, ep, (long)tp->tm_yday, 3, width, pad);
+ cp = number(cp, ep, (long)tm->tm_yday, 3, width, pad);
continue;
case 'j': /* Julian date (1 offset) */
- cp = number(cp, ep, (long)(tp->tm_yday + 1), 3, width, pad);
+ cp = number(cp, ep, (long)(tm->tm_yday + 1), 3, width, pad);
continue;
case 'k': /* `date(1)' date */
p = tm_info.format[TM_DATE_1];
goto push;
case 'K':
- p = "%Y-%m-%d+%H:%M:%S";
+ switch (alt)
+ {
+ case 'E':
+ p = (pad == '_') ? "%Y-%m-%d %H:%M:%S.%N %z" : "%Y-%m-%d+%H:%M:%S.%N%z";
+ break;
+ case 'O':
+ p = (pad == '_') ? "%Y-%m-%d %H:%M:%S.%N" : "%Y-%m-%d+%H:%M:%S.%N";
+ break;
+ default:
+ p = (pad == '_') ? "%Y-%m-%d %H:%M:%S" : "%Y-%m-%d+%H:%M:%S";
+ break;
+ }
goto push;
case 'l': /* `ls -l' date */
if (t)
@@ -316,25 +353,31 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
p = tm_info.format[TM_DEFAULT];
goto push;
case 'm': /* month number */
- cp = number(cp, ep, (long)(tp->tm_mon + 1), 2, width, pad);
+ cp = number(cp, ep, (long)(tm->tm_mon + 1), 2, width, pad);
continue;
case 'M': /* minutes */
- cp = number(cp, ep, (long)tp->tm_min, 2, width, pad);
+ cp = number(cp, ep, (long)tm->tm_min, 2, width, pad);
continue;
case 'n':
if (cp < ep)
*cp++ = '\n';
continue;
case 'N': /* nanosecond part */
- cp = number(cp, ep, (long)tp->tm_nsec, 9, width, pad);
+ cp = number(cp, ep, (long)tm->tm_nsec, 9, width, pad);
continue;
+ case 'o': /* set options */
+ if (arg)
+ goto options;
+ /*OBSOLETE*/
+ p = tm_info.deformat;
+ goto push;
case 'p': /* meridian */
- n = TM_MERIDIAN + (tp->tm_hour >= 12);
+ n = TM_MERIDIAN + (tm->tm_hour >= 12);
goto index;
case 'q': /* time zone type (nation code) */
if (!(flags & TM_UTC))
{
- if ((zp = tm_info.zone) != tm_info.local)
+ if ((zp = tm->tm_zone) != tm_info.local)
for (; zp >= tm_data.zone; zp--)
if (p = zp->type)
goto string;
@@ -393,10 +436,7 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
goto push;
case 's': /* seconds[.nanoseconds] since the epoch */
case '#':
- if (t)
- now = t;
- else
- now = tmxgettime();
+ now = t;
f = fmt;
*f++ = '%';
if (pad == '0')
@@ -414,7 +454,7 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
}
continue;
case 'S': /* seconds */
- cp = number(cp, ep, (long)tp->tm_sec, 2, width, pad);
+ cp = number(cp, ep, (long)tm->tm_sec, 2, width, pad);
if ((flags & TM_SUBSECOND) && (format - 2) != oformat)
{
p = ".%N";
@@ -429,21 +469,21 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
p = tm_info.format[TM_TIME];
goto push;
case 'u': /* weekday number [1(Monday)-7] */
- if (!(i = tp->tm_wday))
+ if (!(i = tm->tm_wday))
i = 7;
cp = number(cp, ep, (long)i, 0, width, pad);
continue;
case 'U': /* week number, Sunday as first day */
- cp = number(cp, ep, (long)tmweek(tp, 0, -1, -1), 2, width, pad);
+ cp = number(cp, ep, (long)tmweek(tm, 0, -1, -1), 2, width, pad);
continue;
case 'V': /* ISO week number */
- cp = number(cp, ep, (long)tmweek(tp, 2, -1, -1), 2, width, pad);
+ cp = number(cp, ep, (long)tmweek(tm, 2, -1, -1), 2, width, pad);
continue;
case 'W': /* week number, Monday as first day */
- cp = number(cp, ep, (long)tmweek(tp, 1, -1, -1), 2, width, pad);
+ cp = number(cp, ep, (long)tmweek(tm, 1, -1, -1), 2, width, pad);
continue;
case 'w': /* weekday number [0(Sunday)-6] */
- cp = number(cp, ep, (long)tp->tm_wday, 0, width, pad);
+ cp = number(cp, ep, (long)tm->tm_wday, 0, width, pad);
continue;
case 'x':
p = tm_info.format[TM_DATE];
@@ -452,33 +492,73 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
p = tm_info.format[TM_TIME];
goto push;
case 'y': /* year in the form yy */
- cp = number(cp, ep, (long)(tp->tm_year % 100), 2, width, pad);
+ cp = number(cp, ep, (long)(tm->tm_year % 100), 2, width, pad);
continue;
case 'Y': /* year in the form ccyy */
- cp = number(cp, ep, (long)(1900 + tp->tm_year), 4, width, pad);
+ cp = number(cp, ep, (long)(1900 + tm->tm_year), 4, width, pad);
continue;
case 'z': /* time zone west offset */
+ if (arg)
+ {
+ if ((zp = tmzone(arg, &f, 0, 0)) && !*f && tm->tm_zone != zp)
+ tm = tmxtm(tm, tmxtime(tm, tm->tm_zone->west + (tm->tm_isdst ? tm->tm_zone->dst : 0)), zp);
+ continue;
+ }
if ((ep - cp) >= 16)
- cp = tmpoff(cp, ep - cp, "", (flags & TM_UTC) ? 0 : tm_info.zone->west - (tp->tm_isdst ? 60 : 0), 24 * 60);
+ cp = tmpoff(cp, ep - cp, "", (flags & TM_UTC) ? 0 : tm->tm_zone->west + (tm->tm_isdst ? tm->tm_zone->dst : 0), 24 * 60);
continue;
case 'Z': /* time zone */
- p = (flags & TM_UTC) ? tm_info.format[TM_UT] : tp->tm_isdst && tm_info.zone->daylight ? tm_info.zone->daylight : tm_info.zone->standard;
+ if (arg)
+ {
+ if ((zp = tmzone(arg, &f, 0, 0)) && !*f && tm->tm_zone != zp)
+ tm = tmxtm(tm, tmxtime(tm, tm->tm_zone->west + (tm->tm_isdst ? tm->tm_zone->dst : 0)), zp);
+ continue;
+ }
+ p = (flags & TM_UTC) ? tm_info.format[TM_UT] : tm->tm_isdst && tm->tm_zone->daylight ? tm->tm_zone->daylight : tm->tm_zone->standard;
goto string;
case '+': /* old %+flag */
case '!': /* old %!flag */
format--;
/*FALLTHROUGH*/
- case '=': /* %=[=][+-]flag */
- if (i = *format == '=')
+ case '=': /* old %=[=][+-]flag */
+ for (arg = argbuf; *format == '=' || *format == '-' || *format == '+' || *format == '!'; format++)
+ if (arg < &argbuf[sizeof(argbuf) - 2])
+ *arg++ = *format;
+ if (*arg++ = *format)
format++;
- if (*format == '+' || *format == '-' || *format == '!')
- c = *format++;
- else
- c = '+';
- switch (*format++)
+ *arg = 0;
+ arg = argbuf;
+ goto options;
+ default:
+ if (cp < ep)
+ *cp++ = '%';
+ if (cp < ep)
+ *cp++ = c;
+ continue;
+ }
+ index:
+ p = tm_info.format[n];
+ string:
+ while (cp < ep && (*cp = *p++))
+ cp++;
+ continue;
+ options:
+ c = '+';
+ i = 0;
+ for (;;)
+ {
+ switch (*arg++)
{
case 0:
- format--;
+ n = 0;
+ break;
+ case '=':
+ i = !i;
+ continue;
+ case '+':
+ case '-':
+ case '!':
+ c = *(arg - 1);
continue;
case 'l':
n = TM_LEAP;
@@ -490,47 +570,37 @@ tmxfmt(char* buf, size_t len, const char* format, Time_t t)
case 'u':
n = TM_UTC;
break;
+ default:
+ continue;
}
- if (n)
- {
- /*
- * right, the global state stinks
- * but we respect its locale-like status
- */
+ if (!n)
+ break;
- if (c == '+')
- {
- if (!(flags & n))
- {
- flags |= n;
- tm_info.flags |= n;
- tp = tmxmake(t);
- if (!i)
- tm_info.flags &= ~n;
- }
- }
- else if (flags & n)
+ /*
+ * right, the global state stinks
+ * but we respect its locale-like status
+ */
+
+ if (c == '+')
+ {
+ if (!(flags & n))
{
- flags &= ~n;
- tm_info.flags &= ~n;
- tp = tmxmake(t);
+ flags |= n;
+ tm_info.flags |= n;
+ tm = tmxtm(tm, t, (flags & TM_UTC) ? &tm_data.zone[2] : tm->tm_zone);
if (!i)
- tm_info.flags |= n;
+ tm_info.flags &= ~n;
}
}
- continue;
- default:
- if (cp < ep)
- *cp++ = '%';
- if (cp < ep)
- *cp++ = c;
- continue;
+ else if (flags & n)
+ {
+ flags &= ~n;
+ tm_info.flags &= ~n;
+ tm = tmxtm(tm, t, (flags & TM_UTC) ? &tm_data.zone[2] : tm->tm_zone);
+ if (!i)
+ tm_info.flags |= n;
+ }
}
- index:
- p = tm_info.format[n];
- string:
- while (cp < ep && (*cp = *p++))
- cp++;
continue;
push:
c = 0;
diff --git a/usr/src/lib/libast/common/tm/tmxgettime.c b/usr/src/lib/libast/common/tm/tmxgettime.c
index a07dab0728..dbe33c4380 100644
--- a/usr/src/lib/libast/common/tm/tmxgettime.c
+++ b/usr/src/lib/libast/common/tm/tmxgettime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmxleap.c b/usr/src/lib/libast/common/tm/tmxleap.c
index 12373eff36..80fd1c1cb4 100644
--- a/usr/src/lib/libast/common/tm/tmxleap.c
+++ b/usr/src/lib/libast/common/tm/tmxleap.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmxmake.c b/usr/src/lib/libast/common/tm/tmxmake.c
index 0fa21fc1af..f37db8a265 100644
--- a/usr/src/lib/libast/common/tm/tmxmake.c
+++ b/usr/src/lib/libast/common/tm/tmxmake.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -37,7 +37,7 @@
*/
Tm_t*
-tmxmake(Time_t t)
+tmxtm(register Tm_t* tm, Time_t t, Tm_zone_t* zone)
{
register struct tm* tp;
register Tm_leap_t* lp;
@@ -51,9 +51,6 @@ tmxmake(Time_t t)
Time_t z;
uint32_t i;
#endif
- Tm_t tm;
-
- static Tm_t ts;
tmset(tm_info.zone);
leapsec = 0;
@@ -68,67 +65,76 @@ tmxmake(Time_t t)
}
}
x = tmxsec(t);
- if (tm_info.flags & TM_UTC)
+ if (!(tm->tm_zone = zone))
{
- tm.tm_zone = &tm_data.zone[2];
- o = 0;
+ if (tm_info.flags & TM_UTC)
+ tm->tm_zone = &tm_data.zone[2];
+ else
+ tm->tm_zone = tm_info.zone;
}
- else
+ if ((o = 60 * tm->tm_zone->west) && x > o)
{
- tm.tm_zone = tm_info.zone;
- o = 60 * tm.tm_zone->west;
- if (x > o)
- {
- x -= o;
- o = 0;
- }
+ x -= o;
+ o = 0;
}
#if TMX_FLOAT
i = x / (24 * 60 * 60);
z = i;
n = x - z * (24 * 60 * 60);
- tm.tm_sec = n % 60 + leapsec;
+ tm->tm_sec = n % 60 + leapsec;
n /= 60;
- tm.tm_min = n % 60;
+ tm->tm_min = n % 60;
n /= 60;
- tm.tm_hour = n % 24;
+ tm->tm_hour = n % 24;
#define x i
#else
- tm.tm_sec = x % 60 + leapsec;
+ tm->tm_sec = x % 60 + leapsec;
x /= 60;
- tm.tm_min = x % 60;
+ tm->tm_min = x % 60;
x /= 60;
- tm.tm_hour = x % 24;
+ tm->tm_hour = x % 24;
x /= 24;
#endif
- tm.tm_wday = (x + 4) % 7;
- tm.tm_year = (400 * (x + 25202)) / 146097 + 1;
- n = tm.tm_year - 1;
+ tm->tm_wday = (x + 4) % 7;
+ tm->tm_year = (400 * (x + 25202)) / 146097 + 1;
+ n = tm->tm_year - 1;
x -= n * 365 + n / 4 - n / 100 + (n + (1900 - 1600)) / 400 - (1970 - 1901) * 365 - (1970 - 1901) / 4;
- tm.tm_mon = 0;
- tm.tm_mday = x + 1;
- tmfix(&tm);
+ tm->tm_mon = 0;
+ tm->tm_mday = x + 1;
+ tm->tm_nsec = tmxnsec(t);
+ tmfix(tm);
n += 1900;
- tm.tm_isdst = 0;
- if (tm.tm_zone->daylight)
+ tm->tm_isdst = 0;
+ if (tm->tm_zone->daylight)
{
- if ((y = tmequiv(&tm) - 1900) == tm.tm_year)
+ if ((y = tmequiv(tm) - 1900) == tm->tm_year)
now = tmxsec(t);
else
{
Tm_t te;
- te = tm;
+ te = *tm;
te.tm_year = y;
- now = tmxsec(tmxtime(&te, tm.tm_zone->west));
+ now = tmxsec(tmxtime(&te, tm->tm_zone->west));
}
- if ((tp = tmlocaltime(&now)) && ((tm.tm_isdst = tp->tm_isdst) || o))
+ if ((tp = tmlocaltime(&now)) && ((tm->tm_isdst = tp->tm_isdst) || o))
{
- tm.tm_min -= o / 60 + (tm.tm_isdst ? tm.tm_zone->dst : 0);
- tmfix(&tm);
+ tm->tm_min -= o / 60 + (tm->tm_isdst ? tm->tm_zone->dst : 0);
+ tmfix(tm);
}
}
- tm.tm_nsec = tmxnsec(t);
- ts = tm;
- return &ts;
+ return tm;
+}
+
+/*
+ * return Tm_t for t
+ * time zone and leap seconds accounted for in return value
+ */
+
+Tm_t*
+tmxmake(Time_t t)
+{
+ static Tm_t ts;
+
+ return tmxtm(&ts, t, NiL);
}
diff --git a/usr/src/lib/libast/common/tm/tmxscan.c b/usr/src/lib/libast/common/tm/tmxscan.c
index e27f6f7541..c35fd89061 100644
--- a/usr/src/lib/libast/common/tm/tmxscan.c
+++ b/usr/src/lib/libast/common/tm/tmxscan.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -74,6 +74,7 @@ static Time_t
gen(register Tm_t* tm, register Set_t* set)
{
register int n;
+ int z;
Time_t t;
if (set->year >= 0)
@@ -132,26 +133,32 @@ gen(register Tm_t* tm, register Set_t* set)
tm->tm_hour -= 12;
}
t = tmxtime(tm, set->zone);
- tm = 0;
if (set->yday >= 0)
{
- tm = tmxmake(t);
+ z = 1;
+ tm = tmxtm(tm, t, tm->tm_zone);
tm->tm_mday += set->yday - tm->tm_yday;
}
else if (set->wday >= 0)
{
- tm = tmxmake(t);
+ z = 1;
+ tm = tmxtm(tm, t, tm->tm_zone);
if ((n = set->wday - tm->tm_wday) < 0)
n += 7;
tm->tm_mday += n;
}
+ else
+ z = 0;
if (set->nsec < 1000000000L)
{
- if (!tm)
- tm = tmxmake(t);
+ if (!z)
+ {
+ z = 1;
+ tm = tmxtm(tm, t, tm->tm_zone);
+ }
tm->tm_nsec = set->nsec;
}
- return tm ? tmxtime(tm, set->zone) : t;
+ return z ? tmxtime(tm, set->zone) : t;
}
/*
@@ -175,6 +182,7 @@ scan(register const char* s, char** e, const char* format, char** f, Time_t t, l
Time_t x;
Set_t set;
Tm_zone_t* zp;
+ Tm_t ts;
char** sp = &stack[0];
@@ -183,8 +191,7 @@ scan(register const char* s, char** e, const char* format, char** f, Time_t t, l
b = s;
again:
CLEAR(set);
- tm = tmxmake(t);
- tm_info.date = tm_info.zone;
+ tm = tmxtm(&ts, t, NiL);
pedantic = (flags & TM_PEDANTIC) != 0;
for (;;)
{
@@ -315,7 +322,7 @@ scan(register const char* s, char** e, const char* format, char** f, Time_t t, l
x = strtoul(s, &u, 0);
if (s == u)
goto next;
- tm = tmxmake(tmxsns(x, 0));
+ tm = tmxtm(tm, tmxsns(x, 0), tm->tm_zone);
s = u;
CLEAR(set);
continue;
diff --git a/usr/src/lib/libast/common/tm/tmxsettime.c b/usr/src/lib/libast/common/tm/tmxsettime.c
index 7b90cf4cd2..46e93c5cd9 100644
--- a/usr/src/lib/libast/common/tm/tmxsettime.c
+++ b/usr/src/lib/libast/common/tm/tmxsettime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmxsleep.c b/usr/src/lib/libast/common/tm/tmxsleep.c
index 4330a7801b..5ad4282f75 100644
--- a/usr/src/lib/libast/common/tm/tmxsleep.c
+++ b/usr/src/lib/libast/common/tm/tmxsleep.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmxtime.c b/usr/src/lib/libast/common/tm/tmxtime.c
index a773dbff9a..93d0df36cc 100644
--- a/usr/src/lib/libast/common/tm/tmxtime.c
+++ b/usr/src/lib/libast/common/tm/tmxtime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmxtouch.c b/usr/src/lib/libast/common/tm/tmxtouch.c
index d3545c32c6..aaedc8f53f 100644
--- a/usr/src/lib/libast/common/tm/tmxtouch.c
+++ b/usr/src/lib/libast/common/tm/tmxtouch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tmzone.c b/usr/src/lib/libast/common/tm/tmzone.c
index da0f35fe0e..14af6ae194 100644
--- a/usr/src/lib/libast/common/tm/tmzone.c
+++ b/usr/src/lib/libast/common/tm/tmzone.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tvcmp.c b/usr/src/lib/libast/common/tm/tvcmp.c
index 0ab31a4783..2a00e21e39 100644
--- a/usr/src/lib/libast/common/tm/tvcmp.c
+++ b/usr/src/lib/libast/common/tm/tvcmp.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tvgettime.c b/usr/src/lib/libast/common/tm/tvgettime.c
index 47797c72a0..244f761d4c 100644
--- a/usr/src/lib/libast/common/tm/tvgettime.c
+++ b/usr/src/lib/libast/common/tm/tvgettime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tvsettime.c b/usr/src/lib/libast/common/tm/tvsettime.c
index 6de2f12c12..14b3f3eef6 100644
--- a/usr/src/lib/libast/common/tm/tvsettime.c
+++ b/usr/src/lib/libast/common/tm/tvsettime.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tvsleep.c b/usr/src/lib/libast/common/tm/tvsleep.c
index cf8b735cdc..ba5dbef422 100644
--- a/usr/src/lib/libast/common/tm/tvsleep.c
+++ b/usr/src/lib/libast/common/tm/tvsleep.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/tm/tvtouch.c b/usr/src/lib/libast/common/tm/tvtouch.c
index 1591ec66f9..27533b26bf 100644
--- a/usr/src/lib/libast/common/tm/tvtouch.c
+++ b/usr/src/lib/libast/common/tm/tvtouch.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/uwin/a64l.c b/usr/src/lib/libast/common/uwin/a64l.c
index 36be08484e..c2a8adbc85 100644
--- a/usr/src/lib/libast/common/uwin/a64l.c
+++ b/usr/src/lib/libast/common/uwin/a64l.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/uwin/cbrt.c b/usr/src/lib/libast/common/uwin/cbrt.c
index 511c99e258..873e18694a 100644
--- a/usr/src/lib/libast/common/uwin/cbrt.c
+++ b/usr/src/lib/libast/common/uwin/cbrt.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/uwin/err.c b/usr/src/lib/libast/common/uwin/err.c
index 920f3af5be..e80007333e 100644
--- a/usr/src/lib/libast/common/uwin/err.c
+++ b/usr/src/lib/libast/common/uwin/err.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/uwin/getpass.c b/usr/src/lib/libast/common/uwin/getpass.c
index 11d5c49f58..7a961f7dc1 100644
--- a/usr/src/lib/libast/common/uwin/getpass.c
+++ b/usr/src/lib/libast/common/uwin/getpass.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/uwin/rand48.c b/usr/src/lib/libast/common/uwin/rand48.c
index d8e3aa238c..82ee3d1d3d 100644
--- a/usr/src/lib/libast/common/uwin/rand48.c
+++ b/usr/src/lib/libast/common/uwin/rand48.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/uwin/rint.c b/usr/src/lib/libast/common/uwin/rint.c
index 6761a429ab..87d28d4f0f 100644
--- a/usr/src/lib/libast/common/uwin/rint.c
+++ b/usr/src/lib/libast/common/uwin/rint.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vec/vecargs.c b/usr/src/lib/libast/common/vec/vecargs.c
index 1ce1c2dc3a..974da9f577 100644
--- a/usr/src/lib/libast/common/vec/vecargs.c
+++ b/usr/src/lib/libast/common/vec/vecargs.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vec/vecfile.c b/usr/src/lib/libast/common/vec/vecfile.c
index 7bb91b6c14..77f17f52ef 100644
--- a/usr/src/lib/libast/common/vec/vecfile.c
+++ b/usr/src/lib/libast/common/vec/vecfile.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vec/vecfree.c b/usr/src/lib/libast/common/vec/vecfree.c
index fed8e5a76b..f1dfb659ff 100644
--- a/usr/src/lib/libast/common/vec/vecfree.c
+++ b/usr/src/lib/libast/common/vec/vecfree.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vec/vecload.c b/usr/src/lib/libast/common/vec/vecload.c
index 1f7f18a38d..a12702cb99 100644
--- a/usr/src/lib/libast/common/vec/vecload.c
+++ b/usr/src/lib/libast/common/vec/vecload.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vec/vecstring.c b/usr/src/lib/libast/common/vec/vecstring.c
index 71d1042c0c..f9cc749c1c 100644
--- a/usr/src/lib/libast/common/vec/vecstring.c
+++ b/usr/src/lib/libast/common/vec/vecstring.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/malloc.c b/usr/src/lib/libast/common/vmalloc/malloc.c
index abe71cbf8b..da4a839ecd 100644
--- a/usr/src/lib/libast/common/vmalloc/malloc.c
+++ b/usr/src/lib/libast/common/vmalloc/malloc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -43,6 +43,7 @@ extern char* getenv(const char*);
#endif
#include "vmhdr.h"
+#include <errno.h>
#if _UWIN
@@ -556,6 +557,27 @@ reg size_t size;
}
#if __STD_C
+extern int posix_memalign(reg Void_t **memptr, reg size_t align, reg size_t size)
+#else
+extern int posix_memalign(memptr, align, size)
+reg Void_t** memptr;
+reg size_t align;
+reg size_t size;
+#endif
+{
+ Void_t *mem;
+
+ if(align == 0 || (align%sizeof(Void_t*)) != 0 || ((align-1)&align) != 0 )
+ return EINVAL;
+
+ if(!(mem = memalign(align, size)) )
+ return ENOMEM;
+
+ *memptr = mem;
+ return 0;
+}
+
+#if __STD_C
extern Void_t* valloc(reg size_t size)
#else
extern Void_t* valloc(size)
diff --git a/usr/src/lib/libast/common/vmalloc/vmbest.c b/usr/src/lib/libast/common/vmalloc/vmbest.c
index 8e9ef32436..35b24fa678 100644
--- a/usr/src/lib/libast/common/vmalloc/vmbest.c
+++ b/usr/src/lib/libast/common/vmalloc/vmbest.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -887,7 +887,7 @@ Void_t* data;
reg int local, inuse;
#ifdef DEBUG
- if((local = (int)data) >= 0 && local <= 0xf)
+ if((local = (int)integralof(data)) >= 0 && local <= 0xf)
{ int vmassert = _Vmassert;
_Vmassert = local ? local : vmassert ? vmassert : (VM_check|VM_abort);
_vmbestcheck(vd, NIL(Block_t*));
@@ -1279,6 +1279,56 @@ typedef struct _mmapdisc_s
#endif
#define BRK_FAILED ((Void_t*)(-1))
+/* make sure that allocated memory are addressable */
+
+#if _PACKAGE_ast
+#include <sig.h>
+#else
+#include <signal.h>
+typedef void (*Sig_handler_t)(int);
+#endif
+
+static int Gotsegv = 0;
+
+#if __STD_C
+static void sigsegv(int sig)
+#else
+static void sigsegv(sig)
+int sig;
+#endif
+{
+ if(sig == SIGSEGV)
+ Gotsegv = 1;
+}
+
+#if __STD_C
+static int okaddr(Void_t* addr, size_t nsize)
+#else
+static int okaddr(addr, nsize)
+Void_t* addr;
+size_t nsize;
+#endif
+{
+ Sig_handler_t segv;
+ int rv;
+
+ Gotsegv = 0; /* catch segment fault */
+ segv = signal(SIGSEGV, sigsegv);
+
+ if(Gotsegv == 0)
+ rv = *((char*)addr);
+ if(Gotsegv == 0)
+ rv += *(((char*)addr)+nsize-1);
+ if(Gotsegv == 0)
+ rv = rv == 0 ? 0 : 1;
+ else rv = -1;
+
+ signal(SIGSEGV, segv); /* restore signal catcher */
+ Gotsegv = 0;
+
+ return rv;
+}
+
/* A discipline to get raw memory using sbrk/VirtualAlloc/mmap */
#if __STD_C
static Void_t* sbrkmem(Vmalloc_t* vm, Void_t* caddr,
@@ -1323,8 +1373,15 @@ Vmdisc_t* disc; /* discipline structure */
{
addr = (Vmuchar_t*)sbrk(0); /* old break value */
if(addr && addr != (Vmuchar_t*)BRK_FAILED )
+ {
+ if((addr+nsize) < addr)
+ return NIL(Void_t*);
if(brk(addr+nsize) == 0 )
- return addr;
+ { if(okaddr(addr,nsize) >= 0)
+ return addr;
+ (void)brk(addr); /* release reserved address */
+ }
+ }
}
#endif /* _mem_sbrk */
@@ -1333,7 +1390,10 @@ Vmdisc_t* disc; /* discipline structure */
addr = (Vmuchar_t*)mmap(0, nsize, PROT_READ|PROT_WRITE,
MAP_ANON|MAP_PRIVATE, -1, 0);
if(addr && addr != (Vmuchar_t*)MAP_FAILED)
- return addr;
+ { if(okaddr(addr,nsize) >= 0)
+ return addr;
+ (void)munmap(addr, nsize); /* release reserved address */
+ }
}
#endif /* _mem_mmap_anon */
@@ -1357,8 +1417,11 @@ Vmdisc_t* disc; /* discipline structure */
addr = (Vmuchar_t*)mmap(0, nsize, PROT_READ|PROT_WRITE,
MAP_PRIVATE, mmdc->fd, mmdc->offset);
if(addr && addr != (Vmuchar_t*)MAP_FAILED)
- { mmdc->offset += nsize;
- return addr;
+ { if(okaddr(addr, nsize) >= 0)
+ { mmdc->offset += nsize;
+ return addr;
+ }
+ (void)munmap(addr, nsize); /* release reserved address */
}
}
#endif /* _mem_mmap_zero */
@@ -1374,10 +1437,11 @@ Vmdisc_t* disc; /* discipline structure */
if(!addr || addr == (Vmuchar_t*)BRK_FAILED)
addr = caddr;
else if(((Vmuchar_t*)caddr+csize) == addr) /* in sbrk-space */
- { if(nsize > csize)
- addr += nsize-csize;
- else addr -= csize-nsize;
- return brk(addr) == 0 ? caddr : NIL(Void_t*);
+ { if(nsize <= csize)
+ addr -= csize-nsize;
+ else if((addr += nsize-csize) < (Vmuchar_t*)caddr)
+ return NIL(Void_t*); /* wrapped around address */
+ else return brk(addr) == 0 ? caddr : NIL(Void_t*);
}
}
#endif /* _mem_sbrk */
diff --git a/usr/src/lib/libast/common/vmalloc/vmclear.c b/usr/src/lib/libast/common/vmalloc/vmclear.c
index d80a396628..bca98e669a 100644
--- a/usr/src/lib/libast/common/vmalloc/vmclear.c
+++ b/usr/src/lib/libast/common/vmalloc/vmclear.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmclose.c b/usr/src/lib/libast/common/vmalloc/vmclose.c
index 3ada670748..67b63c7723 100644
--- a/usr/src/lib/libast/common/vmalloc/vmclose.c
+++ b/usr/src/lib/libast/common/vmalloc/vmclose.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmdcheap.c b/usr/src/lib/libast/common/vmalloc/vmdcheap.c
index 7c985ee68c..892de4ae18 100644
--- a/usr/src/lib/libast/common/vmalloc/vmdcheap.c
+++ b/usr/src/lib/libast/common/vmalloc/vmdcheap.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmdebug.c b/usr/src/lib/libast/common/vmalloc/vmdebug.c
index f04c527e19..dede7d0469 100644
--- a/usr/src/lib/libast/common/vmalloc/vmdebug.c
+++ b/usr/src/lib/libast/common/vmalloc/vmdebug.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmdisc.c b/usr/src/lib/libast/common/vmalloc/vmdisc.c
index 89fd04b318..719d2c4194 100644
--- a/usr/src/lib/libast/common/vmalloc/vmdisc.c
+++ b/usr/src/lib/libast/common/vmalloc/vmdisc.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmexit.c b/usr/src/lib/libast/common/vmalloc/vmexit.c
index b381567070..946a2f9519 100644
--- a/usr/src/lib/libast/common/vmalloc/vmexit.c
+++ b/usr/src/lib/libast/common/vmalloc/vmexit.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmgetmem.c b/usr/src/lib/libast/common/vmalloc/vmgetmem.c
index b919155140..e7a66f740b 100644
--- a/usr/src/lib/libast/common/vmalloc/vmgetmem.c
+++ b/usr/src/lib/libast/common/vmalloc/vmgetmem.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmhdr.h b/usr/src/lib/libast/common/vmalloc/vmhdr.h
index 8a33270f69..7fe3d64917 100644
--- a/usr/src/lib/libast/common/vmalloc/vmhdr.h
+++ b/usr/src/lib/libast/common/vmalloc/vmhdr.h
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -157,17 +157,25 @@ extern void _vmmessage _ARG_((const char*, long, const char*, long));
#endif /*DEBUG*/
#define VMPAGESIZE 8192
+
#if _AST_PAGESIZE > VMPAGESIZE
#undef VMPAGESIZE
#define VMPAGESIZE _AST_PAGESIZE
#endif
-#if _lib_getpagesize
+
+#if _lib_getpagesize && !defined(_AST_PAGESIZE)
#define GETPAGESIZE(x) ((x) ? (x) : \
(((x)=getpagesize()) < VMPAGESIZE ? ((x)=VMPAGESIZE) : (x)) )
#else
#define GETPAGESIZE(x) ((x) = VMPAGESIZE)
#endif
+#ifdef _AST_PAGESIZE
+#define VMHEAPINCR (_Vmpagesize*1)
+#else
+#define VMHEAPINCR (_Vmpagesize*4)
+#endif
+
/* Blocks are allocated such that their sizes are 0%(BITS+1)
** This frees up enough low order bits to store state information
*/
diff --git a/usr/src/lib/libast/common/vmalloc/vmlast.c b/usr/src/lib/libast/common/vmalloc/vmlast.c
index 9a723b0ee4..2463f24e09 100644
--- a/usr/src/lib/libast/common/vmalloc/vmlast.c
+++ b/usr/src/lib/libast/common/vmalloc/vmlast.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -153,6 +153,7 @@ reg Void_t* data;
CLRLOCK(vd, local);
ANNOUNCE(local, vm, VM_FREE, data, vm->disc);
+
CLRINUSE(vd, inuse);
return 0;
}
diff --git a/usr/src/lib/libast/common/vmalloc/vmmopen.c b/usr/src/lib/libast/common/vmalloc/vmmopen.c
index 4586895fbb..b5ccff821c 100644
--- a/usr/src/lib/libast/common/vmalloc/vmmopen.c
+++ b/usr/src/lib/libast/common/vmalloc/vmmopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmopen.c b/usr/src/lib/libast/common/vmalloc/vmopen.c
index 0f85550396..0e92089ddf 100644
--- a/usr/src/lib/libast/common/vmalloc/vmopen.c
+++ b/usr/src/lib/libast/common/vmalloc/vmopen.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmpool.c b/usr/src/lib/libast/common/vmalloc/vmpool.c
index a318cb9150..3195a03e65 100644
--- a/usr/src/lib/libast/common/vmalloc/vmpool.c
+++ b/usr/src/lib/libast/common/vmalloc/vmpool.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmprivate.c b/usr/src/lib/libast/common/vmalloc/vmprivate.c
index a16e2dc92c..d1dd774442 100644
--- a/usr/src/lib/libast/common/vmalloc/vmprivate.c
+++ b/usr/src/lib/libast/common/vmalloc/vmprivate.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
@@ -27,7 +27,7 @@ void _STUB_vmprivate(){}
#include "vmhdr.h"
-static char* Version = "\n@(#)$Id: Vmalloc (AT&T Research) 2007-09-11 $\0\n";
+static char* Version = "\n@(#)$Id: Vmalloc (AT&T Research) 2009-06-19 $\0\n";
#if _sys_stat
#include <sys/stat.h>
@@ -77,7 +77,7 @@ Vmsearch_f searchf; /* tree search function */
#endif
if(vd->incr <= 0) /* this is just _Vmheap on the first call */
- vd->incr = _Vmpagesize;
+ vd->incr = VMHEAPINCR;
/* Get slightly more for administrative data */
s = size + sizeof(Seg_t) + sizeof(Block_t) + sizeof(Head_t) + 2*ALIGN;
diff --git a/usr/src/lib/libast/common/vmalloc/vmprofile.c b/usr/src/lib/libast/common/vmalloc/vmprofile.c
index a9e620468e..c8381e1913 100644
--- a/usr/src/lib/libast/common/vmalloc/vmprofile.c
+++ b/usr/src/lib/libast/common/vmalloc/vmprofile.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmregion.c b/usr/src/lib/libast/common/vmalloc/vmregion.c
index 61a59562d5..ad468388b0 100644
--- a/usr/src/lib/libast/common/vmalloc/vmregion.c
+++ b/usr/src/lib/libast/common/vmalloc/vmregion.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmsegment.c b/usr/src/lib/libast/common/vmalloc/vmsegment.c
index 2eb4ae35e3..b5fca2d604 100644
--- a/usr/src/lib/libast/common/vmalloc/vmsegment.c
+++ b/usr/src/lib/libast/common/vmalloc/vmsegment.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmset.c b/usr/src/lib/libast/common/vmalloc/vmset.c
index 3fbc354464..de80405e8e 100644
--- a/usr/src/lib/libast/common/vmalloc/vmset.c
+++ b/usr/src/lib/libast/common/vmalloc/vmset.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmstat.c b/usr/src/lib/libast/common/vmalloc/vmstat.c
index dc2c1097c2..6ee4de7e3c 100644
--- a/usr/src/lib/libast/common/vmalloc/vmstat.c
+++ b/usr/src/lib/libast/common/vmalloc/vmstat.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmstrdup.c b/usr/src/lib/libast/common/vmalloc/vmstrdup.c
index 8bbe524fb3..e5c0d4a5ef 100644
--- a/usr/src/lib/libast/common/vmalloc/vmstrdup.c
+++ b/usr/src/lib/libast/common/vmalloc/vmstrdup.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmtrace.c b/usr/src/lib/libast/common/vmalloc/vmtrace.c
index 7111d229ea..2e18ede92f 100644
--- a/usr/src/lib/libast/common/vmalloc/vmtrace.c
+++ b/usr/src/lib/libast/common/vmalloc/vmtrace.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *
diff --git a/usr/src/lib/libast/common/vmalloc/vmwalk.c b/usr/src/lib/libast/common/vmalloc/vmwalk.c
index 6597870d79..f2628a4594 100644
--- a/usr/src/lib/libast/common/vmalloc/vmwalk.c
+++ b/usr/src/lib/libast/common/vmalloc/vmwalk.c
@@ -1,7 +1,7 @@
/***********************************************************************
* *
* This software is part of the ast package *
-* Copyright (c) 1985-2008 AT&T Intellectual Property *
+* Copyright (c) 1985-2009 AT&T Intellectual Property *
* and is licensed under the *
* Common Public License, Version 1.0 *
* by AT&T Intellectual Property *