32 inline bool compare_titles (
const std::string &astr,
const std::string &bstr) {
41 extern char *
lamer_cipher (
const char *keystr,
const char *item);
42 std::string
lamer_cipher (
const std::string &keystr,
const std::string &item);
48 inline int strcasecmp (
const std::string &a,
const char *b) {
51 inline int strcasecmp (
const char *a,
const std::string &b) {
54 inline int strcasecmp (
const std::string &a,
const std::string &b) {
58 inline int strncasecmp (
const std::string &a,
const char *b,
size_t n) {
61 inline int strncasecmp (
const char *a,
const std::string &b,
size_t n) {
64 inline int strncasecmp (
const std::string &a,
const std::string &b,
size_t n) {
68 inline const char *
strcasestr (
const std::string &a,
const char *b) {
71 inline const char *
strcasestr (
const char *a,
const std::string &b) {
74 inline const char *
strcasestr (
const std::string &a,
const std::string &b) {
78 std::transform(str.begin(), str.end(), str.begin(), ::tolower);
85 inline std::string &
ltrim(std::string &s) {
86 s.erase(s.begin(), std::find_if(s.begin(), s.end(), [](
int ch) { return !std::isspace (ch); } ));
93 inline std::string &
rtrim(std::string &s) {
94 s.erase(std::find_if(s.rbegin(), s.rend(), [](
int ch) {return !std::isspace (ch); }).base(), s.end());
101 inline std::string &
trim(std::string &s) {
105 inline std::string
trim (
const std::string &s) {
113 std::vector<std::string>
split_string (
const std::string &
value,
const std::string separator,
bool include_empty_last =
true);
115 std::string
join_strings (
const std::vector<std::string> &list,
const std::string joiner);
117 inline std::string
join_strings (
const std::vector<std::string> &list) {
uint32_t value
Definition: audiooutput.cpp:68
std::string & rtrim(std::string &s)
Trim whitespace from end of a string.
Definition: utility.h:93
std::vector< std::string > split_string(const std::string &value)
Split a string to words.
Definition: utility.cpp:146
int strncasecmp(const std::string &a, const char *b, size_t n)
Definition: utility.h:58
std::string strtolower(std::string str)
Definition: utility.h:77
std::string makeIdentity(std::string s)
Remove whitespace and other desireable characters, and make all lowercase for use as an ID.
Definition: utility.cpp:125
bool compare_person_or_title(const std::string &astr, const std::string &bstr)
Compare an artist's name, which might be a person's name or a band.
Definition: utility.cpp:67
lamerkey_t create_key_from_string(const char *source)
Generate a key from a string.
Definition: utility.cpp:316
lamerkey_t compute_crc(const char *data, lamerkey_t divisor, lamerkey_t remainder=0)
Compute a key from a string using a CRC algorithm.
Definition: utility.cpp:263
int compare_title_order(const std::string &a, const std::string &b)
Compare titles, ignoring 'a', 'an', or 'the'.
Definition: utility.cpp:35
char * lamer_cipher(const char *keystr, const char *item)
Encipher or decipher an item based on a key.
Definition: utility.cpp:328
int strcasecmp(const std::string &a, const char *b)
Definition: utility.h:48
uint32_t lamerkey_t
Definition: utility.h:38
bool compare_titles(const std::string &astr, const std::string &bstr)
Compare titles, ignoring 'a', 'an', or 'the'.
Definition: utility.h:32
std::string & ltrim(std::string &s)
Trim whitespace from beginning of a string.
Definition: utility.h:85
std::string join_strings(const std::vector< std::string > &list, const std::string joiner)
Join strings together.
Definition: utility.cpp:195
std::string & trim(std::string &s)
Trim whitespace from both ends of a string.
Definition: utility.h:101
const char * strcasestr(const std::string &a, const char *b)
Definition: utility.h:68