diff options
author | marha <marha@users.sourceforge.net> | 2013-01-17 09:22:05 +0100 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2013-01-17 09:22:05 +0100 |
commit | 4fc6b34d1c14cc61f553ca59264d0909656933f3 (patch) | |
tree | b6dd33c595a9eb22ecb2f2f2630abfa12772d6c5 /fontconfig/src/fcdefault.c | |
parent | 811d1bcf6d61ea49551abdd7f2294c5af2776913 (diff) | |
download | vcxsrv-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.c | 28 |
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); |