Index: read.c =================================================================== --- read.c (revision 35744) +++ read.c (revision 35745) @@ -1998,8 +1998,10 @@ for(n = CHILDREN(npkgs); n != NULL; n = NEXT(n)) { if (strcmp(NODENAME(n), "package") == 0) { const char *name = GET_PROP(n, "name"); - res = head; - pcb_io_fp_map_append(&tail, head, fn, name); + if (name != NULL) { + res = head; + pcb_io_fp_map_append(&tail, head, fn, name); + } } } } @@ -2014,7 +2016,7 @@ { int res = -1; read_state_t st_tmp = {0}, *st = &st_tmp; - trnode_t *nlayers, *npkgs; + trnode_t *nlayers, *npkgs, *n, *npkg = NULL; /* have not read design rules section yet but need this for rectangle parsing */ @@ -2037,6 +2039,20 @@ } + for(n = CHILDREN(npkgs); n != NULL; n = NEXT(n)) { + if (strcmp(NODENAME(n), "package") == 0) { + const char *name = GET_PROP(n, "name"); + if ((subfpname == NULL) || ((name != NULL) && (strcmp(name, subfpname) == 0))) { + npkg = n; + break; + } + } + } + + if (npkg != NULL) { + TODO("Read the actual package here"); + } + error:; st_uninit(st); return res;