summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/luatexdir/luafilesystem
diff options
context:
space:
mode:
authorDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
committerDenis Bitouzé <dbitouze@wanadoo.fr>2021-02-25 18:23:07 +0000
commitc6101f91d071883b48b1b4b51e5eba0f36d9a78d (patch)
tree1bf7f5a881d7a4f5c5bf59d0b2821943dd822372 /Build/source/texk/web2c/luatexdir/luafilesystem
parent07ee7222e389b0777456b427a55c22d0e6ffd267 (diff)
French translation for tlmgr updated
git-svn-id: svn://tug.org/texlive/trunk@57912 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/web2c/luatexdir/luafilesystem')
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/LICENSE21
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/Makefile25
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/Makefile.win25
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/README.md28
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/config24
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/config.win19
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/doc.css209
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/examples.html101
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/index.html220
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/license.html120
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/luafilesystem.pngbin8535 -> 0 bytes
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/manual.html286
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.c941
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.def4
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.h34
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/tests/test.lua194
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/vc6/lfs.def5
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem.dsw33
-rw-r--r--Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem_dll.dsp127
19 files changed, 0 insertions, 2416 deletions
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/LICENSE b/Build/source/texk/web2c/luatexdir/luafilesystem/LICENSE
deleted file mode 100644
index 8475345a64e..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-Copyright © 2003-2014 Kepler Project.
-
-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:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-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.
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/Makefile b/Build/source/texk/web2c/luatexdir/luafilesystem/Makefile
deleted file mode 100644
index dfc1a8a33c4..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/Makefile
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: Makefile,v 1.36 2009/09/21 17:02:44 mascarenhas Exp $
-
-T= lfs
-
-CONFIG= ./config
-
-include $(CONFIG)
-
-SRCS= src/$T.c
-OBJS= src/$T.o
-
-lib: src/lfs.so
-
-src/lfs.so: $(OBJS)
- MACOSX_DEPLOYMENT_TARGET="10.3"; export MACOSX_DEPLOYMENT_TARGET; $(CC) $(LIB_OPTION) -o src/lfs.so $(OBJS)
-
-test: lib
- LUA_CPATH=./src/?.so lua tests/test.lua
-
-install:
- mkdir -p $(DESTDIR)$(LUA_LIBDIR)
- cp src/lfs.so $(DESTDIR)$(LUA_LIBDIR)
-
-clean:
- rm -f src/lfs.so $(OBJS)
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/Makefile.win b/Build/source/texk/web2c/luatexdir/luafilesystem/Makefile.win
deleted file mode 100644
index 65cab812408..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/Makefile.win
+++ /dev/null
@@ -1,25 +0,0 @@
-# $Id: Makefile.win,v 1.11 2008/05/07 19:06:37 carregal Exp $
-
-T= lfs
-
-include config.win
-
-SRCS= src\$T.c
-OBJS= src\$T.obj
-
-lib: src\lfs.dll
-
-.c.obj:
- $(CC) /c /Fo$@ $(CFLAGS) $<
-
-src\lfs.dll: $(OBJS)
- link /dll /def:src\$T.def /out:src\lfs.dll $(OBJS) "$(LUA_LIB)"
- IF EXIST src\lfs.dll.manifest mt -manifest src\lfs.dll.manifest -outputresource:src\lfs.dll;2
-
-install: src\lfs.dll
- IF NOT EXIST "$(LUA_LIBDIR)" mkdir "$(LUA_LIBDIR)"
- copy src\lfs.dll "$(LUA_LIBDIR)"
-
-clean:
- del src\lfs.dll $(OBJS) src\$T.lib src\$T.exp
- IF EXIST src\lfs.dll.manifest del src\lfs.dll.manifest \ No newline at end of file
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/README.md b/Build/source/texk/web2c/luatexdir/luafilesystem/README.md
deleted file mode 100644
index ee493738052..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-[![License](http://img.shields.io/badge/Licence-MIT-brightgreen.svg)](LICENSE)
-[![Build Status](https://travis-ci.org/keplerproject/luafilesystem.svg?branch=master)](https://travis-ci.org/keplerproject/luafilesystem)
-[![Build status](https://ci.appveyor.com/api/projects/status/y04s4ms7u16trw8e?svg=true)](https://ci.appveyor.com/project/ignacio/luafilesystem)
-[![Coverage Status](https://coveralls.io/repos/keplerproject/luafilesystem/badge.png)](https://coveralls.io/r/keplerproject/luafilesystem)
-
-# LuaFileSystem - File System Library for Lua
-
-Copyright 2003-2017 Kepler Project
-
-https://keplerproject.github.io/luafilesystem
-
-# Description
-
-LuaFileSystem is a Lua library developed to complement the set of functions
-related to file systems offered by the standard Lua distribution.
-
-LuaFileSystem offers a portable way to access the underlying directory structure and file attributes.
-LuaFileSystem is free software and uses the same license as Lua 5.x (MIT).
-
-# LuaRocks Installation
-
-```
-luarocks install luafilesystem
-```
-
-# Documentation
-
-Please check the documentation at doc/us/ for more information.
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/config b/Build/source/texk/web2c/luatexdir/luafilesystem/config
deleted file mode 100644
index cfd4c6a6d3e..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/config
+++ /dev/null
@@ -1,24 +0,0 @@
-# Installation directories
-
-# Default installation prefix
-PREFIX=/usr/local
-
-# System's libraries directory (where binary libraries are installed)
-LUA_LIBDIR= $(PREFIX)/lib/lua/5.1
-
-# Lua includes directory
-LUA_INC= $(PREFIX)/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 -pedantic
-INCS= -I$(LUA_INC)
-CFLAGS= $(WARN) $(INCS)
-CC= gcc
-
-# $Id: config,v 1.21 2007/10/27 22:42:32 carregal Exp $
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/config.win b/Build/source/texk/web2c/luatexdir/luafilesystem/config.win
deleted file mode 100644
index 50e81f64206..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/config.win
+++ /dev/null
@@ -1,19 +0,0 @@
-# Installation directories
-# System's libraries directory (where binary libraries are installed)
-LUA_LIBDIR= "c:\lua5.1"
-
-# Lua includes directory
-LUA_INC= "c:\lua5.1\include"
-
-# Lua library
-LUA_LIB= "c:\lua5.1\lua5.1.lib"
-
-LIBNAME= $T.dll
-
-# Compilation directives
-WARN= /O2
-INCS= /I$(LUA_INC)
-CFLAGS= /MD $(WARN) $(INCS)
-CC= cl
-
-# $Id: config.win,v 1.7 2008/03/25 17:39:29 mascarenhas Exp $
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/doc.css b/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/doc.css
deleted file mode 100644
index f233ce4f089..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/doc.css
+++ /dev/null
@@ -1,209 +0,0 @@
-body {
- color: #47555c;
- font-size: 16px;
- font-family: "Open Sans", sans-serif;
- margin: 0;
- padding: 0;
- background: #eff4ff;
-}
-
-a:link { color: #008fee; }
-a:visited { color: #008fee; }
-a:hover { color: #22a7ff; }
-
-h1 { font-size:26px; }
-h2 { font-size:24px; }
-h3 { font-size:18px; }
-h4 { font-size:16px; }
-
-hr {
- height: 1px;
- background: #c1cce4;
- border: 0px;
- margin: 20px 0;
-}
-
-code {
- font-family: "Open Sans Mono", "Andale Mono", monospace;
-}
-
-tt {
- font-family: "Open Sans Mono", "Andale Mono", monospace;
-}
-
-body, td, th {
-}
-
-textarea, pre, tt {
- font-family: "Open Sans Mono", "Andale Mono", monospace;
-}
-
-img {
- border-width: 0px;
-}
-
-.example {
- background-color: #323744;
- color: white;
- font-size: 16px;
- padding: 16px 24px;
- border-radius: 2px;
-}
-
-div.header, div.footer {
-}
-
-#container {
-}
-
-#product {
- background-color: white;
- padding: 10px;
- height: 130px;
- border-bottom: solid #d3dbec 1px;
-}
-
-#product big {
- font-size: 42px;
-}
-#product strong {
- font-weight: normal;
-}
-
-#product_logo {
- float: right;
-}
-
-#product_name {
- padding-top: 15px;
- padding-left: 30px;
- font-size: 42px;
- font-weight: normal;
-}
-
-#product_description {
- padding-left: 30px;
- color: #757779;
-}
-
-#main {
- background: #eff4ff;
- margin: 0;
-}
-
-#navigation {
- width: 100%;
- background-color: rgb(44,62,103);
- padding: 10px;
- margin: 0;
-}
-
-#navigation h1 {
- display: none;
-}
-
-#navigation a:hover {
- text-decoration: underline;
-}
-
-#navigation ul li a {
- color: rgb(136, 208, 255);
- font-weight: bold;
- text-decoration: none;
-}
-
-#navigation ul li li a {
- color: rgb(136, 208, 255);
- font-weight: normal;
- text-decoration: none;
-}
-
-#navigation ul {
- display: inline;
- color: white;
- padding: 0px;
- padding-top: 10px;
- padding-bottom: 10px;
-}
-
-#navigation li {
- display: inline;
- list-style-type: none;
- padding-left: 5px;
- padding-right: 5px;
-}
-
-#navigation li {
- padding: 10px;
- padding: 10px;
-}
-
-#navigation li li {
-}
-
-#navigation li:hover a {
- color: rgb(166, 238, 255);
-}
-
-#content {
- padding: 20px;
- width: 800px;
- margin-left: auto;
- margin-right: auto;
-}
-
-#about {
- display: none;
-}
-
-dl.reference {
- background-color: white;
- padding: 20px;
- border: solid #d3dbec 1px;
-}
-
-dl.reference dt {
- padding: 5px;
- padding-top: 25px;
- color: #637bbc;
-}
-
-dl.reference dl dt {
- padding-top: 5px;
- color: #637383;
-}
-
-dl.reference dd {
-}
-
-@media print {
- body {
- font: 10pt "Times New Roman", "TimeNR", Times, serif;
- }
- a {
- font-weight:bold; color: #004080; text-decoration: underline;
- }
- #main {
- background-color: #ffffff; border-left: 0px;
- }
- #container {
- margin-left: 2%; margin-right: 2%; background-color: #ffffff;
- }
- #content {
- margin-left: 0px; padding: 1em; border-left: 0px; border-right: 0px; background-color: #ffffff;
- }
- #navigation {
- display: none;
- }
- #product_logo {
- display: none;
- }
- #about img {
- display: none;
- }
- .example {
- font-family: "Andale Mono", monospace;
- font-size: 8pt;
- page-break-inside: avoid;
- }
-}
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/examples.html b/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/examples.html
deleted file mode 100644
index 68756c8b1d4..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/examples.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>LuaFileSystem</title>
- <link rel="stylesheet" href="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://keplerproject.github.io/luafilesystem">
- <img alt="LuaFileSystem" src="luafilesystem.png"/>
- </a>
- </div>
- <div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
- <div id="product_description">File System Library for the Lua Programming Language</div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<h1>LuaFileSystem</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>
- </ul>
- </li>
- <li><a href="manual.html">Manual</a>
- <ul>
- <li><a href="manual.html#introduction">Introduction</a></li>
- <li><a href="manual.html#building">Building</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="https://github.com/keplerproject/luafilesystem">Project</a>
- <ul>
- <li><a href="https://github.com/keplerproject/luafilesystem/issues">Bug Tracker</a></li>
- <li><a href="https://github.com/keplerproject/luafilesystem">Git</a></li>
- </ul>
- </li>
- <li><a href="license.html">License</a></li>
- </ul>
-</div> <!-- id="navigation" -->
-
-<div id="content">
-
-<h2><a name="example"></a>Examples</h2>
-
-<h3>Directory iterator</h3>
-
-<p>The following example iterates over a directory and recursively lists the
-attributes for each file inside it.</p>
-
-<pre class="example">
-local lfs = require"lfs"
-
-function attrdir (path)
- for file in lfs.dir(path) do
- if file ~= "." and file ~= ".." then
- local f = path..'/'..file
- print ("\t "..f)
- local attr = lfs.attributes (f)
- assert (type(attr) == "table")
- if attr.mode == "directory" then
- attrdir (f)
- else
- for name, value in pairs(attr) do
- print (name, value)
- end
- end
- end
- end
-end
-
-attrdir (".")
-</pre>
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
- <p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-
-</body>
-</html>
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/index.html b/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/index.html
deleted file mode 100644
index 195ab60e75a..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/index.html
+++ /dev/null
@@ -1,220 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>LuaFileSystem</title>
- <link rel="stylesheet" href="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://keplerproject.github.io/luafilesystem">
- <img alt="LuaFileSystem" src="luafilesystem.png"/>
- </a>
- </div>
- <div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
- <div id="product_description">File System Library for the Lua Programming Language</div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<h1>LuaFileSystem</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>
- </ul>
- </li>
- <li><a href="manual.html">Manual</a>
- <ul>
- <li><a href="manual.html#introduction">Introduction</a></li>
- <li><a href="manual.html#building">Building</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="https://github.com/keplerproject/luafilesystem">Project</a>
- <ul>
- <li><a href="https://github.com/keplerproject/luafilesystem/issues">Bug Tracker</a></li>
- <li><a href="https://github.com/keplerproject/luafilesystem">Git</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>LuaFileSystem is a <a href="http://www.lua.org">Lua</a> library
-developed to complement the set of functions related to file
-systems offered by the standard Lua distribution.</p>
-
-<p>LuaFileSystem offers a portable way to access
-the underlying directory structure and file attributes.</p>
-
-<p>LuaFileSystem is free software and uses the same
-<a href="license.html">license</a> as Lua 5.x (MIT).</p>
-
-<h2><a name="status"></a>Status</h2>
-
-<p>Current version is 1.7.0. It works with Lua 5.1, 5.2 and 5.3, and it runs on various
-flavors of Unix (including Linux, BSDs, macOS) and Windows.</p>
-
-<h2><a name="download"></a>Download</h2>
-
-<p>LuaFileSystem can be installed using <a href="https://luarocks.org">LuaRocks</a>:
-
-<pre class="example">
-$ luarocks install luafilesystem
-</pre>
-
-<p>Its source can be found at its <a href="http://github.com/keplerproject/luafilesystem">Github</a> page.</p>
-
-<h2><a name="history"></a>History</h2>
-
-<dl class="history">
- <dt><strong>Version 1.7.0</strong> [15/Sep/2017]</dt>
- <dd><ul>
- <li>symlinkattributes function now provides 'target' field, containing name of the file that the symlink points to.</li>
- <li>attributes, symlinkattributes, touch, mkdir, and rmdir functions now return system-dependent error code as the third value on error.</li>
- <li>Fixed detection of closed files for Lua 5.2+ in setmode, lock, and unlock functions.</li>
- <li>Fixed various compiler warnings.</li>
- </ul></dd>
-
- <dt><strong>Version 1.6.3</strong> [15/Jan/2015]</dt>
- <dd><ul>
- <li>Lua 5.3 support.</li>
- <li>Assorted bugfixes.</li>
- </ul></dd>
-
- <dt><strong>Version 1.6.2</strong> [??/Oct/2012]</dt>
- <dd><ul>
- <li>Full Lua 5.2 compatibility (with Lua 5.1 fallbacks)</li>
- </ul></dd>
-
- <dt><strong>Version 1.6.1</strong> [01/Oct/2012]</dt>
- <dd><ul>
- <li>fix build for Lua 5.2</li>
- </ul></dd>
-
- <dt><strong>Version 1.6.0</strong> [26/Sep/2012]</dt>
- <dd><ul>
- <li>getcwd fix for Android</li>
- <li>support for Lua 5.2</li>
- <li>add lfs.link</li>
- <li>other bug fixes</li>
- </ul></dd>
-
- <dt><strong>Version 1.5.0</strong> [20/Oct/2009]</dt>
- <dd><ul>
- <li>Added explicit next and close methods to second return value of lfs.dir
-(the directory object), for explicit iteration or explicit closing.</li>
- <li>Added directory locking via lfs.lock_dir function (see the <a href="manual.html">manual</a>).</li>
- </ul></dd>
- <dt><strong>Version 1.4.2</strong> [03/Feb/2009]</dt>
- <dd>
- <ul>
- <li>fixed bug
- <code>lfs.attributes(filename, 'size')</code> overflow on files > 2 Gb again (bug report and patch by KUBO Takehiro).</li>
- <li>fixed bug
- Compile error on Solaris 10 (bug report and patch by Aaron B).</li>
- <li>fixed compilation problems with Borland C.</li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.4.1</strong> [07/May/2008]</dt>
- <dd>
- <ul>
- <li>documentation review</li>
- <li>fixed Windows compilation issues</li>
- <li>fixed bug in the Windows tests (patch by Shmuel Zeigerman)</li>
- <li>fixed bug
- <code>lfs.attributes(filename, 'size')</code> overflow on files > 2 Gb
- </li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.4.0</strong> [13/Feb/2008]</dt>
- <dd>
- <ul>
- <li>added function
- <a href="manual.html#setmode"><code>lfs.setmode</code></a>
- (works only in Windows systems).</li>
- <li><a href="manual.html#attributes"><code>lfs.attributes</code></a>
- raises an error if attribute does not exist</li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.3.0</strong> [26/Oct/2007]</dt>
- <dd>
- <ul>
- <li>added function
- <a href="manual.html#symlinkattributes"><code>lfs.symlinkattributes</code></a>
- (works only in non Windows systems).</li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.2.1</strong> [08/May/2007]</dt>
- <dd>
- <ul>
- <li>compatible only with Lua 5.1 (Lua 5.0 support was dropped)</li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.2</strong> [15/Mar/2006]</dt>
- <dd>
- <ul>
- <li>added optional argument to
- <a href="manual.html#attributes"><code>lfs.attributes</code></a></li>
- <li>added function
- <a href="manual.html#rmdir"><code>lfs.rmdir</code></a></li>
- <li>bug correction on <a href="manual.html#dir"><code>lfs.dir</code></a></li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.1</strong> [30/May/2005]</dt>
- <dd>
- <ul>
- <li>added function <a href="manual.html#touch"><code>lfs.touch</code></a>.</li>
- </ul>
- </dd>
-
- <dt><strong>Version 1.0</strong> [21/Jan/2005]</dt>
- <dd />
-
- <dt><strong>Version 1.0 Beta</strong> [10/Nov/2004]</dt>
- <dd />
-</dl>
-
-<h2><a name="credits"></a>Credits</h2>
-
-<p>LuaFileSystem was designed by Roberto Ierusalimschy,
-Andr&eacute; Carregal and Tom&aacute;s Guisasola as part of the
-<a href="https://github.com/keplerproject">Kepler Project</a>,
-which holds its copyright. LuaFileSystem is currently maintained by F&aacute;bio Mascarenhas.</p>
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
- <p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-
-</body>
-</html>
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/license.html b/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/license.html
deleted file mode 100644
index 4f828cf1467..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/license.html
+++ /dev/null
@@ -1,120 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>LuaFileSystem</title>
- <link rel="stylesheet" href="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://keplerproject.github.io/luafilesystem">
- <img alt="LuaFileSystem" src="luafilesystem.png"/>
- </a>
- </div>
- <div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
- <div id="product_description">File System Library for the Lua Programming Language</div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<h1>LuaFileSystem</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>
- </ul>
- </li>
- <li><a href="manual.html">Manual</a>
- <ul>
- <li><a href="manual.html#introduction">Introduction</a></li>
- <li><a href="manual.html#building">Building</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="https://github.com/keplerproject/luafilesystem">Project</a>
- <ul>
- <li><a href="https://github.com/keplerproject/luafilesystem/issues">Bug Tracker</a></li>
- <li><a href="https://github.com/keplerproject/luafilesystem">Git</a></li>
- </ul>
- </li>
- <li><strong>License</strong></li>
- </ul>
-</div> <!-- id="navigation" -->
-
-<div id="content">
-
-<h1>License</h1>
-
-<p>
-LuaFileSystem 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. LuaFileSystem
-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>.
-LuaFileSystem is not in the public domain and the
-<a href="https://github.com/keplerproject">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
-LuaFileSystem for any purpose at no cost without having to ask us.
-The only requirement is that if you do use LuaFileSystem, then you
-should give us credit by including the appropriate copyright notice
-somewhere in your product or its documentation.</p>
-
-<p>The LuaFileSystem library is designed and implemented by Roberto
-Ierusalimschy, Andr&eacute; Carregal and Tom&aacute;s Guisasola.
-The implementation is not derived from licensed software.</p>
-
-<hr/>
-<p>Copyright &copy; 2003 - 2017 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">Valid XHTML 1.0!</a></p>
-</div><!-- id="about" -->
-
-</div><!-- id="container" -->
-
-</body>
-</html>
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/luafilesystem.png b/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/luafilesystem.png
deleted file mode 100644
index e1dd8c65b52..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/luafilesystem.png
+++ /dev/null
Binary files differ
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/manual.html b/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/manual.html
deleted file mode 100644
index 3555e3db4dd..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/doc/us/manual.html
+++ /dev/null
@@ -1,286 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <title>LuaFileSystem</title>
- <link rel="stylesheet" href="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://keplerproject.github.io/luafilesystem">
- <img alt="LuaFileSystem" src="luafilesystem.png"/>
- </a>
- </div>
- <div id="product_name"><big><strong>LuaFileSystem</strong></big></div>
- <div id="product_description">File System Library for the Lua Programming Language</div>
-</div> <!-- id="product" -->
-
-<div id="main">
-
-<div id="navigation">
-<h1>LuaFileSystem</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>
- </ul>
- </li>
- <li><strong>Manual</strong>
- <ul>
- <li><a href="manual.html#introduction">Introduction</a></li>
- <li><a href="manual.html#building">Building</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="https://github.com/keplerproject/luafilesystem">Project</a>
- <ul>
- <li><a href="https://github.com/keplerproject/luafilesystem/issues">Bug Tracker</a></li>
- <li><a href="https://github.com/keplerproject/luafilesystem">Git</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>LuaFileSystem is a <a href="http://www.lua.org">Lua</a> library
-developed to complement the set of functions related to file
-systems offered by the standard Lua distribution.</p>
-
-<p>LuaFileSystem offers a portable way to access
-the underlying directory structure and file attributes.</p>
-
-<h2><a name="building"></a>Building</h2>
-
-<p>
-LuaFileSystem should be built with Lua 5.1 so the language library
-and header files for the target version must be installed properly.
-</p>
-
-<p>
-LuaFileSystem offers a Makefile and a separate configuration file,
-<code>config</code>,
-which should be edited to suit your installation before running
-<code>make</code>.
-The file has some definitions like paths to the external libraries,
-compiler options and the like.
-</p>
-
-<p>On Windows, the C runtime used to compile LuaFileSystem must be the same
-runtime that Lua uses, or some LuaFileSystem functions will not work.</p>
-
-<h2><a name="installation"></a>Installation</h2>
-
-<p>The easiest way to install LuaFileSystem is to use LuaRocks:</p>
-
-<pre class="example">
-luarocks install luafilesystem
-</pre>
-
-<p>If you prefer to install LuaFileSystem manually, the compiled binary should be copied to a directory in your
-<a href="http://www.lua.org/manual/5.1/manual.html#pdf-package.cpath">C path</a>.</p>
-
-<h2><a name="reference"></a>Reference</h2>
-
-<p>
-LuaFileSystem offers the following functions:
-</p>
-
-<dl class="reference">
- <dt><a name="attributes"></a><strong><code>lfs.attributes (filepath [, aname | atable])</code></strong></dt>
- <dd>Returns a table with the file attributes corresponding to
- <code>filepath</code> (or <code>nil</code> followed by an error message and a system-dependent error code
- in case of error).
- If the second optional argument is given and is a string, then only the value of the
- named attribute is returned (this use is equivalent to
- <code>lfs.attributes(filepath)[aname]</code>, but the table is not created
- and only one attribute is retrieved from the O.S.).
- if a table is passed as the second argument, it is filled with attributes and returned instead of a new table.
- The attributes are described as follows;
- attribute <code>mode</code> is a string, all the others are numbers,
- and the time related attributes use the same time reference of
- <a href="http://www.lua.org/manual/5.1/manual.html#pdf-os.time"><code>os.time</code></a>:
- <dl>
- <dt><strong><code>dev</code></strong></dt>
- <dd>on Unix systems, this represents the device that the inode resides on. On Windows systems,
- represents the drive number of the disk containing the file</dd>
-
- <dt><strong><code>ino</code></strong></dt>
- <dd>on Unix systems, this represents the inode number. On Windows systems this has no meaning</dd>
-
- <dt><strong><code>mode</code></strong></dt>
- <dd>string representing the associated protection mode (the values could be
- <code>file</code>, <code>directory</code>, <code>link</code>, <code>socket</code>,
- <code>named pipe</code>, <code>char device</code>, <code>block device</code> or
- <code>other</code>)</dd>
-
- <dt><strong><code>nlink</code></strong></dt>
- <dd>number of hard links to the file</dd>
-
- <dt><strong><code>uid</code></strong></dt>
- <dd>user-id of owner (Unix only, always 0 on Windows)</dd>
-
- <dt><strong><code>gid</code></strong></dt>
- <dd>group-id of owner (Unix only, always 0 on Windows)</dd>
-
- <dt><strong><code>rdev</code></strong></dt>
- <dd>on Unix systems, represents the device type, for special file inodes.
- On Windows systems represents the same as <code>dev</code></dd>
-
- <dt><strong><code>access</code></strong></dt>
- <dd>time of last access</dd>
-
- <dt><strong><code>modification</code></strong></dt>
- <dd>time of last data modification</dd>
-
- <dt><strong><code>change</code></strong></dt>
- <dd>time of last file status change</dd>
-
- <dt><strong><code>size</code></strong></dt>
- <dd>file size, in bytes</dd>
-
- <dt><strong><code>permissions</code></strong></dt>
- <dd>file permissions string</dd>
-
- <dt><strong><code>blocks</code></strong></dt>
- <dd>block allocated for file; (Unix only)</dd>
-
- <dt><strong><code>blksize</code></strong></dt>
- <dd>optimal file system I/O blocksize; (Unix only)</dd>
- </dl>
- This function uses <code>stat</code> internally thus if the given
- <code>filepath</code> is a symbolic link, it is followed (if it points to
- another link the chain is followed recursively) and the information
- is about the file it refers to.
- To obtain information about the link itself, see function
- <a href="#symlinkattributes">lfs.symlinkattributes</a>.
- </dd>
-
- <dt><a name="chdir"></a><strong><code>lfs.chdir (path)</code></strong></dt>
- <dd>Changes the current working directory to the given
- <code>path</code>.<br />
- Returns <code>true</code> in case of success or <code>nil</code> plus an
- error string.</dd>
-
- <dt><a name="lock_dir"></a><strong><code>lfs.lock_dir(path, [seconds_stale])</code></strong></dt>
- <dd>Creates a lockfile (called lockfile.lfs) in <code>path</code> if it does not
- exist and returns the lock. If the lock already exists checks if
- it's stale, using the second parameter (default for the second
- parameter is <code>INT_MAX</code>, which in practice means the lock will never
- be stale. To free the the lock call <code>lock:free()</code>. <br/>
- In case of any errors it returns nil and the error message. In
- particular, if the lock exists and is not stale it returns the
- "File exists" message.</dd>
-
- <dt><a name="currentdir"></a><strong><code>lfs.currentdir ()</code></strong></dt>
- <dd>Returns a string with the current working directory or <code>nil</code>
- plus an error string.</dd>
-
- <dt><a name="dir"></a><strong><code>iter, dir_obj = lfs.dir (path)</code></strong></dt>
- <dd>
- Lua iterator over the entries of a given directory.
- Each time the iterator is called with <code>dir_obj</code> it returns a directory entry's name as a string, or
- <code>nil</code> if there are no more entries. You can also iterate by calling <code>dir_obj:next()</code>, and
- explicitly close the directory before the iteration finished with <code>dir_obj:close()</code>.
- Raises an error if <code>path</code> is not a directory.
- </dd>
-
- <dt><a name="lock"></a><strong><code>lfs.lock (filehandle, mode[, start[, length]])</code></strong></dt>
- <dd>Locks a file or a part of it. This function works on <em>open files</em>; the
- file handle should be specified as the first argument.
- The string <code>mode</code> could be either
- <code>r</code> (for a read/shared lock) or <code>w</code> (for a
- write/exclusive lock). The optional arguments <code>start</code>
- and <code>length</code> can be used to specify a starting point and
- its length; both should be numbers.<br />
- Returns <code>true</code> if the operation was successful; in
- case of error, it returns <code>nil</code> plus an error string.
- </dd>
-
- <dt><a name="link"></a><strong><code>lfs.link (old, new[, symlink])</code></strong></dt>
- <dd>Creates a link. The first argument is the object to link to
- and the second is the name of the link. If the optional third
- argument is true, the link will by a symbolic link (by default, a
- hard link is created).
- </dd>
-
- <dt><a name="mkdir"></a><strong><code>lfs.mkdir (dirname)</code></strong></dt>
- <dd>Creates a new directory. The argument is the name of the new
- directory.<br />
- Returns <code>true</code> in case of success or <code>nil</code>, an error message and
- a system-dependent error code in case of error.
- </dd>
-
- <dt><a name="rmdir"></a><strong><code>lfs.rmdir (dirname)</code></strong></dt>
- <dd>Removes an existing directory. The argument is the name of the directory.<br />
- Returns <code>true</code> in case of success or <code>nil</code>, an error message and
- a system-dependent error code in case of error.
-
- <dt><a name="setmode"></a><strong><code>lfs.setmode (file, mode)</code></strong></dt>
- <dd>Sets the writing mode for a file. The mode string can be either <code>"binary"</code> or <code>"text"</code>.
- Returns <code>true</code> followed the previous mode string for the file, or
- <code>nil</code> followed by an error string in case of errors.
- On non-Windows platforms, where the two modes are identical,
- setting the mode has no effect, and the mode is always returned as <code>binary</code>.
- </dd>
-
- <dt><a name="symlinkattributes"></a><strong><code>lfs.symlinkattributes (filepath [, aname])</code></strong></dt>
- <dd>Identical to <a href="#attributes">lfs.attributes</a> except that
- it obtains information about the link itself (not the file it refers to).
- It also adds a <strong><code>target</code></strong> field, containing
- the file name that the symlink points to.
- On Windows this function does not yet support links, and is identical to
- <code>lfs.attributes</code>.
- </dd>
-
- <dt><a name="touch"></a><strong><code>lfs.touch (filepath [, atime [, mtime]])</code></strong></dt>
- <dd>Set access and modification times of a file. This function is
- a bind to <code>utime</code> function. The first argument is the
- filename, the second argument (<code>atime</code>) is the access time,
- and the third argument (<code>mtime</code>) is the modification time.
- Both times are provided in seconds (which should be generated with
- Lua standard function <code>os.time</code>).
- If the modification time is omitted, the access time provided is used;
- if both times are omitted, the current time is used.<br />
- Returns <code>true</code> in case of success or <code>nil</code>, an error message and
- a system-dependent error code in case of error.
- </dd>
-
- <dt><a name="unlock"></a><strong><code>lfs.unlock (filehandle[, start[, length]])</code></strong></dt>
- <dd>Unlocks a file or a part of it. This function works on
- <em>open files</em>; the file handle should be specified as the first
- argument. The optional arguments <code>start</code> and
- <code>length</code> can be used to specify a starting point and its
- length; both should be numbers.<br />
- Returns <code>true</code> if the operation was successful;
- in case of error, it returns <code>nil</code> plus an error string.
- </dd>
-</dl>
-
-</div> <!-- id="content" -->
-
-</div> <!-- id="main" -->
-
-<div id="about">
- <p><a href="http://validator.w3.org/check?uri=referer">Valid XHTML 1.0!</a></p>
-</div> <!-- id="about" -->
-
-</div> <!-- id="container" -->
-
-</body>
-</html>
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.c b/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.c
deleted file mode 100644
index c8122c2ca95..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.c
+++ /dev/null
@@ -1,941 +0,0 @@
-/*
-** LuaFileSystem
-** Copyright Kepler Project 2003 - 2017 (http://keplerproject.github.io/luafilesystem)
-**
-** File system manipulation library.
-** This library offers these functions:
-** lfs.attributes (filepath [, attributename | attributetable])
-** lfs.chdir (path)
-** lfs.currentdir ()
-** lfs.dir (path)
-** lfs.link (old, new[, symlink])
-** lfs.lock (fh, mode)
-** lfs.lock_dir (path)
-** lfs.mkdir (path)
-** lfs.rmdir (path)
-** lfs.setmode (filepath, mode)
-** lfs.symlinkattributes (filepath [, attributename])
-** lfs.touch (filepath [, atime [, mtime]])
-** lfs.unlock (fh)
-*/
-
-#ifndef LFS_DO_NOT_USE_LARGE_FILE
-#ifndef _WIN32
-#ifndef _AIX
-#define _FILE_OFFSET_BITS 64 /* Linux, Solaris and HP-UX */
-#else
-#define _LARGE_FILES 1 /* AIX */
-#endif
-#endif
-#endif
-
-#ifndef LFS_DO_NOT_USE_LARGE_FILE
-#define _LARGEFILE64_SOURCE
-#endif
-
-#include <errno.h>
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-#include <time.h>
-#include <sys/stat.h>
-
-#ifdef _WIN32
- #include <direct.h>
- #include <windows.h>
- #include <io.h>
- #include <sys/locking.h>
- #ifdef __BORLANDC__
- #include <utime.h>
- #else
- #include <sys/utime.h>
- #endif
- #include <fcntl.h>
- /* MAX_PATH seems to be 260. Seems kind of small. Is there a better one? */
- #define LFS_MAXPATHLEN MAX_PATH
-#else
- #include <unistd.h>
- #include <dirent.h>
- #include <fcntl.h>
- #include <sys/types.h>
- #include <utime.h>
- #include <sys/param.h> /* for MAXPATHLEN */
- #define LFS_MAXPATHLEN MAXPATHLEN
-#endif
-
-#include <lua.h>
-#include <lauxlib.h>
-#include <lualib.h>
-
-#include "lfs.h"
-
-#define LFS_VERSION "1.7.0"
-#define LFS_LIBNAME "lfs"
-
-#if LUA_VERSION_NUM >= 503 /* Lua 5.3 */
-
-#ifndef luaL_optlong
-#define luaL_optlong luaL_optinteger
-#endif
-
-#endif
-
-#if LUA_VERSION_NUM >= 502
-# define new_lib(L, l) (luaL_newlib(L, l))
-#else
-# define new_lib(L, l) (lua_newtable(L), luaL_register(L, NULL, l))
-#endif
-
-/* Define 'strerror' for systems that do not implement it */
-#ifdef NO_STRERROR
-#define strerror(_) "System unable to describe the error"
-#endif
-
-#define DIR_METATABLE "directory metatable"
-typedef struct dir_data {
- int closed;
-#ifdef _WIN32
- intptr_t hFile;
- char pattern[MAX_PATH+1];
-#else
- DIR *dir;
-#endif
-} dir_data;
-
-#define LOCK_METATABLE "lock metatable"
-
-#ifdef _WIN32
- #ifdef __BORLANDC__
- #define lfs_setmode(file, m) (setmode(_fileno(file), m))
- #define STAT_STRUCT struct stati64
- #else
- #define lfs_setmode(file, m) (_setmode(_fileno(file), m))
- #define STAT_STRUCT struct _stati64
- #endif
-#define STAT_FUNC _stati64
-#define LSTAT_FUNC STAT_FUNC
-#else
-#define _O_TEXT 0
-#define _O_BINARY 0
-#define lfs_setmode(file, m) ((void)file, (void)m, 0)
-#define STAT_STRUCT struct stat
-#define STAT_FUNC stat
-#define LSTAT_FUNC lstat
-#endif
-
-#ifdef _WIN32
- #define lfs_mkdir _mkdir
-#else
- #define lfs_mkdir(path) (mkdir((path), \
- S_IRUSR | S_IWUSR | S_IXUSR | S_IRGRP | S_IWGRP | S_IXGRP | S_IROTH | S_IXOTH))
-#endif
-
-/*
-** Utility functions
-*/
-static int pusherror(lua_State *L, const char *info)
-{
- lua_pushnil(L);
- if (info==NULL)
- lua_pushstring(L, strerror(errno));
- else
- lua_pushfstring(L, "%s: %s", info, strerror(errno));
- lua_pushinteger(L, errno);
- return 3;
-}
-
-static int pushresult(lua_State *L, int res, const char *info) {
- if (res == -1) {
- return pusherror(L, info);
- } else {
- lua_pushboolean(L, 1);
- return 1;
- }
-}
-
-
-/*
-** This function changes the working (current) directory
-*/
-static int change_dir (lua_State *L) {
- const char *path = luaL_checkstring(L, 1);
- if (chdir(path)) {
- lua_pushnil (L);
- lua_pushfstring (L,"Unable to change working directory to '%s'\n%s\n",
- path, chdir_error);
- return 2;
- } else {
- lua_pushboolean (L, 1);
- return 1;
- }
-}
-
-/*
-** This function returns the current directory
-** If unable to get the current directory, it returns nil
-** and a string describing the error
-*/
-static int get_dir (lua_State *L) {
-#ifdef NO_GETCWD
- lua_pushnil(L);
- lua_pushstring(L, "Function 'getcwd' not provided by system");
- return 2;
-#else
- char *path = NULL;
- /* Passing (NULL, 0) is not guaranteed to work. Use a temp buffer and size instead. */
- size_t size = LFS_MAXPATHLEN; /* initial buffer size */
- int result;
- while (1) {
- path = realloc(path, size);
- if (!path) /* failed to allocate */
- return pusherror(L, "get_dir realloc() failed");
- if (getcwd(path, size) != NULL) {
- /* success, push the path to the Lua stack */
- lua_pushstring(L, path);
- result = 1;
- break;
- }
- if (errno != ERANGE) { /* unexpected error */
- result = pusherror(L, "get_dir getcwd() failed");
- break;
- }
- /* ERANGE = insufficient buffer capacity, double size and retry */
- size *= 2;
- }
- free(path);
- return result;
-#endif
-}
-
-/*
-** Check if the given element on the stack is a file and returns it.
-*/
-static FILE *check_file (lua_State *L, int idx, const char *funcname) {
-#if LUA_VERSION_NUM == 501
- FILE **fh = (FILE **)luaL_checkudata (L, idx, "FILE*");
- if (*fh == NULL) {
- luaL_error (L, "%s: closed file", funcname);
- return 0;
- } else
- return *fh;
-#elif LUA_VERSION_NUM >= 502 && LUA_VERSION_NUM <= 503
- luaL_Stream *fh = (luaL_Stream *)luaL_checkudata (L, idx, "FILE*");
- if (fh->closef == 0 || fh->f == NULL) {
- luaL_error (L, "%s: closed file", funcname);
- return 0;
- } else
- return fh->f;
-#else
-#error unsupported Lua version
-#endif
-}
-
-
-/*
-**
-*/
-static int _file_lock (lua_State *L, FILE *fh, const char *mode, const long start, long len, const char *funcname) {
- int code;
-#ifdef _WIN32
- /* lkmode valid values are:
- LK_LOCK Locks the specified bytes. If the bytes cannot be locked, the program immediately tries again after 1 second. If, after 10 attempts, the bytes cannot be locked, the constant returns an error.
- LK_NBLCK Locks the specified bytes. If the bytes cannot be locked, the constant returns an error.
- LK_NBRLCK Same as _LK_NBLCK.
- LK_RLCK Same as _LK_LOCK.
- LK_UNLCK Unlocks the specified bytes, which must have been previously locked.
-
- Regions should be locked only briefly and should be unlocked before closing a file or exiting the program.
-
- http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_crt__locking.asp
- */
- int lkmode;
- switch (*mode) {
- case 'r': lkmode = LK_NBLCK; break;
- case 'w': lkmode = LK_NBLCK; break;
- case 'u': lkmode = LK_UNLCK; break;
- default : return luaL_error (L, "%s: invalid mode", funcname);
- }
- if (!len) {
- fseek (fh, 0L, SEEK_END);
- len = ftell (fh);
- }
- fseek (fh, start, SEEK_SET);
-#ifdef __BORLANDC__
- code = locking (fileno(fh), lkmode, len);
-#else
- code = _locking (fileno(fh), lkmode, len);
-#endif
-#else
- struct flock f;
- switch (*mode) {
- case 'w': f.l_type = F_WRLCK; break;
- case 'r': f.l_type = F_RDLCK; break;
- case 'u': f.l_type = F_UNLCK; break;
- default : return luaL_error (L, "%s: invalid mode", funcname);
- }
- f.l_whence = SEEK_SET;
- f.l_start = (off_t)start;
- f.l_len = (off_t)len;
- code = fcntl (fileno(fh), F_SETLK, &f);
-#endif
- return (code != -1);
-}
-
-#ifdef _WIN32
-typedef struct lfs_Lock {
- HANDLE fd;
-} lfs_Lock;
-static int lfs_lock_dir(lua_State *L) {
- size_t pathl; HANDLE fd;
- lfs_Lock *lock;
- char *ln;
- const char *lockfile = "/lockfile.lfs";
- const char *path = luaL_checklstring(L, 1, &pathl);
- ln = (char*)malloc(pathl + strlen(lockfile) + 1);
- if(!ln) {
- lua_pushnil(L); lua_pushstring(L, strerror(errno)); return 2;
- }
- strcpy(ln, path); strcat(ln, lockfile);
- if((fd = CreateFile(ln, GENERIC_WRITE, 0, NULL, CREATE_NEW,
- FILE_ATTRIBUTE_NORMAL | FILE_FLAG_DELETE_ON_CLOSE, NULL)) == INVALID_HANDLE_VALUE) {
- int en = GetLastError();
- free(ln); lua_pushnil(L);
- if(en == ERROR_FILE_EXISTS || en == ERROR_SHARING_VIOLATION)
- lua_pushstring(L, "File exists");
- else
- lua_pushstring(L, strerror(en));
- return 2;
- }
- free(ln);
- lock = (lfs_Lock*)lua_newuserdata(L, sizeof(lfs_Lock));
- lock->fd = fd;
- luaL_getmetatable (L, LOCK_METATABLE);
- lua_setmetatable (L, -2);
- return 1;
-}
-static int lfs_unlock_dir(lua_State *L) {
- lfs_Lock *lock = (lfs_Lock *)luaL_checkudata(L, 1, LOCK_METATABLE);
- if(lock->fd != INVALID_HANDLE_VALUE) {
- CloseHandle(lock->fd);
- lock->fd=INVALID_HANDLE_VALUE;
- }
- return 0;
-}
-#else
-typedef struct lfs_Lock {
- char *ln;
-} lfs_Lock;
-static int lfs_lock_dir(lua_State *L) {
- lfs_Lock *lock;
- size_t pathl;
- char *ln;
- const char *lockfile = "/lockfile.lfs";
- const char *path = luaL_checklstring(L, 1, &pathl);
- lock = (lfs_Lock*)lua_newuserdata(L, sizeof(lfs_Lock));
- ln = (char*)malloc(pathl + strlen(lockfile) + 1);
- if(!ln) {
- lua_pushnil(L); lua_pushstring(L, strerror(errno)); return 2;
- }
- strcpy(ln, path); strcat(ln, lockfile);
- if(symlink("lock", ln) == -1) {
- free(ln); lua_pushnil(L);
- lua_pushstring(L, strerror(errno)); return 2;
- }
- lock->ln = ln;
- luaL_getmetatable (L, LOCK_METATABLE);
- lua_setmetatable (L, -2);
- return 1;
-}
-static int lfs_unlock_dir(lua_State *L) {
- lfs_Lock *lock = (lfs_Lock *)luaL_checkudata(L, 1, LOCK_METATABLE);
- if(lock->ln) {
- unlink(lock->ln);
- free(lock->ln);
- lock->ln = NULL;
- }
- return 0;
-}
-#endif
-
-static int lfs_g_setmode (lua_State *L, FILE *f, int arg) {
- static const int mode[] = {_O_BINARY, _O_TEXT};
- static const char *const modenames[] = {"binary", "text", NULL};
- int op = luaL_checkoption(L, arg, NULL, modenames);
- int res = lfs_setmode(f, mode[op]);
- if (res != -1) {
- int i;
- lua_pushboolean(L, 1);
- for (i = 0; modenames[i] != NULL; i++) {
- if (mode[i] == res) {
- lua_pushstring(L, modenames[i]);
- return 2;
- }
- }
- lua_pushnil(L);
- return 2;
- } else {
- return pusherror(L, NULL);
- }
-}
-
-static int lfs_f_setmode(lua_State *L) {
- return lfs_g_setmode(L, check_file(L, 1, "setmode"), 2);
-}
-
-/*
-** Locks a file.
-** @param #1 File handle.
-** @param #2 String with lock mode ('w'rite, 'r'ead).
-** @param #3 Number with start position (optional).
-** @param #4 Number with length (optional).
-*/
-static int file_lock (lua_State *L) {
- FILE *fh = check_file (L, 1, "lock");
- const char *mode = luaL_checkstring (L, 2);
- const long start = (long) luaL_optinteger (L, 3, 0);
- long len = (long) luaL_optinteger (L, 4, 0);
- if (_file_lock (L, fh, mode, start, len, "lock")) {
- lua_pushboolean (L, 1);
- return 1;
- } else {
- lua_pushnil (L);
- lua_pushfstring (L, "%s", strerror(errno));
- return 2;
- }
-}
-
-
-/*
-** Unlocks a file.
-** @param #1 File handle.
-** @param #2 Number with start position (optional).
-** @param #3 Number with length (optional).
-*/
-static int file_unlock (lua_State *L) {
- FILE *fh = check_file (L, 1, "unlock");
- const long start = (long) luaL_optinteger (L, 2, 0);
- long len = (long) luaL_optinteger (L, 3, 0);
- if (_file_lock (L, fh, "u", start, len, "unlock")) {
- lua_pushboolean (L, 1);
- return 1;
- } else {
- lua_pushnil (L);
- lua_pushfstring (L, "%s", strerror(errno));
- return 2;
- }
-}
-
-
-/*
-** Creates a link.
-** @param #1 Object to link to.
-** @param #2 Name of link.
-** @param #3 True if link is symbolic (optional).
-*/
-static int make_link (lua_State *L) {
-#ifndef _WIN32
- const char *oldpath = luaL_checkstring(L, 1);
- const char *newpath = luaL_checkstring(L, 2);
- int res = (lua_toboolean(L,3) ? symlink : link)(oldpath, newpath);
- if (res == -1) {
- return pusherror(L, NULL);
- } else {
- lua_pushinteger(L, 0);
- return 1;
- }
-#else
- errno = ENOSYS; /* = "Function not implemented" */
- return pushresult(L, -1, "make_link is not supported on Windows");
-#endif
-}
-
-
-/*
-** Creates a directory.
-** @param #1 Directory path.
-*/
-static int make_dir (lua_State *L) {
- const char *path = luaL_checkstring(L, 1);
- return pushresult(L, lfs_mkdir(path), NULL);
-}
-
-
-/*
-** Removes a directory.
-** @param #1 Directory path.
-*/
-static int remove_dir (lua_State *L) {
- const char *path = luaL_checkstring(L, 1);
- return pushresult(L, rmdir(path), NULL);
-}
-
-
-/*
-** Directory iterator
-*/
-static int dir_iter (lua_State *L) {
-#ifdef _WIN32
- struct _finddata_t c_file;
-#else
- struct dirent *entry;
-#endif
- dir_data *d = (dir_data *)luaL_checkudata (L, 1, DIR_METATABLE);
- luaL_argcheck (L, d->closed == 0, 1, "closed directory");
-#ifdef _WIN32
- if (d->hFile == 0L) { /* first entry */
- if ((d->hFile = _findfirst (d->pattern, &c_file)) == -1L) {
- lua_pushnil (L);
- lua_pushstring (L, strerror (errno));
- d->closed = 1;
- return 2;
- } else {
- lua_pushstring (L, c_file.name);
- return 1;
- }
- } else { /* next entry */
- if (_findnext (d->hFile, &c_file) == -1L) {
- /* no more entries => close directory */
- _findclose (d->hFile);
- d->closed = 1;
- return 0;
- } else {
- lua_pushstring (L, c_file.name);
- return 1;
- }
- }
-#else
- if ((entry = readdir (d->dir)) != NULL) {
- lua_pushstring (L, entry->d_name);
- return 1;
- } else {
- /* no more entries => close directory */
- closedir (d->dir);
- d->closed = 1;
- return 0;
- }
-#endif
-}
-
-
-/*
-** Closes directory iterators
-*/
-static int dir_close (lua_State *L) {
- dir_data *d = (dir_data *)lua_touserdata (L, 1);
-#ifdef _WIN32
- if (!d->closed && d->hFile) {
- _findclose (d->hFile);
- }
-#else
- if (!d->closed && d->dir) {
- closedir (d->dir);
- }
-#endif
- d->closed = 1;
- return 0;
-}
-
-
-/*
-** Factory of directory iterators
-*/
-static int dir_iter_factory (lua_State *L) {
- const char *path = luaL_checkstring (L, 1);
- dir_data *d;
- lua_pushcfunction (L, dir_iter);
- d = (dir_data *) lua_newuserdata (L, sizeof(dir_data));
- luaL_getmetatable (L, DIR_METATABLE);
- lua_setmetatable (L, -2);
- d->closed = 0;
-#ifdef _WIN32
- d->hFile = 0L;
- if (strlen(path) > MAX_PATH-2)
- luaL_error (L, "path too long: %s", path);
- else
- sprintf (d->pattern, "%s/*", path);
-#else
- d->dir = opendir (path);
- if (d->dir == NULL)
- luaL_error (L, "cannot open %s: %s", path, strerror (errno));
-#endif
- return 2;
-}
-
-
-/*
-** Creates directory metatable.
-*/
-static int dir_create_meta (lua_State *L) {
- luaL_newmetatable (L, DIR_METATABLE);
-
- /* Method table */
- lua_newtable(L);
- lua_pushcfunction (L, dir_iter);
- lua_setfield(L, -2, "next");
- lua_pushcfunction (L, dir_close);
- lua_setfield(L, -2, "close");
-
- /* Metamethods */
- lua_setfield(L, -2, "__index");
- lua_pushcfunction (L, dir_close);
- lua_setfield (L, -2, "__gc");
- return 1;
-}
-
-
-/*
-** Creates lock metatable.
-*/
-static int lock_create_meta (lua_State *L) {
- luaL_newmetatable (L, LOCK_METATABLE);
-
- /* Method table */
- lua_newtable(L);
- lua_pushcfunction(L, lfs_unlock_dir);
- lua_setfield(L, -2, "free");
-
- /* Metamethods */
- lua_setfield(L, -2, "__index");
- lua_pushcfunction(L, lfs_unlock_dir);
- lua_setfield(L, -2, "__gc");
- return 1;
-}
-
-
-#ifdef _WIN32
- #ifndef S_ISDIR
- #define S_ISDIR(mode) (mode&_S_IFDIR)
- #endif
- #ifndef S_ISREG
- #define S_ISREG(mode) (mode&_S_IFREG)
- #endif
- #ifndef S_ISLNK
- #define S_ISLNK(mode) (0)
- #endif
- #ifndef S_ISSOCK
- #define S_ISSOCK(mode) (0)
- #endif
- #ifndef S_ISFIFO
- #define S_ISFIFO(mode) (0)
- #endif
- #ifndef S_ISCHR
- #define S_ISCHR(mode) (mode&_S_IFCHR)
- #endif
- #ifndef S_ISBLK
- #define S_ISBLK(mode) (0)
- #endif
-#endif
-/*
-** Convert the inode protection mode to a string.
-*/
-#ifdef _WIN32
-static const char *mode2string (unsigned short mode) {
-#else
-static const char *mode2string (mode_t mode) {
-#endif
- if ( S_ISREG(mode) )
- return "file";
- else if ( S_ISDIR(mode) )
- return "directory";
- else if ( S_ISLNK(mode) )
- return "link";
- else if ( S_ISSOCK(mode) )
- return "socket";
- else if ( S_ISFIFO(mode) )
- return "named pipe";
- else if ( S_ISCHR(mode) )
- return "char device";
- else if ( S_ISBLK(mode) )
- return "block device";
- else
- return "other";
-}
-
-
-/*
-** Set access time and modification values for a file.
-** @param #1 File path.
-** @param #2 Access time in seconds, current time is used if missing.
-** @param #3 Modification time in seconds, access time is used if missing.
-*/
-static int file_utime (lua_State *L) {
- const char *file = luaL_checkstring(L, 1);
- struct utimbuf utb, *buf;
-
- if (lua_gettop (L) == 1) /* set to current date/time */
- buf = NULL;
- else {
- utb.actime = (time_t) luaL_optnumber(L, 2, 0);
- utb.modtime = (time_t) luaL_optinteger(L, 3, utb.actime);
- buf = &utb;
- }
-
- return pushresult(L, utime(file, buf), NULL);
-}
-
-
-/* inode protection mode */
-static void push_st_mode (lua_State *L, STAT_STRUCT *info) {
- lua_pushstring (L, mode2string (info->st_mode));
-}
-/* device inode resides on */
-static void push_st_dev (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer) info->st_dev);
-}
-/* inode's number */
-static void push_st_ino (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer) info->st_ino);
-}
-/* number of hard links to the file */
-static void push_st_nlink (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer)info->st_nlink);
-}
-/* user-id of owner */
-static void push_st_uid (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer)info->st_uid);
-}
-/* group-id of owner */
-static void push_st_gid (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer)info->st_gid);
-}
-/* device type, for special file inode */
-static void push_st_rdev (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer) info->st_rdev);
-}
-/* time of last access */
-static void push_st_atime (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer) info->st_atime);
-}
-/* time of last data modification */
-static void push_st_mtime (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer) info->st_mtime);
-}
-/* time of last file status change */
-static void push_st_ctime (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer) info->st_ctime);
-}
-/* file size, in bytes */
-static void push_st_size (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer)info->st_size);
-}
-#ifndef _WIN32
-/* blocks allocated for file */
-static void push_st_blocks (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer)info->st_blocks);
-}
-/* optimal file system I/O blocksize */
-static void push_st_blksize (lua_State *L, STAT_STRUCT *info) {
- lua_pushinteger (L, (lua_Integer)info->st_blksize);
-}
-#endif
-
- /*
-** Convert the inode protection mode to a permission list.
-*/
-
-#ifdef _WIN32
-static const char *perm2string (unsigned short mode) {
- static char perms[10] = "---------";
- int i;
- for (i=0;i<9;i++) perms[i]='-';
- if (mode & _S_IREAD)
- { perms[0] = 'r'; perms[3] = 'r'; perms[6] = 'r'; }
- if (mode & _S_IWRITE)
- { perms[1] = 'w'; perms[4] = 'w'; perms[7] = 'w'; }
- if (mode & _S_IEXEC)
- { perms[2] = 'x'; perms[5] = 'x'; perms[8] = 'x'; }
- return perms;
-}
-#else
-static const char *perm2string (mode_t mode) {
- static char perms[10] = "---------";
- int i;
- for (i=0;i<9;i++) perms[i]='-';
- if (mode & S_IRUSR) perms[0] = 'r';
- if (mode & S_IWUSR) perms[1] = 'w';
- if (mode & S_IXUSR) perms[2] = 'x';
- if (mode & S_IRGRP) perms[3] = 'r';
- if (mode & S_IWGRP) perms[4] = 'w';
- if (mode & S_IXGRP) perms[5] = 'x';
- if (mode & S_IROTH) perms[6] = 'r';
- if (mode & S_IWOTH) perms[7] = 'w';
- if (mode & S_IXOTH) perms[8] = 'x';
- return perms;
-}
-#endif
-
-/* permssions string */
-static void push_st_perm (lua_State *L, STAT_STRUCT *info) {
- lua_pushstring (L, perm2string (info->st_mode));
-}
-
-typedef void (*_push_function) (lua_State *L, STAT_STRUCT *info);
-
-struct _stat_members {
- const char *name;
- _push_function push;
-};
-
-struct _stat_members members[] = {
- { "mode", push_st_mode },
- { "dev", push_st_dev },
- { "ino", push_st_ino },
- { "nlink", push_st_nlink },
- { "uid", push_st_uid },
- { "gid", push_st_gid },
- { "rdev", push_st_rdev },
- { "access", push_st_atime },
- { "modification", push_st_mtime },
- { "change", push_st_ctime },
- { "size", push_st_size },
- { "permissions", push_st_perm },
-#ifndef _WIN32
- { "blocks", push_st_blocks },
- { "blksize", push_st_blksize },
-#endif
- { NULL, NULL }
-};
-
-/*
-** Get file or symbolic link information
-*/
-static int _file_info_ (lua_State *L, int (*st)(const char*, STAT_STRUCT*)) {
- STAT_STRUCT info;
- const char *file = luaL_checkstring (L, 1);
- int i;
-
- if (st(file, &info)) {
- lua_pushnil(L);
- lua_pushfstring(L, "cannot obtain information from file '%s': %s", file, strerror(errno));
- lua_pushinteger(L, errno);
- return 3;
- }
- if (lua_isstring (L, 2)) {
- const char *member = lua_tostring (L, 2);
- for (i = 0; members[i].name; i++) {
- if (strcmp(members[i].name, member) == 0) {
- /* push member value and return */
- members[i].push (L, &info);
- return 1;
- }
- }
- /* member not found */
- return luaL_error(L, "invalid attribute name '%s'", member);
- }
- /* creates a table if none is given, removes extra arguments */
- lua_settop(L, 2);
- if (!lua_istable (L, 2)) {
- lua_newtable (L);
- }
- /* stores all members in table on top of the stack */
- for (i = 0; members[i].name; i++) {
- lua_pushstring (L, members[i].name);
- members[i].push (L, &info);
- lua_rawset (L, -3);
- }
- return 1;
-}
-
-
-/*
-** Get file information using stat.
-*/
-static int file_info (lua_State *L) {
- return _file_info_ (L, STAT_FUNC);
-}
-
-
-/*
-** Push the symlink target to the top of the stack.
-** Assumes the file name is at position 1 of the stack.
-** Returns 1 if successful (with the target on top of the stack),
-** 0 on failure (with stack unchanged, and errno set).
-*/
-static int push_link_target(lua_State *L) {
-#ifdef _WIN32
- errno = ENOSYS;
- return 0;
-#else
- const char *file = luaL_checkstring(L, 1);
- char *target = NULL;
- int tsize, size = 256; /* size = initial buffer capacity */
- while (1) {
- target = realloc(target, size);
- if (!target) /* failed to allocate */
- return 0;
- tsize = readlink(file, target, size);
- if (tsize < 0) { /* a readlink() error occurred */
- free(target);
- return 0;
- }
- if (tsize < size)
- break;
- /* possibly truncated readlink() result, double size and retry */
- size *= 2;
- }
- target[tsize] = '\0';
- lua_pushlstring(L, target, tsize);
- free(target);
- return 1;
-#endif
-}
-
-/*
-** Get symbolic link information using lstat.
-*/
-static int link_info (lua_State *L) {
- int ret;
- if (lua_isstring (L, 2) && (strcmp(lua_tostring(L, 2), "target") == 0)) {
- int ok = push_link_target(L);
- return ok ? 1 : pusherror(L, "could not obtain link target");
- }
- ret = _file_info_ (L, LSTAT_FUNC);
- if (ret == 1 && lua_type(L, -1) == LUA_TTABLE) {
- int ok = push_link_target(L);
- if (ok) {
- lua_setfield(L, -2, "target");
- }
- }
- return ret;
-}
-
-
-/*
-** Assumes the table is on top of the stack.
-*/
-static void set_info (lua_State *L) {
- lua_pushliteral(L, "Copyright (C) 2003-2017 Kepler Project");
- lua_setfield(L, -2, "_COPYRIGHT");
- lua_pushliteral(L, "LuaFileSystem is a Lua library developed to complement the set of functions related to file systems offered by the standard Lua distribution");
- lua_setfield(L, -2, "_DESCRIPTION");
- lua_pushliteral(L, "LuaFileSystem " LFS_VERSION);
- lua_setfield(L, -2, "_VERSION");
-}
-
-
-static const struct luaL_Reg fslib[] = {
- {"attributes", file_info},
- {"chdir", change_dir},
- {"currentdir", get_dir},
- {"dir", dir_iter_factory},
- {"link", make_link},
- {"lock", file_lock},
- {"mkdir", make_dir},
- {"rmdir", remove_dir},
- {"symlinkattributes", link_info},
- {"setmode", lfs_f_setmode},
- {"touch", file_utime},
- {"unlock", file_unlock},
- {"lock_dir", lfs_lock_dir},
- {NULL, NULL},
-};
-
-LFS_EXPORT int luaopen_lfs (lua_State *L) {
- dir_create_meta (L);
- lock_create_meta (L);
- new_lib (L, fslib);
- lua_pushvalue(L, -1);
- lua_setglobal(L, LFS_LIBNAME);
- set_info (L);
- return 1;
-}
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.def b/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.def
deleted file mode 100644
index 4055ff04b24..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.def
+++ /dev/null
@@ -1,4 +0,0 @@
-LIBRARY lfs.dll
-VERSION 1.7
-EXPORTS
-luaopen_lfs
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.h b/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.h
deleted file mode 100644
index 458756404ed..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/src/lfs.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
-** LuaFileSystem
-** Copyright Kepler Project 2003 - 2017 (http://keplerproject.github.io/luafilesystem)
-*/
-
-/* Define 'chdir' for systems that do not implement it */
-#ifdef NO_CHDIR
- #define chdir(p) (-1)
- #define chdir_error "Function 'chdir' not provided by system"
-#else
- #define chdir_error strerror(errno)
-#endif
-
-#ifdef _WIN32
- #define chdir(p) (_chdir(p))
- #define getcwd(d, s) (_getcwd(d, s))
- #define rmdir(p) (_rmdir(p))
- #define LFS_EXPORT __declspec (dllexport)
- #ifndef fileno
- #define fileno(f) (_fileno(f))
- #endif
-#else
- #define LFS_EXPORT
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-LFS_EXPORT int luaopen_lfs (lua_State *L);
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/tests/test.lua b/Build/source/texk/web2c/luatexdir/luafilesystem/tests/test.lua
deleted file mode 100644
index 591ee25974b..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/tests/test.lua
+++ /dev/null
@@ -1,194 +0,0 @@
-#!/usr/bin/env lua5.1
-
-local tmp = "/tmp"
-local sep = string.match (package.config, "[^\n]+")
-local upper = ".."
-
-local lfs = require"lfs"
-print (lfs._VERSION)
-
-io.write(".")
-io.flush()
-
-function attrdir (path)
- for file in lfs.dir(path) do
- if file ~= "." and file ~= ".." then
- local f = path..sep..file
- print ("\t=> "..f.." <=")
- local attr = lfs.attributes (f)
- assert (type(attr) == "table")
- if attr.mode == "directory" then
- attrdir (f)
- else
- for name, value in pairs(attr) do
- print (name, value)
- end
- end
- end
- end
-end
-
--- Checking changing directories
-local current = assert (lfs.currentdir())
-local reldir = string.gsub (current, "^.*%"..sep.."([^"..sep.."])$", "%1")
-assert (lfs.chdir (upper), "could not change to upper directory")
-assert (lfs.chdir (reldir), "could not change back to current directory")
-assert (lfs.currentdir() == current, "error trying to change directories")
-assert (lfs.chdir ("this couldn't be an actual directory") == nil, "could change to a non-existent directory")
-
-io.write(".")
-io.flush()
-
--- Changing creating and removing directories
-local tmpdir = current..sep.."lfs_tmp_dir"
-local tmpfile = tmpdir..sep.."tmp_file"
--- Test for existence of a previous lfs_tmp_dir
--- that may have resulted from an interrupted test execution and remove it
-if lfs.chdir (tmpdir) then
- assert (lfs.chdir (upper), "could not change to upper directory")
- assert (os.remove (tmpfile), "could not remove file from previous test")
- assert (lfs.rmdir (tmpdir), "could not remove directory from previous test")
-end
-
-io.write(".")
-io.flush()
-
--- tries to create a directory
-assert (lfs.mkdir (tmpdir), "could not make a new directory")
-local attrib, errmsg = lfs.attributes (tmpdir)
-if not attrib then
- error ("could not get attributes of file `"..tmpdir.."':\n"..errmsg)
-end
-local f = io.open(tmpfile, "w")
-f:close()
-
-io.write(".")
-io.flush()
-
--- Change access time
-local testdate = os.time({ year = 2007, day = 10, month = 2, hour=0})
-assert (lfs.touch (tmpfile, testdate))
-local new_att = assert (lfs.attributes (tmpfile))
-assert (new_att.access == testdate, "could not set access time")
-assert (new_att.modification == testdate, "could not set modification time")
-
-io.write(".")
-io.flush()
-
--- Change access and modification time
-local testdate1 = os.time({ year = 2007, day = 10, month = 2, hour=0})
-local testdate2 = os.time({ year = 2007, day = 11, month = 2, hour=0})
-
-assert (lfs.touch (tmpfile, testdate2, testdate1))
-local new_att = assert (lfs.attributes (tmpfile))
-assert (new_att.access == testdate2, "could not set access time")
-assert (new_att.modification == testdate1, "could not set modification time")
-
-io.write(".")
-io.flush()
-
--- Checking link (does not work on Windows)
-if lfs.link (tmpfile, "_a_link_for_test_", true) then
- assert (lfs.attributes"_a_link_for_test_".mode == "file")
- assert (lfs.symlinkattributes"_a_link_for_test_".mode == "link")
- assert (lfs.symlinkattributes"_a_link_for_test_".target == tmpfile)
- assert (lfs.symlinkattributes("_a_link_for_test_", "target") == tmpfile)
- assert (lfs.link (tmpfile, "_a_hard_link_for_test_"))
- assert (lfs.attributes (tmpfile, "nlink") == 2)
- assert (os.remove"_a_link_for_test_")
- assert (os.remove"_a_hard_link_for_test_")
-end
-
-io.write(".")
-io.flush()
-
--- Checking text/binary modes (only has an effect in Windows)
-local f = io.open(tmpfile, "w")
-local result, mode = lfs.setmode(f, "binary")
-assert(result) -- on non-Windows platforms, mode is always returned as "binary"
-result, mode = lfs.setmode(f, "text")
-assert(result and mode == "binary")
-f:close()
-local ok, err = pcall(lfs.setmode, f, "binary")
-assert(not ok, "could setmode on closed file")
-assert(err:find("closed file"), "bad error message for setmode on closed file")
-
-io.write(".")
-io.flush()
-
--- Restore access time to current value
-assert (lfs.touch (tmpfile, attrib.access, attrib.modification))
-new_att = assert (lfs.attributes (tmpfile))
-assert (new_att.access == attrib.access)
-assert (new_att.modification == attrib.modification)
-
-io.write(".")
-io.flush()
-
--- Check consistency of lfs.attributes values
-local attr = lfs.attributes (tmpfile)
-for key, value in pairs(attr) do
- assert (value == lfs.attributes (tmpfile, key),
- "lfs.attributes values not consistent")
-end
-
--- Check that lfs.attributes accepts a table as second argument
-local attr2 = {}
-lfs.attributes(tmpfile, attr2)
-for key, value in pairs(attr2) do
- assert (value == lfs.attributes (tmpfile, key),
- "lfs.attributes values with table argument not consistent")
-end
-
--- Check that extra arguments are ignored
-lfs.attributes(tmpfile, attr2, nil)
-
--- Remove new file and directory
-assert (os.remove (tmpfile), "could not remove new file")
-assert (lfs.rmdir (tmpdir), "could not remove new directory")
-assert (lfs.mkdir (tmpdir..sep.."lfs_tmp_dir") == nil, "could create a directory inside a non-existent one")
-
-io.write(".")
-io.flush()
-
--- Trying to get attributes of a non-existent file
-local attr_ok, err, errno = lfs.attributes("this couldn't be an actual file")
-assert(attr_ok == nil, "could get attributes of a non-existent file")
-assert(type(err) == "string", "failed lfs.attributes did not return an error message")
-assert(type(errno) == "number", "failed lfs.attributes did not return error code")
-assert (type(lfs.attributes (upper)) == "table", "couldn't get attributes of upper directory")
-
-io.write(".")
-io.flush()
-
--- Stressing directory iterator
-count = 0
-for i = 1, 4000 do
- for file in lfs.dir (tmp) do
- count = count + 1
- end
-end
-
-io.write(".")
-io.flush()
-
--- Stressing directory iterator, explicit version
-count = 0
-for i = 1, 4000 do
- local iter, dir = lfs.dir(tmp)
- local file = dir:next()
- while file do
- count = count + 1
- file = dir:next()
- end
- assert(not pcall(dir.next, dir))
-end
-
-io.write(".")
-io.flush()
-
--- directory explicit close
-local iter, dir = lfs.dir(tmp)
-dir:close()
-assert(not pcall(dir.next, dir))
-print"Ok!"
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/lfs.def b/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/lfs.def
deleted file mode 100644
index 55ec688d3c3..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/lfs.def
+++ /dev/null
@@ -1,5 +0,0 @@
-LIBRARY lfs.dll
-DESCRIPTION "LuaFileSystem"
-VERSION 1.2
-EXPORTS
-luaopen_lfs
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem.dsw b/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem.dsw
deleted file mode 100644
index b4bb4b310f6..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem.dsw
+++ /dev/null
@@ -1,33 +0,0 @@
-Microsoft Developer Studio Workspace File, Format Version 6.00
-# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
-
-###############################################################################
-
-Project: "luafilesystem_dll"=.\luafilesystem_dll.dsp - Package Owner=<4>
-
-Package=<5>
-{{{
- begin source code control
- luafilesystem
- ..
- end source code control
-}}}
-
-Package=<4>
-{{{
-}}}
-
-###############################################################################
-
-Global:
-
-Package=<5>
-{{{
-}}}
-
-Package=<3>
-{{{
-}}}
-
-###############################################################################
-
diff --git a/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem_dll.dsp b/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem_dll.dsp
deleted file mode 100644
index efe6c720b6c..00000000000
--- a/Build/source/texk/web2c/luatexdir/luafilesystem/vc6/luafilesystem_dll.dsp
+++ /dev/null
@@ -1,127 +0,0 @@
-# Microsoft Developer Studio Project File - Name="luafilesystem_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=luafilesystem_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 "luafilesystem_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 "luafilesystem_dll.mak" CFG="luafilesystem_dll - Win32 Debug"
-!MESSAGE
-!MESSAGE Possible choices for configuration are:
-!MESSAGE
-!MESSAGE "luafilesystem_dll - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE "luafilesystem_dll - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
-!MESSAGE
-
-# Begin Project
-# PROP AllowPerConfigDependencies 0
-# PROP Scc_ProjName "luafilesystem_dll"
-# PROP Scc_LocalPath ".."
-CPP=cl.exe
-MTL=midl.exe
-RSC=rc.exe
-
-!IF "$(CFG)" == "luafilesystem_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 "luafilesystem_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 "LUAFILESYSTEM_EXPORTS" /YX /FD /c
-# ADD CPP /nologo /MD /W3 /GX /O2 /I "../../external-src/lua50/include" /I "../../compat/src" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAFILESYSTEM_EXPORTS" /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 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/lfs.dll" /libpath:"../../external-src/lua50/lib/dll"
-# Begin Special Build Tool
-SOURCE="$(InputPath)"
-PostBuild_Cmds=cd ../bin/vc6 zip.exe luafilesystem-1.2-win32.zip lfs.dll
-# End Special Build Tool
-
-!ELSEIF "$(CFG)" == "luafilesystem_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 "luafilesystem_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 "LUAFILESYSTEM_EXPORTS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "../../external-src/lua50/include" /I "../../compat/src" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LUAFILESYSTEM_EXPORTS" /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 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/lfsd.dll" /pdbtype:sept /libpath:"../../external-src/lua50/lib/dll"
-
-!ENDIF
-
-# Begin Target
-
-# Name "luafilesystem_dll - Win32 Release"
-# Name "luafilesystem_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\lfs.c
-# End Source File
-# Begin Source File
-
-SOURCE=.\lfs.def
-# 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\lfs.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
-# End Target
-# End Project