www.delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/08/18/15:13:54

X-Recipient: archive-cygwin AT delorie DOT com
X-Spam-Check-By: sourceware.org
Date: Wed, 18 Aug 2010 21:13:40 +0200
From: Corinna Vinschen <corinna-cygwin AT cygwin DOT com>
To: cygwin AT cygwin DOT com
Subject: Re: "run" changes behavior with cygwin-17.6
Message-ID: <20100818191340.GB11340@calimero.vinschen.de>
Reply-To: cygwin AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
References: <380-220108318145158645 AT cantv DOT net> <20100818150920 DOT GY11340 AT calimero DOT vinschen DOT de> <4C6C1490 DOT 3040202 AT cwilson DOT fastmail DOT fm> <4C6C1582 DOT 1080801 AT acm DOT org> <20100818182412 DOT GA22698 AT ednor DOT casa DOT cgf DOT cx> <AANLkTikBTgg9M=xuZ4S2VkNU+Zr=hy3C=_Tr8BPj5baD AT mail DOT gmail DOT com> <20100818185421 DOT GC22698 AT ednor DOT casa DOT cgf DOT cx>
MIME-Version: 1.0
In-Reply-To: <20100818185421.GC22698@ednor.casa.cgf.cx>
User-Agent: Mutt/1.5.20 (2009-06-14)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Aug 18 14:54, Christopher Faylor wrote:
> On Wed, Aug 18, 2010 at 07:32:40PM +0100, Andy Koppe wrote:
> >On 18 August 2010 19:24, Christopher Faylor wrote:
> >>>I noticed a similar change in cygstart, too. I used to have a script
> >>>that would cd to a directory and then run cygstart. After the upgrade to
> >>>1.7.6, this stopped working. I had to use the --directory switch to
> >>>cygstart to get the right behavior.
> >>
> >> Call me dense but I don't understand why any changes are needed. ??If
> >> you're cd'ed to a non-Cygwin-special location why doesn't stuff "just
> >> work"?
> >
> >The Win32 working directory is changed to '\\?\PIPE\' at process
> >startup, otherwise the working directory can't be deleted from under
> >the process, which you can do on Linux.
> 
> Yes, I guess I did not properly appreciate the fact that we presumably
> broke every CreateProcess call in a cygwin program when we did this.
> While I'm on record about not caring too much about that scenario, it
> seems meaner than usual for us to break this since the report which
> caused the recent change was from someone calling CreateProcess in a
> cygwin program.
> 
> But, anyway, since we have broken this, I don't think we should force
> every user of CreateProcess to call CYGWIN_CONV_TO_POSIX_PATH.  We
> probably should add an internal interface which sets the current working
> directory for windows if it can.

I'm going to add a new call

  cygwin_internal (CW_SYNC_WINCWD);

which will do the same for the CWD as

  cygwin_internal (CW_SYNC_WINENV);

already does for the environment.  Dropping the environment had roughly
the same consequences way back when, after all.

However, in contrast to CW_SYNC_WINENV, CW_SYNC_WINCWD will return -1
and set errno if setting a Windows CWD fails.  The error codes will be
typically

  ENOTDIR	if the CWD is a virtual directory
  EACCES	if the directory is actually inaccessible or
  ENAMETOOLONG  if the directory has a pathname > 258 chars.

I'll also add documentation for this.


HTH,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Project Co-Leader          cygwin AT cygwin DOT com
Red Hat

--
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019