Add FcReadLink to wrap up readlink impl.

This commit is contained in:
Akira TAGOH 2018-01-04 20:23:16 +09:00
parent 767e3aa7c5
commit 3642d71724
3 changed files with 26 additions and 2 deletions

View File

@ -2218,7 +2218,7 @@ FcConfigRealFilename (FcConfig *config,
if (n)
{
char buf[PATH_MAX];
FcChar8 buf[PATH_MAX];
ssize_t len;
if (sysroot)
@ -2227,7 +2227,7 @@ FcConfigRealFilename (FcConfig *config,
nn = FcStrdup (n);
FcStrFree (n);
if ((len = readlink ((const char *) nn, buf, sizeof (buf) - 1)) != -1)
if ((len = FcReadLink (nn, buf, sizeof (buf) - 1)) != -1)
{
buf[len] = 0;
FcStrFree (nn);

View File

@ -37,6 +37,9 @@
#if HAVE_FCNTL_H
#include <fcntl.h>
#endif
#if HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
@ -256,6 +259,22 @@ FcMakeDirectory (const FcChar8 *dir)
return ret;
}
ssize_t
FcReadLink (const FcChar8 *pathname,
FcChar8 *buf,
size_t bufsiz)
{
#ifdef HAVE_READLINK
return readlink ((const char *) pathname, (char *)buf, bufsiz);
#else
/* XXX: this function is only used for FcConfigRealFilename() so far
* and returning -1 as an error still just works.
*/
errno = ENOSYS;
return -1;
#endif
}
#define __fccompat__
#include "fcaliastail.h"
#undef __fccompat__

View File

@ -822,6 +822,11 @@ FcRandom (void);
FcPrivate FcBool
FcMakeDirectory (const FcChar8 *dir);
FcPrivate ssize_t
FcReadLink (const FcChar8 *pathname,
FcChar8 *buf,
size_t bufsiz);
/* fcdbg.c */
FcPrivate void