build: remove some obsolete support scripts
authorJo-Philipp Wich <jow@openwrt.org>
Sun, 2 Jan 2011 19:20:23 +0000 (19:20 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Sun, 2 Jan 2011 19:20:23 +0000 (19:20 +0000)
build/i18n-html2lua.pl [deleted file]
build/i18n-lua-xhtml1.xsl [deleted file]
build/i18n-lua2po.pl [deleted file]
build/i18n-lua2xml.lua [deleted file]
build/i18n-xml2lua.sh [deleted file]
build/mklar.pl [deleted file]

diff --git a/build/i18n-html2lua.pl b/build/i18n-html2lua.pl
deleted file mode 100755 (executable)
index c6b893e..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/perl
-
-@ARGV || die "Usage: $0 template1.htm [... templateN.htm]\n";
-
-
-my %tags;
-
-foreach my $file ( @ARGV )
-{
-       if( open F, "< $file" )
-       {
-               local $/ = undef;
-
-               my $data = <F>;
-
-               while( $data =~ m/ <%: -? (\w+) (.*?) %> /sgx )
-               {
-                       my ( $key, $val ) = ( $1, $2 );
-
-                       if( $key && $val )
-                       {
-                               $val =~ s/\s+/ /sg;
-                               $val =~ s/^\s+//;
-                               $val =~ s/\s+$//;
-
-                               $tags{$key} = $val;
-                       }
-                       else
-                       {
-                               $tags{$key} ||= '';
-                       }
-               }
-
-               close F;
-       }
-}
-
-foreach my $key ( sort keys %tags )
-{
-       if( $val =~ /'/ )
-       {
-               printf "%s = [[%s]]\n", $key, $tags{$key};
-       }
-       else
-       {
-               printf "%s = '%s'\n", $key, $tags{$key};
-       }
-}
diff --git a/build/i18n-lua-xhtml1.xsl b/build/i18n-lua-xhtml1.xsl
deleted file mode 100644 (file)
index 53bd7be..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!--
-Copyright (C) 2008  Alina Friedrichsen <x-alina@gmx.net>
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions
-are met:
-1. Redistributions of source code must retain the above copyright
-   notice, this list of conditions and the following disclaimer.
-2. Redistributions in binary form must reproduce the above copyright
-   notice, this list of conditions and the following disclaimer in the
-   documentation and/or other materials provided with the distribution.
-
-THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.
--->
-
-<xsl:transform version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns:h="http://www.w3.org/1999/xhtml" xmlns="http://www.w3.org/1999/xhtml" exclude-result-prefixes="i18n h">
-<xsl:output method="text" encoding="utf-8" media-type="text/x-lua" indent="no"/>
-
-<xsl:template match="/i18n:msgs">
-       <xsl:apply-templates select="i18n:msg" />
-</xsl:template>
-
-<xsl:template match="i18n:msg">
-       <xsl:if test="@xml:id != '' and translate(@xml:id, '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz', '') = ''">
-               <xsl:if test="translate(substring(@xml:id, 0, 2), 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', '') = ''">
-                       <xsl:if test="@xml:id != 'and' and @xml:id != 'break' and @xml:id != 'do' and @xml:id != 'else' and @xml:id != 'elseif' and @xml:id != 'end' and @xml:id != 'false' and @xml:id != 'for' and @xml:id != 'function' and @xml:id != 'if' and @xml:id != 'in' and @xml:id != 'local' and @xml:id != 'nil' and @xml:id != 'not' and @xml:id != 'or' and @xml:id != 'repeat' and @xml:id != 'return' and @xml:id != 'then' and @xml:id != 'true' and @xml:id != 'until' and @xml:id != 'while'">
-                               <xsl:value-of select="@xml:id"/>
-                               <xsl:text> = '</xsl:text>
-                               <xsl:choose>
-                                       <xsl:when test="@method = 'text'">
-                                               <xsl:call-template name="escape-lua">
-                                                       <xsl:with-param name="string" select="."/>
-                                               </xsl:call-template>
-                                       </xsl:when>
-                                       <xsl:otherwise>
-                                               <xsl:apply-templates select="node()" mode="xhtml"/>
-                                       </xsl:otherwise>
-                               </xsl:choose>
-                               <xsl:text>'&#10;</xsl:text>
-                       </xsl:if>
-               </xsl:if>
-       </xsl:if>
-</xsl:template>
-
-<xsl:template match="h:*" priority="-1" mode="xhtml">
-       <xsl:text>&lt;</xsl:text>
-       <xsl:value-of select="local-name(.)"/>
-       <xsl:apply-templates select="@*" mode="xhtml"/>
-       <xsl:text>&gt;</xsl:text>
-       <xsl:apply-templates mode="xhtml"/>
-       <xsl:text>&lt;/</xsl:text>
-       <xsl:value-of select="local-name(.)"/>
-       <xsl:text>&gt;</xsl:text>
-</xsl:template>
-
-<xsl:template match="*" priority="-2" mode="xhtml">
-       <xsl:text>&lt;span class=&quot;</xsl:text>
-       <xsl:value-of select="local-name(.)"/>
-       <xsl:text>&quot;</xsl:text>
-       <xsl:apply-templates select="@*" mode="xhtml"/>
-       <xsl:text>&gt;</xsl:text>
-       <xsl:apply-templates mode="xhtml"/>
-       <xsl:text>&lt;/span&gt;</xsl:text>
-</xsl:template>
-
-<xsl:template match="h:br" mode="xhtml">
-       <xsl:text>&lt;br</xsl:text>
-       <xsl:apply-templates select="@*" mode="xhtml"/>
-       <xsl:text> /&gt;</xsl:text>
-</xsl:template>
-
-<xsl:template match="h:img" mode="xhtml">
-       <xsl:text>&lt;img</xsl:text>
-       <xsl:apply-templates select="@*" mode="xhtml"/>
-       <xsl:text> /&gt;</xsl:text>
-</xsl:template>
-
-<xsl:template match="@*" priority="-1" mode="xhtml">
-       <xsl:if test="namespace-uri(.) = '' and local-name(.) != 'lang' or namespace-uri(.) = 'http://www.w3.org/XML/1998/namespace'">
-               <xsl:if test="namespace-uri(..) = 'http://www.w3.org/1999/xhtml' or local-name(.) != 'class'">
-                       <xsl:text> </xsl:text>
-                       <xsl:if test="namespace-uri(.) = 'http://www.w3.org/XML/1998/namespace'">
-                               <xsl:text>xml:</xsl:text>
-                       </xsl:if>
-                       <xsl:value-of select="local-name(.)"/>
-                       <xsl:text>=&quot;</xsl:text>
-                       <xsl:variable name="escaped">
-                               <xsl:call-template name="escape-lua-xhtml1">
-                                       <xsl:with-param name="string" select="."/>
-                               </xsl:call-template>
-                       </xsl:variable>
-                       <xsl:value-of select="$escaped"/>
-                       <xsl:text>&quot;</xsl:text>
-               </xsl:if>
-       </xsl:if>
-</xsl:template>
-
-<xsl:template match="@xml:lang" mode="xhtml">
-       <xsl:variable name="escaped">
-               <xsl:call-template name="escape-lua-xhtml1">
-                       <xsl:with-param name="string" select="."/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:text> xml:lang=&quot;</xsl:text>
-       <xsl:value-of select="$escaped"/>
-       <xsl:text>&quot;</xsl:text>
-       <xsl:text> lang=&quot;</xsl:text>
-       <xsl:value-of select="$escaped"/>
-       <xsl:text>&quot;</xsl:text>
-</xsl:template>
-
-<xsl:template match="text()" priority="-1" mode="xhtml">
-       <xsl:variable name="escaped">
-               <xsl:call-template name="escape-lua-xhtml1">
-                       <xsl:with-param name="string" select="."/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:value-of select="$escaped"/>
-</xsl:template>
-
-<xsl:template name="escape-xhtml1">
-       <xsl:param name="string"/>
-       <xsl:variable name="escaped">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$string"/>
-                       <xsl:with-param name="search" select="'&amp;'"/>
-                       <xsl:with-param name="replace" select="'&amp;amp;'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:variable name="escaped1">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$escaped"/>
-                       <xsl:with-param name="search" select="'&quot;'"/>
-                       <xsl:with-param name="replace" select="'&amp;quot;'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:variable name="escaped2">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$escaped1"/>
-                       <xsl:with-param name="search" select='"&#39;"'/>
-                       <xsl:with-param name="replace" select="'&amp;#39;'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:variable name="escaped3">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$escaped2"/>
-                       <xsl:with-param name="search" select="'&lt;'"/>
-                       <xsl:with-param name="replace" select="'&amp;lt;'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:call-template name="replace">
-               <xsl:with-param name="string" select="$escaped3"/>
-               <xsl:with-param name="search" select="'&gt;'"/>
-               <xsl:with-param name="replace" select="'&amp;gt;'"/>
-       </xsl:call-template>
-</xsl:template>
-
-<xsl:template name="escape-lua">
-       <xsl:param name="string"/>
-       <xsl:variable name="escaped">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$string"/>
-                       <xsl:with-param name="search" select="'\'"/>
-                       <xsl:with-param name="replace" select="'\\'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:variable name="escaped1">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$escaped"/>
-                       <xsl:with-param name="search" select="'&#10;'"/>
-                       <xsl:with-param name="replace" select="'\n'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:variable name="escaped2">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$escaped1"/>
-                       <xsl:with-param name="search" select="'&#13;'"/>
-                       <xsl:with-param name="replace" select="'\r'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:variable name="escaped3">
-               <xsl:call-template name="replace">
-                       <xsl:with-param name="string" select="$escaped2"/>
-                       <xsl:with-param name="search" select="'&quot;'"/>
-                       <xsl:with-param name="replace" select="'\&quot;'"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:call-template name="replace">
-               <xsl:with-param name="string" select="$escaped3"/>
-               <xsl:with-param name="search" select='"&#39;"'/>
-               <xsl:with-param name="replace" select='"\&#39;"'/>
-       </xsl:call-template>
-</xsl:template>
-
-<xsl:template name="escape-lua-xhtml1">
-       <xsl:param name="string"/>
-       <xsl:variable name="escaped">
-               <xsl:call-template name="escape-xhtml1">
-                       <xsl:with-param name="string" select="$string"/>
-               </xsl:call-template>
-       </xsl:variable>
-       <xsl:call-template name="escape-lua">
-               <xsl:with-param name="string" select="$escaped"/>
-       </xsl:call-template>
-</xsl:template>
-
-<xsl:template name="replace">
-       <xsl:param name="string"/>
-       <xsl:param name="search"/>
-       <xsl:param name="replace"/>
-       <xsl:choose>
-               <xsl:when test="contains($string, $search)">
-                       <xsl:value-of select="substring-before($string, $search)"/>
-                       <xsl:value-of select="$replace"/>
-                       <xsl:call-template name="replace">
-                               <xsl:with-param name="string" select="substring-after($string, $search)"/>
-                               <xsl:with-param name="search" select="$search"/>
-                               <xsl:with-param name="replace" select="$replace"/>
-                       </xsl:call-template>
-               </xsl:when>
-               <xsl:otherwise>
-                       <xsl:value-of select="$string"/>
-               </xsl:otherwise>
-       </xsl:choose>
-</xsl:template>
-
-</xsl:transform>
diff --git a/build/i18n-lua2po.pl b/build/i18n-lua2po.pl
deleted file mode 100755 (executable)
index d72d2e9..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#!/usr/bin/perl
-
-@ARGV >= 2 || die "Usage: $0 <source-dir> <dest-dir> [<target-language>]\n";
-
-my $source_dir  = shift @ARGV;
-my $target_dir  = shift @ARGV;
-my $target_lang = shift @ARGV;
-my $master_lang = "en";
-
-
-if( ! -d "$target_dir/" . ( $target_lang || 'templates' ) )
-{
-       system('mkdir', '-p', "$target_dir/" . ( $target_lang || 'templates' ));
-}
-
-
-my %target_strings;
-
-if( $target_lang && open F, "find $source_dir -path '*/luasrc/i18n/*' -name '*.$target_lang.lua' |" )
-{
-       while( chomp( my $file = readline F ) )
-       {
-               if( open L, "< $file" )
-               {
-                       my ( $basename ) = $file =~ m{.+/([^/]+)\.[\w\-]+\.lua$};
-                       $target_strings{$basename} = { };
-
-                       while( chomp( my $entry = readline L ) )
-                       {
-                               my ( $k, $v );
-                               if( $entry =~ /^\s*(\w+)\s*=\s*\[\[(.+)\]\]/ )
-                               {
-                                       ( $k, $v ) = ( $1, $2 );
-                               }
-                               elsif( $entry =~ /^\s*(\w+)\s*=\s*'(.+)'/ )
-                               {
-                                       ( $k, $v ) = ( $1, $2 );
-                               }
-                               elsif( $entry =~ /^\s*(\w+)\s*=\s*"(.+)"/ )
-                               {
-                                       ( $k, $v ) = ( $1, $2 );
-                               }
-                               
-                               if( $k && $v )
-                               {
-                                       $v =~ s/"/\\"/g;
-                                       $v =~ s/\\\\"/\\"/g;
-                                       $target_strings{$basename}{$k} = $v;
-                               }
-                       }
-
-                       close L;
-               }
-       }
-
-       close F;
-}
-
-
-if( open F, "find . -path '*/luasrc/i18n/*' -name '*.$master_lang.lua' |" )
-{
-       my $destfile = sprintf '%s/%s/%%s.%s',
-               $target_dir,
-               $target_lang || 'templates',
-               $target_lang ? 'po' : 'pot'
-       ;
-
-       while( chomp( my $file = readline F ) )
-       {
-               if( open L, "< $file" )
-               {
-                       my ( $basename ) = $file =~ m{.+/([^/]+)\.\w+\.lua$};
-                       my $filename = sprintf $destfile, $basename;
-
-                       if( open T, "> $filename" )
-                       {
-                               printf "Generating %-40s ", $filename;
-
-                               printf T "#  %s.%s\n#  generated from %s\n\nmsgid \"\"\n" .
-                                        "msgstr \"Content-Type: text/plain; charset=UTF-8\"\n\n",
-                                       $basename, $target_lang ? 'po' : 'pot', $file;
-               
-                               while( chomp( my $entry = readline L ) )
-                               {
-                                       my ( $k, $v );
-                                       if( $entry =~ /^\s*(\w+)\s*=\s*\[\[(.+)\]\]/ )
-                                       {
-                                               ( $k, $v ) = ( $1, $2 );
-                                       }
-                                       elsif( $entry =~ /^\s*(\w+)\s*=\s*'(.+)'/ )
-                                       {
-                                               ( $k, $v ) = ( $1, $2 );
-                                       }
-                                       elsif( $entry =~ /^\s*(\w+)\s*=\s*"(.+)"/ )
-                                       {
-                                               ( $k, $v ) = ( $1, $2 );
-                                       }
-                               
-                                       if( $k && $v )
-                                       {
-                                               $v =~ s/"/\\"/g;
-                                               $v =~ s/\\\\"/\\"/g;
-                                               printf T "#: %s:%d\n#. %s\nmsgid \"%s\"\nmsgstr \"%s\"\n\n",
-                                                       $file, $., $v, $k,
-                                                       ( $target_strings{$basename} && $target_strings{$basename}{$k} )
-                                                               ? $target_strings{$basename}{$k} : "";
-                                       }
-                               }
-                               
-                               close T;
-                               
-                               print "done\n";
-                       }
-
-                       close L;
-               }
-       }
-
-       close F;
-}
diff --git a/build/i18n-lua2xml.lua b/build/i18n-lua2xml.lua
deleted file mode 100755 (executable)
index 674c8ad..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/lua
-local util = require "luci.util"
-
-assert(arg[1])
-
-local x = {}
-local f = loadfile(arg[1])
-setfenv(f, x)
-f()
-
-print '<?xml version="1.0" encoding="utf-8"?>'
-print ''
-print '<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">'
-print ''
-
-for k, v in util.kspairs(x) do
-       print ('<i18n:msg xml:id="%s">%s</i18n:msg>' % {k, v})
-end
-
-print ''
-print '</i18n:msgs>'
-
diff --git a/build/i18n-xml2lua.sh b/build/i18n-xml2lua.sh
deleted file mode 100644 (file)
index d70e135..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/sh
-# Copyright (C) 2008  Alina Friedrichsen <x-alina@gmx.net>
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions
-# are met:
-# 1. Redistributions of source code must retain the above copyright
-#    notice, this list of conditions and the following disclaimer.
-# 2. Redistributions in binary form must reproduce the above copyright
-#    notice, this list of conditions and the following disclaimer in the
-#    documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
-# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
-# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
-# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-# SUCH DAMAGE.
-
-i18n_xml2lua() {
-       echo '<?xml version="1.0" encoding="utf-8"?>'
-       echo
-       echo '<i18n:msgs xmlns:i18n="http://luci.freifunk-halle.net/2008/i18n#" xmlns="http://www.w3.org/1999/xhtml">'
-       echo
-       LANG=C sed -e 's/^\s*\([A-Za-z][0-9A-Za-z_]*\)\s*[=]\s*\[\[/<i18n:msg xml:id="\1">/' -e 's/\]\]\s*$/<\/i18n:msg>/' -e 's/^\s*\([A-Za-z][0-9A-Za-z_]*\)\s*[=]\s*["]\(.*\)["]\s*$/<i18n:msg xml:id="\1">\2<\/i18n:msg>/' -e 's/^\s*$//'
-       echo
-       echo '</i18n:msgs>'
-       return 0
-}
-
-for file in "$@"; do
-       i18n_xml2lua < "$file" > "$(dirname "$file")/$(basename "$file" .lua).xml" || exit 1
-done
diff --git a/build/mklar.pl b/build/mklar.pl
deleted file mode 100755 (executable)
index d91eaeb..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use File::Find;
-use Digest::MD5 qw(md5 md5_hex);
-
-my @search = @ARGV;
-if( !@search ) {
-       @search = (
-               glob("libs/*"),
-               glob("applications/*"),
-               glob("i18n/*"),
-               glob("modules/*")
-       );
-}
-
-
-sub depth {
-       my $p = shift;
-       my $d = 0;
-       $d++ while( $p =~ m{/}g );
-       return $d;
-};
-
-
-my @index;
-my $offset = 0;
-
-
-#
-# Build File Members
-#
-
-find( sub {
-       # Skip non-files
-       ( -f $_ ) || return;
-
-       # Skip stuff not in /luasrc/
-       ( $File::Find::name =~ m{/luasrc/} ) || return;
-
-       # Skip .svn foo
-       ( $File::Find::name !~ m{/\.svn\b} ) || return;
-
-       # Exclude luci-statistics and lucittpd for now
-       ( $File::Find::name !~ m{/luci-statistics/} && $File::Find::name !~ m{/lucittpd/} ) || return;
-
-
-       my $file = $File::Find::name;
-       $file =~ s{^.+/luasrc/}{luci/};
-
-       my $command = ( $File::Find::name =~ m{\.lua\z} && $ENV{LUAC} )
-               ? "$ENV{LUAC} -o - $_ |" : "< $_";
-
-       if( open F, $command )
-       {
-               warn sprintf "Member at 0x%08X: %s\n", $offset, $file;
-               push @index, [ ];
-
-               my $size = 0;
-               my $pad  = 0;
-
-               $index[-1][0] = $offset;
-
-               while( read F, my $buffer, 4096 ) {
-                       $size += length $buffer;
-                       print $buffer;
-               }
-
-               if( $size % 4 ) {
-                       $pad = ( 4 - ( $size % 4 ) );
-               }
-
-               print "\0" x $pad;
-
-               $index[-1][1] = $size;
-               $index[-1][2] = md5($file);
-               $index[-1][3] = 0x0000;
-               $index[-1][4] = $file;
-
-               $offset += $size + $pad;
-
-               close F;
-       }
-}, @search );
-
-
-#
-# Build File List Member
-#
-
-my $filelist = join("\0", map $_->[4], @index) . "\0";
-my $listsize = length $filelist;
-push @index, [ $offset, $listsize, "", 0xFFFF, undef ];
-
-warn sprintf "Filelist at 0x%08X, length 0x%08X\n", $offset, $listsize;
-
-print $filelist;
-$offset += $listsize;
-
-if( $listsize % 4 )
-{
-       $offset += ( 4 - ($listsize % 4) );
-       print "\0" x ( 4 - ($listsize % 4) );
-}
-
-
-my $count = 1;
-foreach my $file ( @index )
-{
-       warn sprintf "Index[%4d]: 0x%08X 0x%08X 0x%04X 0x%04X %32s\n",
-               $count++, $file->[0], $file->[1], $file->[3], 0x0000,
-               $file->[4] ? md5_hex($file->[4]) : "0" x 32
-       ;
-
-       print pack "NNnna16", $file->[0], $file->[1], $file->[3], 0x0000, $file->[2];
-}
-
-warn sprintf "Index at 0x%08X, length 0x%08X\n", $offset, @index * 28;
-print pack "N", $offset;