Add FPC Compabulity

This commit is contained in:
2018-03-14 21:07:54 +03:00
parent 9345e2e634
commit d1706ff402
2 changed files with 108 additions and 101 deletions

View File

@@ -4,58 +4,58 @@
<PathDelim Value="\"/> <PathDelim Value="\"/>
<Version Value="10"/> <Version Value="10"/>
<BuildModes Active="Default"/> <BuildModes Active="Default"/>
<Units Count="11"> <Units Count="12">
<Unit0> <Unit0>
<Filename Value="fpcunitproject1.lpr"/> <Filename Value="fpcunitproject1.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<CursorPos X="66" Y="6"/> <CursorPos Y="9"/>
<UsageCount Value="22"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="testcase1.pas"/> <Filename Value="testcase1.pas"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<UnitName Value="TestCase1"/> <UnitName Value="TestCase1"/>
<EditorIndex Value="1"/> <EditorIndex Value="2"/>
<TopLine Value="17"/> <TopLine Value="17"/>
<CursorPos X="67" Y="29"/> <CursorPos Y="27"/>
<UsageCount Value="22"/> <UsageCount Value="23"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit1> </Unit1>
<Unit2> <Unit2>
<Filename Value="..\Source\FasmOnDelphi.pas"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/>
<TopLine Value="172"/>
<CursorPos X="25" Y="195"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="..\Fasm4Delphi\Source\Fasm4Delphi.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="5"/>
<TopLine Value="16"/>
<CursorPos X="3" Y="31"/>
<UsageCount Value="23"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="..\Source\Fasm4Delphi.pas"/> <Filename Value="..\Source\Fasm4Delphi.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<WindowIndex Value="-1"/> <WindowIndex Value="-1"/>
<TopLine Value="-1"/> <TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/> <CursorPos X="-1" Y="-1"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
</Unit2> </Unit4>
<Unit3> <Unit5>
<Filename Value="..\..\Source\FasmOnDelphi.pas"/> <Filename Value="..\..\Source\FasmOnDelphi.pas"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<WindowIndex Value="-1"/> <WindowIndex Value="-1"/>
<TopLine Value="-1"/> <TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/> <CursorPos X="-1" Y="-1"/>
<UsageCount Value="20"/> <UsageCount Value="20"/>
</Unit3>
<Unit4>
<Filename Value="..\Source\FasmOnDelphi.pas"/>
<IsPartOfProject Value="True"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="217"/>
<CursorPos Y="234"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="..\Fasm4Delphi\Source\Fasm4Delphi.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="4"/>
<TopLine Value="16"/>
<CursorPos X="3" Y="31"/>
<UsageCount Value="22"/>
<Loaded Value="True"/>
</Unit5> </Unit5>
<Unit6> <Unit6>
<Filename Value="C:\lazarus\fpc\3.0.2\source\rtl\inc\varianth.inc"/> <Filename Value="C:\lazarus\fpc\3.0.2\source\rtl\inc\varianth.inc"/>
@@ -87,134 +87,153 @@
</Unit9> </Unit9>
<Unit10> <Unit10>
<Filename Value="C:\lazarus\fpc\3.0.2\source\rtl\win\wininc\base.inc"/> <Filename Value="C:\lazarus\fpc\3.0.2\source\rtl\win\wininc\base.inc"/>
<EditorIndex Value="3"/> <EditorIndex Value="4"/>
<TopLine Value="140"/> <TopLine Value="140"/>
<CursorPos X="6" Y="169"/> <CursorPos X="6" Y="169"/>
<UsageCount Value="10"/> <UsageCount Value="11"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit10> </Unit10>
<Unit11>
<Filename Value="C:\lazarus\lcl\include\application.inc"/>
<EditorIndex Value="1"/>
<TopLine Value="414"/>
<CursorPos Y="431"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit11>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="33" TopLine="17"/> <Caret Line="200" Column="23" TopLine="175"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="429" Column="56" TopLine="427"/> <Caret Line="193" Column="27" TopLine="175"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="33" TopLine="17"/> <Caret Line="191" TopLine="175"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="185" Column="44" TopLine="170"/> <Caret Line="193" TopLine="175"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="33" TopLine="17"/> <Caret Line="194" TopLine="175"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="185" Column="35" TopLine="174"/> <Caret Line="195" TopLine="175"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="188" Column="24" TopLine="171"/> <Caret Line="200" TopLine="175"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="198" Column="20" TopLine="180"/> <Caret Line="205" TopLine="177"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="33" TopLine="17"/> <Caret Line="623" TopLine="607"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="testcase1.pas"/>
<Caret Line="549" TopLine="533"/> <Caret Line="27" TopLine="17"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="539" TopLine="533"/> <Caret Line="622" TopLine="607"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="33" TopLine="17"/> <Caret Line="201" Column="7" TopLine="172"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="537" Column="8" TopLine="533"/> <Caret Line="188" Column="20" TopLine="172"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="185" Column="56" TopLine="169"/> <Caret Line="191" TopLine="172"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="33" TopLine="17"/> <Caret Line="193" TopLine="172"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="23" Column="11" TopLine="17"/> <Caret Line="194" TopLine="172"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="174" Column="17" TopLine="157"/> <Caret Line="195" TopLine="172"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="217" Column="6" TopLine="201"/> <Caret Line="196" Column="35" TopLine="172"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="testcase1.pas"/>
<Caret Line="621" Column="58" TopLine="599"/> <Caret Line="27" TopLine="17"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="355" Column="29" TopLine="336"/> <Caret Line="623" TopLine="607"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="217" Column="5" TopLine="194"/> <Caret Line="190" TopLine="173"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="226" Column="32" TopLine="205"/> <Caret Line="192" TopLine="173"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="27" TopLine="17"/> <Caret Line="194" TopLine="173"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="23" Column="60" TopLine="17"/> <Caret Line="195" TopLine="173"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="27" TopLine="17"/> <Caret Line="196" TopLine="173"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="234" TopLine="217"/> <Caret Line="194" TopLine="173"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="23" Column="59" TopLine="17"/> <Caret Line="623" TopLine="607"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="testcase1.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="29" Column="67" TopLine="17"/> <Caret Line="194" TopLine="177"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="234" TopLine="217"/> <Caret Line="195" Column="36" TopLine="177"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="..\Source\FasmOnDelphi.pas"/> <Filename Value="..\Source\FasmOnDelphi.pas"/>
<Caret Line="539" TopLine="523"/> <Caret Line="623" Column="8" TopLine="607"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>
<Debugging>
<BreakPoints Count="1">
<Item1>
<Kind Value="bpkSource"/>
<WatchScope Value="wpsLocal"/>
<WatchKind Value="wpkWrite"/>
<Source Value="..\Source\FasmOnDelphi.pas"/>
<Line Value="622"/>
</Item1>
</BreakPoints>
</Debugging>
</CONFIG> </CONFIG>

View File

@@ -182,38 +182,26 @@ implementation
function GetLongPathNameA(lpszShortPath: LPSTR; lpszLongPath: LPSTR; function GetLongPathNameA(lpszShortPath: LPSTR; lpszLongPath: LPSTR;
cchBuffer: DWORD): DWORD; stdcall;external 'Kernel32.dll'; 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 var
I, LIterCnt, L, J: Integer; f:boolean;
PSubStr, PS: PAnsiChar;
begin begin
L := Length(SubStr); for Result:=Offset+1 to length(Str)-length(SubStr)+1 do
{ Calculate the number of possible iterations. Not valid if Offset < 1. } begin
LIterCnt := Length(Str) - Offset - L + 1; if SubStr[1]=Str[Result] then
{ 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
begin begin
PSubStr := PAnsiChar(SubStr); f:=true;
PS := PAnsiChar(Str); for Offset:=1 to Length(SubStr)-1 do
Inc(PS, Offset - 1); if SubStr[1+Offset]<>Str[Result+Offset] then
for I := 0 to LIterCnt do
begin
J := 0;
while (J >= 0) and (J < L) do
begin begin
if PS[I + J] = PSubStr[J] then f:=false;
Inc(J) break;
else
J := -1;
end; end;
if J >= L then if f then
Exit(I + Offset); exit;
end;
end; end;
end;
Result := 0; Result:=0;
end; end;
{$ENDIF} {$ENDIF}
@@ -360,7 +348,7 @@ begin
FileHandle:=CreateFile(PChar(s),GENERIC_READ,0,nil,3,128,0); FileHandle:=CreateFile(PChar(s),GENERIC_READ,0,nil,3,128,0);
Result.sb:=GetFileSize(FileHandle,nil); Result.sb:=GetFileSize(FileHandle,nil);
getmem(Result.OutData,Result.sb); getmem(Result.OutData,Result.sb);
ReadFile(FileHandle,Result.OutData,Result.sb,nr,nil); ReadFile(FileHandle,Result.OutData^,Result.sb,nr,nil);
CloseHandle(FileHandle); CloseHandle(FileHandle);
DeleteFile(PChar(s)); DeleteFile(PChar(s));
end end
@@ -547,7 +535,7 @@ begin
FileHandle:=CreateFile(PChar(s),GENERIC_READ,0,nil,3,128,0); FileHandle:=CreateFile(PChar(s),GENERIC_READ,0,nil,3,128,0);
Result.sb:=GetFileSize(FileHandle,nil); Result.sb:=GetFileSize(FileHandle,nil);
getmem(Result.OutData,Result.sb); getmem(Result.OutData,Result.sb);
ReadFile(FileHandle,Result.OutData,Result.sb,nr,nil); ReadFile(FileHandle,Result.OutData^,Result.sb,nr,nil);
CloseHandle(FileHandle); CloseHandle(FileHandle);
DeleteFile(PChar(s)); DeleteFile(PChar(s));
end end