MCPcopy Create free account
hub / github.com/F-Stack/f-stack / FIO_compressFilename_srcFile

Function FIO_compressFilename_srcFile

freebsd/contrib/zstd/programs/fileio.c:1663–1714  ·  view source on GitHub ↗

! FIO_compressFilename_srcFile() : * @return : 0 : compression completed correctly, * 1 : missing or pb opening srcFileName */

Source from the content-addressed store, hash-verified

1661 * 1 : missing or pb opening srcFileName
1662 */
1663static int
1664FIO_compressFilename_srcFile(FIO_ctx_t* const fCtx,
1665 FIO_prefs_t* const prefs,
1666 cRess_t ress,
1667 const char* dstFileName,
1668 const char* srcFileName,
1669 int compressionLevel)
1670{
1671 int result;
1672 DISPLAYLEVEL(6, "FIO_compressFilename_srcFile: %s \n", srcFileName);
1673
1674 /* ensure src is not a directory */
1675 if (UTIL_isDirectory(srcFileName)) {
1676 DISPLAYLEVEL(1, "zstd: %s is a directory -- ignored \n", srcFileName);
1677 return 1;
1678 }
1679
1680 /* ensure src is not the same as dict (if present) */
1681 if (ress.dictFileName != NULL && UTIL_isSameFile(srcFileName, ress.dictFileName)) {
1682 DISPLAYLEVEL(1, "zstd: cannot use %s as an input file and dictionary \n", srcFileName);
1683 return 1;
1684 }
1685
1686 /* Check if "srcFile" is compressed. Only done if --exclude-compressed flag is used
1687 * YES => ZSTD will skip compression of the file and will return 0.
1688 * NO => ZSTD will resume with compress operation.
1689 */
1690 if (prefs->excludeCompressedFiles == 1 && UTIL_isCompressedFile(srcFileName, compressedFileExtensions)) {
1691 DISPLAYLEVEL(4, "File is already compressed : %s \n", srcFileName);
1692 return 0;
1693 }
1694
1695 ress.srcFile = FIO_openSrcFile(srcFileName);
1696 if (ress.srcFile == NULL) return 1; /* srcFile could not be opened */
1697
1698 result = FIO_compressFilename_dstFile(fCtx, prefs, ress, dstFileName, srcFileName, compressionLevel);
1699
1700 fclose(ress.srcFile);
1701 ress.srcFile = NULL;
1702 if ( prefs->removeSrcFile /* --rm */
1703 && result == 0 /* success */
1704 && strcmp(srcFileName, stdinmark) /* exception : don't erase stdin */
1705 ) {
1706 /* We must clear the handler, since after this point calling it would
1707 * delete both the source and destination files.
1708 */
1709 clearHandler();
1710 if (FIO_removeFile(srcFileName))
1711 EXM_THROW(1, "zstd: %s: %s", srcFileName, strerror(errno));
1712 }
1713 return result;
1714}
1715
1716int FIO_compressFilename(FIO_ctx_t* const fCtx, FIO_prefs_t* const prefs, const char* dstFileName,
1717 const char* srcFileName, const char* dictFileName,

Callers 2

FIO_compressFilenameFunction · 0.85

Calls 8

UTIL_isDirectoryFunction · 0.85
UTIL_isSameFileFunction · 0.85
UTIL_isCompressedFileFunction · 0.85
FIO_openSrcFileFunction · 0.85
strcmpFunction · 0.85
clearHandlerFunction · 0.85
FIO_removeFileFunction · 0.85

Tested by

no test coverage detected