home *** CD-ROM | disk | FTP | other *** search
- /* nodes.c */
-
- #include <stdio.h>
- #include "types.h"
-
- DNODE *
- add_dep_node(make_list,name)
- DNODE **make_list;
- char *name;
- {
- DNODE *prev;
- DNODE *cur;
- DNODE *new;
-
- for (prev = NULL, cur = *make_list; cur != NULL; cur = cur->next)
- prev = cur;
- new = (DNODE *)malloc(sizeof(DNODE));
- new->name = (char *)malloc(strlen(name)+1);
- strcpy(new->name,name);
- new->next = NULL;
- new->dlist = NULL;
- new->use_it = 1;
- if (prev == NULL)
- *make_list = new;
- else
- prev->next = new;
- return(new);
- }
-
- FNODE *
- add_file_node(dnode,name)
- DNODE *dnode;
- char *name;
- {
- FNODE *prev;
- FNODE *cur;
- FNODE *new;
-
- for (prev = NULL, cur = dnode->dlist; cur != NULL; cur = cur->next)
- prev = cur;
- new = (FNODE *)malloc(sizeof(FNODE));
- new->name = (char *)malloc(strlen(name)+1);
- strcpy(new->name,name);
- new->next = NULL;
- if (prev == NULL)
- dnode->dlist = new;
- else
- prev->next = new;
- return(new);
- }
-
- in_file_list(dnode,name)
- DNODE *dnode;
- char *name;
- {
- FNODE *cur;
-
- for (cur = dnode->dlist; cur != NULL; cur = cur->next)
- if (!strcmp(cur->name,name))
- return(1);
- return(0);
- }
-
- DNODE *
- find_dep(make_list,name)
- DNODE **make_list;
- char *name;
- {
- DNODE *cur;
-
- for (cur = *make_list; cur != NULL; cur = cur->next)
- if (!strcmp(cur->name,name))
- return(cur);
- return(NULL);
- }
-
- free_list(make_list)
- DNODE **make_list;
- {
- DNODE *cur;
- DNODE *next;
-
- cur = *make_list;
- while (cur != NULL) {
- next = cur->next;
- free(cur->name);
- free_fnodes(cur->dlist);
- free(cur);
- cur = next;
- }
- }
-
- free_fnodes(dlist)
- FNODE *dlist;
- {
- FNODE *next;
-
- while (dlist != NULL) {
- next = dlist->next;
- free(dlist->name);
- free(dlist);
- dlist = next;
- }
- }
-