Lines Matching full:helper
850 /* Helper state to make path translation easier and less malloc-happy.
861 /* Given the values of targetDir and zipDir in the helper,
863 * The helper must be initialized first.
865 static const char *targetEntryPath(MzPathHelper *helper, ZipEntry *pEntry)
868 bool firstTime = (helper->buf == NULL);
872 needLen = helper->targetDirLen + 1 +
873 pEntry->fileNameLen - helper->zipDirLen + 1;
874 if (needLen > helper->bufLen) {
878 newBuf = (char *)realloc(helper->buf, needLen);
882 helper->buf = newBuf;
883 helper->bufLen = needLen;
889 char *p = helper->buf;
890 memcpy(p, helper->targetDir, helper->targetDirLen);
891 p += helper->targetDirLen;
892 if (p == helper->buf || p[-1] != '/') {
893 helper->targetDirLen += 1;
901 char *epath = helper->buf + helper->targetDirLen;
902 memcpy(epath, pEntry->fileName + helper->zipDirLen,
903 pEntry->fileNameLen - helper->zipDirLen);
904 epath += pEntry->fileNameLen - helper->zipDirLen;
907 return helper->buf;
969 /* Set up the helper structure that we'll use to assemble paths.
971 MzPathHelper helper;
972 helper.targetDir = targetDir;
973 helper.targetDirLen = strlen(helper.targetDir);
974 helper.zipDir = zpath;
975 helper.zipDirLen = strlen(helper.zipDir);
976 helper.buf = NULL;
977 helper.bufLen = 0;
1026 const char *targetFile = targetEntryPath(&helper, pEntry);
1145 free(helper.buf);