From 486e5c26dc3164493b4f045b533fc1b9e1847581 Mon Sep 17 00:00:00 2001 From: Felix Kuehling Date: Sat, 10 Jul 2004 11:25:02 +0000 Subject: Make GET_PROGRAM_NAME work with uCLibc using the __progname hack. Improved that hack to remove leading directory names. --- src/mesa/drivers/dri/common/xmlconfig.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/mesa/drivers/dri/common/xmlconfig.c b/src/mesa/drivers/dri/common/xmlconfig.c index 308f415b870..aa7df8ded32 100644 --- a/src/mesa/drivers/dri/common/xmlconfig.c +++ b/src/mesa/drivers/dri/common/xmlconfig.c @@ -48,7 +48,7 @@ #undef GET_PROGRAM_NAME -#if defined(__GNU_LIBRARY__) || defined(__GLIBC__) +#if (defined(__GNU_LIBRARY__) || defined(__GLIBC__)) && !defined(__UCLIBC__) # define GET_PROGRAM_NAME() program_invocation_short_name #elif defined(__FreeBSD__) && (__FreeBSD__ >= 2) # include @@ -62,12 +62,17 @@ #endif #if !defined(GET_PROGRAM_NAME) -# if defined(OpenBSD) || defined(NetBSD) -/* This is a hack. It's said to work on OpenBSD, NetBSD and GNU. It's +# if defined(OpenBSD) || defined(NetBSD) || defined(__UCLIBC__) +/* This is a hack. It's said to work on OpenBSD, NetBSD and GNU. + * Rogelio M.Serrano Jr. reported it's also working with UCLIBC. It's * used as a last resort, if there is no documented facility available. */ static const char *__getProgramName () { extern const char *__progname; - return progname; + char * arg = strrchr(__progname, '/'); + if (arg) + return arg+1; + else + return __progname; } # define GET_PROGRAM_NAME() __getProgramName() # else -- cgit v1.2.3