2022-02-04 16:35:35 +01:00
|
|
|
#include "utils/logger.h"
|
2021-09-24 17:14:38 +02:00
|
|
|
#include <string.h>
|
2022-10-08 20:53:11 +02:00
|
|
|
#include <string>
|
2021-09-24 17:14:38 +02:00
|
|
|
#include <whb/log.h>
|
|
|
|
|
2022-10-08 20:53:11 +02:00
|
|
|
std::string sanitizeName(const std::string &input) {
|
|
|
|
if (input.empty() || input.starts_with(' ')) {
|
|
|
|
return "";
|
|
|
|
}
|
|
|
|
std::string result = input;
|
|
|
|
std::string illegalChars = "\\/:?\"<>|@=;`_^][";
|
|
|
|
for (auto it = result.begin(); it < result.end(); ++it) {
|
|
|
|
if (*it < '0' || *it > 'z') {
|
|
|
|
*it = ' ';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
for (auto it = result.begin(); it < result.end(); ++it) {
|
|
|
|
bool found = illegalChars.find(*it) != std::string::npos;
|
|
|
|
if (found) {
|
|
|
|
*it = ' ';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
uint32_t length = result.length();
|
|
|
|
for (uint32_t i = 1; i < length; ++i) {
|
|
|
|
if (result[i - 1] == ' ' && result[i] == ' ') {
|
|
|
|
result.erase(i, 1);
|
|
|
|
i--;
|
|
|
|
length--;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (result.size() == 1 && result[0] == ' ') {
|
|
|
|
result.clear();
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
2021-09-24 17:14:38 +02:00
|
|
|
|
2022-10-08 20:53:11 +02:00
|
|
|
#define PRINTF_BUFFER_LENGTH 2048
|
2021-09-24 17:14:38 +02:00
|
|
|
// https://gist.github.com/ccbrown/9722406
|
|
|
|
void dumpHex(const void *data, size_t size) {
|
|
|
|
char ascii[17];
|
|
|
|
size_t i, j;
|
|
|
|
ascii[16] = '\0';
|
|
|
|
DEBUG_FUNCTION_LINE("0x%08X (0x0000): ", data);
|
|
|
|
for (i = 0; i < size; ++i) {
|
|
|
|
WHBLogWritef("%02X ", ((unsigned char *) data)[i]);
|
|
|
|
if (((unsigned char *) data)[i] >= ' ' && ((unsigned char *) data)[i] <= '~') {
|
|
|
|
ascii[i % 16] = ((unsigned char *) data)[i];
|
|
|
|
} else {
|
|
|
|
ascii[i % 16] = '.';
|
|
|
|
}
|
|
|
|
if ((i + 1) % 8 == 0 || i + 1 == size) {
|
|
|
|
WHBLogWritef(" ");
|
|
|
|
if ((i + 1) % 16 == 0) {
|
|
|
|
WHBLogPrintf("| %s ", ascii);
|
|
|
|
if (i + 1 < size) {
|
2022-01-30 13:49:38 +01:00
|
|
|
DEBUG_FUNCTION_LINE("0x%08X (0x%04X); ", ((uint32_t) data) + i + 1, i + 1);
|
2021-09-24 17:14:38 +02:00
|
|
|
}
|
|
|
|
} else if (i + 1 == size) {
|
|
|
|
ascii[(i + 1) % 16] = '\0';
|
|
|
|
if ((i + 1) % 16 <= 8) {
|
|
|
|
WHBLogWritef(" ");
|
|
|
|
}
|
|
|
|
for (j = (i + 1) % 16; j < 16; ++j) {
|
|
|
|
WHBLogWritef(" ");
|
|
|
|
}
|
|
|
|
WHBLogPrintf("| %s ", ascii);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-01-01 01:39:28 +01:00
|
|
|
}
|