Lines Matching defs:dir

59 #include <sys/dir.h>
369 static int ParseResourceTypes(f, dir)
371 ResourceDirectory dir;
407 dir->typeCount = count;
408 if (count == 0) dir->types = NULL;
410 dir->types = (ResourceType)
412 dir->typeNameBuffer = (char *) MALLOC(typelen);
413 (void) memcpy((MT) dir->typeNameBuffer, (MT) types, (MST) typelen);
418 dir->types[i].type = &(dir->typeNameBuffer[len]);
419 dir->types[i].fileOffset = 0;
420 dir->types[i].names = NULL;
421 dir->types[i].nameBuffer = NULL;
422 dir->types[i].filled = 0;
423 dir->types[i].oldNameBuffers = NULL;
424 dir->types[i].oldNameCount = 0;
425 dir->types[i].nameCount = 0;
426 len += strlen(dir->types[i].type) + 1;
433 static int ParseFilePrefix(f, dir, dirName)
435 ResourceDirectory dir;
444 dir->filePrefix = NULL;
452 dir->filePrefix = strcpy((char *) MALLOC(len+2), dirName);
453 dir->filePrefix[len] = '/';
454 dir->filePrefix[len+1] = '\0';
461 dir->filePrefix = (char *) strcpy((char *) MALLOC(len+2), prefix);
463 dir->filePrefix[len] = '/';
464 dir->filePrefix[len+1] = '\0';
472 dir->filePrefix = (char *) REALLOC(dir->filePrefix, len+2);
473 (void) strcat(dir->filePrefix, inBuf);
475 dir->filePrefix[len] = '/';
476 dir->filePrefix[len+1] = '\0';
486 ResourceDirectory dir;
495 dir = (ResourceDirectory) MALLOC(sizeof(ResourceDirectoryStruct));
496 dir->directory = (char *) NewString(fileName);
497 dir->exclusive = exclusive;
498 dir->next = NULL;
500 if (ParseResourceTypes(f, dir)) {
501 FREE((char *) dir->directory);
502 FREE((char *) dir);
506 if (ParseFilePrefix(f, dir, dirName)) dir->endOfHeader = 0;
507 else dir->endOfHeader = ftell(f);
509 return dir;
615 static int ReadResourceSection(f, dir, type, name)
617 ResourceDirectory dir;
641 prefixLen = strlen(dir->filePrefix);
687 (void) strncpy(&names[namelen], dir->filePrefix, prefixLen);
726 static int SkipResourceSection(f, dir, type, checkName)
728 ResourceDirectory dir;
737 for (i = 0; i < dir->typeCount && dir->types + i != type; i++) {}
739 if (dir->types + i == type) {
740 for (i++; i < dir->typeCount; i++) {
741 if (dir->types[i].fileOffset == -1) continue;
742 if (dir->types[i].fileOffset > 0) {
743 if (fseek(f, dir->types[i].fileOffset, SEEK_SET) != -1) {
760 static int ParseResourceSection(f, dir, type, name, checkName)
762 ResourceDirectory dir;
770 return SkipResourceSection(f, dir, type, 0);
773 return ReadResourceSection(f, dir, type, name);
817 static ResourceDirectory ReadAndStoreFile(dir, name, len, readFunc, data)
818 char *dir, *name;
831 (void) strcpy(fullName, dir);
837 rd = ParseHeader(f, dir, fullName);
856 DIR *dir;
875 dir = opendir(dirName);
876 if (dir == NULL) return buf.st_mtime;
878 while ((d = readdir(dir)) != NULL) {
887 (void) closedir(dir);
937 register char *dir;
951 dir = path;
955 if (*pathChar != '\0') *dir++ = *pathChar++;
958 *dir++ = ch = *pathChar++;
960 if (ch == ':') *(dir-1) = '\0';
982 register char *dir;
997 dir = path;
1001 if (*pathChar != '\0') *dir++ = *pathChar++;
1004 *dir++ = ch = *pathChar++;
1006 if (ch == ':') *(dir-1) = '\0';
1485 static int EnumerateResourceSection(f, dir, type, s, checkName)
1487 ResourceDirectory dir;
1510 prefixLen = strlen(dir->filePrefix);
1554 (void) strncpy(&names[namelen], dir->filePrefix, prefixLen);