use tclrs::tk::{host, load, trace};
fn main() {
let lib = match load::Libtk::open() {
Ok(l) => l,
Err(e) => {
eprintln!("tk-probe: {e}");
std::process::exit(2);
}
};
println!("tkprobe library {}", lib.path);
let impls = host::implemented();
println!(
"tkprobe implemented {} of {} TclStubs slots",
impls.len(),
tclrs::tk::abi::TCL_STUBS_SLOTS
);
for (i, name) in &impls {
println!("tkprobe impl {i} {name}");
}
let interp = host::build();
println!("tkprobe calling Tk_Init");
let rc = unsafe { load::call_tk_init(&lib, interp) };
match rc {
Ok(code) => println!(
"tkprobe Tk_Init returned {code} after {} served calls",
trace::served()
),
Err(e) => {
eprintln!("tk-probe: {e}");
std::process::exit(2);
}
}
}