summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luazip
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
committerKarl Berry <karl@freefriends.org>2021-02-25 19:22:25 +0000
commitad547a6b5986815fda458221149728d9d9ab1d87 (patch)
tree16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/web2c/luatexdir/luazip
parent947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff)
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luazip')
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/Makefile24
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/README3
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/config23
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/doc/us/examples.html130
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/doc/us/index.html125
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/doc/us/license.html125
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/doc/us/luazip-128.pngbin0 -> 11156 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/doc/us/manual.html181
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/src/luazip.c535
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/src/luazip.h23
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/a/b/c.zipbin0 -> 114 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.ext2bin0 -> 203 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.zipbin0 -> 203 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/a3.ext3bin0 -> 299 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/a3.zipbin0 -> 297 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/luazip.zipbin0 -> 5062 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/tests/test_zip.lua76
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc6/README28
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.dsw29
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.rc109
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_dll.dsp163
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_static.dsp144
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc6/resource.h15
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc7/README27
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.rc103
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.sln29
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_dll.vcproj374
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_static.vcproj324
-rw-r--r--Build/source/texk/web2c/luatexdir/luazip/vc7/resource.h27
29 files changed, 2617 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luazip/Makefile b/Build/source/texk/web2c/luatexdir/luazip/Makefile
new file mode 100644
index 00000000000..ea1980db71c
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/Makefile
@@ -0,0 +1,24 @@
+# $Id: Makefile,v 1.9 2005/06/27 17:43:19 tomas Exp $
+
+T= zip
+V= 1.2.1
+CONFIG= ./config
+
+include $(CONFIG)
+
+SRCS= src/lua$T.c
+OBJS= src/lua$T.o
+
+
+lib: src/$(LIBNAME)
+
+src/$(LIBNAME): $(OBJS)
+ $(CC) $(CFLAGS) $(LIB_OPTION) -o src/$(LIBNAME) $(OBJS) -lzzip
+
+install: src/$(LIBNAME)
+ mkdir -p $(LUA_LIBDIR)
+ cp src/$(LIBNAME) $(LUA_LIBDIR)
+ cd $(LUA_LIBDIR); ln -f -s $(LIBNAME) $T.so
+
+clean:
+ rm -f $L src/$(LIBNAME) $(OBJS)
diff --git a/Build/source/texk/web2c/luatexdir/luazip/README b/Build/source/texk/web2c/luatexdir/luazip/README
new file mode 100644
index 00000000000..5c3e36dc198
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/README
@@ -0,0 +1,3 @@
+
+LuaZip is a Lua extension library used to read files stored inside zip files.
+Please see docs at doc/index.html or http://www.keplerproject.org/luazip
diff --git a/Build/source/texk/web2c/luatexdir/luazip/config b/Build/source/texk/web2c/luatexdir/luazip/config
new file mode 100644
index 00000000000..83f4b958101
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/config
@@ -0,0 +1,23 @@
+# Installation directories
+# System's libraries directory (where binary libraries are installed)
+LUA_LIBDIR= /usr/local/lib/lua/5.0
+# System's lua directory (where Lua libraries are installed)
+LUA_DIR= /usr/local/share/lua/5.0
+# Lua includes directory
+LUA_INC= /home/taco/luatex-dev/luatex/src/libs/lua51
+# Zziplib includes directory
+ZZLIB_INC= /usr/include
+
+# OS dependent
+LIB_OPTION= -shared #for Linux
+#LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X
+
+LIBNAME= $T.so.$V
+
+# Compilation directives
+WARN= -O2 -Wall -fPIC -W -Waggregate-return -Wcast-align -Wmissing-prototypes -Wnested-externs -Wshadow -Wwrite-strings
+INCS= -I$(LUA_INC) -I$(ZZLIB_INC)
+CFLAGS= $(WARN) $(INCS)
+CC= gcc
+
+# $Id: config,v 1.5 2005/06/24 02:00:38 tomas Exp $
diff --git a/Build/source/texk/web2c/luatexdir/luazip/doc/us/examples.html b/Build/source/texk/web2c/luatexdir/luazip/doc/us/examples.html
new file mode 100644
index 00000000000..cc55405315a
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/doc/us/examples.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>LuaZip: Reading files inside zip files</title>
+ <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+ <div id="product_logo">
+ <a href="http://www.keplerproject.org"><img alt="LuaZip logo" src="luazip-128.png"/></a>
+ </div>
+ <div id="product_name"><big><strong>LuaZip</strong></big></div>
+ <div id="product_description">Reading files inside zip files</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+<h1>LuaZip</h1>
+ <ul>
+ <li><a href="index.html">Home</a>
+ <ul>
+ <li><a href="index.html#overview">Overview</a></li>
+ <li><a href="index.html#status">Status</a></li>
+ <li><a href="index.html#download">Download</a></li>
+ <li><a href="index.html#history">History</a></li>
+ <li><a href="index.html#credits">Credits</a></li>
+ <li><a href="index.html#contact">Contact</a></li>
+ </ul>
+ </li>
+ <li><a href="manual.html">Manual</a>
+ <ul>
+ <li><a href="manual.html#introduction">Introduction</a></li>
+ <li><a href="manual.html#installation">Installation</a></li>
+ <li><a href="manual.html#reference">Reference</a></li>
+ </ul>
+ </li>
+ <li><strong>Examples</strong></li>
+ <li><a href="http://luaforge.net/projects/luazip/">Project</a>
+ <ul>
+ <li><a href="http://luaforge.net/tracker/?group_id=8">Bug Tracker</a></li>
+ <li><a href="http://luaforge.net/scm/?group_id=8">CVS</a></li>
+ </ul>
+ </li>
+ <li><a href="license.html">License</a></li>
+ </ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+
+<h2><a name="examples"></a>Example</h2>
+
+<p>
+Suppose we have the following file hierarchy:
+</p>
+
+<pre class="example">
+/a
+ /b
+ c.zip
+/a2
+ b2.ext2
+/a3.ext3
+/luazip.zip
+</pre>
+
+<ul>
+<li>c.zip contains the file 'd.txt'</li>
+<li>b2.ext2 is a zip file containing the file 'c2/d2.txt'</li>
+<li>a3.ext3 is a zip file containing the file 'b3/c3/d3.txt'</li>
+<li>luazip.zip contains the files 'luazip.h', 'luazip.c', 'Makefile', 'README'</li>
+</ul>
+
+Below is a small sample code displaying the basic use of the library.
+
+<pre class="example">
+require "zip"
+
+local zfile, err = zip.open('luazip.zip')
+
+-- print the filenames of the files inside the zip
+for file in zfile:files() do
+ print(file.filename)
+end
+
+-- open README and print it
+local f1, err = zfile:open('README')
+local s1 = f1:read("*a")
+print(s1)
+
+f1:close()
+zfile:close()
+
+-- open d.txt inside c.zip
+local d, err = zip.openfile('a/b/c/d.txt')
+assert(d, err)
+d:close()
+
+-- open d2.txt inside b2.ext2
+local d2, err = zip.openfile('a2/b2/c2/d2.txt', "ext2")
+assert(d2, err)
+d2:close()
+
+-- open d3.txt inside a3.ext3
+local d3, err = zip.openfile('a3/b3/c3/d3.txt', {"ext2", "ext3"})
+assert(d3, err)
+d3:close()
+</pre>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+ <p><small>
+ $Id: examples.html,v 1.4 2006/03/23 20:45:21 carregal Exp $
+ </small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/Build/source/texk/web2c/luatexdir/luazip/doc/us/index.html b/Build/source/texk/web2c/luatexdir/luazip/doc/us/index.html
new file mode 100644
index 00000000000..ca5aad3f412
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/doc/us/index.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>LuaZip: Reading files inside zip files</title>
+ <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+ <div id="product_logo">
+ <a href="http://www.keplerproject.org"><img alt="LuaZip logo" src="luazip-128.png"/></a>
+ </div>
+ <div id="product_name"><big><strong>LuaZip</strong></big></div>
+ <div id="product_description">Reading files inside zip files</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+<h1>LuaZip</h1>
+ <ul>
+ <li><strong>Home</strong>
+ <ul>
+ <li><a href="index.html#overview">Overview</a></li>
+ <li><a href="index.html#status">Status</a></li>
+ <li><a href="index.html#download">Download</a></li>
+ <li><a href="index.html#history">History</a></li>
+ <li><a href="index.html#credits">Credits</a></li>
+ <li><a href="index.html#contact">Contact</a></li>
+ </ul>
+ </li>
+ <li><a href="manual.html">Manual</a>
+ <ul>
+ <li><a href="manual.html#introduction">Introduction</a></li>
+ <li><a href="manual.html#installation">Installation</a></li>
+ <li><a href="manual.html#reference">Reference</a></li>
+ </ul>
+ </li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="http://luaforge.net/projects/luazip/">Project</a>
+ <ul>
+ <li><a href="http://luaforge.net/tracker/?group_id=8">Bug Tracker</a></li>
+ <li><a href="http://luaforge.net/scm/?group_id=8">CVS</a></li>
+ </ul>
+ </li>
+ <li><a href="license.html">License</a></li>
+ </ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+<h2><a name="overview"></a>Overview</h2>
+
+<p>LuaZip is a lightweight <a href="http://www.lua.org">Lua</a> 5.0 extension library
+used to read files stored inside zip files. The API is very similar to the standard
+Lua I/O library API.</p>
+
+<p>LuaZip is free software and uses the same <a href="license.html">license</a> as Lua 5.0.</p>
+
+<h2><a name="status"></a>Status</h2>
+
+<p>Current version is 1.2.2. It was developed for Lua 5.0.</p>
+
+<p>Version 1.2.2 follows the
+<a href="http://www.keplerproject.org/compat">package model</a>
+for Lua 5.1 (see section <a href="manual.html#installation">Installation</a>
+for more details).</p>
+
+<h2><a name="download"></a>Download</h2>
+
+<p>LuaZip source can be downloaded from its
+<a href="http://luaforge.net/projects/luazip/files">Lua Forge</a>
+page. If you are using
+<a href="http://luabinaries.luaforge.net">LuaBinaries</a> Release 2
+a Windows binary version of LuaZip can be found at the same
+LuaForge page.</p>
+
+<h2><a name="history"></a>History</h2>
+
+<dl class="history">
+ <dt><strong>Version 1.2.2</strong> [24/Mar/2006]</dt>
+ <dd>Minor fixes on makefile and config</dd>
+
+ <dt><strong>Version 1.2.1</strong> [08/Jun/2005]</dt>
+ <dd>Minor bug fixes</dd>
+
+ <dt><strong>Version 1.2.0</strong> [01/Dec/2004]</dt>
+ <dd></dd>
+
+ <dt><strong><a href="http://www.keplerproject.org/luazip/1.1">Version 1.1.3</a></strong> [25/Jun/2004]</dt>
+ <dd>First Public Release</dd>
+</dl>
+
+<h2><a name="credits"></a>Credits</h2>
+
+<p>LuaZip was designed and coded by Danilo Tuler as part of the
+<a href="http://www.keplerproject.org">Kepler Project</a>.</p>
+
+<h2><a name="contact"></a>Contact</h2>
+
+<p>For more information please
+<a href="mailto:info-NO-SPAM-THANKS@keplerproject.org">contact</a> us.
+Comments are welcome!</p>
+
+<p>You can also reach other Kepler developers and users on the Kepler Project
+<a href="http://luaforge.net/mail/?group_id=104">mailing list</a>.</p>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer">
+ <img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+ <p><small>$Id: index.html,v 1.7 2006/03/23 20:45:21 carregal Exp $</small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/Build/source/texk/web2c/luatexdir/luazip/doc/us/license.html b/Build/source/texk/web2c/luatexdir/luazip/doc/us/license.html
new file mode 100644
index 00000000000..f9fd47f9cfe
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/doc/us/license.html
@@ -0,0 +1,125 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>LuaZip: Reading files inside zip files</title>
+ <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+ <div id="product_logo">
+ <a href="http://www.keplerproject.org"><img alt="LuaZip logo" src="luazip-128.png"/></a>
+ </div>
+ <div id="product_name"><big><strong>LuaZip</strong></big></div>
+ <div id="product_description">Reading files inside zip files</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+<h1>LuaZip</h1>
+ <ul>
+ <li><a href="index.html">Home</a>
+ <ul>
+ <li><a href="index.html#overview">Overview</a></li>
+ <li><a href="index.html#status">Status</a></li>
+ <li><a href="index.html#download">Download</a></li>
+ <li><a href="index.html#history">History</a></li>
+ <li><a href="index.html#credits">Credits</a></li>
+ <li><a href="index.html#contact">Contact</a></li>
+ </ul>
+ </li>
+ <li><a href="manual.html">Manual</a>
+ <ul>
+ <li><a href="manual.html#introduction">Introduction</a></li>
+ <li><a href="manual.html#installation">Installation</a></li>
+ <li><a href="manual.html#reference">Reference</a></li>
+ </ul>
+ </li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="http://luaforge.net/projects/luazip/">Project</a>
+ <ul>
+ <li><a href="http://luaforge.net/tracker/?group_id=8">Bug Tracker</a></li>
+ <li><a href="http://luaforge.net/scm/?group_id=8">CVS</a></li>
+ </ul>
+ </li>
+ <li><strong>License</strong></li>
+ </ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+<h2>License</h2>
+
+<p>
+LuaZip is free software: it can be used for both academic and commercial purposes at absolutely no cost.
+There are no royalties or GNU-like "copyleft" restrictions.
+LuaZip qualifies as <a href="http://www.opensource.org/docs/definition.html">Open Source</a>
+software.
+Its licenses are compatible with <a href="http://www.gnu.org/licenses/gpl.html">GPL</a>.
+LuaZip is not in the public domain and the <a href="http://www.keplerproject.org">Kepler Project</a>
+keep its copyright. The legal details are below.
+</p>
+
+<p>
+The spirit of the license is that
+you are free to use LuaZip for any purpose at no cost without having to ask us.
+The only requirement is that
+if you do use LuaZip,
+then you should give us credit by including the appropriate copyright notice
+somewhere in your product or its documentation.
+</p>
+
+<p>
+The LuaZip library was designed and implemented by Danilo Tuler.
+Part of the code is a derived work from the Lua standard I/O library, copyrighted by Tecgraf, PUC-Rio.
+</p>
+
+<hr/>
+<p>
+Copyright &copy; 2003-2006 The Kepler Project.
+</p>
+
+<p>
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+</p>
+
+<p>
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+</p>
+
+<p>
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+</p>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+ <p><small>
+ $Id: license.html,v 1.5 2006/03/25 14:59:02 carregal Exp $
+ </small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/Build/source/texk/web2c/luatexdir/luazip/doc/us/luazip-128.png b/Build/source/texk/web2c/luatexdir/luazip/doc/us/luazip-128.png
new file mode 100644
index 00000000000..03b2e379b59
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/doc/us/luazip-128.png
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/doc/us/manual.html b/Build/source/texk/web2c/luatexdir/luazip/doc/us/manual.html
new file mode 100644
index 00000000000..d9103af5539
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/doc/us/manual.html
@@ -0,0 +1,181 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+ <title>LuaZip: Reading files inside zip files</title>
+ <link rel="stylesheet" href="http://www.keplerproject.org/doc.css" type="text/css"/>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+</head>
+<body>
+
+<div id="container">
+
+<div id="product">
+ <div id="product_logo">
+ <a href="http://www.keplerproject.org"><img alt="LuaZip logo" src="luazip-128.png"/></a>
+ </div>
+ <div id="product_name"><big><strong>LuaZip</strong></big></div>
+ <div id="product_description">Reading files inside zip files</div>
+</div> <!-- id="product" -->
+
+<div id="main">
+
+<div id="navigation">
+<h1>LuaZip</h1>
+ <ul>
+ <li><a href="index.html">Home</a>
+ <ul>
+ <li><a href="index.html#overview">Overview</a></li>
+ <li><a href="index.html#status">Status</a></li>
+ <li><a href="index.html#download">Download</a></li>
+ <li><a href="index.html#history">History</a></li>
+ <li><a href="index.html#credits">Credits</a></li>
+ <li><a href="index.html#contact">Contact</a></li>
+ </ul>
+ </li>
+ <li><strong>Manual</strong>
+ <ul>
+ <li><a href="manual.html#introduction">Introduction</a></li>
+ <li><a href="manual.html#installation">Installation</a></li>
+ <li><a href="manual.html#reference">Reference</a></li>
+ </ul>
+ </li>
+ <li><a href="examples.html">Examples</a></li>
+ <li><a href="http://luaforge.net/projects/luazip/">Project</a>
+ <ul>
+ <li><a href="http://luaforge.net/tracker/?group_id=8">Bug Tracker</a></li>
+ <li><a href="http://luaforge.net/scm/?group_id=8">CVS</a></li>
+ </ul>
+ </li>
+ <li><a href="license.html">License</a></li>
+ </ul>
+</div> <!-- id="navigation" -->
+
+<div id="content">
+
+
+<h2><a name="introduction"></a>Introduction</h2>
+
+<p>LuaZip is a lightweight <a href="http://www.lua.org">Lua</a> 5.0 extension library
+that can be used to read files stored inside zip files. It uses
+<a href="http://zziplib.sourceforge.net">zziplib</a> to do all the hard work.</p>
+
+<p>The API exposed to Lua is very simple and very similiar to the usual file handling
+functions provided by the
+<a href="http://www.lua.org/manual/5.0/manual.html#5.6">I/O Lua standard library</a>.
+In fact, the API is so similar that parts of this manual are extracted from the Lua manual,
+copyrighted by Tecgraf, PUC-Rio.</p>
+
+<h2><a name="installation"></a>Installation</h2>
+
+<p>LuaZip follows the
+<a href="http://www.keplerproject.org/compat/">package model</a>
+for Lua 5.1, therefore it should be "installed". Refer to
+<a href="http://www.keplerproject.org/compat/manual.html#configuration">
+Compat-5.1 configuration</a> section about how to install the compiled
+binary properly.</p>
+
+<p>If you are using Unix you may need to download
+<a href="http://zziplib.sourceforge.net">zziplib 0.13.36</a></p>
+
+<p>If you are using Windows, the binary version of LuaZip includes zziplib
+(<code>zlib1.dll</code>). </p>
+
+<h2><a name="reference"></a>Reference</h2>
+
+<dl>
+ <dt><strong>zip.open (filename)</strong></dt>
+ <dd>This function opens a zip file and returns a new zip file handle. In case of
+ error it returns nil and an error message. Unlike <code>io.open</code>, there is no
+ <code>mode</code> parameter, as the only supported mode is "read".</dd>
+
+ <dt><strong>zip.openfile (filename [, extensions]])</strong></dt>
+ <dd>This function opens a file and returns a file handle. In case of
+ error it returns nil and an error message. Unlike <code>io.open</code>, there is no
+ <code>mode</code> parameter, as the only supported mode is "read".<br/>
+ This function implements a virtual file system based on optionally compressed files.
+ Instead of simply looking for a file at a given path, this function goes recursively up
+ through all path separators ("/") looking for zip files there. If it finds a zip file,
+ this function use the remaining path to open the requested file.<br/>
+ The optional parameter <em>extensions</em> allows the use of file extensions other than .zip
+ during the lookup. It can be a string corresponding to the extension or an indexed table
+ with the lookup extensions sequence.</dd>
+
+ <dt><strong>zfile:close ()</strong></dt>
+ <dd>This function closes a zfile opened by <code>zip.open</code></dd>
+
+ <dt><strong>zfile:files ()</strong></dt>
+ <dd>Returns an iterator function that returns a new table containing the
+ following information each time it is called:
+ <ul>
+ <li><code>filename</code>: the full path of a file</li>
+ <li><code>compressed_size</code>: the compressed size of the file in bytes</li>
+ <li><code>uncompressed_size</code>: the uncompressed size of the file in bytes</li>
+ </ul>
+ </dd>
+
+ <dt><strong>zfile:open (filename)</strong></dt>
+ <dd>This function opens a file that is stored inside the zip file opened by <code>zip.open</code>.<br/>
+ The filename may contain the full path of the file contained inside the zip. The
+ directory separator must be '/'.<br/>
+ Unlike <code>f:open</code>, there is no <code>mode</code> parameter, as the only
+ supported mode is "read".</dd>
+
+ <dt><strong>file:read (format1, ...)</strong></dt>
+ <dd>Reads a <code>file</code> according to the given formats, which specify what to read.<br/>
+ For each format, the function returns a string with the characters read, or nil if it cannot read
+ data with the specified format. When called without formats, it uses a default format that reads
+ the entire next line (see below).<br/>
+ The available formats are:
+ <ul>
+ <li><code>"*a"</code>: reads the whole file, starting at the current position. On end of file, it
+ returns the empty string.</li>
+ <li><code>"*l"</code>: reads the next line (skipping the end of line), returns nil on end of file.
+ This is the default format.</li>
+ <li><code><i>number</i></code>: reads a string with up to that number of characters, returning nil
+ on end of file.</li>
+ </ul>
+ <br/>
+ Unlike the standard I/O read, the format <code>"*n"</code> is not supported.</dd>
+
+ <dt><strong>file:seek ([whence] [, offset])</strong></dt>
+ <dd>Sets and gets the file position, measured from the beginning of the file, to the position given
+ by <code>offset</code> plus a base specified by the string <code>whence</code>, as follows:
+ <ul>
+ <li><code>set</code>: base is position 0 (beginning of the file);</li>
+ <li><code>cur</code>: base is current position;</li>
+ <li><code>end</code>: base is end of file;</li>
+ </ul>
+ In case of success, function <code>seek</code> returns the final file position, measured in bytes
+ from the beginning of the file. If this function fails, it returns nil, plus an error string.
+ The default value for <code>whence</code> is <code>"cur"</code>, and for <code>offset</code> is 0.
+ Therefore, the call <code>file:seek()</code> returns the current file position, without changing
+ it; the call <code>file:seek("set")</code> sets the position to the beginning of the file (and returns 0);
+ and the call <code>file:seek("end")</code> sets the position to the end of the file, and returns its
+ size.</dd>
+
+ <dt><strong>file:close ()</strong></dt>
+ <dd>This function closes a file opened by <code>zfile:open</code>.</dd>
+
+ <dt><strong>file:lines ()</strong></dt>
+ <dd>Returns an iterator function that returns a new line from the file each time it is called.
+ Therefore, the construction<br/>
+ <pre class="example">for line in file:lines() do ... end</pre>
+ will iterate over all lines of the file.</dd>
+</dl>
+
+</div> <!-- id="content" -->
+
+</div> <!-- id="main" -->
+
+<div id="about">
+ <p><a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a></p>
+ <p><small>
+ $Id: manual.html,v 1.10 2006/03/25 14:59:02 carregal Exp $
+ </small></p>
+</div> <!-- id="about" -->
+
+</div> <!-- id="container" -->
+
+</body>
+</html>
diff --git a/Build/source/texk/web2c/luatexdir/luazip/src/luazip.c b/Build/source/texk/web2c/luatexdir/luazip/src/luazip.c
new file mode 100644
index 00000000000..fe841982de0
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/src/luazip.c
@@ -0,0 +1,535 @@
+/*
+ LuaZip - Reading files inside zip files.
+ http://www.keplerproject.org/luazip/
+
+ Author: Danilo Tuler
+ Copyright (c) 2003-2006 Kepler Project
+
+ $Id: luazip.c,v 1.9 2006/03/23 20:44:53 carregal Exp $
+*/
+
+#include <string.h>
+#include <stdlib.h>
+#include "zzip/zzip.h"
+#include "luazip.h"
+#include "lauxlib.h"
+
+#define ZIPFILEHANDLE "lzip.File"
+#define ZIPINTERNALFILEHANDLE "lzip.InternalFile"
+#define LUAZIP_MAX_EXTENSIONS 32
+
+static int pushresult (lua_State *L, int i, const char *filename) {
+ if (i) {
+ lua_pushboolean(L, 1);
+ return 1;
+ }
+ else {
+ lua_pushnil(L);
+ if (filename)
+ lua_pushfstring(L, "%s: %s", filename, zzip_strerror(zzip_errno(errno)));
+ else
+ lua_pushfstring(L, "%s", zzip_strerror(zzip_errno(errno)));
+ lua_pushinteger(L, zzip_errno(errno));
+ return 3;
+ }
+}
+
+static ZZIP_DIR** topfile (lua_State *L, int findex) {
+ ZZIP_DIR** f = (ZZIP_DIR**)luaL_checkudata(L, findex, ZIPFILEHANDLE);
+ if (f == NULL) luaL_argerror(L, findex, "bad zip file");
+ return f;
+}
+
+static ZZIP_DIR* tofile (lua_State *L, int findex) {
+ ZZIP_DIR** f = topfile(L, findex);
+ if (*f == NULL)
+ luaL_error(L, "attempt to use a closed zip file");
+ return *f;
+}
+
+static ZZIP_FILE** topinternalfile (lua_State *L, int findex) {
+ ZZIP_FILE** f = (ZZIP_FILE**)luaL_checkudata(L, findex, ZIPINTERNALFILEHANDLE);
+ if (f == NULL) luaL_argerror(L, findex, "bad zip file");
+ return f;
+}
+
+static ZZIP_FILE* tointernalfile (lua_State *L, int findex) {
+ ZZIP_FILE** f = topinternalfile(L, findex);
+ if (*f == NULL)
+ luaL_error(L, "attempt to use a closed zip file");
+ return *f;
+}
+
+/*
+** When creating file handles, always creates a `closed' file handle
+** before opening the actual file; so, if there is a memory error, the
+** file is not left opened.
+*/
+static ZZIP_DIR** newfile (lua_State *L) {
+ ZZIP_DIR** pf = (ZZIP_DIR**)lua_newuserdata(L, sizeof(ZZIP_DIR*));
+ *pf = NULL; /* file handle is currently `closed' */
+ luaL_getmetatable(L, ZIPFILEHANDLE);
+ lua_setmetatable(L, -2);
+ return pf;
+}
+
+static ZZIP_FILE** newinternalfile (lua_State *L) {
+ ZZIP_FILE** pf = (ZZIP_FILE**)lua_newuserdata(L, sizeof(ZZIP_FILE*));
+ *pf = NULL; /* file handle is currently `closed' */
+ luaL_getmetatable(L, ZIPINTERNALFILEHANDLE);
+ lua_setmetatable(L, -2);
+ return pf;
+}
+
+
+static int zip_open (lua_State *L) {
+ const char *zipfilename = luaL_checkstring(L, 1);
+ /*const char *mode = luaL_optstring(L, 2, "r");*/
+
+ ZZIP_DIR** pf = newfile(L);
+ *pf = zzip_dir_open(zipfilename, 0);
+ if (*pf == NULL)
+ {
+ lua_pushnil(L);
+ lua_pushfstring(L, "could not open file `%s'", zipfilename);
+ return 2;
+ }
+ return 1;
+}
+
+
+static int zip_close (lua_State *L) {
+ ZZIP_DIR* f = tofile(L, 1);
+ if ( zzip_closedir(f) == 0 )
+ {
+ *(ZZIP_DIR**)lua_touserdata(L, 1) = NULL; /* mark file as close */
+ lua_pushboolean(L, 1);
+ }
+ else {
+ lua_pushboolean(L, 0);
+ }
+ return 1;
+}
+
+static int f_open (lua_State *L) {
+ ZZIP_DIR* uf = tofile(L, 1);
+ const char *filename = luaL_checkstring(L, 2);
+ /*const char *mode = luaL_optstring(L, 3, "r");*/
+ ZZIP_FILE** inf = newinternalfile(L);
+
+ *inf = zzip_file_open(uf, filename, 0);
+ if (*inf)
+ return 1;
+
+ lua_pushnil(L);
+ lua_pushfstring(L, "could not open file `%s'", filename);
+ return 2;
+}
+
+/*
+
+*/
+static int zip_openfile (lua_State *L) {
+ ZZIP_FILE** inf;
+
+ const char * ext2[LUAZIP_MAX_EXTENSIONS+1];
+ zzip_strings_t *ext = ext2;
+
+ const char *filename = luaL_checkstring(L, 1);
+ /*const char *mode = luaL_optstring(L, 2, "r");*/
+
+ inf = newinternalfile(L);
+
+ if (lua_isstring(L, 2))
+ {
+ /* creates a table with the string as the first and only (numerical) element */
+ lua_newtable(L);
+ lua_pushvalue(L, 2);
+ lua_rawseti(L, -2, 1);
+
+ /* replaces the string by the table with the string inside */
+ lua_replace(L, 2);
+ }
+
+ if (lua_istable(L, 2))
+ {
+ int i, m, n;
+
+ /* how many extension were specified? */
+ n = lua_rawlen(L, 2);
+
+ if (n > LUAZIP_MAX_EXTENSIONS)
+ {
+ luaL_error(L, "too many extensions specified");
+ }
+
+ for (i = 0, m = 0; i < n; i++)
+ {
+ lua_rawgeti(L, 2, i+1);
+ if (lua_isstring(L, -1))
+ {
+ /* luazip specifies "zip" as the extension, but zziplib expects ".zip" */
+ lua_pushstring(L, ".");
+ lua_insert(L, -2);
+ lua_concat(L, 2);
+
+ ext2[m] = lua_tostring(L, -1);
+ m++;
+ }
+ lua_pop(L, 1);
+ }
+ ext2[m] = 0;
+
+ *inf = zzip_open_ext_io(filename, 0, 0664, ext, 0);
+ }
+ else
+ {
+ *inf = zzip_open(filename, 0);
+ }
+
+ if (*inf)
+ return 1;
+
+ lua_pushnil(L);
+ lua_pushfstring(L, "could not open file `%s'", filename);
+ return 2;
+}
+
+static int zip_type (lua_State *L) {
+ ZZIP_DIR** f = (ZZIP_DIR**)luaL_checkudata(L, 1, ZIPFILEHANDLE);
+ if (f == NULL) lua_pushnil(L);
+ else if (*f == NULL)
+ lua_pushliteral(L, "closed zip file");
+ else
+ lua_pushliteral(L, "zip file");
+ return 1;
+}
+
+static int zip_tostring (lua_State *L) {
+ char buff[32];
+ ZZIP_DIR** f = topfile(L, 1);
+ if (*f == NULL)
+ strcpy(buff, "closed");
+ else
+ sprintf(buff, "%p", lua_touserdata(L, 1));
+ lua_pushfstring(L, "zip file (%s)", buff);
+ return 1;
+}
+
+static int ff_tostring (lua_State *L) {
+ char buff[32];
+ ZZIP_FILE** f = topinternalfile(L, 1);
+ if (*f == NULL)
+ strcpy(buff, "closed");
+ else
+ sprintf(buff, "%p", lua_touserdata(L, 1));
+ lua_pushfstring(L, "file in zip file (%s)", buff);
+ return 1;
+}
+
+static int zip_gc (lua_State *L) {
+ ZZIP_DIR**f = topfile(L, 1);
+ if (*f != NULL) /* ignore closed files */
+ zip_close(L);
+ return 0;
+}
+
+static int zip_readfile (lua_State *L) {
+ ZZIP_DIRENT* ent = NULL;
+ ZZIP_DIR* uf = NULL;
+
+ uf = *(ZZIP_DIR**)lua_touserdata(L, lua_upvalueindex(1));
+ if (uf == NULL) /* file is already closed? */
+ luaL_error(L, "file is already closed");
+
+ ent = zzip_readdir(uf);
+
+ if (ent == NULL)
+ return 0;
+
+ lua_newtable(L);
+ lua_pushstring(L, "compressed_size"); lua_pushinteger(L, ent->d_csize); lua_settable(L, -3);
+ lua_pushstring(L, "compression_method"); lua_pushinteger(L, ent->d_compr); lua_settable(L, -3);
+ lua_pushstring(L, "uncompressed_size"); lua_pushinteger(L, ent->st_size); lua_settable(L, -3);
+ lua_pushstring(L, "filename"); lua_pushstring(L, ent->d_name); lua_settable(L, -3);
+
+ return 1;
+}
+
+static int f_files (lua_State *L) {
+ ZZIP_DIR *f = tofile(L, 1);
+ zzip_rewinddir(f);
+ lua_pushliteral(L, ZIPFILEHANDLE);
+ lua_rawget(L, LUA_REGISTRYINDEX);
+ lua_pushcclosure(L, zip_readfile, 2);
+ return 1;
+}
+
+static int aux_close (lua_State *L) {
+ ZZIP_FILE *f = tointernalfile(L, 1);
+ int ok = (zzip_fclose(f) == 0);
+ if (ok)
+ *(ZZIP_FILE **)lua_touserdata(L, 1) = NULL; /* mark file as closed */
+ return ok;
+}
+
+static int ff_close (lua_State *L) {
+ return pushresult(L, aux_close(L), NULL);
+}
+
+static int ff_gc (lua_State *L) {
+ ZZIP_FILE**f = topinternalfile(L, 1);
+ if (*f != NULL) /* ignore closed files */
+ aux_close(L);
+ return 0;
+}
+
+static int zzip_getc (ZZIP_FILE *f)
+{
+ char c;
+ return (zzip_fread(&c, sizeof(char), 1, f) == 0) ? EOF : (int)c;
+}
+
+static char* zzip_fgets(char *str, int size, ZZIP_FILE *stream)
+{
+ int c, i;
+
+ for (i = 0; i < size-1; i++)
+ {
+ c = zzip_getc(stream);
+ if (EOF == c)
+ return NULL;
+ str[i]=c;
+ if (('\n' == c)/* || ('\r' == c)*/)
+ {
+ str[i++]='\n';
+ break;
+ }
+ }
+ str[i] = '\0';
+
+ return str;
+}
+
+/* no support to read numbers
+static int zzip_fscanf (ZZIP_FILE *f, const char *format, ...)
+{
+ // TODO
+ return 0;
+}
+
+static int read_number (lua_State *L, ZZIP_FILE *f) {
+ lua_Number d;
+ if (zzip_fscanf(f, LUA_NUMBER_SCAN, &d) == 1) {
+ lua_pushinteger(L, d);
+ return 1;
+ }
+ else return 0; // read fails
+}
+*/
+
+static int test_eof (lua_State *L, ZZIP_FILE *f) {
+ /* TODO */
+ (void) L;
+ (void) f;
+ return 1;
+}
+
+static int read_line (lua_State *L, ZZIP_FILE *f) {
+ luaL_Buffer b;
+ luaL_buffinit(L, &b);
+ for (;;) {
+ size_t l;
+ char *p = luaL_prepbuffer(&b);
+ if (zzip_fgets(p, LUAL_BUFFERSIZE, f) == NULL) { /* eof? */
+ luaL_pushresult(&b); /* close buffer */
+ return (lua_rawlen(L, -1) > 0); /* check whether read something */
+ }
+ l = strlen(p);
+ if (p[l-1] != '\n')
+ luaL_addsize(&b, l);
+ else {
+ luaL_addsize(&b, l - 1); /* do not include `eol' */
+ luaL_pushresult(&b); /* close buffer */
+ return 1; /* read at least an `eol' */
+ }
+ }
+}
+
+static int read_chars (lua_State *L, ZZIP_FILE *f, size_t n) {
+ size_t rlen; /* how much to read */
+ size_t nr; /* number of chars actually read */
+ luaL_Buffer b;
+ luaL_buffinit(L, &b);
+ rlen = LUAL_BUFFERSIZE; /* try to read that much each time */
+ do {
+ char *p = luaL_prepbuffer(&b);
+ if (rlen > n) rlen = n; /* cannot read more than asked */
+ nr = zzip_fread(p, sizeof(char), rlen, f);
+ luaL_addsize(&b, nr);
+ n -= nr; /* still have to read `n' chars */
+ } while (n > 0 && nr == rlen); /* until end of count or eof */
+ luaL_pushresult(&b); /* close buffer */
+ return (n == 0 || lua_rawlen(L, -1) > 0);
+}
+
+static int g_read (lua_State *L, ZZIP_FILE *f, int first) {
+ int nargs = lua_gettop(L) - 1;
+ int success;
+ int n;
+ if (nargs == 0) { /* no arguments? */
+ success = read_line(L, f);
+ n = first+1; /* to return 1 result */
+ }
+ else { /* ensure stack space for all results and for auxlib's buffer */
+ luaL_checkstack(L, nargs+LUA_MINSTACK, "too many arguments");
+ success = 1;
+ for (n = first; nargs-- && success; n++) {
+ if (lua_type(L, n) == LUA_TNUMBER) {
+ size_t l = (size_t)lua_tonumber(L, n);
+ success = (l == 0) ? test_eof(L, f) : read_chars(L, f, l);
+ }
+ else {
+ const char *p = lua_tostring(L, n);
+ luaL_argcheck(L, p && p[0] == '*', n, "invalid option");
+ switch (p[1]) {
+ case 'l': /* line */
+ success = read_line(L, f);
+ break;
+ case 'a': /* file */
+ read_chars(L, f, ~((size_t)0)); /* read MAX_SIZE_T chars */
+ success = 1; /* always success */
+ break;
+ default:
+ return luaL_argerror(L, n, "invalid format");
+ }
+ }
+ }
+ }
+ if (!success) {
+ lua_pop(L, 1); /* remove last result */
+ lua_pushnil(L); /* push nil instead */
+ }
+ return n - first;
+}
+
+static int ff_read (lua_State *L) {
+ return g_read(L, tointernalfile(L, 1), 2);
+}
+
+static int zip_readline (lua_State *L);
+
+static void aux_lines (lua_State *L, int idx, int close) {
+ lua_pushliteral(L, ZIPINTERNALFILEHANDLE);
+ lua_rawget(L, LUA_REGISTRYINDEX);
+ lua_pushvalue(L, idx);
+ lua_pushboolean(L, close); /* close/not close file when finished */
+ lua_pushcclosure(L, zip_readline, 3);
+}
+
+static int ff_lines (lua_State *L) {
+ tointernalfile(L, 1); /* check that it's a valid file handle */
+ aux_lines(L, 1, 0);
+ return 1;
+}
+
+static int zip_readline (lua_State *L) {
+ ZZIP_FILE *f = *(ZZIP_FILE **)lua_touserdata(L, lua_upvalueindex(2));
+ if (f == NULL) /* file is already closed? */
+ luaL_error(L, "file is already closed");
+ if (read_line(L, f)) return 1;
+ else { /* EOF */
+ if (lua_toboolean(L, lua_upvalueindex(3))) { /* generator created file? */
+ lua_settop(L, 0);
+ lua_pushvalue(L, lua_upvalueindex(2));
+ aux_close(L); /* close it */
+ }
+ return 0;
+ }
+}
+
+static int ff_seek (lua_State *L) {
+ static const int mode[] = {SEEK_SET, SEEK_CUR, SEEK_END};
+ static const char *const modenames[] = {"set", "cur", "end", NULL};
+ ZZIP_FILE *f = tointernalfile(L, 1);
+ int op = luaL_checkoption(L, 2, "cur", modenames);
+ long offset = luaL_optlong(L, 3, 0);
+ luaL_argcheck(L, op != -1, 2, "invalid mode");
+ op = zzip_seek(f, offset, mode[op]);
+ if (op < 0)
+ return pushresult(L, 0, NULL); /* error */
+ else {
+ lua_pushinteger(L, zzip_tell(f));
+ return 1;
+ }
+}
+
+static const luaL_Reg ziplib[] = {
+ {"open", zip_open},
+ {"close", zip_close},
+ {"type", zip_type},
+ /* {"files", io_files},*/
+ {"openfile", zip_openfile},
+ {NULL, NULL}
+};
+
+static const luaL_Reg flib[] = {
+ {"open", f_open},
+ {"close", zip_close},
+ {"files", f_files},
+ {"__gc", zip_gc},
+ {"__tostring", zip_tostring},
+ {NULL, NULL}
+};
+
+static const luaL_Reg fflib[] = {
+ {"read", ff_read},
+ {"close", ff_close},
+ {"seek", ff_seek},
+ {"lines", ff_lines},
+ {"__gc", ff_gc},
+ {"__tostring", ff_tostring},
+/* {"flush", ff_flush},
+ {"write", ff_write},*/
+ {NULL, NULL}
+};
+
+
+/*
+** Assumes the table is on top of the stack.
+*/
+static void set_info (lua_State *L) {
+ lua_pushliteral (L, "_COPYRIGHT");
+ lua_pushliteral (L, "Copyright (C) 2003-2006 Kepler Project");
+ lua_settable (L, -3);
+ lua_pushliteral (L, "_DESCRIPTION");
+ lua_pushliteral (L, "Reading files inside zip files");
+ lua_settable (L, -3);
+ lua_pushliteral (L, "_VERSION");
+ lua_pushliteral (L, "LuaZip 1.2.2");
+ lua_settable (L, -3);
+}
+
+static void createmeta (lua_State *L) {
+ luaL_newmetatable(L, ZIPFILEHANDLE); /* create new metatable for file handles */
+ /* file methods */
+ lua_pushliteral(L, "__index");
+ lua_pushvalue(L, -2); /* push metatable */
+ lua_rawset(L, -3); /* metatable.__index = metatable */
+ luaL_openlib(L, NULL, flib, 0);
+
+ luaL_newmetatable(L, ZIPINTERNALFILEHANDLE); /* create new metatable for internal file handles */
+ /* internal file methods */
+ lua_pushliteral(L, "__index");
+ lua_pushvalue(L, -2); /* push metatable */
+ lua_rawset(L, -3); /* metatable.__index = metatable */
+ luaL_openlib(L, NULL, fflib, 0);
+}
+
+LUAZIP_API int luaopen_zip (lua_State *L) {
+ createmeta(L);
+ lua_pushvalue(L, -1);
+ luaL_openlib(L, LUA_ZIPLIBNAME, ziplib, 1);
+ set_info(L);
+ return 1;
+}
diff --git a/Build/source/texk/web2c/luatexdir/luazip/src/luazip.h b/Build/source/texk/web2c/luatexdir/luazip/src/luazip.h
new file mode 100644
index 00000000000..84bfd40b458
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/src/luazip.h
@@ -0,0 +1,23 @@
+/*
+ LuaZip - Reading files inside zip files.
+ http://www.keplerproject.org/luazip/
+
+ Author: Danilo Tuler
+ Copyright (c) 2003-2006 Kepler Project
+
+ $Id: luazip.h,v 1.4 2006/03/23 20:44:53 carregal Exp $
+*/
+
+#ifndef luazip_h
+#define luazip_h
+
+#include "lua.h"
+
+#ifndef LUAZIP_API
+#define LUAZIP_API LUA_API
+#endif
+
+#define LUA_ZIPLIBNAME "zip"
+LUAZIP_API int luaopen_zip (lua_State *L);
+
+#endif
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/a/b/c.zip b/Build/source/texk/web2c/luatexdir/luazip/tests/a/b/c.zip
new file mode 100644
index 00000000000..6e432b41c56
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/a/b/c.zip
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.ext2 b/Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.ext2
new file mode 100644
index 00000000000..cbc96481469
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.ext2
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.zip b/Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.zip
new file mode 100644
index 00000000000..4635580d657
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/a2/b2.zip
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/a3.ext3 b/Build/source/texk/web2c/luatexdir/luazip/tests/a3.ext3
new file mode 100644
index 00000000000..f02ba2cf97e
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/a3.ext3
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/a3.zip b/Build/source/texk/web2c/luatexdir/luazip/tests/a3.zip
new file mode 100644
index 00000000000..6f6c291f3d4
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/a3.zip
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/luazip.zip b/Build/source/texk/web2c/luatexdir/luazip/tests/luazip.zip
new file mode 100644
index 00000000000..bf498e2a0eb
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/luazip.zip
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luazip/tests/test_zip.lua b/Build/source/texk/web2c/luatexdir/luazip/tests/test_zip.lua
new file mode 100644
index 00000000000..84e2cae4ec0
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/tests/test_zip.lua
@@ -0,0 +1,76 @@
+--[[------------------------------------------------------------------------
+test_zip.lua
+test code for luazip
+--]]------------------------------------------------------------------------
+
+-- compatibility code for Lua version 5.0 providing 5.1 behavior
+if string.find (_VERSION, "Lua 5.0") and not package then
+ if not LUA_PATH then
+ LUA_PATH = os.getenv("LUA_PATH") or "./?.lua;"
+ end
+ require"compat-5.1"
+ package.cpath = os.getenv("LUA_CPATH") or "./?.so;./?.dll;./?.dylib"
+end
+
+require('zip')
+
+function test_open ()
+ local zfile, err = zip.open('luazip.zip')
+
+ assert(zfile, err)
+
+ print("File list begin")
+ for file in zfile:files() do
+ print(file.filename)
+ end
+ print("File list ended OK!")
+ print()
+
+ print("Testing zfile:open")
+ local f1, err = zfile:open('README')
+ assert(f1, err)
+
+ local f2, err = zfile:open('luazip.h')
+ assert(f2, err)
+ print("zfile:open OK!")
+ print()
+
+ print("Testing reading by number")
+ local c = f1:read(1)
+ while c ~= nil do
+ io.write(c)
+ c = f1:read(1)
+ end
+
+ print()
+ print("OK")
+ print()
+end
+
+function test_openfile ()
+ print("Testing the openfile magic")
+
+ local d, err = zip.openfile('a/b/c/d.txt')
+ assert(d, err)
+
+ local e, err = zip.openfile('a/b/c/e.txt')
+ assert(e == nil, err)
+
+ local d2, err = zip.openfile('a2/b2/c2/d2.txt', "ext2")
+ assert(d2, err)
+
+ local e2, err = zip.openfile('a2/b2/c2/e2.txt', "ext2")
+ assert(e2 == nil, err)
+
+ local d3, err = zip.openfile('a3/b3/c3/d3.txt', {"ext2", "ext3"})
+ assert(d3, err)
+
+ local e3, err = zip.openfile('a3/b3/c3/e3.txt', {"ext2", "ext3"})
+ assert(e3 == nil, err)
+
+ print("Smooth magic!")
+ print()
+end
+
+test_open()
+test_openfile()
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc6/README b/Build/source/texk/web2c/luatexdir/luazip/vc6/README
new file mode 100644
index 00000000000..b059dc4bc55
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc6/README
@@ -0,0 +1,28 @@
+These are the Visual Studio 6 projects provided by the Kepler Project
+
+Files:
+
+ luazip_dll.dsp
+ luazip_static.dsp
+ luazip.dsw
+ README
+
+Generated files:
+
+ luazip.ncb
+ luazip.opt
+
+ ../lib/vc6/libzip.lib
+ ../lib/vc6/libzipd.lib
+ ../lib/vc6/zip.exp
+ ../lib/vc6/zip.lib
+ ../lib/vc6/zipd.exp
+ ../lib/vc6/zipd.lib
+ ../lib/vc6/zipd.pdb
+
+ ../bin/vc6/zip.dll
+ ../bin/vc6/zipd.dll
+ ../bin/vc6/zipd.ilk
+
+Download source from:
+ http://prdownloads.sourceforge.net/zziplib/zziplib-0.12.83.tar.bz2?download \ No newline at end of file
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.dsw b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.dsw
new file mode 100644
index 00000000000..1b9e29be03f
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.dsw
@@ -0,0 +1,29 @@
+Microsoft Developer Studio Workspace File, Format Version 6.00
+# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
+
+###############################################################################
+
+Project: "luazip_dll"=.\luazip_dll.dsp - Package Owner=<4>
+
+Package=<5>
+{{{
+}}}
+
+Package=<4>
+{{{
+}}}
+
+###############################################################################
+
+Global:
+
+Package=<5>
+{{{
+}}}
+
+Package=<3>
+{{{
+}}}
+
+###############################################################################
+
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.rc b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.rc
new file mode 100644
index 00000000000..e493fc02f41
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip.rc
@@ -0,0 +1,109 @@
+//Microsoft Developer Studio generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Portuguese (Brazil) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PTB)
+#ifdef _WIN32
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
+#pragma code_page(1252)
+#endif //_WIN32
+
+#ifndef _MAC
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,2,1,0
+ PRODUCTVERSION 1,2,1,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x21L
+#else
+ FILEFLAGS 0x20L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "Comments", "\0"
+ VALUE "CompanyName", "Ideais\0"
+ VALUE "FileDescription", "LuaZip\0"
+ VALUE "FileVersion", "1, 2, 1, 0\0"
+ VALUE "InternalName", "luazip\0"
+ VALUE "LegalCopyright", "Kepler Project © 2005\0"
+ VALUE "LegalTrademarks", "\0"
+ VALUE "OriginalFilename", "luazip.dll\0"
+ VALUE "PrivateBuild", "\0"
+ VALUE "ProductName", "LuaZip\0"
+ VALUE "ProductVersion", "1, 2, 1, 0\0"
+ VALUE "SpecialBuild", "lua-5.0.2, zziplib-0.12.83\0"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
+
+#endif // !_MAC
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE DISCARDABLE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Portuguese (Brazil) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_dll.dsp b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_dll.dsp
new file mode 100644
index 00000000000..128cccf0d8e
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_dll.dsp
@@ -0,0 +1,163 @@
+# Microsoft Developer Studio Project File - Name="luazip_dll" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
+
+CFG=luazip_dll - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "luazip_dll.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "luazip_dll.mak" CFG="luazip_dll - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "luazip_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE "luazip_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+MTL=midl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "luazip_dll - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "../lib/vc6"
+# PROP Intermediate_Dir "luazip_dll/Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAZIP_EXPORTS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../external-src/lua50/include" /I "../../external-src/zlib/include" /I "../../external-src/zziplib-0.12.83" /I "../../compat/src" /D "NDEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAZIP_EXPORTS" /D LUAZIP_API=__declspec(dllexport) /FR /YX /FD /c
+# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x416 /d "NDEBUG"
+# ADD RSC /l 0x416 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
+# ADD LINK32 lua50.lib zdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 /out:"../bin/vc6/zip.dll" /libpath:"../../external-src/lua50/lib/dll" /libpath:"../../external-src/zlib/lib"
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Cmds=cd ../bin/vc6 zip.exe luazip-1.2.1-win32.zip zip.dll
+# End Special Build Tool
+
+!ELSEIF "$(CFG)" == "luazip_dll - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "../lib/vc6"
+# PROP Intermediate_Dir "luazip_dll/Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAZIP_EXPORTS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../external-src/lua50/include" /I "../../external-src/zlib/include" /I "../../external-src/zziplib-0.12.83" /I "../../compat/src" /D "_DEBUG" /D "WIN32" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAZIP_EXPORTS" /D LUAZIP_API=__declspec(dllexport) /FR /YX /FD /GZ /c
+# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
+# ADD BASE RSC /l 0x416 /d "_DEBUG"
+# ADD RSC /l 0x416 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 lua50.lib zdll.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /out:"../bin/vc6/zipd.dll" /pdbtype:sept /libpath:"../../external-src/lua50/lib/dll" /libpath:"../../external-src/zlib/lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "luazip_dll - Win32 Release"
+# Name "luazip_dll - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\..\compat\src\compat-5.1.c"
+# End Source File
+# Begin Source File
+
+SOURCE=..\src\luazip.c
+# End Source File
+# Begin Source File
+
+SOURCE=.\luazip.rc
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE="..\..\compat\src\compat-5.1.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\src\luazip.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# End Group
+# Begin Group "zziplib Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\dir.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\err.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\file.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\info.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\plugin.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\stat.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\write.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\..\external-src\zziplib-0.12.83\zzip\zip.c"
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_static.dsp b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_static.dsp
new file mode 100644
index 00000000000..8558e9291c4
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc6/luazip_static.dsp
@@ -0,0 +1,144 @@
+# Microsoft Developer Studio Project File - Name="luazip_static" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Static Library" 0x0104
+
+CFG=luazip_static - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "luazip_static.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "luazip_static.mak" CFG="luazip_static - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "luazip_static - Win32 Release" (based on "Win32 (x86) Static Library")
+!MESSAGE "luazip_static - Win32 Debug" (based on "Win32 (x86) Static Library")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "luazip_static - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "../lib/vc6"
+# PROP Intermediate_Dir "luazip_static/Release"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../lua/include" /I "../../zlib/include" /I "../zziplib-0.12.83" /I "../../compat" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
+# ADD BASE RSC /l 0x416 /d "NDEBUG"
+# ADD RSC /l 0x416 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"../lib/vc6/libzip.lib"
+
+!ELSEIF "$(CFG)" == "luazip_static - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "../lib/vc6"
+# PROP Intermediate_Dir "luazip_static/Debug"
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../lua/include" /I "../../zlib/include" /I "../zziplib-0.12.83" /I "../../compat" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
+# ADD BASE RSC /l 0x416 /d "_DEBUG"
+# ADD RSC /l 0x416 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LIB32=link.exe -lib
+# ADD BASE LIB32 /nologo
+# ADD LIB32 /nologo /out:"../lib/vc6/libzipd.lib"
+
+!ENDIF
+
+# Begin Target
+
+# Name "luazip_static - Win32 Release"
+# Name "luazip_static - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE="..\..\compat\compat-5.1.c"
+# End Source File
+# Begin Source File
+
+SOURCE=..\luazip.c
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE="..\..\compat\compat-5.1.h"
+# End Source File
+# Begin Source File
+
+SOURCE=..\luazip.h
+# End Source File
+# End Group
+# Begin Group "zziplib Files"
+
+# PROP Default_Filter ""
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\dir.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\err.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\file.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\info.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\plugin.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\stat.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\write.c"
+# End Source File
+# Begin Source File
+
+SOURCE="..\zziplib-0.12.83\zzip\zip.c"
+# End Source File
+# End Group
+# End Target
+# End Project
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc6/resource.h b/Build/source/texk/web2c/luatexdir/luazip/vc6/resource.h
new file mode 100644
index 00000000000..53a3f933359
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc6/resource.h
@@ -0,0 +1,15 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Developer Studio generated include file.
+// Used by luazip.rc
+//
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 101
+#define _APS_NEXT_COMMAND_VALUE 40001
+#define _APS_NEXT_CONTROL_VALUE 1000
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc7/README b/Build/source/texk/web2c/luatexdir/luazip/vc7/README
new file mode 100644
index 00000000000..aa091358dce
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc7/README
@@ -0,0 +1,27 @@
+These are the Visual Studio 7 projects provided by the Kepler Project
+
+Files:
+
+ luazip_dll.vcproj
+ luazip_static.vcproj
+ luazip.sln
+ README
+
+Generated files:
+
+ lzip.suo
+
+ ../lib/vc7/libzip.lib
+ ../lib/vc7/libzipd.lib
+ ../lib/vc7/zip.exp
+ ../lib/vc7/zip.lib
+ ../lib/vc7/zipd.exp
+ ../lib/vc7/zipd.lib
+ ../lib/vc7/zipd.pdb
+
+ ../bin/vc7/zip.dll
+ ../bin/vc7/zipd.dll
+ ../bin/vc7/zipd.ilk
+
+Download source from:
+ http://prdownloads.sourceforge.net/zziplib/zziplib-0.12.83.tar.bz2?download \ No newline at end of file
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.rc b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.rc
new file mode 100644
index 00000000000..b40e6ba04ea
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.rc
@@ -0,0 +1,103 @@
+// Microsoft Visual C++ generated resource script.
+//
+#include "resource.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include "afxres.h"
+
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// Portuguese (Brazil) resources
+
+#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_PTB)
+#ifdef _WIN32
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
+#pragma code_page(1252)
+#endif //_WIN32
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION 1,2,0,0
+ PRODUCTVERSION 1,2,0,0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x21L
+#else
+ FILEFLAGS 0x20L
+#endif
+ FILEOS 0x40004L
+ FILETYPE 0x2L
+ FILESUBTYPE 0x0L
+BEGIN
+ BLOCK "StringFileInfo"
+ BEGIN
+ BLOCK "000004b0"
+ BEGIN
+ VALUE "CompanyName", "Ideais"
+ VALUE "FileDescription", "LuaZip"
+ VALUE "FileVersion", "1, 2, 0, 0"
+ VALUE "InternalName", "luazip"
+ VALUE "LegalCopyright", "Kepler Project © 2004"
+ VALUE "OriginalFilename", "luazip.dll"
+ VALUE "ProductName", "LuaZip"
+ VALUE "ProductVersion", "1, 2, 0, 0"
+ VALUE "SpecialBuild", "lua-5.0.2, zziplib-0.12.83, compat-5.1 release 1"
+ END
+ END
+ BLOCK "VarFileInfo"
+ BEGIN
+ VALUE "Translation", 0x0, 1200
+ END
+END
+
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE
+BEGIN
+ "resource.h\0"
+END
+
+2 TEXTINCLUDE
+BEGIN
+ "#include ""afxres.h""\r\n"
+ "\0"
+END
+
+3 TEXTINCLUDE
+BEGIN
+ "\r\n"
+ "\0"
+END
+
+#endif // APSTUDIO_INVOKED
+
+#endif // Portuguese (Brazil) resources
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif // not APSTUDIO_INVOKED
+
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.sln b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.sln
new file mode 100644
index 00000000000..23a65cb6b93
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip.sln
@@ -0,0 +1,29 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luazip_dll", "luazip_dll.vcproj", "{F7323180-F4E8-4994-9DE4-DB985CF23033}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "luazip_static", "luazip_static.vcproj", "{F4571BC6-4181-4D7C-BA2A-4398140445D0}"
+ ProjectSection(ProjectDependencies) = postProject
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfiguration) = preSolution
+ Debug = Debug
+ Release = Release
+ EndGlobalSection
+ GlobalSection(ProjectConfiguration) = postSolution
+ {F7323180-F4E8-4994-9DE4-DB985CF23033}.Debug.ActiveCfg = Debug|Win32
+ {F7323180-F4E8-4994-9DE4-DB985CF23033}.Debug.Build.0 = Debug|Win32
+ {F7323180-F4E8-4994-9DE4-DB985CF23033}.Release.ActiveCfg = Release|Win32
+ {F7323180-F4E8-4994-9DE4-DB985CF23033}.Release.Build.0 = Release|Win32
+ {F4571BC6-4181-4D7C-BA2A-4398140445D0}.Debug.ActiveCfg = Debug|Win32
+ {F4571BC6-4181-4D7C-BA2A-4398140445D0}.Debug.Build.0 = Debug|Win32
+ {F4571BC6-4181-4D7C-BA2A-4398140445D0}.Release.ActiveCfg = Release|Win32
+ {F4571BC6-4181-4D7C-BA2A-4398140445D0}.Release.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ EndGlobalSection
+ GlobalSection(ExtensibilityAddIns) = postSolution
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_dll.vcproj b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_dll.vcproj
new file mode 100644
index 00000000000..480e556f41c
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_dll.vcproj
@@ -0,0 +1,374 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="luazip_dll"
+ ProjectGUID="{29D4A74F-B425-4DD4-8CE4-419A244E89A6}"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\../lib/vc7"
+ IntermediateDirectory=".\luazip_dll/Release"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../lua/include,../../zlib/include,../zziplib-0.12.83,../../compat"
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport)"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\luazip_dll/Release/luazip_dll.pch"
+ AssemblerListingLocation=".\luazip_dll/Release/"
+ ObjectFile=".\luazip_dll/Release/"
+ ProgramDataBaseFileName=".\luazip_dll/Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="lua.lib lualib.lib zdll.lib odbc32.lib odbccp32.lib"
+ OutputFile="../bin/vc7/zip.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="../../lua/lib/vc7,../../zlib/lib"
+ ProgramDatabaseFile=".\../lib/vc7/zip.pdb"
+ ImportLibrary=".\../lib/vc7/zip.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="NDEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\../lib/vc7/luazip_dll.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1046"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\../lib/vc7"
+ IntermediateDirectory=".\luazip_dll/Debug"
+ ConfigurationType="2"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../lua/include,../../zlib/include,../zziplib-0.12.83,../../compat"
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport)"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\luazip_dll/Debug/luazip_dll.pch"
+ AssemblerListingLocation=".\luazip_dll/Debug/"
+ ObjectFile=".\luazip_dll/Debug/"
+ ProgramDataBaseFileName=".\luazip_dll/Debug/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="luad.lib lualibd.lib zdll.lib odbc32.lib odbccp32.lib"
+ OutputFile="../bin/vc7/zipd.dll"
+ LinkIncremental="1"
+ SuppressStartupBanner="TRUE"
+ AdditionalLibraryDirectories="../../lua/lib/vc7,../../zlib/lib"
+ GenerateDebugInformation="TRUE"
+ ProgramDatabaseFile=".\../lib/vc7/zipd.pdb"
+ ImportLibrary=".\../lib/vc7/zipd.lib"
+ TargetMachine="1"/>
+ <Tool
+ Name="VCMIDLTool"
+ PreprocessorDefinitions="_DEBUG"
+ MkTypLibCompatible="TRUE"
+ SuppressStartupBanner="TRUE"
+ TargetEnvironment="1"
+ TypeLibraryName=".\../lib/vc7/luazip_dll.tlb"
+ HeaderFileName=""/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1046"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCWebDeploymentTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="..\..\compat\compat-5.1.c">
+ </File>
+ <File
+ RelativePath="..\luazip.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="luazip.rc">
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath="..\..\compat\compat-5.1.h">
+ </File>
+ <File
+ RelativePath="..\luazip.h">
+ </File>
+ <File
+ RelativePath=".\resource.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="zziplib Files"
+ Filter="">
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\dir.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\err.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\file.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\info.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\plugin.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\stat.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\write.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\zip.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="NDEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions="_DEBUG;WIN32;_WINDOWS;_MBCS;_USRDLL;LUAZIP_EXPORTS;LUAZIP_API=__declspec(dllexport);$(NoInherit)"
+ BasicRuntimeChecks="3"
+ BrowseInformation="1"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe">
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_static.vcproj b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_static.vcproj
new file mode 100644
index 00000000000..37642467175
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc7/luazip_static.vcproj
@@ -0,0 +1,324 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="7.10"
+ Name="luazip_static"
+ SccProjectName=""
+ SccLocalPath="">
+ <Platforms>
+ <Platform
+ Name="Win32"/>
+ </Platforms>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\../lib/vc7"
+ IntermediateDirectory=".\luazip_static/Release"
+ ConfigurationType="4"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="../../lua/include,../../zlib/include,../zziplib-0.12.83,../../compat"
+ PreprocessorDefinitions="WIN32;NDEBUG;_LIB"
+ StringPooling="TRUE"
+ RuntimeLibrary="2"
+ EnableFunctionLevelLinking="TRUE"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\luazip_static/Release/luazip_static.pch"
+ AssemblerListingLocation=".\luazip_static/Release/"
+ ObjectFile=".\luazip_static/Release/"
+ ProgramDataBaseFileName=".\luazip_static/Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="../lib/vc7/libzip.lib"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1046"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\../lib/vc7"
+ IntermediateDirectory=".\luazip_static/Debug"
+ ConfigurationType="4"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="FALSE"
+ CharacterSet="2">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="../../lua/include,../../zlib/include,../zziplib-0.12.83,../../compat"
+ PreprocessorDefinitions="WIN32;_DEBUG;_LIB"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="3"
+ UsePrecompiledHeader="2"
+ PrecompiledHeaderFile=".\luazip_static/Debug/luazip_static.pch"
+ AssemblerListingLocation=".\luazip_static/Debug/"
+ ObjectFile=".\luazip_static/Debug/"
+ ProgramDataBaseFileName=".\luazip_static/Debug/"
+ WarningLevel="3"
+ SuppressStartupBanner="TRUE"
+ DebugInformationFormat="4"
+ CompileAs="0"/>
+ <Tool
+ Name="VCCustomBuildTool"/>
+ <Tool
+ Name="VCLibrarianTool"
+ OutputFile="../lib/vc7/libzipd.lib"
+ SuppressStartupBanner="TRUE"/>
+ <Tool
+ Name="VCMIDLTool"/>
+ <Tool
+ Name="VCPostBuildEventTool"/>
+ <Tool
+ Name="VCPreBuildEventTool"/>
+ <Tool
+ Name="VCPreLinkEventTool"/>
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1046"/>
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"/>
+ <Tool
+ Name="VCXMLDataGeneratorTool"/>
+ <Tool
+ Name="VCManagedWrapperGeneratorTool"/>
+ <Tool
+ Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat">
+ <File
+ RelativePath="..\..\compat\compat-5.1.c">
+ </File>
+ <File
+ RelativePath="..\luazip.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl">
+ <File
+ RelativePath="..\..\compat\compat-5.1.h">
+ </File>
+ <File
+ RelativePath="..\luazip.h">
+ </File>
+ </Filter>
+ <Filter
+ Name="zziplib Files"
+ Filter="">
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\dir.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\err.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\file.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\info.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\plugin.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\stat.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\write.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ <File
+ RelativePath="..\zziplib-0.12.83\zzip\zip.c">
+ <FileConfiguration
+ Name="Release|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="2"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""/>
+ </FileConfiguration>
+ <FileConfiguration
+ Name="Debug|Win32">
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories=""
+ PreprocessorDefinitions=""
+ BasicRuntimeChecks="3"/>
+ </FileConfiguration>
+ </File>
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/texk/web2c/luatexdir/luazip/vc7/resource.h b/Build/source/texk/web2c/luatexdir/luazip/vc7/resource.h
new file mode 100644
index 00000000000..54116ac80fb
--- /dev/null
+++ b/Build/source/texk/web2c/luatexdir/luazip/vc7/resource.h
@@ -0,0 +1,27 @@
+//{{NO_DEPENDENCIES}}
+// Microsoft Visual C++ generated include file.
+// Used by luazip.rc
+//
+#define IDS_PROJNAME 100
+#define IDR_WMDMLOGGER 101
+#define IDS_LOG_SEV_INFO 201
+#define IDS_LOG_SEV_WARN 202
+#define IDS_LOG_SEV_ERROR 203
+#define IDS_LOG_DATETIME 204
+#define IDS_LOG_SRCNAME 205
+#define IDS_DEF_LOGFILE 301
+#define IDS_DEF_MAXSIZE 302
+#define IDS_DEF_SHRINKTOSIZE 303
+#define IDS_DEF_LOGENABLED 304
+#define IDS_MUTEX_TIMEOUT 401
+
+// Next default values for new objects
+//
+#ifdef APSTUDIO_INVOKED
+#ifndef APSTUDIO_READONLY_SYMBOLS
+#define _APS_NEXT_RESOURCE_VALUE 201
+#define _APS_NEXT_COMMAND_VALUE 32768
+#define _APS_NEXT_CONTROL_VALUE 201
+#define _APS_NEXT_SYMED_VALUE 101
+#endif
+#endif