diff options
| author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
|---|---|---|
| committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
| commit | 2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch) | |
| tree | f6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/pc/defs | |
| parent | e463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff) | |
| download | plan9front-2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f.tar.xz | |
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/pc/defs')
| -rwxr-xr-x | rc/bin/pc/defs | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/rc/bin/pc/defs b/rc/bin/pc/defs new file mode 100755 index 000000000..c5c2e6950 --- /dev/null +++ b/rc/bin/pc/defs @@ -0,0 +1,72 @@ +nl=' +' +tab=' ' + +fn prompt { + def=() + what=() + if(~ $1 -d && ! ~ $#* 1){ + def=$2 + shift + shift + } + + optstr=() + if(~ $1 -w && ! ~ $#* 1){ + optstr=$2 + shift + shift + } + + pr=$1 + shift + + opts=($*) + if(~ $#opts 0) { + suf=' ' + } + if not if(! ~ $#optstr 0) { + if(~ $optstr '') + suf=' ' + if not { + pr=$pr^' ('^$"optstr^')' + suf='' + } + } + if not { + pr=$pr^' ('^$1 + shift + for(i) + pr=$pr^', '^$i + pr=$pr^')' + suf='' + } + + if(~ $#def 1) + pr=$pr^$suf^'['^$def^']' + pr=$pr^': ' + + + okay=no + while(~ $okay no) { +# whatis opts + echo -n $pr >[1=2] + ifs='' {rd=`{read}} + if(~ $#rd 0) + exit notdone + rd=`{echo $rd} + if(~ $#rd 0 || ~ $rd '') + rd=$def + + switch($#opts){ + case 0 + if(! ~ $rd '') + okay=yes + case * + if(~ $rd $opts) + okay=yes + } + } + echo -n $rd >/env/rd # just in case +} + |
