s++; if (s == send) return 0;
if (isALPHA_FOLD_EQ(*s, 'F')) {
s++;
- while (*s == '0') { /* 1.#INF00 */
+ if (s < send && (isALPHA_FOLD_EQ(*s, 'I'))) {
+ int fail =
+ flags | IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT | IS_NUMBER_TRAILING;
+ s++; if (s == send || isALPHA_FOLD_NE(*s, 'N')) return fail;
+ s++; if (s == send || isALPHA_FOLD_NE(*s, 'I')) return fail;
+ s++; if (s == send || isALPHA_FOLD_NE(*s, 'T')) return fail;
+ s++; if (s == send || isALPHA_FOLD_NE(*s, 'Y')) return fail;
s++;
+ } else if (odh) {
+ while (*s == '0') { /* 1.#INF00 */
+ s++;
+ }
}
while (s < send && isSPACE(*s))
s++;
}
my @PInf = ("Inf", "inf", "INF", "+Inf",
+ "Infinity",
"1.#INF", "1#INF", "1.#INF00");
my @NInf = map { "-$_" } grep { ! /^\+/ } @PInf;
}
SKIP: {
- my @FInf = qw(Infinity Infinite Info Inf123 Infiniti Infinityz);
+ my @FInf = qw(Infinite Info Inf123 Infiniti Infinityz);
if ($Config{usequadmath}) {
skip "quadmath strtoflt128() accepts false infinities", scalar @FInf;
}
my $T =
[
[ "inf", 0, $PInf ],
+ [ "infinity", 0, $PInf ],
[ "infxy", 1, $PInf ],
[ "inf34", 1, $PInf ],
[ "1.#INF", 0, $PInf ],