This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
intl patches (14)
- To: libc-alpha at sources dot redhat dot com
- Subject: intl patches (14)
- From: Bruno Haible <haible at ilog dot fr>
- Date: Mon, 19 Mar 2001 22:16:57 +0100 (CET)
The message catalogs must be opened in binary mode, on those systems where
it makes a difference: DOS, OS/2, Windows (including Cygwin).
This patch has no effect inside glibc.
2001-01-20 Bruno Haible <haible@clisp.cons.org>
* intl/loadmsgcat.c (O_BINARY): Define on platforms that don't have it.
(_nl_load_domain): Open the catalog file in binary mode.
diff -r -c3 intl/loadmsgcat.c intl-98/loadmsgcat.c
*** intl/loadmsgcat.c Sat Mar 17 19:26:46 2001
--- intl/loadmsgcat.c Sat Mar 17 14:52:33 2001
***************
*** 117,122 ****
--- 117,139 ----
# define freea(p) free (p)
#endif
+ /* For systems that distinguish between text and binary I/O.
+ O_BINARY is usually declared in <fcntl.h>. */
+ #if !defined O_BINARY && defined _O_BINARY
+ /* For MSC-compatible compilers. */
+ # define O_BINARY _O_BINARY
+ # define O_TEXT _O_TEXT
+ #endif
+ #ifdef __BEOS__
+ /* BeOS 5 has O_BINARY and O_TEXT, but they have no effect. */
+ # undef O_BINARY
+ # undef O_TEXT
+ #endif
+ /* On reasonable systems, binary I/O is the default. */
+ #ifndef O_BINARY
+ # define O_BINARY 0
+ #endif
+
/* We need a sign, whether a new catalog was loaded, which can be associated
with all translations. This is important if the translations are
cached by one of GCC's features. */
***************
*** 211,217 ****
return;
/* Try to open the addressed file. */
! fd = open (domain_file->filename, O_RDONLY);
if (fd == -1)
return;
--- 232,238 ----
return;
/* Try to open the addressed file. */
! fd = open (domain_file->filename, O_RDONLY | O_BINARY);
if (fd == -1)
return;