| From 7ee6f1d1101452ab098121e0da7d560037a45fe9 Mon Sep 17 00:00:00 2001 |
| From: Barret Rhoden <brho@cs.berkeley.edu> |
| Date: Thu, 12 Sep 2013 18:57:34 -0700 |
| Subject: [PATCH] Perror with errstr |
| |
| --- |
| libbb/verror_msg.c | 15 ++++++++++++--- |
| 1 file changed, 12 insertions(+), 3 deletions(-) |
| |
| diff --git a/libbb/verror_msg.c b/libbb/verror_msg.c |
| index bcf1ee8..e038fd6 100644 |
| --- a/libbb/verror_msg.c |
| +++ b/libbb/verror_msg.c |
| @@ -12,7 +12,7 @@ |
| #endif |
| |
| smallint logmode = LOGMODE_STDIO; |
| -const char *msg_eol = "\n"; |
| +const char *msg_eol = ""; /* was \n */ |
| |
| void FAST_FUNC bb_verror_msg(const char *s, va_list p, const char* strerr) |
| { |
| @@ -65,8 +65,17 @@ void FAST_FUNC bb_verror_msg(const char *s, va_list p, const char* strerr) |
| } |
| |
| if (logmode & LOGMODE_STDIO) { |
| - fflush_all(); |
| - full_write(STDERR_FILENO, msg, used); |
| + const char *comma; |
| + char *ros_errstr = errstr(); |
| + /* ros_errstr should never be 0, but just in case. */ |
| + if (ros_errstr == NULL || *ros_errstr == '\0') |
| + ros_errstr = comma = ""; |
| + else |
| + comma = ", "; |
| + printf("%s%s%s\n", msg, comma, ros_errstr); |
| + /* also changed msg_eol */ |
| +// fflush_all(); |
| +// full_write(STDERR_FILENO, msg, used); |
| } |
| #if ENABLE_FEATURE_SYSLOG |
| if (logmode & LOGMODE_SYSLOG) { |
| -- |
| 1.8.4 |
| |