mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-08 17:48:01 +02:00

* fixes memory leaks in case of string code * replace usage of strcmp * improved tests git-svn-id: trunk@13830 -
132 lines
2.3 KiB
ObjectPascal
132 lines
2.3 KiB
ObjectPascal
{ test for range with one-symbol string as left bound }
|
|
{ sequence of cases in cases }
|
|
|
|
{$H-}
|
|
var
|
|
my_str: string;
|
|
my_str_wide: widestring;
|
|
my_str_ansi: ansistring;
|
|
my_str_uni: unicodestring;
|
|
i: integer;
|
|
|
|
begin
|
|
my_str := 'cab';
|
|
my_str_wide := 'cab';
|
|
my_str_ansi := 'cab';
|
|
my_str_uni := 'cab';
|
|
i := -1;
|
|
|
|
case my_str of
|
|
'a'..'daa':
|
|
begin
|
|
case my_str[1] of
|
|
'a' : i := 0;
|
|
'b' : i := 0;
|
|
'c' : i := 1;
|
|
end;
|
|
case my_str[2] of
|
|
'a' : i := i * 1;
|
|
'b' : i := 0;
|
|
'c' : i := 0;
|
|
end;
|
|
case my_str[3] of
|
|
'a' : i := 0;
|
|
'b' : i := i * 1;
|
|
'c' : i := 0;
|
|
end;
|
|
end;
|
|
else i := 0;
|
|
end;
|
|
|
|
if (i <> 1) then begin
|
|
writeln('Error');
|
|
Halt(1);
|
|
end;
|
|
|
|
|
|
case my_str_wide of
|
|
'a'..'daa':
|
|
begin
|
|
case my_str_wide[1] of
|
|
'a' : i := 0;
|
|
'b' : i := 0;
|
|
'c' : i := 1;
|
|
end;
|
|
case my_str_wide[2] of
|
|
'a' : i := i * 1;
|
|
'b' : i := 0;
|
|
'c' : i := 0;
|
|
end;
|
|
case my_str_wide[3] of
|
|
'a' : i := 0;
|
|
'b' : i := i * 1;
|
|
'c' : i := 0;
|
|
end;
|
|
end;
|
|
else i := 0;
|
|
end;
|
|
|
|
if (i <> 1) then begin
|
|
writeln('Error');
|
|
Halt(1);
|
|
end;
|
|
|
|
|
|
case my_str_ansi of
|
|
'a'..'daa':
|
|
begin
|
|
case my_str_ansi[1] of
|
|
'a' : i := 0;
|
|
'b' : i := 0;
|
|
'c' : i := 1;
|
|
end;
|
|
case my_str_ansi[2] of
|
|
'a' : i := i * 1;
|
|
'b' : i := 0;
|
|
'c' : i := 0;
|
|
end;
|
|
case my_str_ansi[3] of
|
|
'a' : i := 0;
|
|
'b' : i := i * 1;
|
|
'c' : i := 0;
|
|
end;
|
|
end;
|
|
else i := 0;
|
|
end;
|
|
|
|
if (i <> 1) then begin
|
|
writeln('Error');
|
|
Halt(1);
|
|
end;
|
|
|
|
|
|
case my_str_uni of
|
|
'a'..'daa':
|
|
begin
|
|
case my_str_uni[1] of
|
|
'a' : i := 0;
|
|
'b' : i := 0;
|
|
'c' : i := 1;
|
|
end;
|
|
case my_str_uni[2] of
|
|
'a' : i := i * 1;
|
|
'b' : i := 0;
|
|
'c' : i := 0;
|
|
end;
|
|
case my_str_uni[3] of
|
|
'a' : i := 0;
|
|
'b' : i := i * 1;
|
|
'c' : i := 0;
|
|
end;
|
|
end;
|
|
else i := 0;
|
|
end;
|
|
|
|
if (i <> 1) then begin
|
|
writeln('Error');
|
|
Halt(1);
|
|
end;
|
|
|
|
writeln('OK!');
|
|
end.
|