diff options
| author | epoch <epoch@hacking.allowed.org> | 2020-07-05 08:18:09 -0500 | 
|---|---|---|
| committer | epoch <epoch@hacking.allowed.org> | 2020-07-05 08:18:09 -0500 | 
| commit | d9708580e6679a9b9924856b59b0133d15fda2c2 (patch) | |
| tree | 11658e7f6f207d937f87229f3e79c9222e770736 /src | |
| parent | f0083dfdcb930b1014bbbd7c98207b7255bcc4c8 (diff) | |
| download | hackvr-d9708580e6679a9b9924856b59b0133d15fda2c2.tar.gz hackvr-d9708580e6679a9b9924856b59b0133d15fda2c2.zip | |
subsume got multiple group globbing and actually works again
Diffstat (limited to 'src')
| -rw-r--r-- | src/hackvr.c | 19 | 
1 files changed, 16 insertions, 3 deletions
| diff --git a/src/hackvr.c b/src/hackvr.c index 6dea5b9..775564a 100644 --- a/src/hackvr.c +++ b/src/hackvr.c @@ -156,7 +156,7 @@ int hackvr_handler(char *line) {    int len;    int j,i,k,l;    unsigned int key_count; -  c3_group_rel_t *gr; +  c3_group_rel_t *gr,*pgr;    real tmpx,tmpy,tmpz;    char **a;    char **keys; @@ -447,8 +447,21 @@ int hackvr_handler(char *line) {  /* ---------- */    if(helping) fprintf(stderr,"#   subsume child-group\n");    if(!strcmp(command,"subsume")) { -   gr=get_group_relative(a[2]);//we need the child's group relative... -   gr->parent = gr->id; +   if(strchr(a[2],'*')) { +    for(i=0;i < global.ht_group.kl;i++) { +     for(m=global.ht_group.bucket[global.ht_group.keys[i]]->ll;m;m=m->next) { +      if(!glob_match(id,m->original)) { +       gr=m->target; +       pgr=get_group_relative(id); +       gr->parent = pgr->id; +      } +     } +    } +   } else { +    gr=get_group_relative(a[2]);//we need the child's group relative... +    pgr=get_group_relative(id); +    gr->parent = pgr->id; +   }     ret=0;     return ret;    } | 
