diff options
author | Sunanda Menon <sunanda.menon@oracle.com> | 2011-07-06 11:36:39 +0200 |
---|---|---|
committer | Sunanda Menon <sunanda.menon@oracle.com> | 2011-07-06 11:36:39 +0200 |
commit | af6ddeca48227198e420e3e3704a856d013c7ec7 (patch) | |
tree | b620a0de6d93498520da98a4e463693e72de646f /mysys/my_symlink.c | |
parent | bb3723835e3b141cc835ea9f2eb3cbf069855104 (diff) | |
parent | 51e1713a5d5d968d922612141eec3208c086d878 (diff) | |
download | mariadb-git-af6ddeca48227198e420e3e3704a856d013c7ec7.tar.gz |
Merge from mysql-5.0.94-release
Diffstat (limited to 'mysys/my_symlink.c')
-rw-r--r-- | mysys/my_symlink.c | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/mysys/my_symlink.c b/mysys/my_symlink.c index cdb9ef9e051..fbf015512a3 100644 --- a/mysys/my_symlink.c +++ b/mysys/my_symlink.c @@ -150,8 +150,23 @@ int my_realpath(char *to, const char *filename, result= -1; } DBUG_RETURN(result); +#elif defined(_WIN32) + int ret= GetFullPathName(filename,FN_REFLEN, to, NULL); + if (ret == 0 || ret > FN_REFLEN) + { + my_errno= (ret > FN_REFLEN) ? ENAMETOOLONG : GetLastError(); + if (MyFlags & MY_WME) + my_error(EE_REALPATH, MYF(0), filename, my_errno); + /* + GetFullPathName didn't work : use my_load_path() which is a poor + substitute original name but will at least be able to resolve + paths that starts with '.'. + */ + my_load_path(to, filename, NullS); + return -1; + } #else my_load_path(to, filename, NullS); +#endif return 0; -#endif } |