// -*- C++ -*-
/***************************************************************************
 *
 * cstdio - C++ Standard library interface to the ANSI C header stdio.h
 *
 * $Id: cstdio 609466 2008-01-06 23:18:56Z sebor $
 *
 ***************************************************************************
 *
 * Licensed to the Apache Software  Foundation (ASF) under one or more
 * contributor  license agreements.  See  the NOTICE  file distributed
 * with  this  work  for  additional information  regarding  copyright
 * ownership.   The ASF  licenses this  file to  you under  the Apache
 * License, Version  2.0 (the  "License"); you may  not use  this file
 * except in  compliance with the License.   You may obtain  a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the  License is distributed on an  "AS IS" BASIS,
 * WITHOUT  WARRANTIES OR CONDITIONS  OF ANY  KIND, either  express or
 * implied.   See  the License  for  the  specific language  governing
 * permissions and limitations under the License.
 *
 * Copyright 1994-2007 Rogue Wave Software, Inc.
 * 
 **************************************************************************/

#include <rw/_defs.h>

#ifndef _RWSTD_NO_PURE_C_HEADERS
#  include <ansi/_cstdio.h>
#else

#ifndef _RWSTD_NO_DEPRECATED_C_HEADERS

#ifndef _RWSTD_NAMESPACE_STD_OPEN
#define _RWSTD_NAMESPACE_STD_OPEN 14

_RWSTD_NAMESPACE (std) { 

#endif   // _RWSTD_NAMESPACE_STD_OPEN


#include _RWSTD_ANSI_C_STDIO_H


#if _RWSTD_NAMESPACE_STD_OPEN == 14
#  undef _RWSTD_NAMESPACE_STD_OPEN

}   // namespace std

#endif   // _RWSTD_NAMESPACE_STD_OPEN == 14

#else   // if defined (_RWSTD_NO_DEPRECATED_C_HEADERS)

#ifndef _RWSTD_CSTDIO_INCLUDED
#define _RWSTD_CSTDIO_INCLUDED

#include _RWSTD_ANSI_C_STDIO_H


// 27.8.2, p1, Table 94
#ifndef stdin
#  define stdin stdin
#endif

#ifndef stdout
#  define stdout stdout
#endif

#ifndef stderr
#  define stderr stderr
#endif

#if !defined (_RWSTD_NO_NAMESPACE) && !defined (_RWSTD_NO_HONOR_STD) && \
    !defined (_RWSTD_NO_USING_LIBC_IN_STD)

namespace std {

    using ::size_t;
    using ::FILE;

#ifndef _RWSTD_NO_FPOS_T
    using ::fpos_t;
#endif   // _RWSTD_NO_FPOS_T

#ifndef _RWSTD_NO_CLEARERR
    using ::clearerr;
#endif   // _RWSTD_NO_CLEARERR

#ifndef _RWSTD_NO_FCLOSE
    using ::fclose;
#endif   // _RWSTD_NO_FCLOSE

#ifndef _RWSTD_NO_FEOF
    using ::feof;
#endif   // _RWSTD_NO_FEOF

#ifndef _RWSTD_NO_FERROR
    using ::ferror;
#endif   // _RWSTD_NO_FERROR

#ifndef _RWSTD_NO_FFLUSH
    using ::fflush;
#endif   // _RWSTD_NO_FFLUSH

#ifndef _RWSTD_NO_FGETC
    using ::fgetc;
#endif   // _RWSTD_NO_FGETC

#ifndef _RWSTD_NO_FGETPOS
    using ::fgetpos;
#endif   // _RWSTD_NO_FGETPOS

#ifndef _RWSTD_NO_FGETS
    using ::fgets;
#endif   // _RWSTD_NO_FGETS

#ifndef _RWSTD_NO_FOPEN
    using ::fopen;
#endif   // _RWSTD_NO_FOPEN

#ifndef _RWSTD_NO_FPRINTF
    using ::fprintf;
#endif   // _RWSTD_NO_FPRINTF

#ifndef _RWSTD_NO_FPUTC
    using ::fputc;
#endif   // _RWSTD_NO_FPUTC

#ifndef _RWSTD_NO_FPUTS
    using ::fputs;
#endif   // _RWSTD_NO_FPUTS

#ifndef _RWSTD_NO_FREAD
    using ::fread;
#endif   // _RWSTD_NO_FREAD

#ifndef _RWSTD_NO_FREOPEN
    using ::freopen;
#endif   // _RWSTD_NO_FREOPEN

#ifndef _RWSTD_NO_FSCANF
    using ::fscanf;
#endif   // _RWSTD_NO_FSCANF

#ifndef _RWSTD_NO_FSEEK
    using ::fseek;
#endif   // _RWSTD_NO_FSEEK

#ifndef _RWSTD_NO_FSETPOS
    using ::fsetpos;
#endif   // _RWSTD_NO_FSETPOS

#ifndef _RWSTD_NO_FTELL
    using ::ftell;
#endif   // _RWSTD_NO_FTELL

#ifndef _RWSTD_NO_FWRITE
    using ::fwrite;
#endif   // _RWSTD_NO_FWRITE

#ifndef _RWSTD_NO_GETC
    using ::getc;
#endif   // _RWSTD_NO_GETC

#ifndef _RWSTD_NO_GETCHAR
    using ::getchar;
#endif   // _RWSTD_NO_GETCHAR

#ifndef _RWSTD_NO_GETS
    using ::gets;
#endif   // _RWSTD_NO_GETS

#ifndef _RWSTD_NO_PERROR
    using ::perror;
#endif   // _RWSTD_NO_PERROR

#ifndef _RWSTD_NO_PRINTF
    using ::printf;
#endif   // _RWSTD_NO_PRINTF

#ifndef _RWSTD_NO_PUTC
    using ::putc;
#endif   // _RWSTD_NO_PUTC

#ifndef _RWSTD_NO_PUTCHAR
    using ::putchar;
#endif   // _RWSTD_NO_PUTCHAR

#ifndef _RWSTD_NO_PUTS
    using ::puts;
#endif   // _RWSTD_NO_PUTS

#ifndef _RWSTD_NO_REMOVE
    using ::remove;
#endif   // _RWSTD_NO_REMOVE

#ifndef _RWSTD_NO_RENAME
    using ::rename;
#endif   // _RWSTD_NO_RENAME

#ifndef _RWSTD_NO_REWIND
    using ::rewind;
#endif   // _RWSTD_NO_REWIND

#ifndef _RWSTD_NO_SCANF
    using ::scanf;
#endif   // _RWSTD_NO_SCANF

#ifndef _RWSTD_NO_SETBUF
    using ::setbuf;
#endif   // _RWSTD_NO_SETBUF

#ifndef _RWSTD_NO_SETVBUF
    using ::setvbuf;
#endif   // _RWSTD_NO_SETVBUF

#ifndef _RWSTD_NO_SPRINTF
    using ::sprintf;
#endif   // _RWSTD_NO_SPRINTF

#ifndef _RWSTD_NO_SSCANF
    using ::sscanf;
#endif   // _RWSTD_NO_SSCANF

#ifndef _RWSTD_NO_TMPFILE
    using ::tmpfile;
#endif   // _RWSTD_NO_TMPFILE

#ifndef _RWSTD_NO_TMPNAM
    using ::tmpnam;
#else
#  ifndef _RWSTD_NO_TMPNAM_IN_LIBC
    extern "C" char *tmpnam (char *);
#  endif // _RWSTD_NO_TMPNAM_IN_LIBC
#endif   // _RWSTD_NO_TMPNAM

#ifndef _RWSTD_NO_UNGETC
    using ::ungetc;
#endif   // _RWSTD_NO_UNGETC

#ifndef _RWSTD_NO_VFPRINTF
    using ::vfprintf;
#endif   // _RWSTD_NO_VFPRINTF

#ifndef _RWSTD_NO_VPRINTF
    using ::vprintf;
#endif   // _RWSTD_NO_VPRINTF

#ifndef _RWSTD_NO_VSPRINTF
    using ::vsprintf;
#endif   // _RWSTD_NO_VSPRINTF

}   // std


#ifdef _RWSTD_STRICT_ANSI
// undefine shadow macros in strict mode
#  undef fpos_t
#  undef remove
#  undef rename
#  undef tmpfile
#  undef tmpnam
#  undef fclose
#  undef fflush
#  undef fopen
#  undef freopen
#  undef setbuf
#  undef setvbuf
#  undef fprintf
#  undef fscanf
#  undef printf
#  undef scanf
#  undef sprintf
#  undef sscanf
#  undef vfprintf
#  undef vprintf
#  undef vsprintf
#  undef fgetc
#  undef fgets
#  undef fputc
#  undef fputs
#  undef getc
#  undef getchar
#  undef gets
#  undef putc
#  undef putchar
#  undef puts
#  undef ungetc
#  undef fread
#  undef fwrite
#  undef fgetpos
#  undef fseek
#  undef fsetpos
#  undef ftell
#  undef rewind
#  undef clearerr
#  undef feof
#  undef ferror
#  undef perror
#endif


#endif   // !_NO_NAMESPACE && !__NO_HONOR_STD && !_NO_USING_LIBC_IN_STD

#endif   // _RWSTD_CSTDIO_INCLUDED

#endif   // _RWSTD_NO_DEPRECATED_C_HEADERS

#endif   // _RWSTD_NO_PURE_C_HEADERS
