(Subject line for want of a better name). I've been going over lots of code in libgeda (removing screen coordinates, and refactoring the recalc, and get_..._bounds functions.
I've spotted what appears to be a missing call to s_tile_update_object(). This is based on comparing to o_net_basic.c. AFAICT s_tile_update_object is tracking where certain objects are, for the purpose of connectivity checking? It looks like it is hardcoded for lines and derivatives (e.g. s_tile_update_object()) Can someone shed some light on the significance of tiles? Is the patch below indeed useful, and what might the symptoms of its absence be? I presume some deficiency in finding connectivity after the bus is dragged by its grips - the only code calling o_bus_modify is in o_grips.c. Index: o_bus_basic.c =================================================================== RCS file: /home/cvspsrv/cvsroot/eda/geda/gaf/libgeda/src/o_bus_basic.c,v retrieving revision 1.15 diff -U3 -p -r1.15 o_bus_basic.c --- o_bus_basic.c 22 Sep 2006 18:48:07 -0000 1.15 +++ o_bus_basic.c 30 Nov 2006 19:10:18 -0000 @@ -836,6 +836,8 @@ void o_bus_modify(TOPLEVEL *w_current, O object->top = top; object->right = right; object->bottom = bottom; + + s_tile_update_object(w_current, object); } Regards, -- Peter Clifton Electrical Engineering Division, Engineering Department, University of Cambridge, 9, JJ Thomson Avenue, Cambridge CB3 0FA Tel: +44 (0)7729 980173 - (No signal in the lab!) _______________________________________________ geda-dev mailing list [email protected] http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev
