2000-05-08 02:39:55 +00:00
|
|
|
<? // Preamble
|
|
|
|
$pageName = "State of the Code";
|
|
|
|
$focused = "none"; // Dock icon name to gets a border
|
|
|
|
require("parts/preamble.php"); // Load most of document
|
|
|
|
?>
|
|
|
|
<!--SEARCHME-->
|
|
|
|
<P>The State of the Code address is a not-frequently-enough updated article
|
|
|
|
written by <a href="mailto:knghtbrd@debian.org">Knghtbrd</a> primarily for
|
|
|
|
QuakeForge developers and other people who consider themselves to be knee-deep
|
|
|
|
in the code, whether they happen to be writing it or just testing it. What
|
|
|
|
you won't find here is a lot of the fluff news that tells the casual onlooker
|
|
|
|
that the project is actually doing stuff without really telling you what the
|
|
|
|
state of things are.
|
|
|
|
|
|
|
|
<P>No attempt will be made to soften technical issues so anyone can understand
|
|
|
|
them. If you want to really know what's going on, you probably don't want
|
|
|
|
details left out because they might not make a whole lot of sense to a
|
|
|
|
non-coder. Feedback is always welcome. So are corrections if they're
|
|
|
|
necessary - contrary to popular (with him) belief, Knghtbrd has in fact been
|
|
|
|
known to be wrong sometimes. He isn't afraid to admit it either (most of the
|
|
|
|
time..)
|
|
|
|
<? // Display latest update
|
|
|
|
function sotcShowLatest($year) {
|
|
|
|
$i = 0;
|
2000-04-18 16:25:45 +00:00
|
|
|
|
2000-05-08 02:39:55 +00:00
|
|
|
$dirHandle = opendir('sotc/' . $year);
|
|
|
|
if ($dirHandle) {
|
|
|
|
while ($fileName = readdir($dirHandle)) {
|
|
|
|
if ($fileName != '.' && $fileName != '..' && $fileName != 'CVS') {
|
|
|
|
$sotcList[$i++] = $fileName;
|
|
|
|
}
|
2000-04-19 00:24:29 +00:00
|
|
|
}
|
2000-05-08 02:39:55 +00:00
|
|
|
closedir ($dirHandle);
|
|
|
|
rsort ($sotcList);
|
|
|
|
include ('sotc/' . $year . '/' . $sotcList[0]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
function sotcYears() {
|
|
|
|
$i = 0;
|
|
|
|
|
|
|
|
$dirHandle = opendir('sotc/');
|
|
|
|
if ($dirHandle) {
|
|
|
|
while ($year = readdir($dirHandle)) {
|
|
|
|
if (is_dir('sotc/' . $year) && $year != '.' && $year != '..' && $year != 'CVS') {
|
|
|
|
$years[$i++] = $year;
|
2000-04-19 00:24:29 +00:00
|
|
|
}
|
|
|
|
}
|
2000-05-08 02:39:55 +00:00
|
|
|
closedir ($dirHandle);
|
|
|
|
rsort ($years);
|
|
|
|
return $years;
|
2000-04-19 00:24:29 +00:00
|
|
|
}
|
2000-05-08 02:39:55 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
function sotcListFiles( $year ) {
|
|
|
|
$i = 0;
|
|
|
|
|
|
|
|
$dirHandle = opendir('sotc/' . $year );
|
|
|
|
if ($dirHandle) {
|
|
|
|
while ($fileName = readdir($dirHandle)) {
|
|
|
|
if ($fileName != '.' && $fileName != '..' && $fileName != 'CVS') {
|
|
|
|
$sotcList[$i++] = $fileName;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
closedir ($dirHandle);
|
|
|
|
rsort ($sotcList);
|
|
|
|
if (count($sotcList) > 0) {
|
|
|
|
tableBoxHeader('black', tableHeadColor);
|
|
|
|
tableTitle('SotC Archives for ' . $year, 3, tableHeadColor);
|
|
|
|
for ( $i = 0; $i < count($sotcList) ; $i++) {
|
|
|
|
$file = fopen('sotc/' . $year . '/' . $sotcList[$i], 'r');
|
|
|
|
$line = fgets($file, 4096);
|
|
|
|
fclose($file);
|
|
|
|
$line = ereg_replace('<!--', '', ereg_replace('-->', '', $line));
|
|
|
|
echo '<TR><TD>' . $line . '</TD></TR>';
|
|
|
|
}
|
|
|
|
tableBoxFooter();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if (!$year) {
|
|
|
|
$year = date('Y', time());
|
|
|
|
}
|
|
|
|
$years = sotcYears();
|
|
|
|
for ( $i = 0; $i < count($years) ; $i++) {
|
|
|
|
echo $years[$i];
|
|
|
|
}
|
|
|
|
|
|
|
|
sotcShowLatest($year, 999);
|
|
|
|
echo '<P>';
|
|
|
|
sotcListFiles($year);
|
|
|
|
?>
|
|
|
|
<!--NOSEARCH-->
|
|
|
|
<?
|
|
|
|
require("parts/postamble.php"); // Finish this sucker up
|
|
|
|
?>
|