+ keep also the fds for the current dirs

git-svn-id: trunk@49523 -
This commit is contained in:
nickysn 2021-06-22 22:44:20 +00:00
parent d3ce008cd3
commit ba3383f7e3

View File

@ -55,6 +55,7 @@ var
preopened_dirs: PPChar; preopened_dirs: PPChar;
drives_count: longint; drives_count: longint;
current_dirs: PPChar; current_dirs: PPChar;
current_dir_fds: Plongint;
current_drive: longint; current_drive: longint;
procedure DebugWrite(const P: PChar); procedure DebugWrite(const P: PChar);
@ -107,6 +108,7 @@ begin
preopened_dirs:=nil; preopened_dirs:=nil;
drives_count:=0; drives_count:=0;
current_dirs:=nil; current_dirs:=nil;
current_dir_fds:=nil;
current_drive:=0; current_drive:=0;
fd:=3; fd:=3;
repeat repeat
@ -133,14 +135,21 @@ begin
begin begin
drives_count:=drive_nr+1; drives_count:=drive_nr+1;
if current_dirs=nil then if current_dirs=nil then
current_dirs:=AllocMem(drives_count*SizeOf(PChar)) begin
current_dirs:=AllocMem(drives_count*SizeOf(PChar));
current_dir_fds:=AllocMem(drives_count*SizeOf(longint));
end
else else
begin
ReAllocMem(current_dirs,drives_count*SizeOf(PChar)); ReAllocMem(current_dirs,drives_count*SizeOf(PChar));
ReAllocMem(current_dir_fds,drives_count*SizeOf(longint));
end;
end; end;
if current_dirs[drive_nr]=nil then if current_dirs[drive_nr]=nil then
begin begin
current_dirs[drive_nr]:=GetMem(1+StrLen(prestat_dir_name)); current_dirs[drive_nr]:=GetMem(1+StrLen(prestat_dir_name));
Move(prestat_dir_name^,current_dirs[drive_nr]^,StrLen(prestat_dir_name)+1); Move(prestat_dir_name^,current_dirs[drive_nr]^,StrLen(prestat_dir_name)+1);
current_dir_fds[drive_nr]:=fd;
end; end;
end end
else else