-
-EOF
-}
-
-
-print_table ()
-{
- categories=""
- for c in $1; do
- categories="${categories} categories[\"${c}\"] = 1 ;"
- done
- # Remember to prune the dir prefix from projects files
- # ari.*.idx: ::
- cat ${wwwdir}/ari.idx | $AWK >> ${newari} '
-function qsort (table,
- middle, tmp, left, nr_left, right, nr_right, result) {
- middle = ""
- for (middle in table) { break; }
- nr_left = 0;
- nr_right = 0;
- for (tmp in table) {
- if (tolower(tmp) < tolower(middle)) {
- nr_left++
- left[tmp] = tmp
- } else if (tolower(tmp) > tolower(middle)) {
- nr_right++
- right[tmp] = tmp
- }
- }
- #print "qsort " nr_left " " middle " " nr_right > "/dev/stderr"
- result = ""
- if (nr_left > 0) {
- result = qsort(left) SUBSEP
- }
- result = result middle
- if (nr_right > 0) {
- result = result SUBSEP qsort(right)
- }
- return result
-}
-function print_heading (where, bug_i) {
- print ""
- print ""
- print "File | "
- print "Total | "
- print " | "
- for (bug_i = 1; bug_i <= nr_bug; bug_i++) {
- bug = i2bug[bug_i];
- printf ""
- # The title names are offset by one. Otherwize, when the browser
- # jumps to the name it leaves out half the relevant column.
- #printf " ", bug
- printf " ", i2bug[bug_i-1]
- printf "", bug
- printf "%s", gensub(/_/, " ", "g", bug)
- printf "\n"
- printf " | \n"
- }
- #print " | "
- printf " | \n", i2bug[bug_i-1]
- print "Total | "
- print "File | "
- print "
"
-}
-function print_totals (where, bug_i) {
- print "Totals | "
- printf ""
- printf "%s", total
- printf ">"
- printf " | \n"
- print " | ";
- for (bug_i = 1; bug_i <= nr_bug; bug_i++) {
- bug = i2bug[bug_i];
- printf ""
- printf ""
- printf "%d", bug, bug_total[bug]
- printf "";
- printf "^", prev_file[bug, where], bug
- printf "v", next_file[bug, where], bug
- printf " ", where, bug
- printf " | ";
- print ""
- }
- print " | "
- printf ""
- printf "%s", total
- printf "<"
- printf " | \n"
- print "Totals | "
- print ""
-}
-BEGIN {
- FS = ":"
- '"${categories}"'
- nr_file = 0;
- nr_bug = 0;
-}
-{
- # ari.*.idx: ::
- bug = $1
- file = $2
- category = $3
- # Interested in this
- if (!(category in categories)) next
- # Totals
- db[bug, file] += 1
- bug_total[bug] += 1
- file_total[file] += 1
- total += 1
-}
-END {
-
- # Sort the files and bugs creating indexed lists.
- nr_bug = split(qsort(bug_total), i2bug, SUBSEP);
- nr_file = split(qsort(file_total), i2file, SUBSEP);
-
- # Dummy entries for first/last
- i2file[0] = 0
- i2file[-1] = -1
- i2bug[0] = 0
- i2bug[-1] = -1
-
- # Construct a cycle of next/prev links. The file/bug "0" and "-1"
- # are used to identify the start/end of the cycle. Consequently,
- # prev(0) = -1 (prev of start is the end) and next(-1) = 0 (next
- # of end is the start).
-
- # For all the bugs, create a cycle that goes to the prev / next file.
- for (bug_i = 1; bug_i <= nr_bug; bug_i++) {
- bug = i2bug[bug_i]
- prev = 0
- prev_file[bug, 0] = -1
- next_file[bug, -1] = 0
- for (file_i = 1; file_i <= nr_file; file_i++) {
- file = i2file[file_i]
- if ((bug, file) in db) {
- prev_file[bug, file] = prev
- next_file[bug, prev] = file
- prev = file
- }
- }
- prev_file[bug, -1] = prev
- next_file[bug, prev] = -1
- }
-
- # For all the files, create a cycle that goes to the prev / next bug.
- for (file_i = 1; file_i <= nr_file; file_i++) {
- file = i2file[file_i]
- prev = 0
- prev_bug[file, 0] = -1
- next_bug[file, -1] = 0
- for (bug_i = 1; bug_i <= nr_bug; bug_i++) {
- bug = i2bug[bug_i]
- if ((bug, file) in db) {
- prev_bug[file, bug] = prev
- next_bug[file, prev] = bug
- prev = bug
- }
- }
- prev_bug[file, -1] = prev
- next_bug[file, prev] = -1
- }
-
- print ""
- print "
"
- print_heading(0);
- print "
"
- print_totals(0);
- print "
"
-
- for (file_i = 1; file_i <= nr_file; file_i++) {
- file = i2file[file_i];
- pfile = gensub(/^'${project}'\//, "", 1, file)
- print ""
- print ""
- print "" pfile " | "
- printf ""
- printf "%s", file_total[file]
- printf ">", file, next_bug[file, 0]
- printf " | \n"
- print " | "
- for (bug_i = 1; bug_i <= nr_bug; bug_i++) {
- bug = i2bug[bug_i];
- if ((bug, file) in db) {
- printf ""
- printf "%d", bug, db[bug, file]
- printf "^", prev_file[bug, file], bug
- printf "v", next_file[bug, file], bug
- printf " ", file, bug
- printf " | "
- print ""
- } else {
- print " | "
- #print " | "
- }
- }
- print " | "
- printf ""
- printf "%s", file_total[file]
- printf "<", file, prev_bug[file, -1]
- printf " | \n"
- print "" pfile " | "
- print "
"
- }
-
- print "
"
- print_totals(-1)
- print "
"
- print_heading(-1);
- print "
"
- print ""
- print "
"
- print ""
-}
-'
-}
-
-
-# Make the scripts available
-cp ${aridir}/gdb_*.sh ${wwwdir}
-
-# Compute the ARI index - ratio of zero vs non-zero problems.
-indexes=`${AWK} '
-BEGIN {
- FS=":"
-}
-{
- # ari.*.doc: :::
- bug = $1; count = $2; category = $3; doc = $4
-
- if (bug ~ /^legacy_/) legacy++
- if (bug ~ /^deprecated_/) deprecated++
-
- if (category !~ /^gdbarch$/) {
- bugs += count
- }
- if (count == 0) {
- oks++
- }
-}
-END {
- #print "tests/ok:", nr / ok
- #print "bugs/tests:", bugs / nr
- #print "bugs/ok:", bugs / ok
- print bugs / ( oks + legacy + deprecated )
-}
-' ${wwwdir}/ari.doc`
-
-# Merge, generating the ARI tables.
-if ${update_web_p}
-then
- echo "Create the ARI table" 1>&2
- oldari=${wwwdir}/old.html
- ari=${wwwdir}/index.html
- newari=${wwwdir}/new.html
- rm -f ${newari} ${newari}.gz
- cat <> ${newari}
-
-
-A.R. Index for GDB version ${version}
-
-
-
-A.R. Index for GDB version ${version}
-
-
-
-
-
-${indexes}
-You can not take this seriously!
-
-
-Also available:
-most recent branch
-|
-current
-|
-last release
-
-
-
-Last updated: `date -u`
-
-EOF
-
- print_toc 0 1 "internal regression" Critical <> ${newari} '
-BEGIN {
- FS = ":"
- '"$alls"'
-}
-{
- # ari.*.doc: :::
- bug = $1
- count = $2
- category = $3
- doc = $4
- if (!(category in all)) {
- print "" category ": no documentation
"
- }
-}
-'
-
- cat >> ${newari} <
-Input files:
-`( cd ${wwwdir} && ls ari.*.bug ari.idx ari.doc ) | while read f
-do
- echo "${f}"
-done`
-
-
-
-Scripts:
-`( cd ${wwwdir} && ls *.sh ) | while read f
-do
- echo "${f}"
-done`
-
-
-
-
-
-EOF
-
- for i in . .. ../..; do
- x=${wwwdir}/${i}/index.sh
- if test -x $x; then
- $x ${newari}
- break
- fi
- done
-
- gzip -c -v -9 ${newari} > ${newari}.gz
-
- cp ${ari} ${oldari}
- cp ${ari}.gz ${oldari}.gz
- cp ${newari} ${ari}
- cp ${newari}.gz ${ari}.gz
-
-fi # update_web_p
-
-# ls -l ${wwwdir}
-
-exit 0