libc/snprintf: add support to print "%" character

Enable snprintf()/vsnprintf() in TF-A to print "%" character as C
standard, which may be used in platform porting to print percentage
information.

Signed-off-by: Heyi Guo <guoheyi@linux.alibaba.com>
Change-Id: I9b296372a1002046eabac1df5e8eb99a27efd4a8
This commit is contained in:
Heyi Guo 2020-10-27 08:36:40 +08:00
parent 128c5f0285
commit c654615466
1 changed files with 8 additions and 1 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright (c) 2017-2020, ARM Limited and Contributors. All rights reserved.
* Copyright (c) 2017-2021, ARM Limited and Contributors. All rights reserved.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
@ -130,6 +130,13 @@ int vsnprintf(char *s, size_t n, const char *fmt, va_list args)
/* Check the format specifier. */
loop:
switch (*fmt) {
case '%':
if (chars_printed < n) {
*s = '%';
s++;
}
chars_printed++;
break;
case '0':
case '1':
case '2':