[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

gEDA-cvs: pcb.git: branch: master updated (6ad4d0c9278a9813fc8b3a29bfdc51f5fdcd0754)



The branch, master has been updated
       via  6ad4d0c9278a9813fc8b3a29bfdc51f5fdcd0754 (commit)
       via  92f422433fb31520d885d0c75e3d3264c0d2f3c5 (commit)
      from  a040ea606fa0b9808a8287803fcbefc5eb39be9b (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 src/find.c             |   25 +++++++++++++++++++++++--
 src/global.h           |    1 +
 src/hid/lesstif/main.c |    3 +++
 3 files changed, 27 insertions(+), 2 deletions(-)


=================
 Commit Messages
=================

commit 6ad4d0c9278a9813fc8b3a29bfdc51f5fdcd0754
Author: Levente Kovacs <leventelist@xxxxxxxxx>
Commit: DJ Delorie <dj@xxxxxxxxxxx>

    gEDA-user: skpi_drc patch
    
    On Fri, 17 Jun 2011 17:30:22 -0400
    DJ Delorie <dj@xxxxxxxxxxx> wrote:
    
    > You want the (already global) AttributeGet() function.
    >
    >   l->no_drc = AttributeGet (l, "PCB::skip-drc") != NULL;
    >
    > This does assume that the attribute has *some* value, even if the
    > value is the empty string.
    
    Thanks for pointing this out.
    
    Attached is the new patch.
    
    Levente
    
    --
    Levente Kovacs
    http://levente.logonex.eu

:100644 100644 eb4cac2... c5159ba... M	src/find.c
:100644 100644 daa82a9... 08abbb8... M	src/global.h

commit 92f422433fb31520d885d0c75e3d3264c0d2f3c5
Author: DJ Delorie <dj@xxxxxxxxxxx>
Commit: DJ Delorie <dj@xxxxxxxxxxx>

    Lesstif: ignore crosshair changes before window exists.

:100644 100644 90979c0... f41c4ce... M	src/hid/lesstif/main.c

=========
 Changes
=========

commit 6ad4d0c9278a9813fc8b3a29bfdc51f5fdcd0754
Author: Levente Kovacs <leventelist@xxxxxxxxx>
Commit: DJ Delorie <dj@xxxxxxxxxxx>

    gEDA-user: skpi_drc patch
    
    On Fri, 17 Jun 2011 17:30:22 -0400
    DJ Delorie <dj@xxxxxxxxxxx> wrote:
    
    > You want the (already global) AttributeGet() function.
    >
    >   l->no_drc = AttributeGet (l, "PCB::skip-drc") != NULL;
    >
    > This does assume that the attribute has *some* value, even if the
    > value is the empty string.
    
    Thanks for pointing this out.
    
    Attached is the new patch.
    
    Levente
    
    --
    Levente Kovacs
    http://levente.logonex.eu

diff --git a/src/find.c b/src/find.c
index eb4cac2..c5159ba 100644
--- a/src/find.c
+++ b/src/find.c
@@ -822,6 +822,8 @@ LookupLOConnectionsToPVList (bool AndRats)
       /* now all lines, arcs and polygons of the several layers */
       for (layer = 0; layer < max_copper_layer; layer++)
         {
+          if (LAYER_PTR (layer)->no_drc)
+             continue;
           info.layer = layer;
           /* add touching lines */
           if (setjmp (info.env) == 0)
@@ -1169,6 +1171,8 @@ LookupPVConnectionsToLOList (bool AndRats)
   /* loop over all layers */
   for (layer = 0; layer < max_copper_layer; layer++)
     {
+      if (LAYER_PTR (layer)->no_drc)
+                       continue;
       /* do nothing if there are no PV's */
       if (TotalP + TotalV == 0)
         {
@@ -2901,6 +2905,21 @@ ListsEmpty (bool AndRats)
   return (empty);
 }
 
+static void
+reassign_no_drc_flags (void)
+{
+  int layer;
+
+  for (layer = 0; layer < max_copper_layer; layer++)
+    {
+      LayerTypePtr l = LAYER_PTR (layer);
+      l->no_drc = AttributeGet (l, "PCB::skip-drc") != NULL;
+    }
+}
+
+
+
+
 /* ---------------------------------------------------------------------------
  * loops till no more connections are found 
  */
@@ -2908,6 +2927,7 @@ static bool
 DoIt (bool AndRats, bool AndDraw)
 {
   bool newone = false;
+  reassign_no_drc_flags ();
   do
     {
       /* lookup connections; these are the steps (2) to (4)
@@ -3350,6 +3370,7 @@ LookupConnection (LocationType X, LocationType Y, bool AndDraw,
 
   /* check if there are any pins or pads at that position */
 
+	reassign_no_drc_flags ();
 
   type
     = SearchObjectByLocation (LOOKUP_FIRST, &ptr1, &ptr2, &ptr3, X, Y, Range);
@@ -3366,8 +3387,8 @@ LookupConnection (LocationType X, LocationType Y, bool AndDraw,
           int laynum = GetLayerNumber (PCB->Data,
                                        (LayerTypePtr) ptr1);
 
-          /* don't mess with silk objects! */
-          if (laynum >= max_copper_layer)
+          /* don't mess with non-conducting objects! */
+          if (laynum >= max_copper_layer || ((LayerTypePtr)ptr1)->no_drc)
             return;
         }
     }
diff --git a/src/global.h b/src/global.h
index daa82a9..08abbb8 100644
--- a/src/global.h
+++ b/src/global.h
@@ -303,6 +303,7 @@ typedef struct			/* holds information about one layer */
   char *Color,			/* color */
    *SelectedColor;
   AttributeListType Attributes;
+  int no_drc; /* whether to ignore the layer when checking the design rules */
 }
 LayerType, *LayerTypePtr;
 

commit 92f422433fb31520d885d0c75e3d3264c0d2f3c5
Author: DJ Delorie <dj@xxxxxxxxxxx>
Commit: DJ Delorie <dj@xxxxxxxxxxx>

    Lesstif: ignore crosshair changes before window exists.

diff --git a/src/hid/lesstif/main.c b/src/hid/lesstif/main.c
index 90979c0..f41c4ce 100644
--- a/src/hid/lesstif/main.c
+++ b/src/hid/lesstif/main.c
@@ -2900,6 +2900,9 @@ lesstif_notify_crosshair_change (bool changes_complete)
   static int invalidate_depth = 0;
   Pixmap save_pixmap;
 
+  if (! my_gc)
+    return;
+
   if (changes_complete)
     invalidate_depth --;
 




_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs