summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2015-09-14 21:54:24 +0000
committerKarl Berry <karl@freefriends.org>2015-09-14 21:54:24 +0000
commitce8261713a3c6542d6509919d8dc0f75329432ad (patch)
treed0bfeba8c7f385fde614fd7f97497ede040a2bc5 /Master
parent06ca0b68a1199a658979f91eec6aec65bca22075 (diff)
l3build (14sep15)
git-svn-id: svn://tug.org/texlive/trunk@38376 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/doc/latex/l3build/README.md66
-rw-r--r--Master/texmf-dist/doc/latex/l3build/l3build.pdfbin593855 -> 595373 bytes
-rw-r--r--Master/texmf-dist/source/latex/l3build/l3build.dtx52
-rw-r--r--Master/texmf-dist/tex/latex/l3build/l3build.lua185
4 files changed, 232 insertions, 71 deletions
diff --git a/Master/texmf-dist/doc/latex/l3build/README.md b/Master/texmf-dist/doc/latex/l3build/README.md
index 87b8cbc8759..d39bf486108 100644
--- a/Master/texmf-dist/doc/latex/l3build/README.md
+++ b/Master/texmf-dist/doc/latex/l3build/README.md
@@ -1,26 +1,80 @@
l3build: a testing and building system for LaTeX3
=================================================
+Release 2015/09/14 (r6007)
+
+Overview
+--------
+
The `l3build` module is designed to support the development of
high-quality LaTeX code by providing:
- A unit testing system
- Automated typesetting of code sources
- A reliable packaging system for CTAN releases
-
+
The bundle consists of a Lua script to run the tasks and a
`.tex` file which provides the testing environment. These were
originally developed for supporting LaTeX3 development but
are designed such that they can be readily used by others. Full
documentation is provided.
+Discussion
+----------
+
+Discussion concerning the approach, suggestions for improvements,
+changes, additions, _etc._ should be addressed to the list
+[LaTeX-L](http://news.gmane.org/group/gmane.comp.tex.latex.latex3).
+
+You can subscribe to this list by sending mail to
+
+ listserv@urz.uni-heidelberg.de
+
+with the body containing
+
+ subscribe LATEX-L <Your-First-Name> <Your-Second-Name>
+
Issues
------
-The issue tracker for LaTeX3 bugs is currently located at
+The issue tracker for LaTeX3 is currently located at
+
+ https://github.com/latex3/latex3/issues
+
+Please report specific issues with LaTeX3 code there; more general
+discussion should be directed to the [LaTeX-L list](#Discussion).
+
+The LaTeX3 Project
+------------------
+
+Development of LaTeX3 is carried out by
+[The LaTeX3 Project](http://www.latex-project.org/latex3.html). Currently,
+the team members are
+
+ * Johannes Braams
+ * David Carlisle
+ * Robin Fairbairns
+ * Morten Høgholm
+ * Bruno Le Floch
+ * Thomas Lotze
+ * Frank Mittelbach
+ * Will Robertson
+ * Chris Rowley
+ * Rainer Schöpf
+ * Joseph Wright
+
+Former members of The LaTeX3 Project team were
+
+ * Michael Downes
+ * Denys Duchier
+ * Alan Jeffrey
+ * Martin Schröder
- https://github.com/latex3/latex3/issues
+The development team can be contacted
+by e-mail: <latex-team@latex-project.org>; for general LaTeX3 discussion
+the [LaTeX-L list](#Discussion) should be used.
-Please report specific issues with LaTeX3 code there.
+-----
---- Copyright 2014
- The LaTeX3 Project. All rights reserved ---
+<p>Copyright (C) 2014,2015 The LaTeX3 Project <br />
+<a href="http://latex-project.org/">http://latex-project.org/</a> <br />
+All rights reserved.</p>
diff --git a/Master/texmf-dist/doc/latex/l3build/l3build.pdf b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
index 97f6fc3758a..a7ba01b7084 100644
--- a/Master/texmf-dist/doc/latex/l3build/l3build.pdf
+++ b/Master/texmf-dist/doc/latex/l3build/l3build.pdf
Binary files differ
diff --git a/Master/texmf-dist/source/latex/l3build/l3build.dtx b/Master/texmf-dist/source/latex/l3build/l3build.dtx
index 8ab332e83dc..f94bcdec5ba 100644
--- a/Master/texmf-dist/source/latex/l3build/l3build.dtx
+++ b/Master/texmf-dist/source/latex/l3build/l3build.dtx
@@ -39,8 +39,8 @@
\RequirePackage{expl3}
\def\ExplFileName{l3build}
\def\ExplFileDescription{L3 Regression test suite}
-\def\ExplFileDate{2015/09/05}
-\def\ExplFileVersion{5925}
+\def\ExplFileDate{2015/09/14}
+\def\ExplFileVersion{6007}
\documentclass[full]{l3doc}
\renewcommand\partname{Part}
\usepackage{multicol,needspace}
@@ -106,7 +106,7 @@
\luavarset{installfiles} {\{"*.sty"\}} {Files to install to the \TeX{} tree and similar tasks.}
\luavarset{makeindexfiles} {\{"*.ist"\}}{MakeIndex files to be included in a TDS-style zip}
\luavarset{sourcefiles} {\{"*.dtx", "*.ins"\}}{Files to copy for unpacking.}
-\luavarset{textfiles} {\{"*.md", "*.txt"\}}{Plain text files to send to CTAN as-is.}
+\luavarset{textfiles} {\{"*.md", "*.txt"\}}{Plain text files to send to CTAN as-is.}
\luavarset{typesetfiles} {\{"*.dtx"\}} {Files to typeset for documentation.}
\luavarset{typesetsuppfiles}{\{~\}} {Files needed to support typesetting when \enquote{sandboxed}.}
\luavarset{unpackfiles} {\{"*.ins"\}} {Files to run to perform unpacking.}
@@ -150,6 +150,7 @@
\luavarset{makeindexexe} {"makeindex"}{MakeIndex executable}
\luavarset{makeindexopts}{""} {MakeIndex options}
\luavarseparator
+\luavarset{asciiengines}{\{"pdftex"\}}{Engines which should log as sure ASCII}
\luavarset{checkruns} {1} {How many times to run a check file before comparing the log.}
\luavarset{packtdszip} {false} {Build a TDS-style zip file for CTAN?}
\luavarset{scriptname} {"build.lua"} {Name of script used in dependencies.}
@@ -271,7 +272,7 @@
% yyy.ins zoo.ins
% \end{Verbatim}
% All modules within a bundle must use the same build script name.
-%
+%
% In a small number of cases, the name used by CTAN for a module or bundle is
% different from that used in the installation tree. For example, the \LaTeXe{}
% kernel is called \pkg{latex-base} by CTAN but is located inside
@@ -307,7 +308,7 @@
% \item save \meta{name(s)}
% \end{itemize}
% These commands are described below.
-%
+%
% As well as these commands, the system recognises the options
% \begin{itemize}
% \item \texttt{--engine} (\texttt{-e}) Sets the engine to use for
@@ -324,6 +325,15 @@
% If changes to the package or the typesetting environment have affected the results, the check for that file fails.
% A |diff| of the expected to actual output should then be inspected to determine the cause of the error; it is located in the \var{testdir} directory (default \luavar{testdir}).
%
+% On Windows, the |diff| program is not available and so |fc| is used instead
+% (generating an |.fc| file). Setting the environmental variables |diffexe|
+% and |diffext| can be used to adjust the choice of comparison made: the standard
+% values are
+% \begin{itemize}
+% \item[Windows] |diffext = fc|, |diffexe = fc /n|
+% \item[*nix] |diffext = diff|, |diffexe = diff -c --strip-trailing-cr|
+% \end{itemize}
+%
% The following files are moved into the \enquote{sandbox} for the |check| process:
% \begin{itemize}
% \item all \var{installfiles} after unpacking;
@@ -341,7 +351,7 @@
% More detail on this in the documentation on |save|.
% Options passed to the binary are defined in the variable \var{checkopts}.
%
-% By default, |texmf| trees are searched for input files when checking. This can be disabled by setting \var{checksearch} to |false|: isolation provides confidence that the tests cannot accidentally be running with incorrect files installed in the main distribution or |hometexmf|.
+% By default, |texmf| trees are searched for input files when checking. This can be disabled by setting \var{checksearch} to |false|: isolation provides confidence that the tests cannot accidentally be running with incorrect files installed in the main distribution or |hometexmf|.
% \end{buildcmd}
%
%
@@ -401,7 +411,7 @@
% \begin{itemize}
% \item all files matched by \var{demofiles},
% \item all files matched by \var{docfiles},
-% \item all files matched by \var{typesetfiles} with their extension replaced with |.pdf|,
+% \item all files matched by \var{typesetfiles} with their extension replaced with |.pdf|,
% \item all files matched by \var{textfiles},
% \item all files matched by \var{bibfiles}.
% \end{itemize}
@@ -411,7 +421,7 @@
% Files that should always be excluded from the archive are matched against the \var{excludefiles} variable; by default this is \luavar{excludefiles}, which match Emacs' autosave files.
%
% Binary files should be specified with the \var{binaryfiles} variable (default \luavar{binaryfiles}); these are added to the zip archive without normalising line endings (text files are automatically converted to Unix-style line endings).
-%
+%
% To create the archive, by default the binary \var{zipexe} is used (\luavar{zipexe}) with options \var{zipopts} (|-v -r -X|). The intermediate build directories \var{ctandir} and \var{tdsdir} are used to construct the archive.
% \end{buildcmd}
%
@@ -623,14 +633,14 @@
% years due to a \TeX{} bug).
% \item Conversion of \texttt{on line \meta{number}} to \texttt{on line ...}
% to allow flexibility in changes to test files.
-% \item
+% \item
% \end{itemize}
-%
+%
% \LuaTeX{} makes several additional changes to the log file. As normalising
% these may not be desirable in all cases, they are handled separately.
% When creating \LuaTeX{}-specific test files (either with \LuaTeX{} as
-% the standard engine or saving a \LuaTeX{}-specific |.tlg| file) no futher
-% normalisation is undertaken. On the other hand, for cross-engine comparision
+% the standard engine or saving a \LuaTeX{}-specific |.tlg| file) no further
+% normalisation is undertaken. On the other hand, for cross-engine comparison
% the following normalisation is applied:
% \begin{itemize}
% \item Removal of additional (unused) |\discretionary| points.
@@ -645,6 +655,16 @@
% \item Conversion of low chars ($1$ to $31$) to |^^| notation.
% \end{itemize}
%
+% When making comparisons between 8-bit and Unicode engines it is useful to
+% format the top half of the 8-bit range such that it appears in the log as
+% |^^|\texttt{\meta{char}} (the exact nature of the 8-bit output is otherwise
+% dependent on the active code page). This may be controlled using the
+% |asciiengines| option. Any engines named here will use a |.tcx| file to
+% produce only ASCII chars in the log output, whilst for other engines
+% normalisation is carried out from UTF-8 to ASCII. If the option is set to
+% an empty table the latter process is skipped: suitable for cases where only
+% Unicode engines are in use.
+%
% \section{Writing test files}
% \label{sec:writing-tests}
%
@@ -678,7 +698,7 @@
% (See the \var{checkruns} variable for how these tests would be test up.)
%
% \subsection{Commands to help write tests}
-%
+%
% A simple command \cs{CHECKCOMMAND}\cs{\meta{macro}} is provided to check whether a particular \cs{\meta{macro}} is defined, undefined, or equivalent to \cs{relax}.
% This is useful to flag either that internal macros are remaining local to their definitions, or that defined commands definitely are defined, or even as a reminder that commands you intend to define in a future package need to be tested once they appear.
%
@@ -924,7 +944,7 @@
% For example, Figure~\ref{fig:PDF} shows a simple script which might
% apply to a case where multiple \BibTeX{} runs are needed (perhaps where
% citations can appear within other references).
-%
+%
% \begin{figure}[!b]
% \begin{lstlisting}[frame=single,language={[5.2]Lua},gobble = 6]
% #!/usr/bin/env texlua
@@ -944,7 +964,7 @@
% bibtex (name) +
% tex (file) +
% tex (file)
-% )
+% )
% end
% return errorlevel
% end
@@ -994,7 +1014,7 @@
\showboxdepth=\maxdimen
% \end{macrocode}
%
-% The |\showoutput| command of \LaTeX{} calls |\loggingoutput| which in
+% The |\showoutput| command of \LaTeX{} calls |\loggingoutput| which in
% turn calls |\errorstopmode| but we want to continue running without
% any stops.
% \begin{macrocode}
diff --git a/Master/texmf-dist/tex/latex/l3build/l3build.lua b/Master/texmf-dist/tex/latex/l3build/l3build.lua
index 62728f04072..e8fffc16c43 100644
--- a/Master/texmf-dist/tex/latex/l3build/l3build.lua
+++ b/Master/texmf-dist/tex/latex/l3build/l3build.lua
@@ -17,8 +17,8 @@
--]]
-- Version information: should be identical to that in l3build.dtx
-release_date = "2015/09/06"
-release_ver = "5925"
+release_date = "2015/09/14"
+release_ver = "6007"
-- "module" is a deprecated function in Lua 5.2: as we want the name
-- for other purposes, and it should eventually be 'free', simply
@@ -146,6 +146,7 @@ makeindexexe = makeindexexe or "makeindex"
makeindexopts = makeindexopts or ""
-- Other required settings
+asciiengines = asciiengines or {"pdftex"}
checkruns = checkruns or 1
packtdszip = packtdszip or false -- Not actually needed but clearer
scriptname = scriptname or "build.lua" -- Script used in each directory
@@ -373,9 +374,10 @@ end
-- both Windows and Unix cases: more complex situations are handled inside
-- the support functions
if os.type == "windows" then
+ os_ascii = "@echo."
os_concat = "&"
- os_diffext = ".fc"
- os_diffexe = "fc /n"
+ os_diffext = os.getenv("diffext") or ".fc"
+ os_diffexe = os.getenv("diffexe") or "fc /n"
os_grepexe = "findstr /r"
os_newline = "\r\n"
os_null = "nul"
@@ -384,9 +386,10 @@ if os.type == "windows" then
os_windows = true
os_yes = "for /l %I in (1,1,200) do @echo y"
else
+ os_ascii = "echo \"\""
os_concat = ";"
- os_diffext = ".diff"
- os_diffexe = "diff -c --strip-trailing-cr"
+ os_diffext = os.getenv("diffext") or ".diff"
+ os_diffexe = os.getenv("diffexe") or "diff -c --strip-trailing-cr"
os_grepexe = "grep"
os_newline = "\n"
os_null = "/dev/null"
@@ -491,13 +494,13 @@ function relpath(target, source)
local resultdir = ""
local trimpattern = "^[^/]*/"
-- Trim off identical leading directories
- while
+ while
(string.match(target, trimpattern) or "X") ==
(string.match(target, trimpattern) or "Y") do
target = string.gsub(target, trimpattern, "")
source = string.gsub(source, trimpattern, "")
end
- -- Go up from the source
+ -- Go up from the source
for i = 0, select(2, string.gsub(target, "/", "")) do
resultdir = resultdir .. "../"
end
@@ -598,6 +601,7 @@ function checkinit()
for _,i in ipairs(checksuppfiles) do
cp(i, supportdir, testdir)
end
+ os.execute(os_ascii .. ">" .. testdir .. "/ascii.tcx")
end
-- Copy files to the main CTAN release directory
@@ -721,9 +725,9 @@ function formatlog(logfile, newfile, engine)
line = string.gsub(line, "%(.*/([%w-]+%.[%w-]+)%s*$", "(../%1")
end
-- Zap map loading of map
- line = string.gsub(line, "%{[%w/%-]*/pdftex%.map%}", "")
+ line = string.gsub(line, "%{%w?:?[%w/%-]*/pdftex%.map%}", "")
-- Merge all of .fd data into one line so will be removed later
- if string.match(line, "^%([%.%/%w]+%.fd[^%)]*$") then
+ if string.match(line, "^ *%([%.%/%w]+%.fd[^%)]*$") then
lastline = (lastline or "") .. line
return ""
end
@@ -736,23 +740,29 @@ function formatlog(logfile, newfile, engine)
-- Zap "on line <num>" and replace with "on line ..."
line = string.gsub(line, "on line %d*", "on line ...")
-- Tidy up to ^^ notation
- for i = 1, 31, 1 do
+ for i = 0, 31 do
line = string.gsub(line, string.char(i), "^^" .. string.char(64 + i))
end
-- Zap line numbers from \show, \showbox, \box_show and the like
-- Two stages as line wrapping alters some of them and restore the break
line = string.gsub(line, "^l%.%d+ ", "l. ...")
- line = string.gsub(line, "%.%.%.l%.%d+ ( *)%}$", "...\nl. ...%1}")
+ line = string.gsub(
+ line, "%.%.%.l%.%d+ ( *)%}$", "..." .. os_newline .. "l. ...%1}"
+ )
-- Remove spaces at the start of lines: deals with the fact that LuaTeX
-- uses a different number to the other engines
line = string.gsub(line, "^%s+", "")
-- Remove 'normal' direction information on boxes with (u)pTeX
- line = string.gsub(line, ", yoko direction", "")
+ line = string.gsub(line, ",? yoko direction,?", "")
+ -- A tidy-up to keep LuaTeX and other engines in sync
+ local utf8_char = unicode.utf8.char
+ line = string.gsub(line, utf8_char(127), "^^?")
-- Unicode engines display chars in the upper half of the 8-bit range:
- -- tidy up to match pdfTeX
- local utf8 = unicode.utf8
- for i = 128, 255, 1 do
- line = string.gsub(line, utf8.char(i), "^^" .. string.format("%02x", i))
+ -- tidy up to match pdfTeX if an ASCII engine is in use
+ if next(asciiengines) then
+ for i = 128, 255 do
+ line = string.gsub(line, utf8_char(i), "^^" .. string.format("%02x", i))
+ end
end
return line
end
@@ -791,14 +801,16 @@ end
-- Additional normalization for LuaTeX
function formatlualog(logfile, newfile)
local function normalize(line, lastline, dropping)
- local line = line
- -- Find discretionary lines skip: may get re-added
- if string.match(line, "^%.+\\discretionary$") then
- return "", line, false
+ -- Find \discretionary or \whatsit lines:
+ -- These may come back later
+ if string.match(line, "^%.+\\discretionary$") or
+ string.match(line, "^%.+\\whatsit$") then
+ return "", line
end
- -- Find whatsit lines skip: may get re-added
- if string.match(line, "^%.+\\whatsit$") then
- return "", line, false
+ -- For \mathon, we always need this line but the next
+ -- may be affected
+ if string.match(line, "^%.+\\mathon$") then
+ return line, line
end
-- Remove 'display' at end of display math boxes:
-- LuaTeX omits this as it includes direction in all cases
@@ -807,50 +819,114 @@ function formatlualog(logfile, newfile)
-- any bidi/vertical stuff will still show
line = string.gsub(line, ", direction TLT", "")
-- Find glue setting and round out the last place
- line = string.gsub(
- line,
- "glue set (%-? ?)%d+.%d+fil$",
- "glue set %1" .. string.format(
- "%.4f", string.match(line, "glue set %-? ?(%d+.%d+)fil$") or 0
- )
- .. "fil"
+ local function round_digits(l, m)
+ return string.gsub(
+ l,
+ m .. " (%-?)%d+%.%d+",
+ m .. " %1"
+ .. string.format(
+ "%.3f",
+ string.match(line, m .. " %-?(%d+%.%d+)") or 0
+ )
)
+ end
+ if string.match(line, "glue set %-?%d+%.%d+") then
+ line = round_digits(line, "glue set")
+ end
+ if string.match(
+ line, "glue %-?%d+%.%d+ plus %-?%d+%.%d+ minus %-?%d+%.%d+$"
+ )
+ then
+ line = round_digits(line, "glue")
+ line = round_digits(line, "plus")
+ line = round_digits(line, "minus")
+ end
+ -- LuaTeX writes ^^M as a new line, which we loose
+ line = string.gsub(line, "%^%^M", "")
-- Remove U+ notation in the "Missing character" message
line = string.gsub(
line,
"Missing character: There is no (%^%^..) %(U%+(....)%)",
"Missing character: There is no %1"
)
+ -- A function to handle the box prefix part
+ local function boxprefix(s)
+ return string.gsub(string.match(s, "^(%.+)"), "%.", "%%.")
+ end
-- Where the last line was a discretionary, looks for the
-- info one level in about what it represents
if string.match(lastline, "^%.+\\discretionary$") then
- prefix = string.gsub(string.match(lastline, "^(%.+)"), "%.", "%%.")
+ local prefix = boxprefix(lastline)
if string.match(line, prefix .. "%.") or
string.match(line, prefix .. "%|") then
return "", lastline, true
else
if dropping then
-- End of a \discretionary block
- return line, "", false
+ return line, ""
else
-- A normal (TeX90) discretionary:
-- add with the line break reintroduced
- return lastline .. "\n" .. line, ""
+ return lastline .. os_newline .. line, ""
end
end
end
+ -- Look for another form of \discretionary, replacing a "-"
+ pattern = "^%.+\\discretionary replacing *$"
+ if string.match(line, pattern) then
+ return "", line
+ else
+ if string.match(lastline, pattern) then
+ local prefix = boxprefix(lastline)
+ if string.match(line, prefix .. "%.\\kern") then
+ return string.gsub(line, "^%.", ""), lastline, true
+ elseif dropping then
+ return "", ""
+ else
+ return lastline .. os_newline .. line, ""
+ end
+ end
+ end
+ -- For \mathon, if the current line is an empty \hbox then
+ -- drop it
+ if string.match(lastline, "^%.+\\mathon$") then
+ local prefix = boxprefix(lastline)
+ if string.match(line, prefix .. "\\hbox%(0%.0%+0%.0%)x0%.0$") then
+ return "", ""
+ end
+ end
-- Much the same idea when the last line was a whatsit,
-- but things are simpler in this case
if string.match(lastline, "^%.+\\whatsit$") then
- prefix = string.gsub(string.match(lastline, "^(%.+)"), "%.", "%%.")
+ local prefix = boxprefix(lastline)
if string.match(line, prefix .. "%.") then
return "", lastline, true
else
-- End of a \whatsit block
- return line, "", false
+ return line, ""
+ end
+ end
+ -- Wrap some cases that can be picked out
+ -- In some places LuaTeX does use max_print_line, then we
+ -- get into issues with different wrapping approaches
+ local kpse = require("kpse")
+ kpse.set_program_name("luatex")
+ local maxprintline = tonumber(kpse.expand_var("$max_print_line"))
+ if (string.len(line) == maxprintline) then
+ return "", line
+ elseif (string.len(lastline) == maxprintline) then
+ if string.match(line, "\\ETC%.%}$") then
+ -- If the line wrapped at \ETC we might have lost a space
+ return lastline
+ .. ((string.match(line, "^\\ETC%.%}$") and " ") or "")
+ .. line, ""
+ elseif string.match(line, "^%}%}%}$") then
+ return lastline .. line, ""
+ else
+ return lastline .. os_newline .. line, ""
end
end
- return line, lastline, false
+ return line, ""
end
local newlog = ""
local lastline = ""
@@ -858,7 +934,7 @@ function formatlualog(logfile, newfile)
for line in io.lines(logfile) do
line, lastline, dropping = normalize(line, lastline, dropping)
if not string.match(line, "^ *$") then
- newlog = newlog .. line .. "\n"
+ newlog = newlog .. line .. os_newline
end
end
local newfile = io.open(newfile, "w")
@@ -948,7 +1024,7 @@ function runcheck(name, hide)
errlevel = os.execute(
os_diffexe .. " " .. luatlgfile .. " " .. newfile
.. " > " .. difffile
- )
+ )
else
errlevel = os.execute(
os_diffexe .. " " .. tlgfile .. " " .. newfile .. " > " .. difffile
@@ -998,6 +1074,13 @@ function runtest(name, engine, hide, ext)
end
local logfile = testdir .. "/" .. name .. logext
local newfile = testdir .. "/" .. name .. "." .. engine .. logext
+ local asciiopt = ""
+ for _,i in ipairs(asciiengines) do
+ if realengine == i then
+ asciiopt = "-translate-file ./ascii.tcx "
+ break
+ end
+ end
for i = 1, checkruns do
run(
testdir,
@@ -1005,7 +1088,11 @@ function runtest(name, engine, hide, ext)
-- avoids any paths in the logs
os_setenv .. " TEXINPUTS=." .. (checksearch and os_pathsep or "")
.. os_concat ..
- realengine .. format .. " " .. checkopts .. " " .. lvtfile
+ -- Avoid spurious output from (u)pTeX
+ os_setenv .. " GUESS_INPUT_KANJI_ENCODING=0"
+ .. os_concat ..
+ realengine .. format .. " "
+ .. checkopts .. " " .. asciiopt .. lvtfile
.. (hide and (" > " .. os_null) or "")
)
end
@@ -1049,7 +1136,7 @@ function runtool(envvar, command)
.. relpath(localdir, typesetdir)
.. (typesetsearch and os_pathsep or "") ..
os_concat ..
- command
+ command
)
)
end
@@ -1089,7 +1176,7 @@ function bibtex(name)
os_setenv .. " BSTINPUTS=." .. os_pathsep
.. relpath(localdir, typesetdir)
.. (typesetsearch and os_pathsep or "") ..
- os_concat ..
+ os_concat ..
bibtexexe .. " " .. bibtexopts .. " " .. name
)
)
@@ -1220,7 +1307,7 @@ function check(names)
local errlevel = runcheck(name, hide)
-- Return value must be 1 not errlevel
if errlevel ~= 0 then
- if opthalt then
+ if opthalt then
return 1
else
errorlevel = 1
@@ -1287,7 +1374,7 @@ function cmdcheck()
os_setenv .. " TEXINPUTS=." .. os_pathsep .. localdir
.. os_pathsep ..
os_concat ..
- engine .. " " .. cmdchkopts ..
+ engine .. " " .. cmdchkopts ..
" \"\\PassOptionsToClass{check}{l3doc} \\input " .. j .. "\""
.. " > " .. os_null
)
@@ -1318,11 +1405,11 @@ function ctan(standalone)
-- First, zip up all of the text files
run(
dir,
- zipexe .. " " .. zipopts .. " -ll ".. zipname .. " " .. "."
- .. (
+ zipexe .. " " .. zipopts .. " -ll ".. zipname .. " " .. "."
+ .. (
(binfiles or exclude) and (" -x" .. binfiles .. " " .. exclude)
or ""
- )
+ )
)
-- Then add the binary ones
run(
@@ -1447,7 +1534,7 @@ function doc(files)
local errorlevel = typesetpdf(j)
if errorlevel ~= 0 then
return errorlevel
- end
+ end
end
end
end
@@ -1539,7 +1626,7 @@ bundleunpack = bundleunpack or function(sourcedir)
os_setenv .. " TEXINPUTS=." .. os_pathsep
.. localdir .. (unpacksearch and os_pathsep or "") ..
os_concat ..
- unpackexe .. " " .. unpackopts .. " " .. j .. " < "
+ unpackexe .. " " .. unpackopts .. " " .. j .. " < "
.. localdir .. "/yes"
)
end