DOS/Windows-specific code: exec.c and symfile.c

Eli Zaretskii
2001-05-08T04:42:00Z

* exec.c:exec_file_attach()

scratch_chan = openp (getenv ("PATH"), 1, filename,
write_files ? O_RDWR | O_BINARY : O_RDONLY | O_BINARY, 0,
&scratch_pathname);
#if defined(__GO32__) || defined(_WIN32) || defined(__CYGWIN__)
if (scratch_chan < 0)
{
char *exename = alloca (strlen (filename) + 5);
strcat (strcpy (exename, filename), ".exe");
scratch_chan = openp (getenv ("PATH"), 1, exename, write_files ?
O_RDWR | O_BINARY : O_RDONLY | O_BINARY, 0, &scratch_pathname);
}
#endif

This snippet wants to find `foo.exe' when `foo' is being specified.
Should we add a #define for executable extensions (defaulting to an
empty string on Unix)?

* symfile.c:symfile_bfd_open()

/* Look down path for it, allocate 2nd new malloc'd copy. */
desc = openp (getenv ("PATH"), 1, name, O_RDONLY | O_BINARY, 0, &absolute_name);
#if defined(__GO32__) || defined(_WIN32)
if (desc < 0)
{
char *exename = alloca (strlen (name) + 5);
strcat (strcpy (exename, name), ".exe");
desc = openp (getenv ("PATH"), 1, exename, O_RDONLY | O_BINARY,
0, &absolute_name);
}
#endif

This is the same issue as in exec.c:exec_file_attach() above, and
should be solved in the same way.