[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