From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19943 invoked by alias); 5 Jul 2015 02:55:52 -0000 Mailing-List: contact cygwin-help@cygwin.com; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner@cygwin.com Mail-Followup-To: cygwin@cygwin.com Received: (qmail 19903 invoked by uid 89); 5 Jul 2015 02:55:42 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=2.9 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,KAM_TK,RCVD_IN_DNSWL_LOW autolearn=no version=3.3.2 X-HELO: mail108.syd.optusnet.com.au Received: from mail108.syd.optusnet.com.au (HELO mail108.syd.optusnet.com.au) (211.29.132.59) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Sun, 05 Jul 2015 02:55:39 +0000 Received: from dimstar.local.net (c122-107-168-99.eburwd5.vic.optusnet.com.au [122.107.168.99]) by mail108.syd.optusnet.com.au (Postfix) with ESMTP id 6348B1A2536 for ; Sun, 5 Jul 2015 12:55:35 +1000 (AEST) Received: (qmail 14798 invoked by uid 501); 5 Jul 2015 02:55:29 -0000 Date: Sun, 05 Jul 2015 02:55:00 -0000 From: Duncan Roe To: cygwin@cygwin.com Subject: Re: tclsh does not export changes to env to child process Message-ID: <20150705025529.GB3180@dimstar.local.net> Mail-Followup-To: cygwin@cygwin.com References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22 (2013-10-16) X-Optus-CM-Score: 0 X-Optus-CM-Analysis: v=2.1 cv=ItbjC+Lg c=1 sm=1 tr=0 a=+cDhJlqnNvz9E7c5l3ERGg==:117 a=+cDhJlqnNvz9E7c5l3ERGg==:17 a=y26AOypDAAAA:8 a=PO7r1zJSAAAA:8 a=iaFubHWvAAAA:8 a=BTUk5m_ZKwEA:10 a=kj9zAlcOel0A:10 a=zOBTXjUuO1YA:10 a=pGLkceISAAAA:8 a=7vUEEOO_AAAA:8 a=gmw8mGJ0aZv7W3fEUZUA:9 a=CjuIK1q_8ugA:10 a=-FEs8UIgK8oA:10 a=NWVoK91CQyQA:10 X-IsSubscribed: yes X-SW-Source: 2015-07/txt/msg00060.txt.bz2 > > On Mon, Jun 29, 2015 at 2:45 PM, Stas Maximov wrote: > > > Hi, > > > > > > Tcl shell does not export changes to array variable env: > > > http://wiki.tcl.tk/env > > > > > > Test script: test_env_export1: > > > --------- begin ---------- > > > set env(FILENAME) filename_val > > > puts $env(PATH) > > > puts [exec /bin/bash -c {echo $PATH}] > > > puts $env(FILENAME) > > > puts [exec /bin/bash -c {echo $FILENAME}] > > > --------- end ---------- > > > > > > Expect two lines of output "filename_val", receive only one. The bug > > > affects 'guitool' feature of git-gui. > > > > > > cygwin 2.0.4-1 > > > tclsh 8.5 > > > > > > > > > Thanks, > > > Stas. > On Tue, Jun 30, 2015 at 9:39 AM, Stas Maximov wrote: > > Yakov, > > > > Thanks for the reply. > > > > Apologies for confusion. 8.5 was version of tcl as reported by > > tcl_version. Please find below more information. Note that > > "filename_val" is printed only once -- by tclsh, but the child (bash) > > does not see environment variable FILENAME. > > > > Any specific information that you might want to see? > > > > Stas. > > > > > > $ which tclsh > > /usr/bin/tclsh > > > > $ cygcheck.exe -c tcl cygwin > > Cygwin Package Information > > Package Version Status > > cygwin 2.0.4-1 OK > > tcl 8.5.18-1 OK > > > > $ cat test_env_export1.tcl > > set env(FILENAME) filename_val > > puts $env(FILENAME) > > puts [exec /bin/bash -c {echo $FILENAME}] > > puts $env(EDITOR) > > puts [exec /bin/bash -c {echo $EDITOR}] > > > > $ tclsh test_env_export1.tcl > > filename_val > > > > vim > > vim > > > > > On Tue, Jun 30, 2015 at 09:43:27AM -0700, Stas Maximov wrote: > Interestingly, if environment variable FILENAME was exported when > tclsh called, the test passes. Tclsh falis to export only new env > variable. Compare two results: > > $ env FILENAME=gaga tclsh test_env_export1.tcl > filename_val > filename_val > vim > vim > $ env -u FILENAME tclsh test_env_export1.tcl > filename_val > > vim > vim > > Years ago I seem to recall a problem with tclsh not exporting amended environment variables. Looks like it's fixed now though, at least on my Linux system (sorry it's tclsh 8.6) > 12:37:18$ env|grep ZXC > 12:37:31$ tclsh > % set env(ZXC) hello > hello > % puts $env(ZXC) > hello > % puts [exec /bin/bash -c {echo $ZXC}] > hello > % info vars > tcl_rcFileName tcl_version argv0 argv tcl_interactive auto_path auto_index env tcl_pkgPath tcl_patchLevel argc tcl_library tcl_platform > % puts $tcl_patchLevel > 8.6.1 > % exit Cheers ... Duncan. -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple