osquery-1/osquery/utils/chars.h
Filipe Manco a67525fae1 Fix LICENSE information on file headers (#5375)
Summary:
Pull Request resolved: https://github.com/facebook/osquery/pull/5375

LICENSE is now defined in a single file on the root of the project, update the
header to contain that information.

**Project LICENSE did not change.**

Reviewed By: akindyakov

Differential Revision: D13750575

fbshipit-source-id: 1e608a81b260b8395f9d008fc67f463160c1fc2b
2019-01-21 11:51:54 -08:00

56 lines
1.1 KiB
C++

/**
* Copyright (c) 2014-present, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed as defined on the LICENSE file found in the
* root directory of this source tree.
*/
#pragma once
#include <string>
namespace osquery {
/**
* @brief Check if a string is ASCII printable
*
* @param A string to check.
* @return If the string is printable.
*/
bool isPrintable(const std::string& check);
/**
* @brief In-line helper function for use with utf8StringSize
*/
template <typename _Iterator1, typename _Iterator2>
size_t incUtf8StringIterator(_Iterator1& it, const _Iterator2& last) {
if (it == last) {
return 0;
}
size_t res = 1;
for (++it; last != it; ++it, ++res) {
unsigned char c = *it;
if (!(c & 0x80) || ((c & 0xC0) == 0xC0)) {
break;
}
}
return res;
}
/**
* @brief Get the length of a UTF-8 string
*
* @param str The UTF-8 string
*
* @return the length of the string
*/
size_t utf8StringSize(const std::string& str);
/// Safely convert unicode escaped ASCII.
std::string unescapeUnicode(const std::string& escaped);
} // namespace osquery