Import Geant4 10.2.0 source tree
This commit is contained in:
@@ -9,8 +9,7 @@
|
||||
|
||||
namespace tools {
|
||||
|
||||
inline bool vsprintf(std::string& a_string,
|
||||
int a_length,const char* a_format,va_list a_args){
|
||||
inline bool vsprintf(std::string& a_string,int a_length,const char* a_format,va_list a_args){
|
||||
a_string.clear();
|
||||
if(a_length<0) return false;
|
||||
if(!a_format) return false;
|
||||
@@ -32,8 +31,7 @@ inline bool vsprintf(std::string& a_string,
|
||||
}
|
||||
|
||||
|
||||
inline bool sprintf(std::string& a_string,
|
||||
int a_length,const char* a_format,...){
|
||||
inline bool sprintf(std::string& a_string,int a_length,const char* a_format,...){
|
||||
a_string.clear();
|
||||
if(a_length<0) return false;
|
||||
if(!a_format) return false;
|
||||
@@ -57,6 +55,47 @@ inline bool sprintf(std::string& a_string,
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool print2sv(std::string& a_string,int a_length,const char* a_format,va_list a_args){
|
||||
if(a_length<0) {a_string.clear();return false;}
|
||||
if(!a_format) {a_string.clear();return false;}
|
||||
a_string.assign(a_length,' '); //data = a_length+1
|
||||
char* s = const_cast<char*>(a_string.c_str());
|
||||
//s[a_length] shoulg be '\0'.
|
||||
int n = vsnpf(s,a_length+1,a_format,a_args);
|
||||
if(n>a_length) { //a_string is compromised.
|
||||
a_string.clear(); //we cross fingers.
|
||||
return false;
|
||||
}
|
||||
if(s[a_length]!='\0') { //a_string is compromised.
|
||||
a_string.clear(); //we cross fingers.
|
||||
return false;
|
||||
}
|
||||
a_string.resize(n);
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool print2s(std::string& a_string,int a_length,const char* a_format,...){
|
||||
if(a_length<0) {a_string.clear();return false;}
|
||||
if(!a_format) {a_string.clear();return false;}
|
||||
a_string.assign(a_length,' '); //data = a_length+1
|
||||
char* s = const_cast<char*>(a_string.c_str());
|
||||
//s[a_length] shoulg be '\0'.
|
||||
va_list args;
|
||||
va_start(args,a_format);
|
||||
int n = vsnpf(s,a_length+1,a_format,args);
|
||||
va_end(args);
|
||||
if(n>a_length) { //a_string is compromised.
|
||||
a_string.clear(); //we cross fingers.
|
||||
return false;
|
||||
}
|
||||
if(s[a_length]!='\0') { //a_string is compromised.
|
||||
a_string.clear(); //we cross fingers.
|
||||
return false;
|
||||
}
|
||||
a_string.resize(n);
|
||||
return true;
|
||||
}
|
||||
|
||||
template <class MATRIX> //for example : MATRIX = mat<symbol,4>
|
||||
inline void set_matrix(MATRIX& a_matrix,const std::string& a_fmt) {
|
||||
unsigned int DR = a_matrix.rows();
|
||||
|
||||
Reference in New Issue
Block a user