From: Yang Tse Date: Thu, 22 Feb 2007 02:51:54 +0000 (+0000) Subject: Check for stdbool.h at configuration stage, and include it if available. X-Git-Tag: curl-7_16_2~252 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=69565afab0be081211df57a245a222cbd3e43ed3;p=thirdparty%2Fcurl.git 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 --- diff --git a/ares/ares_process.c b/ares/ares_process.c index 480948ebef..6b1b07154e 100644 --- a/ares/ares_process.c +++ b/ares/ares_process.c @@ -54,10 +54,6 @@ #include "ares_dns.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 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; flags = fcntl(sockfd, F_GETFL, 0); - if (TRUE == nonblock) + if (FALSE != nonblock) return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK); else return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK)); diff --git a/ares/configure.ac b/ares/configure.ac index 0165c5e902..e870d63d2c 100644 --- a/ares/configure.ac +++ b/ares/configure.ac @@ -308,6 +308,8 @@ AC_CHECK_HEADERS( netdb.h \ netinet/in.h \ net/if.h \ + errno.h \ + stdbool.h \ arpa/nameser.h \ arpa/nameser_compat.h \ arpa/inet.h, @@ -369,6 +371,16 @@ fi AC_CHECK_TYPE(ssize_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 +#endif +]) + # Check for socklen_t or equivalent CURL_CHECK_TYPE_SOCKLEN_T diff --git a/ares/setup_once.h b/ares/setup_once.h index 20ea3819dd..6911f1bcfc 100644 --- a/ares/setup_once.h +++ b/ares/setup_once.h @@ -62,6 +62,10 @@ #include #endif +#ifdef HAVE_STDBOOL_H +#include +#endif + /* * Definition of timeval struct for platforms that don't have it. @@ -176,6 +180,28 @@ struct timeval { (((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. */ diff --git a/configure.ac b/configure.ac index 814777d2b9..be3c5d7b20 100644 --- a/configure.ac +++ b/configure.ac @@ -1662,6 +1662,7 @@ AC_CHECK_HEADERS( libgen.h \ locale.h \ errno.h \ + stdbool.h \ arpa/tftp.h \ sys/filio.h \ setjmp.h, @@ -1723,6 +1724,16 @@ fi AC_CHECK_TYPE(ssize_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 +#endif +]) + # Check for socklen_t or equivalent CURL_CHECK_TYPE_SOCKLEN_T diff --git a/lib/connect.c b/lib/connect.c index 2b8e11ff82..14e2ff038b 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -79,11 +79,6 @@ #include #include -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif - #include "urldata.h" #include "sendf.h" #include "if2ip.h" @@ -122,7 +117,7 @@ int Curl_nonblock(curl_socket_t sockfd, /* operate on this */ int flags; flags = fcntl(sockfd, F_GETFL, 0); - if (TRUE == nonblock) + if (FALSE != nonblock) return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK); else return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK)); diff --git a/lib/setup.h b/lib/setup.h index d02eec92df..bd60db09d7 100644 --- a/lib/setup.h +++ b/lib/setup.h @@ -120,18 +120,6 @@ #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 #define LONG_LONG long long #define ENABLE_64BIT diff --git a/lib/setup_once.h b/lib/setup_once.h index 7af68bf3fc..79324d40f6 100644 --- a/lib/setup_once.h +++ b/lib/setup_once.h @@ -69,6 +69,10 @@ #include #endif +#ifdef HAVE_STDBOOL_H +#include +#endif + /* * Definition of timeval struct for platforms that don't have it. @@ -183,6 +187,28 @@ struct timeval { (((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. */ diff --git a/src/setup.h b/src/setup.h index 139b7467fc..641be4748f 100644 --- a/src/setup.h +++ b/src/setup.h @@ -128,17 +128,6 @@ #include #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 #define OS "unknown" diff --git a/tests/libtest/test.h b/tests/libtest/test.h index 5e298abbda..c7064f82ea 100644 --- a/tests/libtest/test.h +++ b/tests/libtest/test.h @@ -12,6 +12,7 @@ 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 about the system we're building this on */ + #include "setup.h" #include @@ -32,14 +33,6 @@ #include #endif -#ifndef FALSE -#define FALSE 0 -#endif - -#ifndef TRUE -#define TRUE 1 -#endif - #define TEST_ERR_MAJOR_BAD 100 #define TEST_ERR_RUNS_FOREVER 99 diff --git a/tests/server/util.h b/tests/server/util.h index 2848560bb3..69f2cfc3d6 100644 --- a/tests/server/util.h +++ b/tests/server/util.h @@ -25,13 +25,6 @@ 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" /* global variable, where to find the 'data' dir */