% \iffalse meta-comment
%
% Copyright (C) 2009 by PRAGMA ADE / ConTeXt Development Team
%
% See ConTeXt's mreadme.pdf for the license.
%
% This work consists of the main source file lualibs.dtx
% and the derived file lualibs.lua.
%
% Unpacking:
%    tex lualibs.dtx
%
% Documentation:
%    pdflatex lualibs.dtx
%
%    The class ltxdoc loads the configuration file ltxdoc.cfg
%    if available. Here you can specify further options, e.g.
%    use A4 as paper format:
%       \PassOptionsToClass{a4paper}{article}
%
%
%
%<*ignore>
\begingroup
  \def\x{LaTeX2e}%
\expandafter\endgroup
\ifcase 0\ifx\install y1\fi\expandafter
         \ifx\csname processbatchFile\endcsname\relax\else1\fi
         \ifx\fmtname\x\else 1\fi\relax
\else\csname fi\endcsname
%</ignore>
%<*install>
\input docstrip.tex
\Msg{************************************************************************}
\Msg{* Installation}
\Msg{* Package: lualibs 2012/10/19 v0.97 Lua additional functions.}
\Msg{************************************************************************}

\keepsilent
\askforoverwritefalse

\let\MetaPrefix\relax

\preamble
This is a generated file.

Copyright (C) 2009 by PRAGMA ADE / ConTeXt Development Team

See ConTeXt's mreadme.pdf for the license.

This work consists of the main source file lualibs.dtx
and the derived file lualibs.lua.

\endpreamble

% The following hacks are to generate a lua file with lua comments starting by
% -- instead of %%

\def\MetaPrefix{-- }

\def\luapostamble{%
  \MetaPrefix^^J%
  \MetaPrefix\space End of File `\outFileName'.%
}

\def\currentpostamble{\luapostamble}%

\generate{%
  \usedir{tex/luatex/lualibs}%
  \file{lualibs.lua}{\from{lualibs.dtx}{lua}}%
}

\obeyspaces
\Msg{************************************************************************}
\Msg{*}
\Msg{* To finish the installation you have to move the following}
\Msg{* files into a directory searched by TeX:}
\Msg{*}
\Msg{*     lualibs.lua}
\Msg{*}
\Msg{* Happy TeXing!}
\Msg{*}
\Msg{************************************************************************}

\endbatchfile
%</install>
%<*ignore>
\fi
%</ignore>
%<*driver>
\NeedsTeXFormat{LaTeX2e}
\ProvidesFile{lualibs.drv}
  [2012/10/19 v0.97 Lua additional functions.]
\documentclass{ltxdoc}
\EnableCrossrefs
\CodelineIndex
\begin{document}
  \DocInput{lualibs.dtx}%
\end{document}
%</driver>
% \fi
% \CheckSum{0}
%
% \CharacterTable
%  {Upper-case    \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
%   Lower-case    \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
%   Digits        \0\1\2\3\4\5\6\7\8\9
%   Exclamation   \!     Double quote  \"     Hash (number) \#
%   Dollar        \$     Percent       \%     Ampersand     \&
%   Acute accent  \'     Left paren    \(     Right paren   \)
%   Asterisk      \*     Plus          \+     Comma         \,
%   Minus         \-     Point         \.     Solidus       \/
%   Colon         \:     Semicolon     \;     Less than     \<
%   Equals        \=     Greater than  \>     Question mark \?
%   Commercial at \@     Left bracket  \[     Backslash     \\
%   Right bracket \]     Circumflex    \^     Underscore    \_
%   Grave accent  \`     Left brace    \{     Vertical bar  \|
%   Right brace   \}     Tilde         \~}
%
% \GetFileInfo{lualibs.drv}
%
% \title{The \textsf{lualibs} package}
% \date{2012/10/19 v0.97}
% \author{Elie Roux \\ \texttt{elie.roux@telecom-bretagne.eu}}
%
% \maketitle
%
% \begin{abstract}
% Additional lua functions taken from the libs of Con\TeX t. For an
% introduction on this package (among others), please refer to the document
% \texttt{luatex-reference.pdf}.
% \end{abstract}
%
% \section{Overview}
%
% Lua is a very minimal language, and it does not have a minimal standard
% library. The aim of this package is to provide an extended standard library,
% to be used by various Lua\TeX\ packages. The code is specific to Lua\TeX\
% and depends on Lua\TeX\ functions and modules not available in regular lua.
%
% \noindent The code is derived from Con\TeX t libraries.
%
% \section{Usage}
%
% You can either load the \texttt{lualibs} module, which will load all other
% modules, provided by this package: |require("lualibs")|, or explicitly
% load the modules you need, e.g.: |require("lualibs-table")|, please note that
% some modules depend on others.
%
% \noindent If your code is running under \textsf{texlua}, you will need to
% initialize \textsf{kpse} library so that |require()| can find files under
% TEXMF tree: |kpse.set_program_name("luatex")|.
%
% \section{Files}
%
% The \textsf{lualibs} bundle contains files from two Con\TeX t Lua
% library categories: The generic auxiliary functions (original file prefix:
% |l-|) together form something close to a standard libary. Most of these are
% extensions of an existing namespace, like for instance |l-table.lua| which
% adds full-fledged serialization capabilities to the Lua table library.
% They were imported under the \textsf{lualibs}-prefix.
% (For a list see table~\ref{tab:extensions}.)
%
% \begin{table}[h]
%  \centering
%  \caption{Extensions of the Lua standard library.}
%  \begin{tabular}{l l l}
%   \textsf{lualibs} name & Con\TeX t name & content                        \\
%   \hline
%   lualibs-lua.lua       & l-lua.lua      & compatibility, library paths   \\
%   lualibs-lpeg.lua      & l-lpeg.lua     & patterns                       \\
%   lualibs-function.lua  & l-function.lua & empty except for dummy         \\
%   lualibs-string.lua    & l-string.lua   & string manipulation            \\
%   lualibs-table.lua     & l-table.lua    & serialization, conversion      \\
%   lualibs-boolean.lua   & l-boolean.lua  & boolean converter              \\
%   lualibs-number.lua    & l-number.lua   & bit operations                 \\
%   lualibs-math.lua      & l-math.lua     & math functions                 \\
%   lualibs-io.lua        & l-io.lua       & reading and writing files      \\
%   lualibs-os.lua        & l-os.lua       & platform specific code         \\
%   lualibs-file.lua      & l-file.lua     & filesystem operations          \\
%   lualibs-md5.lua       & l-md5.lua      & checksum functions             \\
%   lualibs-dir.lua       & l-dir.lua      & directory handling             \\
%   lualibs-unicode.lua   & l-unicode.lua  & utf and unicode                \\
%   lualibs-url.lua       & l-url.lua      & url handling                   \\
%   lualibs-set.lua       & l-set.lua      & sets                           \\
%  \end{tabular}
%  \label{tab:extensions}
% \end{table}
%
% The second category comprises a selection of files mostly from the
% utilities namespace (|util-|; cf. table~\ref{tab:utilities}).
% Their purpose is more specific and at times quite low-level.
%
% \begin{table}[h]
%  \centering
%  \caption{Utility functions.}
%  \begin{tabular}{l l l}
%   \textsf{lualibs} name & Con\TeX t name & content                     \\
%   \hline
%   lualibs-util-lua.lua  & util-lua.lua   & operations on bytecode      \\
%   lualibs-util-sto.lua  & util-sto.lua   & table allocation            \\
%   lualibs-util-mrg.lua  & util-mrg.lua   & merging lua sources         \\
%   lualibs-util-dim.lua  & util-dim.lua   & converters for dimensions   \\
%   lualibs-util-str.lua  & util-str.lua   & extra string functions      \\
%   lualibs-util-tab.lua  & util-tab.lua   & extra table functions       \\
%   lualibs-util-jsn.lua  & util-jsn.lua   & conversion to and from json \\
%  \end{tabular}
%  \label{tab:utilities}
% \end{table}
%
% \pagebreak
% \section{\texttt{lualibs.lua}}
%
% \iffalse
%<*lua>
% \fi
%
%    \begin{macrocode}
module('lualibs', package.seeall)

local lualibs_module = {
    name          = "lualibs",
    version       = 0.97,
    date          = "2012/10/19",
    description   = "Lua additional functions.",
    author        = "Hans Hagen, PRAGMA-ADE, Hasselt NL & Elie Roux",
    copyright     = "PRAGMA ADE / ConTeXt Development Team",
    license       = "See ConTeXt's mreadme.pdf for the license",
}

if luatexbase and luatexbase.provides_module then
    luatexbase.provides_module(lualibs_module)
end
%    \end{macrocode}
%
% Load the modules.
%
%    \begin{macrocode}
require("lualibs-lua")
require("lualibs-lpeg")
require("lualibs-function")
require("lualibs-string")
require("lualibs-table")
require("lualibs-boolean")
require("lualibs-number")
require("lualibs-math")
require("lualibs-io")
require("lualibs-os")
require("lualibs-file")
require("lualibs-md5")
require("lualibs-dir")
require("lualibs-unicode")
require("lualibs-url")
require("lualibs-set")
require("lualibs-util-str")
--[[everything below apparently not required for the fontloader]]
require("lualibs-util-tab")
require("lualibs-util-sto")
require("lualibs-util-dim")
require("lualibs-util-jsn")
--require("lualibs-util-mrg")-- not required
require("lualibs-util-lua")
%    \end{macrocode}
%
% \iffalse
%</lua>
% \fi
% \Finale
\endinput