Annotation of embedaddon/lrzsz/lib/xstrtol.h, revision 1.1.1.1

1.1       misho       1: #ifndef _xstrtol_h_
                      2: #define _xstrtol_h_ 1
                      3: 
                      4: #if STRING_TO_UNSIGNED
                      5: # define __xstrtol xstrtoul
                      6: # define __strtol strtoul
                      7: # define __unsigned unsigned
                      8: # define __ZLONG_MAX ULONG_MAX
                      9: #else
                     10: # define __xstrtol xstrtol
                     11: # define __strtol strtol
                     12: # define __unsigned /* empty */
                     13: # define __ZLONG_MAX LONG_MAX
                     14: #endif
                     15: 
                     16: #undef __P
                     17: #if defined (__STDC__) && __STDC__
                     18: #define        __P(x) x
                     19: #else
                     20: #define        __P(x) ()
                     21: #endif
                     22: 
                     23: enum strtol_error
                     24:   {
                     25:     LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW
                     26:   };
                     27: typedef enum strtol_error strtol_error;
                     28: 
                     29: strtol_error
                     30:   __xstrtol __P ((const char *s, char **ptr, int base,
                     31:                  __unsigned long int *val, const char *valid_suffixes));
                     32: 
                     33: #define _STRTOL_ERROR(exit_code, str, argument_type_string, err)       \
                     34:   do                                                                   \
                     35:     {                                                                  \
                     36:       switch ((err))                                                   \
                     37:        {                                                               \
                     38:        case LONGINT_OK:                                                \
                     39:          abort ();                                                     \
                     40:                                                                        \
                     41:        case LONGINT_INVALID:                                           \
                     42:          error ((exit_code), 0, "invalid %s `%s'",                     \
                     43:                 (argument_type_string), (str));                        \
                     44:          break;                                                        \
                     45:                                                                        \
                     46:        case LONGINT_INVALID_SUFFIX_CHAR:                               \
                     47:          error ((exit_code), 0, "invalid character following %s `%s'", \
                     48:                 (argument_type_string), (str));                        \
                     49:          break;                                                        \
                     50:                                                                        \
                     51:        case LONGINT_OVERFLOW:                                          \
                     52:          /* FIXME: make this message dependent on STRING_TO_UNSIGNED */\
                     53:          error ((exit_code), 0, "%s `%s' larger than maximum long int",\
                     54:                 (argument_type_string), (str));                        \
                     55:          break;                                                        \
                     56:        }                                                               \
                     57:     }                                                                  \
                     58:   while (0)
                     59: 
                     60: #define STRTOL_FATAL_ERROR(str, argument_type_string, err)             \
                     61:   _STRTOL_ERROR (2, str, argument_type_string, err)
                     62: 
                     63: #define STRTOL_FAIL_WARN(str, argument_type_string, err)               \
                     64:   _STRTOL_ERROR (0, str, argument_type_string, err)
                     65: 
                     66: #endif /* _xstrtol_h_ */

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>