Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
DISCONTINUED:openSUSE:11.2
fontconfig
bugzilla-179457-fix-font-file-names-for-wine.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bugzilla-179457-fix-font-file-names-for-wine.patch of Package fontconfig
diff -ru fontconfig-2.3.94.orig/src/fcpat.c fontconfig-2.3.94/src/fcpat.c --- fontconfig-2.3.94.orig/src/fcpat.c 2006-03-10 16:00:36.000000000 +0100 +++ fontconfig-2.3.94/src/fcpat.c 2006-06-02 13:27:57.000000000 +0200 @@ -1098,6 +1112,39 @@ return FcPatternAdd (p, object, v, FcTrue); } +static FcResult +FcPatternGetFile (const FcPattern *p, const char *object, int id, FcChar8 ** s) +{ + const char *fn, *fpath; + FcChar8 *fname; + int size; + + fn = FcPatternFindFullFname(p); + if (fn) + { + *s = (FcChar8 *) fn; + return FcResultMatch; + } + + if (!p->bank) + return FcResultMatch; + + fpath = FcCacheFindBankDir (p->bank); + size = strlen((char *)fpath) + 1 + strlen ((char *)*s) + 1; + fname = malloc (size); + if (!fname) + return FcResultOutOfMemory; + + FcMemAlloc (FC_MEM_STRING, size); + strcpy ((char *)fname, (char *)fpath); + strcat ((char *)fname, "/"); + strcat ((char *)fname, (char *)*s); + + FcPatternAddFullFname (p, (const char *)fname); + *s = (FcChar8 *)fname; + return FcResultMatch; +} + FcResult FcPatternGet (const FcPattern *p, const char *object, int id, FcValue *v) { @@ -1112,6 +1159,12 @@ if (!id) { *v = FcValueCanonicalize(&FcValueListPtrU(l)->value); + + /* Pull the FC_FILE trick here too. */ + if (v->type == FcTypeString && + FcObjectToPtr(object) == FcObjectToPtr(FC_FILE)) + return FcPatternGetFile (p, object, id, (FcChar8 **)&(v->u.s)); + return FcResultMatch; } id--; @@ -1175,41 +1228,6 @@ if (v.type != FcTypeString) return FcResultTypeMismatch; - if (FcObjectToPtr(object) == FcObjectToPtr(FC_FILE)) - { - const char *fn, *fpath; - FcChar8 *fname; - int size; - - fn = FcPatternFindFullFname(p); - if (fn) - { - *s = (FcChar8 *) fn; - return FcResultMatch; - } - - if (!p->bank) - { - *s = (FcChar8 *) v.u.s; - return FcResultMatch; - } - - fpath = FcCacheFindBankDir (p->bank); - size = strlen((char*)fpath) + 1 + strlen ((char *)v.u.s) + 1; - fname = malloc (size); - if (!fname) - return FcResultOutOfMemory; - - FcMemAlloc (FC_MEM_STRING, size); - strcpy ((char *)fname, (char *)fpath); - strcat ((char *)fname, "/"); - strcat ((char *)fname, (char *)v.u.s); - - FcPatternAddFullFname (p, (const char *)fname); - *s = (FcChar8 *)fname; - return FcResultMatch; - } - *s = (FcChar8 *) v.u.s; return FcResultMatch; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor