commit 072028198fd35dfd25c9920dc6b65202ab5fabc7 from: Stefan Sperling via: Thomas Adam date: Mon Nov 06 20:40:23 2023 UTC allow setting variables in gotd.conf; code from gotwebd/parse.y ok op@ commit - 13b527d9f7a404e302b54452dd2eb9fc65ed9bab commit + 072028198fd35dfd25c9920dc6b65202ab5fabc7 blob - 7e544cbf50afb3992f764d956ab4de19a3d67a3c blob + 7f0792c2d67f76688341bc2d4b073d5d09180b4f --- gotd/parse.y +++ gotd/parse.y @@ -127,10 +127,29 @@ typedef struct { grammar : | grammar '\n' + | grammar varset '\n' | grammar main '\n' | grammar repository '\n' ; +varset : STRING '=' STRING { + char *s = $1; + while (*s++) { + if (isspace((unsigned char)*s)) { + yyerror("macro name cannot contain " + "whitespace"); + free($1); + free($3); + YYERROR; + } + } + if (symset($1, $3, 0) == -1) + fatal("cannot store variable"); + free($1); + free($3); + } + ; + timeout : NUMBER { if ($1 < 0) { yyerror("invalid timeout: %lld", $1);