Index: trunk/src/plug_import.c =================================================================== --- trunk/src/plug_import.c (revision 29473) +++ trunk/src/plug_import.c (revision 29474) @@ -114,7 +114,7 @@ if (fp != NULL) fclose(fp); - return plug->import(plug, aspect, filename); + return plug->import(plug, aspect, &filename, 1); } int pcb_import_netlist(pcb_hidlib_t *hidlib, char *filename) Index: trunk/src/plug_import.h =================================================================== --- trunk/src/plug_import.h (revision 29473) +++ trunk/src/plug_import.h (revision 29474) @@ -53,7 +53,9 @@ int (*fmt_support_prio)(pcb_plug_import_t *ctx, unsigned int aspects, FILE *f, const char *filename); /* Perform the import; return 0 on success */ - int (*import)(pcb_plug_import_t *ctx, unsigned int aspects, const char *fn); + int (*import)(pcb_plug_import_t *ctx, unsigned int aspects, const char **fns, int numfns); + + unsigned single_file:1; /* accepts only one file in each ->import() call */ }; extern pcb_plug_import_t *pcb_plug_import_chain; Index: trunk/src_plugins/import_edif/import_edif.c =================================================================== --- trunk/src_plugins/import_edif/import_edif.c (revision 29473) +++ trunk/src_plugins/import_edif/import_edif.c (revision 29474) @@ -66,9 +66,16 @@ extern int ReadEdifNetlist(char *filename); -static int edif_import(pcb_plug_import_t *ctx, unsigned int aspects, const char *fn) +static int edif_import(pcb_plug_import_t *ctx, unsigned int aspects, const char **fns, int numfns) { - int ret = ReadEdifNetlist((char *)fn); + int ret; + + if (numfns != 1) { + pcb_message(PCB_MSG_ERROR, "import_edif: requires exactly 1 input file name\n"); + return -1; + } + + ret = ReadEdifNetlist((char *)fns[0]); if (ret == 0) pcb_ratspatch_make_edited(PCB); return ret; @@ -91,6 +98,7 @@ import_edif.fmt_support_prio = edif_support_prio; import_edif.import = edif_import; import_edif.name = "EDIF netlist (flat)"; + import_edif.single_file = 1; PCB_HOOK_REGISTER(pcb_plug_import_t, pcb_plug_import_chain, &import_edif); Index: trunk/src_plugins/import_gnetlist/import_gnetlist.c =================================================================== --- trunk/src_plugins/import_gnetlist/import_gnetlist.c (revision 29473) +++ trunk/src_plugins/import_gnetlist/import_gnetlist.c (revision 29474) @@ -53,7 +53,7 @@ return 100; } -static int gnetlist_import_files(pcb_plug_import_t *ctx, unsigned int aspects, const char **fns, int numfns) +static int gnetlist_import(pcb_plug_import_t *ctx, unsigned int aspects, const char **fns, int numfns) { char **cmd; int n, res, verbose; @@ -100,11 +100,6 @@ return res; } -static int gnetlist_import(pcb_plug_import_t *ctx, unsigned int aspects, const char *fn) -{ - return gnetlist_import_files(ctx, aspects, &fn, 1); -} - int pplg_check_ver_import_gnetlist(int ver_needed) { return 0; } void pplg_uninit_import_gnetlist(void) @@ -123,6 +118,7 @@ import_gnetlist.fmt_support_prio = gnetlist_support_prio; import_gnetlist.import = gnetlist_import; import_gnetlist.name = "gEDA sch using gnetlist"; + import_gnetlist.single_file = 0; PCB_HOOK_REGISTER(pcb_plug_import_t, pcb_plug_import_chain, &import_gnetlist); Index: trunk/src_plugins/import_net_cmd/import_net_cmd.c =================================================================== --- trunk/src_plugins/import_net_cmd/import_net_cmd.c (revision 29473) +++ trunk/src_plugins/import_net_cmd/import_net_cmd.c (revision 29474) @@ -45,7 +45,7 @@ } -static int net_cmd_import(pcb_plug_import_t *ctx, unsigned int aspects, const char *fn) +static int net_cmd_import(pcb_plug_import_t *ctx, unsigned int aspects, const char **fns, int numfns) { return -1; } @@ -67,6 +67,7 @@ import_net_cmd.fmt_support_prio = net_cmd_support_prio; import_net_cmd.import = net_cmd_import; import_net_cmd.name = "sch/netlist by cmd"; + import_net_cmd.single_file = 0; PCB_HOOK_REGISTER(pcb_plug_import_t, pcb_plug_import_chain, &import_net_cmd); Index: trunk/src_plugins/import_netlist/import_netlist.c =================================================================== --- trunk/src_plugins/import_netlist/import_netlist.c (revision 29473) +++ trunk/src_plugins/import_netlist/import_netlist.c (revision 29474) @@ -165,9 +165,13 @@ } -static int netlist_import(pcb_plug_import_t *ctx, unsigned int aspects, const char *fn) +static int netlist_import(pcb_plug_import_t *ctx, unsigned int aspects, const char **fns, int numfns) { - return ReadNetlist(fn); + if (numfns != 1) { + pcb_message(PCB_MSG_ERROR, "import_netlist: requires exactly 1 input file name\n"); + return -1; + } + return ReadNetlist(fns[0]); } int pplg_check_ver_import_netlist(int ver_needed) { return 0; } @@ -187,6 +191,7 @@ import_netlist.fmt_support_prio = netlist_support_prio; import_netlist.import = netlist_import; import_netlist.name = "gEDA netlist"; + import_netlist.single_file = 1; PCB_HOOK_REGISTER(pcb_plug_import_t, pcb_plug_import_chain, &import_netlist);