summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-05-15 20:41:35 +0000
committerKarl Berry <karl@freefriends.org>2022-05-15 20:41:35 +0000
commit468f3f2d5e21e51d77dc26d0141b245976b34bd8 (patch)
treeee99548dd8ceef0abe0eed514d0c503aeccdac92 /Master/texmf-dist/tex/generic/polexpr/polexpr.sty
parent622b49804740c998dab033ab7dfaca46062d9944 (diff)
polexpr (15may22)
git-svn-id: svn://tug.org/texlive/trunk@63306 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/generic/polexpr/polexpr.sty')
-rw-r--r--Master/texmf-dist/tex/generic/polexpr/polexpr.sty19
1 files changed, 11 insertions, 8 deletions
diff --git a/Master/texmf-dist/tex/generic/polexpr/polexpr.sty b/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
index 7d3dbb36bda..b652675d916 100644
--- a/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
+++ b/Master/texmf-dist/tex/generic/polexpr/polexpr.sty
@@ -2,7 +2,7 @@
% License: LPPL 1.3c (author-maintained)
% Usage: \input polexpr.sty (Plain or other macro formats)
% or \usepackage{polexpr} (LaTeX macro format)
-% Release 0.8.6 (2022/01/09) of polexpr.sty. This file inputs
+% Release 0.8.7 (2022/05/14) of polexpr.sty. This file inputs
% polexprcore.tex
% polexprexpr.tex
% polexprsturm.tex
@@ -54,7 +54,7 @@
\XINTsetupcatcodes% (does \endlinechar13 in particular)
\XINT_providespackage
\ProvidesPackage{polexpr}%
- [2022/01/09 v0.8.6 Polynomial expressions with rational coefficients (JFB)]%
+ [2022/05/14 v0.8.7 Polynomial expressions with rational coefficients (JFB)]%
\begingroup
\def\x#1/#2/#3 #4\xint:{#1#2#3}%
\ifnum\expandafter\x\expanded{\csname ver@xintexpr.sty\endcsname}\xint:
@@ -199,12 +199,15 @@
%%
%% \poldef
%%
-\def\PolDef{\POL@chkopt\POL@oPolDef[x]}%
-\def\POL@oPolDef[#1]#2#3{\poldef #2(#1):={#3};}%
-\def\poldef{\edef\POL@restoresemicolon{\catcode59=\the\catcode59\relax}%
- \catcode59 12 \POL@defpol}%
+%% Ever since 1.0, catcode sanitisation was minimal and only handled
+%% the semicolon. At last 0.8.7 uses \xintexprSafeCatcodes to enhance
+%% compatibility with hostile contexts such as babel+french. This
+%% adds overhead but at least is coherent with \xintdefvar/\xintdeffunc
+\def\PolDef{\xintexprSafeCatcodes\POL@chkopt\POL@oPolDef[x]}%
+\def\POL@oPolDef[#1]#2#3{\POL@defpol #2(#1):={#3};}%
+\def\poldef{\xintexprSafeCatcodes\POL@defpol}%
\def\POL@defpol #1(#2)#3=#4;{%
- \POL@restoresemicolon
+ \xintexprRestoreCatcodes
\edef\POL@polname{\xint_zapspaces #1 \xint_gobble_i}%
\begingroup
\unless\ifxintveryverbose\xintverbosefalse\fi
@@ -214,7 +217,7 @@
%% the associated macros was then deconstructed in further analysis
%% via non-expandable approach. At 0.8 the polynomial algebra has
%% been implemented expandably allowing direct plug-in into \xintexpr
- \xintdefvar __pol = subs(#4,#2=qraw({{P1.{0/1[0]}{1/1[0]}}}));%
+ \xintdefvar_a __pol = subs(#4,#2=qraw({{P1.{0/1[0]}{1/1[0]}}}));%
\expandafter
\endgroup
\expandafter\def\expandafter\POL@result\expandafter