Index: trunk/doc-rnd/TODO =================================================================== --- trunk/doc-rnd/TODO (revision 1261) +++ trunk/doc-rnd/TODO (revision 1262) @@ -5,6 +5,7 @@ - test gpmi search - place 2 arcs, select first, can't move to left edge (bbox or rtree?) - test onpoint + - PrintQuotedString(FILE * FP, char *S): remove dynamic string allocation - get rid of gcode/lists.h, ds.[ch] and vector.[ch] Index: trunk/src/action.c =================================================================== --- trunk/src/action.c (revision 1261) +++ trunk/src/action.c (revision 1262) @@ -1275,4 +1275,4 @@ executefile_help, executefile_syntax} }; -REGISTER_ACTIONS(action_action_list) +REGISTER_ACTIONS(action_action_list, NULL) Index: trunk/src/buffer.c =================================================================== --- trunk/src/buffer.c (revision 1261) +++ trunk/src/buffer.c (revision 1262) @@ -1448,4 +1448,4 @@ pastebuffer_help, pastebuffer_syntax} }; -REGISTER_ACTIONS(buffer_action_list) +REGISTER_ACTIONS(buffer_action_list, NULL) Index: trunk/src/change_act.c =================================================================== --- trunk/src/change_act.c (revision 1261) +++ trunk/src/change_act.c (revision 1262) @@ -1432,4 +1432,4 @@ clrflag_help, clrflag_syntax} }; -REGISTER_ACTIONS(change_action_list) +REGISTER_ACTIONS(change_action_list, NULL) Index: trunk/src/command.c =================================================================== --- trunk/src/command.c (revision 1261) +++ trunk/src/command.c (revision 1262) @@ -397,4 +397,4 @@ , }; -REGISTER_ACTIONS(command_action_list) +REGISTER_ACTIONS(command_action_list, NULL) Index: trunk/src/dolists.h =================================================================== --- trunk/src/dolists.h (revision 1261) +++ trunk/src/dolists.h (revision 1262) @@ -4,6 +4,6 @@ #undef REGISTER_ATTRIBUTES #undef REGISTER_FLAGS -#define REGISTER_ACTIONS(a) {extern void HIDCONCAT(register_,a)();HIDCONCAT(register_,a)();} -#define REGISTER_ATTRIBUTES(a) {extern void HIDCONCAT(register_,a)();HIDCONCAT(register_,a)();} -#define REGISTER_FLAGS(a) {extern void HIDCONCAT(register_,a)();HIDCONCAT(register_,a)();} +#define REGISTER_ACTIONS(a, cookie) {extern void HIDCONCAT(register_,a)();HIDCONCAT(register_,a)();} +#define REGISTER_ATTRIBUTES(a, cookie) {extern void HIDCONCAT(register_,a)();HIDCONCAT(register_,a)();} +#define REGISTER_FLAGS(a, cookie) {extern void HIDCONCAT(register_,a)();HIDCONCAT(register_,a)();} Index: trunk/src/file_act.c =================================================================== --- trunk/src/file_act.c (revision 1261) +++ trunk/src/file_act.c (revision 1262) @@ -384,4 +384,4 @@ quit_help, quit_syntax} }; -REGISTER_ACTIONS(file_action_list) +REGISTER_ACTIONS(file_action_list, NULL) Index: trunk/src/find_act.c =================================================================== --- trunk/src/find_act.c (revision 1261) +++ trunk/src/find_act.c (revision 1262) @@ -74,4 +74,4 @@ drc_help, drc_syntax} }; -REGISTER_ACTIONS(find_action_list) +REGISTER_ACTIONS(find_action_list, NULL) Index: trunk/src/flags.c =================================================================== --- trunk/src/flags.c (revision 1261) +++ trunk/src/flags.c (revision 1262) @@ -334,4 +334,4 @@ }; -REGISTER_FLAGS(flags_flag_list) +REGISTER_FLAGS(flags_flag_list, NULL) Index: trunk/src/fontmode.c =================================================================== --- trunk/src/fontmode.c (revision 1261) +++ trunk/src/fontmode.c (revision 1262) @@ -229,4 +229,4 @@ fontsave_help, fontsave_syntax} }; -REGISTER_ACTIONS(fontmode_action_list) +REGISTER_ACTIONS(fontmode_action_list, NULL) Index: trunk/src/gui_act.c =================================================================== --- trunk/src/gui_act.c (revision 1261) +++ trunk/src/gui_act.c (revision 1262) @@ -1110,4 +1110,4 @@ routestyle_help, routestyle_syntax} }; -REGISTER_ACTIONS(gui_action_list) +REGISTER_ACTIONS(gui_action_list, NULL) Index: trunk/src/hid/batch/batch.c =================================================================== --- trunk/src/hid/batch/batch.c (revision 1261) +++ trunk/src/hid/batch/batch.c (revision 1262) @@ -91,6 +91,7 @@ return 0; } +static const char *batch_cookie = "batch HID"; HID_Action batch_action_list[] = { {"PCBChanged", 0, PCBChanged} @@ -110,7 +111,7 @@ {"Info", 0, info} }; -REGISTER_ACTIONS(batch_action_list) +REGISTER_ACTIONS(batch_action_list, batch_cookie) /* ----------------------------------------------------------------------------- */ Index: trunk/src/hid/bom/bom.c =================================================================== --- trunk/src/hid/bom/bom.c (revision 1261) +++ trunk/src/hid/bom/bom.c (revision 1262) @@ -21,6 +21,8 @@ RCSID("$Id$"); +const char *bom_cookie = "bom HID"; + static HID_Attribute bom_options[] = { /* %start-doc options "8 BOM Creation" @ftable @code @@ -498,7 +500,7 @@ static void bom_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(bom_options, sizeof(bom_options) / sizeof(bom_options[0])); + hid_register_attributes(bom_options, sizeof(bom_options) / sizeof(bom_options[0]), bom_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/common/actions.c =================================================================== --- trunk/src/hid/common/actions.c (revision 1261) +++ trunk/src/hid/common/actions.c (revision 1262) @@ -44,11 +44,11 @@ } typedef struct { - void *cookie; + const char *cookie; const HID_Action *action; } hid_cookie_action_t; -void hid_register_actions(const HID_Action * a, int n, void *cookie) +void hid_register_actions(const HID_Action * a, int n, const char *cookie) { int i; hid_cookie_action_t *ca; Index: trunk/src/hid/common/hidinit.c =================================================================== --- trunk/src/hid/common/hidinit.c (revision 1261) +++ trunk/src/hid/common/hidinit.c (revision 1262) @@ -243,7 +243,7 @@ HID_AttrNode *hid_attr_nodes = 0; -void hid_register_attributes(HID_Attribute * a, int n) +void hid_register_attributes(HID_Attribute * a, int n, const char *cookie) { HID_AttrNode *ha; @@ -253,6 +253,7 @@ hid_attr_nodes = ha; ha->attributes = a; ha->n = n; + ha->cookie = cookie; } void hid_parse_command_line(int *argc, char ***argv) Index: trunk/src/hid/gcode/gcode.c =================================================================== --- trunk/src/hid/gcode/gcode.c (revision 1261) +++ trunk/src/hid/gcode/gcode.c (revision 1262) @@ -63,6 +63,7 @@ #include "hid/common/hidinit.h" +const char *gcode_cookie = "gcode HID"; #define CRASH fprintf(stderr, "HID error: pcb called unimplemented GCODE function %s.\n", __FUNCTION__); abort() struct color_struct { @@ -168,7 +169,7 @@ #define NUM_OPTIONS (sizeof(gcode_attribute_list)/sizeof(gcode_attribute_list[0])) -REGISTER_ATTRIBUTES(gcode_attribute_list) +REGISTER_ATTRIBUTES(gcode_attribute_list, gcode_cookie) static HID_Attr_Val gcode_values[NUM_OPTIONS]; /* *** Utility funcions **************************************************** */ @@ -214,7 +215,7 @@ static void gcode_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(gcode_attribute_list, sizeof(gcode_attribute_list) / sizeof(gcode_attribute_list[0])); + hid_register_attributes(gcode_attribute_list, sizeof(gcode_attribute_list) / sizeof(gcode_attribute_list[0]), gcode_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/gcode/gcode.h =================================================================== --- trunk/src/hid/gcode/gcode.h (revision 1261) +++ trunk/src/hid/gcode/gcode.h (revision 1262) @@ -1,3 +1,3 @@ /* $Id: nelma.h,v 1.2 2007/04/20 11:31:15 danmc Exp $ */ - +extern const char *gcode_cookie; extern HID gcode_hid; Index: trunk/src/hid/gerber/gerber.c =================================================================== --- trunk/src/hid/gerber/gerber.c (revision 1261) +++ trunk/src/hid/gerber/gerber.c (revision 1262) @@ -35,6 +35,8 @@ RCSID("$Id$"); +const char *gerber_cookie = "gerber HID"; + #define CRASH fprintf(stderr, "HID error: pcb called unimplemented Gerber function %s.\n", __FUNCTION__); abort() /*----------------------------------------------------------------------------*/ @@ -600,7 +602,7 @@ static void gerber_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(gerber_options, NUM_OPTIONS); + hid_register_attributes(gerber_options, NUM_OPTIONS, gerber_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/gtk/gtkhid-main.c =================================================================== --- trunk/src/hid/gtk/gtkhid-main.c (revision 1261) +++ trunk/src/hid/gtk/gtkhid-main.c (revision 1262) @@ -1851,7 +1851,7 @@ {"Zoom", N_("Click on zoom focus"), Zoom, zoom_help, zoom_syntax} }; -REGISTER_ACTIONS(ghid_main_action_list) +REGISTER_ACTIONS(ghid_main_action_list, ghid_cookie) static int @@ -1871,7 +1871,7 @@ {"flip_y", flag_flipy, 0} }; -REGISTER_FLAGS(ghid_main_flag_list) +REGISTER_FLAGS(ghid_main_flag_list, ghid_cookie) #include "dolists.h" /* * We will need these for finding the windows installation Index: trunk/src/hid/gtk/gui-log-window.c =================================================================== --- trunk/src/hid/gtk/gui-log-window.c (revision 1261) +++ trunk/src/hid/gtk/gui-log-window.c (revision 1262) @@ -153,4 +153,4 @@ , }; -REGISTER_ACTIONS(ghid_log_action_list) +REGISTER_ACTIONS(ghid_log_action_list, ghid_cookie) Index: trunk/src/hid/gtk/gui-misc.c =================================================================== --- trunk/src/hid/gtk/gui-misc.c (revision 1261) +++ trunk/src/hid/gtk/gui-misc.c (revision 1262) @@ -40,6 +40,8 @@ RCSID("$Id$"); +const char *ghid_cookie = "gtk hid"; + #define CUSTOM_CURSOR_CLOCKWISE (GDK_LAST_CURSOR + 10) #define CUSTOM_CURSOR_DRAG (GDK_LAST_CURSOR + 11) #define CUSTOM_CURSOR_LOCK (GDK_LAST_CURSOR + 12) Index: trunk/src/hid/gtk/gui-netlist-window.c =================================================================== --- trunk/src/hid/gtk/gui-netlist-window.c (revision 1261) +++ trunk/src/hid/gtk/gui-netlist-window.c (revision 1262) @@ -968,4 +968,4 @@ , }; -REGISTER_ACTIONS(ghid_netlist_action_list) +REGISTER_ACTIONS(ghid_netlist_action_list, ghid_cookie) Index: trunk/src/hid/gtk/gui-top-window.c =================================================================== --- trunk/src/hid/gtk/gui-top-window.c (revision 1261) +++ trunk/src/hid/gtk/gui-top-window.c (revision 1262) @@ -1668,7 +1668,7 @@ toggleview_help, toggleview_syntax} }; -REGISTER_ACTIONS(gtk_topwindow_action_list) +REGISTER_ACTIONS(gtk_topwindow_action_list, ghid_cookie) /* * This function is used to check if a specified hotkey in the menu @@ -1885,4 +1885,4 @@ {"EditLayerGroups", 0, EditLayerGroups, editlayergroups_help, editlayergroups_syntax} }; -REGISTER_ACTIONS(ghid_menu_action_list) +REGISTER_ACTIONS(ghid_menu_action_list, ghid_cookie) Index: trunk/src/hid/gtk/gui.h =================================================================== --- trunk/src/hid/gtk/gui.h (revision 1261) +++ trunk/src/hid/gtk/gui.h (revision 1262) @@ -511,4 +511,6 @@ return (z * gport->view.coord_per_px); } +extern const char *ghid_cookie; + #endif /* PCB_HID_GTK_GHID_H */ Index: trunk/src/hid/hidint.h =================================================================== --- trunk/src/hid/hidint.h (revision 1261) +++ trunk/src/hid/hidint.h (revision 1262) @@ -32,6 +32,7 @@ struct HID_AttrNode *next; HID_Attribute *attributes; int n; + const char *cookie; } HID_AttrNode; extern HID_AttrNode *hid_attr_nodes; Index: trunk/src/hid/lesstif/dialogs.c =================================================================== --- trunk/src/hid/lesstif/dialogs.c (revision 1261) +++ trunk/src/hid/lesstif/dialogs.c (revision 1262) @@ -1934,4 +1934,4 @@ , }; -REGISTER_ACTIONS(lesstif_dialog_action_list) +REGISTER_ACTIONS(lesstif_dialog_action_list, lesstif_cookie) Index: trunk/src/hid/lesstif/lesstif.h =================================================================== --- trunk/src/hid/lesstif/lesstif.h (revision 1261) +++ trunk/src/hid/lesstif/lesstif.h (revision 1262) @@ -68,3 +68,5 @@ x = gettext(x); return XmStringCreateLtoR(x, XmFONTLIST_DEFAULT_TAG); } + +extern const char *lesstif_cookie; Index: trunk/src/hid/lesstif/library.c =================================================================== --- trunk/src/hid/lesstif/library.c (revision 1261) +++ trunk/src/hid/lesstif/library.c (revision 1262) @@ -156,4 +156,4 @@ , }; -REGISTER_ACTIONS(lesstif_library_action_list) +REGISTER_ACTIONS(lesstif_library_action_list, lesstif_cookie) Index: trunk/src/hid/lesstif/main.c =================================================================== --- trunk/src/hid/lesstif/main.c (revision 1261) +++ trunk/src/hid/lesstif/main.c (revision 1262) @@ -39,6 +39,8 @@ RCSID("$Id$"); +const char *lesstif_cookie = "lesstif HID"; + #ifndef XtRDouble #define XtRDouble "Double" #endif @@ -170,7 +172,7 @@ {"flip_y", flag_flipy, 0} }; -REGISTER_FLAGS(lesstif_main_flag_list) +REGISTER_FLAGS(lesstif_main_flag_list, lesstif_cookie) /* This is the size of the current PCB work area. */ /* Use PCB->MaxWidth, PCB->MaxHeight. */ @@ -226,7 +228,7 @@ #define HA_pcbmenu 3 }; -REGISTER_ATTRIBUTES(lesstif_attribute_list) +REGISTER_ATTRIBUTES(lesstif_attribute_list, lesstif_cookie) static void lesstif_use_mask(int use_it); static void zoom_max(); @@ -904,7 +906,7 @@ , }; -REGISTER_ACTIONS(lesstif_main_action_list) +REGISTER_ACTIONS(lesstif_main_action_list, lesstif_cookie) /* ---------------------------------------------------------------------- Index: trunk/src/hid/lesstif/menu.c =================================================================== --- trunk/src/hid/lesstif/menu.c (revision 1261) +++ trunk/src/hid/lesstif/menu.c (revision 1262) @@ -647,7 +647,7 @@ selectlayer_help, selectlayer_syntax} }; -REGISTER_ACTIONS(lesstif_menu_action_list) +REGISTER_ACTIONS(lesstif_menu_action_list, lesstif_cookie) #if 0 static void do_color(char *value, char *which) Index: trunk/src/hid/lesstif/netlist.c =================================================================== --- trunk/src/hid/lesstif/netlist.c (revision 1261) +++ trunk/src/hid/lesstif/netlist.c (revision 1262) @@ -446,4 +446,4 @@ netlistshow_help, netlistshow_syntax} }; -REGISTER_ACTIONS(lesstif_netlist_action_list) +REGISTER_ACTIONS(lesstif_netlist_action_list, lesstif_cookie) Index: trunk/src/hid/lesstif/styles.c =================================================================== --- trunk/src/hid/lesstif/styles.c (revision 1261) +++ trunk/src/hid/lesstif/styles.c (revision 1262) @@ -431,4 +431,4 @@ routestyleschanged_help, routestyleschanged_syntax} }; -REGISTER_ACTIONS(lesstif_styles_action_list) +REGISTER_ACTIONS(lesstif_styles_action_list, lesstif_cookie) Index: trunk/src/hid/lpr/lpr.c =================================================================== --- trunk/src/hid/lpr/lpr.c (revision 1261) +++ trunk/src/hid/lpr/lpr.c (revision 1262) @@ -23,6 +23,8 @@ #define CRASH fprintf(stderr, "HID error: pcb called unimplemented PS function %s.\n", __FUNCTION__); abort() +const char *lpr_cookie = "lpr HID"; + static HID_Attribute base_lpr_options[] = { /* %start-doc options "98 lpr Printing Options" @@ -99,7 +101,7 @@ static void lpr_parse_arguments(int *argc, char ***argv) { lpr_get_export_options(0); - hid_register_attributes(lpr_options, num_lpr_options); + hid_register_attributes(lpr_options, num_lpr_options, lpr_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/nelma/nelma.c =================================================================== --- trunk/src/hid/nelma/nelma.c (revision 1261) +++ trunk/src/hid/nelma/nelma.c (revision 1262) @@ -79,6 +79,8 @@ RCSID("$Id$"); +const char *nelma_cookie = "nelma HID"; + #define CRASH fprintf(stderr, "HID error: pcb called unimplemented PNG function %s.\n", __FUNCTION__); abort() /* Needed for PNG export */ @@ -207,7 +209,7 @@ #define NUM_OPTIONS (sizeof(nelma_attribute_list)/sizeof(nelma_attribute_list[0])) -REGISTER_ATTRIBUTES(nelma_attribute_list) +REGISTER_ATTRIBUTES(nelma_attribute_list, nelma_cookie) static HID_Attr_Val nelma_values[NUM_OPTIONS]; /* *** Utility funcions **************************************************** */ @@ -493,7 +495,7 @@ static void nelma_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(nelma_attribute_list, sizeof(nelma_attribute_list) / sizeof(nelma_attribute_list[0])); + hid_register_attributes(nelma_attribute_list, sizeof(nelma_attribute_list) / sizeof(nelma_attribute_list[0]), nelma_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/png/png.c =================================================================== --- trunk/src/hid/png/png.c (revision 1261) +++ trunk/src/hid/png/png.c (revision 1262) @@ -54,6 +54,8 @@ static HID png_hid; +const char *png_cookie = "png HID"; + static void *color_cache = NULL; static void *brush_cache = NULL; @@ -331,7 +333,7 @@ #define NUM_OPTIONS (sizeof(png_attribute_list)/sizeof(png_attribute_list[0])) -REGISTER_ATTRIBUTES(png_attribute_list) +REGISTER_ATTRIBUTES(png_attribute_list, png_cookie) static HID_Attr_Val png_values[NUM_OPTIONS]; @@ -929,7 +931,7 @@ static void png_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(png_attribute_list, sizeof(png_attribute_list) / sizeof(png_attribute_list[0])); + hid_register_attributes(png_attribute_list, sizeof(png_attribute_list) / sizeof(png_attribute_list[0]), png_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/png/png.h =================================================================== --- trunk/src/hid/png/png.h (revision 1261) +++ trunk/src/hid/png/png.h (revision 1262) @@ -1,3 +1,4 @@ /* $Id$ */ +extern const char *png_cookie; extern void png_hid_export_to_file(FILE *, HID_Attr_Val *); Index: trunk/src/hid/ps/eps.c =================================================================== --- trunk/src/hid/ps/eps.c (revision 1261) +++ trunk/src/hid/ps/eps.c (revision 1262) @@ -129,7 +129,7 @@ #define NUM_OPTIONS (sizeof(eps_attribute_list)/sizeof(eps_attribute_list[0])) -REGISTER_ATTRIBUTES(eps_attribute_list) +REGISTER_ATTRIBUTES(eps_attribute_list, ps_cookie) static HID_Attr_Val eps_values[NUM_OPTIONS]; @@ -338,7 +338,7 @@ static void eps_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(eps_attribute_list, sizeof(eps_attribute_list) / sizeof(eps_attribute_list[0])); + hid_register_attributes(eps_attribute_list, sizeof(eps_attribute_list) / sizeof(eps_attribute_list[0]), ps_cookie); hid_parse_command_line(argc, argv); } Index: trunk/src/hid/ps/ps.c =================================================================== --- trunk/src/hid/ps/ps.c (revision 1261) +++ trunk/src/hid/ps/ps.c (revision 1262) @@ -29,6 +29,8 @@ #define CRASH fprintf(stderr, "HID error: pcb called unimplemented PS function %s.\n", __FUNCTION__); abort() +const char *ps_cookie = "ps HID"; + static int ps_set_layer(const char *name, int group, int empty); static void use_gc(hidGC gc); @@ -363,7 +365,7 @@ #define NUM_OPTIONS (sizeof(ps_attribute_list)/sizeof(ps_attribute_list[0])) -REGISTER_ATTRIBUTES(ps_attribute_list) +REGISTER_ATTRIBUTES(ps_attribute_list, ps_cookie) /* All file-scope data is in global struct */ static struct { @@ -739,7 +741,7 @@ static void ps_parse_arguments(int *argc, char ***argv) { - hid_register_attributes(ps_attribute_list, NUM_OPTIONS); + hid_register_attributes(ps_attribute_list, NUM_OPTIONS, ps_cookie); hid_parse_command_line(argc, argv); } @@ -1547,7 +1549,7 @@ {"pscalib", 0, ActionPSCalib} }; -REGISTER_ACTIONS(hidps_action_list) +REGISTER_ACTIONS(hidps_action_list, ps_cookie) #include "dolists.h" @@ -1577,7 +1579,7 @@ hid->calibrate = ps_calibrate; hid->set_crosshair = ps_set_crosshair; - REGISTER_ACTIONS(hidps_action_list) + REGISTER_ACTIONS(hidps_action_list, ps_cookie) } void hid_ps_init() Index: trunk/src/hid/ps/ps.h =================================================================== --- trunk/src/hid/ps/ps.h (revision 1261) +++ trunk/src/hid/ps/ps.h (revision 1262) @@ -1,5 +1,6 @@ /* $Id$ */ +extern const char *ps_cookie; extern HID ps_hid; extern void ps_hid_export_to_file(FILE *, HID_Attr_Val *); extern void ps_start_file(FILE *); Index: trunk/src/hid.h =================================================================== --- trunk/src/hid.h (revision 1261) +++ trunk/src/hid.h (revision 1262) @@ -84,9 +84,9 @@ extern void hid_register_action(const HID_Action *, void *); - extern void hid_register_actions(const HID_Action *, int, void *); -#define REGISTER_ACTIONS(a) HIDCONCAT(void register_,a) ()\ -{ hid_register_actions(a, sizeof(a)/sizeof(a[0]), NULL); } + extern void hid_register_actions(const HID_Action *, int, const char *); +#define REGISTER_ACTIONS(a, cookie) HIDCONCAT(void register_,a) ()\ +{ hid_register_actions(a, sizeof(a)/sizeof(a[0]), cookie); } /* Note that PCB expects the gui to provide the following actions: @@ -141,8 +141,8 @@ } HID_Flag; extern void hid_register_flags(HID_Flag *a, int n, const char *cookie); -#define REGISTER_FLAGS(a) HIDCONCAT(void register_,a) ()\ -{ hid_register_flags(a, sizeof(a)/sizeof(a[0]), NULL); } +#define REGISTER_FLAGS(a, cookie) HIDCONCAT(void register_,a) ()\ +{ hid_register_flags(a, sizeof(a)/sizeof(a[0]), cookie); } /* Looks up one of the flags registered above. If the flag is unknown, returns zero. */ @@ -187,9 +187,9 @@ int hash; /* for detecting changes. */ } HID_Attribute; - extern void hid_register_attributes(HID_Attribute *, int); -#define REGISTER_ATTRIBUTES(a) HIDCONCAT(void register_,a) ()\ -{ hid_register_attributes(a, sizeof(a)/sizeof(a[0])); } + extern void hid_register_attributes(HID_Attribute *, int, const char *cookie); +#define REGISTER_ATTRIBUTES(a, cookie) HIDCONCAT(void register_,a) ()\ +{ hid_register_attributes(a, sizeof(a)/sizeof(a[0]), cookie); } /* These three are set by hid_parse_command_line(). */ extern char *program_name; Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 1261) +++ trunk/src/main.c (revision 1262) @@ -1325,7 +1325,9 @@ }; -REGISTER_ATTRIBUTES(main_attribute_list) +static const char *main_cookie = "pcb-rnd main.c"; + +REGISTER_ATTRIBUTES(main_attribute_list, main_cookie) /* ---------------------------------------------------------------------- * post-process settings. */ Index: trunk/src/misc.c =================================================================== --- trunk/src/misc.c (revision 1261) +++ trunk/src/misc.c (revision 1262) @@ -2063,4 +2063,4 @@ , }; -REGISTER_ACTIONS(misc_action_list) +REGISTER_ACTIONS(misc_action_list, NULL) Index: trunk/src/move.c =================================================================== --- trunk/src/move.c (revision 1261) +++ trunk/src/move.c (revision 1262) @@ -1044,4 +1044,4 @@ movelayer_help, movelayer_syntax} }; -REGISTER_ACTIONS(move_action_list) +REGISTER_ACTIONS(move_action_list, NULL) Index: trunk/src/netlist.c =================================================================== --- trunk/src/netlist.c (revision 1261) +++ trunk/src/netlist.c (revision 1262) @@ -547,4 +547,4 @@ netlist_help, netlist_syntax} }; -REGISTER_ACTIONS(netlist_action_list) +REGISTER_ACTIONS(netlist_action_list, NULL) Index: trunk/src/object_act.c =================================================================== --- trunk/src/object_act.c (revision 1261) +++ trunk/src/object_act.c (revision 1262) @@ -1015,4 +1015,4 @@ mincleargap_help, mincleargap_syntax} }; -REGISTER_ACTIONS(object_action_list) +REGISTER_ACTIONS(object_action_list, NULL) Index: trunk/src/plugins.c =================================================================== --- trunk/src/plugins.c (revision 1261) +++ trunk/src/plugins.c (revision 1262) @@ -105,4 +105,4 @@ manageplugins_help, manageplugins_syntax} }; -REGISTER_ACTIONS(plugins_action_list) +REGISTER_ACTIONS(plugins_action_list, NULL) Index: trunk/src/polygon_act.c =================================================================== --- trunk/src/polygon_act.c (revision 1261) +++ trunk/src/polygon_act.c (revision 1262) @@ -141,4 +141,4 @@ polygon_help, polygon_syntax} }; -REGISTER_ACTIONS(polygon_action_list) +REGISTER_ACTIONS(polygon_action_list, NULL) Index: trunk/src/rats_act.c =================================================================== --- trunk/src/rats_act.c (revision 1261) +++ trunk/src/rats_act.c (revision 1262) @@ -221,4 +221,4 @@ deleterats_help, deleterats_syntax} }; -REGISTER_ACTIONS(rats_action_list) +REGISTER_ACTIONS(rats_action_list, NULL) Index: trunk/src/rats_patch.c =================================================================== --- trunk/src/rats_patch.c (revision 1261) +++ trunk/src/rats_patch.c (revision 1262) @@ -484,4 +484,4 @@ savepatch_help, savepatch_syntax} }; -REGISTER_ACTIONS(rats_patch_action_list) +REGISTER_ACTIONS(rats_patch_action_list, NULL) Index: trunk/src/remove_act.c =================================================================== --- trunk/src/remove_act.c (revision 1261) +++ trunk/src/remove_act.c (revision 1262) @@ -107,4 +107,4 @@ , }; -REGISTER_ACTIONS(remove_action_list) +REGISTER_ACTIONS(remove_action_list, NULL) Index: trunk/src/report.c =================================================================== --- trunk/src/report.c (revision 1261) +++ trunk/src/report.c (revision 1262) @@ -927,4 +927,4 @@ report_help, report_syntax} }; -REGISTER_ACTIONS(report_action_list) +REGISTER_ACTIONS(report_action_list, NULL) Index: trunk/src/select_act.c =================================================================== --- trunk/src/select_act.c (revision 1261) +++ trunk/src/select_act.c (revision 1262) @@ -389,4 +389,4 @@ unselect_help, unselect_syntax} }; -REGISTER_ACTIONS(select_action_list) +REGISTER_ACTIONS(select_action_list, NULL) Index: trunk/src/undo_act.c =================================================================== --- trunk/src/undo_act.c (revision 1261) +++ trunk/src/undo_act.c (revision 1262) @@ -294,4 +294,4 @@ redo_help, redo_syntax} }; -REGISTER_ACTIONS(undo_action_list) +REGISTER_ACTIONS(undo_action_list, NULL) Index: trunk/src_plugins/autoplace/action.c =================================================================== --- trunk/src_plugins/autoplace/action.c (revision 1261) +++ trunk/src_plugins/autoplace/action.c (revision 1262) @@ -53,6 +53,7 @@ return 0; } +static const char *autoplace_cookie = "autoplace plugin"; HID_Action autoplace_action_list[] = { {"AutoPlaceSelected", 0, ActionAutoPlaceSelected, @@ -60,11 +61,11 @@ , }; -REGISTER_ACTIONS(autoplace_action_list) +REGISTER_ACTIONS(autoplace_action_list, autoplace_cookie) #include "dolists.h" pcb_uninit_t hid_autoplace_init(void) { - REGISTER_ACTIONS(autoplace_action_list) + REGISTER_ACTIONS(autoplace_action_list, autoplace_cookie) return NULL; } Index: trunk/src_plugins/autoroute/action.c =================================================================== --- trunk/src_plugins/autoroute/action.c (revision 1261) +++ trunk/src_plugins/autoroute/action.c (revision 1262) @@ -81,6 +81,8 @@ return 0; } +static const char *autoroute_cookie = "autoroute plugin"; + HID_Action autoroute_action_list[] = { {"AutoRoute", 0, ActionAutoRoute, autoroute_help, autoroute_syntax} @@ -87,11 +89,11 @@ , }; -REGISTER_ACTIONS(autoroute_action_list) +REGISTER_ACTIONS(autoroute_action_list, autoroute_cookie) #include "dolists.h" pcb_uninit_t hid_autoroute_init(void) { - REGISTER_ACTIONS(autoroute_action_list) + REGISTER_ACTIONS(autoroute_action_list, autoroute_cookie) return NULL; } Index: trunk/src_plugins/djopt/djopt.c =================================================================== --- trunk/src_plugins/djopt/djopt.c (revision 1261) +++ trunk/src_plugins/djopt/djopt.c (revision 1262) @@ -145,9 +145,11 @@ {"optautoonly", djopt_get_auto_only, 0} }; -REGISTER_FLAGS(djopt_flag_list) +static const char *djopt_cookie = "djopt"; - static char *element_name_for(corner_s * c) +REGISTER_FLAGS(djopt_flag_list, djopt_cookie) + +static char *element_name_for(corner_s * c) { ELEMENT_LOOP(PCB->Data); { @@ -2715,12 +2717,12 @@ djopt_sao_help, djopt_sao_syntax} }; -REGISTER_ACTIONS(djopt_action_list) +REGISTER_ACTIONS(djopt_action_list, djopt_cookie) #include "dolists.h" pcb_uninit_t hid_djopt_init(void) { - REGISTER_FLAGS(djopt_flag_list) - REGISTER_ACTIONS(djopt_action_list) + REGISTER_FLAGS(djopt_flag_list, djopt_cookie) + REGISTER_ACTIONS(djopt_action_list, djopt_cookie) return NULL; } Index: trunk/src_plugins/import_sch/import_sch.c =================================================================== --- trunk/src_plugins/import_sch/import_sch.c (revision 1261) +++ trunk/src_plugins/import_sch/import_sch.c (revision 1262) @@ -420,16 +420,18 @@ return 0; } +static const char *import_sch_cookie = "import_sch plugin"; + HID_Action import_sch_action_list[] = { {"Import", 0, ActionImport, import_help, import_syntax} }; -REGISTER_ACTIONS(import_sch_action_list) +REGISTER_ACTIONS(import_sch_action_list, import_sch_cookie) #include "dolists.h" pcb_uninit_t hid_import_sch_init(void) { - REGISTER_ACTIONS(import_sch_action_list) + REGISTER_ACTIONS(import_sch_action_list, import_sch_cookie) return NULL; } Index: trunk/src_plugins/oldactions/oldactions.c =================================================================== --- trunk/src_plugins/oldactions/oldactions.c (revision 1261) +++ trunk/src_plugins/oldactions/oldactions.c (revision 1262) @@ -91,12 +91,14 @@ bell_help, bell_syntax} }; -REGISTER_ACTIONS(oldactions_action_list) +static const char *oldactions_cookie = "oldactions plugin"; +REGISTER_ACTIONS(oldactions_action_list, oldactions_cookie) + #include "dolists.h" pcb_uninit_t hid_oldactions_init(void) { - REGISTER_ACTIONS(oldactions_action_list) + REGISTER_ACTIONS(oldactions_action_list, oldactions_cookie) return NULL; } Index: trunk/src_plugins/renumber/renumber.c =================================================================== --- trunk/src_plugins/renumber/renumber.c (revision 1261) +++ trunk/src_plugins/renumber/renumber.c (revision 1262) @@ -348,17 +348,19 @@ return 0; } +static const char *renumber_cookie = "renumber plugin"; + HID_Action renumber_action_list[] = { {"Renumber", 0, ActionRenumber, renumber_help, renumber_syntax} }; -REGISTER_ACTIONS(renumber_action_list) +REGISTER_ACTIONS(renumber_action_list, renumber_cookie) #include "dolists.h" pcb_uninit_t hid_renumber_init(void) { - REGISTER_ACTIONS(renumber_action_list) + REGISTER_ACTIONS(renumber_action_list, renumber_cookie) return NULL; } Index: trunk/src_plugins/vendordrill/vendor.c =================================================================== --- trunk/src_plugins/vendordrill/vendor.c (revision 1261) +++ trunk/src_plugins/vendordrill/vendor.c (revision 1262) @@ -809,6 +809,8 @@ } +static const char *vendor_cookie = "vendor drill mapping"; + HID_Action vendor_action_list[] = { {"ApplyVendor", 0, ActionApplyVendor, apply_vendor_help, apply_vendor_syntax} @@ -829,7 +831,7 @@ load_vendor_help, load_vendor_syntax} }; -REGISTER_ACTIONS(vendor_action_list) +REGISTER_ACTIONS(vendor_action_list, vendor_cookie) static int vendor_get_enabled(int unused) { @@ -836,11 +838,12 @@ return vendorMapEnable; } + HID_Flag vendor_flag_list[] = { {"VendorMapOn", vendor_get_enabled, 0} }; -REGISTER_FLAGS(vendor_flag_list) +REGISTER_FLAGS(vendor_flag_list, vendor_cookie) #include "dolists.h" pcb_uninit_t hid_vendordrill_init(void) @@ -848,7 +851,7 @@ stub_vendorDrillMap = vendorDrillMap; stub_vendorIsElementMappable = vendorIsElementMappable; - REGISTER_ACTIONS(vendor_action_list) - REGISTER_FLAGS(vendor_flag_list) + REGISTER_ACTIONS(vendor_action_list, vendor_cookie) + REGISTER_FLAGS(vendor_flag_list, vendor_cookie) return NULL; }