summaryrefslogtreecommitdiff
path: root/mysys/my_symlink.c
diff options
context:
space:
mode:
authorAlexey Botchkov <holyfoot@mysql.com>2008-08-26 13:32:43 +0500
committerAlexey Botchkov <holyfoot@mysql.com>2008-08-26 13:32:43 +0500
commit67e480d269cad65534770c5107729150f1f2c615 (patch)
tree200730f9c3f71ec931278abde26c627495e4a758 /mysys/my_symlink.c
parent69657f972bd1afaabb343ed4ac3c3302b4242eb9 (diff)
parent56f1d3267423faf6eed7d5c6d7b818c0a8ce1755 (diff)
downloadmariadb-git-67e480d269cad65534770c5107729150f1f2c615.tar.gz
merging fix
Diffstat (limited to 'mysys/my_symlink.c')
-rw-r--r--mysys/my_symlink.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c
index c07be41066f..7f2be5644e8 100644
--- a/mysys/my_symlink.c
+++ b/mysys/my_symlink.c
@@ -109,8 +109,16 @@ int my_symlink(const char *content, const char *linkname, myf MyFlags)
int my_is_symlink(const char *filename __attribute__((unused)))
{
+#if defined (HAVE_LSTAT) && defined (S_ISLNK)
struct stat stat_buff;
return !lstat(filename, &stat_buff) && S_ISLNK(stat_buff.st_mode);
+#elif defined (_WIN32)
+ DWORD dwAttr = GetFileAttributes(filename);
+ return (dwAttr != INVALID_FILE_ATTRIBUTES) &&
+ (dwAttr & FILE_ATTRIBUTE_REPARSE_POINT);
+#else /* No symlinks */
+ return 0;
+#endif
}