diff options
Diffstat (limited to 'libs/tdlib/td/tdutils/td/utils/misc.cpp')
-rw-r--r-- | libs/tdlib/td/tdutils/td/utils/misc.cpp | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/libs/tdlib/td/tdutils/td/utils/misc.cpp b/libs/tdlib/td/tdutils/td/utils/misc.cpp deleted file mode 100644 index f3068ca6d3..0000000000 --- a/libs/tdlib/td/tdutils/td/utils/misc.cpp +++ /dev/null @@ -1,78 +0,0 @@ -// -// Copyright Aliaksei Levin (levlam@telegram.org), Arseny Smirnov (arseny30@gmail.com) 2014-2018 -// -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) -// -#include "td/utils/misc.h" - -#include "td/utils/port/thread_local.h" - -#include <algorithm> -#include <cstdlib> -#include <locale> -#include <sstream> - -namespace td { - -char *str_dup(Slice str) { - char *res = static_cast<char *>(std::malloc(str.size() + 1)); - if (res == nullptr) { - return nullptr; - } - std::copy(str.begin(), str.end(), res); - res[str.size()] = '\0'; - return res; -} - -string implode(vector<string> v, char delimiter) { - string result; - for (auto &str : v) { - if (!result.empty()) { - result += delimiter; - } - result += str; - } - return result; -} - -string oneline(Slice str) { - string result; - result.reserve(str.size()); - bool after_new_line = true; - for (auto c : str) { - if (c != '\n') { - if (after_new_line) { - if (c == ' ') { - continue; - } - after_new_line = false; - } - result += c; - } else { - after_new_line = true; - result += ' '; - } - } - while (!result.empty() && result.back() == ' ') { - result.pop_back(); - } - return result; -} - -double to_double(Slice str) { - static TD_THREAD_LOCAL std::stringstream *ss; - if (init_thread_local<std::stringstream>(ss)) { - ss->imbue(std::locale::classic()); - } else { - ss->str(std::string()); - ss->clear(); - } - ss->write(str.begin(), narrow_cast<std::streamsize>(str.size())); - - double result = 0.0; - *ss >> result; - return result; -} - -} // namespace td |