5 # define __xstrtol xstrtoul
6 # define __strtol strtoul
7 # define __unsigned unsigned
8 # define __ZLONG_MAX ULONG_MAX
10 # define __xstrtol xstrtol
11 # define __strtol strtol
12 # define __unsigned /* empty */
13 # define __ZLONG_MAX LONG_MAX
16 #if defined (__STDC__) && __STDC__
24 LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW
26 typedef enum strtol_error strtol_error;
29 __xstrtol __P ((const char *s, char **ptr, int base,
30 __unsigned long int *val, const char *valid_suffixes));
32 #define _STRTOL_ERROR(exit_code, str, argument_type_string, err) \
40 case LONGINT_INVALID: \
41 error ((exit_code), 0, "invalid %s `%s'", \
42 (argument_type_string), (str)); \
45 case LONGINT_INVALID_SUFFIX_CHAR: \
46 error ((exit_code), 0, "invalid character following %s `%s'", \
47 (argument_type_string), (str)); \
50 case LONGINT_OVERFLOW: \
51 error ((exit_code), 0, "%s `%s' larger than maximum long int",\
52 (argument_type_string), (str)); \
58 #define STRTOL_FATAL_ERROR(str, argument_type_string, err) \
59 _STRTOL_ERROR (2, str, argument_type_string, err)
61 #define STRTOL_FAIL_WARN(str, argument_type_string, err) \
62 _STRTOL_ERROR (0, str, argument_type_string, err)
64 #endif /* _xstrtol_h_ */