libzypp
10.5.0
|
String related utilities and Regular expression matching. More...
Classes | |
class | regex |
Regular expression. More... | |
class | smatch |
Regular expression match result. More... | |
struct | SafeBuf |
Assert free called for allocated char * . More... | |
struct | Str |
Convenient building of std::string via std::ostream::operator<<. More... | |
Typedefs | |
typedef Exception | regex_error |
Functions | |
std::string | form (const char *format,...) __attribute__((format(printf |
Printf style construction of std::string. | |
std::string | strerror (int errno_r) |
Return string describing the error_r code. | |
std::string | stripFirstWord (std::string &line, const bool ltrim_first) |
std::string | stripLastWord (std::string &line, const bool rtrim_first) |
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 & | 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). | |
std::string | gsubFun (const std::string &str_r, const std::string &from_r, function< std::string()> to_r) |
std::string & | replaceAllFun (std::string &str_r, const std::string &from_r, function< std::string()> to_r) |
std::string | getline (std::istream &str, const Trim trim_r) |
Return stream content up to (but not returning) the next newline. | |
std::string | getline (std::istream &str, bool trim=false) |
Return stream content up to (but not returning) the next newline. | |
std::string | receiveUpTo (std::istream &str, const char delim_r, bool returnDelim_r=false) |
Return stream content up to the next ocurrence of delim_r or EOF delim_r , if found, is always read from the stream. | |
std::string | asString (const std::string &t) |
Global asString() that works with std::string too. | |
std::string | asString (const char *t) |
template<class _T > | |
std::string | asString (const _T &t) |
template<class _T > | |
std::string | asString (const intrusive_ptr< _T > &p) |
template<class _T > | |
std::string | asString (const weak_ptr< _T > &p) |
template<> | |
std::string | asString (const bool &t) |
bool | strToTrue (const C_Str &str) |
Parsing boolean from string. | |
bool | strToFalse (const C_Str &str) |
Return false if str is 0, false, no, off . | |
bool | strToBool (const C_Str &str, bool default_r) |
Parse str into a bool depending on the default value. | |
bool | strToBoolNodefault (const C_Str &str, bool &return_r) |
Parse str into a bool if it's a legal true or false string. | |
Hexencode. | |
Encode all characters other than [a-zA-Z0-9] as XX.
This includes the % character itself, which becomes %25. | |
std::string | hexencode (const C_Str &str_r) |
Encode all characters other than [a-zA-Z0-9] as XX. | |
std::string | hexdecode (const C_Str &str_r) |
Decode hexencoded XX sequences. | |
Case conversion. | |
std::string | toLower (const std::string &s) |
Return lowercase version of s. | |
std::string | toUpper (const std::string &s) |
Return uppercase version of s. | |
std::string | toLower (const char *s) |
std::string | toUpper (const char *s) |
Join. | |
std::string | escape (const C_Str &str_r, const char c= ' ') |
Escape desired character c using a backslash. | |
template<class _Iterator > | |
std::string | join (_Iterator begin, _Iterator end, const C_Str &sep_r=" ") |
Join strings using separator sep_r (defaults to BLANK). | |
template<class _Container > | |
std::string | join (const _Container &cont_r, const C_Str &sep_r=" ") |
Join strings using separator sep_r (defaults to BLANK). | |
template<class _Iterator > | |
std::string | joinEscaped (_Iterator begin, _Iterator end, const char sep_r= ' ') |
Join strings using separator sep_r, quoting or escaping the values. | |
void | appendEscaped (std::string &str_r, const C_Str &next_r, const char sep_r= ' ') |
Escape next_r and append it to str_r using separator sep_r. | |
String representation of number. | |
std::string | numstring (char n, int w=0) |
std::string | numstring (unsigned char n, int w=0) |
std::string | numstring (short n, int w=0) |
std::string | numstring (unsigned short n, int w=0) |
std::string | numstring (int n, int w=0) |
std::string | numstring (unsigned n, int w=0) |
std::string | numstring (long n, int w=0) |
std::string | numstring (unsigned long n, int w=0) |
std::string | numstring (long long n, int w=0) |
std::string | numstring (unsigned long long n, int w=0) |
template<> | |
std::string | asString (const char &t) |
template<> | |
std::string | asString (const unsigned char &t) |
template<> | |
std::string | asString (const short &t) |
template<> | |
std::string | asString (const unsigned short &t) |
template<> | |
std::string | asString (const int &t) |
template<> | |
std::string | asString (const unsigned &t) |
template<> | |
std::string | asString (const long &t) |
template<> | |
std::string | asString (const unsigned long &t) |
template<> | |
std::string | asString (const long long &t) |
template<> | |
std::string | asString (const unsigned long long &t) |
String representation of number as hex value with leading '0x'. | |
Optional second argument sets the minimal string width (0 padded). Negative values will cause the number to be left adjusted within the string. Default width is 10 (4 for char). hexstring(42) -> "0x0000002a" hexstring(42, 4) -> "0x2a" hexstring(42,-4) -> "0x2a" | |
std::string | hexstring (char n, int w=4) |
std::string | hexstring (unsigned char n, int w=4) |
std::string | hexstring (short n, int w=10) |
std::string | hexstring (unsigned short n, int w=10) |
std::string | hexstring (int n, int w=10) |
std::string | hexstring (unsigned n, int w=10) |
std::string | hexstring (long n, int w=10) |
std::string | hexstring (unsigned long n, int w=10) |
std::string | hexstring (long long n, int w=0) |
std::string | hexstring (unsigned long long n, int w=0) |
String representation of number as octal value with leading '0'. | |
Optional second argument sets the minimal string width (0 padded). Negative values will cause the number to be left adjusted within the string. Default width is 5 (4 for char). octstring(42) -> "00052" octstring(42, 4) -> "0052" octstring(42,-4) -> "052 " | |
std::string | octstring (char n, int w=4) |
std::string | octstring (unsigned char n, int w=4) |
std::string | octstring (short n, int w=5) |
std::string | octstring (unsigned short n, int w=5) |
std::string | octstring (int n, int w=5) |
std::string | octstring (unsigned n, int w=5) |
std::string | octstring (long n, int w=5) |
std::string | octstring (unsigned long n, int w=5) |
std::string | octstring (long long n, int w=0) |
std::string | octstring (unsigned long long n, int w=0) |
template<typename _It > | |
_It | strtonum (const C_Str &str) |
Parsing numbers from string. | |
template<> | |
short | strtonum (const C_Str &str) |
Parsing numbers from string. | |
template<typename _It > | |
_It | strtonum (const C_Str &str, _It &i) |
String to integer type detemined 2nd function arg i. | |
Split. | |
template<class _OutputIterator > | |
unsigned | split (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=" \t") |
Split line_r into words. | |
template<class _OutputIterator > | |
unsigned | splitEscaped (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=" \t", bool withEmpty=false) |
Split line_r into words with respect to escape delimeters. | |
template<class _OutputIterator > | |
unsigned | splitFields (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=":") |
Split line_r into fields. | |
template<class _OutputIterator > | |
unsigned | splitFieldsEscaped (const C_Str &line_r, _OutputIterator result_r, const C_Str &sepchars_r=":") |
Split line_r into fields handling also escaped separators. | |
Case insensitive comparison. | |
int | compareCI (const C_Str &lhs, const C_Str &rhs) |
Locate substring. | |
bool | contains (const C_Str &str_r, const C_Str &val_r) |
Locate substring case sensitive. | |
bool | containsCI (const C_Str &str_r, const C_Str &val_r) |
Locate substring case insensitive. | |
String prefix/suffix handling. | |
bool | hasPrefix (const C_Str &str_r, const C_Str &prefix_r) |
Return whether str_r has prefix prefix_r. | |
std::string | stripPrefix (const C_Str &str_r, const C_Str &prefix_r) |
Strip a prefix_r from str_r and return the resulting string. | |
bool | hasSuffix (const C_Str &str_r, const C_Str &suffix_r) |
Return whether str_r has suffix suffix_r. | |
std::string | stripSuffix (const C_Str &str_r, const C_Str &suffix_r) |
Strip a suffix_r from str_r and return the resulting string. | |
bool | startsWith (const C_Str &str_r, const C_Str &prefix_r) |
alias for hasPrefix | |
bool | endsWith (const C_Str &str_r, const C_Str &prefix_r) |
alias for hasSuffix | |
Trimming whitepace. | |
| |
enum | Trim { NO_TRIM = 0x00, L_TRIM = 0x01, R_TRIM = 0x02, TRIM = (L_TRIM|R_TRIM) } |
To define how to trim. More... | |
std::string | trim (const std::string &s, const Trim trim_r) |
std::string | ltrim (const std::string &s) |
std::string | rtrim (const std::string &s) |
String related utilities and Regular expression matching.
typedef Exception zypp::str::regex_error |
enum zypp::str::Trim |
std::string zypp::str::form | ( | const char * | format, |
... | |||
) |
std::string std::string zypp::str::strerror | ( | int | errno_r | ) |
bool zypp::str::strToTrue | ( | const C_Str & | str | ) |
bool zypp::str::strToFalse | ( | const C_Str & | str | ) |
std::string zypp::str::hexencode | ( | const C_Str & | str_r | ) |
std::string zypp::str::hexdecode | ( | const C_Str & | str_r | ) |
std::string zypp::str::toLower | ( | const std::string & | s | ) |
std::string zypp::str::toUpper | ( | const std::string & | s | ) |
std::string zypp::str::trim | ( | const std::string & | s, |
const Trim | trim_r | ||
) |
std::string zypp::str::stripFirstWord | ( | std::string & | line, |
const bool | ltrim_first | ||
) |
std::string zypp::str::stripLastWord | ( | std::string & | line, |
const bool | rtrim_first | ||
) |
std::string zypp::str::gsub | ( | const std::string & | str_r, |
const std::string & | from_r, | ||
const std::string & | to_r | ||
) |
std::string & zypp::str::replaceAll | ( | std::string & | str_r, |
const std::string & | from_r, | ||
const std::string & | to_r | ||
) |
std::string zypp::str::gsubFun | ( | const std::string & | str_r, |
const std::string & | from_r, | ||
function< std::string()> | to_r | ||
) |
std::string & zypp::str::replaceAllFun | ( | std::string & | str_r, |
const std::string & | from_r, | ||
function< std::string()> | to_r | ||
) |
std::string zypp::str::escape | ( | const C_Str & | str_r, |
const char | c = ' ' |
||
) |
Escape desired character c using a backslash.
For use when printing c separated values, and where joinEscaped() is too heavy.
std::string zypp::str::getline | ( | std::istream & | str, |
const Trim | trim_r | ||
) |
Return stream content up to (but not returning) the next newline.
std::string zypp::str::getline | ( | std::istream & | str, |
bool | trim = false |
||
) |
Return stream content up to (but not returning) the next newline.
std::string zypp::str::receiveUpTo | ( | std::istream & | str, |
const char | delim_r, | ||
bool | returnDelim_r = false |
||
) |
Return stream content up to the next ocurrence of delim_r
or EOF delim_r
, if found, is always read from the stream.
Whether it is also returned in the string depends on returnDelim_r
. If the stream status is good
, delim_r
was found in the stream. If we reached EOF while looking for delim_r
, eof
is set; and also fail
, if we did not read any data before.
std::string zypp::str::asString | ( | const std::string & | t | ) | [inline] |
Global asString() that works with std::string too.
std::string zypp::str::asString | ( | const _T & | t | ) | [inline] |
std::string zypp::str::asString | ( | const intrusive_ptr< _T > & | p | ) | [inline] |
std::string zypp::str::asString | ( | const weak_ptr< _T > & | p | ) | [inline] |
std::string zypp::str::asString | ( | const bool & | t | ) | [inline] |
std::string zypp::str::numstring | ( | char | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | unsigned char | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | short | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | unsigned short | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | int | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | unsigned | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | unsigned long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | long long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::numstring | ( | unsigned long long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::asString | ( | const char & | t | ) | [inline] |
std::string zypp::str::asString | ( | const unsigned char & | t | ) | [inline] |
std::string zypp::str::asString | ( | const short & | t | ) | [inline] |
std::string zypp::str::asString | ( | const unsigned short & | t | ) | [inline] |
std::string zypp::str::asString | ( | const int & | t | ) | [inline] |
std::string zypp::str::asString | ( | const unsigned & | t | ) | [inline] |
std::string zypp::str::asString | ( | const long & | t | ) | [inline] |
std::string zypp::str::asString | ( | const unsigned long & | t | ) | [inline] |
std::string zypp::str::asString | ( | const long long & | t | ) | [inline] |
std::string zypp::str::asString | ( | const unsigned long long & | t | ) | [inline] |
std::string zypp::str::hexstring | ( | char | n, |
int | w = 4 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | unsigned char | n, |
int | w = 4 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | short | n, |
int | w = 10 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | unsigned short | n, |
int | w = 10 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | int | n, |
int | w = 10 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | unsigned | n, |
int | w = 10 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | long | n, |
int | w = 10 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | unsigned long | n, |
int | w = 10 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | long long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::hexstring | ( | unsigned long long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::octstring | ( | char | n, |
int | w = 4 |
||
) | [inline] |
std::string zypp::str::octstring | ( | unsigned char | n, |
int | w = 4 |
||
) | [inline] |
std::string zypp::str::octstring | ( | short | n, |
int | w = 5 |
||
) | [inline] |
std::string zypp::str::octstring | ( | unsigned short | n, |
int | w = 5 |
||
) | [inline] |
std::string zypp::str::octstring | ( | int | n, |
int | w = 5 |
||
) | [inline] |
std::string zypp::str::octstring | ( | unsigned | n, |
int | w = 5 |
||
) | [inline] |
std::string zypp::str::octstring | ( | long | n, |
int | w = 5 |
||
) | [inline] |
std::string zypp::str::octstring | ( | unsigned long | n, |
int | w = 5 |
||
) | [inline] |
std::string zypp::str::octstring | ( | long long | n, |
int | w = 0 |
||
) | [inline] |
std::string zypp::str::octstring | ( | unsigned long long | n, |
int | w = 0 |
||
) | [inline] |
_It zypp::str::strtonum | ( | const C_Str & | str | ) | [inline] |
unsigned long long zypp::str::strtonum | ( | const C_Str & | str | ) | [inline] |
_It zypp::str::strtonum | ( | const C_Str & | str, |
_It & | i | ||
) | [inline] |
bool zypp::str::strToBool | ( | const C_Str & | str, |
bool | default_r | ||
) | [inline] |
bool zypp::str::strToBoolNodefault | ( | const C_Str & | str, |
bool & | return_r | ||
) | [inline] |
unsigned zypp::str::split | ( | const C_Str & | line_r, |
_OutputIterator | result_r, | ||
const C_Str & | sepchars_r = " \t" |
||
) |
Split line_r into words.
Any sequence of characters in sepchars_r is treated as delimiter. The words are passed to OutputIterator result_r.
std::vector<std::string> words; str::split( "some line", std::back_inserter(words) )
unsigned zypp::str::splitEscaped | ( | const C_Str & | line_r, |
_OutputIterator | result_r, | ||
const C_Str & | sepchars_r = " \t" , |
||
bool | withEmpty = false |
||
) |
Split line_r into words with respect to escape delimeters.
Any sequence of characters in sepchars_r is treated as delimiter if not inside "" or "" or escaped by \, but not \. The words are passed to OutputIterator result_r.
std::vector<std::string> words; str::splitEscaped( "some line", std::back_inserter(words) )
example splitted strings normal line -> 2 elements ( "normal", "line" ) escaped\ line -> 1 element( "escaped line" ) "quoted line" -> 1 element same as above 'quoted line' -> 1 element same as above "escaped quote\'" -> 1 element ( "escaped quote'" ) \param line_r The string to parse. \param result_r \param sepchars_r String of separator characters. \param withEmpty Whether to include empty fields between separators in the result.
unsigned zypp::str::splitFields | ( | const C_Str & | line_r, |
_OutputIterator | result_r, | ||
const C_Str & | sepchars_r = ":" |
||
) |
Split line_r into fields.
Any single character in sepchars_r is treated as a field separator. The words are passed to OutputIterator result_r.
"" -> words 0 ":" -> words 2 ||| "a" -> words 1 |a| ":a" -> words 2 ||a| "a:" -> words 2 |a|| ":a:" -> words 3 ||a||
std::vector<std::string> words; str::split( "some line", std::back_inserter(words) )
unsigned zypp::str::splitFieldsEscaped | ( | const C_Str & | line_r, |
_OutputIterator | result_r, | ||
const C_Str & | sepchars_r = ":" |
||
) |
Split line_r into fields handling also escaped separators.
std::string zypp::str::join | ( | _Iterator | begin, |
_Iterator | end, | ||
const C_Str & | sep_r = " " |
||
) |
std::string zypp::str::join | ( | const _Container & | cont_r, |
const C_Str & | sep_r = " " |
||
) |
std::string zypp::str::joinEscaped | ( | _Iterator | begin, |
_Iterator | end, | ||
const char | sep_r = ' ' |
||
) |
Join strings using separator sep_r, quoting or escaping the values.
Separator defaults to BLANK. Use splitEscaped to restore the values.
void zypp::str::appendEscaped | ( | std::string & | str_r, |
const C_Str & | next_r, | ||
const char | sep_r = ' ' |
||
) | [inline] |
std::string zypp::str::toLower | ( | const char * | s | ) | [inline] |
std::string zypp::str::toUpper | ( | const char * | s | ) | [inline] |
int zypp::str::compareCI | ( | const C_Str & | lhs, |
const C_Str & | rhs | ||
) | [inline] |
bool zypp::str::contains | ( | const C_Str & | str_r, |
const C_Str & | val_r | ||
) | [inline] |
bool zypp::str::containsCI | ( | const C_Str & | str_r, |
const C_Str & | val_r | ||
) | [inline] |
std::string zypp::str::ltrim | ( | const std::string & | s | ) | [inline] |
std::string zypp::str::rtrim | ( | const std::string & | s | ) | [inline] |
bool zypp::str::hasPrefix | ( | const C_Str & | str_r, |
const C_Str & | prefix_r | ||
) | [inline] |
std::string zypp::str::stripPrefix | ( | const C_Str & | str_r, |
const C_Str & | prefix_r | ||
) | [inline] |
bool zypp::str::hasSuffix | ( | const C_Str & | str_r, |
const C_Str & | suffix_r | ||
) | [inline] |
std::string zypp::str::stripSuffix | ( | const C_Str & | str_r, |
const C_Str & | suffix_r | ||
) | [inline] |
bool zypp::str::startsWith | ( | const C_Str & | str_r, |
const C_Str & | prefix_r | ||
) | [inline] |