* paramstr(0) support

This commit is contained in:
peter 2000-02-08 11:47:09 +00:00
parent 712bf88b00
commit df5b664031
2 changed files with 49 additions and 34 deletions

View File

@ -258,6 +258,17 @@ begin
end;
Function Sys_ReadLink(name,linkname:pchar;maxlen:longint):longint;
var
regs : SysCallRegs;
begin
regs.reg2:=longint(name);
regs.reg3:=longint(linkname);
regs.reg4:=maxlen;
Sys_ReadLink:=SysCall(Syscall_nr_readlink,regs);
end;
{*****************************************************************************
--- Directory:Directory related calls ---
*****************************************************************************}
@ -360,6 +371,14 @@ end;
--- Process:Process & program handling - related calls ---
*****************************************************************************}
Function Sys_GetPid:LongInt;
var
regs : SysCallregs;
begin
Sys_GetPid:=SysCall(SysCall_nr_getpid,regs);
end;
Procedure Sys_Exit(ExitCode:Integer);
var
regs : SysCallregs;
@ -370,7 +389,10 @@ end;
{
$Log$
Revision 1.8 2000-01-07 16:41:41 daniel
Revision 1.9 2000-02-08 11:47:09 peter
* paramstr(0) support
Revision 1.8 2000/01/07 16:41:41 daniel
* copyright 2000
Revision 1.7 2000/01/07 16:32:28 daniel

View File

@ -106,45 +106,35 @@ End;
Function ParamCount: Longint;
Begin
{$ifdef crtlib}
ParamCount:=_rtl_paramcount;
{$else}
Paramcount:=argc-1
{$endif}
End;
Function ParamStr(l: Longint): String;
Var
{$ifndef crtlib}
i : longint;
pp : ppchar;
{$else}
b : Array[0..255] of Char;
{$endif}
Begin
{$ifdef crtlib}
_rtl_paramstr(@b, l);
ParamStr:=StrPas(b);
{$else}
if l>argc then
var
link,
hs : string;
i : longint;
begin
if l=0 then
begin
paramstr:='';
exit
end;
pp:=argv;
i:=0;
while (i<l) and (pp^<>nil) do
begin
inc(pp);
inc(i);
end;
if pp^<>nil then
Paramstr:=StrPas(pp^)
str(sys_getpid,hs);
hs:='/proc/'+hs+'/exe'#0;
i:=Sys_readlink(@hs[1],@link[1],high(link));
if i>0 then
begin
link[0]:=chr(i);
paramstr:=link;
end
else
paramstr:=strpas(argv[0]);
end
else
ParamStr:='';
{$endif}
End;
if (l>0) and (l<argc) then
paramstr:=strpas(argv[l])
else
paramstr:='';
end;
Procedure Randomize;
@ -745,7 +735,10 @@ End.
{
$Log$
Revision 1.34 2000-01-20 23:38:02 peter
Revision 1.35 2000-02-08 11:47:09 peter
* paramstr(0) support
Revision 1.34 2000/01/20 23:38:02 peter
* support fm_inout as stdoutput for assign(f,'');rewrite(f,1); becuase
rewrite opens always with filemode 2