aux/getflags changes to the various scripts. Reference: /n/sources/patch/applied/getflags-script-changes Date: Mon Jan 30 23:14:01 CET 2006 --- /sys/src/cmd/lp/lp.rc Mon Jan 30 23:12:26 2006 +++ /sys/src/cmd/lp/lp.rc Mon Jan 30 23:12:22 2006 @@ -33,8 +33,12 @@ lp [-d printer] -k jobnos options include: - -H no header - -L landscape mode + -D turn on debugging output + -H no header + -L landscape mode + -M print on machine + -Q put task only into the queue + -R restart printer daemon -c make copies -f specify font and size -i take media from input bin @@ -42,9 +46,19 @@ -m magnify times -n print logical pages per physical page -o print only pages i-j and k - -r reverse pages + -r reverse pages + -u print as -x x page offset in inches -y y page offset in inches' + +fn usage { + bifs=$ifs + ifs='' + echo $"USAGE + ifs=$bifs + exit usage +} + # umask 000 # this doesn't work in plan 9 if (~ $#sysname 0) THIS_HOST=plan9 @@ -77,53 +91,59 @@ REVERSE='' NOHEAD='' TRAY='' -# remove FLAGS from environment -FLAGD=();FLAGH=();FLAGL=();FLAGM=();FLAGQ=();FLAGc=();FLAGd=();FLAGf=() -FLAGi=();FLAGk=();FLAGl=();FLAGm=();FLAGn=();FLAGo=();FLAGp=();FLAGq=() -FLAGr=();FLAGt=();FLAGu=();FLAGx=();FLAGy=() + # Process options -eval `{aux/getflags DHLM:1QRc:1d:1f:1i:1kl:1m:1n:1o:1p:1qrt:1u:1x:1y:1 $*} +flagfmt='D,H,L,Q,R,r,q,c copies,d printer,f font.size,i src,k jobnos,l lines,m magnify,n lpages,o pages,u userid,x offset,y offset' +argv0=lp + +bifs=$ifs +ifs='' +if(! eval `{aux/getflags $*}) { + usage + exit usage +} +ifs=$bifs + if (! ~ $status '') exit $status -if (! ~ $#FLAGD 0) { DEBUG=1; flag x + }; if not { DEBUG=''; flag x - } -if (! ~ $#FLAGH 0) NOHEAD=1; if not NOHEAD='' -if (! ~ $#FLAGL 0) LAND=1; if not LAND='' +if (! ~ $#flagD 0) { DEBUG=1; flag x + }; if not { DEBUG=''; flag x - } +if (! ~ $#flagH 0) NOHEAD=1; if not NOHEAD='' +if (! ~ $#flagL 0) LAND=1; if not LAND='' # originating machine id (for information only) -if (! ~ $#FLAGM 0 && ~ $LPUSERID daemon) LPMACHID=$FLAGM -if (! ~ $#FLAGQ 0) QONLY=1; if not QONLY='' -if (! ~ $#FLAGR 0) RESET=1; if not RESET='' -if (! ~ $#FLAGc 0) COPIES=$FLAGc; if not COPIES=1 -if (! ~ $#FLAGd 0) { - switch ($FLAGd) { +if (! ~ $#flagM 0 && ~ $LPUSERID daemon) LPMACHID=$flagM +if (! ~ $#flagQ 0) QONLY=1; if not QONLY='' +if (! ~ $#flagR 0) RESET=1; if not RESET='' +if (! ~ $#flagc 0) COPIES=$flagc; if not COPIES=1 +if (! ~ $#flagd 0) { + switch ($flagd) { case '?'; exec awk 'BEGIN{printf "device location host class\n"} /^[^#]/ {printf "%-12s %-9s %-20s %s\n", $1, $2, $3, $6 }' $LPLIB/devices - case *; LPDEST=$FLAGd + case *; LPDEST=$flagd } } -if (! ~ $#FLAGf 0) eval `{echo $FLAGf | sed -e 's/([^.]*)\.([0-9.]*)/FONT=\1;POINT=\2;/'} -if (! ~ $#FLAGi 0) IBIN=$FLAGi -if (! ~ $#FLAGk 0) KILLFLAG=1; if not KILLFLAG=0 -if (! ~ $#FLAGl 0) LINES=$FLAGl -if (! ~ $#FLAGm 0) MAG=$FLAGm -if (! ~ $#FLAGn 0) NPAG=$FLAGn -if (! ~ $#FLAGo 0) OLIST=-o$FLAGo -if (! ~ $#FLAGp 0) { - switch (FLAGp) { +if (! ~ $#flagf 0) eval `{echo $flagf | sed -e 's/([^.]*)\.([0-9.]*)/FONT=\1;POINT=\2;/'} +if (! ~ $#flagi 0) IBIN=$flagi +if (! ~ $#flagk 0) KILLFLAG=1; if not KILLFLAG=0 +if (! ~ $#flagl 0) LINES=$flagl +if (! ~ $#flagm 0) MAG=$flagm +if (! ~ $#flagn 0) NPAG=$flagn +if (! ~ $#flago 0) OLIST=-o$flago +if (! ~ $#flagp 0) { + switch ($flagp) { case '?';exec ls $LPLIB/process - case *; LPPROC=$FLAGp + case *; LPPROC=$flagp } } -if (! ~ $#FLAGq 0) LPQ=1; if not LPQ=0 -if (! ~ $#FLAGr 0) { +if (! ~ $#flagq 0) LPQ=1; if not LPQ=0 +if (! ~ $#flagr 0) { switch ($REVERSE) { case '';REVERSE=1 case 1; REVERSE='' } } -if (! ~ $#FLAGt 0) TRAY=$FLAGt # originating user id -if (! ~ $#FLAGu 0) LPUSERID=$FLAGu -if (! ~ $#FLAGx 0) XOFF=$FLAGx -if (! ~ $#FLAGy 0) YOFF=$FLAGy +if (! ~ $#flagu 0) LPUSERID=$flagu +if (! ~ $#flagx 0) XOFF=$flagx +if (! ~ $#flagy 0) YOFF=$flagy if (~ $#LPDEST 0) { echo 'Set environment variable LPDEST or use the --- /rc/bin/ape/ar89 Mon Jan 30 23:12:44 2006 +++ /rc/bin/ape/ar89 Mon Jan 30 23:12:41 2006 @@ -1,13 +1,23 @@ #!/bin/rc -ifs='' eval `{getflags cdprtxuv $*} +flagfmt='c,d,p,r,t,u,v,x' +argv0=ar89 +args='archive files ...' + +bifs=$ifs +ifs='' +if(! eval `{aux/getflags $*}) { + aux/usage + exit usage +} +ifs=$bifs key='' -if (~ $#FLAGc 1) key=$key^c -if (~ $#FLAGd 1) key=$key^d -if (~ $#FLAGp 1) key=$key^p -if (~ $#FLAGr 1) key=$key^r -if (~ $#FLAGt 1) key=$key^t -if (~ $#FLAGx 1) key=$key^x -if (~ $#FLAGu 1) key=$key^u -if (~ $#FLAGv 1) key=$key^v +if (~ $#flagc 1) key=$key^c +if (~ $#flagd 1) key=$key^d +if (~ $#flagp 1) key=$key^p +if (~ $#flagr 1) key=$key^r +if (~ $#flagt 1) key=$key^t +if (~ $#flagx 1) key=$key^x +if (~ $#flagu 1) key=$key^u +if (~ $#flagv 1) key=$key^v exec /$cputype/bin/ar $key $* --- /rc/bin/ape/yacc Mon Jan 30 23:13:08 2006 +++ /rc/bin/ape/yacc Mon Jan 30 23:13:04 2006 @@ -1,8 +1,19 @@ #!/bin/rc -# ifs='' eval `{getflags dltvb:1p:1 $*} +flagfmt='d,l,t,v,b stem' +argv0=yacc +args='grammar' + +bifs=$ifs +ifs='' +if(! eval `{aux/getflags $*}) { + aux/usage + exit usage +} +ifs=$bifs + y=-S -#if (~ $#FLAGd 1) y=($y -d) -#if (~ $#FLAGt 1) y=($y -D2) -#if (~ $#FLAGv 1) y=($y -v) -#if (~ $#FLAGb 1) y=($y -s $FLAGb) +if (~ $#flagd 1) y=($y -d) +if (~ $#flagt 1) y=($y -D2) +if (~ $#flagv 1) y=($y -v) +if (~ $#flagb 1) y=($y -s $flagb) exec /$cputype/bin/yacc $y $* --- /rc/bin/leak Mon Jan 30 23:13:34 2006 +++ /rc/bin/leak Mon Jan 30 23:13:30 2006 @@ -2,36 +2,37 @@ rfork e -usage='prog-or-pid' -FLAGs=() -FLAGb=() -FLAGr=() -FLAGx=() -eval `{aux/getflags bsx:1r:1f:1 $*} +flagfmt='s,b res width,f binary' +argv0=leak +args='proc || pid' if(~ $#* 0) { - echo 'usage: leak [-s] [-f binary] [-b [-r res] [-x width]] '$usage >[1=2] + aux/usage exit usage } +bifs=$ifs +ifs='' +if(! eval `{aux/getflags $*}) { + aux/usage + exit usage +} +ifs=$bifs; -sflag=() -xflag=() -if(~ $#FLAGs 1) +if(~ $#flags 1) sflag=($sflag -s) -if(~ $#FLAGf 1) - sflag=($sflag -f $FLAGf) -if(~ $#FLAGb 1) - xflag=($xflag -b) -if(~ $#FLAGr 1) - xflag=($xflag -r $FLAGr) -if(~ $#FLAGx 1) - xflag=($xflag -x $FLAGx) +if(~ $#flagf 1) + sflag=($sflag -f $flagf) +if(! ~ $#flagb 0) + xflag=(-b -r $flagb(1) -x $flagb(2)) -if(~ $#FLAGs 1 && ~ $#FLAGb 1){ +if(~ $#sflag 1 && ! ~ $#flagb 0) { echo 'cannot use both -s and -b' >[1=2] exit usage } - +if(~ $#* 0) { + aux/usage + exit usage +} if(! test -d /proc/$1) { # x=`{psu | awk '$NF=="'$1'" {print $2}'} @@ -40,6 +41,8 @@ echo 'no processes named '$1 >[1=2] exit usage } + if(! ~ $#flagb 0) + xflag=(-b $flagb(1) $flagb(2)) x=($sflag $xflag $x) echo leak $"x exit @@ -47,9 +50,9 @@ x=`{echo $"* | tr ' ' ,} -echo 'leakdump({'$x'})' | acid -lpool -lleak $1 $FLAGf | aux/acidleak $xflag $binary | +echo 'leakdump({'$x'})' | acid -lpool -lleak $1 $flagf | aux/acidleak $xflag $flagf | { - if(~ $#FLAGs 1) + if(~ $#flags 1) awk '{print $4}' | sort | uniq -c | sort -nr | sed 's! *(.*) (0x.*)!src(\2); // \1!'