1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
{$codepage utf-8}
{$ifdef go32v2}
{$define USE_INTERNAL_UNICODE}
{$endif}
{$ifdef USE_INTERNAL_UNICODE}
{$define USE_FPWIDESTRING_UNIT}
{$define USE_UNICODEDUCET_UNIT}
{$define USE_CPALL_UNIT}
{$endif}
uses
{$ifndef USE_INTERNAL_UNICODE}
{$ifdef unix}
{$ifdef darwin}iosxwstr{$else}cwstring{$endif},
{$endif unix}
{$endif ndef USE_INTERNAL_UNICODE}
{$ifdef USE_UNICODEDUCET_UNIT}
unicodeducet,
{$endif}
{$ifdef USE_FPWIDESTRING_UNIT}
fpwidestring,
{$endif}
{$ifdef USE_CPALL_UNIT}
cpall,
{$endif}
sysutils;
procedure testwcmp;
var
w1,w2: widestring;
s: ansistring;
begin
w1:='aƩcde';
{ filter unsupported characters }
s:=w1;
w1:=s;
w2:=w1;
if (w1<>w2) then
halt(1);
w1[2]:='f';
if (w1=w2) or
WideSameStr(w1,w2) or
(WideCompareText(w1,w2)=0) or
(WideCompareStr(w1,w2)<0) or
(WideCompareStr(w2,w1)>0) then
halt(2);
w1[2]:=#0;
w2[2]:=#0;
if (w1<>w2) or
not WideSameStr(w1,w2) or
(WideCompareStr(w1,w2)<>0) or
(WideCompareText(w1,w2)<>0) then
halt(3);
w1[3]:='m';
if WideSameStr(w1,w2) or
(WideCompareText(w1,w2)=0) or
(WideCompareStr(w1,w2)<0) or
(WideCompareStr(w2,w1)>0) then
halt(4);
end;
begin
testwcmp;
end.
|