X-Spam-Check-By: sourceware.org From: "d gitelman" To: Subject: problem with running tcl/tk scripts Date: Mon, 15 Jan 2007 01:03:32 -0600 Message-ID: <000001c73873$45395c10$6701a8c0@nmff.org> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Dear Cygwin I apologize if this issue has been posted but I searched and could not find a solution. I am using a software package called FSL from fmrib.ox.ac.uk. It is made to run within cygwin on windows. It uses tcl/tk for its gui, and a problem occurs with the GUI only with cygwin1.dll 1.5.19 and greater. 1.5.18 worked fine. Here is the code in question. A GUI is set up with a series of buttons: if { [ file exists ${FSLDIR}/tcl/fdt.tcl ] } { button $w.f1.fdt -text "FDT Diffusion" \ -command { exec sh -c "${FSLDIR}/bin/Fdt$gui_ext" & } pack $w.f1.fdt -in $w.f1 -fill x -padx 1 -pady 1 } The global variables above expand to: ${FSLDIR} = /usr/local/fsl $gui_ext = _gui so pressing the button should execute: exec sh -c /usr/local/fsl/bin/Fdt_gui instead nothing happens. Fdt_gui is actually a link to a file Fdt_gui -> Runtcl and the code in Runtcl is: #!/bin/sh # Set TCLTKSHELL \ TCLTKSHELL=wish ; export TCLTKSHELL # Check for display being set \ if [ _`uname | grep CYGWIN` = _ -a _$DISPLAY = _ ] ; then echo "DISPLAY is not set. Please set your DISPLAY environment variable!" ; exit 1 ; fi # the next line restarts using wish \ if [ _$FSLWISH = _ ] ; then echo "You need to source an FSL setup file - either fsl.sh or fsl.csh in \$FSLDIR/etc/fslconf !" ; exit 1 ; else exec $FSLWISH "$0" -- "$@" ; fi set FSLDIR $env(FSLDIR) set origname [ string tolower [ file tail [ info script ] ] ] set UNAME [ exec uname ] if { $UNAME == "Darwin" || [ string compare CYGWIN [ string range $UNAME 0 5 ] ] == 0 } { regsub "_gui" $origname "" origname } source ${FSLDIR}/tcl/${origname}.tcl exit ========= so what should happen is that it should source the .tcl file /usr/local/fsl/tcl/fdt.tcl. Note: all the files are present. If I type: wish /usr/local/fsl/tcl/fdt.tcl the appropriate dialog appears. Also, if I use an older version of cygwin (1.5.18-1) the exact same installation of fsl with the above code runs fine. The older version of cygwin is installed in its own directory. Interestingly other buttons that reference actual .exe files work fine in the new version. So if instead of Fdt_gui the line referenced a .exe file the button works (must be an actual .exe file, changing the filename to Fdt_gui.exe does not work). If I try to execute the following command from the bash shell I get the following exec sh -c /usr/local/fsl/bin/Fdt_gui & In the older version (1.5.18-1) the dialog I expect to see appears. In the newer version (1.5.19) I see the following errors : command not foundsr/local/fsl/bin/Fdt_gui: line 2: ': not a valid identifieri: line 4: export: `TCLTKSHELL : command not foundFdt_gui: line 5: /usr/local/fsl/bin/Fdt_gui: line 12: syntax error near unexpected token `(' 'usr/local/fsl/bin/Fdt_gui: line 12: `set FSLDIR $env(FSLDIR) [1]+ Exit 2 exec sh -c /usr/local/fsl/bin/Fdt_gui Any ideas would be appreciated, and please let me know if more information is needed. Thanks, Darren -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/