[rtems-libbsd commit] kvprintf: Add support for %m

Sebastian Huber sebh at rtems.org
Fri May 6 12:11:19 UTC 2016


Module:    rtems-libbsd
Branch:    master
Commit:    356f59c898c982d7cc45e067d79a329ab5ab8caa
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=356f59c898c982d7cc45e067d79a329ab5ab8caa

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Fri May  6 12:16:19 2016 +0200

kvprintf: Add support for %m

---

 freebsd/sys/kern/subr_prf.c | 8 ++++++++
 testsuite/log01/test_main.c | 6 ++++++
 2 files changed, 14 insertions(+)

diff --git a/freebsd/sys/kern/subr_prf.c b/freebsd/sys/kern/subr_prf.c
index 56b3bfa..8e627d1 100644
--- a/freebsd/sys/kern/subr_prf.c
+++ b/freebsd/sys/kern/subr_prf.c
@@ -800,6 +800,11 @@ reswitch:	switch (ch = (u_char)*fmt++) {
 			else
 				*(va_arg(ap, int *)) = retval;
 			break;
+#ifdef __rtems__
+		case 'm':
+			p = strerror(errno);
+			goto handle_string;
+#endif /* __rtems__ */
 		case 'o':
 			base = 8;
 			goto handle_nosign;
@@ -819,6 +824,9 @@ reswitch:	switch (ch = (u_char)*fmt++) {
 			goto handle_nosign;
 		case 's':
 			p = va_arg(ap, char *);
+#ifdef __rtems__
+handle_string:
+#endif /* __rtems__ */
 			if (p == NULL)
 				p = "(null)";
 			if (!dot)
diff --git a/testsuite/log01/test_main.c b/testsuite/log01/test_main.c
index 0b3db76..5c17735 100644
--- a/testsuite/log01/test_main.c
+++ b/testsuite/log01/test_main.c
@@ -36,6 +36,7 @@
 #include <syslog.h>
 
 #include <assert.h>
+#include <errno.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -138,6 +139,11 @@ test_main(void)
 	printf("out:	%4D", "AAAA", ":");
 	check(ctx, "out:	41:41:41:41");
 
+	errno = ENOMSG;
+	reset(ctx, LOG_PRINTF);
+	printf("%m");
+	check(ctx, "No message of desired type");
+
 	exit(0);
 }
 



More information about the vc mailing list