Merge topic 'update-kwsys'
2a943d9
Merge branch 'upstream-kwsys' into update-kwsysf788d9a
KWSys 2013-12-19 (88165c5e)
This commit is contained in:
commit
6f29fdd7cd
|
@ -68,7 +68,7 @@ size_t kwsysEncoding_wcstombs(char* dest, const wchar_t* str, size_t n)
|
||||||
char* kwsysEncoding_DupToNarrow(const wchar_t* str)
|
char* kwsysEncoding_DupToNarrow(const wchar_t* str)
|
||||||
{
|
{
|
||||||
char* ret = NULL;
|
char* ret = NULL;
|
||||||
size_t length = kwsysEncoding_wcstombs(0, str, 0);
|
size_t length = kwsysEncoding_wcstombs(0, str, 0) + 1;
|
||||||
if(length > 0)
|
if(length > 0)
|
||||||
{
|
{
|
||||||
ret = malloc(length);
|
ret = malloc(length);
|
||||||
|
|
|
@ -81,7 +81,7 @@ namespace @KWSYS_NAMESPACE@
|
||||||
|
|
||||||
internal_buffer_type *rdbuf() const
|
internal_buffer_type *rdbuf() const
|
||||||
{
|
{
|
||||||
return buf_.get();
|
return buf_;
|
||||||
}
|
}
|
||||||
|
|
||||||
~basic_ifstream()
|
~basic_ifstream()
|
||||||
|
|
|
@ -2449,6 +2449,7 @@ static void kwsysProcessKill(pid_t process_id)
|
||||||
if(f)
|
if(f)
|
||||||
{
|
{
|
||||||
size_t nread = fread(buffer, 1, KWSYSPE_PIPE_BUFFER_SIZE, f);
|
size_t nread = fread(buffer, 1, KWSYSPE_PIPE_BUFFER_SIZE, f);
|
||||||
|
fclose(f);
|
||||||
buffer[nread] = '\0';
|
buffer[nread] = '\0';
|
||||||
if(nread > 0)
|
if(nread > 0)
|
||||||
{
|
{
|
||||||
|
@ -2463,7 +2464,6 @@ static void kwsysProcessKill(pid_t process_id)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fclose(f);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3162,8 +3162,17 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
|
||||||
kwsys_stl::string cores =
|
kwsys_stl::string cores =
|
||||||
this->ExtractValueFromCpuInfoFile(buffer,"cpu cores");
|
this->ExtractValueFromCpuInfoFile(buffer,"cpu cores");
|
||||||
int numberOfCoresPerCPU=atoi(cores.c_str());
|
int numberOfCoresPerCPU=atoi(cores.c_str());
|
||||||
|
if (maxId > 0)
|
||||||
|
{
|
||||||
this->NumberOfPhysicalCPU=static_cast<unsigned int>(
|
this->NumberOfPhysicalCPU=static_cast<unsigned int>(
|
||||||
numberOfCoresPerCPU*(maxId+1));
|
numberOfCoresPerCPU*(maxId+1));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Linux Sparc: get cpu count
|
||||||
|
this->NumberOfPhysicalCPU=
|
||||||
|
atoi(this->ExtractValueFromCpuInfoFile(buffer,"ncpus active").c_str());
|
||||||
|
}
|
||||||
|
|
||||||
#else // __CYGWIN__
|
#else // __CYGWIN__
|
||||||
// does not have "physical id" entries, neither "cpu cores"
|
// does not have "physical id" entries, neither "cpu cores"
|
||||||
|
@ -3185,7 +3194,19 @@ bool SystemInformationImplementation::RetreiveInformationFromCpuInfoFile()
|
||||||
|
|
||||||
// CPU speed (checking only the first processor)
|
// CPU speed (checking only the first processor)
|
||||||
kwsys_stl::string CPUSpeed = this->ExtractValueFromCpuInfoFile(buffer,"cpu MHz");
|
kwsys_stl::string CPUSpeed = this->ExtractValueFromCpuInfoFile(buffer,"cpu MHz");
|
||||||
|
if(!CPUSpeed.empty())
|
||||||
|
{
|
||||||
this->CPUSpeedInMHz = static_cast<float>(atof(CPUSpeed.c_str()));
|
this->CPUSpeedInMHz = static_cast<float>(atof(CPUSpeed.c_str()));
|
||||||
|
}
|
||||||
|
#ifdef __linux
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Linux Sparc: CPU speed is in Hz and encoded in hexadecimal
|
||||||
|
CPUSpeed = this->ExtractValueFromCpuInfoFile(buffer,"Cpu0ClkTck");
|
||||||
|
this->CPUSpeedInMHz = static_cast<float>(
|
||||||
|
strtoull(CPUSpeed.c_str(),0,16))/1000000.0f;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
// Chip family
|
// Chip family
|
||||||
kwsys_stl::string familyStr =
|
kwsys_stl::string familyStr =
|
||||||
|
@ -4991,7 +5012,12 @@ bool SystemInformationImplementation::QueryHPUXProcessor()
|
||||||
case CPU_PA_RISC2_0:
|
case CPU_PA_RISC2_0:
|
||||||
this->ChipID.Vendor = "Hewlett-Packard";
|
this->ChipID.Vendor = "Hewlett-Packard";
|
||||||
this->ChipID.Family = 0x200;
|
this->ChipID.Family = 0x200;
|
||||||
|
# ifdef CPU_HP_INTEL_EM_1_0
|
||||||
|
case CPU_HP_INTEL_EM_1_0:
|
||||||
|
# endif
|
||||||
|
# ifdef CPU_IA64_ARCHREV_0
|
||||||
case CPU_IA64_ARCHREV_0:
|
case CPU_IA64_ARCHREV_0:
|
||||||
|
# endif
|
||||||
this->ChipID.Vendor = "GenuineIntel";
|
this->ChipID.Vendor = "GenuineIntel";
|
||||||
this->Features.HasIA64 = true;
|
this->Features.HasIA64 = true;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -2115,10 +2115,10 @@ bool SystemTools::CopyFileAlways(const char* source, const char* destination)
|
||||||
SystemTools::RemoveFile(destination);
|
SystemTools::RemoveFile(destination);
|
||||||
|
|
||||||
#if defined(_WIN32) || defined(__CYGWIN__)
|
#if defined(_WIN32) || defined(__CYGWIN__)
|
||||||
kwsys_ios::ofstream fout(destination,
|
kwsys::ofstream fout(destination,
|
||||||
kwsys_ios::ios::binary | kwsys_ios::ios::out | kwsys_ios::ios::trunc);
|
kwsys_ios::ios::binary | kwsys_ios::ios::out | kwsys_ios::ios::trunc);
|
||||||
#else
|
#else
|
||||||
kwsys_ios::ofstream fout(destination,
|
kwsys::ofstream fout(destination,
|
||||||
kwsys_ios::ios::out | kwsys_ios::ios::trunc);
|
kwsys_ios::ios::out | kwsys_ios::ios::trunc);
|
||||||
#endif
|
#endif
|
||||||
if(!fout)
|
if(!fout)
|
||||||
|
|
|
@ -16,14 +16,18 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include KWSYS_HEADER(Encoding.hxx)
|
#include KWSYS_HEADER(Encoding.hxx)
|
||||||
|
#include KWSYS_HEADER(Encoding.h)
|
||||||
#include KWSYS_HEADER(ios/iostream)
|
#include KWSYS_HEADER(ios/iostream)
|
||||||
|
|
||||||
#include <locale.h>
|
#include <locale.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
// Work-around CMake dependency scanning limitation. This must
|
// Work-around CMake dependency scanning limitation. This must
|
||||||
// duplicate the above list of headers.
|
// duplicate the above list of headers.
|
||||||
#if 0
|
#if 0
|
||||||
# include "Encoding.hxx.in"
|
# include "Encoding.hxx.in"
|
||||||
|
# include "Encoding.h.in"
|
||||||
# include "kwsys_ios_iostream.h.in"
|
# include "kwsys_ios_iostream.h.in"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -68,11 +72,16 @@ static int testHelloWorldEncoding()
|
||||||
std::cout << str << std::endl;
|
std::cout << str << std::endl;
|
||||||
std::wstring wstr = kwsys::Encoding::ToWide(str);
|
std::wstring wstr = kwsys::Encoding::ToWide(str);
|
||||||
std::string str2 = kwsys::Encoding::ToNarrow(wstr);
|
std::string str2 = kwsys::Encoding::ToNarrow(wstr);
|
||||||
if(!wstr.empty() && str != str2)
|
wchar_t* c_wstr = kwsysEncoding_DupToWide(str.c_str());
|
||||||
|
char* c_str2 = kwsysEncoding_DupToNarrow(c_wstr);
|
||||||
|
if(!wstr.empty() && (str != str2 || strcmp(c_str2, str.c_str())))
|
||||||
{
|
{
|
||||||
std::cout << "converted string was different: " << str2 << std::endl;
|
std::cout << "converted string was different: " << str2 << std::endl;
|
||||||
|
std::cout << "converted string was different: " << c_str2 << std::endl;
|
||||||
ret++;
|
ret++;
|
||||||
}
|
}
|
||||||
|
free(c_wstr);
|
||||||
|
free(c_str2);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue