changed C source to use C booleans with backward compatibility

Fix "Under source code control" date for new version.h file.

Sorted the order of symbols printed by "make env".

Test if <stdbool.h> exists and set HAVE_STDBOOL_H accordingly
in have_stdbool.h.  Added HAVE_STDBOOL_H to allow one to force
this value.

Added "bool.h" include file to support use of boolean symbols,
true and false for pre-c99 C compilers.  The "bool.h" include
file defines TRUE as true, FALSE as false, and BOOL as bool:
for backward compatibility.

The sign in a ZVALUE is now of type SIGN, whcih is either
SB32 when CALC2_COMPAT is defined, or a bool.

Replaced in C source, TRUE with true, FALSE with false, and
BOOL with bool.
This commit is contained in:
Landon Curt Noll
2023-08-19 19:20:32 -07:00
parent e18b715f3f
commit 3c18e6e25b
71 changed files with 1267 additions and 1043 deletions

24
obj.c
View File

@@ -1,7 +1,7 @@
/*
* obj - object handling primitives
*
* Copyright (C) 1999-2007,2021,2022 David I. Bell
* Copyright (C) 1999-2007,2021-2023 David I. Bell
*
* Calc is open software; you can redistribute it and/or modify it under
* the terms of the version 2.1 of the GNU Lesser General Public License
@@ -173,8 +173,8 @@ STATIC OBJECTACTIONS **objects; /* table of actions for objects */
STATIC long maxobjcount = 0;
S_FUNC VALUE objpowi(VALUE *vp, NUMBER *q);
S_FUNC BOOL objtest(OBJECT *op);
S_FUNC BOOL objcmp(OBJECT *op1, OBJECT *op2);
S_FUNC bool objtest(OBJECT *op);
S_FUNC bool objcmp(OBJECT *op1, OBJECT *op2);
S_FUNC void objprint(OBJECT *op);
@@ -402,9 +402,9 @@ objprint(OBJECT *op)
/*
* Test an object for being "nonzero".
* This is the default routine if the user's is not defined.
* Returns TRUE if any of the elements are "nonzero".
* Returns true if any of the elements are "nonzero".
*/
S_FUNC BOOL
S_FUNC bool
objtest(OBJECT *op)
{
int i; /* loop counter */
@@ -412,30 +412,30 @@ objtest(OBJECT *op)
i = op->o_actions->oa_count;
while (--i >= 0) {
if (testvalue(&op->o_table[i]))
return TRUE;
return true;
}
return FALSE;
return false;
}
/*
* Compare two objects for equality, returning TRUE if they differ.
* Compare two objects for equality, returning true if they differ.
* This is the default routine if the user's is not defined.
* For equality, all elements must be equal.
*/
S_FUNC BOOL
S_FUNC bool
objcmp(OBJECT *op1, OBJECT *op2)
{
int i; /* loop counter */
if (op1->o_actions != op2->o_actions)
return TRUE;
return true;
i = op1->o_actions->oa_count;
while (--i >= 0) {
if (comparevalue(&op1->o_table[i], &op2->o_table[i]))
return TRUE;
return true;
}
return FALSE;
return false;
}