| 7094 | } |
| 7095 | |
| 7096 | static int zipfileLoadDirectory(ZipfileTab *pTab, const u8 *aBlob, int nBlob){ |
| 7097 | ZipfileEOCD eocd; |
| 7098 | int rc; |
| 7099 | int i; |
| 7100 | i64 iOff; |
| 7101 | |
| 7102 | rc = zipfileReadEOCD(pTab, aBlob, nBlob, pTab->pWriteFd, &eocd); |
| 7103 | iOff = eocd.iOffset; |
| 7104 | for(i=0; rc==SQLITE_OK && i<eocd.nEntry; i++){ |
| 7105 | ZipfileEntry *pNew = 0; |
| 7106 | rc = zipfileGetEntry(pTab, aBlob, nBlob, pTab->pWriteFd, iOff, &pNew); |
| 7107 | |
| 7108 | if( rc==SQLITE_OK ){ |
| 7109 | zipfileAddEntry(pTab, 0, pNew); |
| 7110 | iOff += ZIPFILE_CDS_FIXED_SZ; |
| 7111 | iOff += (int)pNew->cds.nExtra + pNew->cds.nFile + pNew->cds.nComment; |
| 7112 | } |
| 7113 | } |
| 7114 | return rc; |
| 7115 | } |
| 7116 | |
| 7117 | /* |
| 7118 | ** xFilter callback. |
no test coverage detected