aboutsummaryrefslogtreecommitdiff
path: root/fontconfig/src/fcdefault.c
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2013-01-17 09:22:05 +0100
committermarha <marha@users.sourceforge.net>2013-01-17 09:22:05 +0100
commit4fc6b34d1c14cc61f553ca59264d0909656933f3 (patch)
treeb6dd33c595a9eb22ecb2f2f2630abfa12772d6c5 /fontconfig/src/fcdefault.c
parent811d1bcf6d61ea49551abdd7f2294c5af2776913 (diff)
downloadvcxsrv-4fc6b34d1c14cc61f553ca59264d0909656933f3.tar.gz
vcxsrv-4fc6b34d1c14cc61f553ca59264d0909656933f3.tar.bz2
vcxsrv-4fc6b34d1c14cc61f553ca59264d0909656933f3.zip
fontconfig libxcb mesa xkbcomp git update 17 jan 2013
fontconfig: 671bcb34e23ed03b1f564af35560db81f8b12b96 libxcb: 0dd8f8d26a758bc385e79d9239bf6ef2e3d7bf13 mesa: 56c01d81094795286828ecb83713e043695e905a xkbcomp: ed1b90216e59e6b3ac6ac5fd2faca8e056c76caa
Diffstat (limited to 'fontconfig/src/fcdefault.c')
-rw-r--r--fontconfig/src/fcdefault.c28
1 files changed, 20 insertions, 8 deletions
diff --git a/fontconfig/src/fcdefault.c b/fontconfig/src/fcdefault.c
index aa47840d1..b1bd9cc1f 100644
--- a/fontconfig/src/fcdefault.c
+++ b/fontconfig/src/fcdefault.c
@@ -23,6 +23,7 @@
*/
#include "fcint.h"
+#include <limits.h>
#include <string.h>
/* MT-safe */
@@ -139,27 +140,38 @@ retry:
prgname = FcStrdup (p);
}
+#elif defined (HAVE_GETPROGNAME)
+ const char *q = getprogname ();
+ if (q)
+ prgname = FcStrdup (q);
+ else
+ prgname = FcStrdup ("");
#else
- char buf[8192];
+ char buf[PATH_MAX + 1];
unsigned int len;
+ char *p = NULL;
len = readlink ("/proc/self/exe", buf, sizeof (buf) - 1);
if (len > 0)
{
- char *p;
+ buf[len] = '\0';
+ p = buf;
+ }
- p = strrchr (buf, '/');
- if (p)
- p++;
+ if (p)
+ {
+ char *r = strrchr (p, '/');
+ if (r)
+ r++;
else
- p = buf;
+ r = p;
- prgname = FcStrdup (p);
+ prgname = FcStrdup (r);
}
-#endif
if (!prgname)
prgname = FcStrdup ("");
+#endif
if (!fc_atomic_ptr_cmpexch (&default_prgname, NULL, prgname)) {
free (prgname);