Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
nl='
2
'
3
tab='	'
4
 
5
fn prompt {
6
	def=()
7
	what=()
8
	if(~ $1 -d && ! ~ $#* 1){
9
		def=$2
10
		shift
11
		shift
12
	}
13
 
14
	optstr=()
15
	if(~ $1 -w && ! ~ $#* 1){
16
		optstr=$2
17
		shift
18
		shift
19
	}
20
 
21
	pr=$1
22
	shift
23
 
24
	opts=($*)
25
	if(~ $#opts 0) {
26
		suf=' '
27
	}
28
	if not if(! ~ $#optstr 0) {
29
		if(~ $optstr '') 
30
			suf=' '
31
		if not {
32
			pr=$pr^' ('^$"optstr^')'
33
			suf=''
34
		}
35
	}
36
	if not {
37
		pr=$pr^' ('^$1
38
		shift
39
		for(i)
40
			pr=$pr^', '^$i
41
		pr=$pr^')'
42
		suf=''
43
	}
44
 
45
	if(~ $#def 1)
46
		pr=$pr^$suf^'['^$def^']'
47
	pr=$pr^': '
48
 
49
 
50
	okay=no
51
	while(~ $okay no) {
52
# whatis opts
53
		echo -n $pr >[1=2]
54
		ifs='' {rd=`{read}}
55
		if(~ $#rd 0)
56
			exit notdone
57
		rd=`{echo $rd}
58
		if(~ $#rd 0 || ~ $rd '')
59
			rd=$def
60
 
61
		switch($#opts){
62
		case 0
63
			if(! ~ $rd '')
64
				okay=yes
65
		case *
66
			if(~ $rd $opts)
67
				okay=yes
68
		}
69
	}
70
	echo -n $rd >/env/rd	# just in case
71
}
72