about summary refs log tree commit diff
path: root/stdio/fopen.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-03-27 22:57:26 +0000
committerUlrich Drepper <drepper@redhat.com>1998-03-27 22:57:26 +0000
commita44d23932dea41a56c4345394a973767af45cf02 (patch)
treed6d2e557b87e7291a27b1a5dd75b215a37f08408 /stdio/fopen.c
parentf38931a9f060a9ecb2ad544b1c2e2c80060f6724 (diff)
downloadglibc-a44d23932dea41a56c4345394a973767af45cf02.tar.gz
glibc-a44d23932dea41a56c4345394a973767af45cf02.tar.xz
glibc-a44d23932dea41a56c4345394a973767af45cf02.zip
Update.
1998-03-27 22:46  Ulrich Drepper  <drepper@cygnus.com>

	* Rules: Allow Makefiles to specify test-static for tests which
	cannot be linked dynamically.
	* math/Makefile: Move atest-exp, atest-sincos, atest-exp2 to
	tests-static.

	* libc.map: Add __nss_passwd_lookup, __nss_group_lookup, __nss_next.

	* misc/error.c: Pretty print.

1998-03-27  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>

	* Makerules (libc_nonshared-name): Remove variable.
	(installed-libcs): Use libc-name instead.
	($(inst_libdir)/libc.so): Likewise.  Remove explicit reference to
	dynamic linker.

	* Makeconfig (link-libc): Link against libc_nonshared.a instead of
	libc.a.  Remove explicit reference to dynamic linker.

1998-03-27  Ulrich Drepper  <drepper@cygnus.com>

	* iconvdata/iso8859-1.c (gconv): Add cast to assignment from char
	to wchar_t.
	* iconv/iconv_prog.c: Correctly test for write failure.
	* iconvdata/Makefile: Add rules for EUC-KR, UHC, and JOHAB conversions.
	* iconvdata/gconv-modules: Likewise.
	* iconvdata/euckr.c: New file.
	* iconvdata/johab.c: New file.
	* iconvdata/ksc5601.c: New file.
	* iconvdata/ksc5601.h: New file.
	* iconvdata/uhc.c: New file.
	Contributed by Jungshik Shin <jshin@pantheon.yale.edu>.

	* libio/fileops.c (_IO_file_fopen): Interpret x flag to fopen.
	* stdio/fopen.c: Correct handling of 'x' flag.
	Reported by Jason M. Petry <jason@ps.ohio-state.edu>.

1998-03-27  Andreas Jaeger  <aj@arthur.rhein-neckar.de>

	* sunrpc/rpc/key_prot.h: Prevent warning by unknown pragma ident.
	* sunrpc/rpcsvc/key_prot.x: Likewise.
	* sunrpc/key_prot.c: Likewise.

1998-03-27 13:49  Ulrich Drepper  <drepper@cygnus.com>

	* sysdeps/i386/bits/string.h: Correct things which never worked.
	* sysdeps/i386/i486/bits/string.h: Add clobber marks.
	Patches by Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>.

1998-03-27  Ulrich Drepper  <drepper@cygnus.com>

	* intl/textdomain.c [_LIBC]: Define strdup only if not yet
	defined.  Reported by Thorsten Kukuk.
Diffstat (limited to 'stdio/fopen.c')
-rw-r--r--stdio/fopen.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/stdio/fopen.c b/stdio/fopen.c
index 8c27a27c6f..5b77facc77 100644
--- a/stdio/fopen.c
+++ b/stdio/fopen.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1996, 1997 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 96, 97, 98 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -51,27 +51,28 @@ __getmode (const char *mode, __io_mode *mptr)
       badmode ();
     }
 
-  for (i = 1; i < 3; ++i)
+  for (i = 1; i < 4; ++i)
     {
-      ++mode;
-      if (*mode == '\0')
-	break;
-      switch (*mode)
+      switch (*++mode)
 	{
+	case '\0':
+	  break;
 	case '+':
 	  mptr->__read = mptr->__write = 1;
-	  break;
+	  continue;
 	case 'b':
 	  mptr->__binary = 1;
-	  break;
+	  continue;
+	case 'x':
+	  mptr->__exclusive = 1;
+	  continue;
 	}
+      break;
     }
 
   if (!mptr->__read && !mptr->__write)
     badmode ();
 
-  mptr->__exclusive = *mode == 'x';
-
   return 1;
 }