remove busy code translating args -([bnPptw]) to cmd=\1. replace with aux/getflags and sed. Reference: /n/atom/patch/applied2013/manflag Date: Sun Jun 23 17:48:23 CES 2013 Signed-off-by: quanstro@quanstro.net --- /rc/bin/man Sun Jun 23 17:46:37 2013 +++ /rc/bin/man Sun Jun 23 17:46:37 2013 @@ -50,27 +50,17 @@ /bin/page } -search=yes -while(~ $d 0) { - if(~ $#* 0) { - echo 'Usage: man [-bntpPSw] [sec] [sec] ... name1 name2 ...' >[1=2] - exit - } - if(test -d $S/$1){ - sec=($sec $1) - shift - } - if not - switch($1) { - case -b ; cmd=b ; shift - case -n ; cmd=n ; shift - case -P ; cmd=P ; shift - case -p ; cmd=p ; shift - case -S ; search=no ; shift - case -t ; cmd=t ; shift - case -w ; cmd=w ; shift - case * ; d=1 - } +flagfmt='b,n,P,p,S,t,w' +args='[sec] [sec] ... name1 name2 ...' +if(! ifs = () eval `{aux/getflags $* | sed 's/flag([bnPptw])=1/cmd=\1/g + /flag[bnPptw]=\(\)/d'} || ~ $#* 0){ + aux/usage + exit usage +} + +while(test -d $S/$1){ + sec=($sec $1) + shift } if(~ $#sec 0) { sec=`{ls -pd $S/[0-9]* } @@ -79,7 +69,7 @@ if(~ $#* 1) pat='^'^$1^' ' if not pat='^('^`{echo $* | sed 's/ /|/g'}^') ' fils=() -if(~ $search yes) +if(~ $#flagS 0) for(i in $S/$sec){ if(/bin/test -f $i/INDEX){ try=`{grep -i $pat $i/INDEX | sed 's/^[^ ]* //' | sort -u}