BEGIN { home = "http://www.complang.tuwien.ac.at/"; site = home; sitemap["de"] = "sitemap"; sitemap["en"] = "sitemap-e"; sitemaptitle["de"] = "Überblick über die Seiten"; sitemaptitle["en"] = "Overview of these Pages"; css = "complang.css"; favicon = "favicon.ico"; output = 0; found = 0; activeme = 0; addtitle = ""; statement = ""; outer = prefix; atlevel[0] = ""; atlevel[1] = "   "; atlevel[2] = "      "; atlevel[3] = "         "; atlevel[4] = "            "; atlevel[5] = "               "; atlevel[6] = "                  "; rselins = ""; otherlang["de"] = "en"; otherlang["en"] = "de"; alang["de"] = "English"; alang["en"] = "German"; fisite["de"] = "http://www.informatik.tuwien.ac.at/"; fisite["en"] = "http://www.informatik.tuwien.ac.at/english/"; fititle["de"] = "Fakultät für Informatik"; fititle["en"] = "Faculty of Informatics"; tutitle["de"] = "Technische Universität Wien"; tutitle["en"] = "Vienna University of Technology"; hometitle["de"] = "Die Complang-Gruppe"; hometitle["en"] = "The Complang Group"; thispage["de"] = "Kurzbezeichnung der aktuellen Seite"; thispage["en"] = "Short Name of Current Page"; partofpage["de"] = "Verweis innerhalb dieser Seite"; partofpage["en"] = "Reference Within this Page"; currentsub = ""; } function noindex(ind) { if (ind == "index") { return home; } else if (index(ind, site) != 0) { return ind; } else { result = gensub("/index$","/",1,ind); if (result == ind) return prefix ind; else return result; } } (output == 1) { print $0; next; } ($1 == "%altlng") && (output == 0) { if (NF < 3) print FILENAME " (line " FNR "): WARNING: %altlang has less than 2 arguments" >"/dev/stderr"; if (altlang[$2] != "" && altlang[$2] != $3) print FILENAME " (line " FNR "): WARNING: " $2 " already has " altlang[$2] " as page name of alternative language; overridden by " $3 >"/dev/stderr"; if (altlang[$3] != "" && altlang[$3] != $2) print FILENAME " (line " FNR "): WARNING: " $3 " already has " altlang[$3] " as page name of alternative language; overridden by " $2 >"/dev/stderr"; altlang[$2] = $3; altlang[$3] = $2; currentsub = ""; next; } ($1 == "%map") && (output == 0) { if (NF < 6) print FILENAME " (line " FNR "): WARNING: %map has less than 5 arguments" >"/dev/stderr"; nm = $2; lng = $3; pr = $4; st = $5; brackets = 0; lt = ""; h1 = ""; for (i = 6; i <= NF; i++) { if ($i == "[") brackets++; else if ($i == "]") if (brackets > 0) brackets--; else print FILENAME " (line " FNR "): WARNING: unbalanced ']' in title field of %map" >"/dev/stderr"; else { if (lt == "") lt = $i; else lt = lt " " $i; if (brackets == 0) if (h1 == "") h1 = $i; else h1 = h1 " " $i; } } if (brackets > 0) print FILENAME " (line " FNR "): WARNING: unbalanced '[' in title field of %map" >"/dev/stderr"; skip = 0; titlelist[prefix nm] = lt; if (pr == "-") { outer = site; toplevel = 0; } else if (pr == 0) { level[nm] = 0; toplevel = 0; start[lng] = nm; if (altlang[nm] == "") start[otherlang[lng]] == nm; } else { newlevel = level[pr] + 1; level[nm] = newlevel; if (newlevel > toplevel) { if (found == 0 || pr == me || altlang[pr] == me) { lmenu[newlevel, "de"] = lmenu[toplevel, "de"]; lmenu[newlevel, "en"] = lmenu[toplevel, "en"]; toplevel = newlevel; } else skip = 1; } else if (newlevel < toplevel) { if (found == 1) { lmenu[newlevel, "de"] = lmenu[toplevel, "de"]; lmenu[newlevel, "en"] = lmenu[toplevel, "en"]; } toplevel = newlevel; } } if (nm == me) { if (activeme == 0) entry = "
" atlevel[toplevel] "" st "\n"; else entry = "
" atlevel[toplevel] "" st "\n"; found = 1; lang = lng; stitle = st; ltitle = lt; header1 = h1; pred = pr; if (altlang[me] != "") rmenu = "
" alang[lang] "\n"; rmenu = rmenu "
Sitemap\n"; } else entry = "
" atlevel[toplevel] "" st "\n"; if (skip == 0) { lmenu[toplevel, lng] = lmenu[toplevel, lng] entry; if (altlang[nm] == "") lmenu[toplevel, otherlang[lng]] = lmenu[toplevel, otherlang[lng]] entry; } currentsub = ""; next; } ($1 == "%submenu") && (output == 0) { if (NF < 2) print FILENAME " (line " FNR "): WARNING: %submenu has no argument" >"/dev/stderr"; currentsub = $2; if (NF > 2) { lt = $3; for (i = 4; i <= NF; i++) lt = lt " " $i; submenu[currentsub] = submenu[currentsub] "
" lt "\n"; } next; } ($1 == "%subsel") && (output == 0) { if (currentsub == "") print FILENAME " (line " FNR "): WARNING: no %submenu defined" >"/dev/stderr"; if (NF < 3) print FILENAME " (line " FNR "): WARNING: %subsel has less than two arguments" >"/dev/stderr"; if (NF > 3) { lt = $4; for (i = 5; i <= NF; i++) lt = lt " " $i; submenu[currentsub] = submenu[currentsub] "
" $3 "\n"; } else { nm = gensub("#.*","",1,$2); if (nm == "") submenu[currentsub] = submenu[currentsub] "
" $3 "\n"; else if (titlelist[nm] != "") submenu[currentsub] = submenu[currentsub] "
" $3 "\n"; else submenu[currentsub] = submenu[currentsub] "
" $3 "\n"; } next; } ($1 == "%rselins") && (output == 0) { if (NF < 2) rselins = ""; else if (NF > 2) print FILENAME " (line " FNR "): WARNING: %rselins has more than one argument" >"/dev/stderr"; else rselins = $2; currentsub = ""; next; } ($1 == "%rsel") && (output == 0) { if (NF < 3) print FILENAME " (line " FNR "): WARNING: %rsel has less than two arguments" >"/dev/stderr"; if (NF > 3) { lt = $4; for (i = 5; i <= NF; i++) lt = lt " " $i; rmenu = rmenu "
" rselins "" $3 "\n"; } else { nm = gensub("#.*","",1,$2); if (nm == "") rmenu = rmenu "
" rselins "" $3 "\n"; else if (titlelist[nm] != "") rmenu = rmenu "
" rselins "" $3 "\n"; else rmenu = rmenu "
" rselins "" $3 "\n"; } currentsub = ""; next; } ($1 == "%rhead") && (output == 0) { if (NF < 2) print FILENAME " (line " FNR "): WARNING: %rhead has no argument" >"/dev/stderr"; lt = $2; for (i = 3; i <= NF; i++) lt = lt " " $i; rmenu = rmenu "
" lt "\n"; currentsub = ""; next; } ($1 == "%addmenu") && (output == 0) { if (NF < 2) print FILENAME " (line " FNR "): WARNING: %addmenu has no argument" >"/dev/stderr"; else if (NF > 2) print FILENAME " (line " FNR "): WARNING: %addmenu has more than one argument" >"/dev/stderr"; else if (submenu[$2] == "") print FILENAME " (line " FNR "): WARNING: unknown submenu ignored" >"/dev/stderr"; else rmenu = rmenu submenu[$2]; currentsub = ""; next; } ($1 == "%addtitle") && (output == 0) { if (ltitle == "") print FILENAME " (line " FNR "): WARNING: %addtitle found before sitemap entry for " me >"/dev/stderr"; else for (i = 2; i <= NF; i++) { ltitle = ltitle " " $i; header1 = header1 " " $i; } currentsub = ""; next; } ($1 == "%change") && (output == 0) { if (NF < 2) print FILENAME " (line " FNR "): WARNING: %change has no argument" >"/dev/stderr"; else { if ($2 != "-") date = $2; if ((NF == 3 && $3 != "-") || NF > 3) { esign = $3; for (i = 4; i <= NF; i++) esign = esign " " $i; gsign = esign; } } next; } ($1 == "%statement") && (output == 0) { if (NF < 2) print FILENAME " (line " FNR "): WARNING: %statement has no argument" >"/dev/stderr"; else if (statement != "") print FILENAME " (line " FNR "): WARNING: several %statement lines found" >"/dev/stderr"; else { statement = " " $2; for (i = 3; i <= NF; i++) if ($i == "/") statement = statement "
\n "; else statement = statement " " $i; } currentsub = ""; next; } ($1 == "%content") && (output == 0) { output = 1; if (found == 0) print "WARNING: no appropriate sitemap entry found for " me >"/dev/stderr"; print ""; print ""; print ""; print " "; print " "; print " "; if (pred != 0) print " "; if (altlang[me] != "") print " "; print " " ltitle ""; print ""; print ""; print ""; print "
"; print ""; print " \"Computer"; print ""; print "
"; print ""; print "
"; if (statement != "") { print "

"; print statement; print "

"; } print "

" header1 "

"; next; } END { if (output == 0) print "WARNING: no %content found (empty page)" >"/dev/stderr"; print "
"; print ""; print "
"; print "
"; print lmenu[toplevel, lang] "
"; print "
"; print ""; print "
"; print "
"; print rmenu "
"; print "
"; print ""; print "
"; print ""; print " \"""; print ""; print "
"; print ""; print "
"; print ""; print " \"""; print ""; print "
"; print ""; print "
"; if (lang == "de") { print " Anfang |"; print " HTML 4.01 |"; print " letzte Änderung: " date " (" gsign ")"; } else { print " top |"; print " HTML 4.01 |"; print " last update: " date " (" esign ")"; } print "
"; print ""; print ""; }