This is the mail archive of the cygwin-apps 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]
Other format: [Raw text]

Re: setup and colons in filenames


On Oct 25 21:36, Jon Turney wrote:
> On 25/10/2017 21:16, Corinna Vinschen wrote:
> > On Oct 25 20:23, Jon Turney wrote:
> > > On 25/10/2017 16:50, Ken Brown wrote:
> > > > This is a followup to the thread started here:
> > > > 
> > > >     https://cygwin.com/ml/cygwin-patches/2017-q4/msg00012.html
> > > > 
> > > > Currently setup's parse_filename is not correctly parsing filenames in
> > > > /etc/setup/installed.db that contain colons, as explained in the above
> > > > thread.  It would be easy to fix this by just ripping out the 'base'
> > > > function, except for the fact that parse_filename is called by
> > > > ScanFindVisitor::visitFile.
> > > 
> > > Since older setup cannot correctly parse an installed.db containing
> > > filenames like that, we should probably bump the installed.db version at the
> > > same time as fixing this.
> > > 
> > > > I don't know enough about WIN32_FIND_DATA to know whether the call to
> > > > 'base' is needed for that use of parse_filename.  If so, is it safe to
> > > > skip all colons in that setting, since we're dealing with Win32
> > > > filenames and they don't see the colons in Cygwin filenames?
> > > 
> > > Yeah, that's about as far as I got before giving up...
> > > 
> > > > Do we need two versions of parse_filename, one that calls base and one
> > > > that doesn't?
> > > 
> > > This might be the easiest solution :)
> > > 
> > > The other concern I had was if the filenames for the package archives stored
> > > in the download cache end up containing a ':', which I thought wasn't
> > > allowed in windows filenames?
> > 
> > Colons in Cygwin filenames will have 0xf03a value in WIN32.  The code to
> > transpose special chars into the private use area at 0xf0XY is in setup,
> > but I'm not sure if setup is really working correctly with archives
> > containing a colon.
> I think the package archives are stored using native Windows filenames, not
> cygwin filenames (i.e. file:// paths rather than cygfile:// paths), because
> the "Local Package Directory" is not necessarily under the cygwin root, so
> I'm not sure that transformation applies.

The transposition is handled in mklongpath, which is called in nt_fopen,
or called manually in other callers of nt_wfopen to construct the long
path.  In theory, this should cover all bases...


Corinna

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

Attachment: signature.asc
Description: PGP signature


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]