]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
add "&=" and "|="
authorAlan T. DeKok <aland@freeradius.org>
Sun, 5 Dec 2021 20:06:55 +0000 (15:06 -0500)
committerAlan T. DeKok <aland@freeradius.org>
Tue, 7 Dec 2021 13:32:20 +0000 (08:32 -0500)
src/lib/util/token.c
src/lib/util/token.h

index 706cb400acd3980ecc4d0775a179e79d0df47d34..a6f4a2c0e53e75fad62272125f3550688e6990c9 100644 (file)
@@ -46,6 +46,8 @@ fr_table_num_ordered_t const fr_tokens_table[] = {
        { L("!*"),      T_OP_CMP_FALSE  },
        { L("=="),      T_OP_CMP_EQ     },
        { L("^="),      T_OP_PREPEND    },
+       { L("|="),      T_OP_OR_EQ      },
+       { L("&="),      T_OP_AND_EQ     },
        { L("="),       T_OP_EQ         },
        { L("!="),      T_OP_NE         },
        { L(">="),      T_OP_GE         },
@@ -93,6 +95,8 @@ char const *fr_tokens[T_TOKEN_LAST] = {
        [T_OP_SUB_EQ] = "-=",
        [T_OP_SET]    = ":=",
        [T_OP_EQ]     = "=",
+       [T_OP_OR_EQ]  = "|=",
+       [T_OP_AND_EQ]  = "&=",
 
        [T_OP_NE]     = "!=",
        [T_OP_GE]     = ">=",
@@ -148,6 +152,8 @@ const bool fr_assignment_op[T_TOKEN_LAST] = {
        T(SET),
        T(EQ),
        T(PREPEND),
+       T(OR_EQ),
+       T(AND_EQ),
 };
 
 const bool fr_equality_op[T_TOKEN_LAST] = {
index 13519353b9278fd9f4f7f39a9fb9634f46412a3d..2614f32f2ad7638246edc1c174adda2431af36e8 100644 (file)
@@ -64,6 +64,9 @@ typedef enum fr_token {
        T_OP_SUB_EQ,                    /* -= */
        T_OP_SET,                       /* := */
        T_OP_PREPEND,                   /* ^= */
+#define T_OP_XOR_EQ T_OP_PREPEND
+       T_OP_OR_EQ,                     /* |= */
+       T_OP_AND_EQ,                    /* &= */
 
        T_OP_EQ,                        /* = */