diff options
Diffstat (limited to 'engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl')
-rw-r--r-- | engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl | 354 |
1 files changed, 354 insertions, 0 deletions
diff --git a/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl new file mode 100644 index 0000000..3011d21 --- /dev/null +++ b/engine-ocean/External/glew/auto/EGL-Registry/sdk/docs/man/xhtml/maketoc.pl @@ -0,0 +1,354 @@ +# This script is obsolete. It would need to change to generate TOC.html +# in the new format and link to .html instead of .xml files. + +#!/usr/bin/perl + +sub Usage { +print +"Usage: maketoc xhtmldir xmldir + where xhtmldir contains a directory full of OpenGL .xml XHTML man pages -AND- + where xmldir contains a directory full of OpenGL .xml source XML man pages + + probably want to redirect output into a file like + ./maketoc.pl . .. > ./toc.html +" +} + +sub PrintHeader { +print '<html> +<head> +<title>EGL Reference Pages</title> +<style type="text/css"> + +html, body, table +{ color: #000; + padding: 4px 4px; + margin: 0px 0 0 0; + text-align: center; + font-family: Arial, Lucida, sans-serif; + font-size: 10pt; + +} + +#container { + margin: 10px; + font-size: 14pt; + text-decoration:none; +} + +table.sample { + border-width: 1px; + border-spacing: 5px; + border-style: dotted; + border-color: black; + border-collapse: separate; + background-color: #F0F0F0; +} +table.sample th { + border-width: 1px; + padding: 5px; + border-style: none; +} +table.sample td { + border-width: 1px; + padding: 1px; + border-style: none; +} +</style> + +</head> +<body> +<a name="top"></a> +<h1>EGL Reference Pages</h1> +<br/><br/> + +'; +} + +sub PrintFooter { +print ' +</body> +</html> +'; +} + +sub TableElementForFilename { + my $name = shift; + + my $strippedname = $name; + $strippedname =~ s/\.xml//; + print "\t"; + print '<tr><td><a target="pagedisp" href="' , $name , '">'; + print "$strippedname"; + print "</a></td></tr>\n"; +} + +sub BeginTable { + my $letter = shift; + print "<a name=\"$letter\"></a><br/><br/>\n"; + print '<table width="220" align="center" class="sample">'; + print "\t<th>"; + print "$letter</th>\n"; +} + +sub EndTable { + print "\t"; + print '<tr><td><center><a href="#top">Top</a></center></td></tr>'; + print "\n</table>\n\n"; +} + + + +############## +# main +############## + +if (@ARGV != 2) +{ + Usage(); + die; +} + +# grab list of generated XHTML files +opendir(DIR,$ARGV[0]) or die "couldn't open directory"; + +@files = readdir(DIR); +close(DIR); +@files = sort @files; + +PrintHeader(); + +my @glX; +my @glut; +my @glu; +my @egl; +my @gl; + +my @realEntrypoints; +my @pageNames; + +#pre-create list of all true entrypoint names + +foreach (@files) +{ + if (/xml/) + { + $parentName = $ARGV[1] . '/' . $_; + if (open(PARENT, $parentName)) + { + @funcs = <PARENT>; + @funcs = grep(/<funcdef>/, @funcs); + foreach (@funcs) + { + $func = $_; + $func =~ s/.*<function>//; + $func =~ s/<\/function>.*\n//; + + push (@realEntrypoints, $func); + } + close(PARENT); + } + } +} + +#pre-create list of page names + +foreach (@files) +{ + if (/xml/) + { + $parentName = $ARGV[1] . '/' . $_; + if (open(PARENT, $parentName)) + { + my $entrypoint = $_; + $entrypoint =~ s/\.xml//; + + push (@pageNames, $entrypoint); + + close(PARENT); + } + } +} + +#sort the files into gl, glut, glu, EGL, and glX + +foreach (@files) +{ + if (/xml/) + { + # filter out entrypoint variations that don't have their own man pages + my $needIndexEntry = 0; + + # continue only if parent page exists (e.g. glColor) OR + # different parent page exists with matching entrypoint (e.g. glEnd) + my $entrypoint = $_; + $entrypoint =~ s/\.xml//; + + foreach (@pageNames) + { + if ($_ eq $entrypoint) + { + # it has its own man page + $needIndexEntry = 1; + } + } + + if ($needIndexEntry == 0) + { + foreach (@realEntrypoints) + { + if ($_ eq $entrypoint) + { + # it's a real entrypoint, but make sure not a variation + $needIndexEntry = 1; + + foreach (@pageNames) + { + my $alteredEntrypoint = $entrypoint; + $alteredEntrypoint =~ s/$_//; + + if (!($alteredEntrypoint eq $entrypoint)) + { + $needIndexEntry = 0; + } + } + } + } + } + + if ($needIndexEntry) + { + if (/^glX/) + { + push (@glX, $_); + } + elsif (/^glut/) + { + push (@glut, $_); + } + elsif (/^glu/) + { + push (@glu, $_); + } + elsif (/^egl/) + { + push (@egl, $_); + } + elsif (/^gl/) + { + push (@gl, $_); + } + } + } +} + + +#output the table of contents + +my @toc; + +if ($#gl > 0) +{ + $currentletter = ""; + $opentable = 0; + + foreach (@gl) + { + $name = $_; + $name =~ s/^gl//; + $firstletter = substr($name, 0, 1); + if ($firstletter ne $currentletter) + { + push (@toc, $firstletter); + $currentletter = $firstletter; + } + } + if ($#egl > 0) { push (@toc, "egl"); } + if ($#glu > 0) { push (@toc, "glu"); } + if ($#glut > 0) { push (@toc, "glut"); } + if ($#glX > 0) { push (@toc, "glX"); } +} + + +print '<div id="container">'; +foreach (@toc) +{ + print '<b><a href="#'; + print $_; + print '" style="text-decoration:none"> '; + print $_; + print " </a></b> "; +} +print "</div>\n\n\n"; + +# output the tables + +if ($#gl > 0) +{ + $currentletter = ""; + $opentable = 0; + + foreach (@gl) + { + $name = $_; + $name =~ s/^gl//; + $firstletter = substr($name, 0, 1); + if ($firstletter ne $currentletter) + { + if ($opentable == 1) + { + EndTable(); + } + BeginTable($firstletter); + $opentable =1; + $currentletter = $firstletter; + } + TableElementForFilename($_); + } + if ($opentable) + { + EndTable(); + } +} + +if ($#egl > 0) +{ + BeginTable("egl"); + foreach (@egl) + { + TableElementForFilename($_); + } + EndTable(); +} + +if ($#glu > 0) +{ + BeginTable("glu"); + foreach (@glu) + { + TableElementForFilename($_); + } + EndTable(); +} + +if ($#glut > 0) +{ + BeginTable("glut"); + foreach (@glut) + { + TableElementForFilename($_); + } + EndTable(); +} + +if ($#glX > 0) +{ + BeginTable("glX"); + foreach (@glX) + { + TableElementForFilename($_); + } + EndTable(); +} + +PrintFooter(); |