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

View File

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

View File

@@ -66,6 +66,13 @@ private:
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
*/
@@ -76,6 +83,10 @@ inline RegularExpressionMatch::RegularExpressionMatch()
{
}
#ifdef _MSC_VER
# pragma warning(pop)
#endif
/**
* \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,
const std::string& destination)
{
// Open files
#if defined(_WIN32)
kwsys::ifstream fin(
Encoding::ToNarrow(Encoding::ToWindowsExtendedPath(source)).c_str(),
std::ios::in | std::ios::binary);
#else
// Open files
kwsys::ifstream fin(source.c_str(), std::ios::in | std::ios::binary);
#endif
if (!fin) {
return false;
}
@@ -2344,14 +2338,8 @@ static bool CopyFileContentBlockwise(const std::string& source,
// that do not allow file removal can be modified.
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(),
std::ios::out | std::ios::trunc | std::ios::binary);
#endif
if (!fout) {
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
seem to claim the TERM is xterm even though they do not support
VT100 escapes. */