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:
parent
ecb44711d1
commit
f7c10ef9e9
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user