ソースを参照

Merge topic 'update-kwsys'

2f7c169 Merge branch 'upstream-kwsys' into update-kwsys
d4efa5f KWSys 2013-12-21 (e81f2a9e)
Brad King 12 年 前
コミット
fef56edee7
3 ファイル変更56 行追加2 行削除
  1. 5 0
      Source/kwsys/CMakeLists.txt
  2. 3 2
      Source/kwsys/FStream.hxx.in
  3. 48 0
      Source/kwsys/testFStream.cxx

+ 5 - 0
Source/kwsys/CMakeLists.txt

@@ -1136,6 +1136,11 @@ IF(KWSYS_STANDALONE OR CMake_SOURCE_DIR)
         testEncoding
         )
     ENDIF(KWSYS_STL_HAS_WSTRING)
+    IF(KWSYS_USE_FStream)
+      SET(KWSYS_CXX_TESTS ${KWSYS_CXX_TESTS}
+        testFStream
+        )
+    ENDIF(KWSYS_USE_FStream)
     IF(KWSYS_USE_SystemInformation)
       SET(KWSYS_CXX_TESTS ${KWSYS_CXX_TESTS} testSystemInformation)
     ENDIF(KWSYS_USE_SystemInformation)

+ 3 - 2
Source/kwsys/FStream.hxx.in

@@ -25,8 +25,9 @@ namespace @KWSYS_NAMESPACE@
       typedef std::basic_filebuf<CharType,Traits> my_base_type;
       basic_filebuf *open(char const *s,std::ios_base::openmode mode)
       {
-        my_base_type::open(Encoding::ToWide(s).c_str(), mode);
-        return this;
+        return static_cast<basic_filebuf*>(
+          my_base_type::open(Encoding::ToWide(s).c_str(), mode)
+          );
       }
   };
 

+ 48 - 0
Source/kwsys/testFStream.cxx

@@ -0,0 +1,48 @@
+/*============================================================================
+  KWSys - Kitware System Library
+  Copyright 2000-2009 Kitware, Inc., Insight Software Consortium
+
+  Distributed under the OSI-approved BSD License (the "License");
+  see accompanying file Copyright.txt for details.
+
+  This software is distributed WITHOUT ANY WARRANTY; without even the
+  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+  See the License for more information.
+============================================================================*/
+#include "kwsysPrivate.h"
+
+#if defined(_MSC_VER)
+# pragma warning (disable:4786)
+#endif
+
+#include KWSYS_HEADER(FStream.hxx)
+
+// Work-around CMake dependency scanning limitation.  This must
+// duplicate the above list of headers.
+#if 0
+# include "FStream.hxx.in"
+#endif
+
+
+//----------------------------------------------------------------------------
+static int testNoFile()
+{
+  kwsys::ifstream in_file("NoSuchFile.txt");
+  if(in_file)
+    {
+    return 1;
+    }
+
+  return 0;
+}
+
+
+//----------------------------------------------------------------------------
+int testFStream(int, char*[])
+{
+  int ret = 0;
+
+  ret |= testNoFile();
+
+  return ret;
+}