Check for stdbool.h at configuration stage, and include it if available.

Check for lowercase 'bool' type at configuration stage. If not available
provide a suitable replacement with a type definition of 'unsigned char'
in setup_once.h

Move definitions of TRUE and FALSE to setup_once.h
This commit is contained in:
Yang Tse
2007-02-22 02:51:54 +00:00
parent 39aac63521
commit 69565afab0
10 changed files with 78 additions and 49 deletions

View File

@@ -54,10 +54,6 @@
#include "ares_dns.h" #include "ares_dns.h"
#include "ares_private.h" #include "ares_private.h"
#ifndef TRUE
/* at least Solaris 7 does not have TRUE at this point */
#define TRUE 1
#endif
static int try_again(int errnum); static int try_again(int errnum);
static void write_tcp_data(ares_channel channel, fd_set *write_fds, static void write_tcp_data(ares_channel channel, fd_set *write_fds,
@@ -532,7 +528,7 @@ static int nonblock(ares_socket_t sockfd, /* operate on this */
int flags; int flags;
flags = fcntl(sockfd, F_GETFL, 0); flags = fcntl(sockfd, F_GETFL, 0);
if (TRUE == nonblock) if (FALSE != nonblock)
return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK); return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
else else
return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK)); return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK));

View File

@@ -308,6 +308,8 @@ AC_CHECK_HEADERS(
netdb.h \ netdb.h \
netinet/in.h \ netinet/in.h \
net/if.h \ net/if.h \
errno.h \
stdbool.h \
arpa/nameser.h \ arpa/nameser.h \
arpa/nameser_compat.h \ arpa/nameser_compat.h \
arpa/inet.h, arpa/inet.h,
@@ -369,6 +371,16 @@ fi
AC_CHECK_TYPE(ssize_t, , AC_CHECK_TYPE(ssize_t, ,
AC_DEFINE(ssize_t, int, [the signed version of size_t])) AC_DEFINE(ssize_t, int, [the signed version of size_t]))
# check for bool type
AC_CHECK_TYPE([bool],[
AC_DEFINE(HAVE_BOOL_T, 1,
[Define to 1 if bool is an available type.])
], ,[
#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
#endif
])
# Check for socklen_t or equivalent # Check for socklen_t or equivalent
CURL_CHECK_TYPE_SOCKLEN_T CURL_CHECK_TYPE_SOCKLEN_T

View File

@@ -62,6 +62,10 @@
#include <fcntl.h> #include <fcntl.h>
#endif #endif
#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
#endif
/* /*
* Definition of timeval struct for platforms that don't have it. * Definition of timeval struct for platforms that don't have it.
@@ -176,6 +180,28 @@ struct timeval {
(((unsigned char)x) == '\t')) (((unsigned char)x) == '\t'))
/*
* Typedef to 'unsigned char' if bool is not an available 'typedefed' type.
*/
#ifndef HAVE_BOOL_T
typedef unsigned char bool;
#define HAVE_BOOL_T
#endif
/*
* Default definition of uppercase TRUE and FALSE.
*/
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
/* /*
* Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type. * Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type.
*/ */

View File

@@ -1662,6 +1662,7 @@ AC_CHECK_HEADERS(
libgen.h \ libgen.h \
locale.h \ locale.h \
errno.h \ errno.h \
stdbool.h \
arpa/tftp.h \ arpa/tftp.h \
sys/filio.h \ sys/filio.h \
setjmp.h, setjmp.h,
@@ -1723,6 +1724,16 @@ fi
AC_CHECK_TYPE(ssize_t, , AC_CHECK_TYPE(ssize_t, ,
AC_DEFINE(ssize_t, int, [the signed version of size_t])) AC_DEFINE(ssize_t, int, [the signed version of size_t]))
# check for bool type
AC_CHECK_TYPE([bool],[
AC_DEFINE(HAVE_BOOL_T, 1,
[Define to 1 if bool is an available type.])
], ,[
#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
#endif
])
# Check for socklen_t or equivalent # Check for socklen_t or equivalent
CURL_CHECK_TYPE_SOCKLEN_T CURL_CHECK_TYPE_SOCKLEN_T

View File

@@ -79,11 +79,6 @@
#include <errno.h> #include <errno.h>
#include <string.h> #include <string.h>
#ifndef TRUE
#define TRUE 1
#define FALSE 0
#endif
#include "urldata.h" #include "urldata.h"
#include "sendf.h" #include "sendf.h"
#include "if2ip.h" #include "if2ip.h"
@@ -122,7 +117,7 @@ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */
int flags; int flags;
flags = fcntl(sockfd, F_GETFL, 0); flags = fcntl(sockfd, F_GETFL, 0);
if (TRUE == nonblock) if (FALSE != nonblock)
return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK); return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
else else
return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK)); return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK));

View File

@@ -120,18 +120,6 @@
#endif #endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#if !defined(__cplusplus) && !defined(__BEOS__) && !defined(__ECOS) && !defined(typedef_bool)
typedef unsigned char bool;
#define typedef_bool
#endif
#ifdef HAVE_LONGLONG #ifdef HAVE_LONGLONG
#define LONG_LONG long long #define LONG_LONG long long
#define ENABLE_64BIT #define ENABLE_64BIT

View File

@@ -69,6 +69,10 @@
#include <fcntl.h> #include <fcntl.h>
#endif #endif
#ifdef HAVE_STDBOOL_H
#include <stdbool.h>
#endif
/* /*
* Definition of timeval struct for platforms that don't have it. * Definition of timeval struct for platforms that don't have it.
@@ -183,6 +187,28 @@ struct timeval {
(((unsigned char)x) == '\t')) (((unsigned char)x) == '\t'))
/*
* Typedef to 'unsigned char' if bool is not an available 'typedefed' type.
*/
#ifndef HAVE_BOOL_T
typedef unsigned char bool;
#define HAVE_BOOL_T
#endif
/*
* Default definition of uppercase TRUE and FALSE.
*/
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
/* /*
* Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type. * Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type.
*/ */

View File

@@ -128,17 +128,6 @@
#include <floss.h> #include <floss.h>
#endif #endif
#ifndef TRUE
#define TRUE 1
#endif
#ifndef FALSE
#define FALSE 0
#endif
#if !defined(__cplusplus) && !defined(__BEOS__) && !defined(__ECOS) && !defined(typedef_bool)
typedef unsigned char bool;
#define typedef_bool
#endif
#ifndef OS #ifndef OS
#define OS "unknown" #define OS "unknown"

View File

@@ -12,6 +12,7 @@
version, but that might include "config.h" from the build dir so we need version, but that might include "config.h" from the build dir so we need
both of them in the include path), so that we get good in-depth knowledge both of them in the include path), so that we get good in-depth knowledge
about the system we're building this on */ about the system we're building this on */
#include "setup.h" #include "setup.h"
#include <curl.h> #include <curl.h>
@@ -32,14 +33,6 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#define TEST_ERR_MAJOR_BAD 100 #define TEST_ERR_MAJOR_BAD 100
#define TEST_ERR_RUNS_FOREVER 99 #define TEST_ERR_RUNS_FOREVER 99

View File

@@ -25,13 +25,6 @@
void logmsg(const char *msg, ...); void logmsg(const char *msg, ...);
#ifndef FALSE
#define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
#endif
#define TEST_DATA_PATH "%s/data/test%ld" #define TEST_DATA_PATH "%s/data/test%ld"
/* global variable, where to find the 'data' dir */ /* global variable, where to find the 'data' dir */