mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-11-02 08:29:32 +01:00
* Pathstr eliminated
This commit is contained in:
parent
c63d36f974
commit
b903ce5a9a
@ -91,14 +91,13 @@ begin
|
||||
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(path),TSysParam(info));
|
||||
end;
|
||||
|
||||
Function fpLstat(Filename: PathStr;Info:pstat):cint;
|
||||
Function fpLstat(Filename: ansistring;Info:pstat):cint;
|
||||
{
|
||||
Get all information on a link (the link itself), and return it in info.
|
||||
}
|
||||
|
||||
begin
|
||||
FileName:=FileName+#0;
|
||||
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(@filename[1]),TSysParam(info));
|
||||
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(pchar(filename)),TSysParam(info));
|
||||
end;
|
||||
|
||||
Function fpSymlink(oldname,newname:pchar):cint;
|
||||
@ -118,7 +117,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.6 2004-07-03 22:48:49 marco
|
||||
Revision 1.7 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.6 2004/07/03 22:48:49 marco
|
||||
* small fix for 1.0.x cycling
|
||||
|
||||
Revision 1.5 2004/04/22 16:22:10 marco
|
||||
|
||||
@ -17,7 +17,7 @@ function fpNice(N:cint):cint;
|
||||
Function fpGetPriority(Which,Who:cint):cint;
|
||||
Function fpSetPriority(Which,Who,What:cint):cint;
|
||||
Function fpLstat(path:pchar;Info:pstat):cint;
|
||||
Function fpLstat(Filename: PathStr;Info:pstat):cint;
|
||||
Function fpLstat(Filename: ansistring;Info:pstat):cint;
|
||||
Function fpSymlink(oldname,newname:pchar):cint;
|
||||
Function fpReadLink(name,linkname:pchar;maxlen:cint):cint;
|
||||
Function Fpmmap(start:pointer;len:size_t;prot:cint;flags:cint;fd:cint;offst:off_t):pointer; external name 'FPC_SYSC_MMAP';
|
||||
@ -26,7 +26,10 @@ function fpgettimeofday(tp: ptimeval;tzp:ptimezone):cint; external name 'FPC_SYS
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 2004-01-01 17:07:21 marco
|
||||
Revision 1.6 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.5 2004/01/01 17:07:21 marco
|
||||
* few small freebsd fixes backported from debugging linux
|
||||
|
||||
Revision 1.4 2003/12/30 12:26:21 marco
|
||||
|
||||
@ -95,14 +95,13 @@ begin
|
||||
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(path),TSysParam(info));
|
||||
end;
|
||||
|
||||
Function fpLstat(Filename: PathStr;Info:pstat):cint;
|
||||
Function fpLstat(Filename: ansistring;Info:pstat):cint;
|
||||
{
|
||||
Get all information on a link (the link itself), and return it in info.
|
||||
}
|
||||
|
||||
begin
|
||||
FileName:=FileName+#0;
|
||||
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(@filename[1]),TSysParam(info));
|
||||
fpLStat:=do_syscall(syscall_nr_lstat,TSysParam(pchar(filename)),TSysParam(info));
|
||||
end;
|
||||
|
||||
Function fpSymlink(oldname,newname:pchar):cint;
|
||||
@ -116,7 +115,10 @@ end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 2004-04-22 17:17:23 peter
|
||||
Revision 1.6 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.5 2004/04/22 17:17:23 peter
|
||||
* x86-64 fixes
|
||||
|
||||
Revision 1.4 2004/01/01 16:10:23 marco
|
||||
|
||||
@ -22,13 +22,16 @@ function fpNice(N:cint):cint;
|
||||
Function fpGetPriority(Which,Who:cint):cint;
|
||||
Function fpSetPriority(Which,Who,What:cint):cint;
|
||||
Function fpLstat(path:pchar;Info:pstat):cint;
|
||||
Function fpLstat(Filename: PathStr;Info:pstat):cint;
|
||||
Function fpLstat(Filename: ansistring;Info:pstat):cint;
|
||||
Function fpSymlink(oldname,newname:pchar):cint;
|
||||
Function fpReadLink(name,linkname:pchar;maxlen:size_t):cint;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.5 2004-01-01 16:10:23 marco
|
||||
Revision 1.6 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.5 2004/01/01 16:10:23 marco
|
||||
* fpreadlink(pathstr) moved to unxovl (since not platform specific),
|
||||
small fixes for "make all OPT='-dFPC_USE_LIBC'
|
||||
|
||||
|
||||
@ -20,8 +20,8 @@ Uses BaseUnix,UnixType;
|
||||
|
||||
{$i aliasptp.inc}
|
||||
|
||||
type
|
||||
pathstr = string[255];
|
||||
//type
|
||||
// pathstr = string[255];
|
||||
|
||||
{$define POSIXWORKAROUND}
|
||||
{ Get Types and Constants }
|
||||
@ -40,8 +40,11 @@ type
|
||||
{$I signal.inc}
|
||||
{$i ostypes.inc}
|
||||
|
||||
// We init to zero to be able to put timezone stuff under IFDEF, and still
|
||||
// keep the code working.
|
||||
|
||||
var
|
||||
Tzseconds : Longint;
|
||||
Tzseconds : Longint {$ifndef ver1_0} = 0 {$endif};
|
||||
|
||||
|
||||
{********************
|
||||
@ -73,11 +76,15 @@ var
|
||||
tzdaylight : boolean;
|
||||
tzname : array[boolean] of pchar;
|
||||
|
||||
{$IFNDEF DONT_READ_TIMEZONE} // allows to disable linking in and trying for platforms
|
||||
// it doesn't (yet) work for.
|
||||
|
||||
{ timezone support }
|
||||
procedure GetLocalTimezone(timer:cint;var leap_correct,leap_hit:cint);
|
||||
procedure GetLocalTimezone(timer:cint);
|
||||
procedure ReadTimezoneFile(fn:string);
|
||||
function GetTimezoneFile:string;
|
||||
{$ENDIF}
|
||||
|
||||
{**************************
|
||||
Process Handling
|
||||
@ -194,9 +201,6 @@ Type
|
||||
CurrentDirectoryFirst,
|
||||
CurrentDirectoryLast);
|
||||
|
||||
//Function FExpand (Const Path: PathStr):PathStr;
|
||||
//Function FSearch (const path:pathstr;dirlist:string):pathstr;
|
||||
|
||||
Function FSearch (const path:AnsiString;dirlist:Ansistring;CurrentDirStrategy:TFSearchOption):AnsiString;
|
||||
Function FSearch (const path:AnsiString;dirlist:AnsiString):AnsiString;
|
||||
|
||||
@ -564,9 +568,10 @@ begin
|
||||
end;
|
||||
|
||||
|
||||
{$IFNDEF DONT_READ_TIMEZONE}
|
||||
{ Include timezone handling routines which use /usr/share/timezone info }
|
||||
{$i timezone.inc}
|
||||
|
||||
{$endif}
|
||||
{******************************************************************************
|
||||
FileSystem calls
|
||||
******************************************************************************}
|
||||
@ -1169,60 +1174,6 @@ end;
|
||||
Utility calls
|
||||
******************************************************************************}
|
||||
|
||||
{
|
||||
{$DEFINE FPC_FEXPAND_TILDE} { Tilde is expanded to home }
|
||||
{$DEFINE FPC_FEXPAND_GETENVPCHAR} { GetEnv result is a PChar }
|
||||
|
||||
{$I fexpand.inc}
|
||||
|
||||
{$UNDEF FPC_FEXPAND_GETENVPCHAR}
|
||||
{$UNDEF FPC_FEXPAND_TILDE}
|
||||
|
||||
{}
|
||||
Function FSearch(const path:pathstr;dirlist:string):pathstr;
|
||||
{
|
||||
Searches for a file 'path' in the list of direcories in 'dirlist'.
|
||||
returns an empty string if not found. Wildcards are NOT allowed.
|
||||
If dirlist is empty, it is set to '.'
|
||||
}
|
||||
Var
|
||||
NewDir : PathStr;
|
||||
p1 : cint;
|
||||
Info : Stat;
|
||||
Begin
|
||||
{Replace ':' with ';'}
|
||||
for p1:=1 to length(dirlist) do
|
||||
if dirlist[p1]=':' then
|
||||
dirlist[p1]:=';';
|
||||
{Check for WildCards}
|
||||
If (Pos('?',Path) <> 0) or (Pos('*',Path) <> 0) Then
|
||||
FSearch:='' {No wildcards allowed in these things.}
|
||||
Else
|
||||
Begin
|
||||
Dirlist:='.;'+dirlist;{Make sure current dir is first to be searched.}
|
||||
Repeat
|
||||
p1:=Pos(';',DirList);
|
||||
If p1=0 Then
|
||||
p1:=255;
|
||||
NewDir:=Copy(DirList,1,P1 - 1);
|
||||
if NewDir[Length(NewDir)]<>'/' then
|
||||
NewDir:=NewDir+'/';
|
||||
NewDir:=NewDir+Path;
|
||||
Delete(DirList,1,p1);
|
||||
if (FpStat(NewDir,Info)>=0) and
|
||||
(not fpS_ISDIR(Info.st_Mode)) then
|
||||
Begin
|
||||
If Pos('./',NewDir)=1 Then
|
||||
Delete(NewDir,1,2);
|
||||
{DOS strips off an initial .\}
|
||||
End
|
||||
Else
|
||||
NewDir:='';
|
||||
Until (DirList='') or (Length(NewDir) > 0);
|
||||
FSearch:=NewDir;
|
||||
End;
|
||||
End;
|
||||
}
|
||||
Function FSearch(const path:AnsiString;dirlist:Ansistring;CurrentDirStrategy:TFSearchOption):AnsiString;
|
||||
{
|
||||
Searches for a file 'path' in the list of direcories in 'dirlist'.
|
||||
@ -1234,7 +1185,7 @@ stringhandling overhead at the same time.
|
||||
|
||||
}
|
||||
Var
|
||||
NewDir : PathStr;
|
||||
NewDir : ansistring;
|
||||
p1 : cint;
|
||||
Info : Stat;
|
||||
i,j : cint;
|
||||
@ -1289,15 +1240,21 @@ End;
|
||||
--------------------------------}
|
||||
|
||||
Initialization
|
||||
{$IFNDEF DONT_READ_TIMEZONE}
|
||||
InitLocalTime;
|
||||
|
||||
{$endif}
|
||||
finalization
|
||||
{$IFNDEF DONT_READ_TIMEZONE}
|
||||
DoneLocalTime;
|
||||
{$endif}
|
||||
End.
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.75 2004-10-30 20:55:54 marco
|
||||
Revision 1.76 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.75 2004/10/30 20:55:54 marco
|
||||
* unix interface cleanup
|
||||
|
||||
Revision 1.74 2004/07/18 14:54:42 jonas
|
||||
|
||||
@ -14,7 +14,7 @@
|
||||
|
||||
**********************************************************************}
|
||||
|
||||
Function StatFS(Path:Pathstr;Var Info:Tstatfs):cint;
|
||||
Function StatFS(Path:ansistring;Var Info:Tstatfs):cint;
|
||||
|
||||
{
|
||||
Get all information on a fileSystem, and return it in Info.
|
||||
@ -23,32 +23,34 @@ Function StatFS(Path:Pathstr;Var Info:Tstatfs):cint;
|
||||
}
|
||||
|
||||
begin
|
||||
path:=path+#0;
|
||||
statfs:=statfs(pchar(@path[1]),info);
|
||||
statfs:=statfs(pchar(path),info);
|
||||
end;
|
||||
|
||||
Function fpReadLink(Name:pathstr):pathstr;
|
||||
Function fpReadLink(Name:ansistring):ansistring;
|
||||
{
|
||||
Read a link (where it points to)
|
||||
}
|
||||
var
|
||||
LinkName : pathstr;
|
||||
LinkName : ansistring;
|
||||
i : cint;
|
||||
begin
|
||||
Name:=Name+#0;
|
||||
i:=fpReadLink(@Name[1],@LinkName[1],high(linkname));
|
||||
SetLength(linkname,PATH_MAX);
|
||||
i:=fpReadLink(pchar(name),pchar(linkname),PATH_MAX);
|
||||
if i>0 then
|
||||
begin
|
||||
linkname[0]:=chr(i);
|
||||
SetLength(linkname,i);
|
||||
fpReadLink:=LinkName;
|
||||
end
|
||||
else
|
||||
fpReadLink:='';
|
||||
fpReadLink:='';
|
||||
end;
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2004-01-01 16:10:23 marco
|
||||
Revision 1.3 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.2 2004/01/01 16:10:23 marco
|
||||
* fpreadlink(pathstr) moved to unxovl (since not platform specific),
|
||||
small fixes for "make all OPT='-dFPC_USE_LIBC'
|
||||
|
||||
|
||||
@ -16,13 +16,16 @@
|
||||
|
||||
Function PClose(Var F:file) : cint;
|
||||
Function PClose (Var F:text) : cint;
|
||||
Function StatFS(Path:Pathstr;Var Info:Tstatfs):cint;
|
||||
Function fpReadLink(Name:pathstr):pathstr;
|
||||
Function StatFS(Path:ansistring;Var Info:Tstatfs):cint;
|
||||
Function fpReadLink(Name:ansistring):ansistring;
|
||||
|
||||
|
||||
{
|
||||
$Log$
|
||||
Revision 1.2 2004-01-01 16:10:23 marco
|
||||
Revision 1.3 2004-11-03 15:00:43 marco
|
||||
* Pathstr eliminated
|
||||
|
||||
Revision 1.2 2004/01/01 16:10:23 marco
|
||||
* fpreadlink(pathstr) moved to unxovl (since not platform specific),
|
||||
small fixes for "make all OPT='-dFPC_USE_LIBC'
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user