emptist, 2005/11/19: strange thing: sdx refuses to move
After I have test out how to use tclkit and sdx to built a single exe, I decided to create a dir for these three files: tclkit.exe sdx.kit tclkitsh.exe, to find
tclkitsh sdx.kit
runs into a:
invalid command name "sdx"
while the original copy of these files in another dir still works.
MHo, 2005/11/11: trying to do a
tclkitsh sdx.kit
from within a directory which includes spaces in its name, fails:
D:\Dokumente und Einstellungen\hoffmann\Eigene Dateien\Downloads>tclkitsh sdx.kit version wrong # args: should be "source file" while executing "source sdx.kit/main.tcl" ("uplevel" body line 1) invoked from within "uplevel [list source [file join $self main.tcl]]"
Quoting hell strikes again. The problem is that the sdx script (sdx.kit/lib/app-sdx/sdx.tcl) runs
uplevel #0 source [file join $b $a.tcl]
and $b is the current directory, which can contain spaces. The simple fix is to change this to
uplevel #0 [list source [file join $b $a.tcl]]
and all should be well.
Thanks, should be fixed now. -jcw
December 20, 2002
If you use Windows \ notation for a filename, SDX fails.
If you try to add registered methods to the .KIT filetype (wrap, unwrap etc) then when you right-click on the filename and choose the method, SDX fails. This appears to be fixed for the *first* filename but not for the second. That is, tclkitsh can find sdx.kit, but tclkitsh with SDX can't find your file. It creates an empty correctly-named .vfs folder and aborts.
When I massaged the filename the problem went away:
file unwrap.tcl
set aa [lindex $argv 0] set aa [string map {\\ /} $aa] exec tclkitsh.exe sdx.kit unwrap $aa
I registered this as "<path>tclkitsh <path>unwrap.tcl %1" and it worked for me on Windows XP and Windows 98.
It might be possible to fix this inside SDX assuming that you'll never need a unix backslash character in a filename. I'm not sure that's a good idea.
Jonah Thomas
ZipGuy 06-06-2003 -
I have created a Starkit to solve this problem on Windows. It's called Windows SDX Shell Fix and it front-ends sdx.kit.