Index: trunk/src_plugins/lib_netmap/netmap.c =================================================================== --- trunk/src_plugins/lib_netmap/netmap.c (revision 32391) +++ trunk/src_plugins/lib_netmap/netmap.c (revision 32392) @@ -72,8 +72,10 @@ if (obj->term != NULL) { pcb_net_term_t *t = pcb_net_find_by_obj(&pcb->netlist[PCB_NETLIST_EDITED], obj); - if (t != NULL) - map->curr_net = t->parent.net; + if (t != NULL) { + if (!((map->how & PCB_NETMAPCTRL_RATTED) && (t->parent.net->inhibit_rats))) + map->curr_net = t->parent.net; + } } if (htpp_get(&map->o2n, obj) != NULL) @@ -128,6 +130,7 @@ map->curr_net = NULL; map->dyn_nets = 0; map->pcb = pcb; + map->how = how; /* step 1: find known nets (from terminals) */ pcb_loop_all(PCB, map, Index: trunk/src_plugins/lib_netmap/netmap.h =================================================================== --- trunk/src_plugins/lib_netmap/netmap.h (revision 32391) +++ trunk/src_plugins/lib_netmap/netmap.h (revision 32392) @@ -41,6 +41,10 @@ dyn_obj_t *next; }; +typedef enum { /* bits */ + PCB_NETMAPCTRL_RATTED = 1 /* ignore nets that with disabled rats */ +} pcb_netmap_control_t; + typedef struct pcb_netmap_s { htpp_t o2n; /* of (pcb_net_t *); tells the net for an object */ htpp_t n2o; /* of (dyn_obj_t *); tells the object list for a net */ @@ -48,11 +52,11 @@ pcb_board_t *pcb; pcb_net_t *curr_net; dyn_net_t *dyn_nets; + + /* internal */ + pcb_netmap_control_t how; } pcb_netmap_t; -typedef enum { /* bits */ - PCB_NETMAPCTRL_RATTED = 1 /* ignore nets that with disabled rats */ -} pcb_netmap_control_t; int pcb_netmap_init(pcb_netmap_t *map, pcb_board_t *pcb, pcb_netmap_control_t how); int pcb_netmap_uninit(pcb_netmap_t *map);