diff options
Diffstat (limited to 'tests/projects/pascal/shared/src')
| -rw-r--r-- | tests/projects/pascal/shared/src/foo.pas | 23 | ||||
| -rw-r--r-- | tests/projects/pascal/shared/src/main.pas | 14 |
2 files changed, 37 insertions, 0 deletions
diff --git a/tests/projects/pascal/shared/src/foo.pas b/tests/projects/pascal/shared/src/foo.pas new file mode 100644 index 000000000..2d12d39f5 --- /dev/null +++ b/tests/projects/pascal/shared/src/foo.pas @@ -0,0 +1,23 @@ +library subs; + +function SubStr(CString: PChar;FromPos,ToPos: Longint): PChar; cdecl; + +var + Length: Integer; + +begin + Length := StrLen(CString); + SubStr := CString + Length; + if (FromPos > 0) and (ToPos >= FromPos) then + begin + if Length >= FromPos then + SubStr := CString + FromPos; + if Length > ToPos then + CString[ToPos+1] := #0; + end; +end; + +exports + SubStr; + +end. diff --git a/tests/projects/pascal/shared/src/main.pas b/tests/projects/pascal/shared/src/main.pas new file mode 100644 index 000000000..9ee983a12 --- /dev/null +++ b/tests/projects/pascal/shared/src/main.pas @@ -0,0 +1,14 @@ +uses strings; + +function SubStr(const CString: PChar; FromPos, ToPos: longint): PChar; + cdecl; external 'subs'; + +var + s: PChar; + FromPos, ToPos: Integer; +begin + s := strnew('TestMe'); + FromPos := 2; + ToPos := 3; + WriteLn(SubStr(s, FromPos, ToPos)); +end. |
