fpc/tests/tbs/tb0488a.pp
2018-05-09 23:11:48 +00:00

77 lines
1.6 KiB
ObjectPascal

{ Source provided for Free Pascal Bug Report 3478 }
{ Submitted by "Michalis Kamburelis" on 2004-12-26 }
{ e-mail: michalis@camelot.homedns.org }
{ Before fixing bug 3477 this prints
FFFFFFF
FFFFFFFFFFFFFFFF
0000000FFFFFFFFF
9999999
FFFFFFFF99999999
0000000999999999
After fixing 3477 with my patch this prints
FFFFFFF
FFFFFFFFFFFFFFFF
FFFFFFFFF
9999999
FFFFFFFF99999999
999999999
so part of the problems are gone, but not all.
Then, after fixing this bug with my simple patch it correctly prints
FFFFFFF
FFFFFFFF
FFFFFFFFF
9999999
99999999
999999999
}
{$R-}
{$Q-}
{$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,erroru;
procedure Check(a,b:ansistring);
begin
if a<>b then
begin
writeln(a,' should be equal to ',b);
error;
end;
end;
begin
check(WideFormat('%x', [$FFFFFFF]),'FFFFFFF');
check(WideFormat('%x', [$FFFFFFFF]),'FFFFFFFF');
check(WideFormat('%x', [$FFFFFFFFF]),'FFFFFFFFF');
check(WideFormat('%x', [$9999999]),'9999999');
check(WideFormat('%x', [$99999999]),'99999999');
check(WideFormat('%x', [$999999999]),'999999999');
end.