delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2010/08/03/07:26:49

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,TW_YG,T_TO_NO_BRKTS_FREEMAIL
X-Spam-Check-By: sourceware.org
MIME-Version: 1.0
In-Reply-To: <7B35B979DF6941628DE9A6D131AA3909@phoenix>
References: <E2B92C7CBBA64B158FA61FDD9DDC20BC AT phoenix> <AANLkTinVYGVHP9W8w-j1gudobfqZX1aNza0n2XoxqiqC AT mail DOT gmail DOT com> <AANLkTinSh1+kMob1K4VX-MDLNzu-VLK+VdyLatjkyCZJ AT mail DOT gmail DOT com> <7B35B979DF6941628DE9A6D131AA3909 AT phoenix>
Date: Tue, 3 Aug 2010 12:26:36 +0100
Message-ID: <AANLkTim1x04h2Rhk-rH8sg3Gc0CN=VASG6xVFwjb3Kyh@mail.gmail.com>
Subject: Re: How to pass parameters to a windows application
From: Andy Koppe <andy DOT koppe AT gmail DOT com>
To: cygwin AT cygwin DOT com
X-IsSubscribed: yes
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 2 August 2010 12:56, Jason Pyeron wrote:
>> 'cygstart'.
>
> It does not play nice with unc paths. Starting by cmd.exe /c start path does.
> Suggestions?
>
>
> jpyeron AT phoenix /projects/cdnetdb/private/fxiao/cdnet
> $ cygstart .
>
> jpyeron AT phoenix /projects/cdnetdb/private/fxiao/cdnet
> $ cygstart //host67/inst
> Unable to start '\\?\UNC\host67\inst': There is no application associated with
> the given file name extension.

It's a bug.

Cygstart uses cygwin_conv_path to convert to a Windows path, which
produces UNC paths for network paths. Trouble is, the ShellExecute
API, which is used to do the actual opening, doesn't appear to support
UNC paths.

Cygpath already turns '\\?\UNC\' at the start of a path into plain ol
'\\' (unless the resulting path would be longer than MAX_PATH, in
which case the UNC path is mandatory). Mintty does the same thing when
a file is opened with Ctrl+click.

So cygstart would need to do the same. And mkshortcut too (because the
APIs involved in creating shortcuts have trouble with long paths too).
Basically, any program that passes a path converted with
cygwin_conv_path to Windows APIs might have this issue.

Therefore I'm wondering whether it wouldn't be better to address this
once and for all in cygwin_conv_path itself by doing what cygpath
does: assuming the resulting path fits into MAX_PATH, drop "\\?\" from
all long paths and turn "UNC\" into "\\".

Andy

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