annotate src/lib/compat.h @ 696:c7f42a8e7176 HEAD

Reverted back the isdigit()/etc. They're defined to get int argument, so we shouldn't given them unsigned.
author Timo Sirainen <tss@iki.fi>
date Tue, 26 Nov 2002 21:30:34 +0200
parents 944758e83111
children fdc1fafb533d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
1 #ifndef __COMPAT_H
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2 #define __COMPAT_H
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
56
62fc6c729962 64bit off_t fixes
Timo Sirainen <tss@iki.fi>
parents: 5
diff changeset
4 /* well, this is obviously wrong since it assumes it's 64bit, but older
62fc6c729962 64bit off_t fixes
Timo Sirainen <tss@iki.fi>
parents: 5
diff changeset
5 GCCs don't define it and we really want it. */
62fc6c729962 64bit off_t fixes
Timo Sirainen <tss@iki.fi>
parents: 5
diff changeset
6 #ifndef LLONG_MAX
62fc6c729962 64bit off_t fixes
Timo Sirainen <tss@iki.fi>
parents: 5
diff changeset
7 # define LLONG_MAX 9223372036854775807LL
62fc6c729962 64bit off_t fixes
Timo Sirainen <tss@iki.fi>
parents: 5
diff changeset
8 #endif
62fc6c729962 64bit off_t fixes
Timo Sirainen <tss@iki.fi>
parents: 5
diff changeset
9
179
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
10 #if defined (UOFF_T_INT)
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
11 typedef unsigned int uoff_t;
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
12 #elif defined (UOFF_T_LONG)
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
13 typedef unsigned long uoff_t;
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
14 #elif defined (UOFF_T_LONG_LONG)
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
15 typedef unsigned long long uoff_t;
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
16 #else
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
17 # error uoff_t size not set
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
18 #endif
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
19
678
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
20 #ifndef HAVE_UINTMAX_T
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
21 # if SIZEOF_LONG_LONG > 0
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
22 typedef unsigned long long uintmax_t;
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
23 # else
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
24 typedef unsigned long uintmax_t;
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
25 # endif
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
26 #endif
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
27
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
28 #ifndef HAVE_SOCKLEN_T
1e5c655bad25 Renamed largest_t to uintmax_t which already exists in C99.
Timo Sirainen <tss@iki.fi>
parents: 572
diff changeset
29 typedef int socklen_t;
179
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
30 #endif
0ffecd4e7e1a added dec2str() function and largest_t type, removed itoa() and ltoa()
Timo Sirainen <tss@iki.fi>
parents: 56
diff changeset
31
692
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
32 #ifdef HAVE_SYS_SYSMACROS_H
693
21233287e9c1 And the missing sys/sysmacros.h include..
Timo Sirainen <tss@iki.fi>
parents: 692
diff changeset
33 # include <sys/sysmacros.h>
692
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
34 # define CMP_DEV_T(a, b) (major(a) == major(b) && minor(a) == minor(b))
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
35 #elif !defined (DEV_T_STRUCT)
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
36 # define CMP_DEV_T(a, b) ((a) == (b))
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
37 #else
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
38 # error I do not know how to compare dev_t
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
39 #endif
359f73bf84b5 Added CMP_DEV_T macro which uses major()/minor() if possible but fallbacks
Timo Sirainen <tss@iki.fi>
parents: 678
diff changeset
40
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
41 /* memmove() */
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
42 #ifndef HAVE_MEMMOVE
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
43 # define memmove my_memmove
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 void *my_memmove(void *dest, const void *src, size_t n);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45 #endif
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
46
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
47 /* strcasecmp(), strncasecmp() */
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
48 #ifndef HAVE_STRCASECMP
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
49 # ifdef HAVE_STRICMP
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
50 # define strcasecmp stricmp
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
51 # define strncasecmp strnicmp
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
52 # else
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
53 # define strcasecmp my_strcasecmp
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
54 # define strncasecmp my_strncasecmp
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
55 int my_strcasecmp(const char *s1, const char *s2);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
56 int my_strncasecmp(const char *s1, const char *s2, size_t max_chars);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
57 # endif
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
58 #endif
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
59
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
60 #ifndef HAVE_INET_ATON
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
61 # include <sys/socket.h>
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
62 # include <netinet/in.h>
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
63 # include <arpa/inet.h>
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
64 # define inet_aton my_inet_aton
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
65 int my_inet_aton(const char *cp, struct in_addr *inp);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
66 #endif
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
67
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
68 #ifndef HAVE_VSYSLOG
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
69 # define vsyslog my_vsyslog
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
70 void my_vsyslog(int priority, const char *format, va_list args);
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
71 #endif
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
72
5
1b34ec11fff8 Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents: 0
diff changeset
73 #ifndef HAVE_GETPAGESIZE
1b34ec11fff8 Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents: 0
diff changeset
74 # define getpagesize my_getpagesize
1b34ec11fff8 Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents: 0
diff changeset
75 int my_getpagesize(void);
1b34ec11fff8 Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents: 0
diff changeset
76 #endif
1b34ec11fff8 Message data is parsed in blocks (no longer entirely mmap()ed). Several
Timo Sirainen <tss@iki.fi>
parents: 0
diff changeset
77
494
83d4617e1dca Check fdatasync() from -lrt if it's not in libc (solaris). Also fallback to
Timo Sirainen <tss@iki.fi>
parents: 410
diff changeset
78 #ifndef HAVE_FDATASYNC
83d4617e1dca Check fdatasync() from -lrt if it's not in libc (solaris). Also fallback to
Timo Sirainen <tss@iki.fi>
parents: 410
diff changeset
79 # define fdatasync fsync
83d4617e1dca Check fdatasync() from -lrt if it's not in libc (solaris). Also fallback to
Timo Sirainen <tss@iki.fi>
parents: 410
diff changeset
80 #endif
83d4617e1dca Check fdatasync() from -lrt if it's not in libc (solaris). Also fallback to
Timo Sirainen <tss@iki.fi>
parents: 410
diff changeset
81
410
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
82 #ifndef HAVE_STRUCT_IOVEC
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
83 struct iovec {
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
84 void *iov_base;
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
85 size_t iov_len;
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
86 };
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
87 #endif
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
88
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
89 #ifndef HAVE_WRITEV
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
90 # define writev my_writev
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
91 struct iovec;
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
92 ssize_t my_writev(int fd, const struct iovec *iov, size_t iov_len);
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
93 #endif
1f0e7229ee58 Split IOBuffer into mmaped IBuffer, file IBuffer, memory data IBuffer and
Timo Sirainen <tss@iki.fi>
parents: 204
diff changeset
94
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
95 /* ctype.h isn't safe with signed chars,
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
96 use our own instead if really needed */
696
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
97 #define i_toupper(x) ((char) toupper((int) (unsigned char) (x)))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
98 #define i_tolower(x) ((char) tolower((int) (unsigned char) (x)))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
99 #define i_isalnum(x) isalnum((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
100 #define i_isalpha(x) isalpha((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
101 #define i_isascii(x) isascii((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
102 #define i_isblank(x) isblank((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
103 #define i_iscntrl(x) iscntrl((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
104 #define i_isdigit(x) isdigit((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
105 #define i_isgraph(x) isgraph((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
106 #define i_islower(x) islower((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
107 #define i_isprint(x) isprint((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
108 #define i_ispunct(x) ispunct((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
109 #define i_isspace(x) isspace((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
110 #define i_isupper(x) isupper((int) (unsigned char) (x))
c7f42a8e7176 Reverted back the isdigit()/etc. They're defined to get int argument, so we
Timo Sirainen <tss@iki.fi>
parents: 694
diff changeset
111 #define i_isxdigit(x) isxdigit((int) (unsigned char) (x))
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
112
572
3c6a0cb061c6 EOVERFLOW doesn't exist everywhere, fallback it to EINVAL.
Timo Sirainen <tss@iki.fi>
parents: 494
diff changeset
113 #ifndef EOVERFLOW
3c6a0cb061c6 EOVERFLOW doesn't exist everywhere, fallback it to EINVAL.
Timo Sirainen <tss@iki.fi>
parents: 494
diff changeset
114 # define EOVERFLOW EINVAL
0
3b1985cbc908 Initial revision
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
115 #endif
572
3c6a0cb061c6 EOVERFLOW doesn't exist everywhere, fallback it to EINVAL.
Timo Sirainen <tss@iki.fi>
parents: 494
diff changeset
116
3c6a0cb061c6 EOVERFLOW doesn't exist everywhere, fallback it to EINVAL.
Timo Sirainen <tss@iki.fi>
parents: 494
diff changeset
117 #endif