0N/A11-01-27 date: add { -R, --rfc-2822, -T, --rfc-3339=type }
0N/A10-12-10
rm.c: fix not-writable logic
0N/A10-12-01
tee.c: add iterrupt logic for slow open(1) -- needs to be generalized
0N/A10-11-30
chgrp.c: add -N,--numeric to bypass name lookup
0N/A10-10-20 cp: add --timestamps (preserv timestamps and permissions)
2362N/A10-10-20 ln: fix 'cannot replace existing file' logic
0N/A10-10-10 cp,mv: add --remove-destination
0N/A10-06-12
paste.c: repeat after me: do not modify argv[i]
0N/A10-06-01 sync with ast api 20100601
0N/A10-05-09
tail.c: fix -0f bug that inially listed the entire file
0N/A10-04-12
cat.c: fix -v bug that dumped core and make consistent with cmp --print-chars
0N/A10-04-11
cmp.c: add --print-bytes, --count=n, --differences=n
0N/A10-04-08
mkdir.c: fix check for { S_ISUID S_ISGID S_ISVTX } after successful mkdir(2)
2362N/A10-03-23
tail.c: fix -f large initial offset bug that didn't copy all data
2362N/A10-03-07
tail.c: sfsync(sfstdout) after all -f done, fix -f partial line
0N/A10-01-26
tail.c: -f sleep(1) only if no progress from last round of checks
0N/A10-01-20
cp.c: free(state) if called from old shell
0N/A09-08-11
wc.c: add setlocale(LC_CTYPE,"C") cleanup, add utf8 optimzations
0N/A09-08-10
uniq.c: replace -c 1..9999 sfsprintf() with inline conversion
0N/A09-08-01
join.c: fix empty field null pointer deref
0N/A09-06-19
mktemp.c: --unsafe now checks and prints path but does create
0N/A09-06-19
tee.c: add ERROR_CALLBACK for tee_cleanup() sfio discipline pop
0N/A09-06-18
rm.c: handle interrupts during interactive query
0N/A09-06-18
cp.c: handle interrupts during interactive query
0N/A09-05-25
tail.c: fix old style option logic to handle --invalid-long-option
0N/A09-03-15
tail.c: fix --timeout termination logic
0N/A09-03-03
tee.c: clean up sfio disciplines on error
0N/A09-03-03
cat.c: fix -v|-e|-n|-B interaction bugs
0N/A09-02-02
uniq.c: document -number == -fnumber, +number == -snumber
0N/A09-02-02
tail.c: fix usage[] for negative offsets, add sun -b
0N/A09-01-31
dirname.c: add experimental { -f -r -x } for pathpath(3)
0N/A09-01-05
cmp.c: fix EOF diagnostic to conform to posix
0N/A08-12-07
date.c: add %[_][EO]K for [space pad] [full|long] iso docs
0N/A08-11-10
stty.c: check for -t grouping so -tostop != -t -ostop
0N/A08-10-15
rm.c: handle 'rm -f x x' => exit 0
0N/A08-09-08
stty.c: #ifdef guard TAB[012] -- freebsd: damn the posix, full speed ahead
0N/A08-04-24
uniq.c: add optget() 'n' option for -1 => -f1
0N/A08-04-24
getconf.c: clarify diffs between "name - value" and "name = value"
0N/A08-04-01
paste.c: fix --noserial stream vector access bug
0N/A08-04-01
stty.c: fix off2 unitialized reference
0N/A08-03-11
chgrp.c: fix -m to use uid:gid as lookup key
0N/A08-02-11 Makefile: add -lmd possibly required by
sumlib.o -- hack alert
0N/A08-01-30
expr.c: fix <=0 type that broke substr * 1 * -- wow
0N/A07-12-13
cp.c: fix builtin state reinitialization
0N/A07-11-27
cp.c: open non-existent destination with O_EXCL
0N/A07-11-27
stty.c: add -t,--terminal-group to list tty pgrp
0N/A07-11-27
cksum.c: --silent -s => -S, -s == -x sys5 for gnu compatibility
0N/A07-11-11
tee.c: drop ancient bsd compatibility "-" operand => SIGINT
0N/A07-10-12
cp.c: plug usage string memory leak by using per-builtin state
0N/A07-09-21
cksum.c: add sumprint() default scale arg, --scale, --bsd for solaris
0N/A07-07-17
cat.c: fix --squeeze-blank to reduce multiple blank lines to *one*
0N/A07-05-20
cmd.h: handle msvc's balk at if(0)0=0;
0N/A07-05-11
cmd.h: add _CMD_CONTEXT_OK() to verify >= 20070511 context
0N/A07-04-25
mkdir.c: force (S_ISVTX|S_ISUID|S_ISGID) after mkdir(2)
0N/A07-04-24
procrun.c: add -last intercept => sh_run() and whence -q
0N/A07-04-19
uname.c: name operands first checked for CS_NAME, then NAME
0N/A07-03-28
date.c: add --unelapsed=scale, -U: fmtelapsed() => strelapsed()
0N/A07-03-11
tty.c: add sysV --line-number, -l
0N/A07-02-26 Makefile:
sumlib.o: direct extract from +lsum (vcodex someday)
0N/A07-02-24 Makefile: tweak
cmdext.h action for --mam bootstrap
0N/A07-02-09 Makefile: +lsum to bring in static -lsum (no dynamic right now)
0N/A07-01-26
chmod.c: don't FTS_FOLLOW if !FTS_PHYSICAL
0N/A07-01-23
cut.c: Cut_t variable dimension list[] must be last member
0N/A07-01-22
uname.c: fix -h typo that clobbered astconf() state -- ouch
0N/A07-01-02
fmt.c: fix buffer splice off by one bug -- what else
0N/A06-11-23
cmd.h: because of proto cmdinit cannot be a function like macro
0N/A06-11-21
cp.c: fix 06-10-31 const dot[] readonly assignment
0N/A06-11-15
cp.c: fix 06-10-31 ln -s enoent bug
0N/A06-11-11
fmt.c: handle two char { \t \n } in --usage ouput
0N/A06-10-31 global edit to eliminate most non-const static data0
0N/A06-10-31
cmd.h: add CMD_ prefix to { BUILTIN DYNAMIC STANDALONE }
0N/A06-10-31
join.c: tone down /tmp usage vi SFSK_DISCARD
0N/A06-10-29
date.c: "...%H%..." => "...%H" "%..." to avoid SCCS conflict
0N/A06-10-18
tail.c: fix invalid suffix infinite loop
0N/A06-10-06
getconf.c: preserve native getconf(1) known variable behavior
0N/A06-10-04
getconf.c: add -v specification => run native getconf(1)
0N/A06-09-11
tail.c: handle compatibility corner cases
0N/A06-09-08
date.c: add output write error diagnostic
0N/A06-09-04
tail.c: fix initial position for -n0, no args => no -f
0N/A06-08-24
rmdir.c: -sp applies to every message, add gnu -e
0N/A06-08-23
mkdir.c: don't add 0300 to -p final dir mode
0N/A06-07-17
cut.c: handle last line with no newline
0N/A06-07-17
cut.c: --output-delimiter == --line-delimiter
0N/A06-05-03
date.c: add --last -L to list last of multiple time args
0N/A06-02-14
tail.c: fix -f bug that lost fast stream data
0N/A06-01-28
cp.c,
rm.c: fix astquery() 'q' to return and not exit()
0N/A05-08-11
fmt.c: fix -o to handle raw --usage strings
0N/A05-04-14
chgrp.c: -f means all non-syntax error messages
0N/A05-04-11
fds.c: add from old internal open(1)
0N/A05-03-07
date.c: add --listzones to list the time zone table
0N/A05-01-11
cat.c: restore output stream to binary mode on exit
0N/A04-12-15
cp.c: add --preserve high resolution time support
0N/A04-12-08
date.c: add high resolution time support
0N/A04-12-01
cmp.c: fix %6I*ld => %6I*d -- doh
0N/A04-11-18
fold.c: add --prepend=text, --append=text
0N/A04-10-28
tail.c: use strtol() for old stype [+-]number[suffix] -- doh
0N/A04-10-22
cp.c: check rename() errno==ENOENT to retain destination
0N/A04-10-11
fmt.c: fix -o,--optget sublist bugs
0N/A04-10-08
pathchk.c: add empty path and -p - first component char
0N/A04-10-01
fmt.c: add -o,--optget concatenated usage string format
0N/A04-08-27
cp.c: add FTW_DC check -- duh
0N/A04-07-01
fmt.c: handle large input lines -- ouch
0N/A04-06-11
id.c: fix -r to output something!
0N/A04-05-27
expr.c: fix `:' op subexpression output
0N/A04-03-19
tail.c: handle -f sfreserve() large chunk failure
0N/A04-02-29
cp.c: decouple -f and -i for standard CONFORMANCE
0N/A cp.c: mv now attempts rename() before remove()+rename()
0N/A date.c: -f format or +format disables system clock set
0N/A04-02-14
cp.c: add -F --fsync to call fsync(2) for each copied file
0N/A03-08-11
fold.c: add --delimiter=c to break at c
0N/A expr.c: add {match,substr,index,length,quote}
0N/A03-06-04
stty.c: add undef to control assignment docs
0N/A03-05-31
uname.c: add -f and sysinfo()/confstr() compatibility via astconf()
0N/A03-05-27
rm.c: fix inappropriate "/.." append path overflow
0N/A03-05-15
join.c: fix stealth -v2 bug (thanks ahs)
0N/A03-05-04
wc.c: drop trailing space for `wc -l < file'
0N/A02-11-14 update for cmdinit() 4th arg and ERROR_NOTIFY for interrupt cleanup
0N/A02-09-06
wclib.c: fix 1 char-at-a-time miscount bug
0N/A02-01-24
stty.c: ifdef a few more macros for uts (yes, its still running)
0N/A01-10-31
mkdir.c: mkdir() on existing dir could fail with errno!=EEXIST
0N/A uname.c: add execve() loop check for unknown options
0N/A01-10-29
tail.c: SF_SHARE on only if not reading through EOF
0N/A cp.c: add O_BINARY to all open() calls
0N/A01-09-06 tail: input streams must be SF_SHARE -- duh
0N/A01-07-16 stty: fix cntl() macro for CC_NATIVE!=CC_ASCII
0N/A stty: fix a few mismatched flags, -a and -g option logic
0N/A stty: tone down sane to modify current settings rather than from zero
0N/A01-04-17 date,rm: add
0N/A01-03-07 cp: fix readonly string mod on "."
0N/A01-01-23 cp: `cp foo' => `cp foo .' only for CONFORMANCE!=standard
0N/A00-12-01 cut: multibyte support
0N/A00-10-31 mkdir: handle races by checking EEXIST
0N/A00-09-20 cp: copy argv to stack before modifying in place
0N/A00-05-18 add setlocale(LC_ALL,"")
0N/A00-03-17 expr: add == operator -- duh
0N/A cp,ln,mv: delay pathcanon() on destination to verify `cp a b/.'
0N/A getconf: use astgetconf for proper message control
0N/A ERROR_translate: dictionary update
0N/A00-03-08 tail: handle multiple -f files
0N/A00-03-07 dirname: handle PATH_LEADING_SLASHES as documented
0N/A tail: accept + options
0N/A00-02-14 chmod: --ignore-umask to ignore umask(2) in symbolic expressions
0N/A chmod,chgrp,cp: use FTS_NOSEEDOTDIR for correct path construction
0N/A cat: fix -n (was ignored, wow)
0N/A00-01-27 getconf: add "-a" and "-v spec" for sol7.* compatibility
0N/A99-09-09 join: fix -j1 vs. -j 1, add --ignorecase
0N/A99-06-22 paste: defualt delim in writable string
0N/A99-06-16 cat: fix --dos-ouput typo
0N/A99-06-11 cp: tighten chown() diagnostics
0N/A99-06-08 expr: nothing for NULL string bug fix
0N/A99-05-21 paste: fix missing newline columnize bug
0N/A99-05-20 mv: do not check for `mv foo foo' since rename() handles it
0N/A99-05-01 cmp,comm,
cp/mv/ln,expr,fold,getconf,head: long options
0N/A join,logname,paste,pathchk,tail,tee: long options
0N/A99-04-10 uname: long options, stdize -a
0N/A chmod,head,tail,rev: long options
0N/A cut: long options, pass regression test 02
0N/A99-04-07 cat: long options, fix O_TEXT modes
0N/A99-01-11 tail: fix +n
0N/A chmod: drop -l option because of clash with l (lock) mode
0N/A98-12-25 cat: add -T to sfopen(,,"rt")
0N/A98-11-11 chgrp,chmod: cannot open file stream => not found
0N/A98-10-20 cp: fix cp -rp to update dir times too
0N/A98-09-22 join: fix ggs null field bug
0N/A98-08-11 join: fix last regression test bug
98-05-29 join: add jp->common to handle boundary conditions
98-03-11 cat,cp,rev,tee: fix sfmove() error checks
98-03-01 join: fix bug that emitted records more than once after eof
cp: fix sfmove() error check
98-02-14 cp: -R physical, -[HLP], -r getconf(PATH_RESOLVE)
98-01-11 cp: check sfclose() return value
98-01-07 chown,chgrp,chmod: use fts for -R
mkdir: fix -p default mode
97-12-07 mkdir: fix umask() reset
97-11-11 chown,chgrp: proper interpretation of -h,-l for lchown()
chown,chgrp: only chown() if uid or gid change
97-10-31 mkdir: do umask right
97-07-17 join: fix a few more -a bugs
97-05-31 expr: optget() only if CONFORMANCE==standard
97-04-01 join: fix a few bugs that make it work!
96-12-25 head: sfset(sfstdin,SF_SHARE,1)
Makefile: add -last to cmd lib list
96-08-11 tail: check for truncated file and rewind for -f
96-02-29 uname: -a like std, -l for everything
96-02-14 wc: speed up inner loop newline breakout
96-01-30 unused var cleanup
96-01-01 AT&T Research now
pathchk: handle getcwd(0,0) error
fix cut exit code and -s optimization
95-10-11 add extern b_* to
cmd.h add void* context 3rd arg to b_main()
add chown|chgrp -m uid|gid map file
add chown|chgrp -P for systems with lchown(2)
chown|chgrp -P => lstat() too!
95-02-14 fix mkdir -p symlink bug
fix mkdir '/' skip bug that went one too far