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
pull/1/head
Yang Tse 18 years ago
parent 5f5a8ca905
commit 915e774a42
  1. 6
      ares_process.c
  2. 12
      configure.ac
  3. 26
      setup_once.h

@ -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));

@ -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

@ -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.
*/ */

Loading…
Cancel
Save