[latex3-commits] [git/LaTeX3-latex3-latex3] master: Make "unary not" work for tuples (see #438) (c92f0cb)

Bruno Le Floch bruno at le-floch.fr
Sun Feb 25 04:34:46 CET 2018


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

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

commit c92f0cbadef2b36bc96b616302086a1d1971d991
Author: Bruno Le Floch <bruno at le-floch.fr>
Date:   Sat Feb 24 22:34:46 2018 -0500

    Make "unary not" work for tuples (see #438)
    
    For floating point numbers I had decided that +0 and -0 are false and
    anything else is true.  Consistent with this, tuples are always true.


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

c92f0cbadef2b36bc96b616302086a1d1971d991
 l3kernel/l3fp-logic.dtx                 |    5 +++--
 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 +
 l3kernel/testfiles/m3fp-logic002.lvt    |    3 ++-
 l3kernel/testfiles/m3fp-logic002.tlg    |    1 +
 13 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/l3kernel/l3fp-logic.dtx b/l3kernel/l3fp-logic.dtx
index 678c76c..35e0c98 100644
--- a/l3kernel/l3fp-logic.dtx
+++ b/l3kernel/l3fp-logic.dtx
@@ -511,12 +511,12 @@
 %
 % \subsection{Boolean operations}
 %
-% \begin{macro}[EXP]{\@@_not_o:w}
+% \begin{macro}[EXP]{\@@_not_o:w, \@@_tuple_not_o:w}
 %   Return \texttt{true} or \texttt{false}, with two expansions, one to
 %   exit the conditional, and one to please \pkg{l3fp-parse}.  The first
 %   argument is provided by \pkg{l3fp-parse} and is ignored.
 %    \begin{macrocode}
-\cs_new:cpn { @@_not_o:w } #1 \s_@@ \@@_chk:w #2#3; @
+\cs_new:Npn \@@_not_o:w #1 \s_@@ \@@_chk:w #2#3; @
   {
     \if_meaning:w 0 #2
       \exp_after:wN \exp_after:wN \exp_after:wN \c_one_fp
@@ -524,6 +524,7 @@
       \exp_after:wN \exp_after:wN \exp_after:wN \c_zero_fp
     \fi:
   }
+\cs_new:Npn \@@_tuple_not_o:w #1 @ { \exp_after:wN \c_zero_fp }
 %    \end{macrocode}
 % \end{macro}
 %
diff --git a/l3kernel/testfiles/m3expl001.luatex.tlg b/l3kernel/testfiles/m3expl001.luatex.tlg
index b80430b..3634264 100644
--- a/l3kernel/testfiles/m3expl001.luatex.tlg
+++ b/l3kernel/testfiles/m3expl001.luatex.tlg
@@ -4089,6 +4089,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.ptex.tlg b/l3kernel/testfiles/m3expl001.ptex.tlg
index db96d11..f6fc677 100644
--- a/l3kernel/testfiles/m3expl001.ptex.tlg
+++ b/l3kernel/testfiles/m3expl001.ptex.tlg
@@ -4077,6 +4077,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.tlg b/l3kernel/testfiles/m3expl001.tlg
index ed28c87..cefe3ab 100644
--- a/l3kernel/testfiles/m3expl001.tlg
+++ b/l3kernel/testfiles/m3expl001.tlg
@@ -4077,6 +4077,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.uptex.tlg b/l3kernel/testfiles/m3expl001.uptex.tlg
index bb61100..1599de4 100644
--- a/l3kernel/testfiles/m3expl001.uptex.tlg
+++ b/l3kernel/testfiles/m3expl001.uptex.tlg
@@ -4077,6 +4077,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl001.xetex.tlg b/l3kernel/testfiles/m3expl001.xetex.tlg
index 7a5ae0c..06e222c 100644
--- a/l3kernel/testfiles/m3expl001.xetex.tlg
+++ b/l3kernel/testfiles/m3expl001.xetex.tlg
@@ -4087,6 +4087,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.luatex.tlg b/l3kernel/testfiles/m3expl003.luatex.tlg
index b80430b..3634264 100644
--- a/l3kernel/testfiles/m3expl003.luatex.tlg
+++ b/l3kernel/testfiles/m3expl003.luatex.tlg
@@ -4089,6 +4089,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.ptex.tlg b/l3kernel/testfiles/m3expl003.ptex.tlg
index db96d11..f6fc677 100644
--- a/l3kernel/testfiles/m3expl003.ptex.tlg
+++ b/l3kernel/testfiles/m3expl003.ptex.tlg
@@ -4077,6 +4077,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.tlg b/l3kernel/testfiles/m3expl003.tlg
index ed28c87..cefe3ab 100644
--- a/l3kernel/testfiles/m3expl003.tlg
+++ b/l3kernel/testfiles/m3expl003.tlg
@@ -4077,6 +4077,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.uptex.tlg b/l3kernel/testfiles/m3expl003.uptex.tlg
index bb61100..1599de4 100644
--- a/l3kernel/testfiles/m3expl003.uptex.tlg
+++ b/l3kernel/testfiles/m3expl003.uptex.tlg
@@ -4077,6 +4077,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3expl003.xetex.tlg b/l3kernel/testfiles/m3expl003.xetex.tlg
index 7a5ae0c..06e222c 100644
--- a/l3kernel/testfiles/m3expl003.xetex.tlg
+++ b/l3kernel/testfiles/m3expl003.xetex.tlg
@@ -4087,6 +4087,7 @@ Defining \__fp_minmax_auxi:ww on line ...
 Defining \__fp_minmax_auxii:ww on line ...
 Defining \__fp_minmax_break_o:w on line ...
 Defining \__fp_not_o:w on line ...
+Defining \__fp_tuple_not_o:w on line ...
 Defining \__fp_&_o:ww on line ...
 Defining \__fp_|_o:ww on line ...
 Defining \__fp_and_return:wNw on line ...
diff --git a/l3kernel/testfiles/m3fp-logic002.lvt b/l3kernel/testfiles/m3fp-logic002.lvt
index 66dfd83..85c979f 100644
--- a/l3kernel/testfiles/m3fp-logic002.lvt
+++ b/l3kernel/testfiles/m3fp-logic002.lvt
@@ -1,5 +1,5 @@
 %
-% Copyright (C) 2013 LaTeX3 Project
+% Copyright (C) 2013,2018 LaTeX3 Project
 %
 
 \documentclass{minimal}
@@ -39,6 +39,7 @@
     \fp_to_tl:n { -!-inf } \NEWLINE
     \fp_to_tl:n { -!-1**0 } \NEWLINE
     \fp_to_tl:n { -!-1**0.1 } \NEWLINE
+    \fp_to_tl:n { -!!-(1,2) } \NEWLINE
   }
 \TESTEXP { With~an~error }
   { \fp_to_tl:n { -!(-1)**0.1 } \NEWLINE }
diff --git a/l3kernel/testfiles/m3fp-logic002.tlg b/l3kernel/testfiles/m3fp-logic002.tlg
index ee00a2e..fe03493 100644
--- a/l3kernel/testfiles/m3fp-logic002.tlg
+++ b/l3kernel/testfiles/m3fp-logic002.tlg
@@ -26,6 +26,7 @@ TEST 3: Unary not, minus plus
 -0
 -0
 -0
+-1
 ============================================================
 ============================================================
 TEST 4: With an error





More information about the latex3-commits mailing list