]> granicus.if.org Git - php/log
php
15 years agoFixes #50496. Drop stdbool.h dependency as it requires _STDC_C99 set on some systems.
David Soria Parra [Mon, 11 Jan 2010 16:22:12 +0000 (16:22 +0000)]
Fixes #50496. Drop stdbool.h dependency as it requires _STDC_C99 set on some systems.

15 years agoRework the statistics macros to be reusable by external entities.
Andrey Hristov [Mon, 11 Jan 2010 14:27:35 +0000 (14:27 +0000)]
Rework the statistics macros to be reusable by external entities.
Rename handlers to triggers. Dynamically allocate space for the
statistics thus allow reusability.

15 years agomissed to commit to the branch
Andrey Hristov [Mon, 11 Jan 2010 12:37:42 +0000 (12:37 +0000)]
missed to commit to the branch

15 years agoFixed bug #50519 (segfault in garbage collection when using set_error_handler and...
Dmitry Stogov [Mon, 11 Jan 2010 10:07:10 +0000 (10:07 +0000)]
Fixed bug #50519 (segfault in garbage collection when using set_error_handler and DomDocument)

15 years agoYear++
Ilia Alshanetsky [Mon, 11 Jan 2010 03:01:19 +0000 (03:01 +0000)]
Year++

15 years ago- use png_sig_cmp to support libpng 1.4, old is deprecated already in older version
Pierre Joye [Sun, 10 Jan 2010 02:13:45 +0000 (02:13 +0000)]
- use png_sig_cmp to support libpng 1.4, old is deprecated already in older version

15 years agoexport some calls to init/deinit code outside of the module
Andrey Hristov [Fri, 8 Jan 2010 18:52:08 +0000 (18:52 +0000)]
export some calls to init/deinit code outside of the module

15 years agoimprove the stats subsystem. Reduce the number of macro definitions
Andrey Hristov [Fri, 8 Jan 2010 17:35:20 +0000 (17:35 +0000)]
improve the stats subsystem. Reduce the number of macro definitions
in half by smartly introducing 2 new macros. Make MYSQLND::stats a pointer
from being aggregated and add triggers.

15 years agoadd restart_psession and end_psession hooks
Andrey Hristov [Fri, 8 Jan 2010 13:47:03 +0000 (13:47 +0000)]
add restart_psession and end_psession hooks

15 years agoBug #49600 (imageTTFText text shifted right)
Takeshi Abe [Fri, 8 Jan 2010 12:18:52 +0000 (12:18 +0000)]
Bug #49600 (imageTTFText text shifted right)
- fix difference of horizontal position between imagettftext() and imagettfbbox()

15 years agofix news
Jani Taskinen [Fri, 8 Jan 2010 09:56:38 +0000 (09:56 +0000)]
fix news

15 years agoWorked with Samy Kamkar to improve LCG entropy.
Rasmus Lerdorf [Fri, 8 Jan 2010 09:43:14 +0000 (09:43 +0000)]
Worked with Samy Kamkar to improve LCG entropy.

15 years agoBug #47281 ( is limited in size of characters). Also remove redundant code line.
Christopher Jones [Thu, 7 Jan 2010 23:59:20 +0000 (23:59 +0000)]
Bug #47281 ( is limited in size of characters).  Also remove redundant code line.

15 years agoChange of way the packet objects are created/initialised
Andrey Hristov [Thu, 7 Jan 2010 19:44:59 +0000 (19:44 +0000)]
Change of way the packet objects are created/initialised
If the protocol gets changed, ever, we can decide at runtime
easily which protocol to use by instantiating the right protocol
object. But this is restricted to the structure of the packets, not
the flow.

15 years agoFixed bug #50680 (strtotime() does not support eighth ordinal number).
Ilia Alshanetsky [Thu, 7 Jan 2010 12:54:44 +0000 (12:54 +0000)]
Fixed bug #50680 (strtotime() does not support eighth ordinal number).

15 years agosed -i "s#1997-2008#1997-2010#g" **/*.c **/*.h
Sebastian Bergmann [Thu, 7 Jan 2010 11:02:39 +0000 (11:02 +0000)]
sed -i "s#1997-2008#1997-2010#g" **/*.c **/*.h

15 years agoFixed bug #49560 (oci8: using LOBs causes slow PHP shutdown)
Christopher Jones [Wed, 6 Jan 2010 18:58:16 +0000 (18:58 +0000)]
Fixed bug #49560 (oci8: using LOBs causes slow PHP shutdown)
 - Improved descriptor refcounting to remove unneeded items sooner
 - Replaced n^2 list traversal during descriptor list destruction

15 years agofix bug #50661 (DOMDocument::loadXML does not allow UTF-16)
Rob Richards [Wed, 6 Jan 2010 13:13:17 +0000 (13:13 +0000)]
fix bug #50661 (DOMDocument::loadXML does not allow UTF-16)
add test

15 years agoFixed bug #50657 (copy() with an empty (zero-byte) HTTP source succeeds but returns...
Ilia Alshanetsky [Wed, 6 Jan 2010 12:54:53 +0000 (12:54 +0000)]
Fixed bug #50657 (copy() with an empty (zero-byte) HTTP source succeeds but returns false).

15 years agosed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php
Sebastian Bergmann [Tue, 5 Jan 2010 20:46:53 +0000 (20:46 +0000)]
sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php

15 years agosed -i "s#1998-2009#1998-2010#g" **/*.re **/*.y **/*.l
Sebastian Bergmann [Tue, 5 Jan 2010 20:40:23 +0000 (20:40 +0000)]
sed -i "s#1998-2009#1998-2010#g" **/*.re **/*.y **/*.l

15 years ago- Addressing minor leak noticed while addressing bug #48590
Sriram Natarajan [Tue, 5 Jan 2010 19:25:23 +0000 (19:25 +0000)]
- Addressing minor leak noticed while addressing bug #48590

15 years agoFixed bug #50576 (XML_OPTION_SKIP_TAGSTART option has no effect).
Pierrick Charron [Tue, 5 Jan 2010 13:03:40 +0000 (13:03 +0000)]
Fixed bug #50576 (XML_OPTION_SKIP_TAGSTART option has no effect).

15 years agoAdded test case for bug #50632
Ilia Alshanetsky [Tue, 5 Jan 2010 12:25:00 +0000 (12:25 +0000)]
Added test case for bug #50632

15 years ago- Fixed bug #48590 (SoapClient does not honor max_redirects)
Sriram Natarajan [Tue, 5 Jan 2010 03:07:43 +0000 (03:07 +0000)]
- Fixed bug #48590 (SoapClient does not honor max_redirects)

15 years ago- [doc] add support for DISABLE_AUTHENTICATOR in imap_open (fix #33500)
Pierre Joye [Tue, 5 Jan 2010 01:12:18 +0000 (01:12 +0000)]
- [doc] add support for DISABLE_AUTHENTICATOR in imap_open (fix #33500)

15 years agoadd ICU resource bundle support, contributed by Hans-Peter Oeri
Stanislav Malyshev [Mon, 4 Jan 2010 21:44:45 +0000 (21:44 +0000)]
add ICU resource bundle support, contributed by Hans-Peter Oeri

15 years agoUpdating test to new libmysql feature set (first introduced in MySQL 6.0 but now...
Ulf Wendel [Mon, 4 Jan 2010 15:29:18 +0000 (15:29 +0000)]
Updating test to new libmysql feature set (first introduced in MySQL 6.0 but now backported to MySQL 5.5).

15 years agoThe internal zval cache has been removed and not been reintroduced... remove correspo...
Ulf Wendel [Mon, 4 Jan 2010 15:05:34 +0000 (15:05 +0000)]
The internal zval cache has been removed and not been reintroduced... remove corresponding test code

15 years agoFixing test
Ulf Wendel [Mon, 4 Jan 2010 14:59:04 +0000 (14:59 +0000)]
Fixing test

15 years agoTweaking test. Andrey, you once requested such a test, please have a look if it does...
Ulf Wendel [Mon, 4 Jan 2010 14:34:44 +0000 (14:34 +0000)]
Tweaking test. Andrey, you once requested such a test, please have a look if it does exactly what you want it to do.

15 years agoThe internal zval cache has been removed and not been reintroduced... remove correspo...
Ulf Wendel [Mon, 4 Jan 2010 13:44:10 +0000 (13:44 +0000)]
The internal zval cache has been removed and not been reintroduced... remove corresponding test code

15 years agoUpdate copyright year in the man file
Ilia Alshanetsky [Mon, 4 Jan 2010 12:38:07 +0000 (12:38 +0000)]
Update copyright year in the man file

15 years agoFixed bug #50632 (filter_input() does not return default value if the variable does...
Ilia Alshanetsky [Sun, 3 Jan 2010 22:58:37 +0000 (22:58 +0000)]
Fixed bug #50632 (filter_input() does not return default value if the variable does not exist)

15 years agoFixed bug #50636 (MySQLi_Result sets values before calling constructor)
Pierrick Charron [Sun, 3 Jan 2010 16:59:33 +0000 (16:59 +0000)]
Fixed bug #50636 (MySQLi_Result sets values before calling constructor)

15 years agosed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php
Sebastian Bergmann [Sun, 3 Jan 2010 09:23:27 +0000 (09:23 +0000)]
sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php

15 years agosed -i "s#1997-2009#1997-2010#g" **/*.re **/*.y **/*.l
Sebastian Bergmann [Sun, 3 Jan 2010 08:22:14 +0000 (08:22 +0000)]
sed -i "s#1997-2009#1997-2010#g" **/*.re **/*.y **/*.l

15 years agoFixed bug #44827 (define() allows :: in constant names).
Ilia Alshanetsky [Wed, 30 Dec 2009 19:15:11 +0000 (19:15 +0000)]
Fixed bug #44827 (define() allows :: in constant names).

15 years ago- Sync with HEAD
Jani Taskinen [Tue, 29 Dec 2009 19:25:09 +0000 (19:25 +0000)]
- Sync with HEAD

15 years ago- WS + CS + folding tags
Jani Taskinen [Tue, 29 Dec 2009 18:59:58 +0000 (18:59 +0000)]
- WS + CS + folding tags

15 years agoAdd a test for tidyNode::__construct()
Pierrick Charron [Tue, 29 Dec 2009 16:06:27 +0000 (16:06 +0000)]
Add a test for tidyNode::__construct()

15 years agoFixed bug #48190 (Content-type parameter "boundary" is not case-insensitive in HTTP...
Ilia Alshanetsky [Tue, 29 Dec 2009 15:57:54 +0000 (15:57 +0000)]
Fixed bug #48190 (Content-type parameter "boundary" is not case-insensitive in HTTP uploads).

15 years agoSet the tidyNode constructor private
Pierrick Charron [Mon, 28 Dec 2009 17:01:24 +0000 (17:01 +0000)]
Set the tidyNode constructor private

15 years ago- Updated to version 2009.21 (2009u)
Derick Rethans [Mon, 28 Dec 2009 14:30:50 +0000 (14:30 +0000)]
- Updated to version 2009.21 (2009u)

15 years agomove network creation to the init hook
Andrey Hristov [Mon, 28 Dec 2009 11:17:10 +0000 (11:17 +0000)]
move network creation to the init hook

15 years ago- Fixed ZTS build
Felipe Pena [Sun, 27 Dec 2009 18:13:37 +0000 (18:13 +0000)]
- Fixed ZTS build

15 years agoShare the php_sockets.h header
Mikko Koppanen [Sun, 27 Dec 2009 01:00:50 +0000 (01:00 +0000)]
Share the php_sockets.h header
Share php_sockets_le_socket_name

15 years agospprintf the dbname
Mikko Koppanen [Sun, 27 Dec 2009 00:43:33 +0000 (00:43 +0000)]
spprintf the dbname
use VCWD_ACCESS instead of access

15 years agoAlong with the valid char set, also add a length check to the
Rasmus Lerdorf [Sat, 26 Dec 2009 23:38:25 +0000 (23:38 +0000)]
Along with the valid char set, also add a length check to the
session id here to avoid a lower-level error on the open()
later on in case we exceed MAX_PATH.  The lower level open()
error includes the session dir path in it, so this is a very
low-priority security fix.  People should not be running
production systems with display_errors turned on.

15 years agoUpgrade bundled libmagic to 5.03 (fixes CDF parsing related issues)
Mikko Koppanen [Sat, 26 Dec 2009 15:00:21 +0000 (15:00 +0000)]
Upgrade bundled libmagic to 5.03 (fixes CDF parsing related issues)
Clean up / remove whitespace differences to make next merge easier
Removed unnecessary files from trunk

15 years agoChanged tidyNode class to disallow manual node creation.
Pierrick Charron [Fri, 25 Dec 2009 21:24:36 +0000 (21:24 +0000)]
Changed tidyNode class to disallow manual node creation.

15 years agoRemoved spurious high-ascii char from previous commmit
Matteo Beccati [Fri, 25 Dec 2009 21:01:06 +0000 (21:01 +0000)]
Removed spurious high-ascii char from previous commmit

15 years ago- Updated ext/pgsql tests to work w/ PostgreSQL 8.5
Matteo Beccati [Fri, 25 Dec 2009 20:56:00 +0000 (20:56 +0000)]
- Updated ext/pgsql tests to work w/ PostgreSQL 8.5
# tested w/ 8.5alpha3

15 years agoremove automatic file unlocking on shutdown and/or stream close
Antony Dovgal [Fri, 25 Dec 2009 20:34:59 +0000 (20:34 +0000)]
remove automatic file unlocking on shutdown and/or stream close
(make it win32-specific for 5_2, as discussed with Ilia)

15 years ago- Updated pdo_pgsql tests to be 8.5+ friendly
Matteo Beccati [Fri, 25 Dec 2009 20:11:07 +0000 (20:11 +0000)]
- Updated pdo_pgsql tests to be 8.5+ friendly

15 years agoFixed bug #50519 (segfault in garbage collection when using set_error_handler and...
Dmitry Stogov [Fri, 25 Dec 2009 13:11:18 +0000 (13:11 +0000)]
Fixed bug #50519 (segfault in garbage collection when using set_error_handler and DomDocument)

15 years agoFixed bug #50558 (Broken object model when extending tidy)
Pierrick Charron [Fri, 25 Dec 2009 01:35:57 +0000 (01:35 +0000)]
Fixed bug #50558 (Broken object model when extending tidy)

15 years agoAdded missing host validation for HTTP urls inside FILTER_VALIDATE_URL.
Ilia Alshanetsky [Thu, 24 Dec 2009 18:47:15 +0000 (18:47 +0000)]
Added missing host validation for HTTP urls inside FILTER_VALIDATE_URL.

15 years agoChanged stream_resolve_include_path to use zend_resolve_path
Mikko Koppanen [Thu, 24 Dec 2009 13:12:03 +0000 (13:12 +0000)]
Changed stream_resolve_include_path to use zend_resolve_path
backported stream_resolve_include_path to PHP 5.3
backported stream_resolve_include_path test to PHP 5.3

15 years agofix the fix for #47409
Antony Dovgal [Thu, 24 Dec 2009 13:07:33 +0000 (13:07 +0000)]
fix the fix for #47409
use correct comparison and add missing scope checks to trunk

15 years ago- Update tests to reflect current behavior after fix for bug #50185
Sriram Natarajan [Thu, 24 Dec 2009 02:08:23 +0000 (02:08 +0000)]
- Update tests to reflect current behavior after fix for bug #50185

15 years agofix flags handling in zend_parse_method_parameters_ex
Stanislav Malyshev [Thu, 24 Dec 2009 00:15:13 +0000 (00:15 +0000)]
fix flags handling in zend_parse_method_parameters_ex

15 years agocleanup some code, improve error handling
Stanislav Malyshev [Wed, 23 Dec 2009 21:41:05 +0000 (21:41 +0000)]
cleanup some code, improve error handling

15 years ago- ws
Jani Taskinen [Wed, 23 Dec 2009 21:06:26 +0000 (21:06 +0000)]
- ws

15 years agoI really like the extra space.
Jani Taskinen [Wed, 23 Dec 2009 21:02:12 +0000 (21:02 +0000)]
I really like the extra space.

15 years agoFixed bug #47409 (extract() problem with array containing word "this").
Ilia Alshanetsky [Wed, 23 Dec 2009 16:33:58 +0000 (16:33 +0000)]
Fixed bug #47409 (extract() problem with array containing word "this").

15 years agoUnify. The typedef-ed structs in mysqlnd are always capitalized.
Andrey Hristov [Wed, 23 Dec 2009 11:58:45 +0000 (11:58 +0000)]
Unify. The typedef-ed structs in mysqlnd are always capitalized.

15 years agofix minor leak in CGI sapi (happened once per child)
Antony Dovgal [Wed, 23 Dec 2009 09:40:28 +0000 (09:40 +0000)]
fix minor leak in CGI sapi (happened once per child)

15 years agoWhere using svn now, use svn paths
Johannes Schlüter [Tue, 22 Dec 2009 22:36:41 +0000 (22:36 +0000)]
Where using svn now, use svn paths
# This file doesn't exist in 5.2!?

15 years agoPHP 5.3.2RC1
Johannes Schlüter [Tue, 22 Dec 2009 22:02:50 +0000 (22:02 +0000)]
PHP 5.3.2RC1

15 years agoWrap at 80 chars
Johannes Schlüter [Tue, 22 Dec 2009 21:17:58 +0000 (21:17 +0000)]
Wrap at 80 chars

15 years agoinstall mysqlnd headers to allow shared build of extensions
Johannes Schlüter [Tue, 22 Dec 2009 19:30:09 +0000 (19:30 +0000)]
install mysqlnd headers to allow shared build of extensions

15 years agoFix double calls to free_contents if the connection cannot be
Andrey Hristov [Tue, 22 Dec 2009 17:44:42 +0000 (17:44 +0000)]
Fix double calls to free_contents if the connection cannot be
opened. mysqlnd have no probs, external code should not have too.
In any case, double call is not needed.

15 years agomove state setting to the right place, in mysqlnd_init, no more
Andrey Hristov [Tue, 22 Dec 2009 17:31:31 +0000 (17:31 +0000)]
move state setting to the right place, in mysqlnd_init, no more
in mysqlnd::connect

15 years ago- fix build and warning (introduced by my last commit)
Pierre Joye [Tue, 22 Dec 2009 14:57:57 +0000 (14:57 +0000)]
- fix build and warning (introduced by my last commit)

15 years ago- Fixed bug #50517 (EXTRA_LDFLAGS polluted by wrong entries)
Jani Taskinen [Tue, 22 Dec 2009 09:57:19 +0000 (09:57 +0000)]
- Fixed bug #50517 (EXTRA_LDFLAGS polluted by wrong entries)

# Until someone shows me use case for LDFLAGS, this is gone.
# This was wrong place to import it anyway.

15 years ago- Fix bug #46478 (htmlentities() uses obsolete mapping table for character
Moriyoshi Koizumi [Tue, 22 Dec 2009 05:50:34 +0000 (05:50 +0000)]
- Fix bug #46478 (htmlentities() uses obsolete mapping table for character
  entity references)

15 years agoFixed bug #45599 (strip_tags() truncates rest of string with invalid attribute).
Ilia Alshanetsky [Tue, 22 Dec 2009 02:04:12 +0000 (02:04 +0000)]
Fixed bug #45599 (strip_tags() truncates rest of string with invalid attribute).

15 years ago- Updated to version 2009.20 (2009t)
Derick Rethans [Mon, 21 Dec 2009 20:46:12 +0000 (20:46 +0000)]
- Updated to version 2009.20 (2009t)

15 years agoFixed bug #50540 (Crash within ldap_first_reference function)
Sriram Natarajan [Mon, 21 Dec 2009 20:39:48 +0000 (20:39 +0000)]
Fixed bug #50540 (Crash within ldap_first_reference function)

15 years agoclean up normalizer code
Stanislav Malyshev [Mon, 21 Dec 2009 20:12:46 +0000 (20:12 +0000)]
clean up normalizer code

15 years agoMove this function to MYSQLND_NET as it works on the
Andrey Hristov [Mon, 21 Dec 2009 16:52:10 +0000 (16:52 +0000)]
Move this function to MYSQLND_NET as it works on the
php stream

15 years agomagic numbers to macros
Andrey Hristov [Mon, 21 Dec 2009 16:17:31 +0000 (16:17 +0000)]
magic numbers to macros

15 years agoMove compression and decompression code to separate functions
Andrey Hristov [Mon, 21 Dec 2009 16:09:13 +0000 (16:09 +0000)]
Move compression and decompression code to separate functions
which can be overloaded on purpose.

15 years ago- Sync (and KEEP it synced!)
Jani Taskinen [Mon, 21 Dec 2009 15:44:58 +0000 (15:44 +0000)]
- Sync (and KEEP it synced!)

15 years ago- Tune the fix for bug #50508 and make it work with MacOSX, bug #50541.
Jani Taskinen [Mon, 21 Dec 2009 15:22:40 +0000 (15:22 +0000)]
- Tune the fix for bug #50508 and make it work with MacOSX, bug #50541.

15 years ago- New tests
Felipe Pena [Sun, 20 Dec 2009 22:04:55 +0000 (22:04 +0000)]
- New tests

15 years agoFixed bug #50196 stream_copy_to_stream() produces warning when source is not file
Stanislav Malyshev [Sat, 19 Dec 2009 01:15:30 +0000 (01:15 +0000)]
Fixed bug #50196 stream_copy_to_stream() produces warning when source is not file

15 years agofix bug #50196
Stanislav Malyshev [Sat, 19 Dec 2009 01:13:33 +0000 (01:13 +0000)]
fix bug #50196

15 years agoFixed bug #50394 (Reference argument converted to value in __call)
Stanislav Malyshev [Fri, 18 Dec 2009 19:20:33 +0000 (19:20 +0000)]
Fixed bug #50394 (Reference argument converted to value in __call)

15 years agofix regression bug #50394: Reference argument converted to value in __call
Stanislav Malyshev [Fri, 18 Dec 2009 19:12:11 +0000 (19:12 +0000)]
fix regression bug #50394: Reference argument converted to value in __call

15 years agotouch
Jani Taskinen [Fri, 18 Dec 2009 12:48:59 +0000 (12:48 +0000)]
touch

15 years ago- Fixed bug #50508 (compile fails: Conflicting HEADER type declarations)
Jani Taskinen [Fri, 18 Dec 2009 11:02:07 +0000 (11:02 +0000)]
- Fixed bug #50508 (compile fails: Conflicting HEADER type declarations)
# NEVER ever include nameser_compat.h, it's included in various ways in different OSes by nameser.h if needed

15 years ago- [DOC] add INTERNALDATE to imap_append (will merge to trunk later)
Pierre Joye [Thu, 17 Dec 2009 17:28:26 +0000 (17:28 +0000)]
- [DOC] add INTERNALDATE to imap_append (will merge to trunk later)

15 years ago- These are 2 separate sections..
Jani Taskinen [Thu, 17 Dec 2009 16:10:53 +0000 (16:10 +0000)]
- These are 2 separate sections..

15 years agoTest for what Andrey has found with 16M packets
Ulf Wendel [Thu, 17 Dec 2009 14:15:28 +0000 (14:15 +0000)]
Test for what Andrey has found with 16M packets

15 years agorefactoring : move more network related functions to
Andrey Hristov [Thu, 17 Dec 2009 13:29:46 +0000 (13:29 +0000)]
refactoring : move more network related functions to
mysqlnd_net.c . Now communication is split on two levels:
- logical (functions send and receive)
- physical (functions network_read and network_write)

15 years agoDuring refactoring of the function mysqlnd_stream_write_w_header() it was
Andrey Hristov [Thu, 17 Dec 2009 12:30:58 +0000 (12:30 +0000)]
During refactoring of the function mysqlnd_stream_write_w_header() it was
found that there is a bug in the way the data is sent, although a very rare
one which will only affect very large queries which have length 16777214. The
communication will hang. A way to test it is to execute the following:
./php -r '$c=mysqli_connect("127.0.0.1","root","root","test");
$q="insert into test.tblob values(\"".str_repeat("a",256*256*256-1-34)."\")";
$c->query($q);'

15 years ago- Fix NEWS for bug #50496
Sriram Natarajan [Wed, 16 Dec 2009 21:33:20 +0000 (21:33 +0000)]
- Fix NEWS for bug #50496
# Update NEWS to keep resolved bugs in decreasing order (Christopher Jones)

15 years ago- Fixed bug #50496 (Use of <stdbool.h> is valid only in a c99 compilation environment.)
Sriram Natarajan [Wed, 16 Dec 2009 20:49:08 +0000 (20:49 +0000)]
- Fixed bug #50496 (Use of <stdbool.h> is valid only in a c99 compilation environment.)