unit: distuingish mandatory from triggering conditions
diff --git a/src/load-fragment.c b/src/load-fragment.c
index bd7529f..334bc71 100644
--- a/src/load-fragment.c
+++ b/src/load-fragment.c
@@ -1397,7 +1397,7 @@
void *userdata) {
Unit *u = data;
- bool negate;
+ bool trigger, negate;
Condition *c;
assert(filename);
@@ -1405,6 +1405,9 @@
assert(rvalue);
assert(data);
+ if ((trigger = rvalue[0] == '|'))
+ rvalue++;
+
if ((negate = rvalue[0] == '!'))
rvalue++;
@@ -1414,7 +1417,7 @@
}
if (!(c = condition_new(streq(lvalue, "ConditionPathExists") ? CONDITION_PATH_EXISTS : CONDITION_DIRECTORY_NOT_EMPTY,
- rvalue, negate)))
+ rvalue, trigger, negate)))
return -ENOMEM;
LIST_PREPEND(Condition, conditions, u->meta.conditions, c);
@@ -1431,7 +1434,7 @@
void *userdata) {
Unit *u = data;
- bool negate;
+ bool trigger, negate;
Condition *c;
assert(filename);
@@ -1439,10 +1442,13 @@
assert(rvalue);
assert(data);
+ if ((trigger = rvalue[0] == '|'))
+ rvalue++;
+
if ((negate = rvalue[0] == '!'))
rvalue++;
- if (!(c = condition_new(CONDITION_KERNEL_COMMAND_LINE, rvalue, negate)))
+ if (!(c = condition_new(CONDITION_KERNEL_COMMAND_LINE, rvalue, trigger, negate)))
return -ENOMEM;
LIST_PREPEND(Condition, conditions, u->meta.conditions, c);
@@ -1459,7 +1465,7 @@
void *userdata) {
Unit *u = data;
- bool negate;
+ bool trigger, negate;
Condition *c;
assert(filename);
@@ -1467,10 +1473,13 @@
assert(rvalue);
assert(data);
+ if ((trigger = rvalue[0] == '|'))
+ rvalue++;
+
if ((negate = rvalue[0] == '!'))
rvalue++;
- if (!(c = condition_new(CONDITION_VIRTUALIZATION, rvalue, negate)))
+ if (!(c = condition_new(CONDITION_VIRTUALIZATION, rvalue, trigger, negate)))
return -ENOMEM;
LIST_PREPEND(Condition, conditions, u->meta.conditions, c);
@@ -1488,7 +1497,7 @@
Unit *u = data;
Condition *c;
- bool negate;
+ bool trigger, negate;
int b;
assert(filename);
@@ -1496,6 +1505,9 @@
assert(rvalue);
assert(data);
+ if ((trigger = rvalue[0] == '|'))
+ rvalue++;
+
if ((negate = rvalue[0] == '!'))
rvalue++;
@@ -1507,7 +1519,7 @@
if (!b)
negate = !negate;
- if (!(c = condition_new(CONDITION_NULL, NULL, negate)))
+ if (!(c = condition_new(CONDITION_NULL, NULL, trigger, negate)))
return -ENOMEM;
LIST_PREPEND(Condition, conditions, u->meta.conditions, c);