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:
parent
b22bafcacc
commit
9195f40982
@ -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.
|
||||||
|
Loading…
Reference in New Issue
Block a user