Print out full pathname in fc-match -v as well. Reported by Frederic
Crozat. Fix bug where fc-match crashes when given __DUMMY__ property to match on. (I added the __DUMMY__ string to enable callers of FcObjectToPtrLookup to distinguish an error return from a successful return. -PL) reviewed by: plam
This commit is contained in:
parent
c60ec7cc6d
commit
5fe09702f4
18
ChangeLog
18
ChangeLog
|
@ -1,3 +1,21 @@
|
||||||
|
2006-01-06 Patrick Lam <plam@mit.edu>
|
||||||
|
* src/fcdbg.c (FcPatternPrint):
|
||||||
|
|
||||||
|
Print out full pathname in fc-match -v as well. Reported by
|
||||||
|
Frederic Crozat.
|
||||||
|
|
||||||
|
2006-01-06 Mike Fabian <mfabian@suse.de>
|
||||||
|
reviewed by: plam
|
||||||
|
|
||||||
|
* src/fcname.c (FcNameParse):
|
||||||
|
|
||||||
|
Fix bug where fc-match crashes when given __DUMMY__ property to
|
||||||
|
match on.
|
||||||
|
|
||||||
|
(I added the __DUMMY__ string to enable callers of
|
||||||
|
FcObjectToPtrLookup to distinguish an error return from a
|
||||||
|
successful return. -PL)
|
||||||
|
|
||||||
2006-01-05 Patrick Lam <plam@mit.edu>
|
2006-01-05 Patrick Lam <plam@mit.edu>
|
||||||
* AUTHORS:
|
* AUTHORS:
|
||||||
|
|
||||||
|
|
21
src/fcdbg.c
21
src/fcdbg.c
|
@ -111,7 +111,26 @@ FcPatternPrint (const FcPattern *p)
|
||||||
{
|
{
|
||||||
e = FcPatternEltU(p->elts) + i;
|
e = FcPatternEltU(p->elts) + i;
|
||||||
printf ("\t%s:", FcObjectPtrU(e->object));
|
printf ("\t%s:", FcObjectPtrU(e->object));
|
||||||
FcValueListPrint (e->values);
|
/* so that fc-match properly displays file: foo... */
|
||||||
|
if (e->object == FcObjectToPtr(FC_FILE))
|
||||||
|
{
|
||||||
|
FcChar8 * s;
|
||||||
|
FcPatternGetString (p, FC_FILE, 0, &s);
|
||||||
|
printf (" \"%s\"", s);
|
||||||
|
switch (FcValueListPtrU(e->values)->binding) {
|
||||||
|
case FcValueBindingWeak:
|
||||||
|
printf ("(w)");
|
||||||
|
break;
|
||||||
|
case FcValueBindingStrong:
|
||||||
|
printf ("(s)");
|
||||||
|
break;
|
||||||
|
case FcValueBindingSame:
|
||||||
|
printf ("(=)");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
FcValueListPrint (e->values);
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
}
|
}
|
||||||
printf ("\n");
|
printf ("\n");
|
||||||
|
|
|
@ -29,6 +29,9 @@
|
||||||
#include "fcint.h"
|
#include "fcint.h"
|
||||||
|
|
||||||
/* Please do not revoke any of these bindings. */
|
/* Please do not revoke any of these bindings. */
|
||||||
|
/* The __DUMMY__ object enables callers to distinguish the error return
|
||||||
|
* of FcObjectToPtrLookup from FC_FAMILY's FcObjectPtr, which would
|
||||||
|
* otherwise be 0. */
|
||||||
static const FcObjectType _FcBaseObjectTypes[] = {
|
static const FcObjectType _FcBaseObjectTypes[] = {
|
||||||
{ "__DUMMY__", FcTypeVoid, },
|
{ "__DUMMY__", FcTypeVoid, },
|
||||||
{ FC_FAMILY, FcTypeString, },
|
{ FC_FAMILY, FcTypeString, },
|
||||||
|
@ -207,8 +210,8 @@ FcObjectToPtrLookup (const char * object)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We didn't match. Look for the correct FcObjectTypeList
|
/* We didn't match. Look for the application's FcObjectTypeList
|
||||||
* to replace it in-place. */
|
* and replace it in-place. */
|
||||||
for (l = _FcObjectTypes; l; l = l->next)
|
for (l = _FcObjectTypes; l; l = l->next)
|
||||||
{
|
{
|
||||||
if (l->types == _FcUserObjectNames)
|
if (l->types == _FcUserObjectNames)
|
||||||
|
@ -703,7 +706,7 @@ FcNameParse (const FcChar8 *name)
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
name = FcNameFindNext (name, ":,", save, &delim);
|
name = FcNameFindNext (name, ":,", save, &delim);
|
||||||
if (t)
|
if (t && strcmp (t->object, _FcBaseObjectTypes[0].object))
|
||||||
{
|
{
|
||||||
v = FcNameConvert (t->type, save, &m);
|
v = FcNameConvert (t->type, save, &m);
|
||||||
if (!FcPatternAdd (pat, t->object, v, FcTrue))
|
if (!FcPatternAdd (pat, t->object, v, FcTrue))
|
||||||
|
|
Loading…
Reference in New Issue