From 95a2d3f7d676d1d4217a485d10543784f3ef2c91 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 14 Oct 2020 21:47:42 +0000 Subject: firstaid (14oct20) git-svn-id: svn://tug.org/texlive/trunk@56668 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/source/latex/firstaid/firstaid.ins | 6 +- .../latex2e-first-aid-for-external-files.dtx | 146 +++++++++++++++++---- 2 files changed, 122 insertions(+), 30 deletions(-) (limited to 'Master/texmf-dist/source/latex') diff --git a/Master/texmf-dist/source/latex/firstaid/firstaid.ins b/Master/texmf-dist/source/latex/firstaid/firstaid.ins index 5d888cf65bc..9965480f207 100644 --- a/Master/texmf-dist/source/latex/firstaid/firstaid.ins +++ b/Master/texmf-dist/source/latex/firstaid/firstaid.ins @@ -3,7 +3,7 @@ %% driver files from the doc files in this package when run through %% LaTeX or TeX. %% -%% Copyright (C) 1993-2020 +%% Copyright (C) 2020 %% The LaTeX3 Project and any individual authors listed elsewhere %% in this file. %% @@ -44,12 +44,12 @@ reports for it can be opened at https://latex-project.org/bugs/ (but please observe conditions on bug reports sent to that address!) -Copyright (C) 1993-2020 +Copyright (C) 2020 The LaTeX3 Project and any individual authors listed elsewhere in this file. This file was generated from file(s) of the Standard LaTeX `First Aid Bundle'. --------------------------------------------------------------------------- +------------------------------------------------------------------------------ It may be distributed and/or modified under the conditions of the LaTeX Project Public License, either version 1.3c diff --git a/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx b/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx index 78f52ca78a2..55e0d01e263 100644 --- a/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx +++ b/Master/texmf-dist/source/latex/firstaid/latex2e-first-aid-for-external-files.dtx @@ -87,6 +87,17 @@ % doesn't get out of bounds. % \end{quote} % +% \subsection{Minor kernel fixes} +% +% If we encounter issues with the kernel code that should get fixed +% before the next main release we normally generate a patch release +% for \LaTeX{}. However, depending on the complexity of the fix we +% might first add the fix here and generate a full patch release +% only when a number of such issues have accumulated. This way we +% lessen the impact on CTAN maintainers because for each tach +% release we have to make and distribute also a matching +% development release. +% % \StopEventually{\setlength\IndexMin{200pt} \PrintIndex } % % @@ -99,8 +110,8 @@ % \end{macrocode} % % \begin{macrocode} -\def\LaTeXFirstAidDate{2020/10/04} -\def\LaTeXFirstAidVersion{v1.0e} +\def\LaTeXFirstAidDate{2020/10/13} +\def\LaTeXFirstAidVersion{v1.0f} % \end{macrocode} % % \begin{macrocode} @@ -147,37 +158,28 @@ % implementation. % % The package has now got an update so we aren't activating the -% first aid. However, it basically bypasses the new hook mechanism -% and puts the old hooks in thereby disabling, for example, the -% possibility to reorder code through rules. +% first aid. However, at the moment it basically bypasses the new +% hook mechanism and puts the old hooks in thereby disabling, for +% example, the possibility to re-order code through rules. % % We therefore keep \texttt{filehook-ltx.sty} around as a guideline % for further updates. % +% Replacing \pkg{filehook} with a leaner version would then work +% like this: % \begin{macrocode} %<*kernel> %\declare@file@substitution{filehook.sty}{filehook-ltx.sty} % -% \End{macrocode} -% -% If a new filehook package becomes available it can be tested -% simply by undoing the above substitution via -% \begin{verbatim} -% \undeclare@file@substitution{filehook.sty} -% \end{verbatim} -% Once ready this will then taken out of the first aid file. +% \end{macrocode} % -% What follows is a partial implementation of the \pkg{filehook} +% What follows is a simplified (partial) implementation of the \pkg{filehook} % interfaces. -% % Not implemented are: %\begin{verbatim} -% \AtBeginOfFiles -% \AtEndOfFiles -% \AtBeginOfInputs -% \AtEndOfInputs -% \AtBeginOfInputFile -% \AtEndOfInputFile +% \AtBeginOfFiles \AtEndOfFiles +% \AtBeginOfInputs \AtEndOfInputs +% \AtBeginOfInputFile \AtEndOfInputFile %\end{verbatim} % % \begin{macrocode} @@ -214,14 +216,14 @@ {\AddToHook{class/after}{#1}} % \end{macrocode} % -% For normal files we drop the \texttt{.tex} extension for now: % \begin{macrocode} \newcommand\AtBeginOfFile [2] {\AddToHook{file/before/#1}{#2}} \newcommand\AtEndOfFile [2] {\AddToHook{file/after/#1}{#2}} % \end{macrocode} -% +% +% Some commands offered a starred form % \begin{macrocode} \DeclareDocumentCommand \AtBeginOfPackageFile {smm} {\IfBooleanTF{#1}% @@ -230,6 +232,9 @@ {\AddToHook{package/before/#2}{#3}}}% {\AddToHook{package/before/#2}{#3}}% } +% \end{macrocode} +% +% \begin{macrocode} \DeclareDocumentCommand \AtEndOfPackageFile {smm} {\IfBooleanTF{#1}% {\@ifpackageloaded{#2}% @@ -294,6 +299,10 @@ % is still in the kernel. % % \begin{macrocode} +%<*kernel> +% \end{macrocode} +% +% \begin{macrocode} \AddToHook{file/after/biditools.sty}[firstaid]{% \FirstAidNeededT{biditools}{sty}% {2020/05/13 v2 Programming tools for bidi package}% @@ -322,10 +331,6 @@ } % \end{macrocode} % -% \begin{macrocode} -%<*kernel> -% \end{macrocode} -% % % % \subsection{The \pkg{dinbrief} class first aid} @@ -341,6 +346,93 @@ % % % +% \subsection[Temporary fixes for the kernel (until the next +% patch-level release)] +% {Temporary fixes for the kernel \\ +% (until the next patch-level release)} +% +% This is fixing GitHub issue 408. Looks rather long but changes +% only 3 or 4 lines in the macros. +% \begin{macrocode} +\def\@pr@videpackage[#1]{% + \expandafter\protected@xdef % <-- protected... + \csname ver@\@currname.\@currext\endcsname{#1}% Loaded package + \expandafter\let + \csname ver@\@currpkg@reqd\expandafter\endcsname % Requested package + \csname ver@\@currname.\@currext\endcsname + \ifx\@currext\@clsextension + \typeout{Document Class: \@gtempa\space#1}% + \else + \protected@wlog{Package: \@gtempa\space#1}% <--- protected + \fi} +% \end{macrocode} +% +% \begin{macrocode} +\def\load@onefilewithoptions#1[#2][#3]#4{% % <--- \@onefilewithoptions + % earlier in the kernel + \@pushfilename + \xdef\@currname{#1}% + \global\let\@currext#4% + \@ifl@aded\@currext\@currname + {\@if@ptions\@currext{\@currname}{#2}{}% + {\@latex@error + {Option clash for \@cls@pkg\space \@currname}% + {The package \@currname\space has already been loaded + with options:\MessageBreak + \space\space[\@ptionlist{\@currname.\@currext}]\MessageBreak + There has now been an attempt to load it + with options\MessageBreak + \space\space[#2]\MessageBreak + Adding the global options:\MessageBreak + \space\space + \@ptionlist{\@currname.\@currext},#2\MessageBreak + to your \noexpand\documentclass declaration may fix this.% + \MessageBreak + Try typing \space \space to proceed.}}% + \@firstofone}% + {\makeatletter + \@reset@ptions + \IfFileExists{\@currname.\@currext}{}% + {\@missing@onefilewithoptions{#2}}% + \ifx\@currname\@empty + \expandafter\@gobble + \else + \@disable@packageload@do{\@currname.\@currext}% + {\@expl@@@filehook@file@push@@ + \set@curr@file{\@currname.\@currext}% + \@filehook@set@CurrentFile + \expandafter\@swaptwoargs\expandafter + {\expandafter{\@currpkg@reqd}}% + {% < + \edef\@currpkg@reqd{\@currname.\@currext}% + \ifx\CurrentFile\CurrentFileUsed + \else + \filename@parse\@curr@file + \edef\@currname{\string@makeletter\filename@base}% + \edef\@currext{\string@makeletter\filename@ext}% + \fi + \load@onefile@withoptions{#2}% + \def\@currpkg@reqd%{\@currpkg@reqd} + }% > + \@expl@@@filehook@file@pop@@}% + \expandafter\@firstofone + \fi}% + {\@ifl@ter\@currext{\@currname}{#3}{}% + {\@latex@warning@no@line + {You have requested,\on@line, + version\MessageBreak + `#3' of \@cls@pkg\space \@currname,\MessageBreak + but only version\MessageBreak + `\csname ver@\@currname.\@currext\endcsname'\MessageBreak + is available}}% + \ifx\@currext\@clsextension\let\LoadClass\@twoloadclasserror\fi}% + \@popfilename + \@reset@ptions} +% \end{macrocode} +% +% \begin{macrocode} +\let\@currpkg@reqd\@empty +% \end{macrocode} % % % \begin{macrocode} -- cgit v1.2.3