case 't':
*d++ = '\t';
break;
+#ifdef EBCDIC
+ case 'e':
+ *d++ = '\047'; /* CP 1047 */
+ break;
+ case 'a':
+ *d++ = '\057'; /* CP 1047 */
+ break;
+#else
case 'e':
*d++ = '\033';
break;
case 'a':
*d++ = '\007';
break;
+#endif
} /* end switch */
s++;
/* Call function. The function is expected to */
/* call "FILTER_READ(idx+1, buf_sv)" first. */
/* Return: <0:error, =0:eof, >0:not eof */
- return (*funcp)(aTHX_ idx, buf_sv, maxlen);
+ return (*funcp)(aTHXo_ idx, buf_sv, maxlen);
}
STATIC char *
register char *d; /* destination in temp buffer */
register char *e; /* end of temp buffer */
I32 tryiv; /* used to see if it can be an int */
- double value; /* number read, as a double */
+ NV value; /* number read, as a double */
SV *sv; /* place to put the converted number */
I32 floatit; /* boolean: int or float? */
char *lastub = 0; /* position of last underbar */
/* make an sv from the string */
sv = NEWSV(92,0);
- /* reset numeric locale in case we were earlier left in Swaziland */
- SET_NUMERIC_STANDARD();
- value = atof(PL_tokenbuf);
+
+ value = Atof(PL_tokenbuf);
/*
See if we can make do with an integer value without loss of
conversion at all.
*/
tryiv = I_V(value);
- if (!floatit && (double)tryiv == value)
+ if (!floatit && (NV)tryiv == value)
sv_setiv(sv, tryiv);
else
sv_setnv(sv, value);