Finding source files under Cygwin

Earl Chew
2002-09-14T00:57:59Z

I have object files compiled that have directory names such as:

D:/xxx/yyy/zzz

embedded in them. In source.c, open_source_file() tries to use
this information to locate the source files.

Unfortunately, it gets confused because the directory gets
substituted for $cdir, and the embedded colon confuses
openp() which considers two separate path components: D and
/xxx/yyy/zzz.

One fix I can think of is to fix open_source_file() using
#ifdef __CYGWIN__ to silently subsitute /cygdrive/d/xxx/yyy/zzz
instead.

A variation on this is to make the fix in buildsym.c instead
(ie store the corrected version of the directory instead of
patching it later). I don't think this is the best way to go.

Another fix is to make source.c use ; (semicolon) as a path
separator instead of : (colon) should HAVE_DOS_BASED_FILE_SYSTEM
be true. The downside here is that it might be surprising
to current cygwin users.

A variation is to have open_source_file() build a new path string,
replacing : with ; (under HAVE_DOS_BASED_FILE_SYSTEM), and have
openp deal with ;. Thus the user interface sees : -- but internally
openp breaks up the path at ;.

Sigh.

Earl