summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-10-01 22:00:41 +0000
committerKarl Berry <karl@freefriends.org>2015-10-01 22:00:41 +0000
commit79239bc6a14e7f5723e2027696b349d1f8cc11c9 (patch)
treec0fc4d14c1daff976ee0b83464f29fd733fe1b52 /Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx
parentb0a27fa1b235b8769c32d6a4af90697503bc5f7f (diff)
luatexbase (1oct15)
git-svn-id: svn://tug.org/texlive/trunk@38513 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx')
-rw-r--r--Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx412
1 files changed, 0 insertions, 412 deletions
diff --git a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx b/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx
deleted file mode 100644
index c4bd008a9b6..00000000000
--- a/Master/texmf-dist/source/luatex/luatexbase/luatexbase-loader.dtx
+++ /dev/null
@@ -1,412 +0,0 @@
-% \iffalse meta-comment
-%
-% Copyright 2009-2013 by Élie Roux <elie.roux@telecom-bretagne.eu>
-% Copyright 2010, 2011 by Manuel Pégourié-Gonnard <mpg@elzevir.fr>
-%
-% This work is under the CC0 license.
-%
-% This work consists of the main source file luatexbase-loader.dtx
-% and the derived files
-% luatexbase-loader.sty luatexbase.loader.lua
-% test-loader-plain.tex test-loader-latex.tex
-%
-% Unpacking:
-% tex luatexbase-loader.dtx
-% Documentation:
-% pdflatex luatexbase-loader.dtx
-%
-%<*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
-
-\keepsilent
-\askforoverwritefalse
-
-\let\MetaPrefix\relax
-
-\preamble
-
-See the aforementioned source file(s) for copyright and licensing information.
-
-\endpreamble
-
-\let\MetaPrefix\DoubleperCent
-
-\generate{%
- \usedir{tex/luatex/luatexbase}%
- \file{luatexbase-loader.sty}{\from{luatexbase-loader.dtx}{texpackage}}%
-}
-
-\generate{%
- \usedir{doc/luatex/luatexbase}%
- \file{test-loader-plain.tex}{\from{luatexbase-loader.dtx}{testplain}}%
- \file{test-loader-latex.tex}{\from{luatexbase-loader.dtx}{testlatex}}%
-}
-
-\def\MetaPrefix{-- }
-
-\def\luapostamble{%
- \MetaPrefix^^J%
- \MetaPrefix\space End of File `\outFileName'.%
-}
-
-\def\currentpostamble{\luapostamble}%
-
-\generate{%
- \usedir{tex/luatex/luatexbase}%
- \file{luatexbase.loader.lua}{\from{luatexbase-loader.dtx}{luamodule}}%
- \usedir{doc/luatex/luatexbase}%
- \file{test-loader.lua}{\from{luatexbase-loader.dtx}{testdummy}}%
- \file{test-loader.sub.lua}{\from{luatexbase-loader.dtx}{testdummy}}%
-}
-
-\obeyspaces
-\Msg{************************************************************************}
-\Msg{*}
-\Msg{* To finish the installation you have to move the following}
-\Msg{* files into a directory searched by TeX:}
-\Msg{*}
-\Msg{* luatexbase-loader.sty luatex.loader.lua}
-\Msg{*}
-\Msg{* Happy TeXing!}
-\Msg{*}
-\Msg{************************************************************************}
-
-\endbatchfile
-%</install>
-%<*ignore>
-\fi
-%</ignore>
-%<*driver>
-\documentclass{ltxdoc}
-\input{lltxb-dtxstyle}
-\begin{document}
- \DocInput{luatexbase-loader.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 \~}
-%
-% \pkdate{luatexbase-loader}{v0.6 2013-05-11}
-%
-% \maketitle
-%
-% \begin{abstract}
-% Lua modules are loaded using the |require()| function which, similarly to
-% \tex's |\input|, takes care of locating the file to be loaded. This package
-% adapts the way the files are searched in order to accommodate the TDS as
-% well as usual Lua naming conventions.
-%
-% For higher-level functions related to Lua modules, see
-% \href{file:luatexbase-modutils.pdf}{\pk{luatexbase-modutils}}, which also
-% loads the present package.
-% \end{abstract}
-%
-% \section{Documentation}
-%
-% Starting with \luatex 0.45, |require()| uses Kpathsea for file searching
-% when the library is initialised (which is always the case in \tex mode,
-% unless explicitly disabled by the user). However, it did not respect the
-% Lua convention that |require("foo.bar")| should look for |foo/bar.lua| until
-% version 0.60. \luatex 0.74 ships with Lua 5.2 that has a different loading
-% system.
-%
-% The aim of this package is to have a coherent behaviour between versions of
-% LuaTeX, and to get the loaded file's name printed in the output (\LaTeX
-% style). The first versions did ensure backward compatibilty to \luatex 0.25
-% but as \luatex development is quite fast, this version supports only \luatex
-% 0.45 and higher.
-%
-% More precisely, when asked for |foo.bar| (or |foo.bar.lua|), it first looks
-% for file |foo/bar| using Kpathsea with the format |lua|, and then for
-% |foo.bar|, removing the possible extension.
-%
-% \section{Implementation}
-%
-% \subsection{\tex package}
-%
-% \begin{macrocode}
-%<*texpackage>
-% \end{macrocode}
-%
-% \subsubsection{Preliminaries}
-%
-% Catcode defenses and reload protection.
-%
-% \begin{macrocode}
-\begingroup\catcode61\catcode48\catcode32=10\relax% = and space
- \catcode123 1 % {
- \catcode125 2 % }
- \catcode 35 6 % #
- \toks0\expandafter{\expandafter\endlinechar\the\endlinechar}%
- \edef\x{\endlinechar13}%
- \def\y#1 #2 {%
- \toks0\expandafter{\the\toks0 \catcode#1 \the\catcode#1}%
- \edef\x{\x \catcode#1 #2}}%
- \y 13 5 % carriage return
- \y 61 12 % =
- \y 32 10 % space
- \y 123 1 % {
- \y 125 2 % }
- \y 35 6 % #
- \y 64 11 % @ (letter)
- \y 10 12 % new line ^^J
- \y 34 12 % "
- \y 39 12 % '
- \y 40 12 % (
- \y 41 12 % )
- \y 44 12 % ,
- \y 45 12 % -
- \y 46 12 % .
- \y 47 12 % /
- \y 58 12 % :
- \y 91 12 % [
- \y 93 12 % ]
- \y 94 7 % ^
- \y 95 8 % _
- \y 96 12 % `
- \toks0\expandafter{\the\toks0 \relax\noexpand\endinput}%
- \edef\y#1{\noexpand\expandafter\endgroup%
- \noexpand\ifx#1\relax \edef#1{\the\toks0}\x\relax%
- \noexpand\else \noexpand\expandafter\noexpand\endinput%
- \noexpand\fi}%
-\expandafter\y\csname luatexbase@loader@sty@endinput\endcsname%
-% \end{macrocode}
-%
-% Package declaration.
-%
-% \begin{macrocode}
-\begingroup
- \expandafter\ifx\csname ProvidesPackage\endcsname\relax
- \def\x#1[#2]{\immediate\write16{Package: #1 #2}}
- \else
- \let\x\ProvidesPackage
- \fi
-\expandafter\endgroup
-\x{luatexbase-loader}[2013/05/11 v0.6 Lua module loader for LuaTeX]
-% \end{macrocode}
-%
-% Make sure \luatex is used.
-%
-% \begin{macrocode}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname RequirePackage\endcsname\relax
- \input ifluatex.sty
-\else
- \RequirePackage{ifluatex}
-\fi
-\ifluatex\else
- \begingroup
- \expandafter\ifx\csname PackageError\endcsname\relax
- \def\x#1#2#3{\begingroup \newlinechar10
- \errhelp{#3}\errmessage{Package #1 error: #2}\endgroup}
- \else
- \let\x\PackageError
- \fi
- \expandafter\endgroup
- \x{luatexbase-loader}{LuaTeX is required for this package. Aborting.}{%
- This package can only be used with the LuaTeX engine^^J%
- (command `lualatex' or `luatex').^^J%
- Package loading has been stopped to prevent additional errors.}
- \expandafter\luatexbase@loader@sty@endinput%
-\fi
-% \end{macrocode}
-%
-% \subsubsection{Main content}
-%
-% First load \pk{luatexbase-compat}.
-%
-% \begin{macrocode}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname RequirePackage\endcsname\relax
- \input luatexbase-compat.sty
-\else
- \RequirePackage{luatexbase-compat}
-\fi
-% \end{macrocode}
-%
-% Load the supporting Lua module. This one doesn't follow the usual naming
-% conventions, since it won't be loaded with the usual functions for
-% obvious bootstraping reasons.
-%
-% \begin{macrocode}
-\luatexbase@directlua{%
- local file = "luatexbase.loader.lua"
- local path = assert(kpse.find_file(file, 'lua'),
- "File '"..file.."' not found")
- texio.write_nl("("..path..")")
- dofile(path)}
-% \end{macrocode}
-%
-% That's all, folks!
-%
-% \begin{macrocode}
-\luatexbase@loader@sty@endinput%
-%</texpackage>
-% \end{macrocode}
-%
-% \subsection{Lua module}
-%
-% \begin{macrocode}
-%<*luamodule>
-luatexbase = luatexbase or { }
-local luatexbase = luatexbase
-% \end{macrocode}
-%
-% Just in case it's called from a \TeX Lua script...
-%
-% \begin{macrocode}
-kpse.set_program_name("luatex")
-% \end{macrocode}
-%
-% In \LaTeX, it's traditional to print the included file paths. We don't want
-% to do this for scripts using texlua... Currently there is no perfect check
-% of texlua vs. luatex, so we check for the token table.
-%
-% \begin{macrocode}
-local print_included_path = false
-if token then
- print_included_path = true
-end
-% \end{macrocode}
-%
-% Emulate (approximatively) kpse's lua format search. More precisely,
-% combine the search path of |texmfscripts| and |tex| in order to
-% approximate |LUAINPUTS|. But we need to handle suffixes ourselves.
-%
-% |lua_suffixes| is taken verbatim from Kpathsea's source
-% (\file{tex-file.c}, constant |LUA_SUFFIXES|).\footnote{Last checked 2013-04-12.}
-%
-% \begin{macrocode}
-local lua_suffixes = {
- ".luc", ".luctex", ".texluc", ".lua", ".luatex", ".texlua",
-}
-% \end{macrocode}
-%
-% Auxiliary function for suffixes: says if |suffix| is a suffix of |name|.
-%
-% \begin{macrocode}
-local function ends_with(suffix, name)
- return name:sub(-suffix:len()) == suffix
-end
-% \end{macrocode}
-%
-% Auxiliary function for suffixes: returns the basename of a file if it end
-% by one of the suffixes.
-%
-% \begin{macrocode}
-local function basename(name)
- for _, suffix in ipairs(lua_suffixes) do
- if ends_with(suffix, name) then
- return name:sub(1, -(suffix:len()+1))
- end
- end
- return name
-end
-% \end{macrocode}
-%
-% The main function, emulating the behaviour of |packages.searchers[2]|,
-% with a small improvement that eliminates the possible extension.
-%
-% \begin{macrocode}
-local function find_module_file(mod)
- local compat = basename(mod):gsub('%.', '/')
- return kpse.find_file(compat, 'lua') or kpse.find_file(mod, 'lua')
-end
-% \end{macrocode}
-%
-% Combined searcher, using primarily the new kpse searcher, and the
-% original as a fall-back. Starting from \luatex 0.75, Lua 5.2 is used. Among
-% the changes, |package.loaders| is renamed as |package.searchers|.
-%
-% The main improvement is thus the printing of the filename in the output.
-%
-% \begin{macrocode}
-local package_loader_two
-if not package.searchers then
- package.searchers = package.loaders
-end
-package_loader_two = package.searchers[2]
-local function load_module(mod)
- local file = find_module_file(mod)
- if not file then
- local msg = "\n\t[luatexbase.loader] Search failed"
- local ret = package_loader_two(mod)
- if type(ret) == 'string' then
- return msg..ret
- elseif type(ret) == 'nil' then
- return msg
- else
- return ret
- end
- end
- local loader, error = loadfile(file)
- if not loader then
- return "\n\t[luatexbase.loader] Loading error:\n\t"..error
- end
- if print_included_path then
- texio.write_nl("("..file..")")
- end
- return loader
-end
-% \end{macrocode}
-%
-% Finally install this combined loader as loader 2.
-%
-% \begin{macrocode}
-package.searchers[2] = load_module
-%</luamodule>
-% \end{macrocode}
-%
-% \section{Test files}
-%
-% A dummy lua file for tests.
-%
-% \begin{macrocode}
-%<*testdummy>
-return true
-%</testdummy>
-% \end{macrocode}
-%
-% Check that the package loads properly, under both LaTeX and Plain TeX,
-% and load a dummy module in the current diretory.
-%
-% \begin{macrocode}
-%<testplain>\input luatexbase-loader.sty
-%<testlatex>\RequirePackage{luatexbase-loader}
-%<*testplain,testlatex>
-\catcode64 11
-\luatexbase@directlua{require "test-loader"}
-\luatexbase@directlua{require "test-loader.sub"}
-%</testplain,testlatex>
-%<testplain>\bye
-%<testlatex>\stop
-% \end{macrocode}
-%
-% \Finale
-\endinput