Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 26958) +++ trunk/src/hid.h (revision 26959) @@ -401,10 +401,10 @@ by window placement. Returns opaque hid_ctx. (Hid_ctx shall save pcb_hid_t so subsequent attr_dlg_*() calls don't have it as an argument) */ - void *(*attr_dlg_new)(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); + void *(*attr_dlg_new)(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); int (*attr_dlg_run)(void *hid_ctx); void (*attr_dlg_raise)(void *hid_ctx); /* raise the window to top */ - void (*attr_dlg_free)(void *hid_ctx); /* results_ is avalibale after this call */ + void (*attr_dlg_free)(void *hid_ctx); /* Set a property of an attribute dialog (typical call is between attr_dlg_new() and attr_dlg_run()) */ @@ -615,7 +615,7 @@ /* non-zero if DAD dialogs are available currently */ #define PCB_HAVE_GUI_ATTR_DLG \ ((pcb_gui != NULL) && (pcb_gui->gui) && (pcb_gui->attr_dlg_new != NULL) && (pcb_gui->attr_dlg_new != pcb_nogui_attr_dlg_new)) -void *pcb_nogui_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); +void *pcb_nogui_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); int pcb_hid_dock_enter(pcb_hid_dad_subdialog_t *sub, pcb_hid_dock_t where, const char *id); void pcb_hid_dock_leave(pcb_hid_dad_subdialog_t *sub); Index: trunk/src/hid_attrib.h =================================================================== --- trunk/src/hid_attrib.h (revision 26958) +++ trunk/src/hid_attrib.h (revision 26959) @@ -137,8 +137,8 @@ int pcb_hid_attrdlg_num_children(pcb_hid_attribute_t *attrs, int start_from, int n_attrs); /* Invoke a simple modal attribute dialog if GUI is available */ -int pcb_attribute_dialog_(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, void **retovr, int defx, int defy, int minx, int miny, void **hid_ctx_out); -int pcb_attribute_dialog(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data); +int pcb_attribute_dialog_(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, void **retovr, int defx, int defy, int minx, int miny, void **hid_ctx_out); +int pcb_attribute_dialog(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data); /* Convert between compflag bit value and name */ Index: trunk/src/hid_dad.c =================================================================== --- trunk/src/hid_dad.c (revision 26958) +++ trunk/src/hid_dad.c (revision 26959) @@ -117,7 +117,7 @@ return cnt; } -int pcb_attribute_dialog_(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, void **retovr, int defx, int defy, int minx, int miny, void **hid_ctx_out) +int pcb_attribute_dialog_(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, void **retovr, int defx, int defy, int minx, int miny, void **hid_ctx_out) { int rv; void *hid_ctx; @@ -125,7 +125,7 @@ if ((pcb_gui == NULL) || (pcb_gui->attr_dlg_new == NULL)) return -1; - hid_ctx = pcb_gui->attr_dlg_new(pcb_gui, id, attrs, n_attrs, results, title, caller_data, pcb_true, NULL, defx, defy, minx, miny); + hid_ctx = pcb_gui->attr_dlg_new(pcb_gui, id, attrs, n_attrs, title, caller_data, pcb_true, NULL, defx, defy, minx, miny); if (hid_ctx_out != NULL) *hid_ctx_out = hid_ctx; rv = pcb_gui->attr_dlg_run(hid_ctx); @@ -135,9 +135,9 @@ return rv ? 0 : 1; } -int pcb_attribute_dialog(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data) +int pcb_attribute_dialog(const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data) { - return pcb_attribute_dialog_(id, attrs, n_attrs, results, title, caller_data, NULL, 0, 0, 0, 0, NULL); + return pcb_attribute_dialog_(id, attrs, n_attrs, title, caller_data, NULL, 0, 0, 0, 0, NULL); } int pcb_hid_dock_enter(pcb_hid_dad_subdialog_t *sub, pcb_hid_dock_t where, const char *id) Index: trunk/src/hid_dad.h =================================================================== --- trunk/src/hid_dad.h (revision 26958) +++ trunk/src/hid_dad.h (revision 26959) @@ -150,7 +150,6 @@ /*** Helpers for building dynamic attribute dialogs (DAD) ***/ #define PCB_DAD_DECL(table) \ pcb_hid_attribute_t *table = NULL; \ - pcb_hid_attr_val_t *table ## _result = NULL; \ int table ## _append_lock = 0; \ int table ## _len = 0; \ int table ## _alloced = 0; \ @@ -161,7 +160,6 @@ #define PCB_DAD_DECL_NOINIT(table) \ pcb_hid_attribute_t *table; \ - pcb_hid_attr_val_t *table ## _result; \ int table ## _append_lock; \ int table ## _len; \ int table ## _alloced; \ @@ -180,9 +178,7 @@ PCB_DAD_FREE_FIELD(table, __n__); \ } \ free(table); \ - free(table ## _result); \ table = NULL; \ - table ## _result = NULL; \ table ## _hid_ctx = NULL; \ table ## _len = 0; \ table ## _alloced = 0; \ @@ -195,11 +191,9 @@ #define PCB_DAD_NEW(id, table, title, caller_data, modal, ev_cb) \ do { \ - if (table ## _result == NULL) \ - PCB_DAD_ALLOC_RESULT(table); \ table ## _ret_override = calloc(sizeof(pcb_dad_retovr_t), 1); \ table ## _append_lock = 1; \ - table ## _hid_ctx = pcb_gui->attr_dlg_new(pcb_gui, id, table, table ## _len, table ## _result, title, caller_data, modal, ev_cb, table ## _defx, table ## _defy, table ## _minx, table ## _miny); \ + table ## _hid_ctx = pcb_gui->attr_dlg_new(pcb_gui, id, table, table ## _len, title, caller_data, modal, ev_cb, table ## _defx, table ## _defy, table ## _minx, table ## _miny); \ } while(0) /* Sets the default window size (that is only a hint) - NOTE: must be called @@ -225,13 +219,11 @@ #define PCB_DAD_AUTORUN(id, table, title, caller_data, failed) \ do { \ int __ok__; \ - if (table ## _result == NULL) \ - PCB_DAD_ALLOC_RESULT(table); \ table ## _ret_override = calloc(sizeof(pcb_dad_retovr_t), 1); \ table ## _ret_override->dont_free++; \ table ## _ret_override->valid = 0; \ table ## _append_lock = 1; \ - __ok__ = pcb_attribute_dialog_(id,table, table ## _len, table ## _result, title, caller_data, (void **)&(table ## _ret_override), table ## _defx, table ## _defy, table ## _minx, table ## _miny, &table ## _hid_ctx); \ + __ok__ = pcb_attribute_dialog_(id,table, table ## _len, title, caller_data, (void **)&(table ## _ret_override), table ## _defx, table ## _defy, table ## _minx, table ## _miny, &table ## _hid_ctx); \ failed = (__ok__ == 0) ? -1 : 0; \ if (table ## _ret_override->valid) \ failed = table ## _ret_override->value; \ @@ -788,12 +780,6 @@ } \ } while(0) -#define PCB_DAD_ALLOC_RESULT(table) \ -do { \ - free(table ## _result); \ - table ## _result = calloc(PCB_DAD_CURRENT(table)+1, sizeof(pcb_hid_attr_val_t)); \ -} while(0) - /* Internal: free all rows and caches and the tree itself */ void pcb_dad_tree_free(pcb_hid_attribute_t *attr); Index: trunk/src/hid_nogui.c =================================================================== --- trunk/src/hid_nogui.c (revision 26958) +++ trunk/src/hid_nogui.c (revision 26959) @@ -350,7 +350,7 @@ return pcb_strdup(answer); } -void *pcb_nogui_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) +void *pcb_nogui_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) { CRASH("attr_dlg_new"); } Index: trunk/src/hid_nogui.h =================================================================== --- trunk/src/hid_nogui.h (revision 26958) +++ trunk/src/hid_nogui.h (revision 26959) @@ -5,7 +5,7 @@ pcb_hid_t *pcb_hid_nogui_get_hid(void); /* For checking if attr dialogs are not available: */ -void *pcb_nogui_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); +void *pcb_nogui_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); int pcb_nogui_progress(long so_far, long total, const char *message); Index: trunk/src_plugins/dialogs/dlg_printcalib.c =================================================================== --- trunk/src_plugins/dialogs/dlg_printcalib.c (revision 26958) +++ trunk/src_plugins/dialogs/dlg_printcalib.c (revision 26959) @@ -37,8 +37,6 @@ PCB_HATT_REAL, 0.5, 25, {0, 0, 1.00}, 0, 0} }; -static pcb_hid_attr_val_t printer_calibrate_values[3]; - const char pcb_acts_PrintCalibrate[] = "PrintCalibrate()"; const char pcb_acth_PrintCalibrate[] = "Calibrate the printer."; /* DOC: printcalibrate.html */ @@ -53,9 +51,9 @@ } printer->calibrate(printer, 0.0, 0.0); - if (pcb_attribute_dialog("printer_calibrate", printer_calibrate_attrs, 3, printer_calibrate_values, "Printer Calibration Values", NULL)) + if (pcb_attribute_dialog("printer_calibrate", printer_calibrate_attrs, 3, "Printer Calibration Values", NULL)) return 1; - printer->calibrate(printer, printer_calibrate_values[1].dbl, printer_calibrate_values[2].dbl); + printer->calibrate(printer, printer_calibrate_attrs[1].val.dbl, printer_calibrate_attrs[2].val.dbl); PCB_ACT_IRES(0); return 0; } Index: trunk/src_plugins/export_ps/ps.c =================================================================== --- trunk/src_plugins/export_ps/ps.c (revision 26958) +++ trunk/src_plugins/export_ps/ps.c (revision 26959) @@ -1330,7 +1330,6 @@ void ps_calibrate_1(pcb_hid_t *hid, double xval, double yval, int use_command) { - pcb_hid_attr_val_t vals[3]; FILE *ps_cal_file; int used_popen = 0, c; @@ -1358,14 +1357,14 @@ ps_calib_attribute_list[0].val.str = pcb_strdup("lpr"); } - if (pcb_attribute_dialog("ps_calibrate", ps_calib_attribute_list, 1, vals, "Print Calibration Page", NULL)) + if (pcb_attribute_dialog("ps_calibrate", ps_calib_attribute_list, 1, "Print Calibration Page", NULL)) return; - if (vals[0].str == NULL) + if (ps_calib_attribute_list[0].val.str == NULL) return; - if (use_command || strchr(vals[0].str, '|')) { - const char *cmd = vals[0].str; + if (use_command || strchr(ps_calib_attribute_list[0].val.str, '|')) { + const char *cmd = ps_calib_attribute_list[0].val.str; while (*cmd == ' ' || *cmd == '|') cmd++; ps_cal_file = pcb_popen(&PCB->hidlib, cmd, "w"); @@ -1372,7 +1371,7 @@ used_popen = 1; } else - ps_cal_file = pcb_fopen(&PCB->hidlib, vals[0].str, "w"); + ps_cal_file = pcb_fopen(&PCB->hidlib, ps_calib_attribute_list[0].val.str, "w"); for (c = 0; calib_lines[c]; c++) fputs(calib_lines[c], ps_cal_file); Index: trunk/src_plugins/hid_lesstif/dialogs.c =================================================================== --- trunk/src_plugins/hid_lesstif/dialogs.c (revision 26958) +++ trunk/src_plugins/hid_lesstif/dialogs.c (revision 26959) @@ -182,7 +182,6 @@ Widget *wl; /* content widget */ Widget *wltop;/* the parent widget, which is different from wl if reparenting (extra boxes, e.g. for framing or scrolling) was needed */ Widget **btn; /* enum value buttons */ - pcb_hid_attr_val_t *results; Widget dialog; pcb_hid_attr_val_t property[PCB_HATP_max]; Dimension minw, minh; @@ -205,11 +204,6 @@ case PCB_HATT_STRING: free((char *)ctx->attrs[widx].val.str); ctx->attrs[widx].val.str = pcb_strdup(XmTextGetString(ctx->wl[widx])); - if (ctx->results != NULL) { - TODO("this is a memory leak at the moment, because ctx->results[widx].str may be const char * in some cases; will be gone when result is gone"); -/* free((char *)ctx->results[widx].str);*/ - ctx->results[widx].str = ctx->attrs[widx].val.str; - } return; /* can't rely on central copy because of the allocation */ case PCB_HATT_ENUM: { @@ -228,9 +222,6 @@ default: break; } - - if (ctx->results != NULL) - ctx->results[widx] = ctx->attrs[widx].val; } static int attr_get_idx(XtPointer dlg_widget_, lesstif_attr_dlg_t **ctx_out) @@ -410,7 +401,7 @@ break; case PCB_HATT_BOOL: stdarg(XmNlabelString, empty); - stdarg(XmNset, ctx->results[i].lng); + stdarg(XmNset, ctx->attrs[i].val.lng); ctx->wl[i] = XmCreateToggleButton(parent, XmStrCast(ctx->attrs[i].name), stdarg_args, stdarg_n); XtAddCallback(ctx->wl[i], XmNvalueChangedCallback, valchg, ctx->wl[i]); break; @@ -417,7 +408,7 @@ case PCB_HATT_STRING: stdarg(XmNcolumns, 40); stdarg(XmNresizeWidth, True); - stdarg(XmNvalue, ctx->results[i].str); + stdarg(XmNvalue, ctx->attrs[i].val.str); ctx->wl[i] = XmCreateTextField(parent, XmStrCast(ctx->attrs[i].name), stdarg_args, stdarg_n); XtAddCallback(ctx->wl[i], XmNvalueChangedCallback, valchg, ctx->wl[i]); XtAddCallback(ctx->wl[i], XmNactivateCallback, activated, ctx->wl[i]); @@ -635,15 +626,13 @@ XtUnmanageChild(ctx->wltop[n]); } -void *lesstif_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) +void *lesstif_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) { Widget topform, main_tbl; - int i; lesstif_attr_dlg_t *ctx; ctx = calloc(sizeof(lesstif_attr_dlg_t), 1); ctx->attrs = attrs; - ctx->results = results; ctx->n_attrs = n_attrs; ctx->caller_data = caller_data; ctx->minw = ctx->minh = 32; @@ -652,14 +641,6 @@ ctx->widget_destroyed = 0; ctx->id = pcb_strdup(id); - for (i = 0; i < n_attrs; i++) { - results[i] = attrs[i].val; - if (PCB_HAT_IS_STR(attrs[i].type) && (results[i].str)) - results[i].str = pcb_strdup(results[i].str); - else - results[i].str = NULL; - } - ctx->wl = (Widget *) calloc(n_attrs, sizeof(Widget)); ctx->wltop = (Widget *)calloc(n_attrs, sizeof(Widget)); ctx->btn = (Widget **) calloc(n_attrs, sizeof(Widget *)); @@ -728,7 +709,6 @@ ctx->attrs = attrs; ctx->n_attrs = n_attrs; ctx->caller_data = caller_data; - ctx->results = calloc(n_attrs, sizeof(pcb_hid_attr_val_t)); ctx->wl = (Widget *) calloc(n_attrs, sizeof(Widget)); ctx->wltop = (Widget *)calloc(n_attrs, sizeof(Widget)); @@ -846,7 +826,7 @@ return -1; if (attribute_dialog_set(ctx, idx, val) == 0) { - ctx->results[idx] = *val; + ctx->attrs[idx].val = *val; return 0; } Index: trunk/src_plugins/hid_lesstif/main.c =================================================================== --- trunk/src_plugins/hid_lesstif/main.c (revision 26958) +++ trunk/src_plugins/hid_lesstif/main.c (revision 26959) @@ -2822,7 +2822,7 @@ return ret; } -extern void *lesstif_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t *results_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); +extern void *lesstif_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); extern int lesstif_attr_dlg_run(void *hid_ctx); extern void lesstif_attr_dlg_raise(void *hid_ctx); Index: trunk/src_plugins/hid_remote/remote.c =================================================================== --- trunk/src_plugins/hid_remote/remote.c (revision 26958) +++ trunk/src_plugins/hid_remote/remote.c (revision 26959) @@ -350,7 +350,7 @@ { } -static void *remote_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, pcb_hid_attr_val_t * results_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) +static void *remote_attr_dlg_new(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs_, int n_attrs_, const char *title_, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) { return NULL; } Index: trunk/src_plugins/lib_gtk_common/dlg_attribute.c =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_attribute.c (revision 26958) +++ trunk/src_plugins/lib_gtk_common/dlg_attribute.c (revision 26959) @@ -51,7 +51,6 @@ void *caller_data; /* WARNING: for now, this must be the first field (see core spinbox enter_cb) */ pcb_gtk_t *gctx; pcb_hid_attribute_t *attrs; - pcb_hid_attr_val_t *results; GtkWidget **wl; /* content widget */ GtkWidget **wltop; /* the parent widget, which is different from wl if reparenting (extra boxes, e.g. for framing or scrolling) was needed */ int n_attrs; @@ -711,7 +710,7 @@ ghid_attr_dlg_widget_hide_(ctx, n, 1); } -void *ghid_attr_dlg_new(pcb_gtk_t *gctx, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) +void *ghid_attr_dlg_new(pcb_gtk_t *gctx, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) { GtkWidget *content_area; GtkWidget *main_vbox; @@ -726,7 +725,6 @@ ctx->gctx = gctx; ctx->attrs = attrs; - ctx->results = results; ctx->n_attrs = n_attrs; ctx->wl = calloc(sizeof(GtkWidget *), n_attrs); ctx->wltop = calloc(sizeof(GtkWidget *), n_attrs); @@ -841,16 +839,6 @@ ctx->close_cb(ctx->caller_data, PCB_HID_ATTR_EV_CODECLOSE); } - if (ctx->rc == 0) { /* copy over the results */ - for (i = 0; i < ctx->n_attrs; i++) { - ctx->results[i] = ctx->attrs[i].val; - if (PCB_HAT_IS_STR(ctx->attrs[i].type) && (ctx->results[i].str)) - ctx->results[i].str = pcb_strdup(ctx->results[i].str); - else - ctx->results[i].str = NULL; - } - } - if (ctx->dialog != NULL) gtk_widget_destroy(ctx->dialog); free(ctx->id); Index: trunk/src_plugins/lib_gtk_common/dlg_attribute.h =================================================================== --- trunk/src_plugins/lib_gtk_common/dlg_attribute.h (revision 26958) +++ trunk/src_plugins/lib_gtk_common/dlg_attribute.h (revision 26959) @@ -2,7 +2,7 @@ #include "hid.h" #include "pcb_gtk.h" -void *ghid_attr_dlg_new(pcb_gtk_t *gctx, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); +void *ghid_attr_dlg_new(pcb_gtk_t *gctx, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny); int ghid_attr_dlg_run(void *hid_ctx); void ghid_attr_dlg_raise(void *hid_ctx); void ghid_attr_dlg_free(void *hid_ctx); Index: trunk/src_plugins/lib_gtk_common/glue_hid.c =================================================================== --- trunk/src_plugins/lib_gtk_common/glue_hid.c (revision 26958) +++ trunk/src_plugins/lib_gtk_common/glue_hid.c (revision 26959) @@ -292,9 +292,9 @@ return pcb_gtk_fileselect((pcb_gtk_t *)hid->hid_data, title, descr, default_file, default_ext, flt, history_tag, flags, sub); } -static void *ghid_attr_dlg_new_(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, pcb_hid_attr_val_t *results, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) +static void *ghid_attr_dlg_new_(pcb_hid_t *hid, const char *id, pcb_hid_attribute_t *attrs, int n_attrs, const char *title, void *caller_data, pcb_bool modal, void (*button_cb)(void *caller_data, pcb_hid_attr_ev_t ev), int defx, int defy, int minx, int miny) { - return ghid_attr_dlg_new((pcb_gtk_t *)hid->hid_data, id, attrs, n_attrs, results, title, caller_data, modal, button_cb, defx, defy, minx, miny); + return ghid_attr_dlg_new((pcb_gtk_t *)hid->hid_data, id, attrs, n_attrs, title, caller_data, modal, button_cb, defx, defy, minx, miny); } static void ghid_beep(pcb_hid_t *hid)