feature (kernel): Implemented numeric_specifier feature for substrings in format strings

This commit is contained in:
antifallobst 2023-02-23 11:22:33 +01:00
parent 87ee378144
commit b77e01a5d2
1 changed files with 14 additions and 1 deletions

View File

@ -64,7 +64,14 @@ uint64_t variadic_format_size(string_t string, va_list args) {
}
case 's': {
// string
length += string_length(va_arg(args, string_t));
uint64_t strlen = string_length(va_arg(args, string_t));
if (numeric_specifier > 0) {
strlen = MIN(strlen, numeric_specifier);
} else {
strlen = numeric_specifier;
}
length += strlen;
break;
}
case 'c': {
@ -187,6 +194,12 @@ void variadic_format(string_t output, string_t string, va_list args) {
string_t str = va_arg(args, string_t);
uint64_t strlen = string_length(str);
if (numeric_specifier > 0) {
strlen = MIN(strlen, numeric_specifier);
} else {
strlen = numeric_specifier;
}
memory_copy((void*)str, buffer_out, strlen);
buffer_out += strlen;
break;