[Monodevelop-devel] Issues with case insensitivenes on Windows

Lluis Sanchez Gual lluis at novell.com
Fri May 15 17:26:53 EDT 2009


I'm currently working on a debugger backend for MS.NET, and one of the
problems I've found is due to the fact that the file system is case
insensitive. The debugger returns file names with a lowercase drive
letter while framework always returns it with uppercase. The result is
that files may be opened in the IDE twice, once for each casing.

This specific issue can easily fixed by uppercasing the initial letter,
but it left me wondering if this should be fixed in a more global way.
We do path comparisons in many places in MD. Many of those are comparing
file names retrieved using the framework, so they should not be a
problem. However, other comparisons may involve paths entered by the
user or read from files.

One solution I'm pondering the creation of a new FilePath struct to be
used instead of string for all file paths. This struct would only
contain one string and would override all comparison methods which would
be case insensitive only on Windows. With conversion operators in place,
using this struct instead of string should be straightforward.

However, this is a big change in the api, so I'd like to get some
feedback about it. Other than the debugger issue, everything else seems
to work fine, so I'm not sure it is worth the effort. What do you think?


More information about the Monodevelop-devel-list mailing list