Parcourir la source

Added modules for Ps and UniPs. Still need to update readme.

Martijn Laan il y a 13 ans
Parent
commit
ddcdff4e33
6 fichiers modifiés avec 9 ajouts et 142 suppressions
  1. 6 0
      .gitmodules
  2. 1 2
      Components/.gitignore
  3. 1 0
      Components/Ps
  4. 1 0
      Components/UniPs
  5. 0 139
      ROPS-1045-to-1045a-patch.txt
  6. 0 1
      ROPS-revision.txt

+ 6 - 0
.gitmodules

@@ -0,0 +1,6 @@
+[submodule "Components/Ps"]
+	path = Components/Ps
+	url = git://github.com/martijnlaan/Ps.git
+[submodule "Components/UniPs"]
+	path = Components/UniPs
+	url = git://github.com/remobjects/pascalscript.git

+ 1 - 2
Components/.gitignore

@@ -1,2 +1 @@
-*.dcu
-ps
+*.dcu

+ 1 - 0
Components/Ps

@@ -0,0 +1 @@
+Subproject commit d2a93a5a24f56b2c1f96991a6fffaefd97f11c2d

+ 1 - 0
Components/UniPs

@@ -0,0 +1 @@
+Subproject commit 52291ffbfc14f3cf1a445f3e88c6902e13fbdf78

+ 0 - 139
ROPS-1045-to-1045a-patch.txt

@@ -1,139 +0,0 @@
-This patch adds 'loadwithalteredsearchpath' support to the SVN rev 1045 sources.
-
-diff -ur 1045/Source/uPSC_dll.pas 1045a/Source/uPSC_dll.pas
---- 1045/Source/uPSC_dll.pas	Fri Jan 14 10:52:59 2005
-+++ 1045a/Source/uPSC_dll.pas	Sun Sep 16 01:36:36 2007
-@@ -40,12 +40,13 @@
- function DllExternalProc(Sender: TPSPascalCompiler; Decl: TPSParametersDecl; const Name, FExternal: string): TPSRegProc;
- var
-   FuncName,
--  FuncCC, s: string;
-+  FuncCC, s, s2: string;
-   CC: TDllCallingConvention;
--  DelayLoad: Boolean;
-+  DelayLoad, LoadWithAlteredSearchPath: Boolean;
- 
- begin
-   DelayLoad := False;
-+  LoadWithAlteredSearchPath := False;
-   FuncCC := FExternal;
-   if (pos('@', FuncCC) = 0) then
-   begin
-@@ -63,15 +64,28 @@
-     begin
-       s := Copy(FuncCC, pos(' ', Funccc)+1, MaxInt);
-       FuncCC := FastUpperCase(Copy(FuncCC, 1, pos(' ', FuncCC)-1));
--      Delete(FuncCC, pos(' ', Funccc), MaxInt);
--      if FastUppercase(s) = 'DELAYLOAD' then
--        DelayLoad := True
--      else
--      begin
--        Sender.MakeError('', ecCustomError, 'Invalid External');
--        Result := nil;
--        exit;
--      end;
-+      repeat
-+        if pos(' ', s) > 0 then begin
-+          s2 := Copy(s, 1, pos(' ', s)-1);
-+          delete(s, 1, pos(' ', s));
-+        end else begin
-+          s2 := s;
-+          s := '';
-+        end;
-+        if FastUppercase(s2) = 'DELAYLOAD' then
-+          DelayLoad := True
-+        {$IFNDEF LINUX}
-+        else
-+        if FastUppercase(s2) = 'LOADWITHALTEREDSEARCHPATH' then
-+          LoadWithAlteredSearchPath := True
-+        {$ENDIF}
-+        else
-+        begin
-+          Sender.MakeError('', ecCustomError, 'Invalid External');
-+          Result := nil;
-+          exit;
-+        end;
-+      until s = '';
-     end else
-       FuncCC := FastUpperCase(FuncCC);
-     if FuncCC = 'STDCALL' then cc := ClStdCall else
-@@ -89,7 +103,7 @@
-     FuncCC := '';
-     cc := DefaultCC;
-   end;
--  FuncName := 'dll:'+FuncName+char(cc)+char(bytebool(DelayLoad)) + declToBits(Decl);
-+  FuncName := 'dll:'+FuncName+char(cc)+char(bytebool(DelayLoad))+char(bytebool(LoadWithAlteredSearchPath)) + declToBits(Decl);
-   Result := TPSRegProc.Create;
-   Result.ImportDecl := FuncName;
-   Result.Decl.Assign(Decl);
-diff -ur 1045/Source/uPSR_dll.pas 1045a/Source/uPSR_dll.pas
---- 1045/Source/uPSR_dll.pas	Sat Jan 15 17:29:32 2005
-+++ 1045a/Source/uPSR_dll.pas	Sun Sep 16 01:36:36 2007
-@@ -24,7 +24,7 @@
- {
- p^.Ext1 contains the pointer to the Proc function
- p^.ExportDecl:
--  'dll:'+DllName+#0+FunctionName+#0+chr(Cc)+Chr(DelayLoad)+VarParams
-+  'dll:'+DllName+#0+FunctionName+#0+chr(Cc)+Chr(DelayLoad)+Chr(AlternateSearchPath)+VarParams
- }
- 
- type
-@@ -83,7 +83,7 @@
- 
- function LoadDll(Caller: TPSExec; P: TPSExternalProcRec): Boolean;
- var
--  s, s2: string;
-+  s, s2, s3: string;
-   h, i: Longint;
-   ph: PLoadedDll;
-   {$IFDEF LINUX}
-@@ -91,12 +91,16 @@
-   {$ELSE}
-   dllhandle: THandle;
-   {$ENDIF}
-+  loadwithalteredsearchpath: Boolean;
- begin
-   s := p.Decl;
-   Delete(s, 1, 4);
-   s2 := copy(s, 1, pos(#0, s)-1);
-   delete(s, 1, length(s2)+1);
-   h := makehash(s2);
-+  s3 := copy(s, 1, pos(#0, s)-1);
-+  delete(s, 1, length(s3)+1);
-+  loadwithalteredsearchpath := bytebool(s[3]);
-   i := 2147483647; // maxint
-   dllhandle := 0;
-   repeat
-@@ -113,7 +117,10 @@
-       {$IFDEF LINUX}
-       dllhandle := dlopen(PChar(s2), RTLD_LAZY);
-       {$ELSE}
--      dllhandle := LoadLibrary(Pchar(s2));
-+      if loadwithalteredsearchpath then
-+        dllhandle := LoadLibraryEx(Pchar(s2), 0, LOAD_WITH_ALTERED_SEARCH_PATH)
-+      else
-+        dllhandle := LoadLibrary(Pchar(s2));
-       {$ENDIF}
-       if dllhandle = {$IFDEF LINUX}nil{$ELSE}0{$ENDIF}then
-       begin
-@@ -133,9 +140,9 @@
-     end;
-   until dllhandle <> {$IFDEF LINUX}nil{$ELSE}0{$ENDIF};
-   {$IFDEF LINUX}
--  p.Ext1 := dlsym(dllhandle, pchar(copy(s, 1, pos(#0, s)-1)));
-+  p.Ext1 := dlsym(dllhandle, pchar(s3));
-   {$ELSE}
--  p.Ext1 := GetProcAddress(dllhandle, pchar(copy(s, 1, pos(#0, s)-1)));
-+  p.Ext1 := GetProcAddress(dllhandle, pchar(s3));
-   {$ENDIF}
-   if p.Ext1 = nil then
-   begin
-@@ -179,7 +186,7 @@
-     exit;
-   end;
-   cc := TPSCallingConvention(s[1]);
--  delete(s, 1, 2); // cc + delayload (delayload might also be forced!)
-+  delete(s, 1, 3); // cc + delayload + alternatesearchpath (delayload might also be forced!)
-   CurrStack := Cardinal(Stack.Count) - Cardinal(length(s));
-   if s[1] = #0 then inc(CurrStack);
-   MyList := tIfList.Create;

+ 0 - 1
ROPS-revision.txt

@@ -1 +0,0 @@
-52291ffbfc14f3cf1a445f3e88c6902e13fbdf78