kvprintf: Add support for %m

This commit is contained in:
Sebastian Huber 2016-05-06 12:16:19 +02:00
parent 54a577d44f
commit 356f59c898
2 changed files with 14 additions and 0 deletions

View File

@ -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)

View File

@ -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);
}