diff --git a/compiler/verbose.pas b/compiler/verbose.pas index 61a4bce4c7..4d11f70dbc 100644 --- a/compiler/verbose.pas +++ b/compiler/verbose.pas @@ -145,12 +145,19 @@ var procedure SetRedirectFile(const fn:string); begin + { close old redirection file because FileRedirection is handled in both passes } + if status.use_redir then + close(status.redirfile); + assign(status.redirfile,fn); - {$I-} - append(status.redirfile); - if ioresult <> 0 then - rewrite(status.redirfile); - {$I+} + {$I-} + append(status.redirfile); + if ioresult <> 0 then + begin + assign(status.redirfile,fn); + rewrite(status.redirfile); + end; + {$I+} status.use_redir:=(ioresult=0); end; @@ -384,7 +391,7 @@ var status.currentmodule:=module.modulename^; status.currentsource:=module.sourcefiles.get_file_name(current_filepos.fileindex); status.currentsourcepath:=module.sourcefiles.get_file_path(current_filepos.fileindex); - + { update lastfileidx only if name known PM } if status.currentsource<>'' then lastfileidx:=current_filepos.fileindex