mirror of
https://github.com/facebook/zstd.git
synced 2025-08-07 06:23:00 +03:00
Allowing named pipes to go through zstdcli
This commit is contained in:
@@ -513,7 +513,7 @@ static FILE* FIO_openSrcFile(const char* srcFileName)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!UTIL_isRegularFile(srcFileName)) {
|
if (!UTIL_isRegularFile(srcFileName) && !UTIL_isFIFO(srcFileName)) {
|
||||||
DISPLAYLEVEL(1, "zstd: %s is not a regular file -- ignored \n",
|
DISPLAYLEVEL(1, "zstd: %s is not a regular file -- ignored \n",
|
||||||
srcFileName);
|
srcFileName);
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@@ -115,6 +115,19 @@ int UTIL_isSameFile(const char* file1, const char* file2)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
U32 UTIL_isFIFO(const char* infilename)
|
||||||
|
{
|
||||||
|
/* macro guards, as defined in : https://linux.die.net/man/2/lstat */
|
||||||
|
#if PLATFORM_POSIX_VERSION >= 200112L
|
||||||
|
stat_t statbuf;
|
||||||
|
int r = UTIL_getFileStat(infilename, &statbuf);
|
||||||
|
if (!r && S_ISFIFO(statbuf.st_mode)) return 1;
|
||||||
|
#endif
|
||||||
|
(void)infilename;
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
U32 UTIL_isLink(const char* infilename)
|
U32 UTIL_isLink(const char* infilename)
|
||||||
{
|
{
|
||||||
/* macro guards, as defined in : https://linux.die.net/man/2/lstat */
|
/* macro guards, as defined in : https://linux.die.net/man/2/lstat */
|
||||||
|
@@ -135,6 +135,7 @@ U32 UTIL_isDirectory(const char* infilename);
|
|||||||
int UTIL_getFileStat(const char* infilename, stat_t* statbuf);
|
int UTIL_getFileStat(const char* infilename, stat_t* statbuf);
|
||||||
int UTIL_isSameFile(const char* file1, const char* file2);
|
int UTIL_isSameFile(const char* file1, const char* file2);
|
||||||
|
|
||||||
|
U32 UTIL_isFIFO(const char* infilename);
|
||||||
U32 UTIL_isLink(const char* infilename);
|
U32 UTIL_isLink(const char* infilename);
|
||||||
#define UTIL_FILESIZE_UNKNOWN ((U64)(-1))
|
#define UTIL_FILESIZE_UNKNOWN ((U64)(-1))
|
||||||
U64 UTIL_getFileSize(const char* infilename);
|
U64 UTIL_getFileSize(const char* infilename);
|
||||||
|
@@ -992,7 +992,7 @@ int main(int argCount, const char* argv[])
|
|||||||
if (!followLinks) {
|
if (!followLinks) {
|
||||||
unsigned u;
|
unsigned u;
|
||||||
for (u=0, fileNamesNb=0; u<filenameIdx; u++) {
|
for (u=0, fileNamesNb=0; u<filenameIdx; u++) {
|
||||||
if (UTIL_isLink(filenameTable[u])) {
|
if (UTIL_isLink(filenameTable[u]) && !UTIL_isFIFO(filenameTable[u])) {
|
||||||
DISPLAYLEVEL(2, "Warning : %s is a symbolic link, ignoring\n", filenameTable[u]);
|
DISPLAYLEVEL(2, "Warning : %s is a symbolic link, ignoring\n", filenameTable[u]);
|
||||||
} else {
|
} else {
|
||||||
filenameTable[fileNamesNb++] = filenameTable[u];
|
filenameTable[fileNamesNb++] = filenameTable[u];
|
||||||
|
Reference in New Issue
Block a user