1 /* 2 */ 3 4 #include "graph.h" 5 6 /****************************************************************************** 7 Node management 8 ******************************************************************************/ 9 create_node(char * name,struct eq * eq,enum nodetype nodetype)10struct node *create_node (char *name, struct eq *eq, enum nodetype nodetype) 11 { 12 struct node *n ; 13 char *s ; 14 struct symtab *p ; 15 16 p = symtab_get (name) ; 17 18 s = symtab_to_name (p) ; 19 MOBJ_ALLOC_INSERT (n, nodemobj) ; 20 n->name = s ; 21 n->eq = eq ; 22 n->nodetype = nodetype ; 23 n->linklist = NULL ; 24 symtab_to_node (p) = n ; 25 26 /* add to equipement node list */ 27 n->enext = NULL; 28 n->eprev = NULL; 29 30 if(eq->enhead == NULL) 31 eq->enhead = n; 32 if(eq->entail != NULL) 33 { 34 eq->entail->enext = n; 35 n->eprev = eq->entail; 36 } 37 38 eq->entail = n; 39 40 return n ; 41 } 42 new_nodename(char * eqname)43char *new_nodename (char *eqname) 44 { 45 static int maxindex = 0 ; 46 static char name [MAXLINE] ; 47 48 do 49 { 50 sprintf (name, "%s:%d", eqname, ++maxindex) ; 51 } while (symtab_lookup (name) != NULL) ; 52 53 return name ; 54 } 55