19720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/*
29720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Copyright (c) 1999
39720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Boris Fomitchev
49720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
59720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * This material is provided "as is", with absolutely no warranty expressed
69720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * or implied. Any use is at your own risk.
79720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
89720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to use or copy this software for any purpose is hereby granted
99720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * without fee, provided the above notices are retained on all copies.
109720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * Permission to modify the code and to distribute modified code is granted,
119720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * provided the above notices are retained, and a notice that the code was
129720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * modified is included with the above copyright notice.
139720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
149720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
159720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
169720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if !defined (_STLP_OUTERMOST_HEADER_ID)
179720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_OUTERMOST_HEADER_ID 0x205
18e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#  include <stl/_cprolog.h>
199720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#elif (_STLP_OUTERMOST_HEADER_ID == 0x205) && !defined (_STLP_DONT_POP_HEADER_ID)
209720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  define _STLP_DONT_POP_HEADER_ID
219720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
229720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
239720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#ifdef _STLP_WCE
24e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott/* only show message when directly including this file in a non-library build */
259720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined(__BUILDING_STLPORT) && (_STLP_OUTERMOST_HEADER_ID == 0x205)
269720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    pragma message("eMbedded Visual C++ 3 and .NET don't have a errno.h header; STLport won't include native errno.h here")
279720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
289720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#else
299720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  ifndef errno
309720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* We define the following macro first to guaranty the header reentrancy: */
319720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    define _STLP_NATIVE_ERRNO_H_INCLUDED
32e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if defined (_STLP_HAS_INCLUDE_NEXT)
33e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#      include_next <errno.h>
34e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    else
35e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#      include _STLP_NATIVE_C_HEADER(errno.h)
36e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    endif
37e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    if defined (__BORLANDC__) && (__BORLANDC__ >= 0x590) && defined (__cplusplus)
38e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_BEGIN_NAMESPACE
39e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scottusing _STLP_VENDOR_CSTD::__errno;
40e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott_STLP_END_NAMESPACE
41e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott#    endif
429720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif /* errno */
439720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
449720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if !defined (_STLP_NATIVE_ERRNO_H_INCLUDED)
459720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* If errno has been defined before inclusion of native errno.h including it from STLport errno.h
469720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * becomes impossible because if:
479720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * #define errno foo
489720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * then
499720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * #include _STLP_NATIVE_C_HEADER(errno.h)
509720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * becomes:
519720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * #include _STLP_NATIVE_C_HEADER(foo.h)
529720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block *
539720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * To fix this problem you have to find where this definition comes from and include errno.h before it.
549720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
559720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    error errno has been defined before inclusion of errno.h header.
569720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
579720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
589720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
599720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#if (_STLP_OUTERMOST_HEADER_ID == 0x205)
609720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  if ! defined (_STLP_DONT_POP_HEADER_ID)
619720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    include <stl/_epilog.h>
629720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#    undef  _STLP_OUTERMOST_HEADER_ID
639720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  endif
649720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#  undef  _STLP_DONT_POP_HEADER_ID
659720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block#endif
669720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block
679720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block/* Local Variables:
68e46c9386c4f79aa40185f79a19fc5b2a7ef528b3Patrick Scott * mode: C
699720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block * End:
709720d5f59b9c1f5d1b9ecbc9173dbcb71bd557beSteve Block */
71