From: Clifford Wolf Date: Thu, 22 Jan 2015 19:45:53 +0000 (+0100) Subject: Improved xdot calling X-Git-Tag: yosys-0.5~71 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=5707ba22c10048bef7d5ad81d090e3dd31d779a4;p=yosys.git Improved xdot calling --- diff --git a/passes/cmds/show.cc b/passes/cmds/show.cc index edc417c02..2779cabf9 100644 --- a/passes/cmds/show.cc +++ b/passes/cmds/show.cc @@ -794,7 +794,7 @@ struct ShowPass : public Pass { log_cmd_error("Nothing there to show.\n"); if (format != "dot" && !format.empty()) { - std::string cmd = stringf("dot -T%s -o '%s' '%s'", format.c_str(), out_file.c_str(), dot_file.c_str()); + std::string cmd = stringf("dot -T%s -o '%s.new' '%s' && mv '%s.new' '%s'", format.c_str(), out_file.c_str(), dot_file.c_str(), dot_file.c_str(), dot_file.c_str()); log("Exec: %s\n", cmd.c_str()); if (run_command(cmd) != 0) log_cmd_error("Shell command failed!\n"); @@ -807,7 +807,7 @@ struct ShowPass : public Pass { log_cmd_error("Shell command failed!\n"); } else if (format.empty()) { - std::string cmd = stringf("fuser -s '%s' || xdot '%s' < '%s' &", dot_file.c_str(), dot_file.c_str(), dot_file.c_str()); + std::string cmd = stringf("{ test -f '%s.pid' && fuser -s '%s.pid'; } || ( echo $$ >&3; exec xdot '%s'; ) 3> '%s.pid' &", dot_file.c_str(), dot_file.c_str(), dot_file.c_str(), dot_file.c_str()); log("Exec: %s\n", cmd.c_str()); if (run_command(cmd) != 0) log_cmd_error("Shell command failed!\n");