1*da2e3ebdSchin07-03-28 date.c: add --unelepsed=scale, -U: fmtelapsed() => strelapsed() 2*da2e3ebdSchin07-03-25 wclib.h: iswspace() requires <wctype.h>! 3*da2e3ebdSchin07-03-11 tty.c: add sysV --line-number, -l 4*da2e3ebdSchin07-02-26 Makefile: sumlib.o: direct extract from +lsum (vcodex someday) 5*da2e3ebdSchin07-02-24 Makefile: tweak cmdext.h action for --mam bootstrap 6*da2e3ebdSchin07-02-09 Makefile: { cmdext.h cmdlist.h } depend on *.c list! 7*da2e3ebdSchin07-02-09 Makefile: +lsum to bring in static -lsum (no dynamic right now) 8*da2e3ebdSchin07-02-07 cksum.c: move from src/cmd/std with ftwalk => fts 9*da2e3ebdSchin07-02-07 getconf.c: handle /bin == /usr/bin in defer logic 10*da2e3ebdSchin07-01-26 chmod.c: don't FTS_FOLLOW if !FTS_PHYSICAL 11*da2e3ebdSchin07-01-23 cut.c: Cut_t variable dimension list[] must be last member 12*da2e3ebdSchin07-01-22 uname.c: fix -h typo that clobbered astconf() state -- ouch 13*da2e3ebdSchin07-01-02 fmt.c: fix buffer splice off by one bug -- what else 14*da2e3ebdSchin06-11-23 cmd.h: because of proto cmdinit cannot be a function like macro 15*da2e3ebdSchin06-11-21 cp.c: fix 06-10-31 const dot[] readonly assignment 16*da2e3ebdSchin06-11-15 cp.c: fix 06-10-31 ln -s enoent bug 17*da2e3ebdSchin06-11-11 getconf.c: let astconf() handle "undefined" vs. "" 18*da2e3ebdSchin06-11-11 getconf.c: fix deferred getconf path search 19*da2e3ebdSchin06-11-11 fmt.c: handle two char { \t \n } in --usage ouput 20*da2e3ebdSchin06-10-31 global edit to eliminate most non-const static data0 21*da2e3ebdSchin06-10-31 use <cmd.h> for all b_*() implementations; drop <cmdlib.h> 22*da2e3ebdSchin06-10-31 cmd.h: add CMD_ prefix to { BUILTIN DYNAMIC STANDALONE } 23*da2e3ebdSchin06-10-31 join.c: tone down /tmp usage vi SFSK_DISCARD 24*da2e3ebdSchin06-10-31 cp.c,rm.c: update to <fts.h> to accomodate non-static data 25*da2e3ebdSchin06-10-29 date.c: "...%H%..." => "...%H" "%..." to avoid SCCS conflict 26*da2e3ebdSchin06-10-26 fds.c: handle sctp 27*da2e3ebdSchin06-10-18 tail.c: fix invalid suffix infinite loop 28*da2e3ebdSchin06-10-11 chgrp.c,cp.c: add sfstruse() error checks 29*da2e3ebdSchin06-10-10 tee.c: add --linebuffer, -l 30*da2e3ebdSchin06-10-06 getconf.c: preserve native getconf(1) known variable behavior 31*da2e3ebdSchin06-10-04 sync.c: add (thanks to Roland Mainz) 32*da2e3ebdSchin06-10-04 getconf.c: add -v specification => run native getconf(1) 33*da2e3ebdSchin06-09-28 stty.c: static setmode() => set() for darwin.i386 34*da2e3ebdSchin06-09-27 head.c: handle -1c => -c1 35*da2e3ebdSchin06-09-19 pathchk.c: pathconf() => astconf() 36*da2e3ebdSchin06-09-11 tail.c: handle compatibility corner cases 37*da2e3ebdSchin06-09-08 date.c: add output write error diagnostic 38*da2e3ebdSchin06-09-04 tail.c: fix initial position for -n0, no args => no -f 39*da2e3ebdSchin06-08-28 uniq.c: add -D,--all-repeated 40*da2e3ebdSchin06-08-25 wc.c,wclib.c: add -L,--longest-line,WC_LONGEST 41*da2e3ebdSchin06-08-24 wc.c,wclib.c: implement -m and WC_MBYTE 42*da2e3ebdSchin06-08-24 rmdir.c: -sp applies to every message, add gnu -e 43*da2e3ebdSchin06-08-23 rmdir.c: add solaris --suppress, -s 44*da2e3ebdSchin06-08-23 mkdir.c: don't add 0300 to -p final dir mode 45*da2e3ebdSchin06-07-17 cut.c: handle last line with no newline 46*da2e3ebdSchin06-07-17 cut.c: --output-delimiter == --line-delimiter 47*da2e3ebdSchin06-06-25 chmod.c: mask -c output with S_IPERM 48*da2e3ebdSchin06-05-09 uname.c: add -o; change -a to match linux 49*da2e3ebdSchin06-05-03 date.c: add --last -L to list last of multiple time args 50*da2e3ebdSchin06-02-14 tail.c: fix -f bug that lost fast stream data 51*da2e3ebdSchin06-02-11 getconf.c: exit 1 if name invalid -- duh 52*da2e3ebdSchin06-01-28 cp.c,rm.c: fix astquery() 'q' to return and not exit() 53*da2e3ebdSchin05-08-11 fmt.c: fix -o to handle raw --usage strings 54*da2e3ebdSchin05-05-17 cat.c,head.c: disable EPIPE error messages 55*da2e3ebdSchin05-04-14 chgrp.c: -f means all non-syntax error messages 56*da2e3ebdSchin05-04-11 fds.c: add from old internal open(1) 57*da2e3ebdSchin05-04-09 cmdext.h,cmdlist.h: generate from source -- about time 58*da2e3ebdSchin05-03-24 features/symlink: verify { lchmod lchown } implementations 59*da2e3ebdSchin05-03-07 date.c: add --listzones to list the time zone table 60*da2e3ebdSchin05-02-14 chmod.c: add --reference=file 61*da2e3ebdSchin05-01-11 cat.c: restore output stream to binary mode on exit 62*da2e3ebdSchin04-12-15 cp.c: add --preserve high resolution time support 63*da2e3ebdSchin04-12-08 date.c: add high resolution time support 64*da2e3ebdSchin04-12-01 cmp.c: fix %6I*ld => %6I*d -- doh 65*da2e3ebdSchin fmt.c: handle "\n\n operands \n\n" 66*da2e3ebdSchin head.c: handle -cN -nN, N > 4Gb 67*da2e3ebdSchin04-11-22 cmp.c: handle >2G chars/lines 68*da2e3ebdSchin04-11-18 fold.c: add --prepend=text, --append=text 69*da2e3ebdSchin04-10-31 tail.c: use SF_LOCKR macro 70*da2e3ebdSchin04-10-28 tail.c: use strtol() for old stype [+-]number[suffix] -- doh 71*da2e3ebdSchin04-10-22 cp.c: check rename() errno==ENOENT to retain destination 72*da2e3ebdSchin04-10-11 fmt.c: fix -o,--optget sublist bugs 73*da2e3ebdSchin tail.c: use strton() for number conversion 74*da2e3ebdSchin04-10-08 pathchk.c: add empty path and -p - first component char 75*da2e3ebdSchin04-10-01 fmt.c: add -o,--optget concatenated usage string format 76*da2e3ebdSchin stty.c: context is ERROR_INTERCATIVE 77*da2e3ebdSchin rm.c: restore 3d before exit 78*da2e3ebdSchin04-09-24 pathchk.c: fix docs 79*da2e3ebdSchin04-09-14 date.c: add %| and %& --parse docs 80*da2e3ebdSchin04-08-27 cp.c: add FTW_DC check -- duh 81*da2e3ebdSchin04-08-01 fmt.c: handle last char != '\n' 82*da2e3ebdSchin04-07-22 date.c,uname.c: access() => eaccess() 83*da2e3ebdSchin04-07-01 fmt.c: handle large input lines -- ouch 84*da2e3ebdSchin04-06-11 id.c: fix -r to output something! 85*da2e3ebdSchin04-05-27 expr.c: fix `:' op subexpression output 86*da2e3ebdSchin04-04-15 chmod.c: follow symlink for relative mode 87*da2e3ebdSchin04-04-12 Makefile: add STDCHMOD (for osf.alpha) 88*da2e3ebdSchin04-03-19 tail.c: handle -f sfreserve() large chunk failure 89*da2e3ebdSchin04-02-29 cp.c: decouple -f and -i for standard CONFORMANCE 90*da2e3ebdSchin cp.c: mv now attempts rename() before remove()+rename() 91*da2e3ebdSchin date.c: -f format or +format disables system clock set 92*da2e3ebdSchin04-02-14 cp.c: add -F --fsync to call fsync(2) for each copied file 93*da2e3ebdSchin04-01-05 head.c: -s now uses opt_info.number for >2Gb skip 94*da2e3ebdSchin03-09-18 tail.c: add --log 95*da2e3ebdSchin03-09-11 rm.c: add --unconditional 96*da2e3ebdSchin03-08-11 fold.c: add --delimiter=c to break at c 97*da2e3ebdSchin03-07-28 features/time: change settimeofday() test to 2nd arg of (void*)0 98*da2e3ebdSchin expr.c: add {match,substr,index,length,quote} 99*da2e3ebdSchin03-07-15 fmt.c: fix trailing space bug 100*da2e3ebdSchin03-06-20 uname.c: fix -p constant string overwrite 101*da2e3ebdSchin03-06-04 stty.c: add undef to control assignment docs 102*da2e3ebdSchin03-05-31 uname.c: add -f and sysinfo()/confstr() compatibility via astconf() 103*da2e3ebdSchin03-05-27 rm.c: fix inappropriate "/.." append path overflow 104*da2e3ebdSchin cut.c: snarf from dgk 105*da2e3ebdSchin03-05-18 rm.c: check st_nlink to verify progress w.r.t. ftwalk/fts 106*da2e3ebdSchin03-05-15 join.c: fix stealth -v2 bug (thanks ahs) 107*da2e3ebdSchin03-05-04 wc.c: drop trailing space for `wc -l < file' 108*da2e3ebdSchin03-03-21 date.c: add %Q/recent/distant/ docs 109*da2e3ebdSchin03-02-19 date.c: fix %+|!flag docs 110*da2e3ebdSchin02-11-14 update for cmdinit() 4th arg and ERROR_NOTIFY for interrupt cleanup 111*da2e3ebdSchin02-10-02 date.c: tmform() => tmfmt() 112*da2e3ebdSchin02-09-30 date.c,uname.c: change execv() calls to procrun(): exec|exit => bad 113*da2e3ebdSchin02-09-06 wclib.c: fix 1 char-at-a-time miscount bug 114*da2e3ebdSchin02-08-19 chgrp.c: convert to use <cdt.h> 115*da2e3ebdSchin02-07-23 join.c: fix comm snarf typo 116*da2e3ebdSchin02-04-05 date.c: add %u 117*da2e3ebdSchin02-01-24 stty.c: ifdef a few more macros for uts (yes, its still running) 118*da2e3ebdSchin01-12-14 date.c: clarify %z doc 119*da2e3ebdSchin01-10-31 mkdir.c: mkdir() on existing dir could fail with errno!=EEXIST 120*da2e3ebdSchin uname.c: add execve() loop check for unknown options 121*da2e3ebdSchin01-10-29 tail.c: SF_SHARE on only if not reading through EOF 122*da2e3ebdSchin01-10-11 getconf.c: fix usage typos 123*da2e3ebdSchin01-09-11 cp.c,cmd.h: handle . in argv[0] 124*da2e3ebdSchin cp.c: add O_BINARY to all open() calls 125*da2e3ebdSchin01-09-06 tail: input streams must be SF_SHARE -- duh 126*da2e3ebdSchin01-07-16 stty: fix cntl() macro for CC_NATIVE!=CC_ASCII 127*da2e3ebdSchin01-05-31 date: fix /bin/date fallback logic 128*da2e3ebdSchin stty: fix a few mismatched flags, -a and -g option logic 129*da2e3ebdSchin stty: tone down sane to modify current settings rather than from zero 130*da2e3ebdSchin01-05-01 uname: -i => -h, add sol.sun4 -i, add sgi -R, punt to /usr/bin/uname 131*da2e3ebdSchin01-04-17 date,rm: add 132*da2e3ebdSchin01-03-07 cp: fix readonly string mod on "." 133*da2e3ebdSchin01-01-23 cp: `cp foo' => `cp foo .' only for CONFORMANCE!=standard 134*da2e3ebdSchin00-12-01 cut: multibyte support 135*da2e3ebdSchin00-10-31 mkdir: handle races by checking EEXIST 136*da2e3ebdSchin00-09-20 cp: copy argv to stack before modifying in place 137*da2e3ebdSchin00-05-18 add setlocale(LC_ALL,"") 138*da2e3ebdSchin00-04-30 join: drop wierd opt_info.argv reference 139*da2e3ebdSchin00-03-17 expr: add == operator -- duh 140*da2e3ebdSchin cp,ln,mv: delay pathcanon() on destination to verify `cp a b/.' 141*da2e3ebdSchin getconf: use astgetconf for proper message control 142*da2e3ebdSchin ERROR_translate: dictionary update 143*da2e3ebdSchin00-03-08 tail: handle multiple -f files 144*da2e3ebdSchin00-03-07 fmt: add 145*da2e3ebdSchin00-03-07 dirname: handle PATH_LEADING_SLASHES as documented 146*da2e3ebdSchin tail: accept + options 147*da2e3ebdSchin00-02-14 chmod: --ignore-umask to ignore umask(2) in symbolic expressions 148*da2e3ebdSchin chmod,chgrp,cp: use FTS_NOSEEDOTDIR for correct path construction 149*da2e3ebdSchin cat: fix -n (was ignored, wow) 150*da2e3ebdSchin00-01-27 getconf: add "-a" and "-v spec" for sol7.* compatibility 151*da2e3ebdSchin99-09-09 join: fix -j1 vs. -j 1, add --ignorecase 152*da2e3ebdSchin99-06-22 paste: defualt delim in writable string 153*da2e3ebdSchin99-06-16 cat: fix --dos-ouput typo 154*da2e3ebdSchin99-06-11 cp: tighten chown() diagnostics 155*da2e3ebdSchin99-06-08 expr: nothing for NULL string bug fix 156*da2e3ebdSchin99-05-21 paste: fix missing newline columnize bug 157*da2e3ebdSchin99-05-20 mv: do not check for `mv foo foo' since rename() handles it 158*da2e3ebdSchin99-05-01 cmp,comm,cp/mv/ln,expr,fold,getconf,head: long options 159*da2e3ebdSchin join,logname,paste,pathchk,tail,tee: long options 160*da2e3ebdSchin99-04-10 uname: long options, stdize -a 161*da2e3ebdSchin chmod,head,tail,rev: long options 162*da2e3ebdSchin cut: long options, pass regression test 02 163*da2e3ebdSchin99-04-07 cat: long options, fix O_TEXT modes 164*da2e3ebdSchin99-01-11 tail: fix +n 165*da2e3ebdSchin join: another ggs/psm bug 166*da2e3ebdSchin join: all 1 and/or 2 to be unseekable 167*da2e3ebdSchin99-01-01 cp: fix -p 168*da2e3ebdSchin chmod: drop -l option because of clash with l (lock) mode 169*da2e3ebdSchin98-12-25 cat: add -T to sfopen(,,"rt") 170*da2e3ebdSchin98-11-11 chgrp,chmod: cannot open file stream => not found 171*da2e3ebdSchin join: fix another ggs/psm bug; thanks guys 172*da2e3ebdSchin98-10-20 cp: fix cp -rp to update dir times too 173*da2e3ebdSchin98-09-22 join: fix ggs null field bug 174*da2e3ebdSchin98-08-11 join: fix last regression test bug 175*da2e3ebdSchin98-05-29 join: add jp->common to handle boundary conditions 176*da2e3ebdSchin98-03-11 cat,cp,rev,tee: fix sfmove() error checks 177*da2e3ebdSchin98-03-01 join: fix bug that emitted records more than once after eof 178*da2e3ebdSchin cp: fix sfmove() error check 179*da2e3ebdSchin98-02-14 cp: -R physical, -[HLP], -r getconf(PATH_RESOLVE) 180*da2e3ebdSchin98-01-11 cp: check sfclose() return value 181*da2e3ebdSchin98-01-07 chown,chgrp,chmod: use fts for -R 182*da2e3ebdSchin mkdir: fix -p default mode 183*da2e3ebdSchin97-12-07 mkdir: fix umask() reset 184*da2e3ebdSchin97-11-11 chown,chgrp: proper interpretation of -h,-l for lchown() 185*da2e3ebdSchin chown,chgrp: only chown() if uid or gid change 186*da2e3ebdSchin97-10-31 mkdir: do umask right 187*da2e3ebdSchin97-08-11 cmdinit: clear opt_info.index to allow multiple calls 188*da2e3ebdSchin cp,ln,mv: add 189*da2e3ebdSchin97-07-17 join: fix a few more -a bugs 190*da2e3ebdSchin97-05-31 expr: optget() only if CONFORMANCE==standard 191*da2e3ebdSchin97-04-01 join: fix a few bugs that make it work! 192*da2e3ebdSchin96-12-25 head: sfset(sfstdin,SF_SHARE,1) 193*da2e3ebdSchin Makefile: add -last to cmd lib list 194*da2e3ebdSchin drop function __IMPORT__ 195*da2e3ebdSchin96-08-11 tail: check for truncated file and rewind for -f 196*da2e3ebdSchin96-04-08 update <cmd.h> 197*da2e3ebdSchin96-02-29 uname: -a like std, -l for everything 198*da2e3ebdSchin id: add -a (default) 199*da2e3ebdSchin96-02-14 wc: speed up inner loop newline breakout 200*da2e3ebdSchin96-01-30 unused var cleanup 201*da2e3ebdSchin96-01-01 AT&T Research now 202*da2e3ebdSchin pathchk: handle getcwd(0,0) error 203*da2e3ebdSchin expr: switch to <regex.h> 204*da2e3ebdSchin95-11-11 add expr.c 205*da2e3ebdSchin fix cut exit code and -s optimization 206*da2e3ebdSchin95-10-11 add extern b_* to cmd.h 207*da2e3ebdSchin add void* context 3rd arg to b_main() 208*da2e3ebdSchin95-05-09 add getconf 209*da2e3ebdSchin cat -u avoids mmap 210*da2e3ebdSchin add chown|chgrp -m uid|gid map file 211*da2e3ebdSchin add chown|chgrp -P for systems with lchown(2) 212*da2e3ebdSchin chown|chgrp -P => lstat() too! 213*da2e3ebdSchin chmod|chown|chgrp -HLP 214*da2e3ebdSchin95-04-01 version 1.2 215*da2e3ebdSchin add rmdir 216*da2e3ebdSchin95-02-14 fix mkdir -p symlink bug 217*da2e3ebdSchin fix mkdir '/' skip bug that went one too far 218