Mercurial > vba-linux
diff src/win32/7zip/7z/CPP/7zip/Archive/Common/ItemNameUtils.cpp @ 1:f9f4f1b99eed
importing src directory
author | Robert McIntyre <rlm@mit.edu> |
---|---|
date | Sat, 03 Mar 2012 10:31:27 -0600 |
parents | |
children |
line wrap: on
line diff
1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/src/win32/7zip/7z/CPP/7zip/Archive/Common/ItemNameUtils.cpp Sat Mar 03 10:31:27 2012 -0600 1.3 @@ -0,0 +1,59 @@ 1.4 +// Archive/Common/ItemNameUtils.cpp 1.5 + 1.6 +#include "StdAfx.h" 1.7 + 1.8 +#include "ItemNameUtils.h" 1.9 + 1.10 +namespace NArchive { 1.11 +namespace NItemName { 1.12 + 1.13 +static const wchar_t kOSDirDelimiter = WCHAR_PATH_SEPARATOR; 1.14 +static const wchar_t kDirDelimiter = L'/'; 1.15 + 1.16 +UString MakeLegalName(const UString &name) 1.17 +{ 1.18 + UString zipName = name; 1.19 + zipName.Replace(kOSDirDelimiter, kDirDelimiter); 1.20 + return zipName; 1.21 +} 1.22 + 1.23 +UString GetOSName(const UString &name) 1.24 +{ 1.25 + UString newName = name; 1.26 + newName.Replace(kDirDelimiter, kOSDirDelimiter); 1.27 + return newName; 1.28 +} 1.29 + 1.30 +UString GetOSName2(const UString &name) 1.31 +{ 1.32 + if (name.IsEmpty()) 1.33 + return UString(); 1.34 + UString newName = GetOSName(name); 1.35 + if (newName[newName.Length() - 1] == kOSDirDelimiter) 1.36 + newName.Delete(newName.Length() - 1); 1.37 + return newName; 1.38 +} 1.39 + 1.40 +bool HasTailSlash(const AString &name, UINT codePage) 1.41 +{ 1.42 + if (name.IsEmpty()) 1.43 + return false; 1.44 + LPCSTR prev = 1.45 + #ifdef _WIN32 1.46 + CharPrevExA((WORD)codePage, name, &name[name.Length()], 0); 1.47 + #else 1.48 + (LPCSTR)(name) + (name.Length() - 1); 1.49 + #endif 1.50 + return (*prev == '/'); 1.51 +} 1.52 + 1.53 +#ifndef _WIN32 1.54 +UString WinNameToOSName(const UString &name) 1.55 +{ 1.56 + UString newName = name; 1.57 + newName.Replace(L'\\', kOSDirDelimiter); 1.58 + return newName; 1.59 +} 1.60 +#endif 1.61 + 1.62 +}}