因此,我正在处理一个大型 TCL 项目,并且认为构建一个树状视图来显示文件在项目中的来源方式会很酷。我修改了源命令以执行以下操作:
rename ::source ::real_source
proc ::source args {
set file_handle [open "file_source.tcl" a]
puts $file_handle $args
puts $file_handle $argv0
close $file_handle
uplevel 1 ::real_source $args
}
它可以工作并保存所有正在获取的文件,但我想知道是否有人对如何确定哪些文件正在调用源命令有任何想法?
我遇到的另一个有趣的问题是我的新源程序似乎只在某些文件中工作。文件 A 源文件 B 和文件 B 中的所有源似乎工作正常,但其下的任何内容似乎都会返回到使用旧的源过程。关于为什么会发生这种情况有什么想法吗?
[info script]
将为您提供调用文件的名称source
Example:
a.tcl
rename ::source ::real_source
proc ::source args {
puts "[info script] sources $args"
uplevel 1 ::real_source $args
}
source b.tcl
b.tcl
puts "in file b"
source c.tcl
c.tcl
puts "in file c"
outputs
a.tcl sources b.tcl
in file b
b.tcl sources c.tcl
in file c
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)