Administrative source import: native x86 compilation passed for 423 authored units. Source placement and submission states are migrated separately; this commit does not imply peer acceptance.
Previous head: 35d2a8cb36
Payload SHA256: 592f016d2730c5593bb653aa054c1e5f76a6df72c8f5a09e66f74876e2e33dee
29 lines
1 KiB
C++
29 lines
1 KiB
C++
#include "Utility/GuidParse.h"
|
|
|
|
#include <cstdarg>
|
|
#include <cstdio>
|
|
|
|
namespace {
|
|
// OFFSET: 0x00AFA440
|
|
// FUNCTION: fn_18290
|
|
|
|
int Scan(const char* text, std::size_t bytes, const char* format, ...) {
|
|
va_list arguments;
|
|
va_start(arguments, format);
|
|
const int count = __stdio_common_vsscanf(_CRT_INTERNAL_LOCAL_SCANF_OPTIONS | _CRT_INTERNAL_SCANF_SECURECRT, text, bytes, format, nullptr, arguments);
|
|
va_end(arguments);
|
|
|
|
return count;
|
|
}
|
|
}
|
|
|
|
// OFFSET: 0x00AF7610
|
|
// FUNCTION: fn_18260
|
|
int ParseGuid(const char* text, std::size_t bytes, GUID& output, bool braced) {
|
|
const char* format = braced ? "{%8X-%4hX-%4hX-%2hhX%2hhX-%2hhX%2hhX%2hhX%2hhX%2hhX%2hhX}" : "%8X-%4hX-%4hX-%2hhX%2hhX-%2hhX%2hhX%2hhX%2hhX%2hhX%2hhX";
|
|
const int count = Scan(
|
|
text, bytes, format, &output.Data1, &output.Data2, &output.Data3, &output.Data4[0], &output.Data4[1], &output.Data4[2], &output.Data4[3], &output.Data4[4],
|
|
&output.Data4[5], &output.Data4[6], &output.Data4[7]
|
|
);
|
|
return count == 11 ? 1 : count == EOF ? -1 : 0;
|
|
}
|