mirror of
https://github.com/ARM-software/arm-trusted-firmware.git
synced 2025-04-15 00:54:22 +00:00
feat(libc): add %c to printf/snprintf
Adds %c support for printf and snprintf to print one character. Required by most recent MbedTLS 3.4.0. Change-Id: I4d9b2725127a929d58946353324f99ff22b3b28b Signed-off-by: Maksims Svecovs <maksims.svecovs@arm.com>
This commit is contained in:
parent
658ce7ad8e
commit
44d9706e54
2 changed files with 11 additions and 2 deletions
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2014-2021, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2014-2023, Arm Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -81,6 +81,7 @@ static int unsigned_num_print(unsigned long long int unum, unsigned int radix,
|
|||
* %x - hexadecimal format
|
||||
* %s - string format
|
||||
* %d or %i - signed decimal format
|
||||
* %c - character format
|
||||
* %u - unsigned decimal format
|
||||
* %p - pointer format
|
||||
*
|
||||
|
@ -130,6 +131,10 @@ loop:
|
|||
count += unsigned_num_print(unum, 10,
|
||||
padc, padn);
|
||||
break;
|
||||
case 'c':
|
||||
(void)putchar(va_arg(args, int));
|
||||
count++;
|
||||
break;
|
||||
case 's':
|
||||
str = va_arg(args, char *);
|
||||
count += string_print(str);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2017-2022, ARM Limited and Contributors. All rights reserved.
|
||||
* Copyright (c) 2017-2023, Arm Limited and Contributors. All rights reserved.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
@ -85,6 +85,7 @@ static void unsigned_num_print(char **s, size_t n, size_t *chars_printed,
|
|||
*
|
||||
* %x (or %X) - hexadecimal format
|
||||
* %d or %i - signed decimal format
|
||||
* %c - character format
|
||||
* %s - string format
|
||||
* %u - unsigned decimal format
|
||||
* %p - pointer format
|
||||
|
@ -181,6 +182,9 @@ loop:
|
|||
unsigned_num_print(&s, n, &chars_printed,
|
||||
unum, 10, padc, padn, false);
|
||||
break;
|
||||
case 'c':
|
||||
CHECK_AND_PUT_CHAR(s, n, chars_printed, va_arg(args, int));
|
||||
break;
|
||||
case 's':
|
||||
str = va_arg(args, char *);
|
||||
string_print(&s, n, &chars_printed, str);
|
||||
|
|
Loading…
Add table
Reference in a new issue