Index: trunk/util/parametric_help.sh =================================================================== --- trunk/util/parametric_help.sh (nonexistent) +++ trunk/util/parametric_help.sh (revision 2983) @@ -0,0 +1,222 @@ + +help_params() +{ +awk -v "CGI=$CGI" "$@" ' +BEGIN { + prm=0 + q="\"" + fp_base=fp + sub("[(].*", "", fp_base) + thumbsize=1 +} + +function urlencode(s) +{ + gsub("[#]", "%23", s) + return s +} + +function proc_include(fn) +{ + close(fn) + while(getline < fn) + proc_line() + close(fn) +} + +function proc_line() +{ + if (/^[^\"]*@@include/) { + proc_include(gendir $2) + return + } + + if ((match($0, "@@desc") || match($0, "@@params") || match($0, "@@purpose") || match($0, "@@example"))) { + txt=$0 + key=substr($0, RSTART, RLENGTH) + sub(".*" key "[ \t]*", "", txt) + HELP[key] = HELP[key] " " txt + next + } + + if (/@@thumbsize/) { + sub(".*@@thumbsize", "", $0) + if ($1 ~ ":") { + sub("^:", "", $1) + PDATA[$1,"thumbsize"] = $2 + } + else + thumbsize=$1 + return + } + + if (/@@thumbnum/) { + sub(".*@@thumbnum", "", $0) + if ($1 ~ ":") { + sub("^:", "", $1) + PDATA[$1,"thumbnum"] = $2 + } + return + } + + if (/@@param:/) { + sub(".*@@param:", "", $0) + p=$1 + sub(p "[\t ]*", "", $0) + PARAM[prm] = p + PDESC[prm] = $0 + prm++ + return + } + +# build PPROP[paramname,propname], e.g. PPROP[pin_mask, dim]=1 + if (/@@optional:/ || /@@dim:/ || /@@bool:/) { + key = $0 + sub("^.*@@", "", key) + val = key + sub(":.*", "", key) + sub("^[^:]*:", "", val) + PPROP[val,key] = 1 + return + } + +# build PDATA[paramname,propname], e.g. PDATA[pin_mask, default]=123 + if ((/@@default:/) || (/@@preview_args:/)) { + key = $1 + + txt = $0 + txt = substr(txt, length(key)+1, length(txt)) + sub("^[ \t]*", "", txt) + + sub("^.*@@", "", key) + val = key + sub(":.*", "", key) + sub("^[^:]*:", "", val) + PDATA[val,key] = txt + return + } + +# build: +# PDATAK[paramname,n]=key (name of the value) +# PDATAV[paramname,n]=description (of the given value) +# PDATAN[paramname]=n number of parameter values + if (/@@enum:/) { + key = $1 + + txt = $0 + txt = substr(txt, length(key)+1, length(txt)) + sub("^[ \t]*", "", txt) + + sub("^.*@@enum:", "", key) + val = key + sub(":.*", "", key) + sub("^[^:]*:", "", val) + idx = int(PDATAN[key]) + PDATAK[key,idx] = val + PDATAV[key,idx] = txt + PDATAN[key]++ + return + } +} + +{ proc_line() } + +function thumb(prv, gthumbsize, lthumbsize, thumbnum ,lnk,lnk_gen, thumbsize,ann) +{ + if (lthumbsize != "") + thumbsize = lthumbsize + else + thumbsize = gthumbsize + if (!thumbnum) + ann="&annotation=none" + lnk=q CGI "?cmd=" prv "&output=png&grid=none" ann "&thumb=" thumbsize q + lnk_gen=q CGI "?cmd=" prv q + print "" + print "" + print "" +} + +END { + if (header) { + print "" HELP["@@purpose"] "" + print "
" + print HELP["@@desc"] + } + + if (content) + print "
Ordered list (positions): " HELP["@@params"] + + + if (content) { + print "
name | man dat ory | description | value (bold: default)" + for(p = 0; p < prm; p++) { + name=PARAM[p] + print " | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
" name + if (PPROP[name, "optional"]) + print " | " + else + print " | yes" + print " | " PDESC[p] + print " | "
+ vdone=0
+ if (PDATAN[name] > 0) {
+ print "
Default: " PDATA[name, "default"] "" + vdone++ + } + if (PPROP[name, "bool"]) { + print "Boolean: yes/no, true/false, 1/0" + if (PDATA[name, "default"] != "") + print "; Default: " PDATA[name, "default"] "" + if (PDATA[name, "preview_args"] != "") { + print " " + print "
|