compare: add macro for operator charset

This commit is contained in:
Lennart Poettering
2022-09-01 23:16:13 +02:00
parent 5f6b2d394b
commit 4803b0bcaa
2 changed files with 5 additions and 2 deletions
+3
View File
@@ -4,6 +4,9 @@
#include <errno.h>
#include <stdbool.h>
#define COMPARE_OPERATOR_CHARS "!<=>"
#define COMPARE_OPERATOR_WITH_FNMATCH_CHARS COMPARE_OPERATOR_CHARS "$"
typedef enum CompareOperator {
/* Listed in order of checking. Note that some comparators are prefixes of others, hence the longest
* should be listed first. */
+2 -2
View File
@@ -257,7 +257,7 @@ static int condition_test_osrelease(Condition *c, char **env) {
/* parse_compare_operator() needs the string to start with the comparators */
word = condition;
r = extract_first_word(&word, &key, "!<=>$", EXTRACT_RETAIN_SEPARATORS);
r = extract_first_word(&word, &key, COMPARE_OPERATOR_WITH_FNMATCH_CHARS, EXTRACT_RETAIN_SEPARATORS);
if (r < 0)
return log_debug_errno(r, "Failed to parse parameter: %m");
/* The os-release spec mandates env-var-like key names */
@@ -518,7 +518,7 @@ static int condition_test_firmware_smbios_field(const char *expression) {
assert(expression);
/* Parse SMBIOS field */
r = extract_first_word(&expression, &field, "!<=>$", EXTRACT_RETAIN_SEPARATORS);
r = extract_first_word(&expression, &field, COMPARE_OPERATOR_WITH_FNMATCH_CHARS, EXTRACT_RETAIN_SEPARATORS);
if (r < 0)
return r;
if (r == 0 || isempty(expression))