Index: trunk/src_plugins/export_bom/bom.c =================================================================== --- trunk/src_plugins/export_bom/bom.c (revision 34294) +++ trunk/src_plugins/export_bom/bom.c (revision 34295) @@ -63,9 +63,9 @@ static rnd_export_opt_t *bom_get_export_options(rnd_hid_t *hid, int *n) { - char **val = bom_options[HA_bomfile].value; + char **val = &bom_values[HA_bomfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &bom_options[HA_bomfile], ".bom"); + pcb_derive_default_filename(PCB->hidlib.filename, &bom_values[HA_bomfile], ".bom"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_c_draw/export_c_draw.c =================================================================== --- trunk/src_plugins/export_c_draw/export_c_draw.c (revision 34294) +++ trunk/src_plugins/export_c_draw/export_c_draw.c (revision 34295) @@ -89,10 +89,10 @@ static rnd_export_opt_t *c_draw_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".c"; - char **val = c_draw_attribute_list[HA_c_drawfile].value; + char **val = &c_draw_values[HA_c_drawfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &c_draw_attribute_list[HA_c_drawfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &c_draw_values[HA_c_drawfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_dsn/dsn.c =================================================================== --- trunk/src_plugins/export_dsn/dsn.c (revision 34294) +++ trunk/src_plugins/export_dsn/dsn.c (revision 34295) @@ -110,9 +110,9 @@ static rnd_export_opt_t *dsn_get_export_options(rnd_hid_t *hid, int *n) { - char **val = dsn_options[HA_dsnfile].value; + char **val = &dsn_values[HA_dsnfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &dsn_options[HA_dsnfile], ".dsn"); + pcb_derive_default_filename(PCB->hidlib.filename, &dsn_values[HA_dsnfile], ".dsn"); if (n) *n = NUM_OPTIONS; return dsn_options; Index: trunk/src_plugins/export_dxf/dxf.c =================================================================== --- trunk/src_plugins/export_dxf/dxf.c (revision 34294) +++ trunk/src_plugins/export_dxf/dxf.c (revision 34295) @@ -201,9 +201,9 @@ static rnd_export_opt_t *dxf_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".dxf"; - char **val = dxf_attribute_list[HA_dxffile].value; + char **val = &dxf_values[HA_dxffile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &dxf_attribute_list[HA_dxffile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &dxf_values[HA_dxffile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_excellon/excellon.c =================================================================== --- trunk/src_plugins/export_excellon/excellon.c (revision 34294) +++ trunk/src_plugins/export_excellon/excellon.c (revision 34295) @@ -204,9 +204,9 @@ static rnd_export_opt_t *excellon_get_export_options(rnd_hid_t *hid, int *n) { - char **val = excellon_options[HA_excellonfile].value; + char **val = &excellon_values[HA_excellonfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &excellon_options[HA_excellonfile], ""); + pcb_derive_default_filename(PCB->hidlib.filename, &excellon_values[HA_excellonfile], ""); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_fidocadj/fidocadj.c =================================================================== --- trunk/src_plugins/export_fidocadj/fidocadj.c (revision 34294) +++ trunk/src_plugins/export_fidocadj/fidocadj.c (revision 34295) @@ -84,9 +84,9 @@ static rnd_export_opt_t *fidocadj_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".fcd"; - char **val = fidocadj_attribute_list[HA_fidocadjfile].value; + char **val = &fidocadj_values[HA_fidocadjfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &fidocadj_attribute_list[HA_fidocadjfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &fidocadj_values[HA_fidocadjfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_gerber/gerber.c =================================================================== --- trunk/src_plugins/export_gerber/gerber.c (revision 34294) +++ trunk/src_plugins/export_gerber/gerber.c (revision 34295) @@ -260,9 +260,9 @@ static rnd_export_opt_t *gerber_get_export_options(rnd_hid_t *hid, int *n) { - char **val = gerber_options[HA_gerberfile].value; + char **val = &gerber_values[HA_gerberfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &gerber_options[HA_gerberfile], ""); + pcb_derive_default_filename(PCB->hidlib.filename, &gerber_values[HA_gerberfile], ""); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_ipcd356/ipcd356.c =================================================================== --- trunk/src_plugins/export_ipcd356/ipcd356.c (revision 34294) +++ trunk/src_plugins/export_ipcd356/ipcd356.c (revision 34295) @@ -425,9 +425,9 @@ static rnd_export_opt_t *ipcd356_get_export_options(rnd_hid_t *hid, int *n) { - char **val = ipcd356_options[HA_ipcd356_filename].value; + char **val = &ipcd356_values[HA_ipcd356_filename].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &ipcd356_options[HA_ipcd356_filename], ".net"); + pcb_derive_default_filename(PCB->hidlib.filename, &ipcd356_values[HA_ipcd356_filename], ".net"); if (n != NULL) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_lpr/lpr.c =================================================================== --- trunk/src_plugins/export_lpr/lpr.c (revision 34294) +++ trunk/src_plugins/export_lpr/lpr.c (revision 34295) @@ -60,9 +60,7 @@ * HID's may want to free() this string value and replace it with a * new one based on how a user fills out a print dialog. */ - val = lpr_options[HA_lprcommand].value; - if (val == NULL) - val = lpr_options[HA_lprcommand].value = &lpr_values[HA_lprcommand].str; + val = &lpr_values[HA_lprcommand].str; if ((*val == NULL) || (**val == '\0')) { free(*val); *val = rnd_strdup("lpr"); Index: trunk/src_plugins/export_openems/export_openems.c =================================================================== --- trunk/src_plugins/export_openems/export_openems.c (revision 34294) +++ trunk/src_plugins/export_openems/export_openems.c (revision 34295) @@ -170,10 +170,10 @@ { const char *suffix = ".m"; pcb_mesh_t *mesh = pcb_mesh_get(MESH_NAME); - char **val = openems_attribute_list[HA_openemsfile].value; + char **val = &openems_values[HA_openemsfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &openems_attribute_list[HA_openemsfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &openems_values[HA_openemsfile], suffix); if (mesh != NULL) { openems_attribute_list[HA_def_substrate_thick].default_val.crd = mesh->def_subs_thick; Index: trunk/src_plugins/export_openscad/export_openscad.c =================================================================== --- trunk/src_plugins/export_openscad/export_openscad.c (revision 34294) +++ trunk/src_plugins/export_openscad/export_openscad.c (revision 34295) @@ -134,10 +134,10 @@ static rnd_export_opt_t *openscad_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".scad"; - char **val = openscad_attribute_list[HA_openscadfile].value; + char **val = &openscad_values[HA_openscadfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &openscad_attribute_list[HA_openscadfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &openscad_values[HA_openscadfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_png/png.c =================================================================== --- trunk/src_plugins/export_png/png.c (revision 34294) +++ trunk/src_plugins/export_png/png.c (revision 34295) @@ -381,7 +381,7 @@ const char *result = NULL; const char *fmt; - fmt = filetypes[png_attribute_list[HA_filetype].default_val.lng]; + fmt = filetypes[png_values[HA_filetype].lng]; if (fmt == NULL) { /* Do nothing */ } else if (strcmp(fmt, FMT_gif) == 0) @@ -401,10 +401,10 @@ static rnd_export_opt_t *png_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = get_file_suffix(); - char **val = png_attribute_list[HA_pngfile].value; + char *val = &png_values[HA_pngfile].str; - if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &png_attribute_list[HA_pngfile], suffix); + if ((PCB != NULL) && ((val == NULL) || (*val == '\0'))) + pcb_derive_default_filename(PCB->hidlib.filename, &png_values[HA_pngfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_ps/eps.c =================================================================== --- trunk/src_plugins/export_ps/eps.c (revision 34294) +++ trunk/src_plugins/export_ps/eps.c (revision 34295) @@ -120,10 +120,10 @@ static rnd_export_opt_t *eps_get_export_options(rnd_hid_t *hid, int *n) { - char **val = eps_attribute_list[HA_psfile].value; + char **val = &eps_values[HA_psfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &eps_attribute_list[HA_psfile], ".eps"); + pcb_derive_default_filename(PCB->hidlib.filename, &eps_values[HA_psfile], ".eps"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 34294) +++ trunk/src_plugins/export_ps/ps.c (revision 34295) @@ -341,10 +341,10 @@ static rnd_export_opt_t *ps_get_export_options(rnd_hid_t *hid, int *n) { - char **val = ps_attribute_list[HA_psfile].value; + char **val = &global.ps_values[HA_psfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &ps_attribute_list[HA_psfile], ".ps"); + pcb_derive_default_filename(PCB->hidlib.filename, &global.ps_values[HA_psfile], ".ps"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_stat/stat.c =================================================================== --- trunk/src_plugins/export_stat/stat.c (revision 34294) +++ trunk/src_plugins/export_stat/stat.c (revision 34295) @@ -113,10 +113,10 @@ static rnd_export_opt_t *stat_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".stat.lht"; - char **val = stat_attribute_list[HA_statfile].value; + char **val = &stat_values[HA_statfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &stat_attribute_list[HA_statfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &stat_values[HA_statfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_stl/export_stl.c =================================================================== --- trunk/src_plugins/export_stl/export_stl.c (revision 34294) +++ trunk/src_plugins/export_stl/export_stl.c (revision 34295) @@ -95,10 +95,10 @@ static rnd_export_opt_t *stl_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".stl"; - char **val = stl_attribute_list[HA_stlfile].value; + char **val = &stl_values[HA_stlfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &stl_attribute_list[HA_stlfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &stl_values[HA_stlfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_svg/svg.c =================================================================== --- trunk/src_plugins/export_svg/svg.c (revision 34294) +++ trunk/src_plugins/export_svg/svg.c (revision 34295) @@ -202,10 +202,10 @@ static rnd_export_opt_t *svg_get_export_options(rnd_hid_t *hid, int *n) { const char *suffix = ".svg"; - char **val = svg_attribute_list[HA_svgfile].value; + char **val = &svg_values[HA_svgfile].str; if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &svg_attribute_list[HA_svgfile], suffix); + pcb_derive_default_filename(PCB->hidlib.filename, &svg_values[HA_svgfile], suffix); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/export_xy/xy.c =================================================================== --- trunk/src_plugins/export_xy/xy.c (revision 34294) +++ trunk/src_plugins/export_xy/xy.c (revision 34295) @@ -101,7 +101,7 @@ { static int last_unit_value = -1; rnd_conf_listitem_t *li; - char **val = xy_options[HA_xyfile].value; + char **val = &xy_values[HA_xyfile].str; int idx; /* load all formats from the config */ @@ -148,7 +148,7 @@ } if ((PCB != NULL) && ((val == NULL) || (*val == NULL) || (**val == '\0'))) - pcb_derive_default_filename(PCB->hidlib.filename, &xy_options[HA_xyfile], ".xy"); + pcb_derive_default_filename(PCB->hidlib.filename, &xy_values[HA_xyfile], ".xy"); if (n) *n = NUM_OPTIONS; Index: trunk/src_plugins/io_tedax/tetest.c =================================================================== --- trunk/src_plugins/io_tedax/tetest.c (revision 34294) +++ trunk/src_plugins/io_tedax/tetest.c (revision 34295) @@ -189,8 +189,9 @@ static rnd_export_opt_t *tedax_etest_get_export_options(rnd_hid_t *hid, int *n) { - if ((PCB != NULL) && (tedax_etest_options[HA_outfile].default_val.str == NULL)) - pcb_derive_default_filename(PCB->hidlib.filename, &tedax_etest_options[HA_outfile], ".etest.tdx"); + char *val = tedax_etest_values[HA_outfile].str; + if ((PCB != NULL) && (val == NULL)) + pcb_derive_default_filename(PCB->hidlib.filename, &tedax_etest_values[HA_outfile], ".etest.tdx"); if (n) *n = NUM_OPTIONS; @@ -263,6 +264,7 @@ exp_tedax_etest.parse_arguments = tedax_etest_parse_arguments; exp_tedax_etest.usage = tedax_etest_usage; + exp_tedax_etest.argument_array = tedax_etest_values; rnd_hid_register_hid(&exp_tedax_etest); }