Lines Matching refs:handle

46     DarchHandle*            handle;  in OpenArc()  local
49 if ( NULL == (handle = malloc(sizeof(DarchHandle))) ) in OpenArc()
55 strcpy(handle->name, fileName); in OpenArc()
57 if( (handle->fid = open(fileName, O_BINARY | O_RDONLY)) == -1 ) in OpenArc()
63 if (sizeof(ARCHeader) != read(handle->fid, &header, sizeof(ARCHeader))) in OpenArc()
76 handle->fileStart = REV32(header.fileStart); in OpenArc()
78 if ( NULL == (handle->fst = malloc(fstLength)) ) in OpenArc()
84 if ( -1 == lseek(handle->fid, REV32(header.fstStart), SEEK_SET) ) in OpenArc()
90 if (fstLength != read(handle->fid, handle->fst, fstLength)) in OpenArc()
96 handle->entryNum = nextDir(handle->fst); in OpenArc()
97 handle->stringStartOffset = handle->entryNum * sizeof(FSTEntry); in OpenArc()
101 fprintf(stderr, "entry num is %d\n", handle->entryNum); in OpenArc()
105 handle->currEntry = 0; in OpenArc()
110 RootDir.nextEntry = handle->entryNum; in OpenArc()
112 return handle; in OpenArc()
115 static char* GetName(DarchHandle* handle, FSTEntry* entry) in GetName() argument
119 stringStart = (char*)handle->fst + handle->stringStartOffset; in GetName()
125 BOOL GetNextEntry(DarchHandle* handle, FSTEntryInfo* entryInfo) in GetNextEntry() argument
130 handle->currEntry++; in GetNextEntry()
132 if (handle->currEntry >= handle->entryNum) in GetNextEntry()
137 fstEntry = &handle->fst[handle->currEntry]; in GetNextEntry()
140 while(CurrDir->nextEntry == handle->currEntry) in GetNextEntry()
149 entryInfo->entryNum = handle->currEntry; in GetNextEntry()
153 strcat(entryInfo->pathName, GetName(handle, fstEntry)); in GetNextEntry()
202 BOOL CloseArc(DarchHandle* handle) in CloseArc() argument
204 free(handle->fst); in CloseArc()
206 if (close(handle->fid) == -1) in CloseArc()
208 fprintf(stderr, "error closing %s\n", handle->name); in CloseArc()
212 free(handle); in CloseArc()
317 DarchHandle* handle; in ListArc() local
320 handle = OpenArc(name); in ListArc()
328 while(GetNextEntry(handle, &entryInfo)) in ListArc()
348 CloseArc(handle); in ListArc()
374 DarchHandle* handle; in ExtractArc() local
377 handle = OpenArc(name); in ExtractArc()
390 while(GetNextEntry(handle, &entryInfo)) in ExtractArc()
405 Extract(handle->fid, &entryInfo); in ExtractArc()
408 CloseArc(handle); in ExtractArc()
414 DarchHandle* handle; in DiffArc() local
417 handle = OpenArc(name); in DiffArc()
427 while(GetNextEntry(handle, &entryInfo)) in DiffArc()
439 Diff(handle->fid, &entryInfo); in DiffArc()
442 CloseArc(handle); in DiffArc()