mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-04-06 23:07:55 +02:00

of the jdk15 unit in that case) * adjusted testall.sh script so it can also be used to test class files compiled for Android (still with the JVM though) git-svn-id: branches/jvmbackend@19835 -
157 lines
3.4 KiB
ObjectPascal
157 lines
3.4 KiB
ObjectPascal
program tcnvstr3;
|
|
|
|
{ Type conversion program for char -> string }
|
|
{ possible types widechar -> widestring }
|
|
{ widechar -> shortstring }
|
|
{ widechar -> ansistring }
|
|
{ possible types char -> widestring }
|
|
{ char -> shortstring }
|
|
{ char -> ansistring }
|
|
|
|
{$ifdef fpc}
|
|
{$mode objfpc}
|
|
{$ifndef ver1_0}
|
|
{$define haswidestring}
|
|
{$endif}
|
|
{$else}
|
|
{$ifndef ver70}
|
|
{$define haswidestring}
|
|
{$endif}
|
|
{$endif}
|
|
|
|
uses {$ifdef java}jdk15{$else}androidr14{$endif};
|
|
|
|
{$macro on}
|
|
{$define write:=JLSystem.fout.print}
|
|
{$define writeln:=JLSystem.fout.println}
|
|
|
|
procedure fail;
|
|
begin
|
|
WriteLn('Failure!');
|
|
raise JLException.Create;
|
|
end;
|
|
|
|
var
|
|
str_ansi : ansistring;
|
|
str_short : shortstring;
|
|
{$ifdef haswidestring}
|
|
str_wide : widestring;
|
|
wc : widechar;
|
|
{$endif haswidestring}
|
|
c: char;
|
|
_result : boolean;
|
|
Begin
|
|
{********************** char/widechar -> shortstring *******************}
|
|
Write('widechar/char -> shortstring...');
|
|
{* normal char *}
|
|
_result := true;
|
|
{ empty string -> shortstring }
|
|
str_short := '';
|
|
if str_short <> '' then
|
|
_result := false;
|
|
{ constant char -> shortstring }
|
|
str_short := 'c';
|
|
if str_short <> 'c' then
|
|
_result := false;
|
|
{ normal char -> shortstring }
|
|
str_short := '';
|
|
c:='c';
|
|
str_short:=c;
|
|
if str_short <> 'c' then
|
|
_result := false;
|
|
{* wide char *}
|
|
{$ifdef haswidestring}
|
|
{ constant char -> shortstring }
|
|
str_short := shortstring(widechar('c'));
|
|
if str_short <> 'c' then
|
|
_result := false;
|
|
{$endif}
|
|
{ wide char -> shortstring }
|
|
{ This should not compile - at least it does not compile under Delphi }
|
|
{ str_short := '';
|
|
wc:='c';
|
|
str_short:=wc;
|
|
if str_short <> 'c' then
|
|
_result := false;}
|
|
|
|
|
|
if _result then
|
|
WriteLn('Success!')
|
|
else
|
|
fail;
|
|
{********************** char/widechar -> ansistring *******************}
|
|
Write('widechar/char -> ansistring...');
|
|
{* normal char *}
|
|
_result := true;
|
|
{ empty string -> ansistring }
|
|
str_ansi := '';
|
|
if str_ansi <> '' then
|
|
_result := false;
|
|
{ constant char -> ansistring }
|
|
str_ansi := 'c';
|
|
if str_ansi <> 'c' then
|
|
_result := false;
|
|
{ normal char -> ansistring }
|
|
str_ansi := '';
|
|
c:='c';
|
|
str_ansi:=c;
|
|
if str_ansi <> 'c' then
|
|
_result := false;
|
|
{* wide char *}
|
|
{$ifdef haswidestring}
|
|
{ constant char -> ansistring }
|
|
str_ansi := widechar('c');
|
|
if str_ansi <> 'c' then
|
|
_result := false;
|
|
{ normal char -> ansistring }
|
|
str_ansi := '';
|
|
wc:='c';
|
|
str_ansi:=wc;
|
|
if str_ansi <> 'c' then
|
|
_result := false;
|
|
{$endif}
|
|
|
|
if _result then
|
|
WriteLn('Success!')
|
|
else
|
|
fail;
|
|
{}
|
|
{$ifdef haswidestring}
|
|
{********************** char/widechar -> widestring *******************}
|
|
Write('widechar/char -> widestring...');
|
|
{* normal char *}
|
|
_result := true;
|
|
{ empty string -> widestring }
|
|
str_wide := '';
|
|
if str_wide <> '' then
|
|
_result := false;
|
|
{ constant char -> widestring }
|
|
str_wide := 'c';
|
|
if str_wide <> 'c' then
|
|
_result := false;
|
|
{ normal char -> widestring }
|
|
str_wide := '';
|
|
c:='c';
|
|
str_wide:=c;
|
|
if str_wide <> 'c' then
|
|
_result := false;
|
|
{* wide char *}
|
|
{ constant char -> widestring }
|
|
str_wide := widechar('c');
|
|
if str_wide <> 'c' then
|
|
_result := false;
|
|
{ normal char -> widestring }
|
|
str_wide := '';
|
|
wc:='c';
|
|
str_wide:=wc;
|
|
if str_wide <> 'c' then
|
|
_result := false;
|
|
|
|
|
|
if _result then
|
|
WriteLn('Success!')
|
|
else
|
|
fail;
|
|
{$endif haswidestring}
|
|
end.
|