Okay, NULL issues aside (see the "What to do with some bugs?" thread),
I've run into some other problems.  All of these are based on the
20080202 snapshot.

There's a typo in an assert() in rtree.c.  The fix is to compare Y with
Y, not X, in the last >:

--- pcb-20080202.pristine/src/rtree.c   Thu Oct 19 23:25:58 2006
+++ pcb-20080202/src/rtree.c    Sun Apr 27 19:07:25 2008
@@ -520,7 +520,7 @@
   /** assert that starting_region is well formed */
   assert (query->X1 <= query->X2 && query->Y1 <= query->Y2);
   assert (node->box.X1 < query->X2 && node->box.X2 > query->X1 &&
-          node->box.Y1 < query->Y2 && node->box.Y2 > query->X1);
+          node->box.Y1 < query->Y2 && node->box.Y2 > query->Y1);
 #ifdef SLOW_ASSERTS
   /** assert that node is well formed */
   assert (__r_node_is_good (node));

The batch HID won't even build, because it's missing file watch and
block hook functions, and its progress function return type is wrong.
(I found this before discovering I don't want to build it because it
claims to be a GUI HID, even though there's nothing G about its UI, and
thus, depending on order in the list in hidlist.h, likes to preempt my
GUI HID.)

autoroute.c has an assert() referring to "region", which is not
declared anywhere I could find:

--- pcb-20080202.pristine/src/autoroute.c       Tue Jan 15 17:13:53 2008
+++ pcb-20080202/src/autoroute.c        Tue Apr 22 01:52:07 2008
@@ -2971,7 +2971,7 @@
         {
           BoxType cliparea;
           BoxType *area = vector_remove_last (v);
-          assert (box_intersect (area, &region));
+/*          assert (box_intersect (area, &region));*/
           if (!(i == NO_CONFLICT || AutoRouteParameters.with_conflicts))
             {
               free (area);

mtspace.c has another assert referring to something undefined (I forget
which of the pieces was provoking trouble).  The line numbers will be
off in this patch, because I removed an earlier hunk that moved a
variable to the beginning of a block:

--- pcb-20080202.pristine/src/mtspace.c Sun Jan 14 15:19:38 2007
+++ pcb-20080202/src/mtspace.c  Tue Apr 22 01:24:33 2008
@@ -377,7 +380,7 @@
   assert (free_space_vec && vector_is_empty (free_space_vec));
   assert (lo_conflict_space_vec && vector_is_empty (lo_conflict_space_vec));
   assert (hi_conflict_space_vec && vector_is_empty (hi_conflict_space_vec));
-  assert (untested && no_fix && no_hi && hi_candidate);
+/*  assert (untested && no_fix && no_hi && hi_candidate);*/
   /* search out to anything that might matter */
   if (region)
     {

There are some more things which aren't really bugs, but are things I
had to change, because the compiler I'm using didn't like them.

Several places have object declarations following executable code.
This is too recent for the compiler I'm using.  If desired I can
provide patches to move the declarations up to the tops of the relevant
blocks.  (The patches are big enough I don't want to just drop them in
here on the chance anyone wants them.)

macro.h uses an unrecognized #pragma.  If this is doing what it looks
like, it could perhaps be more portably done by #defining them to
something that will produce a syntax error.

--- pcb-20080202.pristine/src/macro.h   Tue Dec 11 09:00:06 2007
+++ pcb-20080202/src/macro.h    Sun Apr 27 20:45:13 2008
@@ -71,9 +71,11 @@
 #define        TO_PCB_X(x)             TO_PCB(x) + Xorig
 #define        TO_PCB_Y(y)             (SWAP_IDENT ? \
                                PCB->MaxHeight - TO_PCB(y) - Yorig : TO_PCB(y) 
+ Yorig)
+/*
 #ifdef __GNUC__
 #pragma GCC poison TO_SCREEN TO_SCREEN_X TO_SCREEN_Y
 #endif
+*/
 
 /* ---------------------------------------------------------------------------
  * misc macros, some might already be defined by <limits.h>

There are other things I changed but which I don't think worth
bothering with patches for because my estimate of the chance you people
will want them is zero, though of course I can provide patches if
desired.  Specifically: I ripped out hid_load_dir() in
hid/common/hidinit.c because it would prevent me from linking static; I
ripped out the calls to bindtextdomain and bind_textdomain_codeset in
main.c because I couldn't find them anywhere (presumably they come from
some facility "everyone" has but I don't); and I changed the varargs
DEBUGP macros in polygon1.c to match my compiler's varargs macro
syntax.

/~\ The ASCII                           der Mouse
\ / Ribbon Campaign
 X  Against HTML               [EMAIL PROTECTED]
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to