libzypp 17.37.10

zypp::str Namespace Reference

String related utilities and Regular expression matching. More...

## Classes
class | Format
| Convenient building of std::string with boost::format. More...
class | regex
| Regular expression. More...
struct | SafeBuf
| Assert `free` called for allocated char *. More...
class | smatch
| Regular expression match result. More...
class | Str
| Convenient building of std::string via std::ostringstream Basically a std::ostringstream autoconvertible to std::string for building string arguments. More...

## Typedefs
using | regex_error = Exception

## Functions
std::string | form (const char *format,...) __attribute__((format(printf
| Printf style construction of std::string.
bool | regex_match (const std::string &s, smatch &matches, const regex &regex)
| \relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX
bool | regex_match (const char *s, const regex &regex) ZYPP_API
| \relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX
bool | regex_match (const std::string &s, const regex &regex)
| \relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX
std::string | regex_substitute (const std::string &s, const regex &regex, const std::string &replacement, bool global=true) ZYPP_API
| Replaces the matched regex with the string passed in replacement.
std::string | strerror (int errno_r) ZYPP_API
| Return string describing the error_r code.
bool | validateUtf8 (std::string_view str)
std::string | codepointToUtf8String (uint32_t unichar)
std::string | hexCodepointToUtf8String (std::string_view hexChar)
const std::string & | asString (const std::string &t)
| Global asString() that works with std::string too.
std::string && | asString (std::string &&t)
std::string | asString (const char *t)
std::string | asString (char *t)
template<class Tp>
std::string | asString (const Tp &t)
template<class Tp>
std::string | asString (const intrusive_ptr< Tp > &p)
template<class Tp>
std::string | asString (const weak_ptr< Tp > &p)
template<>
std::string | asString (const bool &t)
bool | regex_match (const char *s, smatch &matches, const regex &regex) ZYPP_API
| Regular expression matching.
std::ostream & | operator<< (std::ostream &str, const regex &obj)
| Stream output.
std::ostream & | operator<< (std::ostream &str, const Str &obj)
| Stream output.
std::ostream & | operator<< (std::ostream &str, const Format &obj)
| Stream output.
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 "
bool | strToTrue (const C_Str &str) ZYPP_API
| Parsing boolean from string.
bool | strToFalse (const C_Str &str) ZYPP_API
| Return `false` if str is 0, false, no, off, never.
TriBool | strToTriBool (const C_Str &str) ZYPP_API
| Parse `str` into a bool if it's a legal `true` or `false` string; else `indeterminate`.
std::string | gsub (const std::string &str_r, const std::string &from_r, const std::string &to_r) ZYPP_API
| 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) ZYPP_API
| 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, const function< std::string()> &to_r)
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 TInt>
std::string | binstring (TInt val_r)
| String representation of number as bit-string with leading '0's.
template<typename TInt>
TInt | strtonum (const C_Str &str)
| Parsing numbers from string.
template<>
short | strtonum (const C_Str &str)
template<>
int | strtonum (const C_Str &str)
template<>
long | strtonum (const C_Str &str)
template<>
long long | strtonum (const C_Str &str)
template<>
unsigned short | strtonum (const C_Str &str)
template<>
unsigned | strtonum (const C_Str &str)
template<>
unsigned long | strtonum (const C_Str &str)
template<>
unsigned long long | strtonum (const C_Str &str)
template<typename TInt>
TInt | strtonum (const C_Str &str, TInt &i)
| String to integer type detemined 2nd function arg i.
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.
std::string | gapify (std::string inp_r, std::string::size_type gap_r=1, char gapchar=' ')
| Enhance readability: insert gaps at regular distance.
Hexencode.
Encode all characters other than [a-zA-Z0-9] as XX. Todo unsecape() 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) ZYPP_API
| Return lowercase version of s.
std::string | toLower (std::string &&s)
std::string | toUpper (const std::string &s) ZYPP_API
| Return uppercase version of s.
std::string | toUpper (std::string &&s)
std::string | toLower (const char *s)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
std::string | toUpper (const char *s)
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Locate substring.
std::string | stripFirstWord (std::string &line, const bool ltrim_first)
std::string | stripLastWord (std::string &line, const bool rtrim_first)
std::string | getline (std::istream &str, const Trim trim_r) ZYPP_API
| Return stream content up to (but not returning) the next newline.
std::string | getline (std::istream &str, bool trim=false) ZYPP_API
| 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.
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.
Escape.
std::string | escape (const C_Str &str_r, const char c=' ') ZYPP_API
| Escape desired character c using a backslash.
std::string | bEscape (std::string str_r, const C_Str &special_r) ZYPP_API
| Return str_r with '\'-escaped chars occurring in special_r (and '\').
std::string | rxEscapeStr (std::string str_r) ZYPP_API
| Escape plain STRING str_r for use in a regex (not anchored by "^" or "$").
std::string | rxEscapeGlob (std::string str_r) ZYPP_API
| Escape GLOB str_r for use in a regex (not anchored by "^" or "$").
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.
Optional second argument sets the minimal string width (' ' padded). Negative values will cause the number to be left adjusted within the string. Default width is 0. numstring(42) -> "42" numstring(42, 4) -> " 42" numstring(42,-4) -> "42 " zypp::str::numstring std::string numstring(char n, int w=0) Definition String.h:290
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)
Split.
template<class TOutputIterator>
unsigned | split (const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t", const Trim trim_r=NO_TRIM)
| Split line_r into words.
template<class TOutputIterator>
unsigned | split (const C_Str &line_r, TOutputIterator result_r, const Trim trim_r)
template<class TOutputIterator>
unsigned | splitEscaped (const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t", bool withEmpty=false)
| Split line_r into words with respect to escape delimeters.
template<class TOutputIterator>
unsigned | splitFields (const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=":")
| Split line_r into fields.
template<class TOutputIterator>
unsigned | splitFieldsEscaped (const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=":")
| Split line_r into fields handling also escaped separators.
Join.
template<class TIterator>
std::string | join (TIterator begin, TIterator end, const C_Str &sep_r=" ")
| Join strings using separator sep_r (defaults to BLANK).
template<class TContainer>
std::string | join (const TContainer &cont_r, const C_Str &sep_r=" ")
| Join strings using separator sep_r (defaults to BLANK).
template<class TIterator>
std::string | joinEscaped (TIterator begin, TIterator end, const char sep_r=' ')
| Join strings using separator sep_r, quoting or escaping the values.
Indent.
std::ostream & | printIndented (std::ostream &str, const std::string &text_r, const std::string &indent_r=" ", unsigned maxWitdh_r=0)
| Indent by string [" "] optionally wrap.
std::ostream & | printIndented (std::ostream &str, const std::string &text_r, unsigned indent_r, char indentch_r=' ', unsigned maxWitdh_r=0)
std::ostream & | printIndented (std::ostream &str, const std::string &text_r, unsigned indent_r, unsigned maxWitdh_r, char indentch_r=' ')
std::ostream & | autoPrefix (std::ostream &str, const std::string &text_r, const function< std::string(const char *, const char *)> &fnc_r)
| Prefix lines by string computed by function taking line begin/end [std::string(const char*, const char*)] Prints nothing for an empty string.
std::ostream & | autoPrefix0 (std::ostream &str, const std::string &text_r, function< std::string()> fnc_r)
Case insensitive comparison.
int | compareCI (const C_Str &lhs, const C_Str &rhs)
String prefix/suffix handling.
bool | hasPrefix (const C_Str &str_r, const C_Str &prefix_r)
| Return whether str_r has prefix prefix_r.
bool | hasPrefixCI (const C_Str &str_r, const C_Str &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.
std::string | stripPrefixCI (const C_Str &str_r, const C_Str &prefix_r)
bool | hasSuffix (const C_Str &str_r, const C_Str &suffix_r)
| Return whether str_r has suffix suffix_r.
bool | hasSuffixCI (const C_Str &str_r, const C_Str &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.
std::string | stripSuffixCI (const C_Str &str_r, const C_Str &suffix_r)
std::string::size_type | commonPrefix (const C_Str &lhs, const C_Str &rhs)
| Return size of the common prefix of lhs and rhs.
std::string::size_type | commonPrefixCI (const C_Str &lhs, const C_Str &rhs)
bool | startsWith (const C_Str &str_r, const C_Str &prefix_r)
| alias for hasPrefix
bool | startsWithCI (const C_Str &str_r, const C_Str &prefix_r)
bool | endsWith (const C_Str &str_r, const C_Str &prefix_r)
| alias for hasSuffix
bool | endsWithCI (const C_Str &str_r, const C_Str &prefix_r)

## Variables
std::string | ZYPP_API

## Trimming whitepace.
Todo optimize l/r trim.
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 | trim (std::string &&s, const Trim trim_r)
std::string | ltrim (const std::string &s)
std::string | ltrim (std::string &&s)
std::string | rtrim (const std::string &s)
std::string | rtrim (std::string &&s)

## Detailed Description

String related utilities and Regular expression matching.

See also
  Regular expression matching

## Typedef Documentation

## ◆ regex_error

using zypp::str::regex_error = Exception

Definition at line 54 of file Regex.h.

## Enumeration Type Documentation

## ◆ Trim

enum zypp::str::Trim

To define how to trim.

Enumerator
NO_TRIM |
L_TRIM |
R_TRIM |
TRIM |

Definition at line 567 of file String.h.

## Function Documentation

## ◆ form()

std::string zypp::str::form | ( | const char * | format,
|  |  | ... )

Printf style construction of std::string.

Definition at line 39 of file String.cc.

## ◆ regex_match() [1/3]

bool zypp::str::regex_match | ( | const std::string & | s,
|  | smatch & | matches,
|  | const regex & | regex )
| inline

\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX

\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX

Definition at line 70 of file Regex.h.

## ◆ regex_match() [2/3]

bool zypp::str::regex_match | ( | const char * | s,
|  | const regex & | regex )

\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX

\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX

Definition at line 83 of file Regex.cc.

## ◆ regex_match() [3/3]

bool zypp::str::regex_match | ( | const std::string & | s,
|  | const regex & | regex )
| inline

\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX

\relates regex \ingroup ZYPP_STR_REGEX \relates regex \ingroup ZYPP_STR_REGEX

Definition at line 77 of file Regex.h.

## ◆ regex_substitute()

std::string zypp::str::regex_substitute | ( | const std::string & | s,
|  | const regex & | regex,
|  | const std::string & | replacement,
|  | bool | global = true )

Replaces the matched regex with the string passed in replacement.

If global is set the search continues after the first match

Note
  Using backreferences in the replacement string is NOT supported.

Definition at line 120 of file Regex.cc.

## ◆ strerror()

std::string zypp::str::strerror | ( | int | errno_r | ) |

Return string describing the error_r code.

Like strerror, but the numerical value is included in the string as well.

Definition at line 56 of file String.cc.

## ◆ strToTrue()

bool zypp::str::strToTrue | ( | const C_Str & | str | ) |

Parsing boolean from string.

Return `true` if str is 1, true, yes, on, always (or a nonzero number).

Definition at line 66 of file String.cc.

## ◆ strToFalse()

bool zypp::str::strToFalse | ( | const C_Str & | str | ) |

Return `false` if str is 0, false, no, off, never.

Definition at line 84 of file String.cc.

## ◆ strToTriBool()

TriBool zypp::str::strToTriBool | ( | const C_Str & | str | ) |

Parse `str` into a bool if it's a legal `true` or `false` string; else `indeterminate`.

Definition at line 96 of file String.cc.

## ◆ hexencode()

std::string zypp::str::hexencode | ( | const C_Str & | str_r | ) |

Encode all characters other than [a-zA-Z0-9] as XX.

This includes the % character itself, which becomes %25.

Definition at line 127 of file String.cc.

## ◆ hexdecode()

std::string zypp::str::hexdecode | ( | const C_Str & | str_r | ) |

Decode hexencoded XX sequences.

Definition at line 148 of file String.cc.

## ◆ toLower() [1/3]

std::string zypp::str::toLower | ( | const std::string & | s | ) |

Return lowercase version of s.

Todo
  improve

Definition at line 180 of file String.cc.

## ◆ toLower() [2/3]

std::string zypp::str::toLower | ( | std::string && | s | ) |

Definition at line 183 of file String.cc.

## ◆ toUpper() [1/3]

std::string zypp::str::toUpper | ( | const std::string & | s | ) |

Return uppercase version of s.

Todo
  improve

Definition at line 203 of file String.cc.

## ◆ toUpper() [2/3]

std::string zypp::str::toUpper | ( | std::string && | s | ) |

Definition at line 206 of file String.cc.

## ◆ trim() [1/2]

std::string zypp::str::trim | ( | const std::string & | s,
|  | const Trim | trim_r )

Definition at line 226 of file String.cc.

## ◆ trim() [2/2]

std::string zypp::str::trim | ( | std::string && | s,
|  | const Trim | trim_r )

Definition at line 229 of file String.cc.

## ◆ stripFirstWord()

std::string zypp::str::stripFirstWord | ( | std::string & | line,
|  | const bool | ltrim_first )

Definition at line 266 of file String.cc.

## ◆ stripLastWord()

std::string zypp::str::stripLastWord | ( | std::string & | line,
|  | const bool | rtrim_first )

Definition at line 299 of file String.cc.

## ◆ gsub()

std::string zypp::str::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`.

Definition at line 327 of file String.cc.

## ◆ replaceAll()

std::string & zypp::str::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).

A reference to `str_r` is also returned for convenience.

Definition at line 333 of file String.cc.

## ◆ gsubFun()

std::string zypp::str::gsubFun | ( | const std::string & | str_r,
|  | const std::string & | from_r,
|  | function< std::string()> | to_r )

Definition at line 350 of file String.cc.

## ◆ replaceAllFun()

std::string & zypp::str::replaceAllFun | ( | std::string & | str_r,
|  | const std::string & | from_r,
|  | const function< std::string()> & | to_r )

Definition at line 356 of file String.cc.

## ◆ escape()

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.

Definition at line 374 of file String.cc.

## ◆ bEscape()

std::string zypp::str::bEscape | ( | std::string | str_r,
|  | const C_Str & | special_r )

Return str_r with '\'-escaped chars occurring in special_r (and '\').

Definition at line 397 of file String.cc.

## ◆ rxEscapeStr()

std::string zypp::str::rxEscapeStr | ( | std::string | str_r | ) |

Escape plain STRING str_r for use in a regex (not anchored by "^" or "$").

Definition at line 418 of file String.cc.

## ◆ rxEscapeGlob()

std::string zypp::str::rxEscapeGlob | ( | std::string | str_r | ) |

Escape GLOB str_r for use in a regex (not anchored by "^" or "$").

Definition at line 423 of file String.cc.

## ◆ getline() [1/2]

std::string zypp::str::getline | ( | std::istream & | str,
|  | const Trim | trim_r )

Return stream content up to (but not returning) the next newline.

See also
  receiveUpTo

Definition at line 481 of file String.cc.

## ◆ getline() [2/2]

std::string zypp::str::getline | ( | std::istream & | str,
|  | bool | trim = false )

Return stream content up to (but not returning) the next newline.

See also
  receiveUpTo

Definition at line 486 of file String.cc.

## ◆ receiveUpTo()

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.

Definition at line 491 of file String.cc.

## ◆ validateUtf8()

bool zypp::str::validateUtf8 | ( | std::string_view | str | ) |

Definition at line 520 of file String.cc.

## ◆ codepointToUtf8String()

std::string zypp::str::codepointToUtf8String | ( | uint32_t | unichar | ) |

Definition at line 525 of file String.cc.

## ◆ hexCodepointToUtf8String()

std::string zypp::str::hexCodepointToUtf8String | ( | std::string_view | hexChar | ) |

Definition at line 535 of file String.cc.

## ◆ asString() [1/18]

const std::string & zypp::str::asString | ( | const std::string & | t | ) |
| inline

Global asString() that works with std::string too.

Definition at line 140 of file String.h.

## ◆ asString() [2/18]

std::string && zypp::str::asString | ( | std::string && | t | ) |
| inline

Definition at line 143 of file String.h.

## ◆ asString() [3/18]

std::string zypp::str::asString | ( | const char * | t | ) |
| inline

Definition at line 146 of file String.h.

## ◆ asString() [4/18]

std::string zypp::str::asString | ( | char * | t | ) |
| inline

Definition at line 149 of file String.h.

## ◆ asString() [5/18]

template<class Tp>

std::string zypp::str::asString | ( | const Tp & | t | ) |
| inline

Definition at line 153 of file String.h.

## ◆ asString() [6/18]

template<class Tp>

std::string zypp::str::asString | ( | const intrusive_ptr< Tp > & | p | ) |
| inline

Definition at line 157 of file String.h.

## ◆ asString() [7/18]

template<class Tp>

std::string zypp::str::asString | ( | const weak_ptr< Tp > & | p | ) |
| inline

Definition at line 161 of file String.h.

## ◆ asString() [8/18]

template<>

std::string zypp::str::asString | ( | const bool & | t | ) |
| inline

Definition at line 165 of file String.h.

## ◆ numstring() [1/10]

std::string zypp::str::numstring | ( | char | n,
|  | int | w = 0 )
| inline

Definition at line 290 of file String.h.

## ◆ numstring() [2/10]

std::string zypp::str::numstring | ( | unsigned char | n,
|  | int | w = 0 )
| inline

Definition at line 291 of file String.h.

## ◆ numstring() [3/10]

std::string zypp::str::numstring | ( | short | n,
|  | int | w = 0 )
| inline

Definition at line 292 of file String.h.

## ◆ numstring() [4/10]

std::string zypp::str::numstring | ( | unsigned short | n,
|  | int | w = 0 )
| inline

Definition at line 293 of file String.h.

## ◆ numstring() [5/10]

std::string zypp::str::numstring | ( | int | n,
|  | int | w = 0 )
| inline

Definition at line 294 of file String.h.

## ◆ numstring() [6/10]

std::string zypp::str::numstring | ( | unsigned | n,
|  | int | w = 0 )
| inline

Definition at line 295 of file String.h.

## ◆ numstring() [7/10]

std::string zypp::str::numstring | ( | long | n,
|  | int | w = 0 )
| inline

Definition at line 296 of file String.h.

## ◆ numstring() [8/10]

std::string zypp::str::numstring | ( | unsigned long | n,
|  | int | w = 0 )
| inline

Definition at line 297 of file String.h.

## ◆ numstring() [9/10]

std::string zypp::str::numstring | ( | long long | n,
|  | int | w = 0 )
| inline

Definition at line 298 of file String.h.

## ◆ numstring() [10/10]

std::string zypp::str::numstring | ( | unsigned long long | n,
|  | int | w = 0 )
| inline

Definition at line 299 of file String.h.

## ◆ asString() [9/18]

template<>

std::string zypp::str::asString | ( | const char & | t | ) |
| inline

Definition at line 301 of file String.h.

## ◆ asString() [10/18]

template<>

std::string zypp::str::asString | ( | const unsigned char & | t | ) |
| inline

Definition at line 302 of file String.h.

## ◆ asString() [11/18]

template<>

std::string zypp::str::asString | ( | const short & | t | ) |
| inline

Definition at line 303 of file String.h.

## ◆ asString() [12/18]

template<>

std::string zypp::str::asString | ( | const unsigned short & | t | ) |
| inline

Definition at line 304 of file String.h.

## ◆ asString() [13/18]

template<>

std::string zypp::str::asString | ( | const int & | t | ) |
| inline

Definition at line 305 of file String.h.

## ◆ asString() [14/18]

template<>

std::string zypp::str::asString | ( | const unsigned & | t | ) |
| inline

Definition at line 306 of file String.h.

## ◆ asString() [15/18]

template<>

std::string zypp::str::asString | ( | const long & | t | ) |
| inline

Definition at line 307 of file String.h.

## ◆ asString() [16/18]

template<>

std::string zypp::str::asString | ( | const unsigned long & | t | ) |
| inline

Definition at line 308 of file String.h.

## ◆ asString() [17/18]

template<>

std::string zypp::str::asString | ( | const long long & | t | ) |
| inline

Definition at line 309 of file String.h.

## ◆ asString() [18/18]

template<>

std::string zypp::str::asString | ( | const unsigned long long & | t | ) |
| inline

Definition at line 310 of file String.h.

## ◆ hexstring() [1/10]

std::string zypp::str::hexstring | ( | char | n,
|  | int | w = 4 )
| inline

Definition at line 325 of file String.h.

## ◆ hexstring() [2/10]

std::string zypp::str::hexstring | ( | unsigned char | n,
|  | int | w = 4 )
| inline

Definition at line 326 of file String.h.

## ◆ hexstring() [3/10]

std::string zypp::str::hexstring | ( | short | n,
|  | int | w = 10 )
| inline

Definition at line 327 of file String.h.

## ◆ hexstring() [4/10]

std::string zypp::str::hexstring | ( | unsigned short | n,
|  | int | w = 10 )
| inline

Definition at line 328 of file String.h.

## ◆ hexstring() [5/10]

std::string zypp::str::hexstring | ( | int | n,
|  | int | w = 10 )
| inline

Definition at line 329 of file String.h.

## ◆ hexstring() [6/10]

std::string zypp::str::hexstring | ( | unsigned | n,
|  | int | w = 10 )
| inline

Definition at line 330 of file String.h.

## ◆ hexstring() [7/10]

std::string zypp::str::hexstring | ( | long | n,
|  | int | w = 10 )
| inline

Definition at line 331 of file String.h.

## ◆ hexstring() [8/10]

std::string zypp::str::hexstring | ( | unsigned long | n,
|  | int | w = 10 )
| inline

Definition at line 332 of file String.h.

## ◆ hexstring() [9/10]

std::string zypp::str::hexstring | ( | long long | n,
|  | int | w = 0 )
| inline

Definition at line 333 of file String.h.

## ◆ hexstring() [10/10]

std::string zypp::str::hexstring | ( | unsigned long long | n,
|  | int | w = 0 )
| inline

Definition at line 334 of file String.h.

## ◆ octstring() [1/10]

std::string zypp::str::octstring | ( | char | n,
|  | int | w = 4 )
| inline

Definition at line 419 of file String.h.

## ◆ octstring() [2/10]

std::string zypp::str::octstring | ( | unsigned char | n,
|  | int | w = 4 )
| inline

Definition at line 420 of file String.h.

## ◆ octstring() [3/10]

std::string zypp::str::octstring | ( | short | n,
|  | int | w = 5 )
| inline

Definition at line 421 of file String.h.

## ◆ octstring() [4/10]

std::string zypp::str::octstring | ( | unsigned short | n,
|  | int | w = 5 )
| inline

Definition at line 422 of file String.h.

## ◆ octstring() [5/10]

std::string zypp::str::octstring | ( | int | n,
|  | int | w = 5 )
| inline

Definition at line 423 of file String.h.

## ◆ octstring() [6/10]

std::string zypp::str::octstring | ( | unsigned | n,
|  | int | w = 5 )
| inline

Definition at line 424 of file String.h.

## ◆ octstring() [7/10]

std::string zypp::str::octstring | ( | long | n,
|  | int | w = 5 )
| inline

Definition at line 425 of file String.h.

## ◆ octstring() [8/10]

std::string zypp::str::octstring | ( | unsigned long | n,
|  | int | w = 5 )
| inline

Definition at line 426 of file String.h.

## ◆ octstring() [9/10]

std::string zypp::str::octstring | ( | long long | n,
|  | int | w = 0 )
| inline

Definition at line 427 of file String.h.

## ◆ octstring() [10/10]

std::string zypp::str::octstring | ( | unsigned long long | n,
|  | int | w = 0 )
| inline

Definition at line 428 of file String.h.

## ◆ binstring()

template<typename TInt>

std::string zypp::str::binstring | ( | TInt | val_r | ) |

String representation of number as bit-string with leading '0's.

Definition at line 435 of file String.h.

## ◆ strtonum() [1/10]

template<typename TInt>

TInt zypp::str::strtonum | ( | const C_Str & | str | ) |

Parsing numbers from string.

String to integer type determined by template arg.

Note
  Only specializations are defined.
  time_t t = strtonum<time_t>( "42" );
  zypp::str::strtonum
  TInt strtonum(const C_Str &str)
  Parsing numbers from string.

## ◆ strtonum() [2/10]

template<>

short zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 459 of file String.h.

## ◆ strtonum() [3/10]

template<>

int zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 461 of file String.h.

## ◆ strtonum() [4/10]

template<>

long zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 463 of file String.h.

## ◆ strtonum() [5/10]

template<>

long long zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 465 of file String.h.

## ◆ strtonum() [6/10]

template<>

unsigned short zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 468 of file String.h.

## ◆ strtonum() [7/10]

template<>

unsigned zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 470 of file String.h.

## ◆ strtonum() [8/10]

template<>

unsigned long zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 472 of file String.h.

## ◆ strtonum() [9/10]

template<>

unsigned long long zypp::str::strtonum | ( | const C_Str & | str | ) |
| inline

Definition at line 474 of file String.h.

## ◆ strtonum() [10/10]

template<typename TInt>

TInt zypp::str::strtonum | ( | const C_Str & | str,
|  | TInt & | i )
| inline

String to integer type detemined 2nd function arg i.

time_t t; strtonum( "42", t );

Definition at line 482 of file String.h.

## ◆ strToBool()

bool zypp::str::strToBool | ( | const C_Str & | str,
|  | bool | default_r )
| inline

Parse `str` into a bool depending on the default value.

If the `default` is true, look for a legal `false` string. If the `default` is false, look for a legal `true` string.

Definition at line 500 of file String.h.

## ◆ strToBoolNodefault()

bool zypp::str::strToBoolNodefault | ( | const C_Str & | str,
|  | bool & | return_r )
| inline

Parse `str` into a bool if it's a legal `true` or `false` string.

If `str` is not a recognized `true` or `false` string, return_r is left unchanged.

Definition at line 507 of file String.h.

## ◆ gapify()

std::string zypp::str::gapify | ( | std::string | inp_r,
|  | std::string::size_type | gap_r = 1,
|  | char | gapchar = ' ' )
| inline

Enhance readability: insert gaps at regular distance.

// no gaps
Key Fingerprint: 22C07BA534178CD02EFE22AAB88B2FD43DBDC284
// gapify 8
Key Fingerprint: 22C07BA5 34178CD0 2EFE22AA B88B2FD4 3DBDC284
// gapify 4
Key Fingerprint: 22C0 7BA5 3417 8CD0 2EFE 22AA B88B 2FD4 3DBD C284
// gapify 4, '-'
Key Fingerprint: 22C0-7BA5-3417-8CD0-2EFE-22AA-B88B-2FD4-3DBD-C284

Definition at line 550 of file String.h.

## ◆ ltrim() [1/2]

std::string zypp::str::ltrim | ( | const std::string & | s | ) |
| inline

Definition at line 577 of file String.h.

## ◆ ltrim() [2/2]

std::string zypp::str::ltrim | ( | std::string && | s | ) |
| inline

Definition at line 579 of file String.h.

## ◆ rtrim() [1/2]

std::string zypp::str::rtrim | ( | const std::string & | s | ) |
| inline

Definition at line 582 of file String.h.

## ◆ rtrim() [2/2]

std::string zypp::str::rtrim | ( | std::string && | s | ) |
| inline

Definition at line 584 of file String.h.

## ◆ split() [1/2]

template<class TOutputIterator>

unsigned zypp::str::split | ( | const C_Str & | line_r,
|  | TOutputIterator | result_r,
|  | const C_Str & | sepchars_r = " \t",
|  | const Trim | trim_r = NO_TRIM )

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) )
zypp::str::split
unsigned split(const C_Str &line_r, TOutputIterator result_r, const C_Str &sepchars_r=" \t", const Trim trim_r=NO_TRIM)
Split line_r into words.
Definition String.h:602

Definition at line 602 of file String.h.

## ◆ split() [2/2]

template<class TOutputIterator>

unsigned zypp::str::split | ( | const C_Str & | line_r,
|  | TOutputIterator | result_r,
|  | const Trim | trim_r )

Definition at line 625 of file String.h.

## ◆ splitEscaped()

template<class TOutputIterator>

unsigned zypp::str::splitEscaped | ( | const C_Str & | line_r,
|  | TOutputIterator | 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 `.`

- A non-quoted backslash () preserves the literal value of the next character.
- Enclosing characters in single quotes preserves the literal value of each character within the quotes. A single quote may not occur between single quotes, even when preceded by a backslash.
- Enclosing characters in double quotes preserves the literal value of all characters within the quotes, with the exception of `.` The backslash retains its special meaning only when followed by `" or \c \. The words are passed to OutputIterator \a result_r. \see \ref splitEscaped @code std::vector<std::string> words; str::splitEscaped( "some` line", std::back_inserter(words) ) \endcode @code 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")

Parameters

  line_r | The string to parse.
  result_r |
  sepchars_r | String of separator characters.
  withEmpty | Whether to include empty fields between separators in the result.

Definition at line 665 of file String.h.

## ◆ splitFields()

template<class TOutputIterator>

unsigned zypp::str::splitFields | ( | const C_Str & | line_r,
|  | TOutputIterator | result_r,
|  | const C_Str & | sepchars_r = ":" )

Split line_r into fields.

Any single character in sepchars_r is treated as a field separator unless -escaped. 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||
a
unsigned short a
Definition mediablocklist.cc:0
std::vector<std::string> words;
str::split( "some line", std::back_inserter(words) )

Definition at line 795 of file String.h.

## ◆ splitFieldsEscaped()

template<class TOutputIterator>

unsigned zypp::str::splitFieldsEscaped | ( | const C_Str & | line_r,
|  | TOutputIterator | result_r,
|  | const C_Str & | sepchars_r = ":" )

Split line_r into fields handling also escaped separators.

See also
  splitFields()
  splitEscaped()

Definition at line 834 of file String.h.

## ◆ join() [1/2]

template<class TIterator>

std::string zypp::str::join | ( | TIterator | begin,
|  | TIterator | end,
|  | const C_Str & | sep_r = " " )

Join strings using separator sep_r (defaults to BLANK).

Definition at line 846 of file String.h.

## ◆ join() [2/2]

template<class TContainer>

std::string zypp::str::join | ( | const TContainer & | cont_r,
|  | const C_Str & | sep_r = " " )

Join strings using separator sep_r (defaults to BLANK).

Definition at line 860 of file String.h.

## ◆ joinEscaped()

template<class TIterator>

std::string zypp::str::joinEscaped | ( | TIterator | begin,
|  | TIterator | 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.

Definition at line 868 of file String.h.

## ◆ printIndented() [1/3]

std::ostream & zypp::str::printIndented | ( | std::ostream & | str,
|  | const std::string & | text_r,
|  | const std::string & | indent_r = " ",
|  | unsigned | maxWitdh_r = 0 )
| inline

Indent by string [" "] optionally wrap.

Prints nothing for an empty string. Asserts a trainling '
' on the last line. Optionally wrap lines at ' ' at a given length.

Definition at line 915 of file String.h.

## ◆ printIndented() [2/3]

std::ostream & zypp::str::printIndented | ( | std::ostream & | str,
|  | const std::string & | text_r,
|  | unsigned | indent_r,
|  | char | indentch_r = ' ',
|  | unsigned | maxWitdh_r = 0 )
| inline

Definition at line 948 of file String.h.

## ◆ printIndented() [3/3]

std::ostream & zypp::str::printIndented | ( | std::ostream & | str,
|  | const std::string & | text_r,
|  | unsigned | indent_r,
|  | unsigned | maxWitdh_r,
|  | char | indentch_r = ' ' )
| inline

Definition at line 951 of file String.h.

## ◆ autoPrefix()

std::ostream & zypp::str::autoPrefix | ( | std::ostream & | str,
|  | const std::string & | text_r,
|  | const function< std::string(const char *, const char *)> & | fnc_r )
| inline

Prefix lines by string computed by function taking line begin/end [std::string(const char*, const char*)] Prints nothing for an empty string.

Asserts a trainling '
' on the last line.

Definition at line 957 of file String.h.

## ◆ autoPrefix0()

std::ostream & zypp::str::autoPrefix0 | ( | std::ostream & | str,
|  | const std::string & | text_r,
|  | function< std::string()> | fnc_r )
| inline

Definition at line 972 of file String.h.

## ◆ appendEscaped()

void zypp::str::appendEscaped | ( | std::string & | str_r,
|  | const C_Str & | next_r,
|  | const char | sep_r = ' ' )
| inline

Escape next_r and append it to str_r using separator sep_r.

Definition at line 992 of file String.h.

## ◆ toLower() [3/3]

std::string zypp::str::toLower | ( | const char * | s | ) |
| inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 1038 of file String.h.

## ◆ toUpper() [3/3]

std::string zypp::str::toUpper | ( | const char * | s | ) |
| inline

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Definition at line 1047 of file String.h.

## ◆ compareCI()

int zypp::str::compareCI | ( | const C_Str & | lhs,
|  | const C_Str & | rhs )
| inline

Definition at line 1054 of file String.h.

## ◆ contains()

bool zypp::str::contains | ( | const C_Str & | str_r,
|  | const C_Str & | val_r )
| inline

Locate substring case sensitive.

Definition at line 1061 of file String.h.

## ◆ containsCI()

bool zypp::str::containsCI | ( | const C_Str & | str_r,
|  | const C_Str & | val_r )
| inline

Locate substring case insensitive.

Definition at line 1064 of file String.h.

## ◆ hasPrefix()

bool zypp::str::hasPrefix | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

Return whether str_r has prefix prefix_r.

Definition at line 1097 of file String.h.

## ◆ hasPrefixCI()

bool zypp::str::hasPrefixCI | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

Definition at line 1100 of file String.h.

## ◆ stripPrefix()

std::string zypp::str::stripPrefix | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

Strip a prefix_r from str_r and return the resulting string.

Definition at line 1104 of file String.h.

## ◆ stripPrefixCI()

std::string zypp::str::stripPrefixCI | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

Definition at line 1107 of file String.h.

## ◆ hasSuffix()

bool zypp::str::hasSuffix | ( | const C_Str & | str_r,
|  | const C_Str & | suffix_r )
| inline

Return whether str_r has suffix suffix_r.

Definition at line 1111 of file String.h.

## ◆ hasSuffixCI()

bool zypp::str::hasSuffixCI | ( | const C_Str & | str_r,
|  | const C_Str & | suffix_r )
| inline

Definition at line 1114 of file String.h.

## ◆ stripSuffix()

std::string zypp::str::stripSuffix | ( | const C_Str & | str_r,
|  | const C_Str & | suffix_r )
| inline

Strip a suffix_r from str_r and return the resulting string.

Definition at line 1118 of file String.h.

## ◆ stripSuffixCI()

std::string zypp::str::stripSuffixCI | ( | const C_Str & | str_r,
|  | const C_Str & | suffix_r )
| inline

Definition at line 1125 of file String.h.

## ◆ commonPrefix()

std::string::size_type zypp::str::commonPrefix | ( | const C_Str & | lhs,
|  | const C_Str & | rhs )
| inline

Return size of the common prefix of lhs and rhs.

Definition at line 1133 of file String.h.

## ◆ commonPrefixCI()

std::string::size_type zypp::str::commonPrefixCI | ( | const C_Str & | lhs,
|  | const C_Str & | rhs )
| inline

Definition at line 1143 of file String.h.

## ◆ startsWith()

bool zypp::str::startsWith | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

alias for hasPrefix

Definition at line 1155 of file String.h.

## ◆ startsWithCI()

bool zypp::str::startsWithCI | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

Definition at line 1158 of file String.h.

## ◆ endsWith()

bool zypp::str::endsWith | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

alias for hasSuffix

Definition at line 1162 of file String.h.

## ◆ endsWithCI()

bool zypp::str::endsWithCI | ( | const C_Str & | str_r,
|  | const C_Str & | prefix_r )
| inline

Definition at line 1165 of file String.h.

## Variable Documentation

## ◆ ZYPP_API

std::string zypp::str::ZYPP_API
| related

Definition at line 171 of file String.h.