private_file_needs_copying (const char *src, struct stat *sbuf_src, char *dest)
{
struct stat sbuf_dest;
+ gchar *real_src = mono_portability_find_file (src, TRUE);
+
+ if (!real_src)
+ real_src = (gchar*)src;
- if (stat (src, sbuf_src) == -1 || stat (dest, &sbuf_dest) == -1)
+ if (stat (real_src, sbuf_src) == -1) {
+ time_t tnow = time (NULL);
+ memset (sbuf_src, 0, sizeof (*sbuf_src));
+ sbuf_src->st_mtime = tnow;
+ sbuf_src->st_atime = tnow;
return TRUE;
+ }
+ if (stat (dest, &sbuf_dest) == -1)
+ return TRUE;
+
if (sbuf_src->st_size == sbuf_dest.st_size &&
sbuf_src->st_mtime == sbuf_dest.st_mtime)
return FALSE;