OSDN Git Service

2005-03-23 Benjamin Kosnik <bkoz@redhat.com>
[pf3gnuchains/gcc-fork.git] / libstdc++-v3 / include / c_std / std_cstdio.h
index 9ef2a58..57bbb3d 100644 (file)
@@ -1,6 +1,7 @@
 // -*- C++ -*- forwarding header.
 
-// Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
+// Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
+// Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
  *  contained in the namespace @c std.
  */
 
-#ifndef _CPP_CSTDIO
-#define _CPP_CSTDIO 1
+#ifndef _GLIBCXX_CSTDIO
+#define _GLIBCXX_CSTDIO 1
+
+#pragma GCC system_header
 
 #include <bits/c++config.h>
 #include <cstddef>
 
-#pragma GCC system_header
 #include <stdio.h>
 
 // Get rid of those macros defined in <stdio.h> in lieu of real functions.
@@ -92,7 +94,7 @@
 #undef vprintf
 #undef vsprintf
 
-namespace std 
+namespace std
 {
   using ::FILE;
   using ::fpos_t;
@@ -140,7 +142,7 @@ namespace std
   using ::vsprintf;
 }
 
-#if _GLIBCPP_USE_C99
+#if _GLIBCXX_USE_C99
 
 #undef snprintf
 #undef vfscanf
@@ -150,11 +152,25 @@ namespace std
 
 namespace __gnu_cxx
 {
+#if _GLIBCXX_USE_C99_CHECK || _GLIBCXX_USE_C99_DYNAMIC
+  extern "C" int
+  (snprintf)(char * restrict, size_t, const char * restrict, ...);
+  extern "C" int
+  (vfscanf)(FILE * restrict, const char * restrict, __gnuc_va_list);
+  extern "C" int (vscanf)(const char * restrict, __gnuc_va_list);
+  extern "C" int
+  (vsnprintf)(char * restrict, size_t, const char * restrict, __gnuc_va_list);
+  extern "C" int
+  (vsscanf)(const char * restrict, const char * restrict, __gnuc_va_list);
+#endif
+
+#if !_GLIBCXX_USE_C99_DYNAMIC
   using ::snprintf;
   using ::vfscanf;
   using ::vscanf;
   using ::vsnprintf;
   using ::vsscanf;
+#endif
 }
 
 namespace std
@@ -165,6 +181,6 @@ namespace std
   using __gnu_cxx::vsnprintf;
   using __gnu_cxx::vsscanf;
 }
-#endif 
+#endif
 
 #endif