/*
* Copyright 2005, 2006, 2007 Florian Schmitz
*
* This file is part of CSSTidy.
*
* CSSTidy is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* CSSTidy is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see .
*/
#ifndef HEADER_CSS_MISC
#define HEADER_CSS_MISC
// Checks if a charcter is escaped
bool escaped(const string &istring, int pos);
// Returns a char of a string at pos but checks the string-length before
char s_at(const string &istring, int pos);
// Splits a string at e
vector explode(const string e, string s, const bool check = false);
// Implodes a string at e
std::string implode(const string e, const vector s);
// Builds a compact value string, inserting spaces only where necessary
std::string build_value(const vector subvalues);
// Replaces with in
string str_replace(const string find, const string replace, string str);
// Replaces all values of with in
string str_replace(const vector& find, const string replace, string str);
// Checks if a string exists in a string-array
bool in_char_arr(const char* haystack, const char needle);
bool in_str_array(const string& haystack, const char needle);
bool in_str_array(const vector& haystack, const string needle);
// Replaces certain chars with their entities
string htmlspecialchars(string istring, int quotes = 0);
// Rounds a float value
float round(const float &number, const int num_digits);
// Replacement for max (so that I don't have to include unnecessary things)
int max(const int i1, const int i2);
/* isspace() and isdigit() do not work correctly with UTF-8 strings */
bool ctype_space(const char c);
bool ctype_digit(const char c);
bool ctype_xdigit(char c);
bool ctype_alpha(char c);
/* Unserialise string arrays */
vector unserialise_sa(const string istring);
/* Serialise a string */
string serialise_sa(const string istring);
#endif // HEADER_CSS_MISC