chiark / gitweb /
pubkeys: Introduce `pkgf' fallback groups
[secnet.git] / pubkeys.fl.pl
index da22a251e45a6e3427c0195a67546455e5afc7e2..9b6bb9b9ee5a76097ca07a06deefb386a5456496 100755 (executable)
@@ -73,10 +73,15 @@ sub inst ($) {
 
 while (<DATA>) {
     s#\{!2(\w+)\}# '{'.(2 * ($subst{$1}//die "$1 ?")).'}' #ge;
-    if (m/^!KEYWORD ([-0-9a-z]+)(\s*\{.*\})?$/) {
+    if (m/^!(KEYWORD|KWALIAS) ([-0-9a-z]+)(\s*\{.*\})?$/) {
        my $kwt=$2;
-       die if $kw;
-       $kw = $1;
+       if ($1 eq 'KEYWORD') {
+           die if $kw;
+           $kw = $kwt;
+       } else {
+           die if @next_kw;
+           die unless $kw;
+       }
        my $xact = $3 // '';
        $kwid = $kw; $kwid =~ y/-/_/;
        $in_s = "HK_${kwid}";
@@ -193,6 +198,7 @@ static struct pubkeyset_context c[1];
 %%
 
 !KEYWORD pkg  { c->fallback_skip=0; }
+!KWALIAS pkgf { c->fallback_skip=!!c->building->nkeys; }
 !ARG id [0-9a-f]{!2GRPIDSZ} {
     HEX2BIN_ARRAY(c->grpid);
 !}