Lines Matching full:helper
747 /* Helper state to make path translation easier and less malloc-happy.
758 /* Given the values of targetDir and zipDir in the helper,
760 * The helper must be initialized first.
762 static const char *targetEntryPath(MzPathHelper *helper, ZipEntry *pEntry)
765 bool firstTime = (helper->buf == NULL);
769 needLen = helper->targetDirLen + 1 +
770 pEntry->fileNameLen - helper->zipDirLen + 1;
771 if (needLen > helper->bufLen) {
775 newBuf = (char *)realloc(helper->buf, needLen);
779 helper->buf = newBuf;
780 helper->bufLen = needLen;
786 char *p = helper->buf;
787 memcpy(p, helper->targetDir, helper->targetDirLen);
788 p += helper->targetDirLen;
789 if (p == helper->buf || p[-1] != '/') {
790 helper->targetDirLen += 1;
798 char *epath = helper->buf + helper->targetDirLen;
799 memcpy(epath, pEntry->fileName + helper->zipDirLen,
800 pEntry->fileNameLen - helper->zipDirLen);
801 epath += pEntry->fileNameLen - helper->zipDirLen;
804 return helper->buf;
867 /* Set up the helper structure that we'll use to assemble paths.
869 MzPathHelper helper;
870 helper.targetDir = targetDir;
871 helper.targetDirLen = strlen(helper.targetDir);
872 helper.zipDir = zpath;
873 helper.zipDirLen = strlen(helper.zipDir);
874 helper.buf = NULL;
875 helper.bufLen = 0;
925 const char *targetFile = targetEntryPath(&helper, pEntry);
1021 free(helper.buf);