summaryrefslogtreecommitdiff
path: root/macros/latex-dev/base/ltexpl.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex-dev/base/ltexpl.dtx')
-rw-r--r--macros/latex-dev/base/ltexpl.dtx58
1 files changed, 40 insertions, 18 deletions
diff --git a/macros/latex-dev/base/ltexpl.dtx b/macros/latex-dev/base/ltexpl.dtx
index 230cd91158..e86b80acaf 100644
--- a/macros/latex-dev/base/ltexpl.dtx
+++ b/macros/latex-dev/base/ltexpl.dtx
@@ -33,7 +33,7 @@
%<*driver>
% \fi
\ProvidesFile{ltexpl.dtx}
- [2019-10-02 v0.0 LaTeX Kernel (expl3-dependent code)]
+ [2020-03-05 v1.1 LaTeX Kernel (expl3-dependent code)]
% \iffalse
\documentclass{ltxdoc}
\GetFileInfo{ltfinal.dtx}
@@ -68,25 +68,47 @@
%<*2ekernel|latexrelease>
%<latexrelease>\IncludeInRelease{2020/02/02}%
%<latexrelease> {expl3}{Pre-load expl3}%
-\IfFileExists{expl3.ltx}
- {%
- \ifnum0%
- \ifdefined\pdffilesize 1\fi
- \ifdefined\filesize 1\fi
- \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
- >0 %
- \else
- \message{Skipping expl3-dependent extensions}
+% \end{macrocode}
+% If we are doing a rollback with a format containing expl3 we
+% aren't reloading it as that creates havoc. This may need a
+% refined version!
+% \changes{v1.0a}{2020/03/02}
+% {Don't load expl3 if already in the format (gh/295)}
+% \changes{v1.1}{2020/03/05}
+% {Load xparse.ltx if \cs{NewDocumentCommand} is not defined by expl3.ltx}
+% \begin{macrocode}
+\expandafter\ifx\csname tex\string _let:D\endcsname\relax
+ \IfFileExists{expl3.ltx}
+ {%
+ \ifnum0%
+ \ifdefined\pdffilesize 1\fi
+ \ifdefined\filesize 1\fi
+ \ifdefined\luatexversion\ifnum\luatexversion>94 1\fi\fi
+ >0 %
+ \expandafter\@firstofone
+ \else
+ \message{Skipping expl3-dependent extensions}
%<2ekernel> \expandafter\endinput
-%<latexrelease> \expandafter\@gobbletwo
- \fi
- }
- {%
- \message{Skipping expl3-dependent extensions}%
+%<latexrelease> \expandafter\@gobble
+ \fi
+ }
+ {%
+ \message{Skipping expl3-dependent extensions}%
%<2ekernel> \endinput
-%<latexrelease> \@gobbletwo
- }%
-\input{expl3.ltx}
+%<latexrelease> \@gobble
+ }%
+ {%
+ \input{expl3.ltx}
+ \ifdefined\NewDocumentCommand
+ \else
+ \IfFileExists{xparse.ltx}
+ {\input{xparse.ltx}}
+ {}%
+ \fi
+ }%
+\else
+ \GenericInfo{}{Skipping: expl3 code already part of the format}
+\fi
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>