diff options
author | Roland McGrath <roland@gnu.org> | 2003-03-15 20:06:37 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2003-03-15 20:06:37 +0000 |
commit | 4a8ff87cac00e23a9733e4a5332cb52090d8910e (patch) | |
tree | 59596531a0d73d2b52320537c15d96257248da34 | |
parent | eec0ca9f259d04db3e0dde1ad1d89fce32f72b8c (diff) | |
download | glibc-4a8ff87cac00e23a9733e4a5332cb52090d8910e.zip glibc-4a8ff87cac00e23a9733e4a5332cb52090d8910e.tar.gz glibc-4a8ff87cac00e23a9733e4a5332cb52090d8910e.tar.bz2 |
2003-03-14 Roland McGrath <roland@redhat.com>
* dlfcn/dlerror.c (dlerror): If objname is "", don't put ": " after it.
-rw-r--r-- | dlfcn/dlerror.c | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/dlfcn/dlerror.c b/dlfcn/dlerror.c index eaf5ef9..0e02ca7 100644 --- a/dlfcn/dlerror.c +++ b/dlfcn/dlerror.c @@ -1,5 +1,5 @@ /* Return error detail for failing <dlfcn.h> functions. - Copyright (C) 1995,1996,1997,1998,1999,2000,2002 + Copyright (C) 1995,1996,1997,1998,1999,2000,2002, 2003 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -69,9 +69,19 @@ dlerror (void) else if (result->errstring != NULL) { buf = (char *) result->errstring; - if (__asprintf (&buf, result->errcode != 0 ? "%s: %s: %s" : "%s: %s", - result->objname, _(result->errstring), - strerror (result->errcode)) != -1) + int n; + if (result->errcode == 0) + n = __asprintf (&buf, "%s%s%s", + result->objname, + result->objname[0] == '\0' ? "" : ": ", + _(result->errstring)); + else + n = __asprintf (&buf, "%s%s%s: %s", + result->objname, + result->objname[0] == '\0' ? "" : ": ", + _(result->errstring), + strerror (result->errcode)); + if (n != -1) { /* We don't need the error string anymore. */ if (strcmp (result->errstring, "out of memory") != 0) |