[PATCH v3 0/2] Avoid GLIBC'ism "%m"
Johannes Schindelin
johannes.schindelin at gmx.de
Tue Jul 25 13:56:24 UTC 2017
As pointed out by Kang-Che Sung and verified by Jody Bruchon, the "%m"
format placeholder is really not in any open standard.
Also: contrary to Denys' assumption, there are libc versions out there
which did not follow GLIBC's example to implement this non-POSIX
placeholder. That must be the reason why nothing else in BusyBox' source
code relies on %m but uses helpers such as bb_perror_msg() instead.
It is very easy, and a good readability improvement, too, to introduce
a new helper in ash's source code.
Changes since v2:
- fixed an erronous vfprintf() that does not take a va_list (thanks, Ron).
- inserted the missing %s in the same fprintf() statement.
Johannes Schindelin (2):
ash: introduce ash_perror_msg_and_raise_error()
ash: avoid GLIBC'ism %m
shell/ash.c | 49 +++++++++++++++++++++++++++++++++----------------
1 file changed, 33 insertions(+), 16 deletions(-)
base-commit: be669fa1fdff6f751c8cdd3fc18a9fa7a7f46cd3
Published-As: https://github.com/dscho/busybox-w32/releases/tag/busybox-glibc-ism-v3
Fetch-It-Via: git fetch https://github.com/dscho/busybox-w32 busybox-glibc-ism-v3
Interdiff vs v2:
diff --git a/shell/ash.c b/shell/ash.c
index 110f9bb21..0fde5791d 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -1264,7 +1264,7 @@ ash_verror_msg(const char *msg, va_list ap, const char *strerr)
}
vfprintf(stderr, msg, ap);
if (strerr)
- vfprintf(stderr, ": ", strerr);
+ fprintf(stderr, ": %s", strerr);
newline_and_flush(stderr);
}
--
2.13.3.windows.1.13.gaf0c2223da0
More information about the busybox
mailing list