s++; if (s == send) return 0;
if (isALPHA_FOLD_EQ(*s, 'F')) {
s++;
- if (s < send && (isALPHA_FOLD_EQ(*s, 'I'))) {
- s++; if (s == send || isALPHA_FOLD_NE(*s, 'N')) return 0;
- s++; if (s == send || isALPHA_FOLD_NE(*s, 'I')) return 0;
- s++; if (s == send || isALPHA_FOLD_NE(*s, 'T')) return 0;
- s++; if (s == send ||
- /* allow either Infinity or Infinite */
- !(isALPHA_FOLD_EQ(*s, 'Y') ||
- isALPHA_FOLD_EQ(*s, 'E'))) return 0;
- s++; if (s < send) return 0;
- } else {
- while (*s == '0') { /* 1.#INF00 */
- s++;
- }
- if (*s)
- return 0;
+ while (*s == '0') { /* 1.#INF00 */
+ s++;
+ }
+ if (*s) {
+ flags |= IS_NUMBER_TRAILING;
}
flags |= IS_NUMBER_INFINITY | IS_NUMBER_NOT_INT;
}
}
my @PInf = ("Inf", "inf", "INF", "+Inf",
- "Infinity", "INFINITE",
"1.#INF", "1#INF", "1.#INF00");
my @NInf = map { "-$_" } grep { ! /^\+/ } @PInf;
}
SKIP: {
- my @FInf = qw(Info Infiniti Infinityz);
+ my @FInf = qw(Infinity Infinite Info Inf123 Infiniti Infinityz);
if ($Config{usequadmath}) {
skip "quadmath strtoflt128() accepts false infinities", scalar @FInf;
}
- # Silence "isn't numeric in addition", that's kind of the point.
- local $^W = 0;
for my $i (@FInf) {
- cmp_ok("$i" + 0, '==', 0, "false infinity $i");
+ # Silence "isn't numeric in addition", that's kind of the point.
+ local $^W = 0;
+ cmp_ok("$i" + 0, '==', $PInf, "false infinity $i");
}
}