replace exec with execute_wait in proc convert_to_pdf when launching ps2pdf, so stderr messages will not be treated as a failure

This commit is contained in:
stefan schippers 2024-02-17 00:15:37 +01:00
parent 8b55066978
commit 91829bf99d
1 changed files with 18 additions and 11 deletions

View File

@ -789,22 +789,29 @@ proc netlist {source_file show netlist_file} {
# 20161121
proc convert_to_pdf {filename dest} {
global to_pdf OS
global to_pdf OS execute
if { [regexp -nocase {\.pdf$} $dest] } {
set pdffile [file rootname $filename].pdf
# puts "---> $to_pdf $filename $pdffile"
set cmd "exec $to_pdf \$filename \$pdffile"
# puts "---> cmd=$to_pdf filename=$filename pdffile=$pdffile dest=$dest"
if {$OS == "Windows"} {
set cmd "exec $to_pdf \$pdffile \$filename"
}
if { ![catch {eval $cmd} msg] } {
file rename -force $pdffile $dest
# ps2pdf succeeded, so remove original .ps file
if { ![xschem get debug_var] } {
file delete $filename
if { ![catch {eval $cmd} msg] } {
file rename -force $pdffile $dest
# ps2pdf succeeded, so remove original .ps file
if { ![xschem get debug_var] } {
file delete $filename
}
} else {
puts stderr "problems converting postscript to pdf: $msg"
}
} else { ;# OS == unix
eval execute_wait 0 $to_pdf [list $filename $pdffile]
if {$execute(status,last) == 0} {
file rename -force $pdffile $dest
if { ![xschem get debug_var] } {
file delete $filename
}
}
} else {
puts stderr "problems converting postscript to pdf: $msg"
}
} else {
file rename -force $filename $dest