view ueda/uschem-netlist/pintonet.c @ 132:31ae8105aaa0

netdiff project started with protel2donl
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 06 Sep 2020 22:48:09 +0000
parents cd92449fdb51
children
line wrap: on
line source

#include <sys/types.h>
#include <stdio.h>
#include "netlist.h"
#include "../libuschem/schemstruct.h"

extern struct net *get_nethead_for_netname();

check_compinst_pintonet(obj)
	register struct schemobj *obj;
{
	register struct decoration *decor;

	for (decor = obj->obj_decorations; decor; decor = decor->decor_next)
		switch (decor->decor_type) {
		case DECOR_TYPE_PINTONET:
			handle_pintonet(obj, decor);
			continue;
		case DECOR_TYPE_NOCONNECT:
			handle_noconnect_decor(obj, decor);
			continue;
		}
}

handle_pintonet(comp, decor)
	struct schemobj *comp;
	register struct decoration *decor;
{
	register char *soughtpin;
	int bynum;
	register struct net *n;

	soughtpin = decor->decorpincon_pin;
	if (soughtpin[0] == '#') {
		soughtpin++;
		bynum = 1;
	} else
		bynum = 0;
	n = get_nethead_for_netname(decor->decorpincon_netname);
	do_connect(n, comp, soughtpin, bynum, decor->decor_lineno);
}

handle_noconnect_decor(comp, decor)
	struct schemobj *comp;
	register struct decoration *decor;
{
	register char *soughtpin;
	int bynum;

	soughtpin = decor->decorpincon_pin;
	if (soughtpin[0] == '#') {
		soughtpin++;
		bynum = 1;
	} else
		bynum = 0;
	do_noconnect(comp, soughtpin, bynum, decor->decor_lineno);
}