logo

live-bootstrap

Mirror of <https://github.com/fosslinux/live-bootstrap>
commit: 9384a5d432a7b246810e6c62d3f226df1239daab
parent 133c05426c2133c60bdb0b42c1dda64b3bc6bb7d
Author: Gábor Stefanik <netrolller.3d@gmail.com>
Date:   Mon,  1 Jan 2024 22:55:21 +0100

Support "!=" comparisons in script-generator

Diffstat:

Mseed/script-generator.c16+++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)

diff --git a/seed/script-generator.c b/seed/script-generator.c @@ -214,11 +214,12 @@ Token *logic(Token *tok, char **val) { /* logic = "(" * (name | * (name "==" value) | + * (name "!=" value) | * (logic "||" logic) | * (logic "&&" logic)) * ")" */ - + char *lhs = tok->val; char *rhs; tok = tok->next; @@ -235,8 +236,17 @@ Token *logic(Token *tok, char **val) { } else { lhs = "False"; } - } else { - fputs("Expected == after ", stderr); + } else if (strcmp(tok->val, "!=") == 0) { + /* Case for inequality. */ + rhs = tok->next->val; + tok = tok->next->next; + if (strcmp(get_var(lhs), rhs) == 0) { + lhs = "False"; + } else { + lhs = "True"; + } + } else { + fputs("Expected == or != after ", stderr); fputs(lhs, stderr); fputs(" in logic\n", stderr); exit(1);