Add "same" binding for edits to inherit binding from matched element
This commit is contained in:
parent
602e6b1f26
commit
dda7794f1b
|
@ -145,7 +145,7 @@
|
||||||
<!ATTLIST edit
|
<!ATTLIST edit
|
||||||
name CDATA #REQUIRED
|
name CDATA #REQUIRED
|
||||||
mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
|
mode (assign|assign_replace|prepend|append|prepend_first|append_last) "assign"
|
||||||
binding (weak|strong) "weak">
|
binding (weak|strong|same) "weak">
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
Elements of expressions follow
|
Elements of expressions follow
|
||||||
|
|
10
src/fccfg.c
10
src/fccfg.c
|
@ -917,8 +917,16 @@ FcConfigAdd (FcValueList **head,
|
||||||
FcBool append,
|
FcBool append,
|
||||||
FcValueList *new)
|
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 (append)
|
||||||
{
|
{
|
||||||
if (position)
|
if (position)
|
||||||
|
|
|
@ -97,7 +97,7 @@ typedef struct _FcSymbolic {
|
||||||
#define FC_MEM_NUM 29
|
#define FC_MEM_NUM 29
|
||||||
|
|
||||||
typedef enum _FcValueBinding {
|
typedef enum _FcValueBinding {
|
||||||
FcValueBindingWeak, FcValueBindingStrong
|
FcValueBindingWeak, FcValueBindingStrong, FcValueBindingSame
|
||||||
} FcValueBinding;
|
} FcValueBinding;
|
||||||
|
|
||||||
typedef struct _FcValueList {
|
typedef struct _FcValueList {
|
||||||
|
|
|
@ -1513,6 +1513,8 @@ FcParseEdit (FcConfigParse *parse)
|
||||||
binding = FcValueBindingWeak;
|
binding = FcValueBindingWeak;
|
||||||
else if (!strcmp ((char *) binding_string, "strong"))
|
else if (!strcmp ((char *) binding_string, "strong"))
|
||||||
binding = FcValueBindingStrong;
|
binding = FcValueBindingStrong;
|
||||||
|
else if (!strcmp ((char *) binding_string, "same"))
|
||||||
|
binding = FcValueBindingSame;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
FcConfigMessage (parse, FcSevereWarning, "invalid edit binding \"%s\"", binding_string);
|
FcConfigMessage (parse, FcSevereWarning, "invalid edit binding \"%s\"", binding_string);
|
||||||
|
|
Loading…
Reference in New Issue