COPY_UP_SEG now copies all segments of a given name.

This is particularly useful for CXXX layer types
Makes two functions static in Shifter to avoid polluting the namespace
This commit is contained in:
Frederic Petrot 2003-01-31 15:53:39 +00:00
parent 76acb2f290
commit 2b647fc29b
2 changed files with 24 additions and 18 deletions

View File

@ -25,6 +25,11 @@
Author: Frédéric Pétrot
Date : 1/10/2000
$Log: dpgen_Shifter.c,v $
Revision 1.8 2003/01/31 15:53:39 fred
COPY_UP_SEG now copies all segments of a given name.
This is particularly useful for CXXX layer types
Makes two functions static in Shifter to avoid polluting the namespace
Revision 1.7 2002/09/30 16:20:22 czo
support/users
@ -103,7 +108,7 @@
*/
static char rcsid[]="$Id: dpgen_Shifter.c,v 1.7 2002/09/30 16:20:22 czo Exp $";
static char rcsid[]="$Id: dpgen_Shifter.c,v 1.8 2003/01/31 15:53:39 fred Exp $";
#include "util_Defs.h"
@ -111,7 +116,7 @@ static char rcsid[]="$Id: dpgen_Shifter.c,v 1.7 2002/09/30 16:20:22 czo Exp $";
#include "dgn.h"
int ln2p(int n)
static int ln2p(int n)
{
int i = 0, j = n & 1;
@ -125,7 +130,7 @@ int i = 0, j = n & 1;
static chain_list *c; /* To free the allocated names */
void freestr()
static void freestr()
{
chain_list *cc;
for (cc = c; cc; cc = cc->NEXT)

View File

@ -71,7 +71,7 @@
#include "mbkgen.h"
#define __GENLIB__
#include "mgn.h"
static char rcsid[] = "$Id: genlib.c,v 1.10 2002/09/30 16:20:22 czo Exp $";
static char rcsid[] = "$Id: genlib.c,v 1.11 2003/01/31 15:53:39 fred Exp $";
/*******************************************************************************
* global variables used in genlib *
@ -937,6 +937,7 @@ phfig_list *ptnewfig;
phins_list *ptins;
phseg_list *ptseg;
long x1, x2, y1, y2;
chain_list *c = NULL;
if (WORK_PHFIG == NULL) {
(void)fflush(stdout);
@ -949,10 +950,20 @@ long x1, x2, y1, y2;
locname = namealloc(checkname(locname));
for (ptseg = ptnewfig->PHSEG; ptseg; ptseg = ptseg->NEXT) {
if (ptseg->NAME == locname)
break;
if (ptseg->NAME == locname) {
/* create new segment */
xyflat(&x1, &y1, ptseg->X1, ptseg->Y1, ptins->XINS, ptins->YINS,
ptnewfig->XAB1, ptnewfig->YAB1, ptnewfig->XAB2, ptnewfig->YAB2,
ptins->TRANSF);
xyflat(&x2, &y2, ptseg->X2, ptseg->Y2, ptins->XINS, ptins->YINS,
ptnewfig->XAB1, ptnewfig->YAB1, ptnewfig->XAB2, ptnewfig->YAB2,
ptins->TRANSF);
c = addchain(c, addphseg(WORK_PHFIG, ptseg->LAYER, ptseg->WIDTH,
x1, y1, x2, y2, checkname(newname)));
}
}
if (ptseg == NULL) {
if (c == NULL) {
(void)fflush(stdout);
(void)fputs("*** genlib error ***\nCOPY_UP_SEG impossible :", stderr);
(void)fprintf(stderr, " segment %s doesn't exist in instance %s\n",
@ -960,17 +971,7 @@ long x1, x2, y1, y2;
EXIT(1);
}
/* create segment */
xyflat(&x1, &y1, ptseg->X1, ptseg->Y1, ptins->XINS, ptins->YINS,
ptnewfig->XAB1, ptnewfig->YAB1, ptnewfig->XAB2, ptnewfig->YAB2,
ptins->TRANSF);
xyflat(&x2, &y2, ptseg->X2, ptseg->Y2, ptins->XINS, ptins->YINS,
ptnewfig->XAB1, ptnewfig->YAB1, ptnewfig->XAB2, ptnewfig->YAB2,
ptins->TRANSF);
return addptype(NULL, MBK_SEGMENT,
addchain(NULL,
addphseg(WORK_PHFIG, ptseg->LAYER, ptseg->WIDTH,
x1, y1, x2, y2, checkname(newname))));
return addptype(NULL, MBK_SEGMENT, c);
}
/*******************************************************************************