summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx')
-rw-r--r--Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx108
1 files changed, 62 insertions, 46 deletions
diff --git a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
index b0bb71b97f3..9c90e27a197 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3bootstrap.dtx
@@ -1,6 +1,6 @@
% \iffalse meta-comment
%
-%% File: l3bootstrap.dtx Copyright (C) 2011-2013 The LaTeX3 project
+%% File: l3bootstrap.dtx Copyright (C) 2011-2014 The LaTeX3 project
%%
%% It may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this
@@ -119,7 +119,7 @@
% \end{macrocode}
% \end{macro}
% \end{macro}
-\GetIdInfo$Id: l3bootstrap.dtx 4629 2013-12-29 20:59:49Z joseph $
+\GetIdInfo$Id: l3bootstrap.dtx 4640 2014-01-04 16:03:52Z joseph $
{L3 Bootstrap code}
%</driver|package>
%<*driver>
@@ -330,16 +330,16 @@
% Oberdiek's \pkg{luatex} package instead.
% \begin{macrocode}
%<*package>
-\def\@tempa%
- {%
- \def\@tempa{}%
- \RequirePackage{luatex}%
- \RequirePackage{pdftexcmds}%
- \let\pdfstrcmp\pdf@strcmp
- }
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname directlua\endcsname\relax
\else
+ \begingroup
+ \def\@tempa
+ {%
+ \endgroup
+ \RequirePackage{luatex}%
+ \RequirePackage{pdftexcmds}%
+ }%
\expandafter\@tempa
\fi
%</package>
@@ -348,7 +348,8 @@
% \subsection{The \tn{pdfstrcmp} primitive in \XeTeX{}}
%
% Only \pdfTeX{} has a primitive called \tn{pdfstrcmp}. The \XeTeX{}
-% version is just \tn{strcmp}, so there is some shuffling to do.
+% version is just \tn{strcmp}, so there is some shuffling to do. As
+% this is still a real primitive, using the \pdfTeX{} name is \enquote{safe}.
% \begin{macrocode}
\begingroup\expandafter\expandafter\expandafter\endgroup
\expandafter\ifx\csname pdfstrcmp\endcsname\relax
@@ -359,45 +360,60 @@
% \subsection{Engine requirements}
%
% The code currently requires functionality equivalent to \tn{pdfstrcmp}
-% in addition to \eTeX{}. The former is therefore used as a test for
-% a suitable engine.
+% in addition to \eTeX{}. In package mode, there is the slight caveat that
+% with \LuaTeX{} emulating this primitive is be done using a different
+% name as the expansion behaviour is different.
% \begin{macrocode}
-\begingroup\expandafter\expandafter\expandafter\endgroup
-\expandafter\ifx\csname pdfstrcmp\endcsname\relax
-%<*package>
- \PackageError{expl3}{Required primitives not found}
+\begingroup
+ \def\ShortText{Required primitives not found}%
+ \def\LongText%
{%
- LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\MessageBreak
- \MessageBreak
- These are available in engine versions:\MessageBreak
- - pdfTeX 1.30\MessageBreak
- - XeTeX 0.9994\MessageBreak
- - LuaTeX 0.40\MessageBreak
- or later.\MessageBreak
- \MessageBreak
- Loading of expl3 will abort!%
- }
- \expandafter\endinput
-%</package>
+ LaTeX3 requires the e-TeX primitives and \string\pdfstrcmp.\LineBreak
+ \LineBreak
+ These are available in engine versions:\LineBreak
+ - pdfTeX 1.30\LineBreak
+ - XeTeX 0.9994\LineBreak
+ - LuaTeX 0.40\LineBreak
+ or later.\LineBreak
+ \LineBreak
+ }%
+ \expandafter\ifx\csname pdfstrcmp\endcsname\relax
%<*initex>
- \newlinechar`\^^J\relax
- \errhelp{%
- LaTeX3 requires the e-TeX primitives and \pdfstrcmp.^^J%
- ^^J%
- These are available in engine versions:^^J%
- - pdfTeX 1.30^^J%
- - XeTeX 0.9994^^J%
- - LuaTeX 0.40^^J%
- or later.^^J%
- ^^J%
- For pdfTeX and XeTeX the '-etex' command-line switch is also
- needed.^^J%
- ^^J%
- Format building will abort!%
- }
- \errmessage{Required primitives not found}%
- \expandafter\end
-%</initex>
+ \def\LineBreak{^^J}%
+ \edef\Error%
+ {%
+ \endgroup
+ \newlinechar`\noexpand\^^J\relax
+ \errhelp
+ {%
+ \LongText
+ For pdfTeX and XeTeX the '-etex' command-line switch is also
+ needed.\LineBreak
+ \LineBreak
+ Format building will abort!\LineBreak
+ }%
+ \errmessage{\ShortText}%
+ \noexpand\end
+ }%
+ \expandafter\Error
+%</initex>
+%<*package>
+ \expandafter\ifx\csname pdf@strcmp\endcsname\relax
+ \def\LineBreak{\noexpand\MessageBreak}%
+ \edef\Error%
+ {%
+ \endgroup
+ \noexpand\PackageError{expl3}{\ShortText}
+ {\LongText Loading of expl3 will abort!}%
+ \noexpand\endinput
+ }%
+ \expandafter\expandafter\expandafter\Error
+ \else
+ \endgroup
+ \fi
+%</package>
+\else
+ \endgroup
\fi
% \end{macrocode}
%