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
diff --git a/lib/libc/snprintf.c b/lib/libc/snprintf.c
index 6e80d8c..42faa26 100644
--- a/lib/libc/snprintf.c
+++ b/lib/libc/snprintf.c
@@ -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 @@
 			/* Check the format specifier. */
 loop:
 			switch (*fmt) {
+			case '%':
+				if (chars_printed < n) {
+					*s = '%';
+					s++;
+				}
+				chars_printed++;
+				break;
 			case '0':
 			case '1':
 			case '2':