Use lstat() instead of stat() for checking if the final source file exists,

so that `ln -fs' works when the source is a symlink pointing to a non-
existent file.
This commit is contained in:
Bruce Evans 1994-12-06 18:50:44 +00:00
parent b22bafcacc
commit 9195f40982

View File

@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE. * SUCH DAMAGE.
* *
* $Id$ * $Id: ln.c,v 1.4 1994/09/24 02:55:48 davidg Exp $
*/ */
#ifndef lint #ifndef lint
@ -142,9 +142,9 @@ linkit(target, source, isdir)
++p; ++p;
(void)snprintf(path, sizeof(path), "%s/%s", source, p); (void)snprintf(path, sizeof(path), "%s/%s", source, p);
source = path; source = path;
exists = !stat(source, &sb); exists = !lstat(source, &sb);
} else } else
exists = !stat(source, &sb); exists = !lstat(source, &sb);
/* /*
* If the file exists, and -f was specified, unlink it. * If the file exists, and -f was specified, unlink it.