Cycles: Make all #include statements relative to cycles source directory
[blender.git] / intern / cycles / util / util_string.h
index fa1671fd1ee6771ceac46cc749f370a3f8f8ea3a..e2c105db9c148837bafe247ed03bbef1328149b0 100644 (file)
@@ -21,7 +21,7 @@
 #include <string>
 #include <sstream>
 
-#include "util_vector.h"
+#include "util/util_vector.h"
 
 CCL_NAMESPACE_BEGIN
 
@@ -39,9 +39,36 @@ using std::istringstream;
 string string_printf(const char *format, ...) PRINTF_ATTRIBUTE;
 
 bool string_iequals(const string& a, const string& b);
-void string_split(vector<string>& tokens, const string& str, const string& separators = "\t ");
+void string_split(vector<string>& tokens,
+                  const string& str,
+                  const string& separators = "\t ",
+                  bool skip_empty_tokens = true);
+void string_replace(string& haystack, const string& needle, const string& other);
+bool string_startswith(const string& s, const char *start);
 bool string_endswith(const string& s, const char *end);
 string string_strip(const string& s);
+string string_remove_trademark(const string& s);
+string string_from_bool(const bool var);
+
+/* Wide char strings are only used on Windows to deal with non-ascii
+ * characters in file names and such. No reason to use such strings
+ * for something else at this moment.
+ *
+ * Please note that strings are expected to be in UTF-8 codepage, and
+ * if ANSI is needed then explicit conversion required.
+ *
+ */
+#ifdef _WIN32
+using std::wstring;
+wstring string_to_wstring(const string& path);
+string string_from_wstring(const wstring& path);
+string string_to_ansi(const string& str);
+#endif
+
+/* Make a string from a size in bytes in human readable form */
+string string_human_readable_size(size_t size);
+/* Make a string from a unitless quantity in human readable form */
+string string_human_readable_number(size_t num);
 
 CCL_NAMESPACE_END