FreeCalypso > hg > ueda-linux
diff ueda/libuschem/schemobj.c @ 0:cd92449fdb51
initial import of ueda and ifctf-part-lib from ifctfvax CVS
author | Space Falcon <falcon@ivan.Harhan.ORG> |
---|---|
date | Mon, 20 Jul 2015 00:24:37 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ueda/libuschem/schemobj.c Mon Jul 20 00:24:37 2015 +0000 @@ -0,0 +1,37 @@ +/* + * 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; +}