# Copyright 2010-2025 Free Software Foundation, Inc.
#
# Copying and distribution of this file, with or without modification,
# in any medium, are permitted without royalty provided the copyright
# notice and this notice are preserved.

# Symlink related tests

. $srcdir/test-lib.sh

require cat
use_local_patch
use_tmpdir
umask 022

# ==============================================================
# Create an empty file

cat > create-empty.diff <<EOF
diff --git a/f b/f
new file mode 100644
index 0000000..e69de29
EOF

check 'patch < create-empty.diff || echo "Status: $?"' <<EOF
patching file f
EOF

ncheck 'test -e f && test ! -s f'

# --------------------------------------------------------------
# Empty out a file

echo f > f

cat > empty-out.diff <<EOF
diff --git a/f b/f
index 6a69f92..e69de29 100644
--- a/f
+++ b/f
@@ -1 +0,0 @@
-f
EOF

check 'patch < empty-out.diff || echo "Status: $?"' <<EOF
patching file f
EOF

ncheck 'test -e f && test ! -s f'

# --------------------------------------------------------------
# Empty out a file and delete it with -E

echo f > f

cat > empty-out.diff <<EOF
diff --git a/f b/f
index 6a69f92..e69de29 100644
--- a/f
+++ b/f
@@ -1 +0,0 @@
-f
EOF

check 'patch -E < empty-out.diff || echo "Status: $?"' <<EOF
patching file f
EOF

ncheck 'test ! -e f'

# --------------------------------------------------------------
# Delete an empty file

: > f

cat > delete-empty.diff <<EOF
diff --git a/f b/f
deleted file mode 100644
index e69de29..0000000
EOF

check 'patch < delete-empty.diff || echo "Status: $?"' <<EOF
patching file f
EOF

ncheck 'test ! -e f'
