texlive[62982] Master/texmf-dist: ifptex (8apr22)

commits+karl at tug.org commits+karl at tug.org
Fri Apr 8 23:44:40 CEST 2022


Revision: 62982
          http://tug.org/svn/texlive?view=revision&revision=62982
Author:   karl
Date:     2022-04-08 23:44:40 +0200 (Fri, 08 Apr 2022)
Log Message:
-----------
ifptex (8apr22)

Modified Paths:
--------------
    trunk/Master/texmf-dist/doc/generic/ifptex/LICENSE
    trunk/Master/texmf-dist/doc/generic/ifptex/README-ja.md
    trunk/Master/texmf-dist/doc/generic/ifptex/README.md
    trunk/Master/texmf-dist/tex/generic/ifptex/ifptex.sty
    trunk/Master/texmf-dist/tex/generic/ifptex/ifuptex.sty

Modified: trunk/Master/texmf-dist/doc/generic/ifptex/LICENSE
===================================================================
--- trunk/Master/texmf-dist/doc/generic/ifptex/LICENSE	2022-04-08 21:43:56 UTC (rev 62981)
+++ trunk/Master/texmf-dist/doc/generic/ifptex/LICENSE	2022-04-08 21:44:40 UTC (rev 62982)
@@ -1,6 +1,6 @@
 The MIT License
 
-Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+Copyright (c) 2008-2022 Takayuki YATO (aka. "ZR")
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal

Modified: trunk/Master/texmf-dist/doc/generic/ifptex/README-ja.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/ifptex/README-ja.md	2022-04-08 21:43:56 UTC (rev 62981)
+++ trunk/Master/texmf-dist/doc/generic/ifptex/README-ja.md	2022-04-08 21:44:40 UTC (rev 62982)
@@ -66,6 +66,15 @@
   * `\RequirepTeXng`  
     `\ifpTeXng` 不成立の場合はエラーを出す。  
     ※一応 `\RequireStrictpTeXng` もある。
+  * `\upTeXguessedversion` [mathchardef-トークン]  
+    upTeX のバージョンの推測値(を百倍した整数値)。  
+    ※1.23版以降では常に正確なバージョン値が得られる。  
+    ※upTeX 以外のエンジンでは 0 になる。
+  * `\RequireupTeXAtLeast{<要求値>}`  
+    `\upTeXguessedversion` の値が要求値より小さい場合はエラーを出す。
+  * `\RequireNativeupTeXAtLeast{<要求値>}`  
+    `\upTeXguessedversion` の値が要求値より小さいまたは `\ifnativeupTeX`
+    が不成立の場合はエラーを出す。
 
 
 ifuptex パッケージ ― ifptex の別名
@@ -88,6 +97,9 @@
 更新履歴
 --------
 
+  * Version 2.2  〈2022/04/03〉 
+      - `\upTeXguessedversion` を正式にサポート。
+      - `\Require(Native)upTeXAtLeast` を追加。
   * Version 2.1  〈2021/07/01〉 
       - 将来の版の pTeX に対応させる。
       - とある非公開機能を削除。

Modified: trunk/Master/texmf-dist/doc/generic/ifptex/README.md
===================================================================
--- trunk/Master/texmf-dist/doc/generic/ifptex/README.md	2022-04-08 21:43:56 UTC (rev 62981)
+++ trunk/Master/texmf-dist/doc/generic/ifptex/README.md	2022-04-08 21:44:40 UTC (rev 62982)
@@ -68,6 +68,16 @@
     Issues an error if `\ifnativeupTeX` fails.
   * `\RequirepTeXng`  
     Issues an error if `\ifpTeXng` fails.
+  * `\upTeXguessedversion` [mathchardef-token]  
+    The guessed value of upTeX version; given as a 100-folded integer.  
+    NB. On version 1.23 or later, the value is correct.  
+    NB. On a non-upTeX engine, the value is zero.
+  * `\RequireupTeXAtLeast{<required>}`  
+    Issues an error if `\upTeXguessedversion` is smaller than the given
+    required value.
+  * `\RequireNativeupTeXAtLeast{<required>}`  
+    Issues an error either if `\upTeXguessedversion` is smaller than
+    the given required value or if `\ifnativeupTeX` fails.
 
 
 ifuptex Package ― Alias of ifptex
@@ -94,6 +104,9 @@
 Revision History
 ----------------
 
+  * Version 2.2  〈2022/04/03〉 
+      - Officialy support `\upTeXguessedversion`.
+      - Add `\Require(Native)upTeXAtLeast`.
   * Version 2.1  〈2021/07/01〉 
       - Adjust for the future version of pTeX.
       - Drop an undocumented feature.

Modified: trunk/Master/texmf-dist/tex/generic/ifptex/ifptex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ifptex/ifptex.sty	2022-04-08 21:43:56 UTC (rev 62981)
+++ trunk/Master/texmf-dist/tex/generic/ifptex/ifptex.sty	2022-04-08 21:44:40 UTC (rev 62982)
@@ -1,7 +1,7 @@
 %%
 %% This is file 'ifptex.sty'.
 %%
-%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2008-2022 Takayuki YATO (aka. "ZR")
 %%   GitHub:   https://github.com/zr-tex8r
 %%   Twitter:  @zr_tex8r
 %%
@@ -70,7 +70,7 @@
 
 %% package declaration
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ifptex}[2021/07/01 v2.1 pTeX checker]
+\ProvidesPackage{ifptex}[2022/04/03 v2.2 pTeX checker]
 \def\bxip at pkgname{ifptex}
 
 %% packages
@@ -138,7 +138,7 @@
     % do a hard stop
     \batchmode\read-1to\bxip at tmpa
   #3}
-\gdef\bxip at err@required#1{\bxip at Require\iftrue{#1}\fi}
+\gdef\bxip at err@required#1{\bxip at Require\iffalse{#1}\fi}
 
 %% \bxip at protected
 \let\bxip at protected\protected
@@ -149,17 +149,41 @@
 
 %--------------------------------------- guess version
 
-%% \bxip at uptex@new at version
-\global\mathchardef\bxip at uptex@new at version=19
-
 %%<+> \upTeXguessedversion
-% NB: The value of \upTeXguessedversion on pTeX is zero.
-\global\mathchardef\upTeXguessedversion=0
-\bxip at test@primitive\ptexversion\ifbxip at ok %<*version>
-% If \(u)ptexversion is supported...
+% A \mathchardef constant that represents the guessed version
+% of the upTeX engine. (123 means version 1.23.)
+%  - The version 1.23 or later has primitive \uptexversion/revision,
+%    from which the correct version value can be obtained.
+%  - For the older versions, the version value is guessed from various
+%    features of the engine, and the minimum possible values is stored
+%    to \upTeXguessedversion. (For the versions earlier than v0.06,
+%    however, \upTeXguessedversion is set to 1.)
+%  - If the engine is not regarded as upTeX (or its derivative), then
+%    \upTeXguessedversion is set to zero.
 
-  % get version from \uptexversion/revision
-  \bxip at test@primitive\uptexversion\ifbxip at ok
+% [Development history of upTeX until version 1.23]
+% Version 1.23 [2018-02-24] Introduce \uptexversion/revision
+% Version 1.22 [2017-01-15] Adopt blocks of Unicode v9.0.0
+% Version 1.21 [2016-02-20] Adopt blocks of Unicode v8.0.0
+% Version 1.20 [2014-12-29] Adopt blocks of Unicode v7.0.0
+% Version 1.11 [2012-09-21] (Fix bug on \meaning\kchardef)
+% Version 1.10 [2012-04-29] Adopt blocks of Unicode v6.1.0
+% Version 1.00 [2012-01-15] Adopt blocks of Unicode v6.0.0
+% Version 0.30 [2010-04-10] (No observable changes)
+% Version 0.29 [2010-01-31] Adopt blocks of Unicode v5.2.0
+% Version 0.28 [2009-08-23] (Fix bug on \if test)
+% Version 0.21 [2008-03-13] (Fix bug on \uppercase)
+% Version 0.19 [2007-12-26] Introduce \forcecjktoken
+% Version 0.12 [2007-08-25] Adjust newline after hangul
+% Version 0.11 [2007-08-07] (Fix bug on \jcharwidowpenalty)
+% Version 0.10 [2007-07-28] Introduce \kchar and \kchardef
+% Version 0.06 [2007-04-15] Introduce \enable/disablecjktoken
+% Version 0.00 [2007-01-27] Initial version
+
+\global\let\upTeXguessedversion\relax
+\bxip at test@primitive\uptexversion\ifbxip at ok
+  % If the engine has \uptexversion, it is upTeX of >= v1.23.
+  % The exact version can be known from \uptexversion/revision.
   \bxip at test@primitive\uptexrevision\ifbxip at ok
     \def\bxip at tmpa#1#2#3#4\relax{%
       \chardef\bxip at tmpa=0\relax
@@ -171,30 +195,66 @@
     \multiply\bxip at cnta100\relax
     \advance\bxip at cnta\bxip at tmpa
     \global\mathchardef\upTeXguessedversion=\bxip at cnta
-  \fi\fi
-
-\else               %<*!version>
-% If \(u)ptexversion is not supported...
-
-% if \ucs exists, then gv >= 1
-\bxip at test@primitive\ucs\ifbxip at ok
-  \global\mathchardef\upTeXguessedversion=1
-  % if \enablecjktoken exists, then gv >= 6
-  \bxip at test@primitive\enablecjktoken\ifbxip at ok
-    \global\mathchardef\upTeXguessedversion=6
-    % if \kchar exists, then gv >= 10
-    \bxip at test@primitive\kchar\ifbxip at ok
-      \global\mathchardef\upTeXguessedversion=10
-      % if \forcecjktoken exists, then gv >= 19
-      \bxip at test@primitive\forcecjktoken\ifbxip at ok
-        \global\mathchardef\upTeXguessedversion=19
-      \fi
-    \fi
+  \else % UNEXPECTED CASE
+    \global\mathchardef\upTeXguessedversion=0
   \fi
 \fi
+\ifx\upTeXguessedversion\relax % still unknown
+  \bxip at test@primitive\ptexversion\ifbxip at ok
+    % If the engine has \ptexversion but not \uptexversion,
+    % it is a real pTeX.
+    \global\mathchardef\upTeXguessedversion=0
+    % Note: The recent version of pTeX has primitive \ucs.
+  \fi
+\fi
+\ifx\upTeXguessedversion\relax % still unknown
+  \bxip at test@primitive\ucs\ifbxip at ok\else
+    % If the engine does not have \ucs, it is pTeX.
+    \global\mathchardef\upTeXguessedversion=0
+  \fi
+\fi
+% Here if \upTeXguessedversion is not zero, it is upTeX definitely.
+\ifx\upTeXguessedversion\relax % still unknown
+  % If \uptexversion is missing, I guess the version according to
+  % the way the Unicode blocks are divided.
+  \def\bxip at tmpa#1#2{% check if #1 and #2 belong to different blocks
+    \bxip at true{ifbxip at ok}\begingroup
+      \kcatcode#1=16\kcatcode#2=17\relax
+      \ifnum\kcatcode#1=17 \aftergroup\bxip at tmpb \fi
+    \endgroup}
+  \def\bxip at tmpb{\bxip at false{ifbxip at ok}}
+  \bxip at tmpa{"1C50}{"1C80}\ifbxip at ok
+    \global\mathchardef\upTeXguessedversion=122
+  \else\bxip at tmpa{"AB30}{"AB70}\ifbxip at ok
+    \global\mathchardef\upTeXguessedversion=121
+  \else\bxip at tmpa{"1A20}{"1AB0}\ifbxip at ok
+    \global\mathchardef\upTeXguessedversion=120
+  \else\bxip at tmpa{"840}{"8A0}\ifbxip at ok
+    \global\mathchardef\upTeXguessedversion=110
+  \else\bxip at tmpa{"800}{"840}\ifbxip at ok
+    \global\mathchardef\upTeXguessedversion=100
+  \else\bxip at tmpa{"7C0}{"800}\ifbxip at ok
+    \global\mathchardef\upTeXguessedversion=29
+  \else
+    \global\mathchardef\upTeXguessedversion=1
+  \fi\fi\fi\fi\fi\fi
+\fi
+% I guess the more correct version according to the existence
+% and/or the behavior of the specific primitives.
+\ifnum\upTeXguessedversion=1 % v0.00-0.28
+  \bxip at test@primitive\forcecjktoken\ifbxip at ok
+    % \forcecjktoken exists
+    \global\mathchardef\upTeXguessedversion=19
+  \else\bxip at test@primitive\kchar\ifbxip at ok
+    % \kchar exists
+    \global\mathchardef\upTeXguessedversion=10
+  \else\bxip at test@primitive\enablecjktoken\ifbxip at ok
+    % \enablecjktoken exists
+    \global\mathchardef\upTeXguessedversion=6
+  % else \upTeXguessedversion=1 (v0.00-0.05)
+  \fi\fi\fi
+\fi
 
-\fi                 %</version>
-
 %--------------------------------------- public stuffs
 % Note:
 % 1) Names '\ifFooTeX' were used in old iftex.
@@ -278,6 +338,20 @@
 \bxip at protected\gdef\RequireStrictpTeXng{%
   \bxip at Require\ifstrictpTeXng{pTeX-ng}\fi}
 
+%%<+> \RequireupTeXAtLeast{<min_version>}
+\bxip at protected\gdef\RequireupTeXAtLeast#1{%
+  \ifupTeX
+    \bxip at check@version\upTeXguessedversion{#1}{upTeX}%
+  \else \bxip at err@required{upTeX}%
+  \fi}
+
+%%<+> \RequireNativeupTeXAtLeast{<min_version>}
+\bxip at protected\gdef\RequireNativeupTeXAtLeast#1{%
+  \ifnativeupTeX
+    \bxip at check@version\upTeXguessedversion{#1}{upTeX in Unicode}%
+  \else \bxip at err@required{upTeX in Unicode}%
+  \fi}
+
 %--------------------------------------- deprecated stuffs
 
 %%<+>D \ifNativeupTeX == \ifnativeupTeX
@@ -285,6 +359,9 @@
 %%<+>D \RequirenativeupTeX == \RequireNativeupTeX
 \gdef\RequirenativeupTeX{\RequireNativeupTeX}
 
+%% \bxip at uptex@new at version
+\global\mathchardef\bxip at uptex@new at version=19
+
 %%<+>D \ifnewupTeX
 \global\bxip at false{ifnewupTeX}
 \ifnum\upTeXguessedversion<\bxip at uptex@new at version\else
@@ -295,19 +372,13 @@
 \gdef\RequireNewupTeX{%
   \bxip at with@default\bxip at uptex@new at version\bxip at require@new at uptex@a}
 \gdef\bxip at require@new at uptex@a[#1]{%
-  \ifupTeX
-    \bxip at check@version\upTeXguessedversion{#1}{upTeX}%
-  \else \bxip at err@required{upTeX}%
-  \fi}
+  \RequireupTeXAtLeast{#1}}
 
 %%<+>D \RequireNativeNewupTeX
 \gdef\RequireNativeNewupTeX{%
   \bxip at with@default\bxip at uptex@new at version\bxip at require@new at uptex@b}
 \gdef\bxip at require@new at uptex@b[#1]{%
-  \ifnativeupTeX
-    \bxip at check@version\upTeXguessedversion{#1}{upTeX in Unicode}%
-  \else \bxip at err@required{upTeX in Unicode}%
-  \fi}
+  \RequireNativeupTeXAtLeast{#1}}
 
 %--------------------------------------- all done
 \endgroup

Modified: trunk/Master/texmf-dist/tex/generic/ifptex/ifuptex.sty
===================================================================
--- trunk/Master/texmf-dist/tex/generic/ifptex/ifuptex.sty	2022-04-08 21:43:56 UTC (rev 62981)
+++ trunk/Master/texmf-dist/tex/generic/ifptex/ifuptex.sty	2022-04-08 21:44:40 UTC (rev 62982)
@@ -1,7 +1,7 @@
 %%
 %% This is file 'ifuptex.sty'.
 %% 
-%% Copyright (c) 2008-2021 Takayuki YATO (aka. "ZR")
+%% Copyright (c) 2008-2022 Takayuki YATO (aka. "ZR")
 %%   GitHub:   https://github.com/zr-tex8r
 %%   Twitter:  @zr_tex8r
 %%
@@ -52,7 +52,7 @@
 
 %% package declaration
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{ifuptex}[2021/07/01 v2.1 pTeX checker]
+\ProvidesPackage{ifuptex}[2022/04/03 v2.2 pTeX checker]
 
 %% load ifptex
 \bxip at input



More information about the tex-live-commits mailing list.