Re: DOS/Windows-specific code: source.c

Christopher Faylor
2001-05-08T11:14:00Z

On Tue, May 08, 2001 at 02:49:19PM +0300, Eli Zaretskii wrote:
>
> * source.c:openp()
>
> #ifdef _WIN32
> mode |= O_BINARY;
> #endif
>
>I think this is obsolete and should be removed: defining
>CRLF_SOURCE_FILES in xm-whatever should solve the underlying problem.
>
>For those who don't know: the problem here is that find_source_lines
>creates a table which records the byte position of each line in a
>source file, but many DOS/Windows libraries don't DTRT with byte
>offsets unless the file is open in binary mode. So this issue is
>limited to source files, and CRLF_SOURCE_FILES should provide the
>solution there for Windows systems.
>
>(Code which wants to open binary files, like in exec.c, already uses
>O_BINARY when it calls openp. Hmm, perhaps solib.c should be fixed to
>use O_BINARY when it looks for the libraries.)

Actually, why not always just use O_BINARY in this file without the
conditional and remove the use of O_BINARY everywhere else?

cgf