Line | Count | Source |
1 | | bool ExtractHardlink(CommandData *Cmd,const std::wstring &NameNew,const std::wstring &NameExisting) |
2 | 64 | { |
3 | 64 | if (!FileExist(NameExisting)) |
4 | 8 | { |
5 | 8 | uiMsg(UIERROR_HLINKCREATE,NameNew); |
6 | 8 | uiMsg(UIERROR_NOLINKTARGET); |
7 | 8 | ErrHandler.SetErrorCode(RARX_CREATE); |
8 | 8 | return false; |
9 | 8 | } |
10 | 56 | CreatePath(NameNew,true,Cmd->DisableNames); |
11 | | |
12 | | #ifdef _WIN_ALL |
13 | | bool Success=CreateHardLink(NameNew.c_str(),NameExisting.c_str(),NULL)!=0; |
14 | | if (!Success) |
15 | | { |
16 | | uiMsg(UIERROR_HLINKCREATE,NameNew); |
17 | | ErrHandler.SysErrMsg(); |
18 | | ErrHandler.SetErrorCode(RARX_CREATE); |
19 | | } |
20 | | return Success; |
21 | | #elif defined(_UNIX) |
22 | | std::string NameExistingA,NameNewA; |
23 | 56 | WideToChar(NameExisting,NameExistingA); |
24 | 56 | WideToChar(NameNew,NameNewA); |
25 | 56 | bool Success=link(NameExistingA.c_str(),NameNewA.c_str())==0; |
26 | 56 | if (!Success) |
27 | 56 | { |
28 | 56 | uiMsg(UIERROR_HLINKCREATE,NameNew); |
29 | 56 | ErrHandler.SysErrMsg(); |
30 | 56 | ErrHandler.SetErrorCode(RARX_CREATE); |
31 | 56 | } |
32 | 56 | return Success; |
33 | | #else |
34 | | return false; |
35 | | #endif |
36 | 64 | } |
37 | | |