utils.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef UTILS_H
  2. #define UTILS_H
  3. #include <fstream>
  4. #include <map>
  5. #include <string>
  6. // http://c-faq.com/lib/randrange.html
  7. int randint(int N);
  8. // http://c-faq.com/lib/randrange.html
  9. // numbers in the range [M, N] could be generated with something like
  10. int randrange(int M, int N);
  11. int random_activate(int w);
  12. /**
  13. * Display a repr of the given string.
  14. *
  15. * This converts most \n\r\v\f\t codes,
  16. * defaults to \xHH (hex value).
  17. */
  18. char *repr(const char *data);
  19. const char *logrepr(const char *input);
  20. const char *strnstr(const char *source, int len, const char *needle);
  21. int rstrnstr(const char *buffer, int len, const char *find);
  22. int string_insert(char *buffer, int max_length, int pos, const char *insert);
  23. void pcopy(char *pstring, char *str);
  24. std::string &find_new_text(std::ifstream &infile,
  25. std::streampos &last_position);
  26. void string_toupper(std::string &str);
  27. void string_trim(std::string &value);
  28. std::map<std::string, std::string> read_configfile(std::string filename);
  29. extern std::map<std::string, std::string> CONFIG;
  30. int harry_level(void);
  31. #include <iconv.h>
  32. class IConv {
  33. iconv_t ic;
  34. public:
  35. IConv(const char *to, const char *from);
  36. ~IConv();
  37. int convert(char *input, char *output, size_t outbufsize);
  38. };
  39. // IConv converter("UTF-8", "CP437");
  40. #endif