Index: trunk/src/plug_footprint.c =================================================================== --- trunk/src/plug_footprint.c (revision 16356) +++ trunk/src/plug_footprint.c (revision 16357) @@ -114,7 +114,24 @@ FILE *pcb_fp_fopen(const char *path, const char *name, pcb_fp_fopen_ctx_t *fctx) { FILE *res = NULL; - PCB_HOOK_CALL(pcb_plug_fp_t, pcb_plug_fp_chain, fp_fopen, res, != NULL, (self, path, name, fctx)); + if (strchr(path, ':') != NULL) { + char *tmp, *next, *curr; + + curr = tmp = pcb_strdup(path); + while((res == NULL) && (curr != NULL)) { + next = strchr(curr, ':'); + if (next != NULL) { + *next= '\0'; + next++; + } + + PCB_HOOK_CALL(pcb_plug_fp_t, pcb_plug_fp_chain, fp_fopen, res, != NULL, (self, curr, name, fctx)); + curr = next; + } + free(tmp); + } + else + PCB_HOOK_CALL(pcb_plug_fp_t, pcb_plug_fp_chain, fp_fopen, res, != NULL, (self, path, name, fctx)); return res; }