Subversion Repositories planix.SVN

Rev

Blame | Last modification | View Log | RSS feed

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
}