[
https://issues.apache.org/jira/browse/THRIFT-4461?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16332593#comment-16332593
]
Anton Shchyrov edited comment on THRIFT-4461 at 1/19/18 5:39 PM:
-----------------------------------------------------------------
Full unit name System.Character. This unit added in Thrift.Utils by scheme
{{uses}}
\{$IFDEF OLD_UNIT_NAMES}
Classes, Windows, SysUtils, *Character*, SyncObjs;
\{$ELSE}
System.Classes, Winapi.Windows, System.SysUtils, *System.Character*,
System.SyncObjs;
\{$ENDIF}
If condition OLD_UNIT_NAMES is not defined then compiler will require fully
unit name. And identifier Character.IsLowSurrogate will not be defined unlike
identifier System.Character.IsLowSurrogate
was (Author: antontramp):
Full unit name System.Character. This unit added in Thrift.Utils by scheme
{{uses}}
{{ \{$IFDEF OLD_UNIT_NAMES}}}
{{ Classes, Windows, SysUtils, *Character*, SyncObjs;}}
{{ \{$ELSE}}}
{{ System.Classes, Winapi.Windows, System.SysUtils, *System.Character*,
System.SyncObjs;}}
{{ \{$ENDIF}}}
If condition OLD_UNIT_NAMES is not defined then compiler will require fully
unit name. And identifier Character.IsLowSurrogate will not be defined unlike
identifier System.Character.IsLowSurrogate
> Invalid compiler directive
> --------------------------
>
> Key: THRIFT-4461
> URL: https://issues.apache.org/jira/browse/THRIFT-4461
> Project: Thrift
> Issue Type: Bug
> Components: Delphi - Library
> Affects Versions: 0.11.0
> Environment: Delphi XE3
> Reporter: Anton Shchyrov
> Assignee: Jens Geyer
> Priority: Minor
> Labels: delphi
> Attachments: Thrift.Utils.diff
>
>
> In module Thrift.Utils daclared two methods
> {{class function CharUtils.IsHighSurrogate( const c : Char) : Boolean;}}
> {{begin}}
> {{ \{$IF CompilerVersion < 23.0}}}
> {{ result := Character.IsHighSurrogate( c);}}
> {{ \{$ELSE}}}
> {{ result := c.IsHighSurrogate();}}
> {{ \{$IFEND}}}
> {{end;}}
> {{class function CharUtils.IsLowSurrogate( const c : Char) : Boolean;}}
> {{begin}}
> {{ \{$IF CompilerVersion < 23.0}}}
> {{ result := Character.IsLowSurrogate( c);}}
> {{ \{$ELSE}}}
> {{ result := c.IsLowSurrogate;}}
> {{ \{$IFEND}}}
> {{end;}}
> But methods Char.IsHighSurrogate()/Char.IsLowSurrogate() **appeared in Delphi
> XE4. For Delphi XE4 variable CompilerVersion equal 25.
> In this way condition
> {{{$IF CompilerVersion < 23.0}}}
> may be changed to
> {{{$IF CompilerVersion < *25.0*}}}
> And access for unit *Character* may be determined through defiine symbol
> *OLD_UNIT_NAMES*
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)