Merge branch 'upstream-KWSys' into update-kwsys

# By KWSys Upstream
* upstream-KWSys:
  KWSys 2019-11-13 (e67ed8ef)
This commit is contained in:
Brad King
2019-11-13 09:48:23 -05:00
5 changed files with 33 additions and 18 deletions

View File

@@ -12,3 +12,7 @@
list(APPEND CTEST_CUSTOM_MEMCHECK_IGNORE list(APPEND CTEST_CUSTOM_MEMCHECK_IGNORE
kwsys.testProcess-10 kwsys.testProcess-10
) )
list(APPEND CTEST_CUSTOM_WARNING_EXCEPTION
"LICENSE WARNING"
)

View File

@@ -87,7 +87,7 @@ public:
bool _open(char const* file_name, std::ios_base::openmode mode) bool _open(char const* file_name, std::ios_base::openmode mode)
{ {
if (is_open() || file_) { if (_is_open() || file_) {
return false; return false;
} }
# if defined(_MSC_VER) # if defined(_MSC_VER)
@@ -108,7 +108,7 @@ public:
return success; return success;
} }
bool is_open() bool _is_open()
{ {
if (!buf_) { if (!buf_) {
return false; return false;
@@ -116,7 +116,7 @@ public:
return buf_->is_open(); return buf_->is_open();
} }
bool is_open() const bool _is_open() const
{ {
if (!buf_) { if (!buf_) {
return false; return false;
@@ -198,9 +198,11 @@ public:
this->_set_state(this->_open(file_name, mode), this, this); this->_set_state(this->_open(file_name, mode), this, this);
} }
bool is_open() { return this->_is_open(); }
void close() { this->_set_state(this->_close(), this, this); } void close() { this->_set_state(this->_close(), this, this); }
using basic_efilebuf<CharType, Traits>::is_open; using basic_efilebuf<CharType, Traits>::_is_open;
internal_buffer_type* rdbuf() const { return this->buf_; } internal_buffer_type* rdbuf() const { return this->buf_; }
@@ -212,7 +214,7 @@ class basic_ofstream
: public std::basic_ostream<CharType, Traits> : public std::basic_ostream<CharType, Traits>
, public basic_efilebuf<CharType, Traits> , public basic_efilebuf<CharType, Traits>
{ {
using basic_efilebuf<CharType, Traits>::is_open; using basic_efilebuf<CharType, Traits>::_is_open;
public: public:
typedef typename basic_efilebuf<CharType, Traits>::internal_buffer_type typedef typename basic_efilebuf<CharType, Traits>::internal_buffer_type
@@ -242,6 +244,8 @@ public:
void close() { this->_set_state(this->_close(), this, this); } void close() { this->_set_state(this->_close(), this, this); }
bool is_open() { return this->_is_open(); }
internal_buffer_type* rdbuf() const { return this->buf_; } internal_buffer_type* rdbuf() const { return this->buf_; }
~basic_ofstream() @KWSYS_NAMESPACE@_FStream_NOEXCEPT { close(); } ~basic_ofstream() @KWSYS_NAMESPACE@_FStream_NOEXCEPT { close(); }

View File

@@ -66,6 +66,13 @@ private:
const char* searchstring; const char* searchstring;
}; };
#ifdef _MSC_VER
# pragma warning(push)
# if _MSC_VER < 1900
# pragma warning(disable : 4351) /* new behavior */
# endif
#endif
/** /**
* \brief Creates an invalid match object * \brief Creates an invalid match object
*/ */
@@ -76,6 +83,10 @@ inline RegularExpressionMatch::RegularExpressionMatch()
{ {
} }
#ifdef _MSC_VER
# pragma warning(pop)
#endif
/** /**
* \brief Returns true if the match pointers are valid * \brief Returns true if the match pointers are valid
*/ */

View File

@@ -2326,14 +2326,8 @@ bool SystemTools::TextFilesDiffer(const std::string& path1,
static bool CopyFileContentBlockwise(const std::string& source, static bool CopyFileContentBlockwise(const std::string& source,
const std::string& destination) const std::string& destination)
{ {
// Open files // Open files
#if defined(_WIN32)
kwsys::ifstream fin(
Encoding::ToNarrow(Encoding::ToWindowsExtendedPath(source)).c_str(),
std::ios::in | std::ios::binary);
#else
kwsys::ifstream fin(source.c_str(), std::ios::in | std::ios::binary); kwsys::ifstream fin(source.c_str(), std::ios::in | std::ios::binary);
#endif
if (!fin) { if (!fin) {
return false; return false;
} }
@@ -2344,14 +2338,8 @@ static bool CopyFileContentBlockwise(const std::string& source,
// that do not allow file removal can be modified. // that do not allow file removal can be modified.
SystemTools::RemoveFile(destination); SystemTools::RemoveFile(destination);
#if defined(_WIN32)
kwsys::ofstream fout(
Encoding::ToNarrow(Encoding::ToWindowsExtendedPath(destination)).c_str(),
std::ios::out | std::ios::trunc | std::ios::binary);
#else
kwsys::ofstream fout(destination.c_str(), kwsys::ofstream fout(destination.c_str(),
std::ios::out | std::ios::trunc | std::ios::binary); std::ios::out | std::ios::trunc | std::ios::binary);
#endif
if (!fout) { if (!fout) {
return false; return false;
} }

View File

@@ -172,6 +172,14 @@ static int kwsysTerminalStreamIsVT100(FILE* stream, int default_vt100,
} }
} }
/* GNU make 4.1+ may tell us that its output is destined for a TTY. */
{
const char* termout = getenv("MAKE_TERMOUT");
if (termout && *termout != '\0') {
return 1;
}
}
/* If running inside emacs the terminal is not VT100. Some emacs /* If running inside emacs the terminal is not VT100. Some emacs
seem to claim the TERM is xterm even though they do not support seem to claim the TERM is xterm even though they do not support
VT100 escapes. */ VT100 escapes. */