Fixed various problems with the latest stdbool.h changes, including stdbool.h itself:

- SupportDefs.h only includes stdbool.h if included from C
- stdbool.h for C++ now includes a macro for "bool" as defined by that header
- stdbool.h does nothing if __bool_true_false_are_defined is already defined
- stdbool.h no longer defines a _Bool enum, but defines _Bool as unsigned char, as
  previously done by SupportDefs.h (the previous version changed the size).
- The gensyscalls Jamfile now preprocesses its headers in C++ mode so that "bool"
  stays "bool", and doesn't become _Bool.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12042 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Axel Dörfler 2005-03-26 18:01:40 +00:00
parent e2408620c3
commit 61ad5bc2e7
3 changed files with 33 additions and 50 deletions

View File

@ -1,5 +1,5 @@
//------------------------------------------------------------------------------
// Copyright (c) 2001-2002, OpenBeOS
// Copyright (c) 2004-2005, Haiku
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
@ -32,7 +32,7 @@
typedef unsigned long ulong;
typedef unsigned int uint;
typedef unsigned short ushort;
#endif // _SYS_TYPES_H / _SYS_TYPES_H_
#endif
// Standard Includes -----------------------------------------------------------
@ -40,17 +40,8 @@ typedef unsigned short ushort;
// System Includes -------------------------------------------------------------
#include <BeBuild.h>
#include <sys/types.h>
#include <stdbool.h>
#include <Errors.h>
// Project Includes ------------------------------------------------------------
// Local Includes --------------------------------------------------------------
// Local Defines ---------------------------------------------------------------
// Globals ---------------------------------------------------------------------
// Shorthand type formats ------------------------------------------------------
typedef signed char int8;
@ -106,26 +97,22 @@ extern _IMPEXP_BE const char *B_EMPTY_STRING;
#define max_c(a,b) ((a)>(b)?(a):(b))
#ifndef __cplusplus
#ifndef min
#define min(a,b) ((a)>(b)?(b):(a))
#endif
#ifndef max
#define max(a,b) ((a)>(b)?(a):(b))
#endif
# ifndef min
# define min(a,b) ((a)>(b)?(b):(a))
# endif
# ifndef max
# define max(a,b) ((a)>(b)?(a):(b))
# endif
#endif
// Grandfathering --------------------------------------------------------------
//#ifndef __cplusplus
//typedef enum { false = 0, true = 1 } _Bool;
//#define bool _Bool
//#define false 0
//#define true 1
//#endif
#ifndef __cplusplus
# include <stdbool.h>
#endif
#ifndef NULL
#define NULL (0)
# define NULL (0)
#endif
@ -160,21 +147,10 @@ extern _IMPEXP_ROOT void * get_stack_frame(void);
// use 'true' and 'false'
#ifndef FALSE
#define FALSE 0
# define FALSE 0
#endif
#ifndef TRUE
#define TRUE 1
# define TRUE 1
#endif
//------------------------------------------------------------------------------
#endif // _SUPPORT_DEFS_H
/*
* $Log $
*
* $Id $
*
*/

View File

@ -1,21 +1,28 @@
#ifndef _STDBOOL_H_
#define _STDBOOL_H_
/*
/*
* Copyright 2005, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
*/
#ifndef _STDBOOL_H_
#define _STDBOOL_H_
#ifndef __bool_true_false_are_defined
#ifndef __cplusplus
typedef enum { false = 0, true = 1 } _Bool;
#define true 1
#define false 0
//typedef enum { false = 0, true = 1 } _Bool;
// ToDo: this would change the bool size compared to standard BeOS
typedef unsigned char _Bool;
# define bool _Bool
# define true 1
# define false 0
#else
typedef bool _Bool;
#define true true
#define false false
# define _Bool bool
# define bool bool
# define true true
# define false false
#endif
#define bool _Bool
#define __bool_true_false_are_defined 1
#endif // __bool_true_false_are_defined
#endif /* _STDBOOL_H_ */

View File

@ -131,7 +131,7 @@ rule Preprocess
actions Preprocess
{
$(CC) -E "$(2)" $(CCFLAGS) $(CCDEFS) $(CCHDRS) -o "$(1)" ;
$(C++) -xc++ -E "$(2)" $(CCFLAGS) $(CCDEFS) $(CCHDRS) -o "$(1)" ;
}
Preprocess $(syscallsHeaderPP) : $(syscallsHeader) ;