1/* link.c
2   Link two files.  */
3
4#include "uucp.h"
5
6#include "uudefs.h"
7#include "sysdep.h"
8#include "system.h"
9
10#include <errno.h>
11
12boolean
13fsysdep_link (zfrom, zto, pfworked)
14     const char *zfrom;
15     const char *zto;
16     boolean *pfworked;
17{
18  *pfworked = FALSE;
19  if (link (zfrom, zto) == 0)
20    {
21      *pfworked = TRUE;
22      return TRUE;
23    }
24  if (errno == ENOENT)
25    {
26      if (! fsysdep_make_dirs (zto, TRUE))
27	return FALSE;
28      if (link (zfrom, zto) == 0)
29	{
30	  *pfworked = TRUE;
31	  return TRUE;
32	}
33    }
34  if (errno == EXDEV)
35    return TRUE;
36  ulog (LOG_ERROR, "link (%s, %s): %s", zfrom, zto, strerror (errno));
37  return FALSE;
38}
39