Index: cam/cam.c =================================================================== --- cam/cam.c (revision 36997) +++ cam/cam.c (revision 36998) @@ -264,7 +264,7 @@ return 1; } -static void export_cam_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void export_cam_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { if (!cam_export_has_outfile) cam_init_inst_fn(&cam_export_ctx); Index: cam/cam_compile.c =================================================================== --- cam/cam_compile.c (revision 36997) +++ cam/cam_compile.c (revision 36998) @@ -118,7 +118,7 @@ { /* call the exporter */ void *old_vars, *tmp; old_vars = pcb_cam_vars_use(ctx->vars); - ctx->exporter->do_export(ctx->exporter, 0); + ctx->exporter->do_export(ctx->exporter, ctx->hidlib, 0, NULL); tmp = pcb_cam_vars_use(old_vars); assert(tmp == ctx->vars); /* we must be restoring from our own context else the recursion is broken */ } Index: export_bom/bom.c =================================================================== --- export_bom/bom.c (revision 36997) +++ export_bom/bom.c (revision 36998) @@ -222,7 +222,7 @@ return 0; } -static void bom_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void bom_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { pcb_cam_t cam; Index: export_c_draw/export_c_draw.c =================================================================== --- export_c_draw/export_c_draw.c (revision 36997) +++ export_c_draw/export_c_draw.c (revision 36998) @@ -118,7 +118,7 @@ rnd_conf_update(NULL, -1); /* restore forced sets */ } -static void c_draw_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void c_draw_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; int save_ons[PCB_MAX_LAYER]; Index: export_debug/export_debug.c =================================================================== --- export_debug/export_debug.c (revision 36997) +++ export_debug/export_debug.c (revision 36998) @@ -126,7 +126,7 @@ rnd_conf_update(NULL, -1); /* restore forced sets */ } -static void debug_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void debug_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; int save_ons[PCB_MAX_LAYER]; Index: export_dxf/dxf.c =================================================================== --- export_dxf/dxf.c (revision 36997) +++ export_dxf/dxf.c (revision 36998) @@ -261,7 +261,7 @@ } extern const char dxf_templ_default_arr[]; -static void dxf_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void dxf_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; int save_ons[PCB_MAX_LAYER]; Index: export_excellon/excellon.c =================================================================== --- export_excellon/excellon.c (revision 36997) +++ export_excellon/excellon.c (revision 36998) @@ -213,7 +213,7 @@ return excellon_options; } -static void excellon_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void excellon_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *fnbase, *fn; char *filesuff; Index: export_fidocadj/fidocadj.c =================================================================== --- export_fidocadj/fidocadj.c (revision 36997) +++ export_fidocadj/fidocadj.c (revision 36998) @@ -160,7 +160,7 @@ free(msg); } -static void fidocadj_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void fidocadj_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { FILE *f; const char *filename, *libfile; Index: export_gcode/gcode.c =================================================================== --- export_gcode/gcode.c (revision 36997) +++ export_gcode/gcode.c (revision 36998) @@ -324,7 +324,7 @@ return 0; } -static void gcode_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void gcode_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { rnd_layergrp_id_t gid; rnd_xform_t xform; Index: export_gerber/gerber.c =================================================================== --- export_gerber/gerber.c (revision 36997) +++ export_gerber/gerber.c (revision 36998) @@ -309,7 +309,7 @@ filesuff = fn_gds.array + fn_baselen; } -static void gerber_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void gerber_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *fnbase; int i; Index: export_hpgl/export_hpgl.c =================================================================== --- export_hpgl/export_hpgl.c (revision 36997) +++ export_hpgl/export_hpgl.c (revision 36998) @@ -121,7 +121,7 @@ rnd_conf_update(NULL, -1); /* restore forced sets */ } -static void exp_hpgl_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void exp_hpgl_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; int save_ons[PCB_MAX_LAYER]; Index: export_ipcd356/ipcd356.c =================================================================== --- export_ipcd356/ipcd356.c (revision 36997) +++ export_ipcd356/ipcd356.c (revision 36998) @@ -440,7 +440,7 @@ return rnd_hid_parse_command_line(argc, argv); } -static void ipcd356_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void ipcd356_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *fn; FILE *f; Index: export_openems/export_openems.c =================================================================== --- export_openems/export_openems.c (revision 36997) +++ export_openems/export_openems.c (revision 36998) @@ -664,7 +664,7 @@ rnd_conf_update(NULL, -1); /* restore forced sets */ } -static void openems_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void openems_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; char *runfn = NULL, *end; Index: export_openscad/export_openscad.c =================================================================== --- export_openscad/export_openscad.c (revision 36997) +++ export_openscad/export_openscad.c (revision 36998) @@ -296,7 +296,7 @@ } -static void openscad_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void openscad_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; int save_ons[PCB_MAX_LAYER]; Index: export_png/png.c =================================================================== --- export_png/png.c (revision 36997) +++ export_png/png.c (revision 36998) @@ -426,7 +426,7 @@ rnd_conf_update(NULL, -1); /* restore forced sets */ } -static void png_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void png_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { int save_ons[PCB_MAX_LAYER]; rnd_box_t tmp, *bbox; Index: export_ps/eps.c =================================================================== --- export_ps/eps.c (revision 36997) +++ export_ps/eps.c (revision 36998) @@ -248,7 +248,7 @@ options_ = NULL; } -static void eps_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void eps_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { int save_ons[PCB_MAX_LAYER]; rnd_xform_t xform; Index: export_ps/ps.c =================================================================== --- export_ps/ps.c (revision 36997) +++ export_ps/ps.c (revision 36998) @@ -432,7 +432,7 @@ memcpy(pcb_layer_stack, saved_layer_stack, sizeof(pcb_layer_stack)); } -static void ps_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void ps_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { FILE *fh; int save_ons[PCB_MAX_LAYER]; Index: export_stat/stat.c =================================================================== --- export_stat/stat.c (revision 36997) +++ export_stat/stat.c (revision 36998) @@ -129,7 +129,7 @@ unsigned long int lines, arcs, polys, elements; } layer_stat_t; -static void stat_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void stat_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { FILE *f; const char *filename; Index: export_stl/export_stl.c =================================================================== --- export_stl/export_stl.c (revision 36997) +++ export_stl/export_stl.c (revision 36998) @@ -563,17 +563,17 @@ pcb_cam_end(&cam); } -static void stl_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void stl_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { stl_do_export_(hid, options, &fmt_stl); } -static void amf_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void amf_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { stl_do_export_(hid, options, &fmt_amf); } -static void proj_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void proj_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { stl_do_export_(hid, options, &fmt_proj); } Index: export_svg/svg.c =================================================================== --- export_svg/svg.c (revision 36997) +++ export_svg/svg.c (revision 36998) @@ -215,7 +215,7 @@ rnd_conf_update(NULL, -1); /* restore forced sets */ } -static void svg_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void svg_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *filename; int save_ons[PCB_MAX_LAYER]; Index: export_vfs_fuse/export_vfs_fuse.c =================================================================== --- export_vfs_fuse/export_vfs_fuse.c (revision 36997) +++ export_vfs_fuse/export_vfs_fuse.c (revision 36998) @@ -255,7 +255,7 @@ static char **fuse_argv; static int fuse_argc = 0; -static void export_vfs_fuse_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void export_vfs_fuse_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { static struct fuse_operations oper; Index: export_vfs_mc/export_vfs_mc.c =================================================================== --- export_vfs_mc/export_vfs_mc.c (revision 36997) +++ export_vfs_mc/export_vfs_mc.c (revision 36998) @@ -102,7 +102,7 @@ } } -static void export_vfs_mc_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void export_vfs_mc_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { const char *cmd; Index: export_xy/xy.c =================================================================== --- export_xy/xy.c (revision 36997) +++ export_xy/xy.c (revision 36998) @@ -933,7 +933,7 @@ return NULL; } -static void xy_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void xy_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { template_t templ; char **tid; Index: io_dsn/export.c =================================================================== --- io_dsn/export.c (revision 36997) +++ io_dsn/export.c (revision 36998) @@ -81,7 +81,7 @@ #define rnd_conf_force_set_int(var, val) *((RND_CFT_INTEGER *)(&var)) = val -static void dsn_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void dsn_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { FILE *f; int restore_conf = 0; Index: io_tedax/tetest.c =================================================================== --- io_tedax/tetest.c (revision 36997) +++ io_tedax/tetest.c (revision 36998) @@ -198,7 +198,7 @@ return tedax_etest_options; } -static void tedax_etest_do_export(rnd_hid_t *hid, rnd_hid_attr_val_t *options) +static void tedax_etest_do_export(rnd_hid_t *hid, rnd_design_t *design, rnd_hid_attr_val_t *options, void *appspec) { int i; const char *name;