mirror of
https://github.com/Atmosphere-NX/Atmosphere.git
synced 2025-08-06 16:18:51 +00:00
Finish GetValidSizeAsUtf8String
This commit is contained in:
parent
ba4263d859
commit
9b08454557
1 changed files with 26 additions and 25 deletions
|
@ -17,25 +17,6 @@
|
||||||
|
|
||||||
namespace ams::diag::detail {
|
namespace ams::diag::detail {
|
||||||
|
|
||||||
namespace {
|
|
||||||
|
|
||||||
inline ssize_t A(size_t len, size_t tmp_len) {
|
|
||||||
if (tmp_len < len) {
|
|
||||||
return len - tmp_len;
|
|
||||||
}
|
|
||||||
AMS_ABORT_UNLESS(tmp_len == len);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
inline ssize_t B(size_t len, size_t val, size_t tmp_len) {
|
|
||||||
if (tmp_len == val) {
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void PrintDebugString(const char *str, size_t len) {
|
void PrintDebugString(const char *str, size_t len) {
|
||||||
AMS_ASSERT(str && len);
|
AMS_ASSERT(str && len);
|
||||||
svc::OutputDebugString(str, len);
|
svc::OutputDebugString(str, len);
|
||||||
|
@ -64,14 +45,20 @@ namespace ams::diag::detail {
|
||||||
if (tmp_len < 1) {
|
if (tmp_len < 1) {
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
return B(len, 1, tmp_len);
|
if (tmp_len == 1) {
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if ((some_c & 0xE0) == 0xC0) {
|
if ((some_c & 0xE0) == 0xC0) {
|
||||||
tmp_len = static_cast<size_t>(str_nul_end - (str_end + 1));
|
tmp_len = static_cast<size_t>(str_nul_end - (str_end + 1));
|
||||||
if (tmp_len >= 2) {
|
if (tmp_len >= 2) {
|
||||||
return B(len, 2, tmp_len);
|
if (tmp_len == 2) {
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -81,17 +68,31 @@ namespace ams::diag::detail {
|
||||||
}
|
}
|
||||||
tmp_len = static_cast<size_t>(str_nul_end - (str_end + 1));
|
tmp_len = static_cast<size_t>(str_nul_end - (str_end + 1));
|
||||||
if (tmp_len < 4) {
|
if (tmp_len < 4) {
|
||||||
return A(len, tmp_len);
|
if (tmp_len < len) {
|
||||||
|
return len - tmp_len;
|
||||||
|
}
|
||||||
|
AMS_ABORT_UNLESS(tmp_len == len);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
return B(len, 4, tmp_len);
|
if (tmp_len == 4) {
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
tmp_len = static_cast<size_t>(str_nul_end - (str_end + 1));
|
tmp_len = static_cast<size_t>(str_nul_end - (str_end + 1));
|
||||||
if (tmp_len >= 3) {
|
if (tmp_len >= 3) {
|
||||||
return B(len, 3, tmp_len);
|
if (tmp_len == 3) {
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return A(len, tmp_len);
|
if (tmp_len < len) {
|
||||||
|
return len - tmp_len;
|
||||||
|
}
|
||||||
|
AMS_ABORT_UNLESS(tmp_len == len);
|
||||||
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue