Permalink
Browse files

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

  • Loading branch information...
1 parent ab0722f commit ddcdff4e339bc2303166eb48aea4161c5bffcb9c @martijnlaan martijnlaan committed Oct 30, 2012
Showing with 9 additions and 142 deletions.
  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
View
@@ -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 +1 @@
-*.dcu
-ps
+*.dcu
Submodule Ps added at d2a93a
Submodule UniPs added at 52291f
@@ -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;
View
@@ -1 +0,0 @@
-52291ffbfc14f3cf1a445f3e88c6902e13fbdf78

0 comments on commit ddcdff4

Please sign in to comment.