add `xschem log_write text` command so erc error messages are written into errfp instead of stderr by tcl

This commit is contained in:
stefan schippers 2024-07-12 07:09:32 +02:00
parent 28bef9b06e
commit d444673b88
3 changed files with 18 additions and 1 deletions

View File

@ -541,6 +541,10 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
@ -991,6 +995,8 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
If 'f' is given output stderr messages to file 'f'
if 'f' is not given and a file log is open, close log
file and resume logging to stderr </pre>
<li><kbd> log_write text</kbd></li><pre>
write given string to log file, so tcl can write messages on the log file</pre>
<li><kbd> logic_get_net net_name</kbd></li><pre>
Get logic state of net named 'net_name'
Returns 0, 1, 2, 3 for logic levels 0, 1, X, Z or nothing if no net found.</pre>
@ -1639,6 +1645,7 @@ C {verilog_timescale.sym} 1050 -100 0 0 {name=s1 timestep="1ns" precision="1ns"
</ul>

View File

@ -2824,6 +2824,16 @@ int xschem(ClientData clientdata, Tcl_Interp *interp, int argc, const char * arg
else if(argc==2 && errfp != stderr) { fclose(errfp); errfp=stderr; }
}
/* log_write text
* write given string to log file, so tcl can write messages on the log file
*/
else if(!strcmp(argv[1], "log_write"))
{
if(argc > 2) {
dbg(0, "%s\n", argv[2]);
}
}
/* logic_get_net net_name
* Get logic state of net named 'net_name'
* Returns 0, 1, 2, 3 for logic levels 0, 1, X, Z or nothing if no net found.

View File

@ -5572,7 +5572,7 @@ proc show_infotext {{err 0}} {
if {[info exists has_x]} {
wm deiconify .infotext
} else {
puts stderr [xschem get infowindow_text]
xschem log_write [xschem get infowindow_text]
}
}
}