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;
+}