summaryrefslogtreecommitdiffstats
path: root/loader/moduledeps.c
diff options
context:
space:
mode:
Diffstat (limited to 'loader/moduledeps.c')
-rw-r--r--loader/moduledeps.c115
1 files changed, 0 insertions, 115 deletions
diff --git a/loader/moduledeps.c b/loader/moduledeps.c
deleted file mode 100644
index 16f9a0e3a..000000000
--- a/loader/moduledeps.c
+++ /dev/null
@@ -1,115 +0,0 @@
-#include <alloca.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <newt.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <sys/stat.h>
-#include <unistd.h>
-
-#include "misc.h"
-#include "modules.h"
-#include "moduledeps.h"
-
-moduleDeps mlNewDeps(void) {
- moduleDeps md;
-
- md = malloc(sizeof(*md));
- md->name = NULL;
- md->deps = NULL;
-
- return md;
-}
-
-int mlLoadDeps(moduleDeps * moduleDepListPtr, const char * path) {
- int fd;
- char * buf;
- struct stat sb;
- char * start, * end, * chptr;
- int i, numItems;
- moduleDeps nextDep;
- moduleDeps moduleDepList = *moduleDepListPtr;
-
- fd = open(path, O_RDONLY);
- if (fd < 0) {
- return -1;
- }
-
- fstat(fd, &sb);
- buf = alloca(sb.st_size + 1);
- read(fd, buf, sb.st_size);
- buf[sb.st_size] = '\0';
- close(fd);
-
- start = buf;
- numItems = 0;
- while (start) {
- numItems++;
- start = strchr(start + 1, '\n');
- }
-
- for (nextDep = moduleDepList; nextDep->name; nextDep++) numItems++;
-
- moduleDepList = realloc(moduleDepList, sizeof(*moduleDepList) * numItems);
- for (nextDep = moduleDepList; nextDep->name; nextDep++) ;
-
- start = buf;
- while (start < (buf + sb.st_size) && *start) {
- end = strchr(start, '\n');
- *end = '\0';
-
- chptr = strchr(start, ':');
- if (!chptr) {
- start = end + 1;
- continue;
- }
-
- *chptr++ = '\0';
- while (*chptr && isspace(*chptr)) chptr++;
- if (!*chptr) {
- start = end + 1;
- continue;
- }
-
- /* found something */
- nextDep->name = strdup(start);
- nextDep->deps = malloc(sizeof(char *) * (strlen(chptr) + 1));
- start = chptr, i = 0;
- while (start && *start) {
- chptr = strchr(start, ' ');
- if (chptr) *chptr = '\0';
- nextDep->deps[i++] = strdup(start);
- if (chptr)
- start = chptr + 1;
- else
- start = NULL;
- while (start && *start && isspace(*start)) start++;
- }
- nextDep->deps[i] = NULL;
- nextDep->deps = realloc(nextDep->deps, sizeof(char *) * (i + 1));
- nextDep++;
-
- start = end + 1;
- }
-
- nextDep->name = NULL;
- nextDep->deps = NULL;
- moduleDepList = realloc(moduleDepList, sizeof(*moduleDepList) *
- (nextDep - moduleDepList + 1));
-
- *moduleDepListPtr = moduleDepList;
-
- return 0;
-}
-
-char ** mlGetDeps(moduleDeps modDeps, const char * modName) {
- moduleDeps dep;
-
- for (dep = modDeps; dep->name && strcmp(dep->name, modName); dep++);
-
- if (dep) return dep->deps;
-
- return NULL;
-}