Afaik, the bool types (longbool, wordbool, bytebool) come from the C language and are mostly used to interface with C libraries (for example: windows). The definitions there are: 0 means FALSE, anything else means TRUE. Normally C routines return a dword/word/byte filled with ones for TRUE and expect something not 0 as TRUE. So, the definition comes from C. As long Pascal programmers want to use libraries written in C, this definition should not be changed in the Pascal compiler.

Regards
Gerhard

----- Original Message ----- From: "Sven Barth via fpc-pascal" <fpc-pascal@lists.freepascal.org>
To: <fpc-pascal@lists.freepascal.org>
Cc: "Sven Barth" <pascaldra...@googlemail.com>
Sent: Friday, May 18, 2018 7:22 AM
Subject: Re: [fpc-pascal] LongBool True = -1


Am 17.05.2018 um 23:26 schrieb Anthony Walter:
I am working with some a glib library that expects gboolean to be positive 1 for true, yet FPC emits -1 for true. Is there a compiler flag to force boolean types to emit 1 instead of -1? If so, would there possibly be any side effects with other pascal code?
Why don't you use the glib2 unit which declares a correct gBoolean type (using Boolean32 which had been introduced for that purpose) and accordingly defined gTRUE and gFALSE?

Regards,
Sven
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to