summaryrefslogtreecommitdiff
path: root/tests/projects/pascal/shared/src
diff options
context:
space:
mode:
authorruki <[email protected]>2021-09-02 23:37:05 +0800
committerruki <[email protected]>2021-09-02 23:37:05 +0800
commit1306c34442e6089f05ef54b0772d4fb629c25117 (patch)
tree4da82b2e06512286d0f6b8e8429b429e828f28e1 /tests/projects/pascal/shared/src
parentb47154e928d5fa960365a205420912ae1363ba53 (diff)
add shared test for pascal
Diffstat (limited to 'tests/projects/pascal/shared/src')
-rw-r--r--tests/projects/pascal/shared/src/foo.pas23
-rw-r--r--tests/projects/pascal/shared/src/main.pas14
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.