Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm 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 X-Injected-Via-Gmane: http://gmane.org/ To: cygwin AT cygwin DOT com From: "BB" Subject: Re: cygpath bug? Date: Fri, 13 Jun 2003 14:20:12 -0500 Lines: 40 Message-ID: References: Reply-To: "BB" X-Complaints-To: usenet AT main DOT gmane DOT org X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1158 x-mimeole: Produced By Microsoft MimeOLE V6.00.2800.1165 "Shankar Unni" wrote in message news:bcct45$4ob$1 AT main DOT gmane DOT org... > BB wrote: > > > Shouldn't GetShortPathName() == 0 always cause the get_short_name() > > function to fail? > > I would sincerely hope not. I see no reason why cygpath conversion has > to be tied to the existence of files. We often need to use cygpath to > convert between formats for files which we are about to create. I think it should fail if GetShortPathName() returns 0. A 0 return value means GetShortPathName() failed. If it returns a 0, it did not modify the destination buffer passed to it. cygpath allocates 1 byte and does a strcpy of the uninitialized buffer to that byte. If that's not a bug, I don't know what is. > e.g. > > notepad `cygpath -d "/cygdrive/c/some nonexistent file.txt"` > > will make notepad create that file for me. > Try your example, I don't think it will work. Maybe you meant to use the '-w' option. It will work. Your example does not work on my machine (XP). Using the cygpath -d option causes GetShortPathName() to be called. It returns 0 and sets the error to ERROR_PATH_NOT_FOUND. Using the -w option is a different story. It will simply replace the "/cygdrive/c/" with "c:\". I don't think it calls a windows api to do this. So in effect, the -d option causes a validation of the path and filename. It cannot be used to convert an invalid directory name to a short filename. -- 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/