diff --git a/FPCTests/fpcunitproject1.lps b/FPCTests/fpcunitproject1.lps
index c799b8e..4d60343 100644
--- a/FPCTests/fpcunitproject1.lps
+++ b/FPCTests/fpcunitproject1.lps
@@ -4,58 +4,58 @@
-
+
-
-
+
+
-
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -87,134 +87,153 @@
-
+
-
+
+
+
+
+
+
+
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
-
+
+
-
-
+
+
-
-
+
+
-
+
-
-
+
+
-
-
+
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Source/FasmOnDelphi.pas b/Source/FasmOnDelphi.pas
index 3e1c173..b5d3bca 100644
--- a/Source/FasmOnDelphi.pas
+++ b/Source/FasmOnDelphi.pas
@@ -182,38 +182,26 @@ implementation
function GetLongPathNameA(lpszShortPath: LPSTR; lpszLongPath: LPSTR;
cchBuffer: DWORD): DWORD; stdcall;external 'Kernel32.dll';
-function Pos(const SubStr,Str:AnsiString;Offset:Integer): Integer; overload;
+function Pos(const SubStr,Str:AnsiString;Offset:Integer=0):Integer;
var
- I, LIterCnt, L, J: Integer;
- PSubStr, PS: PAnsiChar;
+ f:boolean;
begin
- L := Length(SubStr);
- { Calculate the number of possible iterations. Not valid if Offset < 1. }
- LIterCnt := Length(Str) - Offset - L + 1;
-
- { Only continue if the number of iterations is positive or zero (there is space to check) }
- if (Offset > 0) and (LIterCnt >= 0) and (L > 0) then
+for Result:=Offset+1 to length(Str)-length(SubStr)+1 do
+begin
+ if SubStr[1]=Str[Result] then
begin
- PSubStr := PAnsiChar(SubStr);
- PS := PAnsiChar(Str);
- Inc(PS, Offset - 1);
-
- for I := 0 to LIterCnt do
- begin
- J := 0;
- while (J >= 0) and (J < L) do
+ f:=true;
+ for Offset:=1 to Length(SubStr)-1 do
+ if SubStr[1+Offset]<>Str[Result+Offset] then
begin
- if PS[I + J] = PSubStr[J] then
- Inc(J)
- else
- J := -1;
+ f:=false;
+ break;
end;
- if J >= L then
- Exit(I + Offset);
- end;
+ if f then
+ exit;
end;
-
- Result := 0;
+end;
+Result:=0;
end;
{$ENDIF}
@@ -360,7 +348,7 @@ begin
FileHandle:=CreateFile(PChar(s),GENERIC_READ,0,nil,3,128,0);
Result.sb:=GetFileSize(FileHandle,nil);
getmem(Result.OutData,Result.sb);
- ReadFile(FileHandle,Result.OutData,Result.sb,nr,nil);
+ ReadFile(FileHandle,Result.OutData^,Result.sb,nr,nil);
CloseHandle(FileHandle);
DeleteFile(PChar(s));
end
@@ -547,7 +535,7 @@ begin
FileHandle:=CreateFile(PChar(s),GENERIC_READ,0,nil,3,128,0);
Result.sb:=GetFileSize(FileHandle,nil);
getmem(Result.OutData,Result.sb);
- ReadFile(FileHandle,Result.OutData,Result.sb,nr,nil);
+ ReadFile(FileHandle,Result.OutData^,Result.sb,nr,nil);
CloseHandle(FileHandle);
DeleteFile(PChar(s));
end