summaryrefslogtreecommitdiffstats
path: root/src/util/xmlconfig.c
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2018-07-03 14:07:05 -0400
committerMarek Olšák <[email protected]>2018-07-04 21:16:03 -0400
commit2e1e6511f76370870b5cde10caa9ca3b6d0dc65f (patch)
tree90f75dfb4c86371de46052f1f4907d72a0da8ddc /src/util/xmlconfig.c
parent4695984dbcb6b0cd325dba91927959769c89373d (diff)
util: extract get_process_name from xmlconfig.c
Reviewed-by: Timothy Arceri <[email protected]> Reviewed-by: Eric Engestrom <[email protected]>
Diffstat (limited to 'src/util/xmlconfig.c')
-rw-r--r--src/util/xmlconfig.c86
1 files changed, 2 insertions, 84 deletions
diff --git a/src/util/xmlconfig.c b/src/util/xmlconfig.c
index ad943e2ce48..d3847911baa 100644
--- a/src/util/xmlconfig.c
+++ b/src/util/xmlconfig.c
@@ -37,90 +37,8 @@
#include <unistd.h>
#include <errno.h>
#include "xmlconfig.h"
+#include "process.h"
-#undef GET_PROGRAM_NAME
-
-#if (defined(__GNU_LIBRARY__) || defined(__GLIBC__)) && !defined(__UCLIBC__)
-# if !defined(__GLIBC__) || (__GLIBC__ < 2)
-/* These aren't declared in any libc5 header */
-extern char *program_invocation_name, *program_invocation_short_name;
-# endif
-static const char *
-__getProgramName()
-{
- char * arg = strrchr(program_invocation_name, '/');
- if (arg)
- return arg+1;
- else
- return program_invocation_name;
-}
-# define GET_PROGRAM_NAME() __getProgramName()
-#elif defined(__CYGWIN__)
-# define GET_PROGRAM_NAME() program_invocation_short_name
-#elif defined(__FreeBSD__) && (__FreeBSD__ >= 2)
-# include <osreldate.h>
-# if (__FreeBSD_version >= 440000)
-# include <stdlib.h>
-# define GET_PROGRAM_NAME() getprogname()
-# endif
-#elif defined(__NetBSD__) && defined(__NetBSD_Version__) && (__NetBSD_Version__ >= 106000100)
-# include <stdlib.h>
-# define GET_PROGRAM_NAME() getprogname()
-#elif defined(__DragonFly__)
-# include <stdlib.h>
-# define GET_PROGRAM_NAME() getprogname()
-#elif defined(__APPLE__)
-# include <stdlib.h>
-# define GET_PROGRAM_NAME() getprogname()
-#elif defined(__sun)
-/* Solaris has getexecname() which returns the full path - return just
- the basename to match BSD getprogname() */
-# include <stdlib.h>
-# include <libgen.h>
-
-static const char *
-__getProgramName()
-{
- static const char *progname;
-
- if (progname == NULL) {
- const char *e = getexecname();
- if (e != NULL) {
- /* Have to make a copy since getexecname can return a readonly
- string, but basename expects to be able to modify its arg. */
- char *n = strdup(e);
- if (n != NULL) {
- progname = basename(n);
- }
- }
- }
- return progname;
-}
-
-# define GET_PROGRAM_NAME() __getProgramName()
-#endif
-
-#if !defined(GET_PROGRAM_NAME)
-# if defined(__OpenBSD__) || defined(NetBSD) || defined(__UCLIBC__) || defined(ANDROID)
-/* 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;
- char * arg = strrchr(__progname, '/');
- if (arg)
- return arg+1;
- else
- return __progname;
-}
-# define GET_PROGRAM_NAME() __getProgramName()
-# else
-# define GET_PROGRAM_NAME() ""
-# warning "Per application configuration won't work with your OS version."
-# endif
-#endif
/** \brief Find an option in an option cache with the name as key */
static uint32_t
@@ -1007,7 +925,7 @@ driParseConfigFiles(driOptionCache *cache, const driOptionCache *info,
userData.cache = cache;
userData.screenNum = screenNum;
userData.driverName = driverName;
- userData.execName = GET_PROGRAM_NAME();
+ userData.execName = util_get_process_name();
if ((home = getenv ("HOME"))) {
uint32_t len = strlen (home);