Stefan Dösinger : msvcp: Implement the WCHAR version of _Symlink.
Module: wine Branch: master Commit: 12dadd04cb814aea835f8b98627c0e3bd6b3d734 URL: http://source.winehq.org/git/wine.git/?a=commit;h=12dadd04cb814aea835f8b9862... Author: Stefan Dösinger <stefan(a)codeweavers.com> Date: Tue Oct 10 17:09:44 2017 +0200 msvcp: Implement the WCHAR version of _Symlink. Signed-off-by: Stefan Dösinger <stefan(a)codeweavers.com> Signed-off-by: Piotr Caban <piotr(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/msvcp120/msvcp120.spec | 4 ++-- dlls/msvcp120_app/msvcp120_app.spec | 4 ++-- dlls/msvcp140/msvcp140.spec | 2 +- dlls/msvcp90/ios.c | 14 ++++++++++++++ 4 files changed, 19 insertions(+), 5 deletions(-) diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec index 4d46be4..3b29e73 100644 --- a/dlls/msvcp120/msvcp120.spec +++ b/dlls/msvcp120/msvcp120.spec @@ -1734,8 +1734,8 @@ @ cdecl -arch=win64 ?_Swap_all(a)_Container_base12@std@@QEAAXAEAU12@@Z(ptr ptr) _Container_base12__Swap_all @ cdecl -arch=win32 ?_Symlink(a)sys@tr2(a)std@@YAHPBD0(a)Z(str str) tr2_sys__Symlink @ cdecl -arch=win64 ?_Symlink(a)sys@tr2(a)std@@YAHPEBD0(a)Z(str str) tr2_sys__Symlink -@ stub -arch=win32 ?_Symlink(a)sys@tr2(a)std@@YAHPB_W0(a)Z -@ stub -arch=win64 ?_Symlink(a)sys@tr2(a)std@@YAHPEB_W0(a)Z +@ cdecl -arch=win32 ?_Symlink(a)sys@tr2(a)std@@YAHPB_W0(a)Z(wstr wstr) tr2_sys__Symlink_wchar +@ cdecl -arch=win64 ?_Symlink(a)sys@tr2(a)std@@YAHPEB_W0(a)Z(wstr wstr) tr2_sys__Symlink_wchar @ extern ?_Sync(a)ios_base@std@@0_NA ios_base_Sync @ stub -arch=win32 ?_Syserror_map(a)std@@YAPBDH(a)Z @ stub -arch=win64 ?_Syserror_map(a)std@@YAPEBDH(a)Z diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec index fd99058..7a6dc58 100644 --- a/dlls/msvcp120_app/msvcp120_app.spec +++ b/dlls/msvcp120_app/msvcp120_app.spec @@ -1734,8 +1734,8 @@ @ cdecl -arch=win64 ?_Swap_all(a)_Container_base12@std@@QEAAXAEAU12@@Z(ptr ptr) msvcp120.?_Swap_all(a)_Container_base12@std@@QEAAXAEAU12@@Z @ cdecl -arch=win32 ?_Symlink(a)sys@tr2(a)std@@YAHPBD0(a)Z(str str) msvcp120.?_Symlink(a)sys@tr2(a)std@@YAHPBD0(a)Z @ cdecl -arch=win64 ?_Symlink(a)sys@tr2(a)std@@YAHPEBD0(a)Z(str str) msvcp120.?_Symlink(a)sys@tr2(a)std@@YAHPEBD0(a)Z -@ stub -arch=win32 ?_Symlink(a)sys@tr2(a)std@@YAHPB_W0(a)Z -@ stub -arch=win64 ?_Symlink(a)sys@tr2(a)std@@YAHPEB_W0(a)Z +@ cdecl -arch=win32 ?_Symlink(a)sys@tr2(a)std@@YAHPB_W0(a)Z(wstr wstr) msvcp120.?_Symlink(a)sys@tr2(a)std@@YAHPB_W0(a)Z +@ cdecl -arch=win64 ?_Symlink(a)sys@tr2(a)std@@YAHPEB_W0(a)Z(wstr wstr) msvcp120.?_Symlink(a)sys@tr2(a)std@@YAHPEB_W0(a)Z @ extern ?_Sync(a)ios_base@std@@0_NA msvcp120.?_Sync(a)ios_base@std@@0_NA @ stub -arch=win32 ?_Syserror_map(a)std@@YAPBDH(a)Z @ stub -arch=win64 ?_Syserror_map(a)std@@YAPEBDH(a)Z diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec index 74ff305..5409853 100644 --- a/dlls/msvcp140/msvcp140.spec +++ b/dlls/msvcp140/msvcp140.spec @@ -3716,7 +3716,7 @@ @ cdecl _Stoulx(ptr ptr long ptr) _Stoulx @ cdecl _Strcoll(ptr ptr ptr ptr ptr) _Strcoll @ stub _Strxfrm -@ stub _Symlink +@ cdecl _Symlink(wstr wstr) tr2_sys__Symlink_wchar @ stub _Symlink_get @ stub _Temp_get @ stub _Thrd_abort diff --git a/dlls/msvcp90/ios.c b/dlls/msvcp90/ios.c index 36e5067..c6f06ff 100644 --- a/dlls/msvcp90/ios.c +++ b/dlls/msvcp90/ios.c @@ -15049,6 +15049,20 @@ int __cdecl tr2_sys__Symlink(char const* existing_file_name, char const* file_na return GetLastError(); } +/* ?_Symlink(a)sys@tr2(a)std@@YAHPB_W0(a)Z */ +/* ?_Symlink(a)sys@tr2(a)std@@YAHPEB_W0(a)Z */ +/* _Symlink */ +int __cdecl tr2_sys__Symlink_wchar(WCHAR const* existing_file_name, WCHAR const* file_name) +{ + TRACE("(%s %s)\n", debugstr_w(existing_file_name), debugstr_w(file_name)); + if(!existing_file_name || !file_name) + return ERROR_INVALID_PARAMETER; + + if(CreateSymbolicLinkW(file_name, existing_file_name, 0)) + return ERROR_SUCCESS; + return GetLastError(); +} + /* ?_Unlink(a)sys@tr2(a)std@@YAHPBD(a)Z */ /* ?_Unlink(a)sys@tr2(a)std@@YAHPEBD(a)Z */ int __cdecl tr2_sys__Unlink(char const* path)
participants (1)
-
Alexandre Julliard