#ifndef SASS_UTF8_STRING_H #define SASS_UTF8_STRING_H #include #include "utf8.h" #include "memory.hpp" namespace Sass { namespace UTF_8 { // naming conventions: // offset: raw byte offset (0 based) // position: code point offset (0 based) // index: code point offset (1 based or negative) // function that will count the number of code points (utf-8 characters) from the beginning to the given end size_t code_point_count(const sass::string& str, size_t start, size_t end); size_t code_point_count(const sass::string& str); // function that will return the byte offset of a code point in a size_t offset_at_position(const sass::string& str, size_t position); // function that returns number of bytes in a character in a string size_t code_point_size_at_offset(const sass::string& str, size_t offset); // function that will return a normalized index, given a crazy one size_t normalize_index(int index, size_t len); #ifdef _WIN32 // functions to handle unicode paths on windows sass::string convert_from_utf16(const std::wstring& wstr); std::wstring convert_to_utf16(const sass::string& str); #endif } } #endif