Index: trunk/src/hid_cam.c =================================================================== --- trunk/src/hid_cam.c (revision 34296) +++ trunk/src/hid_cam.c (revision 34297) @@ -184,19 +184,10 @@ return buf; } -void pcb_derive_default_filename(const char *pcbfile, rnd_export_opt_t *filename_attrib, const char *suffix) +void pcb_derive_default_filename(const char *pcbfile, rnd_hid_attr_val_t *filename_attrib, const char *suffix) { - if (filename_attrib->value != NULL) { - /* prefer to modify the current value */ -/* rnd_hid_attr_val_t *val = filename_attrib->value;*/ - free(*(char **)filename_attrib->value); - *(char **)filename_attrib->value = pcb_derive_default_filename_(pcbfile, suffix); - } - else { - /* fallback for plugins that use the old API: load the default value */ - free((char *)filename_attrib->default_val.str); - filename_attrib->default_val.str = pcb_derive_default_filename_(pcbfile, suffix); - } + free(filename_attrib->str); + filename_attrib->str = pcb_derive_default_filename_(pcbfile, suffix); } static void layervis_save_and_reset(pcb_cam_t *cam) Index: trunk/src/hid_cam.h =================================================================== --- trunk/src/hid_cam.h (revision 34296) +++ trunk/src/hid_cam.h (revision 34297) @@ -88,8 +88,8 @@ char *pcb_layer_to_file_name_append(gds_t *dest, rnd_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). */ -void pcb_derive_default_filename(const char *pcbfile, rnd_export_opt_t *filename_attrib, const char *suffix); + look it up. Copies result in dest (always a dynamically alloceted string). */ +void pcb_derive_default_filename(const char *pcbfile, rnd_hid_attr_val_t *dest, const char *suffix); /* Same as pcb_derive_default_filename() but returns an allocated string directly, instead of manipulating an attribute */