[fpc-pascal] LongBool True = -1

Gerhard Scholz gs at g--s.de
Sat May 19 19:46:55 CEST 2018


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 at lists.freepascal.org>
To: <fpc-pascal at lists.freepascal.org>
Cc: "Sven Barth" <pascaldragon at 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 at lists.freepascal.org
> http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal 




More information about the fpc-pascal mailing list