1
0
mirror of https://https.git.savannah.gnu.org/git/gnulib.git synced 2026-05-13 15:13:36 +00:00

(__xstrtol) [STRING_TO_UNSIGNED]: Return

LONGINT_INVALID for strings that begin with `-'.
This commit is contained in:
Jim Meyering
1998-09-26 19:11:23 +00:00
parent 09fbc76680
commit 3bf75404dc

View File

@@ -69,6 +69,18 @@ extern int errno;
# define LONG_MAX TYPE_MAXIMUM (long int)
#endif
#if defined (STDC_HEADERS) || (!defined (isascii) && !defined (HAVE_ISASCII))
# define IN_CTYPE_DOMAIN(c) 1
#else
# define IN_CTYPE_DOMAIN(c) isascii(c)
#endif
#ifdef isblank
# define ISBLANK(c) (IN_CTYPE_DOMAIN (c) && isblank (c))
#else
# define ISBLANK(c) ((c) == ' ' || (c) == '\t')
#endif
#include "xstrtol.h"
__unsigned long int __strtol ();
@@ -107,6 +119,18 @@ __xstrtol (const char *s, char **ptr, int strtol_base,
p = (ptr ? ptr : &t_ptr);
#if STRING_TO_UNSIGNED
{
const char *q = s;
while (ISBLANK (*q))
{
++q;
}
if (*q == '-')
return LONGINT_INVALID;
}
#endif
errno = 0;
tmp = __strtol (s, p, strtol_base);
if (errno != 0)