summaryrefslogtreecommitdiff
path: root/macros/generic/polexpr/polexpr.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/generic/polexpr/polexpr.sty')
-rw-r--r--macros/generic/polexpr/polexpr.sty19
1 files changed, 11 insertions, 8 deletions
diff --git a/macros/generic/polexpr/polexpr.sty b/macros/generic/polexpr/polexpr.sty
index 7d3dbb36bd..b652675d91 100644
--- a/macros/generic/polexpr/polexpr.sty
+++ b/macros/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