[PATCH libXfont] support relative paths in catalogue:<dir> symlinks
Kristian Høgsberg
krh at bitplanet.net
Mon Jul 30 11:36:48 PDT 2007
Thanks, applied.
On 7/10/07, Ademar de Souza Reis Jr <ademar at mandriva.com.br> wrote:
> Relative symlinks are common inside the catalogue directory and
> should be supported as well.
>
> - Ademar
>
> ---
> src/fontfile/catalogue.c | 12 ++++++++++++
> 1 files changed, 12 insertions(+), 0 deletions(-)
>
> diff --git a/src/fontfile/catalogue.c b/src/fontfile/catalogue.c
> index 812b050..2dc3d09 100644
> --- a/src/fontfile/catalogue.c
> +++ b/src/fontfile/catalogue.c
> @@ -136,6 +136,7 @@ CatalogueRescan (FontPathElementPtr fpe)
> DIR *dir;
> struct dirent *entry;
> int len;
> + int pathlen;
>
> path = fpe->name + strlen(CataloguePrefix);
> if (stat(path, &statbuf) < 0 || !S_ISDIR(statbuf.st_mode))
> @@ -159,6 +160,17 @@ CatalogueRescan (FontPathElementPtr fpe)
> if (len < 0)
> continue;
>
> + dest[len] = '\0';
> +
> + if (dest[0] != '/')
> + {
> + pathlen = strlen(path);
> + memmove(dest + pathlen + 1, dest, sizeof dest - pathlen - 1);
> + memcpy(dest, path, pathlen);
> + memcpy(dest + pathlen, "/", 1);
> + len += pathlen + 1;
> + }
> +
> attrib = strchr(link, ':');
> if (attrib && len + strlen(attrib) < sizeof dest)
> {
> --
> 1.5.2.2
>
>
More information about the xorg
mailing list