1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-06-25 18:30:07 +00:00

Replaces POSIX stpncpy with ANSI strlen, memcpy and memset.

This commit is contained in:
Thomas Harte 2020-05-27 21:31:46 -04:00
parent ecb44711d1
commit f7c10ef9e9

View File

@ -278,12 +278,12 @@ struct Executor {
};
auto copy_string = [] (uint8_t *destination, const char *source, size_t length) -> void {
// Copy as much of the string as will fit, and pad with spaces.
uint8_t *end = reinterpret_cast<uint8_t *>(stpncpy(reinterpret_cast<char *>(destination), source, length));
while(end < destination + length) {
*end = ' ';
++end;
}
// Determine length of source and copy in as much as possible.
const auto source_length = std::min(strlen(source), length);
memcpy(destination, source, source_length);
// Fill the rest with spaces.
memset(&destination[source_length], ' ', length - source_length);
};
copy_string(&response[8], inq.vendor_identifier, 8);
copy_string(&response[16], inq.product_identifier, 16);