Index: excellon.c =================================================================== --- excellon.c (revision 33274) +++ excellon.c (revision 33275) @@ -204,7 +204,8 @@ static rnd_export_opt_t *excellon_get_export_options(rnd_hid_t *hid, int *n) { - if ((PCB != NULL) && (excellon_options[HA_excellonfile].default_val.str == NULL)) + char **val = excellon_options[HA_excellonfile].value; + if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) pcb_derive_default_filename(PCB->hidlib.filename, &excellon_options[HA_excellonfile], ""); if (n) @@ -223,8 +224,6 @@ if (!options) { excellon_get_export_options(hid, NULL); - for (i = 0; i < NUM_OPTIONS; i++) - excellon_values[i] = excellon_options[i].default_val; options = excellon_values; } pcb_drill_init(&pdrills, options[HA_apeture_per_file].lng ? NULL : &exc_aperture_cnt); @@ -529,6 +528,7 @@ excellon_hid.calibrate = excellon_calibrate; excellon_hid.set_crosshair = excellon_set_crosshair; excellon_hid.usage = excellon_usage; + excellon_hid.argument_array = excellon_values; rnd_hid_register_hid(&excellon_hid);