[latex3-commits] [git/LaTeX3-latex3-latex3] master: Add \c_sys_engine_version_str (39cb3fa)

Joseph Wright joseph.wright at morningstar2.co.uk
Wed May 2 23:10:00 CEST 2018


Repository : https://github.com/latex3/latex3
On branch  : master
Link       : https://github.com/latex3/latex3/commit/39cb3fa6e8fafc175f0b579fa2e76fdeb26f9c7d

>---------------------------------------------------------------

commit 39cb3fa6e8fafc175f0b579fa2e76fdeb26f9c7d
Author: Joseph Wright <joseph.wright at morningstar2.co.uk>
Date:   Wed May 2 22:10:00 2018 +0100

    Add \c_sys_engine_version_str
    
    Thoughts on the nature of the string welcome!


>---------------------------------------------------------------

39cb3fa6e8fafc175f0b579fa2e76fdeb26f9c7d
 l3kernel/l3candidates.dtx               |   80 +++++++++++++++++++++++++++++++
 l3kernel/testfiles/m3expl001.luatex.tlg |    1 +
 l3kernel/testfiles/m3expl001.ptex.tlg   |    1 +
 l3kernel/testfiles/m3expl001.tlg        |    1 +
 l3kernel/testfiles/m3expl001.uptex.tlg  |    1 +
 l3kernel/testfiles/m3expl001.xetex.tlg  |    1 +
 l3kernel/testfiles/m3expl003.luatex.tlg |    1 +
 l3kernel/testfiles/m3expl003.ptex.tlg   |    1 +
 l3kernel/testfiles/m3expl003.tlg        |    1 +
 l3kernel/testfiles/m3expl003.uptex.tlg  |    1 +
 l3kernel/testfiles/m3expl003.xetex.tlg  |    1 +
 11 files changed, 90 insertions(+)

diff --git a/l3kernel/l3candidates.dtx b/l3kernel/l3candidates.dtx
index c6f6e2f..aaaf525 100644
--- a/l3kernel/l3candidates.dtx
+++ b/l3kernel/l3candidates.dtx
@@ -695,6 +695,27 @@
 %
 % \section{Additions to \pkg{l3sys}}
 %
+% \begin{variable}[added = 2018-05-02]{\c_sys_engine_version_str}
+%   The version string of the current engine, in the same form as
+%   given in the banner issued when running a job. For \pdfTeX{}
+%   and \LuaTeX{} this is of the form
+%   \begin{quote}
+%     \meta{major}.\meta{minor}.\meta{revision}
+%   \end{quote}
+%   For \XeTeX{}, the form is
+%   \begin{quote}
+%     \meta{major}.\meta{minor}
+%   \end{quote}
+%   For \pTeX{} and \upTeX{}, only releases since \TeX{} Live 2018
+%   make the data available, and the form is more complex, as it comprises
+%   the \pTeX{} version, the \upTeX{} version and the e-\pTeX{} version.
+%   \begin{quote}
+%     p\meta{major}.\meta{minor}.\meta{revision}-u\meta{major}.\meta{minor}^^A
+%     -\meta{epTeX}
+%   \end{quote}
+%   where the |u| part is only present for \upTeX{}.
+% \end{variable}
+%
 % \begin{function}[added = 2017-05-27, EXP, pTF]{\sys_if_rand_exist:}
 %   \begin{syntax}
 %     \cs{sys_if_rand_exist_p:}
@@ -2530,6 +2551,65 @@
 %<@@=sys>
 %    \end{macrocode}
 %
+% \begin{variable}{\c_sys_engine_version_str}
+%   Various different engines, various different ways to extract the
+%   data!
+%    \begin{macrocode}
+\str_const:Nx \c_sys_engine_version_str
+  {
+    \str_case:on \c_sys_engine_str
+      {
+        { pdftex }
+          {
+            \fp_eval:n { round(\int_use:N \tex_pdftexversion:D / 100 , 2) }
+            .
+            \tex_pdftexrevision:D
+          }
+        { ptex }
+          {
+            \cs_if_exist:NT \tex_ptexversion:D
+              {
+                p
+                \int_use:N  \tex_ptexversion:D
+                \tex_ptexrevision:D
+                \int_use:N \tex_ptexminorversion:D
+                -
+                \int_use:N \tex_epTeXversion:D
+              }
+          }
+        { luatex }
+          {
+            \fp_eval:n { round(\int_use:N \tex_luatexversion:D / 100, 2) }
+            .
+            \tex_luatexrevision:D
+          }
+        { uptex }
+          {
+            \cs_if_exist:NT \tex_ptexversion:D
+              {
+                p
+                \int_use:N  \tex_ptexversion:D
+                \tex_ptexrevision:D
+                \int_use:N \tex_ptexminorversion:D
+                -
+                u
+                \int_use:N  \tex_uptexversion:D
+                \tex_uptexrevision:D
+                -
+                \int_use:N \tex_epTeXversion:D
+              }
+          }
+        { xetex }
+          {
+            \int_use:N \tex_XeTeXversion:D
+            .
+            \tex_XeTeXrevision:D
+          }
+      }
+  }
+%    \end{macrocode}
+% \end{variable}
+%
 % \begin{macro}[EXP, pTF]{\sys_if_rand_exist:}
 %   Currently, randomness exists under \pdfTeX{}, \LuaTeX{}, \pTeX{} and \upTeX{}.
 %    \begin{macrocode}
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index 6a580e9..6d20d4c 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -5732,6 +5732,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index e1638f7..87588df 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -5725,6 +5725,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index 3c353b9..9d80104 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -5725,6 +5725,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index f303722..6010072 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -5723,6 +5723,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 6dfc094..f9ed97d 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -5698,6 +5698,7 @@ Defining \seq_const_from_clist:cn on line ...
 Defining \seq_shuffle:N on line ...
 Defining \seq_gshuffle:N on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index 6a580e9..6d20d4c 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -5732,6 +5732,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index e1638f7..87588df 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -5725,6 +5725,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index 3c353b9..9d80104 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -5725,6 +5725,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index f303722..6010072 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -5723,6 +5723,7 @@ Defining \__seq_shuffle:NN on line ...
 Defining \__seq_shuffle_item:n on line ...
 Defining message LaTeX/kernel/shuffle-too-large on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 6dfc094..f9ed97d 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -5698,6 +5698,7 @@ Defining \seq_const_from_clist:cn on line ...
 Defining \seq_shuffle:N on line ...
 Defining \seq_gshuffle:N on line ...
 Defining \skip_split_finite_else_action:nnNN on line ...
+Defining \c_sys_engine_version_str on line ...
 Defining \sys_if_rand_exist:T on line ...
 Defining \sys_if_rand_exist:F on line ...
 Defining \sys_if_rand_exist:TF on line ...





More information about the latex3-commits mailing list