/* * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * Copyright 2011-2017 Danny Robson */ #include "string.hpp" #include #if 0 #include #include // HACK: cxx#xxx, codecvt is deprecated, but we don't have a good solution right now. // Ignoring the warning is the best past forward in the short term. #pragma GCC diagnostic push #pragma GCC diagnostic ignored "-Wdeprecated-declarations" /////////////////////////////////////////////////////////////////////////////// std::string cruft::to_utf8 (const wchar_t *src) { using convert_t = std::codecvt_utf8; std::wstring_convert converter; return converter.to_bytes (src); } //----------------------------------------------------------------------------- std::string cruft::to_utf8 (const std::wstring &src) { return to_utf8 (src.c_str ()); } #endif /////////////////////////////////////////////////////////////////////////////// // TODO: Horribly inefficient, but God help you if you're relying on this // being efficient in the first place. bool strbegins (const char *restrict str, const char *restrict prefix) { return 0 == strncmp (prefix, str, strlen (prefix)); } #pragma GCC diagnostic pop