annotate lib/xstrtol.h @ 1393:942e099ca5e1

(__ZLONG_MAX): Remove.
author Jim Meyering <jim@meyering.net>
date Mon, 29 Jun 1998 15:24:15 +0000
parents 8de2d981b46f
children 891c8561137d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
764
Jim Meyering <jim@meyering.net>
parents: 760
diff changeset
1 #ifndef XSTRTOL_H_
Jim Meyering <jim@meyering.net>
parents: 760
diff changeset
2 # define XSTRTOL_H_ 1
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
3
760
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
4 # if STRING_TO_UNSIGNED
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
5 # define __xstrtol xstrtoul
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
6 # define __strtol strtoul
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
7 # define __unsigned unsigned
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
8 # else
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
9 # define __xstrtol xstrtol
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
10 # define __strtol strtol
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
11 # define __unsigned /* empty */
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
12 # endif
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
13
1170
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
14 # ifndef PARAMS
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
15 # if defined PROTOTYPES || (defined __STDC__ && __STDC__)
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
16 # define PARAMS(Args) Args
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
17 # else
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
18 # define PARAMS(Args) ()
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
19 # endif
760
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
20 # endif
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
21
1170
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
22 # ifndef _STRTOL_ERROR
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
23 enum strtol_error
Jim Meyering <jim@meyering.net>
parents:
diff changeset
24 {
Jim Meyering <jim@meyering.net>
parents:
diff changeset
25 LONGINT_OK, LONGINT_INVALID, LONGINT_INVALID_SUFFIX_CHAR, LONGINT_OVERFLOW
Jim Meyering <jim@meyering.net>
parents:
diff changeset
26 };
Jim Meyering <jim@meyering.net>
parents:
diff changeset
27 typedef enum strtol_error strtol_error;
1170
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
28 # endif
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
29
Jim Meyering <jim@meyering.net>
parents:
diff changeset
30 strtol_error
742
cddc2692eef4 Define and use macro, PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 400
diff changeset
31 __xstrtol PARAMS ((const char *s, char **ptr, int base,
cddc2692eef4 Define and use macro, PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 400
diff changeset
32 __unsigned long int *val, const char *valid_suffixes));
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
33
1170
8de2d981b46f Use PARAMS, not __P.
Jim Meyering <jim@meyering.net>
parents: 871
diff changeset
34 # undef _STRTOL_ERROR
760
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
35 # define _STRTOL_ERROR(Exit_code, Str, Argument_type_string, Err) \
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
36 do \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
37 { \
759
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
38 switch ((Err)) \
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
39 { \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
40 case LONGINT_OK: \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
41 abort (); \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
42 \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
43 case LONGINT_INVALID: \
759
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
44 error ((Exit_code), 0, "invalid %s `%s'", \
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
45 (Argument_type_string), (Str)); \
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
46 break; \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
47 \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
48 case LONGINT_INVALID_SUFFIX_CHAR: \
759
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
49 error ((Exit_code), 0, "invalid character following %s `%s'", \
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
50 (Argument_type_string), (Str)); \
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
51 break; \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
52 \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
53 case LONGINT_OVERFLOW: \
400
a4121ca0720b merge with 1.11.d
Jim Meyering <jim@meyering.net>
parents: 396
diff changeset
54 /* FIXME: make this message dependent on STRING_TO_UNSIGNED */\
759
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
55 error ((Exit_code), 0, "%s `%s' larger than maximum long int",\
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
56 (Argument_type_string), (Str)); \
366
Jim Meyering <jim@meyering.net>
parents:
diff changeset
57 break; \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
58 } \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
59 } \
Jim Meyering <jim@meyering.net>
parents:
diff changeset
60 while (0)
Jim Meyering <jim@meyering.net>
parents:
diff changeset
61
760
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
62 # define STRTOL_FATAL_ERROR(Str, Argument_type_string, Err) \
759
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
63 _STRTOL_ERROR (2, Str, Argument_type_string, Err)
373
Jim Meyering <jim@meyering.net>
parents: 366
diff changeset
64
760
360e64e5f9c2 cpp-indent
Jim Meyering <jim@meyering.net>
parents: 759
diff changeset
65 # define STRTOL_FAIL_WARN(Str, Argument_type_string, Err) \
759
fc727aca2aa4 libitize
Jim Meyering <jim@meyering.net>
parents: 742
diff changeset
66 _STRTOL_ERROR (0, Str, Argument_type_string, Err)
373
Jim Meyering <jim@meyering.net>
parents: 366
diff changeset
67
764
Jim Meyering <jim@meyering.net>
parents: 760
diff changeset
68 #endif /* not XSTRTOL_H_ */