18#include <zypp-core/base/String.h>
19#include <zypp-core/base/LogTools.h>
21#include <zypp-core/TriBool.h>
37 std::string
form(
const char * format, ... )
46 return safe.asString();
108 return ( (
'a' <=
ch &&
ch <=
'z' )
109 ||(
'A' <=
ch &&
ch <=
'Z' )
110 ||(
'0' <=
ch &&
ch <=
'9' ) );
113 inline int heDecodeCh(
char ch )
115 if (
'0' <= ch && ch <=
'9' )
117 if (
'A' <= ch && ch <=
'F' )
118 return( ch -
'A' + 10 );
119 if (
'a' <= ch && ch <=
'f' )
120 return( ch -
'a' + 10 );
127 static const char *
const hdig =
"0123456789ABCDEF";
179 {
return toLower( std::string(
s) ); }
183 std::string
ret( std::move(
s) );
188 for ( std::string::size_type
i = 0;
i <
ret.length(); ++
i )
202 {
return toUpper( std::string(
s) ); }
206 std::string
ret( std::move(
s) );
211 for ( std::string::size_type
i = 0;
i <
ret.length(); ++
i )
229 std::string
ret( std::move(
s) );
236 std::string::size_type
p =
ret.find_first_not_of(
" \t\n" );
237 if (
p == std::string::npos )
247 std::string::size_type
p =
ret.find_last_not_of(
" \t\n" );
248 if (
p == std::string::npos )
273 std::string::size_type
p =
line.find_first_of(
" \t" );
275 if (
p == std::string::npos ) {
279 }
else if (
p == 0 ) {
306 std::string::size_type
p =
line.find_last_of(
" \t" );
308 if (
p == std::string::npos ) {
312 }
else if (
p ==
line.size()-1 ) {
335 std::string::size_type
pos = 0;
358 std::string::size_type
pos = 0;
374 std::vector<char>
buf;
382 buf.push_back(
'\\' );
387 buf.push_back(
'\\' );
391 return std::string(
buf.begin(),
buf.end() );
401 && ( ::strchr(
special_r.c_str(),
'\\' ) || !::strchr(
str_r.c_str(),
'\\' ) ) )
407 if ( *
s ==
'\\' || ::strchr(
special_r.c_str(), *
s ) )
414 #define RXSPECIALCHARS "\\.*+?^$[()|{"
435 if ( *(
s+1) ) { ++
s;
buf << *
s; }
437 else if ( *
s ==
'?' )
441 else if ( *
s ==
'*' )
445 else if ( *
s ==
'[' )
447 const char *
e =
s+1;
448 if ( *
e ==
'^' || *
e ==
'!' )
452 while ( *
e && *
e !=
']' )
456 ++
s;
buf <<
'[' << (*
s ==
'!' ?
'^' : *
s );
491 std::ostringstream
datas;
511 str.clear( std::ios::eofbit );
Reference counted access to a Tp object calling a custom Dispose function when the last AutoDispose h...
Convenience char* constructible from std::string and char*, it maps (char*)0 to an empty string.
boost::logic::tribool TriBool
3-state boolean logic (true, false and indeterminate).
String related utilities and Regular expression matching.
std::string stripLastWord(std::string &line, const bool rtrim_first)
std::string hexdecode(const C_Str &str_r)
Decode hexencoded XX sequences.
std::string & replaceAll(std::string &str_r, const std::string &from_r, const std::string &to_r)
Replace all occurrences of from_r with to_r in str_r (inplace).
Trim
To define how to trim.
std::string hexencode(const C_Str &str_r)
Encode all characters other than [a-zA-Z0-9] as XX.
std::string gsubFun(const std::string &str_r, const std::string &from_r, function< std::string()> to_r)
bool strToFalse(const C_Str &str)
Return false if str is 0, false, no, off, never.
std::string stripFirstWord(std::string &line, const bool ltrim_first)
std::string getline(std::istream &str, const Trim trim_r)
Return stream content up to (but not returning) the next newline.
TriBool strToTriBool(const C_Str &str)
Parse str into a bool if it's a legal true or false string; else indeterminate.
std::string bEscape(std::string str_r, const C_Str &special_r)
Return str_r with '\'-escaped chars occurring in special_r (and '\').
std::string receiveUpTo(std::istream &str, const char delim_r, bool returnDelim_r)
Return stream content up to the next ocurrence of delim_r or EOF delim_r, if found,...
std::string rtrim(const std::string &s)
std::string strerror(int errno_r)
Return string describing the error_r code.
std::string escape(const C_Str &str_r, const char sep_r)
Escape desired character c using a backslash.
std::string toUpper(const std::string &s)
Return uppercase version of s.
std::string ltrim(const std::string &s)
std::string form(const char *format,...) __attribute__((format(printf
Printf style construction of std::string.
std::string rxEscapeStr(std::string str_r)
Escape plain STRING str_r for use in a regex (not anchored by "^" or "$").
std::string & replaceAllFun(std::string &str_r, const std::string &from_r, const function< std::string()> &to_r)
std::string rxEscapeGlob(std::string str_r)
Escape GLOB str_r for use in a regex (not anchored by "^" or "$").
std::string toLower(const std::string &s)
Return lowercase version of s.
bool strToTrue(const C_Str &str)
Parsing boolean from string.
std::string gsub(const std::string &str_r, const std::string &from_r, const std::string &to_r)
Return a string with all occurrences of from_r replaced with to_r.
std::string trim(const std::string &s, const Trim trim_r)
Easy-to use interface to the ZYPP dependency resolver.
Assert free called for allocated char *.
Convenient building of std::string via std::ostringstream Basically a std::ostringstream autoconverti...
#define for_(IT, BEG, END)
Convenient for-loops using iterator.