From 0f5650d6e6f1513d6b2fd81899c860e49241e4ab Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Mon, 23 Jan 2017 17:11:39 +0000
Subject: latexbug (22jan17)

git-svn-id: svn://tug.org/texlive/trunk@43028 c570f23f-e606-0410-a88d-b1316a301751
---
 .../texmf-dist/source/latex/latexbug/latexbug.dtx  | 882 +++++++++++++++++++++
 1 file changed, 882 insertions(+)
 create mode 100644 Master/texmf-dist/source/latex/latexbug/latexbug.dtx

(limited to 'Master/texmf-dist/source/latex/latexbug/latexbug.dtx')

diff --git a/Master/texmf-dist/source/latex/latexbug/latexbug.dtx b/Master/texmf-dist/source/latex/latexbug/latexbug.dtx
new file mode 100644
index 00000000000..46f64e9bdf7
--- /dev/null
+++ b/Master/texmf-dist/source/latex/latexbug/latexbug.dtx
@@ -0,0 +1,882 @@
+% \iffalse meta-comment
+%
+% Package latexbug for use with LaTeX2e
+%
+% Copyright 2016
+%
+% The LaTeX3 Project and any individual authors listed elsewhere
+% in this file. 
+% 
+% This file is part of the Standard LaTeX (separate distribution) 
+% ---------------------------------------------------------------
+% 
+% It may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+%    http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX 
+% version 2005/12/01 or later.
+% 
+% This file has the LPPL maintenance status "maintained".
+% 
+%
+% \fi
+%
+% \title{The \texttt{latexbug} package\thanks{This file
+%        has version number \fileversion, last
+%        revised \filedate.}}
+% \author{The \LaTeX{} Team}   ^^A Frank Mittelbach
+% \date{\filedate}
+%
+% \MaintainedByLaTeXTeam{latex}
+%
+% \maketitle
+%
+%
+% \section{Introduction}
+%
+% Software has bugs and \LaTeX{} unfortunately is no exception. If
+% somebody encounters a bug then it helps if that bug gets reported to
+% the right people so that the bug can be resolved (or a workaround
+% documented or whatever is most appropriate). The problem is to know
+% to whom to report the a bug.
+%
+% The \LaTeX{} Project Team maintains a bug database for its own code
+% base (which consists of the \LaTeX{} kernel and some packages that
+% have been written by people in the \LaTeX{} Project
+% Team). However, the \LaTeX{} universe consists of several thousand
+% contributed packages maintained by individuals all over the
+% world. And if a bug happens in one of those packages it doesn't help
+% anybody if it is dumped at the \LaTeX{} Project's doorstep.
+%
+% For one, we can't actually change other people's code even if we are able to
+% identify the issue. Furthermore we are only a few people and simply
+% do not have the bandwidth to analyse bugs in other people's work.
+%
+% We have therefore written this little package called
+% \texttt{latexbug} that should help in identifying the rightful
+% addressee for a bug report. We ask that it will be loaded in any
+% test file that is intended to be sent to the \LaTeX{} bug database
+% as part of a bug report.
+%
+% The package will determine if the test file is in a suitable state
+% to be sent to us or if it should be modified first or if it should be
+% sent to somebody
+% else because the bug is (likely) to be in code not maintained by the
+% \LaTeX{} Project Team.
+%
+% Bug reports sent to the \LaTeX{} bug database
+% without that prior verification are likely to
+% get closed without being looked at at our end in the future.
+%
+%
+%
+% \section{The user interface}
+%
+% The user interface is simple: the package has no option and doesn't
+% define any new commands to be used. All that is required is that the
+% package is loaded as the very first step in the test file that shows
+% the bug --- in other words before the \verb=\documentclass=.
+% For that reason it
+% must be loaded using \verb=\RequirePackage= instead of the usual
+% \verb=\usepackage= that is used in the preamble of a document.
+%
+% Thus, a bug report test files should look like this:
+% \begin{verbatim}
+% \RequirePackage{latexbug}       % <- required first line
+%                                 %    followed by:
+% \documentclass{article}         % or some other class
+%                                 %    followed by:
+%   ...                           % <- code showing the bug ...
+% \end{document}
+% \end{verbatim}
+%
+% If the test file runs through (showing the bug) without any
+% complains for \texttt{latexbug} then the test file is ready to be
+% sent to the \LaTeX{} bug database at
+% \begin{quote}
+%   \texttt{https://www.latex-project.org/bugs/}
+% \end{quote}
+% If \texttt{latexbug} does generate an error, however, then this
+% error needs to be addressed first and the depending on the
+% resolution the bug report may has to be sent to somebody else.
+%
+% An error is generated if the test file makes use of third-party code
+% that is not maintained by the \LaTeX{} Project Team. For example, if
+% the file would load \texttt{geometry}, \texttt{footmisc} and
+% \texttt{hyperref} you
+% would see the following:
+% \begin{verbatim}
+% Package latexbug Error: Third-party file(s)
+% (latexbug)                
+% (latexbug)                This test file uses third-party file(s)
+% (latexbug)                
+% (latexbug)                ==============
+% (latexbug)                geometry.sty  ->  Hideo Umeki 
+% (latexbug)                    <latexgeometry [at] gmail [dot] com>
+% (latexbug)                footmisc.sty
+% (latexbug)                hyperref.sty  ->  Heiko Oberdiek 
+% (latexbug)                    https://github.com/ho-tex/hyperref/issues
+% (latexbug)                ==============
+% (latexbug)                
+% \end{verbatim}
+% It then continues with advice to remove such third-party code from the
+% test file. If that is not possible, because the bug goes away if a
+% package is removed, then the problem is (most likely) with this
+% package and the bug report should be sent to the maintainer of that
+% package and not to the \LaTeX{} bug database.
+% \begin{verbatim}
+% (latexbug)                So you should contact the authors
+% (latexbug)                of these files, not the LaTeX Team!
+% (latexbug)                (Or remove the packages that load
+% (latexbug)                them, if they are not necessary to
+% (latexbug)                exhibit the problem).
+% \end{verbatim}
+% To make life somewhat easier \texttt{latexbug} will tell you the
+% name of the maintainer (if we know it and have added it in) and if
+% possible also the canonical bug address for the package (like in the
+% case of \texttt{geometry} and  \texttt{hyperref}).
+% If we don't have that information, you
+% need to find it out for yourself by looking at the package
+% documentation.
+%
+% There may be cases where third-party code is essential to exhibit
+% a bug in core \LaTeX{} code maintained by the the \LaTeX{} Team. The
+% error text therefore finishes off with the following sentence:
+% \begin{verbatim}
+% (latexbug)                If you think the bug is in core LaTeX
+% (latexbug)                (as maintained by the LaTeX Team) but
+% (latexbug)                these files are needed to demonstrate
+% (latexbug)                the problem, please continue and mention
+% (latexbug)                this explicitly in your bug report.
+% \end{verbatim}
+% Please explain your reasoning why you think this is the case in
+% detail as part of the bug report.
+%
+% \vspace*{1ex}
+%
+% \begin{center}
+%    \fbox{\fbox{\parbox{.6\textwidth}{\itshape Thank you for taking
+%                        the time to report a bug and prepare a test
+%                        file showing it!}}}
+% \end{center}
+%
+% \vspace*{3ex}
+%
+%
+% \subsection{A note on the database content in the package}
+%
+
+% When a document is run through \LaTeX{} it will load a number of
+% files and bug reports that are to be sent to the \LaTeX{} Team should only
+% load files that we maintain and not third-party packages.
+
+% The database, if you want to call that, inside \texttt{latexbug} is
+% simply comma separated a key value list consisting of file names
+% \texttt{=} maintainer info. Most of the time the maintainer info is
+% \texttt{us} or \texttt{us*} (meaning we maintain it, so the file is
+% fine) or \texttt{ignore} (meaning we do not maintain it, but it is a
+% file that is likely to appear for one or the other reason and we
+% should accept such a bug report nontheless).
+%
+% Any file loaded in the bug report not listed will show up in the
+% error listing flagged as ``third-party'' code that should be removed
+% as explained above.
+%
+
+% For a small number of popular third-party packages we have collected
+% the name of the external maintainer and if available to us some
+% extra info so that it is easier to send to the rightful addressee if
+% you encounter a bug in such a third-party package. But to keep this
+% manageable this is only done for a very small number of the 5000+
+% packages out there (though we might add one or the other over time).
+
+% It is however not impossible that we missed one or the other file
+% that should have been listed as ``maintained by us'' but isn't and
+% thus incorrectly generates an error. If you run into that problem or
+% notice an omission of that sort, please send us a bug report or open
+% an issue at the GitHub source of the package which is located at:
+% \begin{quote}
+%   \texttt{https://github.com/latex3/latexbug/}
+% \end{quote}
+%
+%
+% \StopEventually{\PrintIndex\PrintChanges}
+%
+% \section{The documentation driver file}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX{}, i.e., the file that will produce the documentation you are
+% currently reading. It will be extracted from this file by the
+% \texttt{docstrip} program.
+%    \begin{macrocode}
+%<*driver>
+\RequirePackage{latexbug}
+\documentclass{ltxdoc}
+\GetFileInfo{latexbug.sty}
+%\usepackage{geometry,footmisc,hyperref}  % uncomment for latexbug error
+%\usepackage{xparse}                      % uncomment for latexbug error
+\EnableCrossrefs
+%\DisableCrossrefs    % Say \DisableCrossrefs if index is ready
+
+%\OnlyDescription     % Comment out for implementation details
+\begin{document}
+   \DocInput{latexbug.dtx}
+\end{document}
+%</driver>
+%    \end{macrocode}
+%
+% \section{The implementation}
+%
+%    \begin{macrocode}
+%<*package>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{latexbug}[2016/11/25 v0.9e Bug-classification]
+%    \end{macrocode}
+%
+% \begin{macro}{\latexbug@empty}
+% \begin{macro}{\latexbug@us}
+% \begin{macro}{\latexbug@ustar}
+% \begin{macro}{\latexbug@ignore}
+%   Fixed text used in checking what actions to take with different files.
+%    \begin{macrocode}
+\def\latexbug@empty{}
+\def\latexbug@us{us}
+\def\latexbug@usstar{us*}
+\def\latexbug@ignore{ignore}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\Contact}
+%   A very simple piece of markup, really.
+%    \begin{macrocode}
+\def\Contact{\MessageBreak \@spaces}
+%    \end{macrocode}
+% \end{macro}
+%
+% The database of packages is set up in a group so we can throw away the
+% loop command.
+%    \begin{macrocode}
+\begingroup
+%    \end{macrocode}
+%
+% \begin{macro}{\latexbug@loop}
+%   A simple loop set up which reads a known format for the file-to-maintainer
+%   mapping. The trailing space is important (stripping it is not really worth
+%   it for this very limited use case).
+%    \begin{macrocode}
+\long\def\latexbug@loop #1 = #2 , {% spaces matter
+  \global\@namedef{latexbug@@#1}{#2}%
+  \ifx\latexbug@empty#1\else\expandafter\latexbug@loop\fi}
+%    \end{macrocode}
+% \end{macro}
+%
+% A simple database of files. The value \texttt{us} means we accept
+% bugs for it. We also take bug reports for \texttt{us*} entries, but
+% they need to go to GitHub so are handled separately (and only show up
+% if there doesn't seem to be anything else to pick up). A value of
+% \texttt{ignore} means that its not our code, but we understand that it may
+% show up in legitimate test files and should therefore not trigger an error.
+%
+% Any file not in there will trigger an error if loaded and any file
+% in there with some other value than \texttt{us} or \texttt{ignore}
+% will also trigger an error displaying the value (which hopefully is
+% the maintainers name). (Handling for \texttt{us*} means these files may
+% not show up, depending on the nature of the use case.)
+%
+%    \begin{macrocode}
+\latexbug@loop
+%--------------------------------- 
+latexbug.sty = us ,
+regression-test = us ,
+%--------------------------------- base
+alltt.sty = us ,
+ansinew.def = us ,
+applemac.def = us ,
+article.cls = us ,
+article.sty = us ,
+ascii.def = us ,
+bezier.sty = us ,
+bk10.clo = us ,
+bk11.clo = us ,
+bk12.clo = us ,
+book.cls = us ,
+book.sty = us ,
+cp1250.def = us ,
+cp1252.def = us ,
+cp1257.def = us ,
+cp437.def = us ,
+cp437de.def = us ,
+cp850.def = us ,
+cp852.def = us ,
+cp858.def = us ,
+cp865.def = us ,
+decmulti.def = us ,
+doc.sty = us ,
+docstrip.tex = us ,
+exscale.sty = us ,
+fix-cm.sty = us ,
+fixltx2e.sty = us ,
+flafter.sty = us ,
+fleqn.clo = us ,
+fleqn.sty = us ,
+fltrace.sty = us ,
+fontenc.sty = us ,
+fontmath.cfg = us ,
+fontmath.ltx = us ,
+fonttext.cfg = us ,
+fonttext.ltx = us ,
+graphpap.sty = us ,
+hyphen.ltx = us ,
+idx.tex = us ,
+ifthen.sty = us ,
+inputenc.sty = us ,
+lablst.tex = us ,
+latex.ltx = us ,
+latex209.def = us ,
+latexbug.tex = us ,
+latexrelease.sty = us ,
+latexsym.sty = us ,
+latin1.def = us ,
+latin10.def = us ,
+latin2.def = us ,
+latin3.def = us ,
+latin4.def = us ,
+latin5.def = us ,
+latin9.def = us ,
+lcyenc.dfu = us ,
+leqno.clo = us ,
+leqno.sty = us ,
+letter.cls = us ,
+letter.sty = us ,
+lppl.tex = us ,
+ltluatex.lua = us ,
+ltluatex.tex = us ,
+ltnews.cls = us ,
+ltxcheck.tex = us ,
+ltxdoc.cls = us ,
+ltxguide.cls = us ,
+ly1enc.dfu = us ,
+macce.def = us ,
+makeidx.sty = us ,
+minimal.cls = us ,
+newlfont.sty = us ,
+next.def = us ,
+nfssfont.tex = us ,
+oldlfont.sty = us ,
+omlcmm.fd = us ,
+omlcmr.fd = us ,
+omlenc.def = us ,
+omllcmm.fd = us ,
+omscmr.fd = us ,
+omscmsy.fd = us ,
+omsenc.def = us ,
+omsenc.dfu = us ,
+omslcmsy.fd = us ,
+omxcmex.fd = us ,
+omxlcmex.fd = us ,
+openbib.sty = us ,
+ot1cmdh.fd = us ,
+ot1cmfib.fd = us ,
+ot1cmfr.fd = us ,
+ot1cmr.fd = us ,
+ot1cmss.fd = us ,
+ot1cmtt.fd = us ,
+ot1cmvtt.fd = us ,
+ot1enc.def = us ,
+ot1enc.dfu = us ,
+ot1lcmss.fd = us ,
+ot1lcmtt.fd = us ,
+ot2enc.dfu = us ,
+ot4enc.def = us ,
+preload.cfg = us ,
+preload.ltx = us ,
+proc.cls = us ,
+proc.sty = us ,
+report.cls = us ,
+report.sty = us ,
+sample2e.tex = us ,
+sfonts.def = us ,
+shortvrb.sty = us ,
+showidx.sty = us ,
+size10.clo = us ,
+size11.clo = us ,
+size12.clo = us ,
+slides.cls = us ,
+slides.def = us ,
+slides.sty = us ,
+small2e.tex = us ,
+source2e.tex = us ,
+syntonly.sty = us ,
+t1cmdh.fd = us ,
+t1cmfib.fd = us ,
+t1cmfr.fd = us ,
+t1cmr.fd = us ,
+t1cmss.fd = us ,
+t1cmtt.fd = us ,
+t1cmvtt.fd = us ,
+t1enc.def = us ,
+t1enc.dfu = us ,
+t1enc.sty = us ,
+t1lcmss.fd = us ,
+t1lcmtt.fd = us ,
+t2aenc.dfu = us ,
+t2benc.dfu = us ,
+t2cenc.dfu = us ,
+testpage.tex = us ,
+texsys.cfg = us ,
+textcomp.sty = us ,
+tracefnt.sty = us ,
+ts1cmr.fd = us ,
+ts1cmss.fd = us ,
+ts1cmtt.fd = us ,
+ts1cmvtt.fd = us ,
+ts1enc.def = us ,
+ts1enc.dfu = us ,
+ucmr.fd = us ,
+ucmss.fd = us ,
+ucmtt.fd = us ,
+ulasy.fd = us ,
+ullasy.fd = us ,
+utf8-test.tex = us ,
+utf8.def = us ,
+utf8enc.dfu = us ,
+utf8test.tex = us ,
+x2enc.dfu = us ,
+%--------------------------------- tools
+afterpage.sty = us ,
+array.sty = us ,
+bm.sty = us ,
+calc.sty = us ,
+dcolumn.sty = us ,
+delarray.sty = us ,
+e.tex = us ,
+enumerate.sty = us ,
+fontsmpl.sty = us ,
+fontsmpl.tex = us ,
+ftnright.sty = us ,
+h.tex = us ,
+hhline.sty = us ,
+indentfirst.sty = us ,
+layout.sty = us ,
+longtable.sty = us ,
+multicol.sty = us ,
+q.tex = us ,
+r.tex = us ,
+rawfonts.sty = us ,
+s.tex = us ,
+showkeys.sty = us ,
+somedefs.sty = us ,
+tabularx.sty = us ,
+thb.sty = us ,
+thc.sty = us ,
+thcb.sty = us ,
+theorem.sty = us ,
+thm.sty = us ,
+thmb.sty = us ,
+thp.sty = us ,
+trace.sty = us ,
+varioref.sty = us ,
+verbatim.sty = us ,
+verbtest.tex = us ,
+x.tex = us ,
+xr.sty = us ,
+xspace.sty = us ,
+%--------------------------------- babel (part supported by us)
+UKenglish.sty = us ,
+USenglish.sty = us ,
+afrikaans.sty = us ,
+albanian.sty = us ,
+american.sty = us ,
+austrian.sty = us ,
+babel.def = us ,
+babel.sty = us ,
+bahasa.sty = us ,
+bahasam.sty = us ,
+basque.sty = us ,
+blplain.tex = us ,
+bplain.tex = us ,
+breton.sty = us ,
+british.sty = us ,
+bulgarian.sty = us ,
+catalan.sty = us ,
+croatian.sty = us ,
+czech.sty = us ,
+danish.sty = us ,
+dutch.sty = us ,
+english.sty = us ,
+esperanto.sty = us ,
+estonian.sty = us ,
+finnish.sty = us ,
+francais.sty = us ,
+galician.sty = us ,
+germanb.sty = us ,
+greek.sty = us ,
+hebrew.sty = us ,
+hyphen.cfg = us ,
+icelandic.sty = us ,
+interlingua.sty = us ,
+irish.sty = us ,
+italian.sty = us ,
+latin.sty = us ,
+lsorbian.sty = us ,
+luababel.def = us ,
+magyar.sty = us ,
+naustrian.sty = us ,
+ngermanb.sty = us ,
+nil.ldf = us ,
+norsk.sty = us ,
+plain.def = us ,
+polish.sty = us ,
+portuges.sty = us ,
+romanian.sty = us ,
+russianb.sty = us ,
+samin.sty = us ,
+scottish.sty = us ,
+serbian.sty = us ,
+slovak.sty = us ,
+slovene.sty = us ,
+spanish.sty = us ,
+swedish.sty = us ,
+switch.def = us ,
+turkish.sty = us ,
+ukraineb.sty = us ,
+usorbian.sty = us ,
+welsh.sty = us ,
+xebabel.def = us ,
+%--------------------------------- graphics
+color.sty = us ,
+dvipdf.def = us ,
+dvips.def = us ,
+dvipsnam.def = us ,
+dvipsone.def = us ,
+dviwin.def = us ,
+emtex.def = us ,
+epsfig.sty = us ,
+graphics.sty = us ,
+graphicx.sty = us ,
+keyval.sty = us ,
+lscape.sty = us ,
+pctex32.def = us ,
+pctexhp.def = us ,
+pctexps.def = us ,
+pctexwin.def = us ,
+tcidvi.def = us ,
+trig.sty = us ,
+truetex.def = us ,
+%--------------------------------- mfnfss
+oldgerm.sty = us ,
+ot1panr.fd = us ,
+ot1pss.fd = us ,
+pandora.sty = us ,
+uyfrak.fd = us ,
+uygoth.fd = us ,
+uyinit.fd = us ,
+uyswab.fd = us ,
+%--------------------------------- amsmath
+amsbsy.sty = us ,
+amscd.sty = us ,
+amsgen.sty = us ,
+amsmath.sty = us ,
+amsopn.sty = us ,
+amstex.sty = us ,
+amstext.sty = us ,
+amsxtra.sty = us ,
+%--------------------------------- amscls (us?)
+amsart.cls = us ,
+amsbook.cls = us ,
+amsbooka.sty = us ,
+amsdtx.cls = us ,
+amsldoc.cls = us ,
+amsmidx.sty = us ,
+amsproc.cls = us ,
+amsthm.sty = us ,
+upref.sty = us ,
+%--------------------------------- psnfss
+8rbch.fd = us ,
+8rpag.fd = us ,
+8rpbk.fd = us ,
+8rpcr.fd = us ,
+8rphv.fd = us ,
+8rpnc.fd = us ,
+8rppl.fd = us ,
+8rptm.fd = us ,
+8rput.fd = us ,
+8rpzc.fd = us ,
+avant.sty = us ,
+bookman.sty = us ,
+chancery.sty = us ,
+charter.sty = us ,
+courier.sty = us ,
+helvet.sty = us ,
+mathpazo.sty = us ,
+mathpple.sty = us ,
+mathptm.sty = us ,
+mathptmx.sty = us ,
+newcent.sty = us ,
+omlbch.fd = us ,
+omlpag.fd = us ,
+omlpbk.fd = us ,
+omlpcr.fd = us ,
+omlphv.fd = us ,
+omlpnc.fd = us ,
+omlppl.fd = us ,
+omlptm.fd = us ,
+omlptmcm.fd = us ,
+omlput.fd = us ,
+omlpzc.fd = us ,
+omlzplm.fd = us ,
+omlzpple.fd = us ,
+omlztmcm.fd = us ,
+omsbch.fd = us ,
+omspag.fd = us ,
+omspbk.fd = us ,
+omspcr.fd = us ,
+omsphv.fd = us ,
+omspnc.fd = us ,
+omsppl.fd = us ,
+omsptm.fd = us ,
+omsput.fd = us ,
+omspzc.fd = us ,
+omspzccm.fd = us ,
+omszplm.fd = us ,
+omszpple.fd = us ,
+omsztmcm.fd = us ,
+omxpsycm.fd = us ,
+omxzplm.fd = us ,
+omxzpple.fd = us ,
+omxztmcm.fd = us ,
+ot1bch.fd = us ,
+ot1pag.fd = us ,
+ot1pbk.fd = us ,
+ot1pcr.fd = us ,
+ot1phv.fd = us ,
+ot1pnc.fd = us ,
+ot1ppl.fd = us ,
+ot1pplj.fd = us ,
+ot1pplx.fd = us ,
+ot1ptm.fd = us ,
+ot1ptmcm.fd = us ,
+ot1put.fd = us ,
+ot1pzc.fd = us ,
+ot1zplm.fd = us ,
+ot1zpple.fd = us ,
+ot1ztmcm.fd = us ,
+palatino.sty = us ,
+pifont.sty = us ,
+t1bch.fd = us ,
+t1pag.fd = us ,
+t1pbk.fd = us ,
+t1pcr.fd = us ,
+t1phv.fd = us ,
+t1pnc.fd = us ,
+t1ppl.fd = us ,
+t1pplj.fd = us ,
+t1pplx.fd = us ,
+t1ptm.fd = us ,
+t1put.fd = us ,
+t1pzc.fd = us ,
+times.sty = us ,
+ts1bch.fd = us ,
+ts1pag.fd = us ,
+ts1pbk.fd = us ,
+ts1pcr.fd = us ,
+ts1phv.fd = us ,
+ts1pnc.fd = us ,
+ts1ppl.fd = us ,
+ts1pplj.fd = us ,
+ts1pplx.fd = us ,
+ts1ptm.fd = us ,
+ts1put.fd = us ,
+ts1pzc.fd = us ,
+ufplm.fd = us ,
+ufplmbb.fd = us ,
+upsy.fd = us ,
+upzd.fd = us ,
+utopia.sty = us ,
+%--------------------------------- expl3
+expl3.sty  = us* ,
+l3sort.sty = us* ,
+l3regex.sty = us* ,
+l3tl-analysis.sty = us* ,
+xfrac.sty = us* ,
+xparse.sty = us* ,
+xtemplate.sty = us* ,
+xfrac.sty = us* ,
+xcoffins.sty = us* ,
+xgalley.sty = us* ,
+l3keys2e.sty = us* ,
+expl3-code.tex = ignore ,
+%---------------------------------  USEFUL FOR BUG REPORTS
+etoolbox.sty = ignore ,
+lipsum.sty   = ignore ,
+%---------------------------------  EXTERNALLY SUPPORTED
+%
+beamer.cls   = Joseph Wright
+               \Contact https://github.com/josephwright/beamer/issues ,
+geometry.sty = Hideo Umeki
+               \Contact <latexgeometry [at] gmail [dot] com> ,
+hpdftex.def  = ignore ,
+hluatex.def  = ignore ,               
+hxetex.def   = ignore ,               
+hyperref.cfg = ignore ,
+hyperref.sty = Heiko Oberdiek
+               \Contact https://github.com/ho-tex/hyperref/issues ,
+pd1enc.def   = ignore ,
+puenc.def    = ignore ,
+siunitx.sty  = Joseph Wright
+               \Contact https://github.com/josephwright/siunitx ,
+%--------------------------------- babel external
+german.ldf   = Juergen Spitzmueller
+               \Contact <juergen [at] spitzmueller [dot] org> ,
+italian.ldf  = Claudio Beccari
+               \Contact <claudio dot beccari [at] gmail [dot] com> ,
+ngerman.ldf  = Juergen Spitzmueller
+               \Contact <juergen [at] spitzmueller [dot] org> ,
+%--------------------------------- LAST LINE
+{\latexbug@empty} = {} ,
+%    \end{macrocode}
+%
+% Keep the data but throw away the loop function.
+%    \begin{macrocode}
+\endgroup
+%    \end{macrocode}
+%
+% \begin{macro}{\latexbug@addtofilelist}
+%   Save the kernel version of \cs{\@addtofilelist}.
+%    \begin{macrocode}
+\let\latexbug@addtofilelist\@addtofilelist
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}{\latexbug@zzzz}
+% \begin{macro}{\latexbug@expl}
+%   Storage for third-party files and those from the \LaTeX3 set on GitHub.
+%    \begin{macrocode}
+\def\latexbug@zzzz{}
+\def\latexbug@expl{}
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\latexbug@process@table}
+% \begin{macro}{\process@table}
+%   A hook into a convenient place in the document set up: the
+%   initialisation of NFSS during the \cs{document} macro. If either
+%   \cs{latexbug@zzzz} or \cs{latexbug@expl} have any content then there is
+%   a message to issue, it's just a question of deciding which one.
+%    \begin{macrocode}
+\let\latexbug@process@table\process@table
+\def\process@table{\global\let\@addtofilelist\latexbug@addtofilelist
+  \latexbug@process@table
+  \ifx\latexbug@zzzz\latexbug@empty
+    \ifx\latexbug@expl\latexbug@empty
+    \else
+      \PackageError{latexbug}%
+        {LaTeX3 file(s)\MessageBreak
+\MessageBreak
+This test files uses the LaTeX3 file(s)\MessageBreak
+\MessageBreak
+        ==============\MessageBreak
+        \latexbug@expl
+        ==============\MessageBreak
+        \MessageBreak
+You should report bugs in these packages\MessageBreak
+at the LaTeX3 GitHub site,\MessageBreak
+https://github.com/latex3/latex3/issues\MessageBreak
+(Or remove them from your example,\MessageBreak
+if they are not necessary to\MessageBreak
+exhibit the problem).\MessageBreak
+}{Please correct your test file prior
+                     to submitting the bug report.\MessageBreak
+                     Otherwise it is likely to be rejected!}%
+    \fi
+  \else
+      \PackageError{latexbug}%
+                   {Third-party file(s)\MessageBreak
+\MessageBreak
+This test file uses third-party file(s)\MessageBreak
+\MessageBreak
+        ==============\MessageBreak
+        \latexbug@zzzz
+        ==============\MessageBreak
+        \MessageBreak
+So you should contact the authors\MessageBreak
+of these files, not the LaTeX Team!\MessageBreak
+(Or remove the packages that load\MessageBreak
+them, if they are not necessary to\MessageBreak
+exhibit the problem).\MessageBreak
+\MessageBreak
+If you think the bug is in core LaTeX\MessageBreak
+(as maintained by the LaTeX Team) but\MessageBreak
+these files are needed to demonstrate\MessageBreak
+the problem, please continue and mention\MessageBreak
+this explicitly in your bug report}{Please correct your test file prior
+                     to submitting the bug report.\MessageBreak
+                     Otherwise it is likely to be rejected!}%
+  \fi
+}  
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}{\@addtofilelist}
+% \begin{macro}{\latexbug@iftoplevel}
+%   First, a test to see if we are at the top level: there's no need to
+%   test dependencies of packages. Assuming we are doing a check, the aim
+%   is to see if the current name is known, and if it is whether it fits into
+%   one of our special cases. If it's one of the \LaTeX3 GitHub packages it
+%   gets recorded in a dedicated space. Third-party package can also have
+%   information about where to report issues: this is all stored for reporting
+%   later.
+%    \begin{macrocode}
+\def\@addtofilelist#1{%
+% \show\@currnamestack
+  \expandafter\latexbug@iftoplevel\@currnamestack {}\@nil
+  \begingroup
+    \xdef\latexbug@x{#1}% TODO: one-level sanitize
+    \expandafter
+    \ifx\csname latexbug@@\latexbug@x\endcsname\relax
+      \def\latexbug@y{}%
+    \else
+      \xdef\latexbug@y{\csname latexbug@@\latexbug@x\endcsname}%
+    \fi
+    \ifx\latexbug@y\latexbug@us\else
+      \ifx\latexbug@y\latexbug@usstar
+        \begingroup
+          \let\MessageBreak\relax
+          \xdef\latexbug@expl{%
+            \latexbug@expl\latexbug@x
+            \MessageBreak
+          }%
+        \endgroup
+      \else
+        \ifx\latexbug@y\latexbug@ignore\else
+           {\let\MessageBreak\relax
+             \xdef\latexbug@zzzz{\latexbug@zzzz\latexbug@x
+               \ifx\latexbug@y\latexbug@empty\else
+                 \space\space -> \space \latexbug@y\fi
+               \MessageBreak}}%
+        \fi
+      \fi
+    \fi
+    \endgroup
+  \fi
+  \latexbug@addtofilelist{#1}}
+\def\latexbug@iftoplevel #1#2\@nil{%
+  \def\next{#1}%
+  \ifx\next\@empty
+}
+\endinput
+%</package>
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \Finale
+%
+
-- 
cgit v1.2.3

