diff options
author | Denis Vlasenko <vda.linux@googlemail.com> | 2009-03-21 22:11:23 +0300 |
---|---|---|
committer | Denis Vlasenko <vda.linux@googlemail.com> | 2009-03-21 22:11:23 +0300 |
commit | 3a014b85dc57a88b5e1eb006a2fa3062f4bebc8f (patch) | |
tree | 6befbfaa357218f40a809dc6135f621e0f2fc365 /libbb/xreadlink.c | |
parent | 05af832097848cbc0656e687fc4a07525c2de513 (diff) |
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
Diffstat (limited to 'libbb/xreadlink.c')
-rw-r--r-- | libbb/xreadlink.c | 6 |
1 files changed, 5 insertions, 1 deletions
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; } |