~ubuntu-branches/ubuntu/vivid/unrar-nonfree/vivid

« back to all changes in this revision

Viewing changes to hardlinks.cpp

  • Committer: Package Import Robot
  • Author(s): Martin Meredith
  • Date: 2015-02-03 12:58:01 UTC
  • mfrom: (1.1.18) (5.1.18 sid)
  • Revision ID: package-import@ubuntu.com-20150203125801-od6ev8cqy1er51vz
Tags: 1:5.2.5-1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
bool ExtractHardlink(wchar *NameNew,wchar *NameExisting,size_t NameExistingSize)
2
2
{
 
3
  SlashToNative(NameExisting,NameExisting,NameExistingSize); // Not needed for RAR 5.1+ archives.
 
4
 
3
5
  if (!FileExist(NameExisting))
4
6
    return false;
5
7
  CreatePath(NameNew,true);
6
8
 
7
9
#ifdef _WIN_ALL
8
 
  UnixSlashToDos(NameExisting,NameExisting,NameExistingSize);
9
 
 
10
10
  bool Success=CreateHardLink(NameNew,NameExisting,NULL)!=0;
11
11
  if (!Success)
12
12
  {
13
 
    Log(NULL,St(MErrCreateLnkH),NameNew);
 
13
    uiMsg(UIERROR_HLINKCREATE,NameNew);
14
14
    ErrHandler.SysErrMsg();
15
15
    ErrHandler.SetErrorCode(RARX_CREATE);
16
16
  }
17
17
  return Success;
18
18
#elif defined(_UNIX)
19
 
  DosSlashToUnix(NameExisting,NameExisting,NameExistingSize);
20
 
 
21
19
  char NameExistingA[NM],NameNewA[NM];
22
20
  WideToChar(NameExisting,NameExistingA,ASIZE(NameExistingA));
23
21
  WideToChar(NameNew,NameNewA,ASIZE(NameNewA));
24
22
  bool Success=link(NameExistingA,NameNewA)==0;
25
23
  if (!Success)
26
24
  {
27
 
    Log(NULL,St(MErrCreateLnkH),NameNew);
 
25
    uiMsg(UIERROR_HLINKCREATE,NameNew);
28
26
    ErrHandler.SysErrMsg();
29
27
    ErrHandler.SetErrorCode(RARX_CREATE);
30
28
  }