Index: trunk/src/hid_cam.c =================================================================== --- trunk/src/hid_cam.c (revision 21305) +++ trunk/src/hid_cam.c (revision 21306) @@ -100,7 +100,7 @@ } -void pcb_derive_default_filename(const char *pcbfile, pcb_hid_attribute_t * filename_attrib, const char *suffix, char **memory) +void pcb_derive_default_filename(const char *pcbfile, pcb_hid_attribute_t * filename_attrib, const char *suffix) { char *buf; const char *pf; @@ -110,12 +110,7 @@ else pf = pcbfile; - if (memory && filename_attrib->default_val.str_value != *memory) - return; - buf = (char *) malloc(strlen(pf) + strlen(suffix) + 1); - if (memory) - *memory = buf; if (buf) { size_t bl; pcb_plug_io_t *i; Index: trunk/src/hid_cam.h =================================================================== --- trunk/src/hid_cam.h (revision 21305) +++ trunk/src/hid_cam.h (revision 21306) @@ -62,8 +62,7 @@ char *pcb_layer_to_file_name(char *dest, pcb_layer_id_t lid, unsigned int flags, const char *purpose, int purpi, pcb_file_name_style_t style); /* Returns a filename base that can be used to output the layer; if flags is 0, - look it up. Copies result in dest (which should be at least PCB_DERIVE_FN_SUFF_LEN bytes wide). - Returns dest. */ -void pcb_derive_default_filename(const char *pcbfile, pcb_hid_attribute_t * filename_attrib, const char *suffix, char **memory); + look it up. Copies result in dest (which should be at least PCB_DERIVE_FN_SUFF_LEN bytes wide). */ +void pcb_derive_default_filename(const char *pcbfile, pcb_hid_attribute_t * filename_attrib, const char *suffix); #endif Index: trunk/src_plugins/export_bboard/bboard.c =================================================================== --- trunk/src_plugins/export_bboard/bboard.c (revision 21305) +++ trunk/src_plugins/export_bboard/bboard.c (revision 21306) @@ -169,9 +169,8 @@ static pcb_hid_attribute_t *bboard_get_export_options(int *n) { - static char *last_made_filename = 0; if (PCB) - pcb_derive_default_filename(PCB->Filename, &bboard_options[HA_bboardfile], ".png", &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &bboard_options[HA_bboardfile], ".png"); bboard_options[HA_bgcolor].default_val.str_value = pcb_strdup("#FFFFFF"); Index: trunk/src_plugins/export_bom/bom.c =================================================================== --- trunk/src_plugins/export_bom/bom.c (revision 21305) +++ trunk/src_plugins/export_bom/bom.c (revision 21306) @@ -66,10 +66,8 @@ static pcb_hid_attribute_t *bom_get_export_options(int *n) { - static char *last_bom_filename = NULL; - if (PCB) - pcb_derive_default_filename(PCB->Filename, &bom_options[HA_bomfile], ".bom", &last_bom_filename); + pcb_derive_default_filename(PCB->Filename, &bom_options[HA_bomfile], ".bom"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_dsn/dsn.c =================================================================== --- trunk/src_plugins/export_dsn/dsn.c (revision 21305) +++ trunk/src_plugins/export_dsn/dsn.c (revision 21306) @@ -108,9 +108,8 @@ static pcb_hid_attribute_t *dsn_get_export_options(int *n) { - static char *last_dsn_filename = 0; if (PCB) { - pcb_derive_default_filename(PCB->Filename, &dsn_options[HA_dsnfile], ".dsn", &last_dsn_filename); + pcb_derive_default_filename(PCB->Filename, &dsn_options[HA_dsnfile], ".dsn"); } if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_dxf/dxf.c =================================================================== --- trunk/src_plugins/export_dxf/dxf.c (revision 21305) +++ trunk/src_plugins/export_dxf/dxf.c (revision 21306) @@ -203,11 +203,10 @@ static pcb_hid_attribute_t *dxf_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = ".dxf"; if (PCB) - pcb_derive_default_filename(PCB->Filename, &dxf_attribute_list[HA_dxffile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &dxf_attribute_list[HA_dxffile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_fidocadj/fidocadj.c =================================================================== --- trunk/src_plugins/export_fidocadj/fidocadj.c (revision 21305) +++ trunk/src_plugins/export_fidocadj/fidocadj.c (revision 21306) @@ -87,11 +87,10 @@ static pcb_hid_attribute_t *fidocadj_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = ".fcd"; if (PCB) - pcb_derive_default_filename(PCB->Filename, &fidocadj_attribute_list[HA_fidocadjfile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &fidocadj_attribute_list[HA_fidocadjfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_gcode/gcode.c =================================================================== --- trunk/src_plugins/export_gcode/gcode.c (revision 21305) +++ trunk/src_plugins/export_gcode/gcode.c (revision 21306) @@ -237,7 +237,6 @@ static pcb_hid_attribute_t *gcode_get_export_options(int *n) { - static char *last_made_filename = 0; static int last_unit_value = -1; if (gcode_attribute_list[HA_unit].default_val.int_value == last_unit_value) { @@ -249,7 +248,7 @@ } if (PCB) { - pcb_derive_default_filename(PCB->Filename, &gcode_attribute_list[HA_basename], ".gcode", &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &gcode_attribute_list[HA_basename], ".gcode"); } if (n) { *n = NUM_OPTIONS; Index: trunk/src_plugins/export_gerber/gerber.c =================================================================== --- trunk/src_plugins/export_gerber/gerber.c (revision 21305) +++ trunk/src_plugins/export_gerber/gerber.c (revision 21306) @@ -365,9 +365,8 @@ static pcb_hid_attribute_t *gerber_get_export_options(int *n) { - static char *last_made_filename = NULL; if (PCB) - pcb_derive_default_filename(PCB->Filename, &gerber_options[HA_gerberfile], "", &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &gerber_options[HA_gerberfile], ""); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_ipcd356/ipcd356.c =================================================================== --- trunk/src_plugins/export_ipcd356/ipcd356.c (revision 21305) +++ trunk/src_plugins/export_ipcd356/ipcd356.c (revision 21306) @@ -414,10 +414,8 @@ static pcb_hid_attribute_t *ipcd356_get_export_options(int *n) { - static char *last_fn = NULL; - if (PCB != NULL) - pcb_derive_default_filename(PCB->Filename, &ipcd356_options[HA_ipcd356_filename], ".net", &last_fn); + pcb_derive_default_filename(PCB->Filename, &ipcd356_options[HA_ipcd356_filename], ".net"); if (n != NULL) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_openems/export_openems.c =================================================================== --- trunk/src_plugins/export_openems/export_openems.c (revision 21305) +++ trunk/src_plugins/export_openems/export_openems.c (revision 21306) @@ -165,12 +165,11 @@ static pcb_hid_attribute_t *openems_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = ".m"; pcb_mesh_t *mesh = pcb_mesg_get(MESH_NAME); if (PCB) - pcb_derive_default_filename(PCB->Filename, &openems_attribute_list[HA_openemsfile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &openems_attribute_list[HA_openemsfile], suffix); if (mesh != NULL) { openems_attribute_list[HA_def_substrate_thick].default_val.coord_value = mesh->def_subs_thick; Index: trunk/src_plugins/export_openscad/export_openscad.c =================================================================== --- trunk/src_plugins/export_openscad/export_openscad.c (revision 21305) +++ trunk/src_plugins/export_openscad/export_openscad.c (revision 21306) @@ -130,11 +130,10 @@ static pcb_hid_attribute_t *openscad_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = ".scad"; if (PCB) - pcb_derive_default_filename(PCB->Filename, &openscad_attribute_list[HA_openscadfile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &openscad_attribute_list[HA_openscadfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_png/png.c =================================================================== --- trunk/src_plugins/export_png/png.c (revision 21305) +++ trunk/src_plugins/export_png/png.c (revision 21306) @@ -488,11 +488,10 @@ static pcb_hid_attribute_t *png_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = get_file_suffix(); if (PCB) - pcb_derive_default_filename(PCB->Filename, &png_attribute_list[HA_pngfile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &png_attribute_list[HA_pngfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_ps/eps.c =================================================================== --- trunk/src_plugins/export_ps/eps.c (revision 21305) +++ trunk/src_plugins/export_ps/eps.c (revision 21306) @@ -148,10 +148,8 @@ static pcb_hid_attribute_t *eps_get_export_options(int *n) { - static char *last_made_filename = 0; - if (PCB) - pcb_derive_default_filename(PCB->Filename, &eps_attribute_list[HA_psfile], ".eps", &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &eps_attribute_list[HA_psfile], ".eps"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 21305) +++ trunk/src_plugins/export_ps/ps.c (revision 21306) @@ -438,9 +438,8 @@ static pcb_hid_attribute_t *ps_get_export_options(int *n) { - static char *last_made_filename = 0; if (PCB) - pcb_derive_default_filename(PCB->Filename, &ps_attribute_list[HA_psfile], ".ps", &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &ps_attribute_list[HA_psfile], ".ps"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_stat/stat.c =================================================================== --- trunk/src_plugins/export_stat/stat.c (revision 21305) +++ trunk/src_plugins/export_stat/stat.c (revision 21306) @@ -111,11 +111,10 @@ static pcb_hid_attribute_t *stat_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = ".stat.lht"; if (PCB) - pcb_derive_default_filename(PCB->Filename, &stat_attribute_list[HA_statfile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &stat_attribute_list[HA_statfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_svg/svg.c =================================================================== --- trunk/src_plugins/export_svg/svg.c (revision 21305) +++ trunk/src_plugins/export_svg/svg.c (revision 21306) @@ -197,11 +197,10 @@ static pcb_hid_attribute_t *svg_get_export_options(int *n) { - static char *last_made_filename = 0; const char *suffix = ".svg"; if (PCB) - pcb_derive_default_filename(PCB->Filename, &svg_attribute_list[HA_svgfile], suffix, &last_made_filename); + pcb_derive_default_filename(PCB->Filename, &svg_attribute_list[HA_svgfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_test/export_test.c =================================================================== --- trunk/src_plugins/export_test/export_test.c (revision 21305) +++ trunk/src_plugins/export_test/export_test.c (revision 21306) @@ -43,10 +43,8 @@ static pcb_hid_attribute_t *export_test_get_export_options(int *n) { - static char *last_export_test_filename = 0; - if (PCB) { - pcb_derive_default_filename(PCB->Filename, &export_test_options[HA_export_testfile], ".export_test", &last_export_test_filename); + pcb_derive_default_filename(PCB->Filename, &export_test_options[HA_export_testfile], ".export_test"); } if (n) Index: trunk/src_plugins/export_xy/xy.c =================================================================== --- trunk/src_plugins/export_xy/xy.c (revision 21305) +++ trunk/src_plugins/export_xy/xy.c (revision 21306) @@ -95,7 +95,6 @@ static pcb_hid_attribute_t *xy_get_export_options(int *n) { - static char *last_xy_filename = 0; static int last_unit_value = -1; conf_listitem_t *li; int idx; @@ -143,7 +142,7 @@ last_unit_value = xy_options[HA_unit].default_val.int_value; } if (PCB) - pcb_derive_default_filename(PCB->Filename, &xy_options[HA_xyfile], ".xy", &last_xy_filename); + pcb_derive_default_filename(PCB->Filename, &xy_options[HA_xyfile], ".xy"); if (n) *n = NUM_OPTIONS;