From e0c5d6d38a1f285f20a66692e46d2e607d6ff1dd Mon Sep 17 00:00:00 2001
From: Karl Berry <karl@freefriends.org>
Date: Sun, 14 May 2017 22:40:58 +0000
Subject: l3 (14may17)

git-svn-id: svn://tug.org/texlive/trunk@44351 c570f23f-e606-0410-a88d-b1316a301751
---
 .../source/latex/l3kernel/l3fp-parse.dtx           | 33 ++++++++++++++++++----
 1 file changed, 28 insertions(+), 5 deletions(-)

(limited to 'Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx')

diff --git a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
index 13d6b319723..83dca37310c 100644
--- a/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
+++ b/Master/texmf-dist/source/latex/l3kernel/l3fp-parse.dtx
@@ -38,7 +38,7 @@
 %          {latex-team@latex-project.org}^^A
 %    }^^A
 % }
-% \date{Released 2017/04/01}
+% \date{Released 2017/05/13}
 %
 % \maketitle
 %
@@ -986,15 +986,23 @@
 %   the unknown word could be a mistyped function as well as a mistyped
 %   constant, so there is no way to tell whether to look for arguments;
 %   we do not.
+%   The standard requires \enquote{inf} and \enquote{infinity} and
+%   \enquote{nan} to be recognized regardless of case, but we probably
+%   don't want to allow every \pkg{l3fp} word to have an arbitrary
+%   mixture of lower and upper case, so we test and use a
+%   differently-named control sequence.
 %    \begin{macrocode}
 \cs_new:Npn \@@_parse_word:Nw #1#2;
   {
     \cs_if_exist_use:cF { @@_parse_word_#2:N }
       {
-        \__msg_kernel_expandable_error:nnn
-          { kernel } { unknown-fp-word } {#2}
-        \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w
-        \@@_parse_infix:NN
+        \cs_if_exist_use:cF { @@_parse_caseless_ \str_fold_case:n {#2} :N }
+          {
+            \__msg_kernel_expandable_error:nnn
+              { kernel } { unknown-fp-word } {#2}
+            \exp_after:wN \c_nan_fp \exp:w \exp_end_continue_f:w
+            \@@_parse_infix:NN
+          }
       }
       #1
   }
@@ -1924,6 +1932,21 @@
 %
 % \begin{macro}[aux, EXP]
 %   {
+%     \@@_parse_caseless_inf:N,
+%     \@@_parse_caseless_infinity:N,
+%     \@@_parse_caseless_nan:N
+%   }
+%   Copies of \cs[no-index]{@@_parse_word_\ldots{}:N} commands, to allow
+%   arbitrary case as mandated by the standard.
+%    \begin{macrocode}
+\cs_new_eq:NN \@@_parse_caseless_inf:N \@@_parse_word_inf:N
+\cs_new_eq:NN \@@_parse_caseless_infinity:N \@@_parse_word_inf:N
+\cs_new_eq:NN \@@_parse_caseless_nan:N \@@_parse_word_nan:N
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[aux, EXP]
+%   {
 %     \@@_parse_word_pt:N , \@@_parse_word_in:N ,
 %     \@@_parse_word_pc:N , \@@_parse_word_cm:N , \@@_parse_word_mm:N ,
 %     \@@_parse_word_dd:N , \@@_parse_word_cc:N , \@@_parse_word_nd:N ,
-- 
cgit v1.2.3

