summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2003-12-23 16:03:33 (GMT)
committerBrad King <brad.king@kitware.com>2003-12-23 16:03:33 (GMT)
commit032d1d86524fe1748cc7070786655c0ba563ae99 (patch)
tree04a415af48884aab3e549b7bdecd7d5470d54831 /Source
parent0bdb092a019c87825a88208d4fdaef77379e3004 (diff)
downloadCMake-032d1d86524fe1748cc7070786655c0ba563ae99.zip
CMake-032d1d86524fe1748cc7070786655c0ba563ae99.tar.gz
CMake-032d1d86524fe1748cc7070786655c0ba563ae99.tar.bz2
ENH: Merging changes from KWSys-IOS-bp to KWSys-IOS-b2t-1-mp to main tree. This introduces separate kwsys_ios and kwsys_stl macros needed to support all platforms.
Diffstat (limited to 'Source')
-rw-r--r--Source/kwsys/CMakeLists.txt101
-rw-r--r--Source/kwsys/Configure.hxx.in75
-rw-r--r--Source/kwsys/Directory.cxx8
-rw-r--r--Source/kwsys/RegularExpression.cxx2
-rw-r--r--Source/kwsys/RegularExpression.hxx.in34
-rw-r--r--Source/kwsys/SystemTools.cxx308
-rw-r--r--Source/kwsys/SystemTools.hxx.in92
-rw-r--r--Source/kwsys/kwsysPlatformCxxTests.cmake43
-rw-r--r--Source/kwsys/kwsysPlatformCxxTests.cxx31
-rw-r--r--Source/kwsys/kwsys_ios_fstream.h.in47
-rw-r--r--Source/kwsys/kwsys_ios_iosfwd.h.in51
-rw-r--r--Source/kwsys/kwsys_ios_iostream.h.in48
-rw-r--r--Source/kwsys/kwsys_ios_sstream.h.in122
-rw-r--r--Source/kwsys/kwsys_std.h.in32
-rw-r--r--Source/kwsys/kwsys_std_fstream.h.in47
-rw-r--r--Source/kwsys/kwsys_std_iosfwd.h.in51
-rw-r--r--Source/kwsys/kwsys_std_iostream.h.in48
-rw-r--r--Source/kwsys/kwsys_std_sstream.h.in131
-rw-r--r--Source/kwsys/kwsys_stl.h.in31
-rw-r--r--Source/kwsys/test1.cxx6
-rw-r--r--Source/kwsys/testIOS.cxx11
21 files changed, 708 insertions, 611 deletions
diff --git a/Source/kwsys/CMakeLists.txt b/Source/kwsys/CMakeLists.txt
index 5c30dbd..3953b6b 100644
--- a/Source/kwsys/CMakeLists.txt
+++ b/Source/kwsys/CMakeLists.txt
@@ -47,13 +47,13 @@
# SET(KWSYS_LIBRARY_INSTALL_DIR /lib)
# SET(KWSYS_HEADER_INSTALL_DIR /include)
#
-# KWSYS_FORCE_OLD_STREAMS = Force use of old non-ANSI C++ streams even if
-# new streams are available. This may be used
-# by projects that cannot configure their
-# streams library.
+# KWSYS_IOS_FORCE_OLD = Force use of old non-ANSI C++ streams even if
+# new streams are available. This may be used
+# by projects that cannot configure their
+# streams library.
# Example:
#
-# SET(KWSYS_FORCE_OLD_STREAMS 1)
+# SET(KWSYS_IOS_FORCE_OLD 1)
#
# Once configured, kwsys should be used as follows from C or C++ code:
@@ -109,36 +109,43 @@ ENDIF(CMAKE_ANSI_CFLAGS)
#-----------------------------------------------------------------------------
# Configure the standard library header wrappers based on compiler's
-# capabilities and parent project's request.
-INCLUDE(${CMAKE_ROOT}/Modules/CheckIncludeFileCXX.cmake)
-INCLUDE(${CMAKE_ROOT}/Modules/TestForSTDNamespace.cmake)
-CHECK_INCLUDE_FILE_CXX("sstream" CMAKE_HAS_ANSI_STRING_STREAM)
-CHECK_INCLUDE_FILE_CXX("iosfwd" CMAKE_ANSI_IOSFWD_HEADER)
-
-# Enforce 0/1 as only possible values. Needed for the means by which
-# Configure.hxx is implemented.
-IF(CMAKE_NO_STD_NAMESPACE)
- SET(CMAKE_NO_STD_NAMESPACE 1)
-ELSE(CMAKE_NO_STD_NAMESPACE)
- SET(CMAKE_NO_STD_NAMESPACE 0)
-ENDIF(CMAKE_NO_STD_NAMESPACE)
-
-IF(CMAKE_ANSI_IOSFWD_HEADER)
- SET(CMAKE_NO_ANSI_STREAM_HEADERS 0)
-ELSE(CMAKE_ANSI_IOSFWD_HEADER)
- SET(CMAKE_NO_ANSI_STREAM_HEADERS 1)
-ENDIF(CMAKE_ANSI_IOSFWD_HEADER)
-
-IF(CMAKE_HAS_ANSI_STRING_STREAM)
- SET(CMAKE_NO_ANSI_STRING_STREAM 0)
-ELSE(CMAKE_HAS_ANSI_STRING_STREAM)
- SET(CMAKE_NO_ANSI_STRING_STREAM 1)
-ENDIF(CMAKE_HAS_ANSI_STRING_STREAM)
-
-IF(KWSYS_FORCE_OLD_STREAMS)
- SET(CMAKE_NO_ANSI_STREAM_HEADERS 1)
- SET(CMAKE_NO_ANSI_STRING_STREAM 1)
-ENDIF(KWSYS_FORCE_OLD_STREAMS)
+# capabilities and parent project's request. Enforce 0/1 as only
+# possible values for configuration into Configure.hxx.
+INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/kwsysPlatformCxxTests.cmake)
+
+KWSYS_PLATFORM_CXX_TEST(KWSYS_STL_HAVE_STD
+ "Checking whether STL classes are in std namespace" DIRECT)
+
+IF(KWSYS_IOS_FORCE_OLD)
+ SET(KWSYS_IOS_HAVE_ANSI 0)
+ELSE(KWSYS_IOS_FORCE_OLD)
+ KWSYS_PLATFORM_CXX_TEST(KWSYS_IOS_HAVE_ANSI
+ "Checking whether ANSI stream headers are available" DIRECT)
+ENDIF(KWSYS_IOS_FORCE_OLD)
+
+IF(KWSYS_IOS_HAVE_ANSI)
+ KWSYS_PLATFORM_CXX_TEST(KWSYS_IOS_HAVE_STD
+ "Checking whether ANSI streams are in std namespace" DIRECT)
+ KWSYS_PLATFORM_CXX_TEST(KWSYS_IOS_HAVE_SSTREAM
+ "Checking whether ANSI string stream is available" DIRECT)
+ELSE(KWSYS_IOS_HAVE_ANSI)
+ SET(KWSYS_IOS_HAVE_STD 0)
+ SET(KWSYS_IOS_HAVE_SSTREAM 0)
+ENDIF(KWSYS_IOS_HAVE_ANSI)
+
+IF(KWSYS_IOS_HAVE_SSTREAM)
+ SET(KWSYS_IOS_HAVE_STRSTREAM_H 0)
+ SET(KWSYS_IOS_HAVE_STRSTREA_H 0)
+ELSE(KWSYS_IOS_HAVE_SSTREAM)
+ KWSYS_PLATFORM_CXX_TEST(KWSYS_IOS_HAVE_STRSTREAM_H
+ "Checking whether strstream.h is available" DIRECT)
+ IF(KWSYS_IOS_HAVE_STRSTREAM_H)
+ SET(KWSYS_IOS_HAVE_STRSTREA_H 0)
+ ELSE(KWSYS_IOS_HAVE_STRSTREAM_H)
+ KWSYS_PLATFORM_CXX_TEST(KWSYS_IOS_HAVE_STRSTREA_H
+ "Checking whether strstrea.h is available" DIRECT)
+ ENDIF(KWSYS_IOS_HAVE_STRSTREAM_H)
+ENDIF(KWSYS_IOS_HAVE_SSTREAM)
IF(KWSYS_NAMESPACE MATCHES "^kwsys$")
SET(KWSYS_NAME_IS_KWSYS 1)
@@ -146,12 +153,6 @@ ELSE(KWSYS_NAMESPACE MATCHES "^kwsys$")
SET(KWSYS_NAME_IS_KWSYS 0)
ENDIF(KWSYS_NAMESPACE MATCHES "^kwsys$")
-# Set names that are used in creating Configure.hxx for these test
-# results.
-SET(KWSYS_NO_STD_NAMESPACE ${CMAKE_NO_STD_NAMESPACE})
-SET(KWSYS_NO_ANSI_STREAM_HEADERS ${CMAKE_NO_ANSI_STREAM_HEADERS})
-SET(KWSYS_NO_ANSI_STRING_STREAM ${CMAKE_NO_ANSI_STRING_STREAM})
-
# Choose default shared/static build if not specified.
IF(KWSYS_BUILD_SHARED MATCHES "^KWSYS_BUILD_SHARED$")
SET(KWSYS_BUILD_SHARED ${BUILD_SHARED_LIBS})
@@ -179,14 +180,14 @@ FOREACH(header algorithm deque iterator list map numeric queue set stack string
utility vector)
# Configure the header wrapper.
SET(KWSYS_STL_HEADER "${header}")
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_std.h.in
- ${KWSYS_HEADER_DIR}/std/${header}
+ CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_stl.h.in
+ ${KWSYS_HEADER_DIR}/stl/${header}
@ONLY IMMEDIATE)
# Create an install target for the header wrapper.
IF(KWSYS_HEADER_INSTALL_DIR)
- INSTALL_FILES(${KWSYS_HEADER_INSTALL_DIR}/${KWSYS_NAMESPACE}/std
- FILES ${KWSYS_HEADER_DIR}/std/${header})
+ INSTALL_FILES(${KWSYS_HEADER_INSTALL_DIR}/${KWSYS_NAMESPACE}/stl
+ FILES ${KWSYS_HEADER_DIR}/stl/${header})
ENDIF(KWSYS_HEADER_INSTALL_DIR)
ENDFOREACH(header)
@@ -195,14 +196,14 @@ ENDFOREACH(header)
# may be included.
FOREACH(header iostream fstream sstream iosfwd)
# Configure the header wrapper.
- CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_std_${header}.h.in
- ${KWSYS_HEADER_DIR}/std/${header}
+ CONFIGURE_FILE(${PROJECT_SOURCE_DIR}/kwsys_ios_${header}.h.in
+ ${KWSYS_HEADER_DIR}/ios/${header}
@ONLY IMMEDIATE)
# Create an install target for the header wrapper.
IF(KWSYS_HEADER_INSTALL_DIR)
- INSTALL_FILES(${KWSYS_HEADER_INSTALL_DIR}/${KWSYS_NAMESPACE}/std
- FILES ${KWSYS_HEADER_DIR}/std/${header})
+ INSTALL_FILES(${KWSYS_HEADER_INSTALL_DIR}/${KWSYS_NAMESPACE}/ios
+ FILES ${KWSYS_HEADER_DIR}/ios/${header})
ENDIF(KWSYS_HEADER_INSTALL_DIR)
ENDFOREACH(header)
@@ -366,8 +367,10 @@ ENDIF(KWSYS_USE_Process)
# Setup testing if not being built as part of another project.
IF(KWSYS_STANDALONE)
INCLUDE_DIRECTORIES(${KWSYS_HEADER_ROOT})
+ ADD_EXECUTABLE(testIOS testIOS.cxx)
ADD_EXECUTABLE(testProcess testProcess.c)
ADD_EXECUTABLE(test1 test1.cxx)
+ TARGET_LINK_LIBRARIES(testIOS ${KWSYS_NAMESPACE})
TARGET_LINK_LIBRARIES(testProcess ${KWSYS_NAMESPACE})
TARGET_LINK_LIBRARIES(test1 ${KWSYS_NAMESPACE})
ENDIF(KWSYS_STANDALONE)
diff --git a/Source/kwsys/Configure.hxx.in b/Source/kwsys/Configure.hxx.in
index bb506b4..21627bd 100644
--- a/Source/kwsys/Configure.hxx.in
+++ b/Source/kwsys/Configure.hxx.in
@@ -14,53 +14,60 @@
#ifndef @KWSYS_NAMESPACE@_Configure_hxx
#define @KWSYS_NAMESPACE@_Configure_hxx
-/* Defined if kwsys namespace is "kwsys". */
-#if @KWSYS_NAME_IS_KWSYS@
-# define @KWSYS_NAMESPACE@_NAME_IS_KWSYS
-#endif
+/* Whether kwsys namespace is "kwsys". */
+#define @KWSYS_NAMESPACE@_NAME_IS_KWSYS @KWSYS_NAME_IS_KWSYS@
-/* Defined if no ANSI C++ stream headers are present. */
-#if @KWSYS_NO_ANSI_STREAM_HEADERS@
-# define @KWSYS_NAMESPACE@_NO_ANSI_STREAM_HEADERS
-#endif
+/* Whether ANSI C++ stream headers are to be used. */
+#define @KWSYS_NAMESPACE@_IOS_HAVE_ANSI @KWSYS_IOS_HAVE_ANSI@
-/* Defined if no ANSI C++ <sstream> header is present. */
-#if @KWSYS_NO_ANSI_STRING_STREAM@
-# define @KWSYS_NAMESPACE@_NO_ANSI_STRING_STREAM
-#endif
+/* Whether ANSI C++ streams are in std namespace. */
+#define @KWSYS_NAMESPACE@_IOS_HAVE_STD @KWSYS_IOS_HAVE_STD@
-/* Defined if no std namespace is present. */
-#if @KWSYS_NO_STD_NAMESPACE@
-# define @KWSYS_NAMESPACE@_NO_STD_NAMESPACE
-#endif
+/* Whether ANSI C++ <sstream> header is to be used. */
+#define @KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM @KWSYS_IOS_HAVE_SSTREAM@
+
+/* Whether old C++ <strstream.h> header is to be used. */
+#define @KWSYS_NAMESPACE@_IOS_HAVE_STRSTREAM_H @KWSYS_IOS_HAVE_STRSTREAM_H@
+
+/* Whether old C++ <strstrea.h> header is to be used. */
+#define @KWSYS_NAMESPACE@_IOS_HAVE_STRSTREA_H @KWSYS_IOS_HAVE_STRSTREA_H@
+
+/* Whether STL is in std namespace. */
+#define @KWSYS_NAMESPACE@_STL_HAVE_STD @KWSYS_STL_HAVE_STD@
-/* Defined if std namespace is the GCC hack. */
-#if defined(__GNUC__) && (__GNUC__ < 3)
-# define @KWSYS_NAMESPACE@_FAKE_STD_NAMESPACE
+/* Define the stl namespace macro. */
+#if @KWSYS_NAMESPACE@_STL_HAVE_STD
+# define @KWSYS_NAMESPACE@_stl std
+#else
+# define @KWSYS_NAMESPACE@_stl
#endif
-/* Define the std namespace macro. */
-#if defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE)
-# define @KWSYS_NAMESPACE@_std
+/* Define the ios namespace macro. */
+#if @KWSYS_NAMESPACE@_IOS_HAVE_STD
+# define @KWSYS_NAMESPACE@_ios_namespace std
+#else
+# define @KWSYS_NAMESPACE@_ios_namespace
+#endif
+#if @KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM
+# define @KWSYS_NAMESPACE@_ios @KWSYS_NAMESPACE@_ios_namespace
#else
-# define @KWSYS_NAMESPACE@_std std
+# define @KWSYS_NAMESPACE@_ios @KWSYS_NAMESPACE@_ios
#endif
/* If building a C++ file in kwsys itself, give the source file
access to the macros without a configured namespace. */
#if defined(KWSYS_NAMESPACE)
-# if !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# define kwsys_std @KWSYS_NAMESPACE@_std
-# endif
-# if defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE)
-# define KWSYS_NO_STD_NAMESPACE
-# endif
-# if defined(@KWSYS_NAMESPACE@_NO_ANSI_STREAM_HEADERS)
-# define KWSYS_NO_ANSI_STREAM_HEADERS
-# endif
-# if defined(@KWSYS_NAMESPACE@_NO_ANSI_STRING_STREAM)
-# define KWSYS_NO_ANSI_STRING_STREAM
+# if !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsys_stl @KWSYS_NAMESPACE@_stl
+# define kwsys_ios @KWSYS_NAMESPACE@_ios
# endif
+# define KWSYS_NAME_IS_KWSYS @KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define KWSYS_IOS_HAVE_ANSI @KWSYS_NAMESPACE@_IOS_HAVE_ANSI
+# define KWSYS_IOS_HAVE_STD @KWSYS_NAMESPACE@_IOS_HAVE_STD
+# define KWSYS_IOS_HAVE_SSTREAM @KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM
+# define KWSYS_IOS_HAVE_STRSTREAM_H @KWSYS_NAMESPACE@_IOS_HAVE_STRSTREAM_H
+# define KWSYS_IOS_HAVE_STRSTREA_H @KWSYS_NAMESPACE@_IOS_HAVE_STRSTREA_H
+# define KWSYS_STL_HAVE_STD @KWSYS_NAMESPACE@_STL_HAVE_STD
#endif
#endif
diff --git a/Source/kwsys/Directory.cxx b/Source/kwsys/Directory.cxx
index 0d1f374..29c7d67 100644
--- a/Source/kwsys/Directory.cxx
+++ b/Source/kwsys/Directory.cxx
@@ -16,8 +16,8 @@
#include KWSYS_HEADER(Configure.hxx)
-#include KWSYS_HEADER(std/string)
-#include KWSYS_HEADER(std/vector)
+#include KWSYS_HEADER(stl/string)
+#include KWSYS_HEADER(stl/vector)
namespace KWSYS_NAMESPACE
{
@@ -27,10 +27,10 @@ class DirectoryInternals
{
public:
// Array of Files
- kwsys_std::vector<kwsys_std::string> Files;
+ kwsys_stl::vector<kwsys_stl::string> Files;
// Path to Open'ed directory
- kwsys_std::string Path;
+ kwsys_stl::string Path;
};
//----------------------------------------------------------------------------
diff --git a/Source/kwsys/RegularExpression.cxx b/Source/kwsys/RegularExpression.cxx
index 726edc3..5a2a5e8 100644
--- a/Source/kwsys/RegularExpression.cxx
+++ b/Source/kwsys/RegularExpression.cxx
@@ -840,7 +840,7 @@ void regdump ();
static char* regprop ();
#endif
-bool RegularExpression::find (kwsys_std::string const& s)
+bool RegularExpression::find (kwsys_stl::string const& s)
{
return find(s.c_str());
}
diff --git a/Source/kwsys/RegularExpression.hxx.in b/Source/kwsys/RegularExpression.hxx.in
index 9677cc0..3cc338c 100644
--- a/Source/kwsys/RegularExpression.hxx.in
+++ b/Source/kwsys/RegularExpression.hxx.in
@@ -35,11 +35,11 @@
#include <@KWSYS_NAMESPACE@/Configure.h>
#include <@KWSYS_NAMESPACE@/Configure.hxx>
-#include <@KWSYS_NAMESPACE@/std/string>
+#include <@KWSYS_NAMESPACE@/stl/string>
/* Define this macro temporarily to keep the code readable. */
-#if !defined (KWSYS_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# define kwsys_std @KWSYS_NAMESPACE@_std
+#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsys_stl @KWSYS_NAMESPACE@_stl
#endif
namespace @KWSYS_NAMESPACE@
@@ -221,17 +221,17 @@ public:
* Matches the regular expression to the given std string.
* Returns true if found, and sets start and end indexes accordingly.
*/
- bool find (kwsys_std::string const&);
+ bool find (kwsys_stl::string const&);
/**
* Index to start of first find.
*/
- inline kwsys_std::string::size_type start() const;
+ inline kwsys_stl::string::size_type start() const;
/**
* Index to end of first find.
*/
- inline kwsys_std::string::size_type end() const;
+ inline kwsys_stl::string::size_type end() const;
/**
* Returns true if two regular expressions have the same
@@ -265,9 +265,9 @@ public:
* Destructor.
*/
// awf added
- kwsys_std::string::size_type start(int n) const;
- kwsys_std::string::size_type end(int n) const;
- kwsys_std::string match(int n) const;
+ kwsys_stl::string::size_type start(int n) const;
+ kwsys_stl::string::size_type end(int n) const;
+ kwsys_stl::string match(int n) const;
enum { NSUBEXP = 10 };
private:
@@ -316,7 +316,7 @@ inline RegularExpression::~RegularExpression ()
/**
* Set the start position for the regular expression.
*/
-inline kwsys_std::string::size_type RegularExpression::start () const
+inline kwsys_stl::string::size_type RegularExpression::start () const
{
return(this->startp[0] - searchstring);
}
@@ -325,7 +325,7 @@ inline kwsys_std::string::size_type RegularExpression::start () const
/**
* Returns the start/end index of the last item found.
*/
-inline kwsys_std::string::size_type RegularExpression::end () const
+inline kwsys_stl::string::size_type RegularExpression::end () const
{
return(this->endp[0] - searchstring);
}
@@ -360,7 +360,7 @@ inline void RegularExpression::set_invalid ()
/**
* Return start index of nth submatch. start(0) is the start of the full match.
*/
-inline kwsys_std::string::size_type RegularExpression::start(int n) const
+inline kwsys_stl::string::size_type RegularExpression::start(int n) const
{
return this->startp[n] - searchstring;
}
@@ -369,7 +369,7 @@ inline kwsys_std::string::size_type RegularExpression::start(int n) const
/**
* Return end index of nth submatch. end(0) is the end of the full match.
*/
-inline kwsys_std::string::size_type RegularExpression::end(int n) const
+inline kwsys_stl::string::size_type RegularExpression::end(int n) const
{
return this->endp[n] - searchstring;
}
@@ -377,16 +377,16 @@ inline kwsys_std::string::size_type RegularExpression::end(int n) const
/**
* Return nth submatch as a string.
*/
-inline kwsys_std::string RegularExpression::match(int n) const
+inline kwsys_stl::string RegularExpression::match(int n) const
{
- return kwsys_std::string(this->startp[n], this->endp[n] - this->startp[n]);
+ return kwsys_stl::string(this->startp[n], this->endp[n] - this->startp[n]);
}
} // namespace @KWSYS_NAMESPACE@
/* Undefine temporary macro. */
-#if !defined (KWSYS_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# undef kwsys_std
+#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# undef kwsys_stl
#endif
#endif
diff --git a/Source/kwsys/SystemTools.cxx b/Source/kwsys/SystemTools.cxx
index 2f7a54e..8edc134 100644
--- a/Source/kwsys/SystemTools.cxx
+++ b/Source/kwsys/SystemTools.cxx
@@ -15,8 +15,8 @@
#include KWSYS_HEADER(SystemTools.hxx)
#include KWSYS_HEADER(Directory.hxx)
-#include KWSYS_HEADER(std/iostream)
-#include KWSYS_HEADER(std/fstream)
+#include KWSYS_HEADER(ios/iostream)
+#include KWSYS_HEADER(ios/fstream)
#ifdef _MSC_VER
# pragma warning (disable: 4786)
@@ -155,25 +155,25 @@ SystemTools::GetTime(void)
}
// adds the elements of the env variable path to the arg passed in
-void SystemTools::GetPath(kwsys_std::vector<kwsys_std::string>& path)
+void SystemTools::GetPath(kwsys_stl::vector<kwsys_stl::string>& path)
{
#if defined(_WIN32) && !defined(__CYGWIN__)
const char* pathSep = ";";
#else
const char* pathSep = ":";
#endif
- kwsys_std::string pathEnv = getenv("PATH");
+ kwsys_stl::string pathEnv = getenv("PATH");
// A hack to make the below algorithm work.
if(pathEnv[pathEnv.length()-1] != ':')
{
pathEnv += pathSep;
}
- kwsys_std::string::size_type start =0;
+ kwsys_stl::string::size_type start =0;
bool done = false;
while(!done)
{
- kwsys_std::string::size_type endpos = pathEnv.find(pathSep, start);
- if(endpos != kwsys_std::string::npos)
+ kwsys_stl::string::size_type endpos = pathEnv.find(pathSep, start);
+ if(endpos != kwsys_stl::string::npos)
{
path.push_back(pathEnv.substr(start, endpos-start));
start = endpos+1;
@@ -183,7 +183,7 @@ void SystemTools::GetPath(kwsys_std::vector<kwsys_std::string>& path)
done = true;
}
}
- for(kwsys_std::vector<kwsys_std::string>::iterator i = path.begin();
+ for(kwsys_stl::vector<kwsys_stl::string>::iterator i = path.begin();
i != path.end(); ++i)
{
SystemTools::ConvertToUnixSlashes(*i);
@@ -195,7 +195,7 @@ const char* SystemTools::GetEnv(const char* key)
return getenv(key);
}
-bool SystemTools::GetEnv(const char* key, kwsys_std::string& result)
+bool SystemTools::GetEnv(const char* key, kwsys_stl::string& result)
{
const char* v = getenv(key);
if(v)
@@ -225,20 +225,20 @@ bool SystemTools::MakeDirectory(const char* path)
{
return true;
}
- kwsys_std::string dir = path;
+ kwsys_stl::string dir = path;
if(dir.size() == 0)
{
return false;
}
SystemTools::ConvertToUnixSlashes(dir);
- kwsys_std::string::size_type pos = dir.find(':');
- if(pos == kwsys_std::string::npos)
+ kwsys_stl::string::size_type pos = dir.find(':');
+ if(pos == kwsys_stl::string::npos)
{
pos = 0;
}
- kwsys_std::string topdir;
- while((pos = dir.find('/', pos)) != kwsys_std::string::npos)
+ kwsys_stl::string topdir;
+ while((pos = dir.find('/', pos)) != kwsys_stl::string::npos)
{
topdir = dir.substr(0, pos);
Mkdir(topdir.c_str());
@@ -273,7 +273,7 @@ bool SystemTools::MakeDirectory(const char* path)
// replace replace with with as many times as it shows up in source.
// write the result into source.
-void SystemTools::ReplaceString(kwsys_std::string& source,
+void SystemTools::ReplaceString(kwsys_stl::string& source,
const char* replace,
const char* with)
{
@@ -318,21 +318,21 @@ void SystemTools::ReplaceString(kwsys_std::string& source,
// => will return the data of the "Root" value of the key
#if defined(_WIN32) && !defined(__CYGWIN__)
-bool SystemTools::ReadRegistryValue(const char *key, kwsys_std::string &value)
+bool SystemTools::ReadRegistryValue(const char *key, kwsys_stl::string &value)
{
- kwsys_std::string primary = key;
- kwsys_std::string second;
- kwsys_std::string valuename;
+ kwsys_stl::string primary = key;
+ kwsys_stl::string second;
+ kwsys_stl::string valuename;
size_t start = primary.find("\\");
- if (start == kwsys_std::string::npos)
+ if (start == kwsys_stl::string::npos)
{
return false;
}
size_t valuenamepos = primary.find(";");
- if (valuenamepos != kwsys_std::string::npos)
+ if (valuenamepos != kwsys_stl::string::npos)
{
valuename = primary.substr(valuenamepos+1);
}
@@ -393,7 +393,7 @@ bool SystemTools::ReadRegistryValue(const char *key, kwsys_std::string &value)
return false;
}
#else
-bool SystemTools::ReadRegistryValue(const char *, kwsys_std::string &)
+bool SystemTools::ReadRegistryValue(const char *, kwsys_stl::string &)
{
return false;
}
@@ -410,18 +410,18 @@ bool SystemTools::ReadRegistryValue(const char *, kwsys_std::string &)
#if defined(_WIN32) && !defined(__CYGWIN__)
bool SystemTools::WriteRegistryValue(const char *key, const char *value)
{
- kwsys_std::string primary = key;
- kwsys_std::string second;
- kwsys_std::string valuename;
+ kwsys_stl::string primary = key;
+ kwsys_stl::string second;
+ kwsys_stl::string valuename;
size_t start = primary.find("\\");
- if (start == kwsys_std::string::npos)
+ if (start == kwsys_stl::string::npos)
{
return false;
}
size_t valuenamepos = primary.find(";");
- if (valuenamepos != kwsys_std::string::npos)
+ if (valuenamepos != kwsys_stl::string::npos)
{
valuename = primary.substr(valuenamepos+1);
}
@@ -494,18 +494,18 @@ bool SystemTools::WriteRegistryValue(const char *, const char *)
#if defined(_WIN32) && !defined(__CYGWIN__)
bool SystemTools::DeleteRegistryValue(const char *key)
{
- kwsys_std::string primary = key;
- kwsys_std::string second;
- kwsys_std::string valuename;
+ kwsys_stl::string primary = key;
+ kwsys_stl::string second;
+ kwsys_stl::string valuename;
size_t start = primary.find("\\");
- if (start == kwsys_std::string::npos)
+ if (start == kwsys_stl::string::npos)
{
return false;
}
size_t valuenamepos = primary.find(";");
- if (valuenamepos != kwsys_std::string::npos)
+ if (valuenamepos != kwsys_stl::string::npos)
{
valuename = primary.substr(valuenamepos+1);
}
@@ -640,9 +640,9 @@ bool SystemTools::FileExists(const char* filename)
// Return a capitalized string (i.e the first letter is uppercased, all other
// are lowercased)
-kwsys_std::string SystemTools::Capitalized(const kwsys_std::string& s)
+kwsys_stl::string SystemTools::Capitalized(const kwsys_stl::string& s)
{
- kwsys_std::string n;
+ kwsys_stl::string n;
n.resize(s.size());
n[0] = toupper(s[0]);
for (size_t i = 1; i < s.size(); i++)
@@ -654,9 +654,9 @@ kwsys_std::string SystemTools::Capitalized(const kwsys_std::string& s)
// Return a lower case string
-kwsys_std::string SystemTools::LowerCase(const kwsys_std::string& s)
+kwsys_stl::string SystemTools::LowerCase(const kwsys_stl::string& s)
{
- kwsys_std::string n;
+ kwsys_stl::string n;
n.resize(s.size());
for (size_t i = 0; i < s.size(); i++)
{
@@ -666,9 +666,9 @@ kwsys_std::string SystemTools::LowerCase(const kwsys_std::string& s)
}
// Return a lower case string
-kwsys_std::string SystemTools::UpperCase(const kwsys_std::string& s)
+kwsys_stl::string SystemTools::UpperCase(const kwsys_stl::string& s)
{
- kwsys_std::string n;
+ kwsys_stl::string n;
n.resize(s.size());
for (size_t i = 0; i < s.size(); i++)
{
@@ -679,10 +679,10 @@ kwsys_std::string SystemTools::UpperCase(const kwsys_std::string& s)
// convert windows slashes to unix slashes
-void SystemTools::ConvertToUnixSlashes(kwsys_std::string& path)
+void SystemTools::ConvertToUnixSlashes(kwsys_stl::string& path)
{
- kwsys_std::string::size_type pos = 0;
- while((pos = path.find('\\', pos)) != kwsys_std::string::npos)
+ kwsys_stl::string::size_type pos = 0;
+ while((pos = path.find('\\', pos)) != kwsys_stl::string::npos)
{
path[pos] = '/';
pos++;
@@ -696,7 +696,7 @@ void SystemTools::ConvertToUnixSlashes(kwsys_std::string& path)
start_find = 1;
#endif
- while((pos = path.find("//", start_find)) != kwsys_std::string::npos)
+ while((pos = path.find("//", start_find)) != kwsys_stl::string::npos)
{
SystemTools::ReplaceString(path, "//", "/");
}
@@ -712,7 +712,7 @@ void SystemTools::ConvertToUnixSlashes(kwsys_std::string& path)
{
if (getenv("HOME"))
{
- path = kwsys_std::string(getenv("HOME")) + path.substr(1);
+ path = kwsys_stl::string(getenv("HOME")) + path.substr(1);
}
}
@@ -724,20 +724,20 @@ void SystemTools::ConvertToUnixSlashes(kwsys_std::string& path)
}
// change // to /, and escape any spaces in the path
-kwsys_std::string SystemTools::ConvertToUnixOutputPath(const char* path)
+kwsys_stl::string SystemTools::ConvertToUnixOutputPath(const char* path)
{
- kwsys_std::string ret = path;
+ kwsys_stl::string ret = path;
// remove // except at the beginning might be a cygwin drive
- kwsys_std::string::size_type pos = 1;
- while((pos = ret.find("//", pos)) != kwsys_std::string::npos)
+ kwsys_stl::string::size_type pos = 1;
+ while((pos = ret.find("//", pos)) != kwsys_stl::string::npos)
{
ret.erase(pos, 1);
}
// now escape spaces if there is a space in the path
- if(ret.find(" ") != kwsys_std::string::npos)
+ if(ret.find(" ") != kwsys_stl::string::npos)
{
- kwsys_std::string result = "";
+ kwsys_stl::string result = "";
char lastch = 1;
for(const char* ch = ret.c_str(); *ch != '\0'; ++ch)
{
@@ -754,7 +754,7 @@ kwsys_std::string SystemTools::ConvertToUnixOutputPath(const char* path)
return ret;
}
-kwsys_std::string SystemTools::ConvertToOutputPath(const char* path)
+kwsys_stl::string SystemTools::ConvertToOutputPath(const char* path)
{
#if defined(_WIN32) && !defined(__CYGWIN__)
return SystemTools::ConvertToWindowsOutputPath(path);
@@ -764,12 +764,12 @@ kwsys_std::string SystemTools::ConvertToOutputPath(const char* path)
}
// remove double slashes not at the start
-kwsys_std::string SystemTools::ConvertToWindowsOutputPath(const char* path)
+kwsys_stl::string SystemTools::ConvertToWindowsOutputPath(const char* path)
{
- kwsys_std::string ret = path;
- kwsys_std::string::size_type pos = 0;
+ kwsys_stl::string ret = path;
+ kwsys_stl::string::size_type pos = 0;
// first convert all of the slashes
- while((pos = ret.find('/', pos)) != kwsys_std::string::npos)
+ while((pos = ret.find('/', pos)) != kwsys_stl::string::npos)
{
ret[pos] = '\\';
pos++;
@@ -791,16 +791,16 @@ kwsys_std::string SystemTools::ConvertToWindowsOutputPath(const char* path)
return ret;
}
}
- while((pos = ret.find("\\\\", pos)) != kwsys_std::string::npos)
+ while((pos = ret.find("\\\\", pos)) != kwsys_stl::string::npos)
{
ret.erase(pos, 1);
}
// now double quote the path if it has spaces in it
// and is not already double quoted
- if(ret.find(" ") != kwsys_std::string::npos
+ if(ret.find(" ") != kwsys_stl::string::npos
&& ret[0] != '\"')
{
- kwsys_std::string result;
+ kwsys_stl::string result;
result = "\"" + ret + "\"";
ret = result;
}
@@ -845,13 +845,13 @@ bool SystemTools::FilesDiffer(const char* source,
}
#if defined(_WIN32) || defined(__CYGWIN__)
- kwsys_std::ifstream finSource(source, (kwsys_std::ios::binary |
- kwsys_std::ios::in));
- kwsys_std::ifstream finDestination(destination, (kwsys_std::ios::binary |
- kwsys_std::ios::in));
+ kwsys_ios::ifstream finSource(source, (kwsys_ios::ios::binary |
+ kwsys_ios::ios::in));
+ kwsys_ios::ifstream finDestination(destination, (kwsys_ios::ios::binary |
+ kwsys_ios::ios::in));
#else
- kwsys_std::ifstream finSource(source);
- kwsys_std::ifstream finDestination(destination);
+ kwsys_ios::ifstream finSource(source);
+ kwsys_ios::ifstream finDestination(destination);
#endif
if(!finSource || !finDestination)
{
@@ -894,31 +894,31 @@ bool SystemTools::CopyFileAlways(const char* source, const char* destination)
// If destination is a directory, try to create a file with the same
// name as the source in that directory.
- kwsys_std::string new_destination;
+ kwsys_stl::string new_destination;
if(SystemTools::FileExists(destination) &&
SystemTools::FileIsDirectory(destination))
{
new_destination = destination;
SystemTools::ConvertToUnixSlashes(new_destination);
new_destination += '/';
- kwsys_std::string source_name = source;
+ kwsys_stl::string source_name = source;
new_destination += SystemTools::GetFilenameName(source_name);
destination = new_destination.c_str();
}
// Create destination directory
- kwsys_std::string destination_dir = destination;
+ kwsys_stl::string destination_dir = destination;
destination_dir = SystemTools::GetFilenamePath(destination_dir);
SystemTools::MakeDirectory(destination_dir.c_str());
// Open files
#if defined(_WIN32) || defined(__CYGWIN__)
- kwsys_std::ifstream fin(source,
- kwsys_std::ios::binary | kwsys_std::ios::in);
+ kwsys_ios::ifstream fin(source,
+ kwsys_ios::ios::binary | kwsys_ios::ios::in);
#else
- kwsys_std::ifstream fin(source);
+ kwsys_ios::ifstream fin(source);
#endif
if(!fin)
{
@@ -926,11 +926,11 @@ bool SystemTools::CopyFileAlways(const char* source, const char* destination)
}
#if defined(_WIN32) || defined(__CYGWIN__)
- kwsys_std::ofstream fout(destination,
- kwsys_std::ios::binary | kwsys_std::ios::out | kwsys_std::ios::trunc);
+ kwsys_ios::ofstream fout(destination,
+ kwsys_ios::ios::binary | kwsys_ios::ios::out | kwsys_ios::ios::trunc);
#else
- kwsys_std::ofstream fout(destination,
- kwsys_std::ios::out | kwsys_std::ios::trunc);
+ kwsys_ios::ofstream fout(destination,
+ kwsys_ios::ios::out | kwsys_ios::ios::trunc);
#endif
if(!fout)
{
@@ -1021,7 +1021,7 @@ long int SystemTools::ModifiedTime(const char* filename)
}
-kwsys_std::string SystemTools::GetLastSystemError()
+kwsys_stl::string SystemTools::GetLastSystemError()
{
int e = errno;
return strerror(e);
@@ -1042,7 +1042,7 @@ bool SystemTools::RemoveADirectory(const char* source)
if (strcmp(dir.GetFile(static_cast<unsigned long>(fileNum)),".") &&
strcmp(dir.GetFile(static_cast<unsigned long>(fileNum)),".."))
{
- kwsys_std::string fullPath = source;
+ kwsys_stl::string fullPath = source;
fullPath += "/";
fullPath += dir.GetFile(static_cast<unsigned long>(fileNum));
if(SystemTools::FileIsDirectory(fullPath.c_str()))
@@ -1070,17 +1070,17 @@ bool SystemTools::RemoveADirectory(const char* source)
* the system search path. Returns the full path to the file if it is
* found. Otherwise, the empty string is returned.
*/
-kwsys_std::string SystemTools::FindFile(const char* name,
- const kwsys_std::vector<kwsys_std::string>& userPaths)
+kwsys_stl::string SystemTools::FindFile(const char* name,
+ const kwsys_stl::vector<kwsys_stl::string>& userPaths)
{
// Add the system search path to our path first
- kwsys_std::vector<kwsys_std::string> path;
+ kwsys_stl::vector<kwsys_stl::string> path;
SystemTools::GetPath(path);
// now add the additional paths
path.insert(path.end(), userPaths.begin(), userPaths.end());
// now look for the file
- kwsys_std::string tryPath;
- for(kwsys_std::vector<kwsys_std::string>::const_iterator p = path.begin();
+ kwsys_stl::string tryPath;
+ for(kwsys_stl::vector<kwsys_stl::string>::const_iterator p = path.begin();
p != path.end(); ++p)
{
tryPath = *p;
@@ -1101,9 +1101,9 @@ kwsys_std::string SystemTools::FindFile(const char* name,
* the system search path. Returns the full path to the executable if it is
* found. Otherwise, the empty string is returned.
*/
-kwsys_std::string SystemTools::FindProgram(
+kwsys_stl::string SystemTools::FindProgram(
const char* name,
- const kwsys_std::vector<kwsys_std::string>& userPaths,
+ const kwsys_stl::vector<kwsys_stl::string>& userPaths,
bool no_system_path)
{
if(!name)
@@ -1116,7 +1116,7 @@ kwsys_std::string SystemTools::FindProgram(
{
return SystemTools::CollapseFullPath(name);
}
- kwsys_std::string tryPath = name;
+ kwsys_stl::string tryPath = name;
tryPath += SystemTools::GetExecutableExtension();
if(SystemTools::FileExists(tryPath.c_str()) &&
!SystemTools::FileIsDirectory(tryPath.c_str()))
@@ -1125,7 +1125,7 @@ kwsys_std::string SystemTools::FindProgram(
}
// Add the system search path to our path.
- kwsys_std::vector<kwsys_std::string> path;
+ kwsys_stl::vector<kwsys_stl::string> path;
if (!no_system_path)
{
SystemTools::GetPath(path);
@@ -1133,7 +1133,7 @@ kwsys_std::string SystemTools::FindProgram(
// now add the additional paths
path.insert(path.end(), userPaths.begin(), userPaths.end());
- for(kwsys_std::vector<kwsys_std::string>::const_iterator p = path.begin();
+ for(kwsys_stl::vector<kwsys_stl::string>::const_iterator p = path.begin();
p != path.end(); ++p)
{
tryPath = *p;
@@ -1173,8 +1173,8 @@ kwsys_std::string SystemTools::FindProgram(
* the system search path. Returns the full path to the library if it is
* found. Otherwise, the empty string is returned.
*/
-kwsys_std::string SystemTools::FindLibrary(const char* name,
- const kwsys_std::vector<kwsys_std::string>& userPaths)
+kwsys_stl::string SystemTools::FindLibrary(const char* name,
+ const kwsys_stl::vector<kwsys_stl::string>& userPaths)
{
// See if the executable exists as written.
if(SystemTools::FileExists(name) &&
@@ -1184,12 +1184,12 @@ kwsys_std::string SystemTools::FindLibrary(const char* name,
}
// Add the system search path to our path.
- kwsys_std::vector<kwsys_std::string> path;
+ kwsys_stl::vector<kwsys_stl::string> path;
SystemTools::GetPath(path);
// now add the additional paths
path.insert(path.end(), userPaths.begin(), userPaths.end());
- kwsys_std::string tryPath;
- for(kwsys_std::vector<kwsys_std::string>::const_iterator p = path.begin();
+ kwsys_stl::string tryPath;
+ for(kwsys_stl::vector<kwsys_stl::string>::const_iterator p = path.begin();
p != path.end(); ++p)
{
#if defined(_WIN32) && !defined(__CYGWIN__)
@@ -1263,23 +1263,23 @@ int SystemTools::ChangeDirectory(const char *dir)
return Chdir(dir);
}
-kwsys_std::string SystemTools::GetCurrentWorkingDirectory()
+kwsys_stl::string SystemTools::GetCurrentWorkingDirectory()
{
char buf[2048];
- kwsys_std::string path = Getcwd(buf, 2048);
+ kwsys_stl::string path = Getcwd(buf, 2048);
return path;
}
-kwsys_std::string SystemTools::GetProgramPath(const char* in_name)
+kwsys_stl::string SystemTools::GetProgramPath(const char* in_name)
{
- kwsys_std::string dir, file;
+ kwsys_stl::string dir, file;
SystemTools::SplitProgramPath(in_name, dir, file);
return dir;
}
bool SystemTools::SplitProgramPath(const char* in_name,
- kwsys_std::string& dir,
- kwsys_std::string& file,
+ kwsys_stl::string& dir,
+ kwsys_stl::string& file,
bool)
{
dir = in_name;
@@ -1288,8 +1288,8 @@ bool SystemTools::SplitProgramPath(const char* in_name,
if(!SystemTools::FileIsDirectory(dir.c_str()))
{
- kwsys_std::string::size_type slashPos = dir.rfind("/");
- if(slashPos != kwsys_std::string::npos)
+ kwsys_stl::string::size_type slashPos = dir.rfind("/");
+ if(slashPos != kwsys_stl::string::npos)
{
file = dir.substr(slashPos+1);
dir = dir.substr(0, slashPos);
@@ -1302,7 +1302,7 @@ bool SystemTools::SplitProgramPath(const char* in_name,
}
if(!(dir == "") && !SystemTools::FileIsDirectory(dir.c_str()))
{
- kwsys_std::string oldDir = in_name;
+ kwsys_stl::string oldDir = in_name;
SystemTools::ConvertToUnixSlashes(oldDir);
dir = in_name;
return false;
@@ -1310,19 +1310,19 @@ bool SystemTools::SplitProgramPath(const char* in_name,
return true;
}
-kwsys_std::string SystemTools::CollapseFullPath(const char* in_relative)
+kwsys_stl::string SystemTools::CollapseFullPath(const char* in_relative)
{
return SystemTools::CollapseFullPath(in_relative, 0);
}
-kwsys_std::string SystemTools::CollapseFullPath(const char* in_relative,
+kwsys_stl::string SystemTools::CollapseFullPath(const char* in_relative,
const char* in_base)
{
- kwsys_std::string dir, file;
+ kwsys_stl::string dir, file;
SystemTools::SplitProgramPath(in_relative, dir, file, false);
// Save original working directory.
- kwsys_std::string orig = SystemTools::GetCurrentWorkingDirectory();
+ kwsys_stl::string orig = SystemTools::GetCurrentWorkingDirectory();
// Change to base of relative path.
if(in_base)
@@ -1338,7 +1338,7 @@ kwsys_std::string SystemTools::CollapseFullPath(const char* in_relative,
}
// Get the resulting directory.
- kwsys_std::string newDir = SystemTools::GetCurrentWorkingDirectory();
+ kwsys_stl::string newDir = SystemTools::GetCurrentWorkingDirectory();
// Add the file back on to the directory.
SystemTools::ConvertToUnixSlashes(newDir);
@@ -1354,7 +1354,7 @@ kwsys_std::string SystemTools::CollapseFullPath(const char* in_relative,
# endif
// Resolve relative path.
- kwsys_std::string newDir;
+ kwsys_stl::string newDir;
if(!(dir == ""))
{
realpath(dir.c_str(), resolved_name);
@@ -1375,7 +1375,7 @@ kwsys_std::string SystemTools::CollapseFullPath(const char* in_relative,
Chdir(orig.c_str());
// Construct and return the full path.
- kwsys_std::string newPath = newDir;
+ kwsys_stl::string newPath = newDir;
if(!(file == ""))
{
newPath += "/";
@@ -1384,14 +1384,14 @@ kwsys_std::string SystemTools::CollapseFullPath(const char* in_relative,
return newPath;
}
-bool SystemTools::Split(const char* str, kwsys_std::vector<kwsys_std::string>& lines)
+bool SystemTools::Split(const char* str, kwsys_stl::vector<kwsys_stl::string>& lines)
{
- kwsys_std::string data(str);
- kwsys_std::string::size_type lpos = 0;
+ kwsys_stl::string data(str);
+ kwsys_stl::string::size_type lpos = 0;
while(lpos < data.length())
{
- kwsys_std::string::size_type rpos = data.find_first_of("\n", lpos);
- if(rpos == kwsys_std::string::npos)
+ kwsys_stl::string::size_type rpos = data.find_first_of("\n", lpos);
+ if(rpos == kwsys_stl::string::npos)
{
// Line ends at end of string without a newline.
lines.push_back(data.substr(lpos));
@@ -1416,13 +1416,13 @@ bool SystemTools::Split(const char* str, kwsys_std::vector<kwsys_std::string>& l
* Return path of a full filename (no trailing slashes).
* Warning: returned path is converted to Unix slashes format.
*/
-kwsys_std::string SystemTools::GetFilenamePath(const kwsys_std::string& filename)
+kwsys_stl::string SystemTools::GetFilenamePath(const kwsys_stl::string& filename)
{
- kwsys_std::string fn = filename;
+ kwsys_stl::string fn = filename;
SystemTools::ConvertToUnixSlashes(fn);
- kwsys_std::string::size_type slash_pos = fn.rfind("/");
- if(slash_pos != kwsys_std::string::npos)
+ kwsys_stl::string::size_type slash_pos = fn.rfind("/");
+ if(slash_pos != kwsys_stl::string::npos)
{
return fn.substr(0, slash_pos);
}
@@ -1436,13 +1436,13 @@ kwsys_std::string SystemTools::GetFilenamePath(const kwsys_std::string& filename
/**
* Return file name of a full filename (i.e. file name without path).
*/
-kwsys_std::string SystemTools::GetFilenameName(const kwsys_std::string& filename)
+kwsys_stl::string SystemTools::GetFilenameName(const kwsys_stl::string& filename)
{
- kwsys_std::string fn = filename;
+ kwsys_stl::string fn = filename;
SystemTools::ConvertToUnixSlashes(fn);
- kwsys_std::string::size_type slash_pos = fn.rfind("/");
- if(slash_pos != kwsys_std::string::npos)
+ kwsys_stl::string::size_type slash_pos = fn.rfind("/");
+ if(slash_pos != kwsys_stl::string::npos)
{
return fn.substr(slash_pos + 1);
}
@@ -1457,11 +1457,11 @@ kwsys_std::string SystemTools::GetFilenameName(const kwsys_std::string& filename
* Return file extension of a full filename (dot included).
* Warning: this is the longest extension (for example: .tar.gz)
*/
-kwsys_std::string SystemTools::GetFilenameExtension(const kwsys_std::string& filename)
+kwsys_stl::string SystemTools::GetFilenameExtension(const kwsys_stl::string& filename)
{
- kwsys_std::string name = SystemTools::GetFilenameName(filename);
- kwsys_std::string::size_type dot_pos = name.find(".");
- if(dot_pos != kwsys_std::string::npos)
+ kwsys_stl::string name = SystemTools::GetFilenameName(filename);
+ kwsys_stl::string::size_type dot_pos = name.find(".");
+ if(dot_pos != kwsys_stl::string::npos)
{
return name.substr(dot_pos);
}
@@ -1475,11 +1475,11 @@ kwsys_std::string SystemTools::GetFilenameExtension(const kwsys_std::string& fil
* Return file extension of a full filename (dot included).
* Warning: this is the shortest extension (for example: .tar.gz)
*/
-kwsys_std::string SystemTools::GetFilenameLastExtension(const kwsys_std::string& filename)
+kwsys_stl::string SystemTools::GetFilenameLastExtension(const kwsys_stl::string& filename)
{
- kwsys_std::string name = SystemTools::GetFilenameName(filename);
- kwsys_std::string::size_type dot_pos = name.rfind(".");
- if(dot_pos != kwsys_std::string::npos)
+ kwsys_stl::string name = SystemTools::GetFilenameName(filename);
+ kwsys_stl::string::size_type dot_pos = name.rfind(".");
+ if(dot_pos != kwsys_stl::string::npos)
{
return name.substr(dot_pos);
}
@@ -1493,11 +1493,11 @@ kwsys_std::string SystemTools::GetFilenameLastExtension(const kwsys_std::string&
* Return file name without extension of a full filename (i.e. without path).
* Warning: it considers the longest extension (for example: .tar.gz)
*/
-kwsys_std::string SystemTools::GetFilenameWithoutExtension(const kwsys_std::string& filename)
+kwsys_stl::string SystemTools::GetFilenameWithoutExtension(const kwsys_stl::string& filename)
{
- kwsys_std::string name = SystemTools::GetFilenameName(filename);
- kwsys_std::string::size_type dot_pos = name.find(".");
- if(dot_pos != kwsys_std::string::npos)
+ kwsys_stl::string name = SystemTools::GetFilenameName(filename);
+ kwsys_stl::string::size_type dot_pos = name.find(".");
+ if(dot_pos != kwsys_stl::string::npos)
{
return name.substr(0, dot_pos);
}
@@ -1513,12 +1513,12 @@ kwsys_std::string SystemTools::GetFilenameWithoutExtension(const kwsys_std::stri
* Warning: it considers the last extension (for example: removes .gz
* from .tar.gz)
*/
-kwsys_std::string
-SystemTools::GetFilenameWithoutLastExtension(const kwsys_std::string& filename)
+kwsys_stl::string
+SystemTools::GetFilenameWithoutLastExtension(const kwsys_stl::string& filename)
{
- kwsys_std::string name = SystemTools::GetFilenameName(filename);
- kwsys_std::string::size_type dot_pos = name.rfind(".");
- if(dot_pos != kwsys_std::string::npos)
+ kwsys_stl::string name = SystemTools::GetFilenameName(filename);
+ kwsys_stl::string::size_type dot_pos = name.rfind(".");
+ if(dot_pos != kwsys_stl::string::npos)
{
return name.substr(0, dot_pos);
}
@@ -1530,7 +1530,7 @@ SystemTools::GetFilenameWithoutLastExtension(const kwsys_std::string& filename)
bool SystemTools::FileIsFullPath(const char* in_name)
{
- kwsys_std::string name = in_name;
+ kwsys_stl::string name = in_name;
#if defined(_WIN32)
// On Windows, the name must be at least two characters long.
if(name.length() < 2)
@@ -1562,7 +1562,7 @@ bool SystemTools::FileIsFullPath(const char* in_name)
return false;
}
-bool SystemTools::GetShortPath(const char* path, kwsys_std::string& shortPath)
+bool SystemTools::GetShortPath(const char* path, kwsys_stl::string& shortPath)
{
#if defined(WIN32) && !defined(__CYGWIN__)
const int size = int(strlen(path)) +1; // size of return
@@ -1604,7 +1604,7 @@ bool SystemTools::GetShortPath(const char* path, kwsys_std::string& shortPath)
}
void SystemTools::SplitProgramFromArgs(const char* path,
- kwsys_std::string& program, kwsys_std::string& args)
+ kwsys_stl::string& program, kwsys_stl::string& args)
{
if(SystemTools::FileExists(path))
{
@@ -1612,25 +1612,25 @@ void SystemTools::SplitProgramFromArgs(const char* path,
args = "";
return;
}
- kwsys_std::vector<kwsys_std::string> e;
- kwsys_std::string findProg = SystemTools::FindProgram(path, e);
+ kwsys_stl::vector<kwsys_stl::string> e;
+ kwsys_stl::string findProg = SystemTools::FindProgram(path, e);
if(findProg.size())
{
program = findProg;
args = "";
return;
}
- kwsys_std::string dir = path;
- kwsys_std::string::size_type spacePos = dir.rfind(' ');
- if(spacePos == kwsys_std::string::npos)
+ kwsys_stl::string dir = path;
+ kwsys_stl::string::size_type spacePos = dir.rfind(' ');
+ if(spacePos == kwsys_stl::string::npos)
{
program = "";
args = "";
return;
}
- while(spacePos != kwsys_std::string::npos)
+ while(spacePos != kwsys_stl::string::npos)
{
- kwsys_std::string tryProg = dir.substr(0, spacePos);
+ kwsys_stl::string tryProg = dir.substr(0, spacePos);
if(SystemTools::FileExists(tryProg.c_str()))
{
program = tryProg;
@@ -1650,7 +1650,7 @@ void SystemTools::SplitProgramFromArgs(const char* path,
args = "";
}
-kwsys_std::string SystemTools::GetCurrentDateTime(const char* format)
+kwsys_stl::string SystemTools::GetCurrentDateTime(const char* format)
{
char buf[1024];
time_t t;
@@ -1659,20 +1659,20 @@ kwsys_std::string SystemTools::GetCurrentDateTime(const char* format)
return buf;
}
-kwsys_std::string SystemTools::MakeCindentifier(const char* s)
+kwsys_stl::string SystemTools::MakeCindentifier(const char* s)
{
- kwsys_std::string str(s);
+ kwsys_stl::string str(s);
if (str.find_first_of("0123456789") == 0)
{
str = "_" + str;
}
- kwsys_std::string permited_chars("_"
+ kwsys_stl::string permited_chars("_"
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"0123456789");
- kwsys_std::string::size_type pos = 0;
- while ((pos = str.find_first_not_of(permited_chars, pos)) != kwsys_std::string::npos)
+ kwsys_stl::string::size_type pos = 0;
+ while ((pos = str.find_first_not_of(permited_chars, pos)) != kwsys_stl::string::npos)
{
str[pos] = '_';
}
@@ -1682,7 +1682,7 @@ kwsys_std::string SystemTools::MakeCindentifier(const char* s)
// Due to a buggy stream library on the HP and another on Mac OSX, we
// need this very carefully written version of getline. Returns true
// if any data were read before the end-of-file was reached.
-bool SystemTools::GetLineFromStream(kwsys_std::istream& is, kwsys_std::string& line,
+bool SystemTools::GetLineFromStream(kwsys_ios::istream& is, kwsys_stl::string& line,
bool *has_newline /* = 0 */)
{
const int bufferSize = 1024;
@@ -1714,7 +1714,7 @@ bool SystemTools::GetLineFromStream(kwsys_std::istream& is, kwsys_std::string& l
}
// The fail bit may be set. Clear it.
- is.clear(is.rdstate() & ~kwsys_std::ios::failbit);
+ is.clear(is.rdstate() & ~kwsys_ios::ios::failbit);
}
return haveData;
}
diff --git a/Source/kwsys/SystemTools.hxx.in b/Source/kwsys/SystemTools.hxx.in
index b238c7e..fc6acf0 100644
--- a/Source/kwsys/SystemTools.hxx.in
+++ b/Source/kwsys/SystemTools.hxx.in
@@ -14,15 +14,16 @@
#ifndef @KWSYS_NAMESPACE@_SystemTools_hxx
#define @KWSYS_NAMESPACE@_SystemTools_hxx
-#include <@KWSYS_NAMESPACE@/std/iosfwd>
-#include <@KWSYS_NAMESPACE@/std/string>
-#include <@KWSYS_NAMESPACE@/std/vector>
+#include <@KWSYS_NAMESPACE@/ios/iosfwd>
+#include <@KWSYS_NAMESPACE@/stl/string>
+#include <@KWSYS_NAMESPACE@/stl/vector>
#include <@KWSYS_NAMESPACE@/Configure.h>
-/* Define this macro temporarily to keep the code readable. */
-#if !defined (KWSYS_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# define kwsys_std @KWSYS_NAMESPACE@_std
+/* Define these macros temporarily to keep the code readable. */
+#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsys_stl @KWSYS_NAMESPACE@_stl
+# define kwsys_ios @KWSYS_NAMESPACE@_ios
#endif
namespace @KWSYS_NAMESPACE@
@@ -41,7 +42,7 @@ public:
* then an underscore is prepended. Note that this can produce
* identifiers that the standard reserves (_[A-Z].* and __.*).
*/
- static kwsys_std::string MakeCindentifier(const char* s);
+ static kwsys_stl::string MakeCindentifier(const char* s);
/**
* Make a new directory if it is not there. This function
@@ -63,14 +64,14 @@ public:
* Replace replace all occurances of the string in
* the source string.
*/
- static void ReplaceString(kwsys_std::string& source,
+ static void ReplaceString(kwsys_stl::string& source,
const char* replace,
const char* with);
/**
* Read a registry value
*/
- static bool ReadRegistryValue(const char *key, kwsys_std::string &value);
+ static bool ReadRegistryValue(const char *key, kwsys_stl::string &value);
/**
* Write a registry value
@@ -86,17 +87,17 @@ public:
* Return a capitalized string (i.e the first letter is uppercased,
* all other are lowercased).
*/
- static kwsys_std::string Capitalized(const kwsys_std::string&);
+ static kwsys_stl::string Capitalized(const kwsys_stl::string&);
/**
* Return a lower case string
*/
- static kwsys_std::string LowerCase(const kwsys_std::string&);
+ static kwsys_stl::string LowerCase(const kwsys_stl::string&);
/**
* Return a lower case string
*/
- static kwsys_std::string UpperCase(const kwsys_std::string&);
+ static kwsys_stl::string UpperCase(const kwsys_stl::string&);
/**
* do a case-independent string comparison
@@ -106,13 +107,13 @@ public:
/**
* Replace Windows file system slashes with Unix-style slashes.
*/
- static void ConvertToUnixSlashes(kwsys_std::string& path);
+ static void ConvertToUnixSlashes(kwsys_stl::string& path);
/**
* For windows this calles ConvertToWindowsOutputPath and for unix
* it calls ConvertToUnixOutputPath
*/
- static kwsys_std::string ConvertToOutputPath(const char*);
+ static kwsys_stl::string ConvertToOutputPath(const char*);
/** Return true if a file exists in the current directory. */
static bool FileExists(const char* filename);
@@ -122,11 +123,11 @@ public:
* Add the paths from the environment variable PATH to the
* string vector passed in.
*/
- static void GetPath(kwsys_std::vector<kwsys_std::string>& path);
+ static void GetPath(kwsys_stl::vector<kwsys_stl::string>& path);
/** Read an environment variable. */
static const char* GetEnv(const char* key);
- static bool GetEnv(const char* key, kwsys_std::string& result);
+ static bool GetEnv(const char* key, kwsys_stl::string& result);
/**
* Get the file extension (including ".") needed for an executable
@@ -158,32 +159,32 @@ public:
static bool RemoveADirectory(const char* source);
///! Find a file in the system PATH, with optional extra paths.
- static kwsys_std::string FindFile(const char* name,
- const kwsys_std::vector<kwsys_std::string>& path= kwsys_std::vector<kwsys_std::string>());
+ static kwsys_stl::string FindFile(const char* name,
+ const kwsys_stl::vector<kwsys_stl::string>& path= kwsys_stl::vector<kwsys_stl::string>());
///! Find an executable in the system PATH, with optional extra paths.
- static kwsys_std::string FindProgram(const char* name,
- const kwsys_std::vector<kwsys_std::string>& path = kwsys_std::vector<kwsys_std::string>(),
+ static kwsys_stl::string FindProgram(const char* name,
+ const kwsys_stl::vector<kwsys_stl::string>& path = kwsys_stl::vector<kwsys_stl::string>(),
bool no_system_path = false);
///! Find a library in the system PATH, with optional extra paths.
- static kwsys_std::string FindLibrary(const char* name,
- const kwsys_std::vector<kwsys_std::string>& path);
+ static kwsys_stl::string FindLibrary(const char* name,
+ const kwsys_stl::vector<kwsys_stl::string>& path);
///! return true if the file is a directory.
static bool FileIsDirectory(const char* name);
- static kwsys_std::string GetCurrentWorkingDirectory();
+ static kwsys_stl::string GetCurrentWorkingDirectory();
/**
* Given the path to a program executable, get the directory part of
* the path with the file stripped off. If there is no directory
* part, the empty string is returned.
*/
- static kwsys_std::string GetProgramPath(const char*);
+ static kwsys_stl::string GetProgramPath(const char*);
static bool SplitProgramPath(const char* in_name,
- kwsys_std::string& dir,
- kwsys_std::string& file,
+ kwsys_stl::string& dir,
+ kwsys_stl::string& file,
bool errorReport = true);
/**
@@ -192,32 +193,32 @@ public:
* (which defaults to the current working directory). The full path
* is returned.
*/
- static kwsys_std::string CollapseFullPath(const char* in_relative);
- static kwsys_std::string CollapseFullPath(const char* in_relative,
+ static kwsys_stl::string CollapseFullPath(const char* in_relative);
+ static kwsys_stl::string CollapseFullPath(const char* in_relative,
const char* in_base);
///! return path of a full filename (no trailing slashes).
- static kwsys_std::string GetFilenamePath(const kwsys_std::string&);
+ static kwsys_stl::string GetFilenamePath(const kwsys_stl::string&);
///! return file name of a full filename (i.e. file name without path).
- static kwsys_std::string GetFilenameName(const kwsys_std::string&);
+ static kwsys_stl::string GetFilenameName(const kwsys_stl::string&);
///! Split a program from its arguments and handle spaces in the paths.
static void SplitProgramFromArgs(const char* path,
- kwsys_std::string& program, kwsys_std::string& args);
+ kwsys_stl::string& program, kwsys_stl::string& args);
///! return longest file extension of a full filename (dot included).
- static kwsys_std::string GetFilenameExtension(const kwsys_std::string&);
+ static kwsys_stl::string GetFilenameExtension(const kwsys_stl::string&);
///! return shortest file extension of a full filename (dot included).
- static kwsys_std::string GetFilenameLastExtension(const kwsys_std::string& filename);
+ static kwsys_stl::string GetFilenameLastExtension(const kwsys_stl::string& filename);
///! return file name without extension of a full filename.
- static kwsys_std::string GetFilenameWithoutExtension(const kwsys_std::string&);
+ static kwsys_stl::string GetFilenameWithoutExtension(const kwsys_stl::string&);
///! return file name without its last (shortest) extension.
- static kwsys_std::string GetFilenameWithoutLastExtension(const kwsys_std::string&);
+ static kwsys_stl::string GetFilenameWithoutLastExtension(const kwsys_stl::string&);
/** Return whether the path represents a full path (not relative). */
static bool FileIsFullPath(const char*);
@@ -225,19 +226,19 @@ public:
static long int ModifiedTime(const char* filename);
///! for windows return the short path for the given path, unix just a pass through
- static bool GetShortPath(const char* path, kwsys_std::string& result);
+ static bool GetShortPath(const char* path, kwsys_stl::string& result);
///! change directory the the directory specified
static int ChangeDirectory(const char* dir);
/** Split a string on its newlines into multiple lines. Returns
false only if the last line stored had no newline. */
- static bool Split(const char* s, kwsys_std::vector<kwsys_std::string>& l);
+ static bool Split(const char* s, kwsys_stl::vector<kwsys_stl::string>& l);
- static kwsys_std::string GetCurrentDateTime(const char* format);
+ static kwsys_stl::string GetCurrentDateTime(const char* format);
/** Get the result of strerror(errno). */
- static kwsys_std::string GetLastSystemError();
+ static kwsys_stl::string GetLastSystemError();
/** When building DEBUG with MSVC, this enables a hook that prevents
* error dialogs from popping up if the program is being run from
@@ -252,7 +253,7 @@ public:
* end-of-file was reached. If the has_newline argument is specified, it will
* be true when the line read had a newline character.
*/
- static bool GetLineFromStream(kwsys_std::istream& istr, kwsys_std::string& line,
+ static bool GetLineFromStream(kwsys_ios::istream& istr, kwsys_stl::string& line,
bool* has_newline=0);
protected:
@@ -261,7 +262,7 @@ protected:
* Convert the path to a string that can be used in a unix makefile.
* double slashes are removed, and spaces are escaped.
*/
- static kwsys_std::string ConvertToUnixOutputPath(const char*);
+ static kwsys_stl::string ConvertToUnixOutputPath(const char*);
/**
* Convert the path to string that can be used in a windows project or
@@ -269,14 +270,15 @@ protected:
* the string, the slashes are converted to windows style backslashes, and
* if there are spaces in the string it is double quoted.
*/
- static kwsys_std::string ConvertToWindowsOutputPath(const char*);
+ static kwsys_stl::string ConvertToWindowsOutputPath(const char*);
};
} // namespace @KWSYS_NAMESPACE@
-/* Undefine temporary macro. */
-#if !defined (KWSYS_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# undef kwsys_std
+/* Undefine temporary macros. */
+#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# undef kwsys_stl
+# undef kwsys_ios
#endif
#endif
diff --git a/Source/kwsys/kwsysPlatformCxxTests.cmake b/Source/kwsys/kwsysPlatformCxxTests.cmake
new file mode 100644
index 0000000..faf7633
--- /dev/null
+++ b/Source/kwsys/kwsysPlatformCxxTests.cmake
@@ -0,0 +1,43 @@
+MACRO(KWSYS_PLATFORM_CXX_TEST var description invert)
+ IF("${var}_COMPILED" MATCHES "^${var}_COMPILED$")
+ MESSAGE(STATUS "${description}")
+ TRY_COMPILE(${var}_COMPILED
+ ${CMAKE_CURRENT_BINARY_DIR}
+ ${CMAKE_CURRENT_SOURCE_DIR}/kwsysPlatformCxxTests.cxx
+ COMPILE_DEFINITIONS -DTEST_${var}
+ OUTPUT_VARIABLE OUTPUT)
+ IF(${var}_COMPILED)
+ FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/CMakeOutput.log
+ "${description} compiled with the following output:\n${OUTPUT}\n\n")
+ ELSE(${var}_COMPILED)
+ FILE(APPEND ${CMAKE_CURRENT_BINARY_DIR}/CMakeError.log
+ "${description} failed to compile with the following output:\n${OUTPUT}\n\n")
+ ENDIF(${var}_COMPILED)
+ IF(${invert} MATCHES INVERT)
+ IF(${var}_COMPILED)
+ MESSAGE(STATUS "${description} - no")
+ ELSE(${var}_COMPILED)
+ MESSAGE(STATUS "${description} - yes")
+ ENDIF(${var}_COMPILED)
+ ELSE(${invert} MATCHES INVERT)
+ IF(${var}_COMPILED)
+ MESSAGE(STATUS "${description} - yes")
+ ELSE(${var}_COMPILED)
+ MESSAGE(STATUS "${description} - no")
+ ENDIF(${var}_COMPILED)
+ ENDIF(${invert} MATCHES INVERT)
+ ENDIF("${var}_COMPILED" MATCHES "^${var}_COMPILED$")
+ IF(${invert} MATCHES INVERT)
+ IF(${var}_COMPILED)
+ SET(${var} 0)
+ ELSE(${var}_COMPILED)
+ SET(${var} 1)
+ ENDIF(${var}_COMPILED)
+ ELSE(${invert} MATCHES INVERT)
+ IF(${var}_COMPILED)
+ SET(${var} 1)
+ ELSE(${var}_COMPILED)
+ SET(${var} 0)
+ ENDIF(${var}_COMPILED)
+ ENDIF(${invert} MATCHES INVERT)
+ENDMACRO(KWSYS_PLATFORM_CXX_TEST)
diff --git a/Source/kwsys/kwsysPlatformCxxTests.cxx b/Source/kwsys/kwsysPlatformCxxTests.cxx
new file mode 100644
index 0000000..b2c016b
--- /dev/null
+++ b/Source/kwsys/kwsysPlatformCxxTests.cxx
@@ -0,0 +1,31 @@
+#ifdef TEST_KWSYS_STL_HAVE_STD
+#include <list>
+void f(std::list<int>*) {}
+int main() { return 0; }
+#endif
+
+#ifdef TEST_KWSYS_IOS_HAVE_ANSI
+#include <iosfwd>
+int main() { return 0; }
+#endif
+
+#ifdef TEST_KWSYS_IOS_HAVE_STD
+#include <iosfwd>
+void f(std::ostream*) {}
+int main() { return 0; }
+#endif
+
+#ifdef TEST_KWSYS_IOS_HAVE_SSTREAM
+#include <sstream>
+int main() { return 0; }
+#endif
+
+#ifdef TEST_KWSYS_IOS_HAVE_STRSTREAM_H
+#include <strstream.h>
+int main() { return 0; }
+#endif
+
+#ifdef TEST_KWSYS_IOS_HAVE_STRSTREA_H
+#include <strstrea.h>
+int main() { return 0; }
+#endif
diff --git a/Source/kwsys/kwsys_ios_fstream.h.in b/Source/kwsys/kwsys_ios_fstream.h.in
new file mode 100644
index 0000000..f97e619
--- /dev/null
+++ b/Source/kwsys/kwsys_ios_fstream.h.in
@@ -0,0 +1,47 @@
+/*=========================================================================
+
+ Program: KWSys - Kitware System Library
+ Module: $RCSfile$
+
+ Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef @KWSYS_NAMESPACE@_ios_fstream
+#define @KWSYS_NAMESPACE@_ios_fstream
+
+#include <@KWSYS_NAMESPACE@/Configure.hxx>
+
+#ifdef _MSC_VER
+#pragma warning (push, 1)
+#pragma warning (disable: 4702)
+#endif
+
+#if @KWSYS_NAMESPACE@_IOS_HAVE_ANSI
+# include <fstream>
+#else
+# include <fstream.h>
+#endif
+
+#if !@KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM
+namespace @KWSYS_NAMESPACE@_ios
+{
+ using @KWSYS_NAMESPACE@_ios_namespace::ostream;
+ using @KWSYS_NAMESPACE@_ios_namespace::istream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ofstream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ifstream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ios;
+ using @KWSYS_NAMESPACE@_ios_namespace::endl;
+ using @KWSYS_NAMESPACE@_ios_namespace::flush;
+}
+#endif
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+#endif
diff --git a/Source/kwsys/kwsys_ios_iosfwd.h.in b/Source/kwsys/kwsys_ios_iosfwd.h.in
new file mode 100644
index 0000000..ec0a939
--- /dev/null
+++ b/Source/kwsys/kwsys_ios_iosfwd.h.in
@@ -0,0 +1,51 @@
+/*=========================================================================
+
+ Program: KWSys - Kitware System Library
+ Module: $RCSfile$
+
+ Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef @KWSYS_NAMESPACE@_ios_iosfwd
+#define @KWSYS_NAMESPACE@_ios_iosfwd
+
+#include <@KWSYS_NAMESPACE@/Configure.hxx>
+
+#ifdef _MSC_VER
+#pragma warning (push, 1)
+#pragma warning (disable: 4702)
+#endif
+
+#if @KWSYS_NAMESPACE@_IOS_HAVE_ANSI
+# include <iosfwd>
+#else
+class fstream;
+class ifstream;
+class ios;
+class istream;
+class ofstream;
+class ostream;
+#endif
+
+#if !@KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM
+namespace @KWSYS_NAMESPACE@_ios
+{
+ using @KWSYS_NAMESPACE@_ios_namespace::fstream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ifstream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ios;
+ using @KWSYS_NAMESPACE@_ios_namespace::istream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ofstream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ostream;
+}
+#endif
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+#endif
diff --git a/Source/kwsys/kwsys_ios_iostream.h.in b/Source/kwsys/kwsys_ios_iostream.h.in
new file mode 100644
index 0000000..08411cd
--- /dev/null
+++ b/Source/kwsys/kwsys_ios_iostream.h.in
@@ -0,0 +1,48 @@
+/*=========================================================================
+
+ Program: KWSys - Kitware System Library
+ Module: $RCSfile$
+
+ Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef @KWSYS_NAMESPACE@_ios_iostream
+#define @KWSYS_NAMESPACE@_ios_iostream
+
+#include <@KWSYS_NAMESPACE@/Configure.hxx>
+
+#ifdef _MSC_VER
+#pragma warning (push, 1)
+#pragma warning (disable: 4702)
+#endif
+
+#if @KWSYS_NAMESPACE@_IOS_HAVE_ANSI
+# include <iostream>
+#else
+# include <iostream.h>
+#endif
+
+#if !@KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM
+namespace @KWSYS_NAMESPACE@_ios
+{
+ using @KWSYS_NAMESPACE@_ios_namespace::ostream;
+ using @KWSYS_NAMESPACE@_ios_namespace::istream;
+ using @KWSYS_NAMESPACE@_ios_namespace::ios;
+ using @KWSYS_NAMESPACE@_ios_namespace::cout;
+ using @KWSYS_NAMESPACE@_ios_namespace::cerr;
+ using @KWSYS_NAMESPACE@_ios_namespace::cin;
+ using @KWSYS_NAMESPACE@_ios_namespace::endl;
+ using @KWSYS_NAMESPACE@_ios_namespace::flush;
+}
+#endif
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
+#endif
diff --git a/Source/kwsys/kwsys_ios_sstream.h.in b/Source/kwsys/kwsys_ios_sstream.h.in
new file mode 100644
index 0000000..876259d
--- /dev/null
+++ b/Source/kwsys/kwsys_ios_sstream.h.in
@@ -0,0 +1,122 @@
+/*=========================================================================
+
+ Program: KWSys - Kitware System Library
+ Module: $RCSfile$
+
+ Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef @KWSYS_NAMESPACE@_ios_sstream
+#define @KWSYS_NAMESPACE@_ios_sstream
+
+#include <@KWSYS_NAMESPACE@/Configure.hxx>
+
+/* Define this macro temporarily to keep the code readable. */
+#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# define kwsys_stl @KWSYS_NAMESPACE@_stl
+#endif
+
+#if @KWSYS_NAMESPACE@_IOS_HAVE_SSTREAM
+# ifdef _MSC_VER
+# pragma warning (push, 1)
+# pragma warning (disable: 4702)
+# endif
+# include <sstream>
+# ifdef _MSC_VER
+# pragma warning(pop)
+# endif
+#else
+# ifdef _MSC_VER
+# pragma warning (push, 1)
+# pragma warning (disable: 4702)
+# endif
+# if @KWSYS_NAMESPACE@_IOS_HAVE_ANSI
+# include <strstream>
+# elif @KWSYS_NAMESPACE@_IOS_HAVE_STRSTREAM_H
+# include <strstream.h>
+# elif @KWSYS_NAMESPACE@_IOS_HAVE_STRSTREA_H
+# include <strstrea.h>
+# endif
+# ifdef _MSC_VER
+# pragma warning(pop)
+# endif
+
+// Only have old std::strstream classes. Wrap them to look like new
+// ostringstream and istringstream classes.
+
+# include <@KWSYS_NAMESPACE@/stl/string>
+
+namespace @KWSYS_NAMESPACE@_ios
+{
+using @KWSYS_NAMESPACE@_ios_namespace::ostream;
+using @KWSYS_NAMESPACE@_ios_namespace::istream;
+using @KWSYS_NAMESPACE@_ios_namespace::istrstream;
+using @KWSYS_NAMESPACE@_ios_namespace::ostrstream;
+using @KWSYS_NAMESPACE@_ios_namespace::ios;
+using @KWSYS_NAMESPACE@_ios_namespace::endl;
+using @KWSYS_NAMESPACE@_ios_namespace::ends;
+using @KWSYS_NAMESPACE@_ios_namespace::flush;
+
+class ostringstream_cleanup
+{
+public:
+ ostringstream_cleanup(ostrstream& ostr): m_OStrStream(ostr) {}
+ ~ostringstream_cleanup() { m_OStrStream.rdbuf()->freeze(0); }
+ static void IgnoreUnusedVariable(const ostringstream_cleanup&) {}
+protected:
+ ostrstream& m_OStrStream;
+};
+
+class ostringstream: public ostrstream
+{
+public:
+ typedef ostrstream Superclass;
+ ostringstream() {}
+ kwsys_stl::string str()
+ {
+ ostringstream_cleanup cleanup(*this);
+ ostringstream_cleanup::IgnoreUnusedVariable(cleanup);
+ int pcount = this->pcount();
+ const char* ptr = this->Superclass::str();
+ return kwsys_stl::string(ptr?ptr:"", pcount);
+ }
+private:
+ ostringstream(const ostringstream&);
+ void operator=(const ostringstream&);
+};
+
+class istringstream: private kwsys_stl::string, public istrstream
+{
+public:
+ typedef kwsys_stl::string StdString;
+ typedef istrstream IStrStream;
+ istringstream(): StdString(),
+ IStrStream(const_cast<char*>(StdString::c_str())) {}
+ istringstream(const kwsys_stl::string& s):
+ StdString(s), IStrStream(const_cast<char*>(StdString::c_str())) {}
+ kwsys_stl::string str() const { return *this; }
+ void str(const kwsys_stl::string& s)
+ {
+ this->~istringstream();
+ new (this) istringstream(s);
+ }
+private:
+ istringstream(const istringstream&);
+ void operator=(const istringstream&);
+};
+
+} // namespace @KWSYS_NAMESPACE@_ios
+
+#endif
+
+/* Undefine temporary macro. */
+#if !defined (KWSYS_NAMESPACE) && !@KWSYS_NAMESPACE@_NAME_IS_KWSYS
+# undef kwsys_stl
+#endif
+
+#endif
diff --git a/Source/kwsys/kwsys_std.h.in b/Source/kwsys/kwsys_std.h.in
index f98e9e9..87e266b 100644
--- a/Source/kwsys/kwsys_std.h.in
+++ b/Source/kwsys/kwsys_std.h.in
@@ -1,31 +1 @@
-/*=========================================================================
-
- Program: KWSys - Kitware System Library
- Module: $RCSfile$
-
- Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef @KWSYS_NAMESPACE@_std_@KWSYS_STL_HEADER@
-#define @KWSYS_NAMESPACE@_std_@KWSYS_STL_HEADER@
-
-#include <@KWSYS_NAMESPACE@/Configure.hxx>
-
-#ifdef _MSC_VER
-# pragma warning (push, 1)
-# pragma warning (disable: 4702)
-# pragma warning (disable: 4786)
-#endif
-
-#include <@KWSYS_STL_HEADER@>
-
-#ifdef _MSC_VER
-# pragma warning(pop)
-#endif
-
-#endif
+/* Empty until make dependencies are updated. */
diff --git a/Source/kwsys/kwsys_std_fstream.h.in b/Source/kwsys/kwsys_std_fstream.h.in
index e3eec8a..87e266b 100644
--- a/Source/kwsys/kwsys_std_fstream.h.in
+++ b/Source/kwsys/kwsys_std_fstream.h.in
@@ -1,46 +1 @@
-/*=========================================================================
-
- Program: KWSys - Kitware System Library
- Module: $RCSfile$
-
- Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef @KWSYS_NAMESPACE@_std_fstream
-#define @KWSYS_NAMESPACE@_std_fstream
-
-#include <@KWSYS_NAMESPACE@/Configure.hxx>
-
-#ifdef _MSC_VER
-#pragma warning (push, 1)
-#pragma warning (disable: 4702)
-#endif
-
-#if !defined(@KWSYS_NAMESPACE@_NO_ANSI_STREAM_HEADERS)
-# include <fstream>
-#else
-# include <fstream.h>
-# if !defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_FAKE_STD_NAMESPACE)
-namespace std
-{
- using ::ostream;
- using ::istream;
- using ::ofstream;
- using ::ifstream;
- using ::ios;
- using ::endl;
- using ::flush;
-}
-# endif
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#endif
+/* Empty until make dependencies are updated. */
diff --git a/Source/kwsys/kwsys_std_iosfwd.h.in b/Source/kwsys/kwsys_std_iosfwd.h.in
index fcca75f..87e266b 100644
--- a/Source/kwsys/kwsys_std_iosfwd.h.in
+++ b/Source/kwsys/kwsys_std_iosfwd.h.in
@@ -1,50 +1 @@
-/*=========================================================================
-
- Program: KWSys - Kitware System Library
- Module: $RCSfile$
-
- Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef @KWSYS_NAMESPACE@_std_iosfwd
-#define @KWSYS_NAMESPACE@_std_iosfwd
-
-#include <@KWSYS_NAMESPACE@/Configure.hxx>
-
-#ifdef _MSC_VER
-#pragma warning (push, 1)
-#pragma warning (disable: 4702)
-#endif
-
-#if !defined(@KWSYS_NAMESPACE@_NO_ANSI_STREAM_HEADERS)
-# include <iosfwd>
-#else
-class fstream;
-class ifstream;
-class ios;
-class istream;
-class ofstream;
-class ostream;
-# if !defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_FAKE_STD_NAMESPACE)
-namespace std
-{
- using ::fstream;
- using ::ifstream;
- using ::ios;
- using ::istream;
- using ::ofstream;
- using ::ostream;
-}
-# endif
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#endif
+/* Empty until make dependencies are updated. */
diff --git a/Source/kwsys/kwsys_std_iostream.h.in b/Source/kwsys/kwsys_std_iostream.h.in
index 0ed3531..87e266b 100644
--- a/Source/kwsys/kwsys_std_iostream.h.in
+++ b/Source/kwsys/kwsys_std_iostream.h.in
@@ -1,47 +1 @@
-/*=========================================================================
-
- Program: KWSys - Kitware System Library
- Module: $RCSfile$
-
- Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef @KWSYS_NAMESPACE@_std_iostream
-#define @KWSYS_NAMESPACE@_std_iostream
-
-#include <@KWSYS_NAMESPACE@/Configure.hxx>
-
-#ifdef _MSC_VER
-#pragma warning (push, 1)
-#pragma warning (disable: 4702)
-#endif
-
-#if !defined(@KWSYS_NAMESPACE@_NO_ANSI_STREAM_HEADERS)
-# include <iostream>
-#else
-# include <iostream.h>
-# if !defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_FAKE_STD_NAMESPACE)
-namespace std
-{
- using ::ostream;
- using ::istream;
- using ::ios;
- using ::cout;
- using ::cerr;
- using ::cin;
- using ::endl;
- using ::flush;
-}
-# endif
-#endif
-
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#endif
+/* Empty until make dependencies are updated. */
diff --git a/Source/kwsys/kwsys_std_sstream.h.in b/Source/kwsys/kwsys_std_sstream.h.in
index 165c3b7..87e266b 100644
--- a/Source/kwsys/kwsys_std_sstream.h.in
+++ b/Source/kwsys/kwsys_std_sstream.h.in
@@ -1,130 +1 @@
-/*=========================================================================
-
- Program: KWSys - Kitware System Library
- Module: $RCSfile$
-
- Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
- See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
-
- This software is distributed WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE. See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef @KWSYS_NAMESPACE@_std_sstream
-#define @KWSYS_NAMESPACE@_std_sstream
-
-#include <@KWSYS_NAMESPACE@/Configure.hxx>
-
-/* Define this macro temporarily to keep the code readable. */
-#if !defined (KWSYS_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# define kwsys_std @KWSYS_NAMESPACE@_std
-#endif
-
-#if !defined(@KWSYS_NAMESPACE@_NO_ANSI_STRING_STREAM)
-# ifdef _MSC_VER
-# pragma warning (push, 1)
-# pragma warning (disable: 4702)
-# endif
-# include <sstream>
-# ifdef _MSC_VER
-# pragma warning(pop)
-# endif
-#else
-# ifdef _MSC_VER
-# pragma warning (push, 1)
-# pragma warning (disable: 4702)
-# endif
-# if !defined(@KWSYS_NAMESPACE@_NO_ANSI_STREAM_HEADERS)
-# include <strstream>
-# else
-# include <strstream.h>
-# if !defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_FAKE_STD_NAMESPACE)
-namespace std
-{
- using ::ostream;
- using ::istream;
- using ::istrstream;
- using ::ostrstream;
- using ::ios;
- using ::endl;
- using ::ends;
- using ::flush;
-}
-# endif
-# endif
-# ifdef _MSC_VER
-# pragma warning(pop)
-# endif
-
-// Only have old std::strstream classes. Wrap them to look like new
-// ostringstream and istringstream classes.
-
-# include <@KWSYS_NAMESPACE@/std/string>
-
-# if !defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE)
-namespace std
-{
-# endif
-
-class ostringstream_cleanup
-{
-public:
- ostringstream_cleanup(kwsys_std::ostrstream& ostr): m_OStrStream(ostr) {}
- ~ostringstream_cleanup() { m_OStrStream.rdbuf()->freeze(0); }
- static void IgnoreUnusedVariable(const ostringstream_cleanup&) {}
-protected:
- kwsys_std::ostrstream& m_OStrStream;
-};
-
-class ostringstream: public kwsys_std::ostrstream
-{
-public:
- typedef kwsys_std::ostrstream Superclass;
- ostringstream() {}
- kwsys_std::string str()
- {
- ostringstream_cleanup cleanup(*this);
- ostringstream_cleanup::IgnoreUnusedVariable(cleanup);
- int pcount = this->pcount();
- const char* ptr = this->Superclass::str();
- return kwsys_std::string(ptr?ptr:"", pcount);
- }
-private:
- ostringstream(const ostringstream&);
- void operator=(const ostringstream&);
-};
-
-class istringstream: private kwsys_std::string, public kwsys_std::istrstream
-{
-public:
- typedef kwsys_std::string StdString;
- typedef kwsys_std::istrstream IStrStream;
- istringstream(): StdString(), IStrStream(StdString::c_str()) {}
- istringstream(const kwsys_std::string& s):
- StdString(s), IStrStream(StdString::c_str()) {}
- kwsys_std::string str() const { return *this; }
- void str(const kwsys_std::string& s)
- {
- // Very dangerous. If this throws, the object is hosed. When the
- // destructor is later called, the program is hosed too.
- this->~istringstream();
- new (this) istringstream(s);
- }
-private:
- istringstream(const istringstream&);
- void operator=(const istringstream&);
-};
-
-# if !defined(@KWSYS_NAMESPACE@_NO_STD_NAMESPACE)
-}
-# endif
-
-#endif
-
-/* Undefine temporary macro. */
-#if !defined (KWSYS_NAMESPACE) && !defined(@KWSYS_NAMESPACE@_NAME_IS_KWSYS)
-# undef kwsys_std
-#endif
-
-#endif
+/* Empty until make dependencies are updated. */
diff --git a/Source/kwsys/kwsys_stl.h.in b/Source/kwsys/kwsys_stl.h.in
new file mode 100644
index 0000000..893ce46
--- /dev/null
+++ b/Source/kwsys/kwsys_stl.h.in
@@ -0,0 +1,31 @@
+/*=========================================================================
+
+ Program: KWSys - Kitware System Library
+ Module: $RCSfile$
+
+ Copyright (c) Kitware, Inc., Insight Consortium. All rights reserved.
+ See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
+
+ This software is distributed WITHOUT ANY WARRANTY; without even
+ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ PURPOSE. See the above copyright notices for more information.
+
+=========================================================================*/
+#ifndef @KWSYS_NAMESPACE@_stl_@KWSYS_STL_HEADER@
+#define @KWSYS_NAMESPACE@_stl_@KWSYS_STL_HEADER@
+
+#include <@KWSYS_NAMESPACE@/Configure.hxx>
+
+#ifdef _MSC_VER
+# pragma warning (push, 1)
+# pragma warning (disable: 4702)
+# pragma warning (disable: 4786)
+#endif
+
+#include <@KWSYS_STL_HEADER@>
+
+#ifdef _MSC_VER
+# pragma warning(pop)
+#endif
+
+#endif
diff --git a/Source/kwsys/test1.cxx b/Source/kwsys/test1.cxx
index bd42ffb..4c1def5 100644
--- a/Source/kwsys/test1.cxx
+++ b/Source/kwsys/test1.cxx
@@ -13,7 +13,7 @@
=========================================================================*/
#include <kwsys/Directory.hxx>
#include <kwsys/Process.h>
-#include <kwsys/std/iostream>
+#include <kwsys/ios/iostream>
int main()
{
@@ -26,9 +26,9 @@ int main()
int length = 0;
while(kwsysProcess_WaitForData(kp, &data, &length, 0))
{
- kwsys_std::cout.write(data, length);
+ kwsys_ios::cout.write(data, length);
}
kwsysProcess_Delete(kp);
- kwsys_std::cout << kwsys_std::endl;
+ kwsys_ios::cout << kwsys_ios::endl;
return 0;
}
diff --git a/Source/kwsys/testIOS.cxx b/Source/kwsys/testIOS.cxx
new file mode 100644
index 0000000..f1441f6
--- /dev/null
+++ b/Source/kwsys/testIOS.cxx
@@ -0,0 +1,11 @@
+#include <kwsys/stl/vector>
+#include <kwsys/ios/sstream>
+#include <kwsys/ios/iostream>
+
+int main()
+{
+ kwsys_ios::ostringstream ostr;
+ ostr << "Hello, World!";
+ kwsys_ios::cout << ostr.str() << kwsys_ios::endl;
+ return 0;
+}