diff --git a/configure.ac b/configure.ac index 06a02b7..c9cf0a4 100644 --- a/configure.ac +++ b/configure.ac @@ -37,6 +37,7 @@ AC_TYPE_SIZE_T AC_TYPE_SSIZE_T # Checks for library functions. +AC_CHECK_FUNCS([getexecname]) AC_CONFIG_FILES([ Makefile diff --git a/src/progname.c b/src/progname.c index f24071a..b5132d8 100644 --- a/src/progname.c +++ b/src/progname.c @@ -1,6 +1,6 @@ /* * Copyright © 2006 Robert Millan - * Copyright © 2010-2011 Guillem Jover + * Copyright © 2010-2012 Guillem Jover * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -41,6 +41,10 @@ getprogname(void) #ifdef __GLIBC__ if (__progname == NULL) __progname = program_invocation_short_name; +#elif defined(HAVE_GETEXECNAME) + /* getexecname(3) returns an absolute pathname, normalize it. */ + if (__progname == NULL) + setprogname(getexecname()); #endif return __progname;