X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=sam_header.c;h=88b6a1c856bbf4e6b073c7c8d6e394c1a305094e;hb=28391e5898804ce6b805016d8c676fdf61442eb3;hp=ddc2c38569f4ee0430439bc10a6e34240939ed5d;hpb=dbc7644895129440a9b1d7b448d5d8046b7af5d4;p=samtools.git diff --git a/sam_header.c b/sam_header.c index ddc2c38..88b6a1c 100644 --- a/sam_header.c +++ b/sam_header.c @@ -770,4 +770,41 @@ void *sam_header_merge(int n, const void **_dicts) return out_dict; } +char **sam_header2tbl_n(const void *dict, const char type[2], const char *tags[], int *n) +{ + int nout = 0; + char **out = NULL; + + *n = 0; + list_t *l = (list_t *)dict; + if ( !l ) return NULL; + + int i, ntags = 0; + while ( tags[ntags] ) ntags++; + + while (l) + { + HeaderLine *hline = l->data; + if ( hline->type[0]!=type[0] || hline->type[1]!=type[1] ) + { + l = l->next; + continue; + } + out = (char**) realloc(out, sizeof(char*)*(nout+1)*ntags); + for (i=0; ivalue; + } + nout++; + l = l->next; + } + *n = nout; + return out; +}