view ueda/libuschem/schemobj.c @ 40:1c37bec20596

pads2gpcb: slowly working on the decal processing logic
author Mychaela Falconia <falcon@ivan.Harhan.ORG>
date Mon, 11 Jan 2016 08:12:40 +0000
parents cd92449fdb51
children
line wrap: on
line source

/*
 * Schematic object utility functions
 */

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

schemobj_insert_after(oldobj, newobj)
	register struct schemobj *oldobj, *newobj;
{
	newobj->obj_next = oldobj->obj_next;
	newobj->obj_prev = oldobj;
	oldobj->obj_next = newobj;
	newobj->obj_next->obj_prev = newobj;
}

schemobj_insert_before(oldobj, newobj)
	register struct schemobj *oldobj, *newobj;
{
	newobj->obj_next = oldobj;
	newobj->obj_prev = oldobj->obj_prev;
	oldobj->obj_prev = newobj;
	newobj->obj_prev->obj_next = newobj;
}

schemobj_unlink(delobj)
	register struct schemobj *delobj;
{
	if (!delobj->obj_type) {
		fprintf(stderr,
		"Fatal internal error: attempt to unlink sentinel object\n");
		abort();
	}
	delobj->obj_prev->obj_next = delobj->obj_next;
	delobj->obj_next->obj_prev = delobj->obj_prev;
}