mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-07-03 20:08:15 +02:00
73 lines
1.3 KiB
ObjectPascal
73 lines
1.3 KiB
ObjectPascal
{$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
|
|
{$ifdef unix}
|
|
{$ifdef darwin}iosxwstr{$else}cwstring{$endif},
|
|
{$endif unix}
|
|
{$ifdef USE_UNICODEDUCET_UNIT}
|
|
unicodeducet,
|
|
{$endif}
|
|
{$ifdef USE_FPWIDESTRING_UNIT}
|
|
fpwidestring,
|
|
{$endif}
|
|
{$ifdef USE_CPALL_UNIT}
|
|
cpall,
|
|
{$endif}
|
|
sysutils;
|
|
|
|
type
|
|
ts866 = type AnsiString(866);
|
|
|
|
procedure doerror(ANumber : Integer);
|
|
begin
|
|
WriteLn('error ',ANumber);
|
|
Halt(ANumber);
|
|
end;
|
|
|
|
var
|
|
x : ts866;
|
|
c : ansichar;
|
|
sa : ansistring;
|
|
begin
|
|
c := 'a';
|
|
sa := c;
|
|
if (StringCodePage(sa) <> DefaultSystemCodePage) then
|
|
doerror(1);
|
|
if (Length(sa) <> 1) then
|
|
doerror(2);
|
|
if (Byte(sa[1]) <> Byte(c)) then
|
|
doerror(3);
|
|
x := c;
|
|
if (StringCodePage(x) <> 866) then
|
|
doerror(4);
|
|
if (Length(x) <> 1) then
|
|
doerror(5);
|
|
if (Byte(x[1]) <> Byte(c)) then
|
|
doerror(6);
|
|
|
|
c := #156;
|
|
sa := c;
|
|
if (StringCodePage(sa) <> DefaultSystemCodePage) then
|
|
doerror(10);
|
|
if (Length(sa) <> 1) then
|
|
doerror(20);
|
|
if (Byte(sa[1]) <> Byte(c)) then
|
|
doerror(30);
|
|
x := c;
|
|
if (StringCodePage(x) <> 866) then
|
|
doerror(40);
|
|
if (Length(x) <> 1) then
|
|
doerror(50);
|
|
if (Byte(x[1]) <> Byte(c)) then
|
|
doerror(60);
|
|
|
|
WriteLn('Ok');
|
|
end.
|