diff --git a/www/comment.php b/www/comment.php
index 9441364..1e01915 100644
--- a/www/comment.php
+++ b/www/comment.php
@@ -1,6 +1,6 @@
diff --git a/www/data/software.md5 b/www/data/software.md5
new file mode 100644
index 0000000..d813497
--- /dev/null
+++ b/www/data/software.md5
@@ -0,0 +1,6 @@
+e30ff88b15f74964e20d80c6577a1cb9 2.1 mxml/2.1/mxml-2.1-1.i386.rpm
+35f829a907c0319f83a3661591788ed3 2.1 mxml/2.1/mxml-2.1.tar.gz
+2d010aa0cfc1058aa48b3c03bc3781ec 2.0 mxml/2.0/mxml-2.0-1.i386.rpm
+bd9194cdbf717550a130789802e5b81c 2.0 mxml/2.0/mxml-2.0.tar.gz
+9dfb974bd31d60c97bfa394b7f6ca63e 1.3 mxml/1.3/mxml-1.3-1.i386.rpm
+9b116daa370bf647447d6ffe70e73534 1.3 mxml/1.3/mxml-1.3.tar.gz
diff --git a/www/newsgroups.php b/www/newsgroups.php
deleted file mode 100644
index d4c5388..0000000
--- a/www/newsgroups.php
+++ /dev/null
@@ -1,835 +0,0 @@
-";
-
-if ($from == "" || $from == "Anonymous")
- $from = "Anonymous ";
-
-
-//
-// 'nntp_close()' - Close a news server thing...
-//
-
-function
-nntp_close($stream) // I - Socket stream
-{
- nntp_command($stream, "QUIT", 205);
-
- fclose($stream);
-}
-
-
-//
-// 'nntp_command()' - Send a command and get the response...
-//
-
-function // O - NNTP response
-nntp_command($stream, // I - Socket stream
- $command = "QUIT", // I - NNTP command
- $expect = 200) // I - Expected status
-
-{
-// print("nntp_command(stream=$stream, command='$command', expect=$expect)
\n");
-
- fwrite($stream, "$command\r\n");
-
- $status = fgets($stream, 1024);
-
-// print("status='$status'
\n");
-
- if ((int)$status != $expect)
- {
- print("Error: $status
\n");
- return (NULL);
- }
- else
- return ($status);
-}
-
-
-//
-// 'nntp_connect()' - Connect to the news server.
-//
-
-function // O - Socket stream
-nntp_connect()
-{
- global $NNTPSERVER, $NNTPPORT;
-
-
- $stream = fsockopen($NNTPSERVER, $NNTPPORT, &$errno, &$errstr);
-
- if ($stream)
- {
- if ($line = fgets($stream, 1024))
- {
- if ((int)$line != 200)
- {
- print("Error: $line
\n");
- fclose($stream);
- return (FALSE);
- }
- }
- else
- {
- print("Error: No response from NNTP server!
\n");
- fclose($stream);
- return (FALSE);
- }
- }
- else
- print("Error: $errstr ($errno)
\n");
-
- return ($stream);
-}
-
-
-//
-// 'nntp_search()' - Do a header search...
-//
-
-function // O - Matching message headers...
-nntp_search($stream, // I - Socket stream
- $group, // I - NNTP group
- $search) // I - Search text
-{
-// print("nntp_search(stream=$stream, group='$group', search='$search'
\n");
-
- $status = nntp_command($stream, "GROUP $group", 211);
- if (!$status)
- return (NULL);
-
- $fields = explode(" ", $status);
- $status = nntp_command($stream, "XOVER $fields[2]-$fields[3]", 224);
- if (!$status)
- return (NULL);
-
- $words = explode(" ", $search);
- $num_matches = 0;
- $matches = NULL;
-
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
-
- if ($line == ".")
- break;
-
- if ($search == "")
- {
- // Return all matches...
- $matches[$num_matches] = $line;
- $num_matches ++;
- }
- else
- {
- // Search for words...
- reset($words);
-
- while (list($key, $word) = each($words))
- {
- if (stristr($line, $word))
- {
- $matches[$num_matches] = $line;
- $num_matches ++;
- break;
- }
- }
- }
- }
-
-// print("num_matches=$num_matches
\n");
-
- return ($matches);
-}
-
-
-//
-// 'show_prevnext_page()' - Show the prev/next links for the messages list...
-//
-
-function
-show_prevnext_page($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $end, // I - End message
- $count) // I - Number of messages
-{
- global $PHP_SELF, $PAGE_MAX;
-
-
- print("
\n"
- ."");
-
- if ($start > 1)
- {
- $i = $start - $PAGE_MAX;
- if ($i < 1)
- $i = 1;
-
- $j = $i + $PAGE_MAX - 1;
- if ($j > $count)
- $j = $count;
-
- html_start_links();
- html_link("Show Messages $i - $j", "$PHP_SELF?s$i+g$group+G$group_filter");
- html_end_links();
- }
-
- print(" ");
- html_start_links();
- html_link("All Groups", "$PHP_SELF?G$group_filter");
-
- if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
- html_link("New Message", "$PHP_SELF?s$i+g$group+G$group_filter+n");
- html_end_links();
- print(" ");
-
- if ($end < $count)
- {
- $i = $start + $PAGE_MAX;
- $j = $i + $PAGE_MAX - 1;
- if ($j > $count)
- $j = $count;
-
- html_start_links();
- html_link("Show Messages $i - $j", "$PHP_SELF?s$i+g$group+G$group_filter");
- }
-
- print(" \n"
- ."
\n");
-}
-
-
-//
-// 'show_messages()' - Show messages in the named group...
-//
-
-function
-show_messages($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $search) // I - Search string
-{
- global $PHP_SELF, $PAGE_MAX;
-
-
- // Figure out which messages to show...
- $error = "";
-
- $stream = nntp_connect();
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- nntp_close($stream);
-
- if (!$matches)
- {
- $count = 0;
- $error = "No matches found for '" .
- htmlspecialchars($search, ENT_QUOTES) . "'...";
- }
-
- if ($start == 0)
- $start = $count - 9;
- if ($start > ($count - $PAGE_MAX + 1))
- $start = $count - $PAGE_MAX + 1;
- if ($start < 1)
- $start = 1;
-
- $end = $start + $PAGE_MAX - 1;
- if ($end > $count)
- $end = $count;
-
- // Show the standard header...
- html_header("$group ($start - $end of $count)");
-
- $temp = htmlspecialchars($search, ENT_QUOTES);
- print("\n");
-
- if ($error != "")
- print("$error
\n");
-
- show_prevnext_page($group, $group_filter, $start, $end, $count);
-
- html_start_table(array("Subject", "Author", "Date"));
-
- for ($i = $start; $i <= $end; $i ++)
- {
- $fields = explode("\t", $matches[$i - 1]);
- $msg = (int)$fields[0];
- $subject = htmlspecialchars($fields[1], ENT_QUOTES);
- $author = sanitize_email($fields[2]);
- $date = htmlspecialchars($fields[3], ENT_QUOTES);
-
- html_start_row();
- print(""
- ."$subject "
- ."$author "
- ."$date ");
- html_end_row();
- }
-
- html_end_table();
-
- show_prevnext_page($group, $group_filter, $start, $end, $count);
-
- html_footer();
-}
-
-
-//
-// 'show_groups()' - Show groups...
-//
-
-function
-show_groups($group_filter, // I - Group filter
- $search) // I - Search string
-{
- global $PHP_SELF;
-
-
- html_header("Newsgroups");
-
- // Figure out which messages to show...
- $stream = nntp_connect();
-
- // Search stuff...
- print("\n");
-
- // Show the standard header...
- html_start_table(array("Group", "Messages", ""));
-
- $status = nntp_command($stream, "LIST", 215);
- $num_groups = 0;
- $groups = array();
-
- if ($status)
- {
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
- if ($line == ".")
- break;
-
- $fields = explode(" ", $line);
- $groups[$num_groups] = $fields[0];
- $num_groups ++;
- }
- }
-
- sort($groups);
-
- while (list($key, $group) = each($groups))
- {
- if (ereg("(linuxprinting|private)\\..*", $group))
- continue;
-
- if ($group_filter && !ereg("${group_filter}\\.*", $group))
- continue;
-
- $status = nntp_command($stream, "GROUP $group", 211);
- if (!$status)
- continue;
-
- $fields = explode(" ", $status);
- $total = (int)$fields[1];
-
- if ($search != "")
- {
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
- }
- else
- $count = $total;
-
- html_start_row();
- print("$group "
- ."$count");
-
- if ($search != "")
- print("/$total");
-
- print(" ");
- html_start_links();
- html_link("View", "$PHP_SELF?g$group+G$group_filter");
- if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
- html_link("New Message", "$PHP_SELF?g$group+G$group_filter+n");
- html_end_links();
- print(" ");
- html_end_row();
- }
-
- html_start_row("header");
- print("Newsgroups and Mailing Lists ");
- html_end_row();
-
- html_start_row();
- print(""
- ."Point your news reader at "
- ."news.easysw.com to view these groups directly.
\n"
- ."Go to "
- ."http://lists.easysw.com/mailman/listinfo "
- ."to subscribe to or unsubcribe from the mailing lists that mirror "
- ."these groups.
"
- ." ");
- html_end_row();
- html_end_table();
-
- nntp_close($stream);
-
- html_footer();
-}
-
-
-//
-// 'show_prevnext_msg()' - Show the prev/next links for the messages list...
-//
-
-function
-show_prevnext_msg($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $count, // I - Number of messages
- $msg) // I - Current message
-{
- global $PHP_SELF;
-
-
- print("
\n"
- ."");
-
- if ($msg > 1)
- {
- $i = $msg - 1;
-
- html_start_links();
- html_link("Previous Message", "$PHP_SELF?s$start+g$group+G$group_filter+v$i");
- html_end_links();
- }
-
- print(" ");
- html_start_links();
- html_link("All Groups", "$PHP_SELF?G$group_filter");
- html_link("Back to $group", "$PHP_SELF?s$msg+g$group+G$group_filter");
-
- if (!ereg(".*\.announce", $group) && !ereg(".*\.cvs", $group))
- {
- html_link("Reply", "$PHP_SELF?s$start+g$group+G$group_filter+r$msg");
- html_link("New Message", "$PHP_SELF?s$i+g$group+G$group_filter+n");
- }
-
- html_end_links();
-
- print(" ");
-
- if ($msg < $count)
- {
- $i = $msg + 1;
- html_start_links();
- html_link("Next Message", "$PHP_SELF?s$start+g$group+G$group_filter+v$i");
- html_end_links();
- }
-
- print(" \n"
- ."
\n");
-}
-
-
-//
-// 'show_message()' - Show a single message...
-//
-
-function
-show_message($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $msg, // I - Current message
- $search) // I - Search string
-{
- global $PHP_SELF;
-
-
- // Figure out which messages to show...
- $stream = nntp_connect();
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- if ($msg < 1 || $msg > $count)
- {
- nntp_close($stream);
- return;
- }
-
- $fields = explode("\t", $matches[$msg - 1]);
- $msgnum = (int)$fields[0];
- $subject = str_replace(":", ":", htmlspecialchars($fields[1], ENT_QUOTES));
- $author = str_replace(":", ":", sanitize_email($fields[2]));
- $date = str_replace(":", ":", htmlspecialchars($fields[3], ENT_QUOTES));
-
- $status = nntp_command($stream, "BODY $msgnum", 222);
- if (!$status)
- {
- nntp_close($stream);
- return;
- }
-
- $body = "";
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
-
- if ($line == ".")
- break;
-
- $body = $body . $line . "\n";
- }
-
- nntp_close($stream);
-
- $body = quote_text($body);
-
- html_header("$subject");
-
- show_prevnext_msg($group, $group_filter, $start, $count, $msg);
-
- html_start_table(array($subject, $author, $date));
- html_start_row();
- print("$body ");
- html_end_row();
- html_end_table();
-
- show_prevnext_msg($group, $group_filter, $start, $count, $msg);
-
- html_footer();
-}
-
-
-//
-// 'post_message()' - Post a message...
-//
-
-function
-post_message($group, // I - Group
- $group_filter, // I - Group filter
- $start, // I - Start message
- $msg, // I - Current message
- $search) // I - Search string
-{
- global $PHP_SELF, $_POST;
-
-
- if (array_key_exists("FROM", $_POST))
- $from = $_POST["FROM"];
- else
- $from = "";
-
- if (array_key_exists("SUBJECT", $_POST))
- $subject = $_POST["SUBJECT"];
- else
- $subject = "";
-
- if (array_key_exists("BODY", $_POST))
- $body = $_POST["BODY"];
- else
- $body = "";
-
- if (!validate_email($from) || $subject == "" || $body == "")
- {
- new_message($group, $group_filter, $start, $from, $subject, $body);
- return;
- }
-
- $stream = nntp_connect();
- if (!$stream)
- {
- return;
- }
-
- $id = "";
-
- if ($msg > 0)
- {
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- if ($msg <= $count)
- {
- $fields = explode("\t", $matches[$msg - 1]);
- $id = $fields[4];
- }
- }
-
- $status = nntp_command($stream, "POST", 340);
-
- if (!$status)
- {
- nntp_close($stream);
- return;
- }
-
- fwrite($stream, "From: $from\r\n");
- fwrite($stream, "Subject: $subject\r\n");
- fwrite($stream, "Newsgroups: $group\r\n");
-
- if ($id != "")
- fwrite($stream, "In-Reply-To: $id\r\n");
-
- fwrite($stream, "\r\n");
-
- $lines = explode("\n", $body);
- $count = count($lines);
-
- for ($i = 0; $i < $count; $i ++)
- {
- $line = rtrim($lines[$i]);
-
- if ($line == ".")
- fwrite($stream, ". \r\n");
- else
- fwrite($stream, "$line\r\n");
- }
-
- $status = nntp_command($stream, ".", 240);
-
- if ($status)
- {
- if ($msg == 0)
- header("Location: $PHP_SELF?s$start+g$group+G$group_filter");
- else
- header("Location: $PHP_SELF?s$start+g$group+G$group_filter+v$msg");
- }
-
- nntp_close($stream);
-}
-
-
-//
-// 'reply_message()' - Reply to a message...
-//
-
-function
-reply_message($group, // I - Group to reply to
- $group_filter, // I - Group filter
- $start, // I - First message in the display
- $msg, // I - Message to reply to
- $search, // I - Search string
- $sender) // I - Sender address
-{
- global $PHP_SELF;
-
-
- // Figure out which messages to show...
- $stream = nntp_connect();
- $matches = nntp_search($stream, $group, $search);
- $count = count($matches);
-
- if ($msg < 1 || $msg > $count)
- {
- nntp_close($stream);
- return;
- }
-
- $fields = explode("\t", $matches[$msg - 1]);
- $msgnum = (int)$fields[0];
- $subject = htmlspecialchars($fields[1], ENT_QUOTES);
- $author = sanitize_email($fields[2]);
- $date = htmlspecialchars($fields[3], ENT_QUOTES);
-
- if (strncasecmp($subject, "re:", 3))
- $subject = "Re: " . $subject;
-
- $status = nntp_command($stream, "BODY $msgnum", 222);
- if (!$status)
- {
- nntp_close($stream);
- return;
- }
-
- $body = "";
- while ($line = fgets($stream, 1024))
- {
- $line = rtrim($line);
-
- if ($line == ".")
- break;
-
- $body = $body . "> " . $line . "\n";
- }
-
- nntp_close($stream);
-
- new_message($group, $group_filter, $start, $subject, $sender, $body);
-}
-
-
-//
-// 'new_message()' - Post a new message...
-//
-
-function
-new_message($group, // I - Group to post to
- $group_filter, // I - Group filter
- $start, // I - First message
- $subject, // I - Subject of message
- $sender, // I - Sender address
- $body) // I - Message body
-{
- global $PHP_SELF, $NNTPSPEC;
-
-
- $subject = htmlspecialchars($subject, ENT_QUOTES);
- $sender = htmlspecialchars($sender, ENT_QUOTES);
- $body = htmlspecialchars($body, ENT_QUOTES);
-
- html_header("Post Message to $group");
-
- html_start_links(1);
- html_link("All Groups", "$PHP_SELF?G$group_filter");
- html_link("Back to $group", "$PHP_SELF?s$start+g$group+G$group_filter");
- html_end_links(1);
-
- print("Post Message to $group ");
-
- print("\n");
-
- html_footer();
-}
-
-
-// Parse command-line options...
-$start = 0;
-$group = "";
-$op = 'l';
-$msg = "";
-
-for ($i = 0; $i < $argc; $i ++)
-{
- switch ($argv[$i][0])
- {
- case 'g' :
- $group = substr($argv[$i], 1);
- break;
-
- case 'G' :
- $groups = substr($argv[$i], 1);
- break;
-
- case 'n' :
- case 'p' :
- case 'r' :
- case 'v' :
- $op = $argv[$i][0];
- $msg = (int)substr($argv[$i], 1);
- break;
-
- case 's' :
- $start = (int)substr($argv[$i], 1);
- break;
- }
-}
-
-// Now handle the request...
-switch ($op)
-{
- case 'l' : // List
- if ($group)
- show_messages($group, $PROJECT_MODULE, $start, $search);
- else
- show_groups($PROJECT_MODULE, $search);
- break;
-
- case 'n' : // New message
- new_message($group, $PROJECT_MODULE, $start, "", $from, "");
- break;
-
- case 'p' : // Post message
- if (ereg(".*\.announce", $group) || ereg(".*\.cvs", $group))
- {
- html_header("Newsgroup Posting Error");
-
- print("We are sorry, but we could not post your message for the "
- ."following reason:\n"
- ."
Group $group is read-only. \n");
-
- html_footer();
-
- }
- else
- post_message($group, $PROJECT_MODULE, $start, $msg, $search);
- break;
-
- case 'r' : // Reply message
- reply_message($group, $PROJECT_MODULE, $start, $msg, $search, $from);
- break;
-
- case 'v' : // View message
- show_message($group, $PROJECT_MODULE, $start, $msg, $search);
- break;
-}
-
-
-//
-// End of "$Id: newsgroups.php,v 1.1 2004/06/10 02:40:05 mike Exp $".
-//
-?>
diff --git a/www/phplib/html.php b/www/phplib/html.php
index 1361e58..95d702c 100644
--- a/www/phplib/html.php
+++ b/www/phplib/html.php
@@ -1,6 +1,6 @@
\n"
." \n");
+ // If refresh URL is specified, add the META tag...
+ if ($refresh != "")
+ print(" \n");
+
// Search engine keywords...
reset($html_keywords);
@@ -111,12 +116,10 @@ html_header($title = "", // I - Additional document title
."alt='Mini-XML' align='middle'/> "
."[ Home | "
."Articles | "
+ ."Bugs & Features | "
."Documentation | "
."Download | "
- ."Links | "
- ."Newsgroups | "
- ."Polls | "
- ."Support ] "
+ ."Links ]"
."[ ");
diff --git a/www/software.php b/www/software.php
index c88f8f4..edf3d51 100644
--- a/www/software.php
+++ b/www/software.php
@@ -1,6 +1,6 @@
"Oregon, USA via HTTP",
+// "ftp://ftp.easysw.com/pub" => "Oregon, USA via FTP",
+// "http://ftp2.easysw.com/pub" => "Maryland, USA via HTTP",
+ "ftp://ftp2.easysw.com/pub" => "Maryland, USA via FTP",
+ "ftp://ftp3.easysw.com/pub" => "California, USA via FTP",
+ "http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => "Espoo, Finland via HTTP",
+ "ftp://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => "Espoo, Finland via FTP",
+);
+
+
// Get the list of software files...
-$dir = opendir("swfiles");
+$fp = fopen("data/software.md5", "r");
$files = array();
-while ($file = readdir($dir))
-{
- if (fnmatch("*.tar.gz", $file) ||
- fnmatch("*.tar.bz2", $file))
- {
- // Add source file...
- $files[$file] = substr($file, 5, strpos($file, ".tar") - 5);
- }
- else if (fnmatch("*.rpm", $file) ||
- fnmatch("*.deb", $file) ||
- fnmatch("*.tgz", $file))
- {
- // Add binary file...
- $data = explode("-", $file);
-
- $files[$file] = $data[1];
- }
-}
-
-arsort($files);
-
-closedir($dir);
-
-// Read MD5 sums for each file...
-$fp = fopen("swfiles/mxml.md5", "r");
-$md5 = array();
-
-while ($line = fgets($fp))
-{
- $data = explode(" ", trim($line));
- $md5[$data[2]] = $data[0];
-}
-
-//print("md5 =\n");
-//print_r($md5);
-//print(" \n");
+while ($line = fgets($fp, 255))
+ $files[sizeof($files)] = trim($line);
fclose($fp);
-// Show files...
-html_header("Download");
-
-reset($files);
-
-if ($argc >= 1)
- $firstversion = $argv[0];
+// Get form data, if any...
+if (array_key_exists("FILE", $_GET))
+ $file = $_GET["FILE"];
else
- $firstversion = current($files);
+ $file = "";
+
+if (array_key_exists("SITE", $_GET))
+{
+ $site = $_GET["SITE"];
+ setcookie("SITE", $site, time() + 90 * 86400, "/");
+}
+else if (array_key_exists("SITE", $_COOKIE) &&
+ array_key_exists($_COOKIE["SITE"], $sitelist))
+ $site = $_COOKIE["SITE"];
+else
+ $site = "";
+
+if (array_key_exists("VERSION", $_GET))
+ $version = $_GET["VERSION"];
+else
+{
+ $data = explode(" ", $files[0]);
+ $version = $data[1];
+}
+
+// Show the standard header...
+if ($site != "" && $file != "")
+ html_header("Download", "", "$site/$file");
+else
+ html_header("Download");
html_start_links(1);
-html_link("CVS", "#CVS");
$curversion = "";
-while (list($file, $version) = each($files))
- if ($version != $curversion)
+for ($i = 0; $i < sizeof($files); $i ++)
+{
+ // Grab the data for the current file...
+ $data = explode(" ", $files[$i]);
+ $fversion = $data[1];
+
+ if ($fversion != $curversion)
{
- $curversion = $version;
- html_link("v$version", "$PHP_SELF?$version");
+ $curversion = $fversion;
+ html_link("v$fversion", "$PHP_SELF?VERSION=$fversion");
}
+}
+
+html_link("Subversion", "$PHP_SELF#SVN");
html_end_links();
-print("Download ");
+print("Download \n");
-html_start_table(array("Version", "Filename", "Size", "MD5 Sum"));
-
-reset($files);
-$curversion = "";
-while (list($file, $version) = each($files))
+// Show files or sites...
+if ($file != "")
{
- html_start_row();
-
- if ($version == $firstversion)
- {
- $cs = " ";
- $ce = " ";
- }
+ if ($site != "")
+ print("Your download should begin shortly. If not, please "
+ ."click here to download the file "
+ ."from the current mirror.
\n"
+ ."Change Mirror Site: \n");
else
+ print("Please select a mirror site below to begin the download.
\n"
+ ."Select Mirror Site: \n");
+
+ print("\n"
+ ." \n"
+ ." \n");
+
+ if ($site == "")
+ print(" None \n");
+
+ reset($sitelist);
+ while (list($key, $val) = each($sitelist))
{
- $cs = "";
- $ce = " ";
+ print(" $val \n");
}
- if ($version != $curversion)
+ if ($site != "")
+ print(" \n");
+ else
+ print(" \n");
+
+ print(" \n");
+}
+else
+{
+ // Show files...
+ print("Releases \n");
+
+ html_start_table(array("Version", "Filename", "Size", "MD5 Sum"));
+
+ $curversion = "";
+
+ for ($i = 0; $i < sizeof($files); $i ++)
{
- if ($curversion != "")
+ // Grab the data for the current file...
+ $data = explode(" ", $files[$i]);
+ $md5 = $data[0];
+ $fversion = $data[1];
+ $filename = $data[2];
+ $basename = basename($filename);
+
+ html_start_row();
+
+ if ($fversion == $version)
{
- print(" ");
- html_end_row();
- html_start_row();
+ $cs = "";
+ $ce = " ";
+ }
+ else
+ {
+ $cs = "";
+ $ce = " ";
}
- $curversion = $version;
- print("$cs$version $ce");
+ if ($fversion != $curversion)
+ {
+ if ($curversion != "")
+ {
+ print(" ");
+ html_end_row();
+ html_start_row();
+ }
+
+ $curversion = $fversion;
+ print("$cs$fversion $ce");
+ }
+ else
+ print("$cs$ce");
+
+ $kbytes = (int)((filesize("/home/ftp/pub/$filename") + 1023) / 1024);
+
+ print("$cs"
+ ."$basename $ce"
+ ."$cs${kbytes}k$ce"
+ ."$cs$md5 $ce");
+
+ html_end_row();
}
- else
- print("$cs$ce");
- $kbytes = (int)((filesize("swfiles/$file") + 1023) / 1024);
- $filemd5 = $md5["$file"];
+ html_end_table();
- print("$cs$file $ce"
- ."$cs${kbytes}k$ce"
- ."$cs$filemd5 $ce");
-
- html_end_row();
+ print("\n"
+ ."The $PROJECT_NAME software is available via Subversion "
+ ."using the following URL:
\n"
+ ."\n"
+ ." "
+ ."http://svn.easysw.com/public/$PROJECT_MODULE/ \n"
+ ." \n"
+ ."The following command can be used to checkout the current "
+ ."$PROJECT_NAME source from Subversion:
\n"
+ ."\n"
+ ." svn co http://svn.easysw.com/public/$PROJECT_MODULE/trunk/ $PROJECT_MODULE \n"
+ ." \n");
}
-html_end_table();
-
-print("\n"
- ."The $PROJECT_NAME software is available via anonymous CVS "
- ."using the following CVS root:
\n"
- ."\n"
- ." :pserver:anonymous@cvs.easysw.com:/home/anoncvs\n"
- ." \n"
- ."The module name is $PROJECT_MODULE . The following "
- ."command can be used to checkout the $PROJECT_NAME source from "
- ."CVS:
\n"
- ."\n"
- ." cvs -d:pserver:anonymous@cvs.easysw.com:/home/anoncvs get $PROJECT_MODULE \n"
- ." \n");
-
+// Show the standard footer...
html_footer();
//
-// End of "$Id: software.php,v 1.4 2004/05/19 22:45:23 mike Exp $".
+// End of "$Id$".
//
?>
diff --git a/www/str.php b/www/str.php
index 9b65906..92628fe 100644
--- a/www/str.php
+++ b/www/str.php
@@ -1,6 +1,6 @@
- "Fixed in CVS - the anonymous CVS repository will be updated at "
- ."midnight EST.",
+ "Fixed in Repo" =>
+ "Fixed in Subversion repository.",
"Old STR" =>
"This STR has not been updated by the submitter for two or more weeks "
."and has been closed as required by the Mini-XML Configuration Management "
@@ -51,6 +50,7 @@ $subsystems = array(
$versions = array(
"CVS",
"+2.2",
+ "+2.1.1",
"2.1",
"2.0",
"2.0rc1",
@@ -234,7 +234,7 @@ if ($argc)
if ($op != 'L' && $op != 'M' && $op != 'T' && $op != 'F' &&
$op != 'N' && $op != 'U' && $op != 'B')
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Bad command '$op'!
\n");
html_footer();
exit();
@@ -242,7 +242,7 @@ if ($argc)
if (($op == 'M' || $op == 'B') && $LOGIN_LEVEL < AUTH_DEVEL)
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("The '$op' command is not available to you!
\n");
html_footer();
exit();
@@ -250,7 +250,7 @@ if ($argc)
if (($op == 'M' || $op == 'T' || $op == 'F') && !$id)
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Command '$op' requires an STR number!
\n");
html_footer();
exit();
@@ -258,7 +258,7 @@ if ($argc)
if ($op == 'N' && $id)
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Command '$op' cannot have an STR number!
\n");
html_footer();
exit();
@@ -297,7 +297,7 @@ if ($argc)
$femail = (int)$option;
break;
default :
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("Bad option '$argv[$i]'!
\n");
html_footer();
exit();
@@ -417,7 +417,7 @@ switch ($op)
$row = db_next($result);
html_start_links(1);
- html_link("Return to Support", "$PHP_SELF?L$options");
+ html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
if ($row['status'] >= $STR_STATUS_ACTIVE)
{
@@ -563,13 +563,13 @@ switch ($op)
}
else
{
- html_header("Support");
+ html_header("Bugs & Features");
html_start_links(1);
- html_link("Submit Support Request", "$PHP_SELF?N$options'");
+ html_link("Submit Bug or Feature Request", "$PHP_SELF?N$options'");
html_end_links();
- print("Support \n");
+ print("Bugs & Features \n");
print(""
."Search Words: "
@@ -1041,7 +1041,7 @@ switch ($op)
html_header("Modify STR #$id");
html_start_links(1);
- html_link("Return to Support", "$PHP_SELF?L$options");
+ html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
html_link("Return to STR #$id", "$PHP_SELF?L$id$options");
html_link("Post Text", "$PHP_SELF?T$id$options");
html_link("Post File", "$PHP_SELF?F$id$options");
@@ -1682,13 +1682,13 @@ switch ($op)
}
else
{
- html_header("Submit Support Request");
+ html_header("Submit Bug or Feature Request");
html_start_links(1);
- html_link("Return to Support", "$PHP_SELF?L$options");
+ html_link("Return to Bugs & Features", "$PHP_SELF?L$options");
html_end_links();
- print("
Submit Support Request \n");
+ print("Submit Bug or Feature Request \n");
if ($REQUEST_METHOD == "POST")
{
@@ -1818,7 +1818,7 @@ switch ($op)
print(" \n");
print(""
- ." \n");
+ ." \n");
print(" \n");
html_footer();
}
@@ -1830,7 +1830,7 @@ switch ($op)
if ($REQUEST_METHOD != "POST")
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("The '$op' command requires a POST request!\n");
html_footer();
exit();
@@ -1842,7 +1842,7 @@ switch ($op)
if (($notification != "ON" && $notification != "OFF") || $email == "" ||
!validate_email($email))
{
- html_header("STR Error");
+ html_header("Bugs & Features Error");
print("
Please press your browsers back button and enter a valid "
."EMail address and choose whether to receive notification "
."messages.
\n");
@@ -1898,6 +1898,6 @@ switch ($op)
}
//
-// End of "$Id: str.php,v 1.16 2004/11/13 18:26:33 mike Exp $".
+// End of "$Id$".
//
?>
diff --git a/www/swfiles/mxml-0.9.tar.gz b/www/swfiles/mxml-0.9.tar.gz
deleted file mode 100644
index eb3f0ac..0000000
Binary files a/www/swfiles/mxml-0.9.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-0.91.tar.gz b/www/swfiles/mxml-0.91.tar.gz
deleted file mode 100644
index 94cac10..0000000
Binary files a/www/swfiles/mxml-0.91.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-0.92.tar.gz b/www/swfiles/mxml-0.92.tar.gz
deleted file mode 100644
index 7c69fe8..0000000
Binary files a/www/swfiles/mxml-0.92.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-0.93.tar.gz b/www/swfiles/mxml-0.93.tar.gz
deleted file mode 100644
index 5324718..0000000
Binary files a/www/swfiles/mxml-0.93.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-1.0-1.i386.rpm b/www/swfiles/mxml-1.0-1.i386.rpm
deleted file mode 100644
index c159634..0000000
Binary files a/www/swfiles/mxml-1.0-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-1.0.tar.gz b/www/swfiles/mxml-1.0.tar.gz
deleted file mode 100644
index 71ebbb4..0000000
Binary files a/www/swfiles/mxml-1.0.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-1.1-1.i386.rpm b/www/swfiles/mxml-1.1-1.i386.rpm
deleted file mode 100644
index 5ab6bd2..0000000
Binary files a/www/swfiles/mxml-1.1-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-1.1.1-1.i386.rpm b/www/swfiles/mxml-1.1.1-1.i386.rpm
deleted file mode 100644
index 1603140..0000000
Binary files a/www/swfiles/mxml-1.1.1-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-1.1.1.tar.gz b/www/swfiles/mxml-1.1.1.tar.gz
deleted file mode 100644
index 7bcc128..0000000
Binary files a/www/swfiles/mxml-1.1.1.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-1.1.2-1.i386.rpm b/www/swfiles/mxml-1.1.2-1.i386.rpm
deleted file mode 100644
index e305923..0000000
Binary files a/www/swfiles/mxml-1.1.2-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-1.1.2.tar.gz b/www/swfiles/mxml-1.1.2.tar.gz
deleted file mode 100644
index bb8c05b..0000000
Binary files a/www/swfiles/mxml-1.1.2.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-1.1.tar.gz b/www/swfiles/mxml-1.1.tar.gz
deleted file mode 100644
index d4ff89d..0000000
Binary files a/www/swfiles/mxml-1.1.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-1.2-1.i386.rpm b/www/swfiles/mxml-1.2-1.i386.rpm
deleted file mode 100644
index 41b014d..0000000
Binary files a/www/swfiles/mxml-1.2-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-1.2.tar.gz b/www/swfiles/mxml-1.2.tar.gz
deleted file mode 100644
index 0c373c9..0000000
Binary files a/www/swfiles/mxml-1.2.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-1.3-1.i386.rpm b/www/swfiles/mxml-1.3-1.i386.rpm
deleted file mode 100644
index dd61492..0000000
Binary files a/www/swfiles/mxml-1.3-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-1.3.tar.gz b/www/swfiles/mxml-1.3.tar.gz
deleted file mode 100644
index 0f5b7c6..0000000
Binary files a/www/swfiles/mxml-1.3.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-2.0-1.i386.rpm b/www/swfiles/mxml-2.0-1.i386.rpm
deleted file mode 100644
index 38d883c..0000000
Binary files a/www/swfiles/mxml-2.0-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-2.0.tar.gz b/www/swfiles/mxml-2.0.tar.gz
deleted file mode 100644
index 4c618d1..0000000
Binary files a/www/swfiles/mxml-2.0.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml-2.1-1.i386.rpm b/www/swfiles/mxml-2.1-1.i386.rpm
deleted file mode 100644
index 634b647..0000000
Binary files a/www/swfiles/mxml-2.1-1.i386.rpm and /dev/null differ
diff --git a/www/swfiles/mxml-2.1.tar.gz b/www/swfiles/mxml-2.1.tar.gz
deleted file mode 100644
index e5e5d3a..0000000
Binary files a/www/swfiles/mxml-2.1.tar.gz and /dev/null differ
diff --git a/www/swfiles/mxml.md5 b/www/swfiles/mxml.md5
deleted file mode 100644
index 15b4ea5..0000000
--- a/www/swfiles/mxml.md5
+++ /dev/null
@@ -1,20 +0,0 @@
-2b55de728aa5e8c3d254bc192395b6b5 mxml-0.91.tar.gz
-24a043c32316c23da079fcc0e5a9ee5d mxml-0.92.tar.gz
-e52545d20d4713ed96054980efdfad9e mxml-0.93.tar.gz
-f5fe73468b143a0ba0a52cc3fb70d50d mxml-0.9.tar.gz
-fa81e0552c2296a9a96acab45ca40b97 mxml-1.0-1.i386.rpm
-84dcb43388c621d0622b07d773e9330d mxml-1.0.tar.gz
-707ccead0ba2e26828197760957a54b3 mxml-1.1.1-1.i386.rpm
-56743f9515038682101506b7d5147968 mxml-1.1-1.i386.rpm
-3529f8e70b1aa5e2f5de114cd58d63b8 mxml-1.1.1.tar.gz
-9e5d8f70186a5ad84034721582945e24 mxml-1.1.2-1.i386.rpm
-f77726908d86a167d3d63076b272dfcd mxml-1.1.2.tar.gz
-8e2376171e14c59394b0c2c06ec2b1bd mxml-1.1.tar.gz
-099d05a62278020189c258968aae7533 mxml-1.2-1.i386.rpm
-57720317e7e5ad4c91fb076cb52105ad mxml-1.2.tar.gz
-9dfb974bd31d60c97bfa394b7f6ca63e mxml-1.3-1.i386.rpm
-9b116daa370bf647447d6ffe70e73534 mxml-1.3.tar.gz
-2d010aa0cfc1058aa48b3c03bc3781ec mxml-2.0-1.i386.rpm
-bd9194cdbf717550a130789802e5b81c mxml-2.0.tar.gz
-e30ff88b15f74964e20d80c6577a1cb9 mxml-2.1-1.i386.rpm
-35f829a907c0319f83a3661591788ed3 mxml-2.1.tar.gz