From 5ae59ba13572554b18f64f1203986548a221a292 Mon Sep 17 00:00:00 2001 From: Peter Clifton Date: Sun, 23 Dec 2012 16:04:05 +0000 Subject: [PATCH] Add #define list of flags to unset when copying into a buffer Previously, the removal of FOUNDFLAG was hard-coded in various places, lets consolidate the location to one header file, as when we split the FOUNDFLAG to differentiate logical and physical connectivity, we will only have one location to update. --- src/buffer.c | 30 +++++++++++++++--------------- src/const.h | 4 ++++ src/copy.c | 12 ++++++------ 3 files changed, 25 insertions(+), 21 deletions(-) diff --git a/src/buffer.c b/src/buffer.c index 2ed27948db..d5cb7c8338 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -119,7 +119,7 @@ AddViaToBuffer (PinType *Via) { return (CreateNewVia (Dest, Via->X, Via->Y, Via->Thickness, Via->Clearance, Via->Mask, Via->DrillingHole, Via->Name, - MaskFlags (Via->Flags, FOUNDFLAG | ExtraFlag))); + MaskFlags (Via->Flags, NOCOPY_FLAGS | ExtraFlag))); } /* --------------------------------------------------------------------------- @@ -131,7 +131,7 @@ AddRatToBuffer (RatType *Rat) return (CreateNewRat (Dest, Rat->Point1.X, Rat->Point1.Y, Rat->Point2.X, Rat->Point2.Y, Rat->group1, Rat->group2, Rat->Thickness, - MaskFlags (Rat->Flags, FOUNDFLAG | ExtraFlag))); + MaskFlags (Rat->Flags, NOCOPY_FLAGS | ExtraFlag))); } /* --------------------------------------------------------------------------- @@ -147,7 +147,7 @@ AddLineToBuffer (LayerType *Layer, LineType *Line) Line->Point2.X, Line->Point2.Y, Line->Thickness, Line->Clearance, MaskFlags (Line->Flags, - FOUNDFLAG | ExtraFlag)); + NOCOPY_FLAGS | ExtraFlag)); if (line && Line->Number) line->Number = strdup (Line->Number); return (line); @@ -165,7 +165,7 @@ AddArcToBuffer (LayerType *Layer, ArcType *Arc) Arc->Width, Arc->Height, Arc->StartAngle, Arc->Delta, Arc->Thickness, Arc->Clearance, MaskFlags (Arc->Flags, - FOUNDFLAG | ExtraFlag))); + NOCOPY_FLAGS | ExtraFlag))); } /* --------------------------------------------------------------------------- @@ -201,7 +201,7 @@ AddPolygonToBuffer (LayerType *Layer, PolygonType *Polygon) layer->polygon_tree = r_create_tree (NULL, 0, 0); r_insert_entry (layer->polygon_tree, (BoxType *)polygon, 0); - CLEAR_FLAG (FOUNDFLAG | ExtraFlag, polygon); + CLEAR_FLAG (NOCOPY_FLAGS | ExtraFlag, polygon); return (polygon); } @@ -211,7 +211,7 @@ AddPolygonToBuffer (LayerType *Layer, PolygonType *Polygon) static void * AddElementToBuffer (ElementType *Element) { - return CopyElementLowLevel (Dest, Element, false, 0, 0, FOUNDFLAG | ExtraFlag); + return CopyElementLowLevel (Dest, Element, false, 0, 0, NOCOPY_FLAGS | ExtraFlag); } /* --------------------------------------------------------------------------- @@ -228,7 +228,7 @@ MoveViaToBuffer (PinType *via) Dest->Via = g_list_append (Dest->Via, via); Dest->ViaN ++; - CLEAR_FLAG (WARNFLAG | FOUNDFLAG, via); + CLEAR_FLAG (WARNFLAG | NOCOPY_FLAGS, via); if (!Dest->via_tree) Dest->via_tree = r_create_tree (NULL, 0, 0); @@ -250,7 +250,7 @@ MoveRatToBuffer (RatType *rat) Dest->Rat = g_list_append (Dest->Rat, rat); Dest->RatN ++; - CLEAR_FLAG (FOUNDFLAG, rat); + CLEAR_FLAG (NOCOPY_FLAGS, rat); if (!Dest->rat_tree) Dest->rat_tree = r_create_tree (NULL, 0, 0); @@ -274,7 +274,7 @@ MoveLineToBuffer (LayerType *layer, LineType *line) lay->Line = g_list_append (lay->Line, line); lay->LineN ++; - CLEAR_FLAG (FOUNDFLAG, line); + CLEAR_FLAG (NOCOPY_FLAGS, line); if (!lay->line_tree) lay->line_tree = r_create_tree (NULL, 0, 0); @@ -299,7 +299,7 @@ MoveArcToBuffer (LayerType *layer, ArcType *arc) lay->Arc = g_list_append (lay->Arc, arc); lay->ArcN ++; - CLEAR_FLAG (FOUNDFLAG, arc); + CLEAR_FLAG (NOCOPY_FLAGS, arc); if (!lay->arc_tree) lay->arc_tree = r_create_tree (NULL, 0, 0); @@ -346,7 +346,7 @@ MovePolygonToBuffer (LayerType *layer, PolygonType *polygon) lay->Polygon = g_list_append (lay->Polygon, polygon); lay->PolygonN ++; - CLEAR_FLAG (FOUNDFLAG, polygon); + CLEAR_FLAG (NOCOPY_FLAGS, polygon); if (!lay->polygon_tree) lay->polygon_tree = r_create_tree (NULL, 0, 0); @@ -374,13 +374,13 @@ MoveElementToBuffer (ElementType *element) PIN_LOOP (element); { RestoreToPolygon(Source, PIN_TYPE, element, pin); - CLEAR_FLAG (WARNFLAG | FOUNDFLAG, pin); + CLEAR_FLAG (WARNFLAG | NOCOPY_FLAGS, pin); } END_LOOP; PAD_LOOP (element); { RestoreToPolygon(Source, PAD_TYPE, element, pad); - CLEAR_FLAG (WARNFLAG | FOUNDFLAG, pad); + CLEAR_FLAG (WARNFLAG | NOCOPY_FLAGS, pad); } END_LOOP; SetElementBoundingBox (Dest, element, &PCB->Font); @@ -981,7 +981,7 @@ ConvertBufferToElement (BufferType *Buffer) CreateNewPin (Element, via->X, via->Y, via->Thickness, via->Clearance, via->Mask, via->DrillingHole, NULL, via->Name, MaskFlags (via->Flags, - VIAFLAG | FOUNDFLAG | + VIAFLAG | NOCOPY_FLAGS | SELECTEDFLAG | WARNFLAG)); else { @@ -989,7 +989,7 @@ ConvertBufferToElement (BufferType *Buffer) CreateNewPin (Element, via->X, via->Y, via->Thickness, via->Clearance, via->Mask, via->DrillingHole, NULL, num, MaskFlags (via->Flags, - VIAFLAG | FOUNDFLAG | SELECTEDFLAG + VIAFLAG | NOCOPY_FLAGS | SELECTEDFLAG | WARNFLAG)); } hasParts = true; diff --git a/src/const.h b/src/const.h index 3b4dbb52db..66a583f137 100644 --- a/src/const.h +++ b/src/const.h @@ -214,6 +214,10 @@ Marker used internally to avoid revisiting an object. #define EDGE2FLAG 0x4000 /* Padr.Point2 is closer to outside edge */ /* also pinout text for pins is vertical */ #define VISITFLAG 0x8000 /* marker to avoid re-visiting an object */ + + +#define NOCOPY_FLAGS (FOUNDFLAG) + /* --------------------------------------------------------------------------- * PCB flags */ diff --git a/src/copy.c b/src/copy.c index 6c6141263e..b0cd9c828e 100644 --- a/src/copy.c +++ b/src/copy.c @@ -105,7 +105,7 @@ CopyPolygonLowLevel (PolygonType *Dest, PolygonType *Src) } SetPolygonBoundingBox (Dest); Dest->Flags = Src->Flags; - CLEAR_FLAG (FOUNDFLAG, Dest); + CLEAR_FLAG (NOCOPY_FLAGS, Dest); return (Dest); } @@ -188,7 +188,7 @@ CopyVia (PinType *Via) via = CreateNewVia (PCB->Data, Via->X + DeltaX, Via->Y + DeltaY, Via->Thickness, Via->Clearance, Via->Mask, Via->DrillingHole, Via->Name, - MaskFlags (Via->Flags, FOUNDFLAG)); + MaskFlags (Via->Flags, NOCOPY_FLAGS)); if (!via) return (via); DrawVia (via); @@ -209,7 +209,7 @@ CopyLine (LayerType *Layer, LineType *Line) Line->Point2.X + DeltaX, Line->Point2.Y + DeltaY, Line->Thickness, Line->Clearance, - MaskFlags (Line->Flags, FOUNDFLAG)); + MaskFlags (Line->Flags, NOCOPY_FLAGS)); if (!line) return (line); if (Line->Number) @@ -230,7 +230,7 @@ CopyArc (LayerType *Layer, ArcType *Arc) arc = CreateNewArcOnLayer (Layer, Arc->X + DeltaX, Arc->Y + DeltaY, Arc->Width, Arc->Height, Arc->StartAngle, Arc->Delta, Arc->Thickness, Arc->Clearance, - MaskFlags (Arc->Flags, FOUNDFLAG)); + MaskFlags (Arc->Flags, NOCOPY_FLAGS)); if (!arc) return (arc); DrawArc (Layer, arc); @@ -249,7 +249,7 @@ CopyText (LayerType *Layer, TextType *Text) text = CreateNewText (Layer, &PCB->Font, Text->X + DeltaX, Text->Y + DeltaY, Text->Direction, Text->Scale, Text->TextString, - MaskFlags (Text->Flags, FOUNDFLAG)); + MaskFlags (Text->Flags, NOCOPY_FLAGS)); DrawText (Layer, text); AddObjectToCreateUndoList (TEXT_TYPE, Layer, text, text); return (text); @@ -289,7 +289,7 @@ CopyElement (ElementType *Element) ElementType *element = CopyElementLowLevel (PCB->Data, Element, TEST_FLAG (UNIQUENAMEFLAG, PCB), - DeltaX, DeltaY, FOUNDFLAG); + DeltaX, DeltaY, NOCOPY_FLAGS); /* this call clears the polygons */ AddObjectToCreateUndoList (ELEMENT_TYPE, element, element, element); -- 2.11.4.GIT