RxFPC:implement rxFileUtils.GetFileOwnerUser on linux

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@5821 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
alexs75
2017-03-27 10:31:28 +00:00
parent 979cd36e64
commit 4ec37f46be
4 changed files with 122 additions and 72 deletions

View File

@ -55,13 +55,13 @@
<MinVersion Major="1" Release="18" Build="56" Valid="True"/> <MinVersion Major="1" Release="18" Build="56" Valid="True"/>
</Item5> </Item5>
</RequiredPackages> </RequiredPackages>
<Units Count="55"> <Units Count="56">
<Unit0> <Unit0>
<Filename Value="RxDBGridDemo.lpr"/> <Filename Value="RxDBGridDemo.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
<EditorIndex Value="-1"/> <EditorIndex Value="-1"/>
<CursorPos X="47" Y="18"/> <CursorPos X="47" Y="18"/>
<UsageCount Value="119"/> <UsageCount Value="120"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="rxdbgridmainunit.pas"/> <Filename Value="rxdbgridmainunit.pas"/>
@ -72,7 +72,7 @@
<UnitName Value="RxDBGridMainUnit"/> <UnitName Value="RxDBGridMainUnit"/>
<TopLine Value="78"/> <TopLine Value="78"/>
<CursorPos X="138" Y="89"/> <CursorPos X="138" Y="89"/>
<UsageCount Value="119"/> <UsageCount Value="120"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@ -408,9 +408,9 @@
<Unit48> <Unit48>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<EditorIndex Value="1"/> <EditorIndex Value="1"/>
<TopLine Value="946"/> <TopLine Value="2068"/>
<CursorPos X="44" Y="974"/> <CursorPos X="47" Y="2097"/>
<UsageCount Value="11"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit48> </Unit48>
<Unit49> <Unit49>
@ -439,10 +439,10 @@
<Unit52> <Unit52>
<Filename Value="../../../../lcl/dbgrids.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<UnitName Value="DBGrids"/> <UnitName Value="DBGrids"/>
<EditorIndex Value="3"/> <EditorIndex Value="2"/>
<TopLine Value="458"/> <TopLine Value="9"/>
<CursorPos X="37" Y="473"/> <CursorPos X="53" Y="37"/>
<UsageCount Value="11"/> <UsageCount Value="12"/>
<Loaded Value="True"/> <Loaded Value="True"/>
</Unit52> </Unit52>
<Unit53> <Unit53>
@ -454,133 +454,131 @@
</Unit53> </Unit53>
<Unit54> <Unit54>
<Filename Value="../../rxdb/rxdbgrid_findunit.pas"/> <Filename Value="../../rxdb/rxdbgrid_findunit.pas"/>
<IsVisibleTab Value="True"/> <EditorIndex Value="-1"/>
<EditorIndex Value="2"/> <TopLine Value="13"/>
<TopLine Value="157"/>
<CursorPos X="20" Y="186"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit54> </Unit54>
<Unit55>
<Filename Value="../../../../lcl/themes.pas"/>
<UnitName Value="Themes"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="3"/>
<TopLine Value="679"/>
<CursorPos X="27" Y="692"/>
<UsageCount Value="11"/>
<Loaded Value="True"/>
</Unit55>
</Units> </Units>
<JumpHistory Count="30" HistoryIndex="29"> <JumpHistory Count="28" HistoryIndex="27">
<Position1> <Position1>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="207" Column="19" TopLine="185"/>
</Position1> </Position1>
<Position2> <Position2>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="199" Column="10" TopLine="185"/> <Caret Line="974" Column="44" TopLine="946"/>
</Position2> </Position2>
<Position3> <Position3>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="1031" Column="15" TopLine="1020"/> <Caret Line="86" TopLine="500"/>
</Position3> </Position3>
<Position4> <Position4>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="4930" Column="19" TopLine="4930"/> <Caret Line="99" Column="23" TopLine="82"/>
</Position4> </Position4>
<Position5> <Position5>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="5000" Column="5" TopLine="4988"/> <Caret Line="292" Column="22" TopLine="264"/>
</Position5> </Position5>
<Position6> <Position6>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="1030" Column="3" TopLine="1012"/> <Caret Line="491" Column="99" TopLine="464"/>
</Position6> </Position6>
<Position7> <Position7>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="5000" Column="5" TopLine="4976"/> <Caret Line="598" Column="30" TopLine="571"/>
</Position7> </Position7>
<Position8> <Position8>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="4943" Column="3" TopLine="4933"/> <Caret Line="3122" Column="53" TopLine="3104"/>
</Position8> </Position8>
<Position9> <Position9>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="5002" Column="10" TopLine="4985"/> <Caret Line="491" Column="14" TopLine="269"/>
</Position9> </Position9>
<Position10> <Position10>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="5019" Column="21" TopLine="5001"/> <Caret Line="99" Column="23" TopLine="82"/>
</Position10> </Position10>
<Position11> <Position11>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="5021" Column="12" TopLine="5003"/> <Caret Line="292" Column="44" TopLine="216"/>
</Position11> </Position11>
<Position12> <Position12>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="5088" Column="18" TopLine="5068"/>
</Position12> </Position12>
<Position13> <Position13>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="5089" Column="30" TopLine="5068"/> <Caret Line="86" TopLine="500"/>
</Position13> </Position13>
<Position14> <Position14>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="4968" Column="43" TopLine="4956"/> <Caret Line="490" Column="22" TopLine="473"/>
</Position14> </Position14>
<Position15> <Position15>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="625" Column="17" TopLine="607"/> <Caret Line="533" Column="99" TopLine="505"/>
</Position15> </Position15>
<Position16> <Position16>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="2459" Column="42" TopLine="2431"/> <Caret Line="903" Column="30" TopLine="719"/>
</Position16> </Position16>
<Position17> <Position17>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="2465" Column="15" TopLine="2437"/> <Caret Line="3803" Column="31" TopLine="3775"/>
</Position17> </Position17>
<Position18> <Position18>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="3806" Column="21" TopLine="3778"/>
</Position18> </Position18>
<Position19> <Position19>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="639" Column="3" TopLine="630"/> <Caret Line="3812" Column="52" TopLine="3812"/>
</Position19> </Position19>
<Position20> <Position20>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="2505" Column="40" TopLine="2502"/> <Caret Line="35" TopLine="35"/>
</Position20> </Position20>
<Position21> <Position21>
<Filename Value="../../../../lcl/dbgrids.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="473" Column="14" TopLine="456"/> <Caret Line="566" Column="31" TopLine="537"/>
</Position21> </Position21>
<Position22> <Position22>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="2505" Column="40" TopLine="2502"/> <Caret Line="1046" Column="31" TopLine="1016"/>
</Position22> </Position22>
<Position23> <Position23>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../rxdb/rxdbgrid.pas"/>
<Caret Line="639" Column="24" TopLine="624"/> <Caret Line="1070" Column="31" TopLine="1037"/>
</Position23> </Position23>
<Position24> <Position24>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="820" Column="55" TopLine="792"/> <Caret Line="99" Column="3" TopLine="82"/>
</Position24> </Position24>
<Position25> <Position25>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="650" Column="15" TopLine="634"/>
</Position25> </Position25>
<Position26> <Position26>
<Filename Value="../../../../lcl/dbgrids.pas"/> <Filename Value="../../../../lcl/dbgrids.pas"/>
<Caret Line="473" Column="14" TopLine="456"/> <Caret Line="37" Column="53" TopLine="9"/>
</Position26> </Position26>
<Position27> <Position27>
<Filename Value="../../../../lcl/dbgrids.pas"/> <Filename Value="../../../../lcl/themes.pas"/>
<Caret Line="339" Column="15" TopLine="323"/> <Caret Line="60" Column="9" TopLine="46"/>
</Position27> </Position27>
<Position28> <Position28>
<Filename Value="../../rxdb/rxdbgrid.pas"/> <Filename Value="../../../../lcl/themes.pas"/>
<Caret Line="2591" Column="38" TopLine="2588"/> <Caret Line="128" Column="11" TopLine="94"/>
</Position28> </Position28>
<Position29>
<Filename Value="../../rxdb/rxdbgrid.pas"/>
</Position29>
<Position30>
<Filename Value="../../rxdb/rxdbgrid_findunit.pas"/>
<Caret Line="165" Column="2" TopLine="139"/>
</Position30>
</JumpHistory> </JumpHistory>
</ProjectOptions> </ProjectOptions>
<CompilerOptions> <CompilerOptions>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<CONFIG> <CONFIG>
<ProjectSession> <ProjectSession>
<Version Value="9"/> <Version Value="10"/>
<BuildModes Active="Default"/> <BuildModes Active="Default"/>
<Units Count="10"> <Units Count="12">
<Unit0> <Unit0>
<Filename Value="project1.lpr"/> <Filename Value="project1.lpr"/>
<IsPartOfProject Value="True"/> <IsPartOfProject Value="True"/>
@ -11,7 +11,7 @@
<WindowIndex Value="-1"/> <WindowIndex Value="-1"/>
<TopLine Value="-1"/> <TopLine Value="-1"/>
<CursorPos X="-1" Y="-1"/> <CursorPos X="-1" Y="-1"/>
<UsageCount Value="26"/> <UsageCount Value="27"/>
</Unit0> </Unit0>
<Unit1> <Unit1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
@ -20,10 +20,9 @@
<HasResources Value="True"/> <HasResources Value="True"/>
<ResourceBaseClass Value="Form"/> <ResourceBaseClass Value="Form"/>
<UnitName Value="Unit1"/> <UnitName Value="Unit1"/>
<IsVisibleTab Value="True"/> <TopLine Value="68"/>
<TopLine Value="52"/>
<CursorPos X="29" Y="102"/> <CursorPos X="29" Y="102"/>
<UsageCount Value="26"/> <UsageCount Value="27"/>
<Loaded Value="True"/> <Loaded Value="True"/>
<LoadedDesigner Value="True"/> <LoadedDesigner Value="True"/>
</Unit1> </Unit1>
@ -92,8 +91,25 @@
<CursorPos X="3" Y="5282"/> <CursorPos X="3" Y="5282"/>
<UsageCount Value="10"/> <UsageCount Value="10"/>
</Unit9> </Unit9>
<Unit10>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<EditorIndex Value="1"/>
<TopLine Value="68"/>
<CursorPos X="14" Y="84"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit10>
<Unit11>
<Filename Value="../../rxdb/ex_rx_bin_datapacket.pas"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="2"/>
<TopLine Value="49"/>
<CursorPos X="15" Y="67"/>
<UsageCount Value="10"/>
<Loaded Value="True"/>
</Unit11>
</Units> </Units>
<JumpHistory Count="11" HistoryIndex="10"> <JumpHistory Count="19" HistoryIndex="18">
<Position1> <Position1>
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="91" Column="22" TopLine="63"/> <Caret Line="91" Column="22" TopLine="63"/>
@ -138,6 +154,38 @@
<Filename Value="unit1.pas"/> <Filename Value="unit1.pas"/>
<Caret Line="99" Column="60" TopLine="73"/> <Caret Line="99" Column="60" TopLine="73"/>
</Position11> </Position11>
<Position12>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<Caret Line="85" Column="35" TopLine="68"/>
</Position12>
<Position13>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<Caret Line="370" Column="3" TopLine="366"/>
</Position13>
<Position14>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<Caret Line="86" Column="15" TopLine="69"/>
</Position14>
<Position15>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<Caret Line="425" Column="3" TopLine="402"/>
</Position15>
<Position16>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<Caret Line="84" Column="15" TopLine="70"/>
</Position16>
<Position17>
<Filename Value="../../rxdb/ex_rx_xml_datapacket.pas"/>
<Caret Line="301" Column="3" TopLine="295"/>
</Position17>
<Position18>
<Filename Value="../../rxdb/ex_rx_bin_datapacket.pas"/>
<Caret Line="67" Column="14" TopLine="49"/>
</Position18>
<Position19>
<Filename Value="../../rxdb/ex_rx_bin_datapacket.pas"/>
<Caret Line="94" Column="3" TopLine="89"/>
</Position19>
</JumpHistory> </JumpHistory>
</ProjectSession> </ProjectSession>
</CONFIG> </CONFIG>

View File

@ -150,12 +150,16 @@ end;
function GetFileOwnerUser(const SearchDomain, FileName: String): String; function GetFileOwnerUser(const SearchDomain, FileName: String): String;
var var
S:string; S:string;
FStat: stat;
begin begin
{$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} {$ELSE}
if FpStat(FileName, FStat) = 0 then
Result:=users.GetUserName(FStat.uid)
else
Result:=''; Result:='';
{$ENDIF} {$ENDIF}
end; end;