Add "same" binding for edits to inherit binding from matched element

This commit is contained in:
Keith Packard 2003-02-12 18:22:12 +00:00
parent 602e6b1f26
commit dda7794f1b
4 changed files with 13 additions and 3 deletions

View File

@ -145,7 +145,7 @@
<!ATTLIST edit
name CDATA #REQUIRED
mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
binding (weak|strong) "weak">
binding (weak|strong|same) "weak">
<!--
Elements of expressions follow

View File

@ -917,8 +917,16 @@ FcConfigAdd (FcValueList **head,
FcBool append,
FcValueList *new)
{
FcValueList **prev, *last;
FcValueList **prev, *last, *v;
FcValueBinding sameBinding;
if (position)
sameBinding = position->binding;
else
sameBinding = FcValueBindingWeak;
for (v = new; v; v = v->next)
if (v->binding == FcValueBindingSame)
v->binding = sameBinding;
if (append)
{
if (position)

View File

@ -97,7 +97,7 @@ typedef struct _FcSymbolic {
#define FC_MEM_NUM 29
typedef enum _FcValueBinding {
FcValueBindingWeak, FcValueBindingStrong
FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame
} FcValueBinding;
typedef struct _FcValueList {

View File

@ -1513,6 +1513,8 @@ FcParseEdit (FcConfigParse *parse)
binding = FcValueBindingWeak;
else if (!strcmp ((char *) binding_string, "strong"))
binding = FcValueBindingStrong;
else if (!strcmp ((char *) binding_string, "same"))
binding = FcValueBindingSame;
else
{
FcConfigMessage (parse, FcSevereWarning, "invalid edit binding \"%s\"", binding_string);