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


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