[Lazarus] Unicode branch

Michael Van Canneyt michael at freepascal.org
Thu Jun 13 11:32:36 CEST 2013



On Thu, 13 Jun 2013, Sven Barth wrote:

> Am 12.06.2013 17:36, schrieb Michael Van Canneyt:
>> 
>> 
>> On Wed, 12 Jun 2013, Marco van de Voort wrote:
>> 
>>> On Wed, Jun 12, 2013 at 10:55:24AM +0200, Michael Schnell wrote:
>>>> On 06/10/2013 08:55 AM, Michael Van Canneyt wrote:
>>>>> 
>>>>> Where is UNICODE defined ?
>>>>> 
>>>> 
>>>> Isn't the define "UNICODE" a heritage from Delphi (> version xyz) ?
>>> 
>>> Yes, and if you chose the explicit compatibility mode for that version,
>>> $mode delphiunicode, it _is_ defined.
>> 
>> Now why on earth would we do that ? We don't define VERXYZ either in mode 
>> delphi ??
> The motivation was exactly the point that Delphi versions where 
> String=UnicodeString define "Unicode" while former versions do not, so the 
> definition of the UNICODE switch was linked to modeswitch unicodestrings (and 
> thus to mode delphiunicode). This was also the reason why WinCE compilation 
> got broken (it defines UNICODE by default which got undefined after mode 
> ObjFPC was encountered) and I added the FPC_OS_UNICODE define.

All the more reason not to try to emulate Delphi defines.

Currently the following can be found: 
FPC_HAS_UNICODESTRING 
FPC_WIDESTRING_EQUAL_UNICODESTRING 
FPC_UNICODESTRINGS 
UNICODE

The UNICODE define is simply superfluous.  Those that need it can do a

{$IFDEF FPC_UNICODESTRINGS}
{$DEFINE UNICODE}
{$ENDIF}

And they'll need defines anyway because widestring <> unicodestring on windows.

But it is all water under the bridge.

Michael.




More information about the Lazarus mailing list