1
0
mirror of https://github.com/TomHarte/CLK.git synced 2024-12-24 12:30:17 +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 { 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. // Determine length of source and copy in as much as possible.
uint8_t *end = reinterpret_cast<uint8_t *>(stpncpy(reinterpret_cast<char *>(destination), source, length)); const auto source_length = std::min(strlen(source), length);
while(end < destination + length) { memcpy(destination, source, source_length);
*end = ' ';
++end; // Fill the rest with spaces.
} memset(&destination[source_length], ' ', length - source_length);
}; };
copy_string(&response[8], inq.vendor_identifier, 8); copy_string(&response[8], inq.vendor_identifier, 8);
copy_string(&response[16], inq.product_identifier, 16); copy_string(&response[16], inq.product_identifier, 16);