This is the mail archive of the cygwin@sourceware.cygnus.com mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
> -----Original Message-----
> From: Dan St.Andre' [mailto:saint@savantage.com]
> Sent: Monday, July 12, 1999 5:47 PM
> To: cygwin@sourceware.cygnus.com
> Subject: B20: cygpath doesn't handle 8.3 tilde names
>
>
> SITUATION:
> Given a 16-bit DOS command line utility that expects 8.3 format names and
> paths,
> the following command might fail giving error messages:
>
> bash $ myProg `cygpath -w ../folder/file` target
> myProg: Error C101: Unable to complete operation! Please check source/destination files
> and disks.
>
> ANALYSIS:
> Upon inspection, "cygpath -w ../folder/file" resulted in a detailed path where certain
> folder names were longer than eight characters. Also, myProg was discovered to be
> a win16 application that required 8.3 format folder and file names.
>
> In the 8.3 world, no folder name along the path may be longer than eight(8) characters.
> In addition, file names have a similar eight character limit and the extension [part to the
> right of the period] must be three(3) or fewer characters. Windows makes magic names of the
> form "mumble~N" where mumble is the left hand six(6) characters of long names. There are also
> length restrictions on the total length of the path+filename+extension. [Sorry, I don't
> remember them.]
>
> DISCUSSION:
> I propose adding a "-8" option that deals with
> tilde-names. Everywhere that windoze
> deals with long names, tilde-names are supposed to work. If
> you changed the existing
> "-w" to output tilde-names, both short name and long name
> windoze programs would be happy.
> I admit, that it would be regrettable to discard longname output.
This would not work for programs that recreate the file as output and/or rename the original as a .bak file because the long name would be permanently lost and that would break other program(s) in which the original name is hardcoded into a batch, script or link.
> Any implementation would need to grab a strings that are
> right of a slash '/'. If that string is longer
> that eight characters, then make it a tilde-name. Iterate
> until the last long string has been processed.
>
> RECOMMENDATION:
> 1. Cheap: Add an option like "-8" (preferred) or "-d" to
> request 8.3 format names
>
> bash $ cygpath -8 /usr/local/mumble-very-long-name.dat
> C:\usr\local\mumble~1.dat
>
> 2. Nice to have: Add some way that we get either longnames
> or 8.3 names.
> This might be output from either 'test' or 'file' or 'type'
> that could instruct
> cygpath how to behave
> based on the needs of the command verb EXE file. I could
> also see this as some
> sort of
> the 'exec16' behavior.
I would suggest you create a wrapper script to call your 16-bit program that looks similar to this:
@echo off
rem myWrapper.cmd
myProg %~sf1 %~sf2
then just call it like this:
bash $ myWrapper `cygpath -w ../folder/file` target
The format of the above arguments in the myWrapper.cmd causes CMD.EXE to substitute the 8.3 full path name of the <N>th arg in place of the %~sf<N> sequence.
>
> bash $ #=== do we have a 16-bit dos program?
> bash $ if [ -8 `which myprog` ] ; then
> more> myprog `cygpath -8
> /usr/local/mumble-very-long-name.dat`
> target
> more> else
> more> myprog `cygpath -w
> /usr/local/mumble-very-long-name.dat`
> target
> more> fi
> --or--
> bash $ exec16 myProg `cygpath -w ../folder/file` target
>
> Cordially,
> Dan St.Andre'
> The GRILLON Group
> mailto:grillon@mindspring.com
> --
> ==============================================================
> The Tenth Amendment ... its not only a good idea, its the law!
> http://www.law.cornell.edu/constitution/constitution.billofrights.html#amendmentx
==============================================================
Go in His love!
W. Terry Lincoln - Senior Engineer \ \ _ /
Ultimate Technology Corporation \ \ |J| /
a Tridex Company (NASDAQ:trdx) \ _|E|_
ICQ# 39362285 \ |_ S _|
<mailto:WTerryLincoln@engineer.com> \ |U|
<http://www.AngelFire.com/ny/TerryLincoln> \ / |S| \
<http://www.geocities.com/Eureka/Concourse/7326> | |
================================================ ~~~~~
Opinions expressed do not represent the management of UTC.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |