KWSys 2019-11-13 (e67ed8ef)

Code extracted from:

    https://gitlab.kitware.com/utils/kwsys.git

at commit e67ed8efaf193036a92b648eec2ea71fabc0c05a (master).

Upstream Shortlog
-----------------

Brad King (2):
      b019deea RegularExpression: Suppress VS 2013 warning C4351
      a5248df0 CTestCustom: Suppress PGI Community Edition compiler license warnings

Paul Smith (1):
      dfd0521e Terminal: Support GNU make's TTY notification environment variable

Todd Martin (2):
      0492cad3 SystemTools: Remove redundant ToWindowsExtendedPath calls
      680ab6d2 FStream: Expose is_open publicly
This commit is contained in:
KWSys Upstream
2019-11-13 09:47:45 -05:00
committed by Brad King
parent fe6725a1f7
commit 78ce959a40
5 changed files with 33 additions and 18 deletions
+4
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"
)
+9 -5
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(); }
+11
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
*/ */
+1 -13
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;
} }
+8
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. */