This is the mail archive of the
mailing list for the Cygwin project.
Path conversion bug with check_case:strict
- From: Igor Pechtchanski <pechtcha at cs dot nyu dot edu>
- To: cygwin-developers at cygwin dot com
- Date: Tue, 7 Sep 2004 12:32:50 -0400 (EDT)
- Subject: Path conversion bug with check_case:strict
- Reply-to: cygwin-developers at cygwin dot com
I've been tracking down some weird behavior on my machine. Basically,
when a windows program is invoked from a Cygwin one, the PATH got
truncated at the first "/cygdrive/*" entry. To reproduce, add
"check_case:strict" to $CYGWIN, change one of the default Windows PATH
entries to have incorrect case, run "cmd" from bash, and observe that
"echo %PATH%" prints a truncated PATH.
I finally managed to find the culprit: path_conv::check will break off
converting the path if it contains a directory with the wrong case and
check_case is set to strict. The call sequence, AFAICS, is as follows:
(I have a full gdb stack trace if needed).
I'm not quite sure what the right fix for this would be, as
path_conv::check is a pretty generic method called all over the place, and
this particular call sequence has nothing special to identify it. My
guess at the fix would be to save the value of pcheck_case in build_env,
set it to PCHECK_RELAXED, do the conversion, and then restore it. What do
people think? If this is an acceptable solution, I'll start the process
of sending in a patch.
|\ _,,,---,,_ email@example.com
ZZZzz /,`.-'`' -. ;-;;,_ firstname.lastname@example.org
|,4- ) )-,_. ,\ ( `'-' Igor Pechtchanski, Ph.D.
'---''(_/--' `-'\_) fL a.k.a JaguaR-R-R-r-r-r-.-.-. Meow!
"Happiness lies in being privileged to work hard for long hours in doing
whatever you think is worth doing." -- Dr. Jubal Harshaw