RxFPC:try to fix compile on MacOS

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5837 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2017-04-19 05:31:06 +00:00
parent b50c32d866
commit de744bedf1
2 changed files with 62 additions and 57 deletions

View File

@ -31,8 +31,8 @@
<UnitName Value="RxIniPropStorage"/> <UnitName Value="RxIniPropStorage"/>
<IsVisibleTab Value="True"/> <IsVisibleTab Value="True"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="61"/> <TopLine Value="60"/>
<CursorPos X="44" Y="92"/> <CursorPos X="15" Y="92"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit2> </Unit2>
@ -58,123 +58,123 @@
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="30" HistoryIndex="29">
<Position1> <Position1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="47" Column="5" TopLine="12"/> <Caret Line="46" Column="5" TopLine="12"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="46" Column="5" TopLine="12"/> <Caret Line="47" Column="5" TopLine="12"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="47" Column="5" TopLine="12"/> <Caret Line="48" Column="5" TopLine="12"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="48" Column="5" TopLine="12"/> <Caret Line="49" Column="5" TopLine="12"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="49" Column="5" TopLine="12"/> <Caret Line="50" Column="5" TopLine="13"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="50" Column="5" TopLine="13"/> <Caret Line="55" Column="73" TopLine="15"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="unit1.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="55" Column="73" TopLine="15"/> <Caret Line="49" Column="28" TopLine="28"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="49" Column="28" TopLine="28"/> <Caret Line="65" Column="3" TopLine="48"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="65" Column="3" TopLine="48"/> <Caret Line="49" Column="14" TopLine="31"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="49" Column="14" TopLine="31"/> <Caret Line="53" Column="3" TopLine="35"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="53" Column="3" TopLine="35"/> <Caret Line="41" Column="49" TopLine="16"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="41" Column="49" TopLine="16"/> <Caret Line="86" Column="3" TopLine="84"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="86" Column="3" TopLine="84"/> <Caret Line="41" Column="15" TopLine="23"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="41" Column="15" TopLine="23"/> <Caret Line="86" Column="3" TopLine="84"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="86" Column="3" TopLine="84"/> <Caret Line="42" Column="15" TopLine="23"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="42" Column="15" TopLine="23"/> <Caret Line="103" Column="3" TopLine="101"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="103" Column="3" TopLine="101"/> <Caret Line="41" Column="15" TopLine="24"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="41" Column="15" TopLine="24"/> <Caret Line="86" Column="3" TopLine="84"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="86" Column="3" TopLine="84"/>
</Position19>
<Position20>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="51" Column="15" TopLine="31"/> <Caret Line="51" Column="15" TopLine="31"/>
</Position20> </Position19>
<Position21> <Position20>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="41" Column="27" TopLine="23"/> <Caret Line="41" Column="27" TopLine="23"/>
</Position20>
<Position21>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="86" Column="22" TopLine="55"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="86" Column="22" TopLine="55"/> <Caret Line="91" Column="13" TopLine="57"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="91" Column="13" TopLine="57"/> <Caret Line="39" Column="14" TopLine="22"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="39" Column="14" TopLine="22"/>
</Position24>
<Position25>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="92" Column="28" TopLine="58"/> <Caret Line="92" Column="28" TopLine="58"/>
</Position25> </Position24>
<Position26> <Position25>
<Filename Value="../../../../lcl/inipropstorage.pas"/> <Filename Value="../../../../lcl/inipropstorage.pas"/>
<Caret Line="39" Column="14" TopLine="22"/> <Caret Line="39" Column="14" TopLine="22"/>
</Position25>
<Position26>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="92" Column="40" TopLine="61"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="92" Column="40" TopLine="61"/> <Caret Line="58" Column="59" TopLine="40"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="58" Column="59" TopLine="40"/> <Caret Line="92" TopLine="61"/>
</Position28> </Position28>
<Position29> <Position29>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="../../rxcontrols/rxinipropstorage.pas"/>
<Caret Line="92" TopLine="61"/> <Caret Line="93" TopLine="61"/>
</Position29> </Position29>
<Position30> <Position30>
<Filename Value="../../rxcontrols/rxinipropstorage.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="93" TopLine="61"/> <Caret Line="55" Column="73" TopLine="15"/>
</Position30> </Position30>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>

View File

@ -56,14 +56,15 @@ const
implementation implementation
uses uses
strutils
{$IFDEF WINDOWS} {$IFDEF WINDOWS}
Windows , Windows
{$ELSE} {$ENDIF}
BaseUnix, users, strutils {$IFDEF LINUX}
{$ENDIF}; , BaseUnix, users
(* {$ENDIF}
FileUtil, LazFileUtils, LazUTF8; ;
*)
{$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)} {$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)}
function LStrError(const Ernum: Longint; const UseUTF8: Boolean = False): string; function LStrError(const Ernum: Longint; const UseUTF8: Boolean = False): string;
const const
@ -150,36 +151,40 @@ end;
function GetFileOwnerUser(const SearchDomain, FileName: String): String; function GetFileOwnerUser(const SearchDomain, FileName: String): String;
var var
S:string; S:string;
{$IFNDEF WINDOWS} {$IFDEF LINUX}
FStat: stat; FStat: stat;
{$ENDIF} {$ENDIF}
begin begin
Result:='';
{$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)} {$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)}
(* GetFileNameOwner(UTF8ToSys(SearchDomain), UTF8ToSys(FileName), Result, S); (* GetFileNameOwner(UTF8ToSys(SearchDomain), UTF8ToSys(FileName), Result, S);
Result:=UTF8Encode(Result);*) Result:=UTF8Encode(Result);*)
GetFileNameOwner(SearchDomain, FileName, Result, S); GetFileNameOwner(SearchDomain, FileName, Result, S);
{$ELSE} {$ENDIF}
{$IFDEF LINUX}
if FpStat(FileName, FStat) = 0 then if FpStat(FileName, FStat) = 0 then
Result:=users.GetUserName(FStat.uid) Result:=users.GetUserName(FStat.uid);
else
Result:='';
{$ENDIF} {$ENDIF}
end; end;
procedure GetFileOwnerData(const SearchDomain, FileName: String; out UserName, procedure GetFileOwnerData(const SearchDomain, FileName: String; out UserName,
DomainName: string); DomainName: string);
{$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)} {$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)}
{$ELSE} {$ENDIF}
{$IFDEF LINUX}
var var
SR: stat; SR: stat;
{$ENDIF} {$ENDIF}
begin begin
UserName:='';
DomainName:='';
{$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)} {$IF DEFINED(WINDOWS) AND NOT DEFINED(WINCE)}
{ GetFileNameOwner(UTF8ToSys(SearchDomain), UTF8ToSys(FileName), UserName, DomainName); { GetFileNameOwner(UTF8ToSys(SearchDomain), UTF8ToSys(FileName), UserName, DomainName);
UserName:=UTF8Encode(UserName); UserName:=UTF8Encode(UserName);
DomainName:=UTF8Encode(DomainName);} DomainName:=UTF8Encode(DomainName);}
GetFileNameOwner(SearchDomain, FileName, UserName, DomainName); GetFileNameOwner(SearchDomain, FileName, UserName, DomainName);
{$ELSE} {$ENDIF}
{$IFDEF LINUX}
FpStat(FileName, SR); FpStat(FileName, SR);
UserName:=users.GetUserName(SR.uid); UserName:=users.GetUserName(SR.uid);
if Pos('\', UserName) > 0 then if Pos('\', UserName) > 0 then