libzypp 17.31.23
String.cc File Reference
#include <cstdio>
#include <cstdarg>
#include <iostream>
#include <zypp-core/base/String.h>
#include <zypp-core/base/LogTools.h>
#include <zypp-core/TriBool.h>
Include dependency graph for String.cc:

Go to the source code of this file.

Namespaces

namespace  zypp
 Easy-to use interface to the ZYPP dependency resolver.
 
namespace  zypp::str
 String related utilities and Regular expression matching.
 

Macros

#define RXSPECIALCHARS   "\\.*+?^$[()|{"
 

Functions

std::string zypp::str::form (const char *format,...) __attribute__((format(printf
 Printf style construction of std::string.
 
std::string zypp::str::strerror (int errno_r)
 Return string describing the error_r code.
 
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 zypp::str::strToTrue (const C_Str &str)
 Parsing boolean from string.
 
bool zypp::str::strToFalse (const C_Str &str)
 Return false if str is 0, false, no, off, never.
 
TriBool zypp::str::strToTriBool (const C_Str &str)
 Parse str into a bool if it's a legal true or false string; else indeterminate.
 
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.
 
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).
 
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)
 
Hexencode.

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

Todo:
unsecape()

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

std::string zypp::str::hexencode (const C_Str &str_r)
 Encode all characters other than [a-zA-Z0-9] as XX.
 
std::string zypp::str::hexdecode (const C_Str &str_r)
 Decode hexencoded XX sequences.
 
Case conversion.
std::string zypp::str::toLower (const std::string &s)
 Return lowercase version of s.
 
std::string zypp::str::toLower (std::string &&s)
 
std::string zypp::str::toUpper (const std::string &s)
 Return uppercase version of s.
 
std::string zypp::str::toUpper (std::string &&s)
 
Trimming whitepace.
Todo:
optimize l/r trim.
std::string zypp::str::trim (const std::string &s, const Trim trim_r)
 
std::string zypp::str::trim (std::string &&s, const Trim trim_r)
 
Locate substring.
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::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.
 
Escape.
std::string zypp::str::escape (const C_Str &str_r, const char c=' ')
 Escape desired character c using a backslash.
 
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 '\').
 
std::string zypp::str::rxEscapeStr (std::string str_r)
 Escape plain STRING str_r for use in a regex (not anchored by "^" or "$").
 
std::string zypp::str::rxEscapeGlob (std::string str_r)
 Escape GLOB str_r for use in a regex (not anchored by "^" or "$").
 

Macro Definition Documentation

◆ RXSPECIALCHARS

#define RXSPECIALCHARS   "\\.*+?^$[()|{"

Definition at line 413 of file String.cc.