From 3a014b85dc57a88b5e1eb006a2fa3062f4bebc8f Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Sat, 21 Mar 2009 19:11:23 +0000 Subject: ls: make readlink error to not disrupt output (try ls -l /proc/self/fd). libbb: make xmalloc_readlink_or_warn warning more specific. function old new delta xmalloc_readlink_or_warn 33 61 +28 showfiles 1495 1460 -35 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/1 up/down: 28/-35) Total: -7 bytes --- libbb/xreadlink.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'libbb/xreadlink.c') diff --git a/libbb/xreadlink.c b/libbb/xreadlink.c index 6bff4beae..8d232f16b 100644 --- a/libbb/xreadlink.c +++ b/libbb/xreadlink.c @@ -91,7 +91,11 @@ char* FAST_FUNC xmalloc_readlink_or_warn(const char *path) char *buf = xmalloc_readlink(path); if (!buf) { /* EINVAL => "file: Invalid argument" => puzzled user */ - bb_error_msg("%s: cannot read link (not a symlink?)", path); + const char *errmsg = "not a symlink"; + int err = errno; + if (err != EINVAL) + errmsg = strerror(err); + bb_error_msg("%s: cannot read link: %s", path, errmsg); } return buf; } -- cgit v1.2.3