Merge pull request #1521 from bket/lstat
Detection of symbolic links on OpenBSD
This commit is contained in:
@@ -92,6 +92,7 @@ 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 */
|
||||||
#ifndef __STRICT_ANSI__
|
#ifndef __STRICT_ANSI__
|
||||||
#if defined(_BSD_SOURCE) \
|
#if defined(_BSD_SOURCE) \
|
||||||
|
|| defined(__OpenBSD__) \
|
||||||
|| (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)) \
|
|| (defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 500)) \
|
||||||
|| (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) \
|
|| (defined(_XOPEN_SOURCE) && defined(_XOPEN_SOURCE_EXTENDED)) \
|
||||||
|| (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L)) \
|
|| (defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200112L)) \
|
||||||
|
|||||||
@@ -951,6 +951,8 @@ int main(int argCount, const char* argv[])
|
|||||||
filenameTable[fileNamesNb++] = filenameTable[u];
|
filenameTable[fileNamesNb++] = filenameTable[u];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if (fileNamesNb == 0 && filenameIdx > 0)
|
||||||
|
CLEAN_RETURN(1);
|
||||||
filenameIdx = fileNamesNb;
|
filenameIdx = fileNamesNb;
|
||||||
}
|
}
|
||||||
if (recursive) { /* at this stage, filenameTable is a list of paths, which can contain both files and directories */
|
if (recursive) { /* at this stage, filenameTable is a list of paths, which can contain both files and directories */
|
||||||
|
|||||||
+13
-3
@@ -314,18 +314,28 @@ $ECHO foo | $ZSTD > /dev/full && die "write error not detected!"
|
|||||||
$ECHO "$ECHO foo | $ZSTD | $ZSTD -d > /dev/full"
|
$ECHO "$ECHO foo | $ZSTD | $ZSTD -d > /dev/full"
|
||||||
$ECHO foo | $ZSTD | $ZSTD -d > /dev/full && die "write error not detected!"
|
$ECHO foo | $ZSTD | $ZSTD -d > /dev/full && die "write error not detected!"
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
if [ "$isWindows" = false ] && [ "$UNAME" != 'SunOS' ] ; then
|
||||||
|
|
||||||
$ECHO "\n===> symbolic link test "
|
$ECHO "\n===> symbolic link test "
|
||||||
|
|
||||||
rm -f hello.tmp world.tmp hello.tmp.zst world.tmp.zst
|
rm -f hello.tmp world.tmp world2.tmp hello.tmp.zst world.tmp.zst
|
||||||
$ECHO "hello world" > hello.tmp
|
$ECHO "hello world" > hello.tmp
|
||||||
ln -s hello.tmp world.tmp
|
ln -s hello.tmp world.tmp
|
||||||
$ZSTD world.tmp hello.tmp
|
ln -s hello.tmp world2.tmp
|
||||||
|
$ZSTD world.tmp hello.tmp || true
|
||||||
test -f hello.tmp.zst # regular file should have been compressed!
|
test -f hello.tmp.zst # regular file should have been compressed!
|
||||||
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
||||||
|
$ZSTD world.tmp || true
|
||||||
|
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
||||||
|
$ZSTD world.tmp world2.tmp || true
|
||||||
|
test ! -f world.tmp.zst # symbolic link should not have been compressed!
|
||||||
|
test ! -f world2.tmp.zst # symbolic link should not have been compressed!
|
||||||
$ZSTD world.tmp hello.tmp -f
|
$ZSTD world.tmp hello.tmp -f
|
||||||
test -f world.tmp.zst # symbolic link should have been compressed with --force
|
test -f world.tmp.zst # symbolic link should have been compressed with --force
|
||||||
rm -f hello.tmp world.tmp hello.tmp.zst world.tmp.zst
|
rm -f hello.tmp world.tmp world2.tmp hello.tmp.zst world.tmp.zst
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user