Use getexecname() if available for getprogname()

This function is present on Solaris.
This commit is contained in:
Guillem Jover 2011-07-05 23:27:31 +02:00
parent abf14c3940
commit b5cc17d664
2 changed files with 6 additions and 1 deletions

View File

@ -37,6 +37,7 @@ AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
# Checks for library functions.
AC_CHECK_FUNCS([getexecname])
AC_CONFIG_FILES([
Makefile

View File

@ -1,6 +1,6 @@
/*
* Copyright © 2006 Robert Millan
* Copyright © 2010-2011 Guillem Jover
* Copyright © 2010-2012 Guillem Jover <guillem@hadrons.org>
*
* 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;