Index: trunk/src/plug_io.c =================================================================== --- trunk/src/plug_io.c (revision 14145) +++ trunk/src/plug_io.c (revision 14146) @@ -177,7 +177,7 @@ if((fgetc(ft) != EOF)) { rewind(ft); for(n = 0; n < len; n++) { - if ((available[n].plug->test_parse_pcb == NULL) || (available[n].plug->test_parse_pcb(available[n].plug, NULL, Filename, ft))) { + if ((available[n].plug->test_parse == NULL) || (available[n].plug->test_parse(available[n].plug, type, Filename, ft))) { accepts[n] = 1; (*accept_total)++; } Index: trunk/src/plug_io.h =================================================================== --- trunk/src/plug_io.h (revision 14145) +++ trunk/src/plug_io.h (revision 14146) @@ -57,13 +57,13 @@ */ int (*fmt_support_prio)(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, int wr, const char *fmt); - /* Test if the given board is readable by the plugin. The plugin should return + /* Test if the given file is readable by the plugin. The plugin should return 1 if it can handle the file or 0 if it can not. This check is not a deep syntax analysis; the plugin should read barely enough headers to decide if the file contains a the format it expect, then return error from parse_pcb if there are syntax errors later. The file is open for read and positioned to file begin in f */ - int (*test_parse_pcb)(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); + int (*test_parse)(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); /* Attempt to load a pcb design from Filename to Ptr. Conf subtree at settings_dest is replaced by settings loaded from the Index: trunk/src_plugins/io_autotrax/io_autotrax.c =================================================================== --- trunk/src_plugins/io_autotrax/io_autotrax.c (revision 14145) +++ trunk/src_plugins/io_autotrax/io_autotrax.c (revision 14146) @@ -116,7 +116,7 @@ /* register the IO hook */ io_autotrax.plugin_data = NULL; io_autotrax.fmt_support_prio = io_autotrax_fmt; - io_autotrax.test_parse_pcb = io_autotrax_test_parse_pcb; + io_autotrax.test_parse = io_autotrax_test_parse; io_autotrax.parse_pcb = io_autotrax_read_pcb; io_autotrax.parse_element = NULL; io_autotrax.parse_font = NULL; Index: trunk/src_plugins/io_autotrax/read.c =================================================================== --- trunk/src_plugins/io_autotrax/read.c (revision 14145) +++ trunk/src_plugins/io_autotrax/read.c (revision 14146) @@ -1104,7 +1104,7 @@ return readres; } -int io_autotrax_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_autotrax_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { char line[1024], *s; Index: trunk/src_plugins/io_autotrax/read.h =================================================================== --- trunk/src_plugins/io_autotrax/read.h (revision 14145) +++ trunk/src_plugins/io_autotrax/read.h (revision 14146) @@ -30,5 +30,5 @@ #include #include "data.h" -int io_autotrax_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +int io_autotrax_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); int io_autotrax_read_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, conf_role_t settings_dest); Index: trunk/src_plugins/io_eagle/io_eagle.c =================================================================== --- trunk/src_plugins/io_eagle/io_eagle.c (revision 14145) +++ trunk/src_plugins/io_eagle/io_eagle.c (revision 14146) @@ -66,7 +66,7 @@ /* register the IO hook */ io_eagle_xml.plugin_data = NULL; io_eagle_xml.fmt_support_prio = io_eagle_fmt; - io_eagle_xml.test_parse_pcb = io_eagle_test_parse_pcb_xml; + io_eagle_xml.test_parse = io_eagle_test_parse_xml; io_eagle_xml.parse_pcb = io_eagle_read_pcb_xml; /* io_eagle_xml.parse_element = NULL; io_eagle_xml.parse_font = NULL; @@ -85,7 +85,7 @@ /* register the IO hook */ io_eagle_bin.plugin_data = NULL; io_eagle_bin.fmt_support_prio = io_eagle_fmt; - io_eagle_bin.test_parse_pcb = io_eagle_test_parse_pcb_bin; + io_eagle_bin.test_parse = io_eagle_test_parse_bin; io_eagle_bin.parse_pcb = io_eagle_read_pcb_bin; /* io_eagle_bin.parse_element = NULL; io_eagle_bin.parse_font = NULL; @@ -104,7 +104,7 @@ /* register the IO hook */ io_eagle_dru.plugin_data = NULL; io_eagle_dru.fmt_support_prio = io_eagle_fmt; - io_eagle_dru.test_parse_pcb = io_eagle_test_parse_pcb_dru; + io_eagle_dru.test_parse = io_eagle_test_parse_dru; io_eagle_dru.parse_pcb = io_eagle_read_pcb_dru; io_eagle_dru.parse_element = NULL; io_eagle_dru.parse_font = NULL; Index: trunk/src_plugins/io_eagle/read.c =================================================================== --- trunk/src_plugins/io_eagle/read.c (revision 14145) +++ trunk/src_plugins/io_eagle/read.c (revision 14146) @@ -181,7 +181,7 @@ -int io_eagle_test_parse_pcb_xml(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_eagle_test_parse_xml(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { char line[1024]; int found = 0, lineno = 0; @@ -199,7 +199,7 @@ return 0; } -int io_eagle_test_parse_pcb_bin(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_eagle_test_parse_bin(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { unsigned char buff[2]; int read_length = fread(buff, 1, 2, f); Index: trunk/src_plugins/io_eagle/read.h =================================================================== --- trunk/src_plugins/io_eagle/read.h (revision 14145) +++ trunk/src_plugins/io_eagle/read.h (revision 14146) @@ -1,8 +1,10 @@ #include "board.h" #include "conf.h" -int io_eagle_test_parse_pcb_xml(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +#include "plug_io.h" + +int io_eagle_test_parse_xml(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); int io_eagle_read_pcb_xml(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, conf_role_t settings_dest); -int io_eagle_test_parse_pcb_bin(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +int io_eagle_test_parse_bin(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); int io_eagle_read_pcb_bin(pcb_plug_io_t *ctx, pcb_board_t *pcb, const char *Filename, conf_role_t settings_dest); Index: trunk/src_plugins/io_eagle/read_dru.c =================================================================== --- trunk/src_plugins/io_eagle/read_dru.c (revision 14145) +++ trunk/src_plugins/io_eagle/read_dru.c (revision 14146) @@ -135,7 +135,7 @@ #include "layer_grp.h" #include "error.h" -int io_eagle_test_parse_pcb_dru(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_eagle_test_parse_dru(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { return pcb_eagle_dru_test_parse(f); } Index: trunk/src_plugins/io_eagle/read_dru.h =================================================================== --- trunk/src_plugins/io_eagle/read_dru.h (revision 14145) +++ trunk/src_plugins/io_eagle/read_dru.h (revision 14146) @@ -6,7 +6,7 @@ #ifndef PCB_EAGLE_DRU_PARSER_TEST #include "plug_io.h" -int io_eagle_test_parse_pcb_dru(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +int io_eagle_test_parse_dru(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); int io_eagle_read_pcb_dru(pcb_plug_io_t *ctx, pcb_board_t *pcb, const char *Filename, conf_role_t settings_dest); #endif Index: trunk/src_plugins/io_hyp/io_hyp.c =================================================================== --- trunk/src_plugins/io_hyp/io_hyp.c (revision 14145) +++ trunk/src_plugins/io_hyp/io_hyp.c (revision 14146) @@ -122,7 +122,7 @@ PCB_REGISTER_ACTIONS(hyp_action_list, hyp_cookie) /* cheap, partial read of the file to determine if it is worth running the real parser */ - int io_hyp_test_parse_pcb(pcb_plug_io_t * ctx, pcb_board_t * Ptr, const char *Filename, FILE * f) +int io_hyp_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE * f) { char line[1024]; int found = 0, lineno = 0; @@ -163,7 +163,7 @@ /* register the IO hook */ io_hyp.plugin_data = NULL; io_hyp.fmt_support_prio = io_hyp_fmt; - io_hyp.test_parse_pcb = io_hyp_test_parse_pcb; + io_hyp.test_parse = io_hyp_test_parse; io_hyp.parse_pcb = io_hyp_read_pcb; /* io_hyp.parse_element = NULL; io_hyp.parse_font = NULL; Index: trunk/src_plugins/io_kicad/io_kicad.c =================================================================== --- trunk/src_plugins/io_kicad/io_kicad.c (revision 14145) +++ trunk/src_plugins/io_kicad/io_kicad.c (revision 14146) @@ -73,7 +73,7 @@ /* register the IO hook */ io_kicad.plugin_data = NULL; io_kicad.fmt_support_prio = io_kicad_fmt; - io_kicad.test_parse_pcb = io_kicad_test_parse_pcb; + io_kicad.test_parse = io_kicad_test_parse; io_kicad.parse_pcb = io_kicad_read_pcb; io_kicad.parse_element = NULL; io_kicad.parse_font = NULL; Index: trunk/src_plugins/io_kicad/read.c =================================================================== --- trunk/src_plugins/io_kicad/read.c (revision 14145) +++ trunk/src_plugins/io_kicad/read.c (revision 14146) @@ -2238,7 +2238,7 @@ return readres; } -int io_kicad_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_kicad_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { char line[1024], *s; Index: trunk/src_plugins/io_kicad/read.h =================================================================== --- trunk/src_plugins/io_kicad/read.h (revision 14145) +++ trunk/src_plugins/io_kicad/read.h (revision 14146) @@ -30,5 +30,5 @@ #include #include "data.h" -int io_kicad_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +int io_kicad_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); int io_kicad_read_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, conf_role_t settings_dest); Index: trunk/src_plugins/io_lihata/io_lihata.c =================================================================== --- trunk/src_plugins/io_lihata/io_lihata.c (revision 14145) +++ trunk/src_plugins/io_lihata/io_lihata.c (revision 14146) @@ -67,7 +67,7 @@ /* register the IO hook */ plug_io_lihata_v4.plugin_data = NULL; plug_io_lihata_v4.fmt_support_prio = io_lihata_fmt; - plug_io_lihata_v4.test_parse_pcb = io_lihata_test_parse_pcb; + plug_io_lihata_v4.test_parse = io_lihata_test_parse; plug_io_lihata_v4.parse_pcb = io_lihata_parse_pcb; plug_io_lihata_v4.parse_element = io_lihata_parse_element; plug_io_lihata_v4.parse_font = io_lihata_parse_font; @@ -86,7 +86,7 @@ plug_io_lihata_v3.plugin_data = NULL; plug_io_lihata_v3.fmt_support_prio = io_lihata_fmt; - plug_io_lihata_v3.test_parse_pcb = io_lihata_test_parse_pcb; + plug_io_lihata_v3.test_parse = io_lihata_test_parse; plug_io_lihata_v3.parse_pcb = io_lihata_parse_pcb; plug_io_lihata_v3.parse_element = io_lihata_parse_element; plug_io_lihata_v3.parse_font = io_lihata_parse_font; @@ -105,7 +105,7 @@ plug_io_lihata_v2.plugin_data = NULL; plug_io_lihata_v2.fmt_support_prio = io_lihata_fmt; - plug_io_lihata_v2.test_parse_pcb = io_lihata_test_parse_pcb; + plug_io_lihata_v2.test_parse = io_lihata_test_parse; plug_io_lihata_v2.parse_pcb = io_lihata_parse_pcb; plug_io_lihata_v2.parse_element = NULL; plug_io_lihata_v2.parse_font = io_lihata_parse_font; @@ -124,7 +124,7 @@ plug_io_lihata_v1.plugin_data = NULL; plug_io_lihata_v1.fmt_support_prio = io_lihata_fmt; - plug_io_lihata_v1.test_parse_pcb = io_lihata_test_parse_pcb; + plug_io_lihata_v1.test_parse = io_lihata_test_parse; plug_io_lihata_v1.parse_pcb = io_lihata_parse_pcb; plug_io_lihata_v1.parse_element = NULL; plug_io_lihata_v1.parse_font = io_lihata_parse_font; Index: trunk/src_plugins/io_lihata/read.c =================================================================== --- trunk/src_plugins/io_lihata/read.c (revision 14145) +++ trunk/src_plugins/io_lihata/read.c (revision 14146) @@ -1755,7 +1755,7 @@ - not a valid lihata doc (parser error) - lihata, but the wrong root */ -int io_lihata_test_parse_pcb(pcb_plug_io_t *plug_ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_lihata_test_parse(pcb_plug_io_t *plug_ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { lht_parse_t ctx; int count; Index: trunk/src_plugins/io_lihata/read.h =================================================================== --- trunk/src_plugins/io_lihata/read.h (revision 14145) +++ trunk/src_plugins/io_lihata/read.h (revision 14146) @@ -24,7 +24,9 @@ * mailing list: pcb-rnd (at) list.repo.hu (send "subscribe") */ -int io_lihata_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +#include "plug_io.h" + +int io_lihata_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); int io_lihata_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, conf_role_t settings_dest); int io_lihata_parse_font(pcb_plug_io_t *ctx, pcb_font_t *Ptr, const char *Filename); int io_lihata_parse_element(pcb_plug_io_t *ctx, pcb_data_t *Ptr, const char *name); Index: trunk/src_plugins/io_mentor_cell/io_mentor_cell.c =================================================================== --- trunk/src_plugins/io_mentor_cell/io_mentor_cell.c (revision 14145) +++ trunk/src_plugins/io_mentor_cell/io_mentor_cell.c (revision 14146) @@ -63,7 +63,7 @@ /* register the IO hook */ io_mentor_cell.plugin_data = NULL; io_mentor_cell.fmt_support_prio = io_mentor_cell_fmt; - io_mentor_cell.test_parse_pcb = io_mentor_cell_test_parse_pcb; + io_mentor_cell.test_parse = io_mentor_cell_test_parse; io_mentor_cell.parse_pcb = io_mentor_cell_read_pcb; io_mentor_cell.parse_element = NULL; io_mentor_cell.parse_font = NULL; Index: trunk/src_plugins/io_mentor_cell/read.c =================================================================== --- trunk/src_plugins/io_mentor_cell/read.c (revision 14145) +++ trunk/src_plugins/io_mentor_cell/read.c (revision 14146) @@ -425,7 +425,7 @@ return res; } -int io_mentor_cell_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_mentor_cell_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { char line[1024], *s; Index: trunk/src_plugins/io_mentor_cell/read.h =================================================================== --- trunk/src_plugins/io_mentor_cell/read.h (revision 14145) +++ trunk/src_plugins/io_mentor_cell/read.h (revision 14146) @@ -1,2 +1,2 @@ int io_mentor_cell_read_pcb(pcb_plug_io_t *ctx, pcb_board_t *pcb, const char *fn, conf_role_t settings_dest); -int io_mentor_cell_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +int io_mentor_cell_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); Index: trunk/src_plugins/io_pcb/file.c =================================================================== --- trunk/src_plugins/io_pcb/file.c (revision 14145) +++ trunk/src_plugins/io_pcb/file.c (revision 14146) @@ -841,7 +841,7 @@ } -int io_pcb_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +int io_pcb_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { char line[1024]; int bad = 0; Index: trunk/src_plugins/io_pcb/file.h =================================================================== --- trunk/src_plugins/io_pcb/file.h (revision 14145) +++ trunk/src_plugins/io_pcb/file.h (revision 14146) @@ -64,7 +64,7 @@ void PreLoadElementPCB(void); void PostLoadElementPCB(void); -int io_pcb_test_parse_pcb(pcb_plug_io_t *ctx, pcb_board_t *Ptr, const char *Filename, FILE *f); +int io_pcb_test_parse(pcb_plug_io_t *ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f); /* * Whenever the pcb file format is modified, this version number Index: trunk/src_plugins/io_pcb/io_pcb.c =================================================================== --- trunk/src_plugins/io_pcb/io_pcb.c (revision 14145) +++ trunk/src_plugins/io_pcb/io_pcb.c (revision 14146) @@ -69,7 +69,7 @@ ctx[0].write_coord_fmt = pcb_printf_slot[8]; io_pcb[0].plugin_data = &ctx[0]; io_pcb[0].fmt_support_prio = io_pcb_fmt; - io_pcb[0].test_parse_pcb = io_pcb_test_parse_pcb; + io_pcb[0].test_parse = io_pcb_test_parse; io_pcb[0].parse_pcb = io_pcb_ParsePCB; io_pcb[0].parse_element = io_pcb_ParseElement; io_pcb[0].parse_font = io_pcb_ParseFont; Index: trunk/src_plugins/io_tedax/io_tedax.c =================================================================== --- trunk/src_plugins/io_tedax/io_tedax.c (revision 14145) +++ trunk/src_plugins/io_tedax/io_tedax.c (revision 14146) @@ -138,7 +138,7 @@ return tedax_fp_fsave(buff->Data, f); } -static int io_tedax_test_parse_pcb(pcb_plug_io_t *plug_ctx, pcb_board_t *Ptr, const char *Filename, FILE *f) +static int io_tedax_test_parse(pcb_plug_io_t *plug_ctx, pcb_plug_iot_t typ, const char *Filename, FILE *f) { char line[515], *s; int n; @@ -191,7 +191,7 @@ /* register the IO hook */ io_tedax.plugin_data = NULL; io_tedax.fmt_support_prio = io_tedax_fmt; - io_tedax.test_parse_pcb = io_tedax_test_parse_pcb; + io_tedax.test_parse = io_tedax_test_parse; io_tedax.parse_pcb = io_tedax_parse_pcb; io_tedax.parse_element = io_tedax_parse_element; io_tedax.parse_font = NULL;